Add Emergency Calling support (callType + PIDF-LO location)#120
Add Emergency Calling support (callType + PIDF-LO location)#120stroncoso-quobis merged 11 commits intocamaraproject:mainfrom
Conversation
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.
Removed errors
Added URN addressing
|
@stroncoso-quobis @teikuran @pradeepachar-mavenir Please review the Emergency calling CR and provide feedback. |
|
Just a clarification. With this proposal, the API client can set |
|
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. |
If the SOS service is invoked, |
This is good feedback. In the United States, emergency calling support is mandatory if the application is capable of placing regular PSTN calls. |
stroncoso-quobis
left a comment
There was a problem hiding this comment.
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:
- Fixes #25
- The release notes box
- For each affected APIs, a change line into a code box. Similar to what you have on the
Change Detailssection, but following the template :) .
- For each affected APIs, a change line into a code box. Similar to what you have on the
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 |
There was a problem hiding this comment.
Suggested to include this info as part of section 3: Like 3.4. Emergency Calling.
There was a problem hiding this comment.
We can cover this on the final release review.
|
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)
…/WebRTC into emergency-calling
stroncoso-quobis
left a comment
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
We can cover this on the final release review.
Summary
callTypeon MediaSessionInformation with valuesREGULAR | EMERGENCY.locationDetailsto MediaSessionInformation (required whencallType=EMERGENCY).•
LocationDetails(PIDF-LO style container)•
CircleCoordinates•
EllipsoidCoordinatesRationale
Change Details
• MediaSessionInformation.properties: +
callType(enum: REGULAR|EMERGENCY).• MediaSessionInformation.properties: +
locationDetails($ref:#/components/schemas/LocationDetails).• components/schemas: +
LocationDetails, +CircleCoordinates, +EllipsoidCoordinates.Compatibility
callTypeis omitted, treat asREGULAR.locationDetailsis recommended whencallType=EMERGENCY.Which issue(s) this PR fixes:
Fixes #25
Changelog input