V.2 Ms reference point
24.2293GPPIP multimedia call control protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP)Release 18Stage 3TS
V.2.1 General
The Ms reference point is used to request signing of an Identity header field or request verification of a signed assertion in an Identity header field.
HTTP POST method is used for the verification request.
HTTP 200 (OK) is used when the AS for verification has successfully processed the verification request.
HTTP POST method is used for the signing request.
HTTP 200 (OK) is used when the AS for signing has successfully processed the signing request.
HTTP POST method is used for the diversion signing request.
HTTP 200 (OK) is used when the AS for signing has successfully processed the diversion signing request.
HTTP POST method is used for the Resource-Priority header field signing request.
HTTP 200 (OK) is used when the AS for signing has successfully processed the Resource-Priority header field signing request.
HTTP POST method is used for the Resource-Priority and Priority header fields signing request.
HTTP 200 (OK) is used when the AS for signing has successfully processed the Resource-Priority and Priority header field signing request.
Figure V.2.1-1: Usage of the Ms reference point
V.2.2 Resource structure
API resources are defined with respect to a "server root". The server root is a URI:
– {hostname}:{port}/{RoutingPath},
The resource URI structure is:
Figure V.2.2-1: Resource structure for the resource exposed over the Ms reference point
NOTE: v1 is the version number of the API.
Table V.2.2-1: Variables for the server root
Variable |
Description |
Presence |
hostname |
Host name used to reach the resource. |
M |
port |
Port where the resource is reached |
M |
RoutingPath |
Path identifying the resource |
M |
V.2.3 Request requirements
V.2.3.1 General
V.2.3.2 Request header requirements
Table V.2.3.2-1 lists request header field requirements.
Table V.2.3.2-1: Header fields included in the requests
Header field name |
Description |
Presence |
Content-Type |
Describes the format of the request body. Shall be set to "application/json" |
M |
Accept |
Describes the supported format of the response body. Shall be set to "application/json" if present |
O |
V.2.4 Response requirements
V.2.4.1 General
V.2.4.2 Response header requirements
Table V.2.4.2-1: Header fields included in the responses
Header field name |
Description |
Presence |
Content-Type |
Describes the format of the response body. Shall be set to "application/json" |
M |
V.2.4.3 Error response requirements
V.2.4.3.1 General
If the server cannot process the request, the server provides an HTTP error response. The error response contains a JSON object specifying the error type.
The server provides a service error when the server is unable to process the request.
The server provides a policy error when the server is able to process the request, but not able to complete the service execution due to a policy restriction.
V.2.4.3.2 Service errors
Table V.2.4.3.2-1: Service failure descriptions
Exception ID |
Exception text |
HTTP status code |
Exception variables |
Description |
– |
Error: Missing request body. |
400 |
– |
The request could not be processed due to missing request body. |
– |
Error: Missing mandatory parameter. |
400 |
– |
The request could not be processed due to missing parameters. |
– |
Error: Requested response body type is not supported. |
406 |
– |
The request could not be processed due to a not supported message body format. |
– |
Error: Requested resource not found. |
404 |
– |
The request could not be processed due to no resource available related to the Request-URI |
– |
Error: Unsupported request body type. |
415 |
– |
The request could not be processed due to not supported message body. |
– |
Error: Invalid parameter value. |
400 |
– |
The request could not be processed due to invalid parameter value. |
– |
Error: Failed to parse message body. |
400 |
– |
The request could not be processed due to failure to parse the message body. |
– |
Error: Missing mandatory Content-Length headers |
411 |
– |
The request could not be processed due to a missing Content-Length header. |
V.2.4.3.3 Policy errors
Table V.2.4.3.3-1: Policy failure descriptions
Exception ID |
Exception text |
HTTP status code |
Exception variables |
Description |
– |
Method not allowed |
405 |
– |
The resource was invoked with unsupported operation |
– |
Internal server error. |
500 |
– |
The request failed due to internal error |
V.2.5 signing
V.2.5.1 General
To construct a PASSporT SHAKEN object specified in RFC 8588 [261], a PASSporT rph object specified in RFC 8443 [279] and RFC 9027 [278], or a PASSporT div object, specified in RFC 8946 [265], the client sends an HTTP POST request to the AS for signing containing the SIP request information plus any additional claim information to be signed by the target PASSporT type. If the request was successfully processed, then the received signingResponse contains an Identity header field value populated with a signed PASSporT of the requested type along with the appropriate Identity header field parameters.
Unsuccessful requests are responded with an HTTP 4xx or 5xx response.
V.2.5.2 Data types
Table V.2.5.2-1 specifies the data types included in the signing request. The signing request contains the claims included in:
– a PASSporT SHAKEN JSON Web Token, specified in RFC 8588 [261];
– a PASSporT div JSON Web Token specified in RFC 8946 [265]; or
– a PASSporT rph JSON Web Token specified in RFC 8443 [279] and RFC 9027 [278].
Table V.2.5.2-1: Data types for the signingRequest
Parameter |
Type; Value |
Presence |
Description |
ppt |
string; set to the value of the "ppt" parameter in the protected header of the PASSporT to be created |
O |
This parameter is included to inform the AS for signing the type of PASSporT that is to be constructed and signed. |
attest |
string; "A", "B" or "C" |
O |
Identifying the relation between the service provider attesting the identity and the subscriber. Specified in RFC 8588 [261]. |
dest |
array of identity claim JSON objects representing destination identities; tn or uri |
M |
Identifying the called user taken from the To header field for a "shaken" or "rph" PASSporT as specified in RFC 8224 [252], and from the Request-URI after retargeting for a "div" PASSporT as specified in RFC 8946 [265]. |
div |
identity claim JSON object, tn or uri. A hi element should be included. |
O |
Identifying the diverting user; i.e., the user identified in the Request-URI before retargeting, taken from the History-Info header field as pecified in RFC 8946 [265]. |
iat |
integer; time and date of issuance of the PASSporT token |
M |
Time since 1 January 1970 in Numeric Date format as specified in RFC 7519 [235]. |
orig |
identity claim JSON object; tn or uri |
M |
Identifying the calling user. Specified in RFC 8225 [262]. |
origid |
String; UUID |
O |
Specified in RFC 8588 [261] |
rph |
array of strings that correspond to the r-values indicated in the SIP Resource-Priority header field |
O |
Contains assertion of the priority level of the user to be used for a given communication session as specified in RFC 8443 [279] and RFC 9027 [278]. |
sph |
string "psap-callback" |
O |
Contains header field value "psap-callback" of the SIP Priority header field as specified in RFC 9027 [278]. |
The signing request provides the following two options for identifying the PASSporT type to be constructed:
– the PASSporT type is indicated by invoking the signing resource associated with that PASSporT type, as defined in subclause V.2.2; or
– the PASSporT type is identified by including a ppt parameter when invoking the /signing resource defined in subclause V.2.2.
Table V.2.5.2-1a indicates representative signingRequest parameter inclusion rules per PASSporT type.
Table V.2.5.2-1a: signingRequest parameters per PASSporT Type
PASSporT Type |
Parameter |
|||||||
attest |
dest |
div |
iat |
orig |
origid |
rph |
sph |
|
shaken |
M |
M |
X |
M |
M |
M |
X |
X |
div |
X |
M |
M |
M |
M |
X |
X |
X |
rph |
X |
M |
X |
M |
M |
X |
M |
O |
NOTE: "M" means "mandatory", "O" means "optional", and "X" means "not applicable". |
Table V.2.5.2-2 further specifies the data types contained in the signing request parameters.
Table V.2.5.2-2: Data types for the signingRequest parameters
Parameter |
Type; Value |
Presence |
Description |
hi |
string. An "index" header field parameter as specified in RFC 7044 [66] |
O |
The "index" header field parameter is included in the entry identifying the diverting user in the History-Info header field. |
tn |
string; allowed characters as for local-number-digits and global-number-digits defined in RFC 3966 [22] |
M |
The number needs to be in canonical form according to RFC 8224 [252] section 8.3 (see NOTE). |
uri |
string; A SIP URI as specified in RFC 3261 [26] following the generic guidelines in RFC [3986]. |
O |
Used if the "orig" or "dest" is given in a SIP URI. |
NOTE: The TAS is expected to provide a valid globally routable number. |
Table V.2.5.2-3 specifies the data types included in the signing response.
Table V.2.5.2-3: Data types for the signingResponse
Parameter |
Type; Value |
Presence |
Description |
identityHeader |
string; Identity header field value as specified in RFC 8224 [252] |
M |
This string cannot be NULL |
V.2.6 verification
V.2.6.1 General
To verify one or more received PASSporTs, the client sends a verification request in the form of an HTTP POST request to the AS for verification containing the Identity header field(s) populated with the PASSporT object(s) to be verified. The verification request also contains the following information:
– the originating identity and optionally all the diverting identities; and/or
– the Resource-Priority header field value and optionally the header field value "psap-callback" of the Priority header field.
The verificationResponse contains the outcome of the verification in a verstat claim with values as specified for the verstat tel URI parameter in subclause 7.2A.20 and in a verstatPriority claim with values as specified for the Priority-Verstat header field in subclause 7.2.21. The verificationResponse can optionally contain the claims of PASSporT(s) that passed verification.
The verificationResponse can also contain verification results information for each verified PASSporT, as follows:
– if verification passed, then verificationResponse contains the validated claims of the PASSporT;
– if verification failed, then verificationResponse contains information describing the reason for the failure.
Unsuccessful requests are responded with an HTTP 4xx or 5xx response.
V.2.6.2 Data types
Table V.2.6.2-1 specifies the data types included in the verification request.
Table V.2.6.2-1: Data types for the verificationRequest
Parameter |
Type; Value |
Presence |
Description |
identityHeader |
string; Identity header field value for the originating identity as specified in RFC 8224 [252] and RFC 8588 [261]. |
M |
This parameter contains the "shaken" Identity header field value to be verified (see NOTE 1). |
identityHeaders |
array of string; Identity header field values as specified in RFC 8224 [252] , RFC 8443 [279], RFC 8946 [265], RFC 9027 [278]. One identityHeader claim per received Identity header field is sent. |
O |
This array contains the "div" and "rph" Identity header field values to be verified (see NOTE 2). |
to |
string; identity claim JSON object; tn or uri |
M |
The destination identity taken from the To header field. Used when no div claim is included. |
dest |
string; identity claim JSON object; tn or uri |
O |
The destination identity taken from the Request-URI in the incoming request. |
time |
integer; Numeric date format defined in RFC 7519 [235] |
M |
Time based on the Date header field in the incoming request. |
from |
string; identity claim JSON object; tn or uri |
M |
The asserted identity, taken from the P-Asserted-Identity or the From header field of the incoming request |
protectedHeaders |
array of string; header field(s) |
O |
Contains the SIP header field(s) protected by claims in the PASSporT(s) of the identityHeaders array. |
NOTE 1) For "shaken" PASSporT verification, an identityHeader parameter containing a "shaken" Identity header field shall be included in the verification request. NOTE 2) For "rph" PASSporT verification, an identityHeaders parameter containing an "rph" Identity header field shall be included in the verification request. If the identityHeader parameter contains a "shaken" Identity header field, and/or the identityHeaders parameter contains an "rph" Identity header field, then all "div" Identity header field(s) received in an INVITE request shall be included in the identityHeaders parameter of the verification request. If "rph" PASSporT verification is not to be performed, and if the INVITE request does not contain any "div" Identity header fields, then the identityHeaders parameter shall not be included in the verification request. |
Invocation of the verification request results in the verification of the Identity header fields in the identityHeader and identityHeaders parameters. In addition, a verification request invocation can verify the integrity of SIP header fields protected by the "div" and "rph" PASSporTs. When verification of SIP header field integrity is required, the protected SIP header field(s) information shall be conveyed in the protectedHeaders parameter.
The dest parameter is included when the verification request includes a div claim, and when the verification service is required to distinguish between a legitimately retargeted request and a maliciously replayed request.
Table V.2.6.2-1a indicates representative inclusion rules for the verification request identityHeader and identityHeaders parameters for the different combinations of PASSporT types to be verified.
Table V.2.6.2-1a: Verification request identityHeader and identityHeaders parameter inclusion rules
PASSporT type(s) to be verified |
Parameter |
|
identityHeader |
identityHeaders |
|
shaken |
M |
X |
shaken, div |
M |
M |
rph |
X |
M |
rph, div |
X |
M |
shaken, rph |
M |
M |
shaken, rph, div |
M |
M |
NOTE: "M" means "mandatory" and "X" means "not applicable". |
Table V.2.6.2-2 specifies the data types included in the verification response.
Table V.2.6.2-2: Data types for the verificationResponse
Parameter |
Type; Value |
Presence |
Description |
divResult |
array of one or more [div, verstatValue] tuples |
O |
Parameter informing of the result of the verification of diverting identities. For each verified identity the verstat parameter is added to the verified identity. |
verstatValue |
string; set to a value defined in table 7.2A.20.3-1 |
O |
Parameter informing of the result of the verification of originating identity. To be used in the verstat parameter added to the verified identity. The parameter is mandatory if the request contained a PASSporT SHAKEN JSON Web Token. |
verstatPriority |
string; set to a value defined in table 7.2.21-1 |
O |
Parameter informing of the result of the verification of the Resource-Priority header field and optionally the header field value "psap-callback" of the Priority header field. |
verifyResults |
array of one or more verifyResult, as defined in table V.2.6.2-3 |
O |
Each array entry contains the verification results of a PASSporT contained in the request. |
Table V.2.6.2-3 specifies the mandatory data types of the verifyResult parameter included in the verification response.
Table V.2.6.2-3: Data types for mandatory verifyResult parameters
Parameter |
Type; Value |
Presence |
Description |
verifyResult |
structured data type containing [ppt, status, validClaims, reasonCode, reasonText, passport] tuple |
M |
Contains the verification results of a single Identity header field contained in the identityHeader parameter or an entry of the identityHeaders array of the verification request.The ppt and status parameters are always present. The inclusion of the other parameters in the tuple depends on the value of the status parameter. |
ppt |
string, set to the value of the ppt parameter in the protected header of the PASSporT. |
M |
Identifies the type of PASSporT associated with this array entry. |
status |
String, set to the value pass, fail or none. |
M |
Identifies the verification result of the PASSporT associated with this array entry. |
Each verifyResult entry of the verifyResults array conveys the verification results of an Identity header field contained in the identityHeader parameter or contained in an entry of the identityHeaders array of the verification request.
Additional verifyResult parameters are returned based on the value of the status parameter as follows:
– a status parameter with a value of "fail" returns the parameters shown in table V.2.6.2-4;
– a status parameter with a value of "pass" returns the parameter shown in table V.2.6.2-5; and
– a status parameter with a value of "none" returns no additional parameters.
A status parameter with a value of "none" indicates that the PASSporT type is not supported.
Table V.2.6.2-4 specifies the optional data types of the verifyResult parameter included in the verification response.
Table V.2.6.2-4: Data types of optional verifyResult parameters
Parameter |
Type; Value |
Presence |
Description |
reasonCode |
integer |
O |
Identifies the 4xx failure reason code of the failing PASSporT, as defined in RFC 8224 [252]. |
reasonText |
string |
O |
Identifies the failure text associated with the 4xx failure reason code, as specified in RFC 8224 [252]. |
passport |
string |
O |
Contains the failing PASSporT |
NOTE: These parameters are optional since they are included only when the verifyResult "status" parameter has a value of "fail". |
Table V.2.6.2-5 specifies the additional data types included in the verification response when the status parameter contains a value of "pass".
Table V.2.6.2-5: Data types of additional verifyResults parameter for status of "pass"
Parameter |
Type; Value |
Presence |
Description |
validClaims |
JSON object |
O |
The validClaims parameter contains the payload of the verified PASSporT. |
The validClaims parameter can be used:
– to verify the integrity of SIP header field information associated with the validated claims, where a mismatch results in a verification failure; or
– to ensure that SIP header field contents contain the information authorized by the validated claims, where a mismatch is resolved by updating the SIP header field to match the validated claims.
Annex W (normative):
IP-Connectivity Access Network specific concepts when using the 5GCN via WLAN to access IM CN subsystem