openapi: 3.0.0 info: version: 1.0.0 title: MMTel_DCAppCall description: | MMTel Enabler Server DC Application Call Service. © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: | 3GPP TS 29.392 V19.0.0; Application layer support for MMTel; MMTel Enabler Server Services; Stage 3. url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.392/ servers: - url: '{apiRoot}/mmtel-dcappcall/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in clause 5.2.4 of 3GPP TS 29.122 security: - {} - oAuth2ClientCredentials: - mmtel-dcappcall paths: /dccall: post: summary: Request to Establish a call with DC capability. tags: - Custom Operation (No Resource) operationId: createDcCall requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DcCallReq' responses: '200': description: > Call establishment successful content: application/json: schema: $ref: '#/components/schemas/DcCallResp' '307': description: Temporary Redirect headers: Location: description: Resource URI of the alternative MMTel Enabler Server schema: type: string format: uri content: {} '308': description: Permanent Redirect headers: Location: description: Resource URI of the alternative MMTel Enabler Server schema: type: string format: uri content: {} '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '409': $ref: 'TS29122_CommonData.yaml#/components/responses/409' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' callbacks: DcMediaNotification: '{$request.body#/notificationInfo}': post: requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DcMediaNotifyReq' responses: '200': description: > Call establishment successful content: application/json: schema: $ref: '#/components/schemas/DcMediaNotifyResp' '307': $ref: 'TS29122_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29122_CommonData.yaml#/components/responses/308' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' /update-dc-media: post: summary: Update DC media of an existing session. tags: - Custom Operation (No Resource) operationId: updateDcMedia requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DcMediaUpdateReq' responses: '200': description: > Call establishment successful content: application/json: schema: $ref: '#/components/schemas/DcMediaUpdateResp' '307': description: Temporary Redirect headers: Location: description: Resource URI of the alternative MMTel Enabler Server schema: type: string format: uri content: {} '308': description: Permanent Redirect headers: Location: description: Resource URI of the alternative MMTel Enabler Server schema: type: string format: uri content: {} '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '409': $ref: 'TS29122_CommonData.yaml#/components/responses/409' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' components: securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '{tokenUrl}' scopes: {} schemas: # DC call establishment request DcCallReq: type: object required: - terminatingId - notificationInfo - callType properties: originatingId: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' terminatingId: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' mediaInfo: type: array items: type: string minItems: 1 dcMediaInfo: type: boolean description: Indicator of whether DC media is to be used appProfileRequested: $ref: 'TS29392_MMTel_DCAppManagement.yaml#/components/schemas/DcAppUpdateParameters' notificationInfo: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' callType: $ref: '#/components/schemas/CallType' # DC call establishment response DcCallResp: type: object required: - callResult - terminatingId - callType properties: callResult: type: string enum: [SUCCESS, FAILED] description: Result of call establishment sessionId: type: string description: Call session identifier, maps to callSessionId in OMA Third Party Call API failureCause: type: string description: Cause of call establishment failure originatingId: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' terminatingId: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' mediaInfo: type: array items: type: string description: Negotiated media types minItems: 1 dcMediaInfo: type: string description: DC media activation status appProfileRequested: $ref: 'TS29392_MMTel_DCAppManagement.yaml#/components/schemas/DcAppUpdateParameters' callType: $ref: '#/components/schemas/CallType' # DC media update request DcMediaUpdateReq: type: object required: - dcAppId - sessionId - notificationInfo properties: dcAppId: type: string description: Unique identifier of the DC application sessionId: type: string description: Identifier of the session to be updated mediaResourceInfo: type: object description: Media information to be transmitted via the Data Channel appProfileRequested: $ref: 'TS29392_MMTel_DCAppManagement.yaml#/components/schemas/DcAppUpdateParameters' notificationInfo: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' mediaDirection: $ref: '#/components/schemas/AdcType' # DC media update response DcMediaUpdateResp: type: object required: - sessionId - result properties: sessionId: type: string description: Session identifier result: type: string description: Result of the update request cause: type: string description: Cause of update request failure # DC media notification request DcMediaNotifyReq: type: object required: - sessionId - mediaResourceInfo properties: sessionId: type: string description: Session identifier mediaResourceInfo: type: object description: Media information transmitted via the Data Channel mediaDirection: $ref: '#/components/schemas/AdcType' # DC media notification response DcMediaNotifyResp: type: object required: - sessionId - result properties: sessionId: type: string description: Session identifier result: type: string description: Result of notification receipt cause: type: string description: Cause of notification processing failure # # SIMPLE DATA TYPES # # # ENUMERATIONS # AdcType: description: > The type of the data channel media direction. Possible values are: - A2P: Presenting Data Channel initiated by Application. - P2P: Presenting Data Channel initiated by UE. anyOf: - type: string enum: - A2P - P2A - type: string description: > This string provides forward-compatibility with future extensions to the enumeration and is not used to encode content defined in the present version of this API. CallType: description: > Indicate the type of established call. Possible values are: - A2P: Presenting the call as Application call initiated by Application to UE. - P2P: Presenting the call as Third Party call established between two UEs. anyOf: - type: string enum: - A2P - P2P - type: string description: > This string provides forward-compatibility with future extensions to the enumeration and is not used to encode content defined in the present version of this API.