Skip to content

Add Emergency Calling support (callType + PIDF-LO location)#120

Merged
stroncoso-quobis merged 11 commits intocamaraproject:mainfrom
deepakjaiswal1:emergency-calling
Jan 13, 2026
Merged

Add Emergency Calling support (callType + PIDF-LO location)#120
stroncoso-quobis merged 11 commits intocamaraproject:mainfrom
deepakjaiswal1:emergency-calling

Conversation

@deepakjaiswal1
Copy link
Collaborator

@deepakjaiswal1 deepakjaiswal1 commented Oct 6, 2025

Summary

  • Introduces callType on MediaSessionInformation with values REGULAR | EMERGENCY.
  • Adds locationDetails to MediaSessionInformation (required when callType=EMERGENCY).
  • Provides new schemas under components/schemas:
    LocationDetails (PIDF-LO style container)
    CircleCoordinates
    EllipsoidCoordinates

Rationale

  • Enable emergency call flows and regulatory handling.
  • Align location payloads with PIDF-LO concepts (3GPP TS 24.229, RFC 4119/5139/5491).

Change Details

  • webrtc-call-handling.yaml:
    • MediaSessionInformation.properties: +callType (enum: REGULAR|EMERGENCY).
    • MediaSessionInformation.properties: +locationDetails ($ref: #/components/schemas/LocationDetails).
    • components/schemas: +LocationDetails, +CircleCoordinates, +EllipsoidCoordinates.

Compatibility

  • Backward compatible: if callType is omitted, treat as REGULAR.
  • locationDetails is recommended when callType=EMERGENCY.
  • No changes to existing endpoints, existing examples, or the existing description formatting.

Which issue(s) this PR fixes:

Fixes #25

Changelog input

 release-note
- webrtc-call-handling: Add Emergency Calling support (callType + PIDF-LO location)

Summary
- Introduces `callType` on MediaSessionInformation with values `REGULAR | EMERGENCY`.
- Adds `locationDetails` to MediaSessionInformation (required when `callType=EMERGENCY`).
- Provides new schemas under components/schemas:
  • `LocationDetails` (PIDF-LO style container)
  • `CircleCoordinates`
  • `EllipsoidCoordinates`
Updated indentation
Summary
- Introduces `callType` on MediaSessionInformation with values `REGULAR | EMERGENCY`.
- Adds `locationDetails` to MediaSessionInformation
- Provides new schemas under components/schemas:
  • `LocationDetails` (PIDF-LO style container)
  • `CircleCoordinates`
  • `EllipsoidCoordinates`

Rationale
- Enable emergency call flows and regulatory handling.
- Align location payloads with PIDF-LO concepts (3GPP TS 24.229, RFC 4119/5139/5491).

Change Details
- webrtc-call-handling.yaml:
  • MediaSessionInformation.properties: +`callType` (enum: REGULAR|EMERGENCY).
  • MediaSessionInformation.properties: +`locationDetails` ($ref: `#/components/schemas/LocationDetails`).
  • components/schemas: +`LocationDetails`, +`CircleCoordinates`, +`EllipsoidCoordinates`.

Compatibility
- Backward compatible: if `callType` is omitted, treat as `REGULAR`.
- No changes to existing endpoints, existing examples, or the existing description formatting.
Added URN addressing
@deepakjaiswal1
Copy link
Collaborator Author

@stroncoso-quobis @teikuran @pradeepachar-mavenir Please review the Emergency calling CR and provide feedback.

@teikuran
Copy link
Contributor

teikuran commented Oct 9, 2025

Just a clarification. With this proposal, the API client can set callType to "REGULAR" while setting receiverAddress to e.g., "urn:service:sos.police". Correct?

@teikuran
Copy link
Contributor

Don't have detail proposal yet, but perhaps, we should define an error response in case GW(NW) does not support calltype "EMERGENCY". And API client should consider that emergency call is not suupported upon reception of the error response.

@deepakjaiswal1
Copy link
Collaborator Author

Just a clarification. With this proposal, the API client can set callType to "REGULAR" while setting receiverAddress to e.g., "urn:service:sos.police". Correct?

If the SOS service is invoked, callType must be set to EMERGENCY. In cases where the client application sets it to REGULAR, the network may override this setting to ensure the call does not fail.

@deepakjaiswal1
Copy link
Collaborator Author

Don't have detail proposal yet, but perhaps, we should define an error response in case GW(NW) does not support calltype "EMERGENCY". And API client should consider that emergency call is not suupported upon reception of the error response.

This is good feedback. In the United States, emergency calling support is mandatory if the application is capable of placing regular PSTN calls.

Copy link
Collaborator

@stroncoso-quobis stroncoso-quobis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @deepakjaiswal1 ,

Thanks for the PR, and sorry for my late review
Technically, the specs are ok, but I will require some changes in order to help to organize the info.

PR Description updates

PR description must include:

  • The lines with the fixes:
  • The release notes box
    • For each affected APIs, a change line into a code box. Similar to what you have on the Change Details section, but following the template :) .

This is needed to generate the release notes later next year. In general, it will help if the PR descriptions adhere to the PR template. Template here, and example here

In-YAML-doc updates

I'm going to request changes on the description field. The Authorization and authentication and the Additional CAMARA error responses are mandatory texts on the commonalities, and are expected to be at the end. I will leave them as the last ones. Including the Emergency calling section before them. My suggestion is to include it as part of section 3: Like 3.4. Emergency Calling

Overview

  • Technically the specs are ok. Minor fixes on description and in-yaml doc.
  • Not really qualified to understand all the complexities of the LAW referring to EMERGENCY CALLING, so I can't really help there. I will comment with some colleagues, maybe they can provide extra feedback
  • I love the PIDF-LO specs usage. I will use for other use cases. Good work!

--

Thanks for your contribution
Best regards

As a specific rule, error `501 - NOT_IMPLEMENTED` can be only a possible
error response if it is explicitly documented in the API.

# Emergency Calling
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested to include this info as part of section 3: Like 3.4. Emergency Calling.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can cover this on the final release review.

@teikuran
Copy link
Contributor

As we mentiond during conference call. Here is the proposal for the case that emergency call feature is not supported.

paths:
  /sessions:
    post:
      tags:
        - Call handling
      summary: Creates voice and/or video session
      description: Creates a voice and/or video session
      operationId: createSession
      parameters:
        - $ref: "#/components/parameters/x-correlator"
        - $ref: '#/components/parameters/hdrRegistrationId'
      security:
        - openId:
            - webrtc-call-handling:sessions:create
      requestBody:
        description: Provide the information required for session creation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MediaSessionInformation'
            examples:
              Media session request:
                $ref: '#/components/examples/exampleMediaSessionRequest'
              EmergencyMediaSessionRequest:
                $ref: '#/components/examples/exampleEmergencyMediaSessionRequest'
      responses:
        '201':
          description: Created
          headers:
            x-correlator:
              $ref: "#/components/headers/x-correlator"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MediaSessionInformation'
              examples:
                SessionCreated:
                  $ref: '#/components/examples/exampleMediaSessionResponse'
        '400':
          $ref: '#/components/responses/Generic400'
        '401':
          $ref: "#/components/responses/Generic401"
        '403':
          $ref: '#/components/responses/Generic403'
+        '501':
+          description: Not Implemented
+          headers:
+            x-correlator:
+              $ref: '#/components/headers/x-correlator'
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ErrorInfo'
+                  - type: object
+                    properties:
+                      status:
+                        enum:
+                          - 501
+                      code:
+                        enum:
+                          - CALLTYPE_EMERGENCY_NOT_SUPPORTED
+              examples:
+                501_CALLTYPE_EMERGENCY_NOT_SUPPORTED:
+                  description: The implementation of API provider does not support the `callType` of `EMERGENCY`.
+                  value:
+                    status: 501
+                    code: CALLTYPE_EMERGENCY_NOT_SUPPORTED
+                    message: Server does not support call type EMERGENCY.

Enhances the emergency calling API specification by introducing a 501 Not Implemented response for cases where callType = EMERGENCY is not supported by the provider.
Resolve conflicts with base changes (e.g., clientCorrelator)
Copy link
Collaborator

@stroncoso-quobis stroncoso-quobis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
I updated the description to include the fix issue relationship and the release notes.
Ready to merge

As a specific rule, error `501 - NOT_IMPLEMENTED` can be only a possible
error response if it is explicitly documented in the API.

# Emergency Calling
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can cover this on the final release review.

@stroncoso-quobis stroncoso-quobis merged commit 8de632a into camaraproject:main Jan 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Emergency call support for BYON

3 participants