6 API Definitions
29.5403GPP5G SystemRelease 18SMS ServicesStage 3TS
6.1 Nsmsf_SMService Service API
6.1.1 API URI
The Nsmsf_SMService shall use the Nsmsf_SMService API.
The request URI used in HTTP request from the NF service consumer towards the NF service producer shall have the structure defined in clause 4.4.1 of 3GPP TS 29.501 [5], i.e.:
{apiRoot}/<apiName>/<apiVersion>/<apiSpecificResourceUriPart>
with the following components:
– The {apiRoot} shall be set as described in 3GPP TS 29.501 [5].
– The <apiName> shall be "nsmsf-sms".
– The <apiVersion> shall be "v2".
– The <apiSpecificResourceUriPart> shall be set as described in clause 6.1.3.
6.1.2 Usage of HTTP
6.1.2.1 General
HTTP/2, as defined in IETF RFC 7540 [7], shall be used as specified in clause 5 of 3GPP TS 29.500 [4].
HTTP/2 shall be transported as specified in clause 5.3 of 3GPP TS 29.500 [4].
HTTP messages and bodies for the Nsmsf_SMService service shall comply with the OpenAPI [19] specification contained in Annex A.
6.1.2.2 HTTP standard headers
6.1.2.2.1 General
The usage of HTTP standard headers is specified in clause 5.2.2 of 3GPP TS 29.500 [4].
6.1.2.2.2 Content type
The following content types shall be supported:
– the JSON format (IETF RFC 8259 [8]). The use of the JSON format shall be signalled by the content type "application/json". See also clause 5.4 of 3GPP TS 29.500 [4].
– the Problem Details JSON Object (IETF RFC 7807 [17]). The use of the Problem Details JSON object in a HTTP response body shall be signalled by the content type "application/problem+json".
– the JSON Patch (IETF RFC 6902 [20]). The use of the JSON Patch format in a HTTP request body shall be signalled by the content type "application/json-patch+json".
Multipart messages shall also be supported (see clause 6.1.2.4) using the content type "multipart/related", comprising:
– one JSON body part with the "application/json" content type; and
– one binary body part with 3gpp vendor specific content subtypes.
The 3gpp vendor specific content subtypes defined in Table 6.1.2.2.2-1 shall be supported.
Table 6.1.2.2.2-1: 3GPP vendor specific content subtypes
content subtype |
Description |
vnd.3gpp.sms |
Binary encoded payload, encoding SMS payload, as specified in 3GPP TS 23.040 [11] and 3GPP TS 24.011 [12]. |
NOTE: Using 3GPP vendor content subtypes allows to describe the nature of the opaque payload (e.g. SMS payload) without having to rely on metadata in the JSON payload. |
See clause 6.1.2.4 for the binary payloads supported in the binary body part of multipart messages.
6.1.2.2.3 ETag
As described in IETF RFC 7232 [18] clause 2.32, an "ETag" (entity-tag) header should be included in HTTP responses except for non-cacheable resources to allow an NF Service Consumer performing a conditional request with "If-Match" header. If it is included, it shall contain a server-generated strong validator, that allows further matching of this value (included in subsequent client requests) with a given resource representation stored in the server or in a cache.
6.1.2.2.4 If-Match
As described in IETF RFC 7232 [18] clause 3.1, an NF Service Consumer may issue conditional DELETE request towards SMSF by including an "If-Match" header in HTTP requests containing an entity tags received in previous response for the same resource.
6.1.2.3 HTTP custom headers
6.1.2.3.1 General
In this release of this specification, no custom headers specific to the Nsmsf_SMService service are defined. For 3GPP specific HTTP custom headers used across all service based interfaces, see clause 5.2.3 of 3GPP TS 29.500 [4].
6.1.2.4 HTTP multipart messages
HTTP multipart messages shall be supported, to transfer opaque SMS payload (e.g. SMS message, CP Ack, etc.), in the following service operations (and HTTP messages):
– UplinkSMS service operation;
HTTP multipart messages shall include one JSON body part and one binary body part comprising content of SMS payload content (see clause 6.1.6.4).
The JSON body part shall be the "root" body part of the multipart message. It shall be encoded as the first body part of the multipart message. The "Start" parameter does not need to be included.
The multipart message shall include a "type" parameter (see IETF RFC 2387 [9]) specifying the media type of the root body part, i.e. "application/json".
NOTE: The "root" body part (or "root" object) is the first body part the application processes when receiving a multipart/related message, see IETF RFC 2387 [9]. The default root is the first body within the multipart/related message. The "Start" parameter indicates the root body part, e.g. when this is not the first body part in the message.
A binary body part shall include a Content-ID header (see IETF RFC 2045 [10]), and the JSON body part shall make a reference to the binary body part using the Content-ID header field.
Examples of multipart/related messages can be found in Annex B.
6.1.3 Resources
6.1.3.1 Overview
The figure 6.1.3.1-1 describes the resource URI structure of the Nsmsf-sms API.
Figure 6.1.3.1-1: Resource URI structure of the nsmsf-sms API
Table 6.1.3.1-1 provides an overview of the resources and applicable HTTP methods.
Table 6.1.3.1-1: Resources and methods overview
Resource name |
Resource URI |
HTTP method or custom operation |
Description |
UEContext |
/ue-contexts/{supi} |
PUT |
It is used for the Activate service operation, for the purpose of: – Activate SMS service for a given UE, which results in creating an individual UE Context resource in SMSF. – Update SMS service parameters for a given UE, which results in updating an existing individual UE Context resource in SMSF. – Deactivate SMS service for a given UE for one of the two registered Access Types, which results in updating an existing individual UE context resource in SMSF. |
PATCH |
It is used for the Activate service operation, for the purpose of: – Partially update SMS service parameters for a given UE, which results in updating an existing individual UE Context resource in SMSF. |
||
DELETE |
It is used for the Deactivate service operation, for the purpose of: – Deactivate SMS service for a given UE, which results in deleting an existing individual UE Context resource in SMSF. |
||
/ue-contexts/{supi}/sendsms |
sendsms (POST) |
It is used for the UplinkSMS service operation, to allow NF Service Consumer to send SMS payload in uplink direction. |
|
/ue-contexts/{supi}/send-mt-sms |
send-mt-sms (POST) |
It is used for the MtForwardSm service operation, to allow NF Service Consumer to send SMS payload in downlink direction. |
6.1.3.2 Resource: UEContexts (Store)
6.1.3.2.1 Description
This resource represents the collection of UE Context for SMS in SMSF.
This resource is modelled with the Store resource archetype (see clause C.3 of 3GPP TS 29.501 [5]).
No HTTP method has been defined for this resource.
6.1.3.2.2 Resource Definition
Resource URI: {apiRoot}/nsmsf-sms/<apiVersion>/ue-contexts
This resource shall support the resource URI variables defined in table 6.1.3.2.2-1.
Table 6.1.3.2.2-1: Resource URI variables for this resource
Name |
Data type |
Definition |
apiRoot |
string |
See clause 6.1.1 |
6.1.3.2.3 Resource Standard Methods
No HTTP method has been defined for the UE Context collection resource.
6.1.3.3 Resource: UEContext (Document)
6.1.3.3.1 Description
This resource represents an individual UE Context for SMS in SMSF.
This resource is modelled with the Document resource archetype (see clause C.1 of 3GPP TS 29.501 [5]).
A PUT method to this resource can be invoked by the NF Service Consumer (e.g. AMF) to:
– activate SMS service for a given UE, which results in creating new individual UE Context for SMS in SMSF, during the Registration procedure for SMS over NAS (see 3GPP TS 23.502 [3] clause 4.13.3.1);
– update SMS service parameters for a given UE, which results in updating individual UE Context for SMS in SMSF, during the Registration Update procedure due to AMF change (see 3GPP TS 23.502 [3] clause 4.13.3.1).
– update SMS service parameters for a given UE, which results in updating individual UE Context for SMS in SMSF, to add a new Access Type for SMS over NAS.
– Deactivate SMS service for a given UE for one of the two registered Access Types, which results in updating an existing individual UE context resource in SMSF to remove the affected Access Type for SMS over NAS.
A DELETE method to this resource can be invoked by the NF Service Consumer (e.g. AMF) to:
– deactivate SMS service for a given UE, which results in deleting existing individual UE Context for SMS in SMSF, during the De-Registration procedure form SMS over NAS (see 3GPP TS 23.502 [3] clause 4.13.3.2).
6.1.3.3.2 Resource Definition
Resource URI: {apiRoot}/nsmsf-sms/<apiVersion>/ue-contexts/{supi}
This resource shall support the resource URI variables defined in table 6.1.3.3.2-1.
Table 6.1.3.3.2-1: Resource URI variables for this resource
Name |
Data type |
Definition |
apiRoot |
string |
See clause 6.1.1 |
supi |
Supi |
Represents the Subscription Permanent Identifier (see 3GPP TS 23.501 [2] clause 5.9.2) pattern: See pattern of type Supi in 3GPP TS 29.571 [6] |
6.1.3.3.3 Resource Standard Methods
6.1.3.3.3.1 PUT
This method creates an individual resource of UE Context for SMS in the SMSF, or updates the indicated resource of UE Context for SMS in the SMSF.
This method shall support the URI query parameters specified in table 6.1.3.3.3.1-1.
Table 6.1.3.3.3.1-1: URI query parameters supported by the PUT method on this resource
Name |
Data type |
P |
Cardinality |
Description |
n/a |
This method shall support the request data structures specified in table 6.1.3.3.3.1-2 and the response data structures and response codes specified in table 6.1.3.3.3.1-3.
Table 6.1.3.3.3.1-2: Data structures supported by the PUT Request Body on this resource
Data type |
P |
Cardinality |
Description |
UeSmsContextData |
M |
1 |
Representation of the UE Context for SMS to be created in the SMSF, or to be updated in the SMSF. |
Table 6.1.3.3.3.1-3: Data structures supported by the PUT Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
UeSmsContextData |
M |
1 |
201 Created |
This case represents the successful creation of an UE Context for SMS. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created resource. |
n/a |
204 No Content |
This case represents the successful update of an UE Context for SMS. |
||
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. (NOTE 2) |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. (NOTE 2) |
ProblemDetails |
O |
0..1 |
403 Forbidden |
When used to represent the failure of creation / update of an UE Context for SMS, the "cause" attribute of the "ProblemDetails" shall be set to one of the following application error codes: – SERVICE_NOT_ALLOWED, if SMS service is not allowed for the given service user; |
ProblemDetails |
O |
0..1 |
404 Not Found |
When used to represent the failure of creation / update of an UE Context for SMS, the "cause" attribute of the "ProblemDetails" shall be set to one of the following application error codes: – USER_NOT_FOUND, if the provided subscriber identifier is invalid or the service user is not found from UDM; |
NOTE 1: The mandatory HTTP error status codes for the PUT method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
Table 6.1.3.3.3.1-4: Headers supported by the 201 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
Contains the URI of the newly created resource, according to the structure: {apiRoot}/nsmsf-sms/<apiVersion>/ue-contexts/{supi} |
ETag |
string |
O |
0..1 |
Entity Tag, containing a strong validator, as described in IETF RFC 7232 [18], clause 2.3. |
Table 6.1.3.3.3.1-5: Headers supported by the 204 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
ETag |
string |
O |
0..1 |
Entity Tag, containing a strong validator, as described in IETF RFC 7232 [18], clause 2.3. |
Table 6.1.3.3.3.1-6: Headers supported by the 307 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
Table 6.1.3.3.3.1-7: Headers supported by the 308 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
6.1.3.3.3.2 DELETE
This method deletes an individual resource of UE Context for SMS in the SMSF.
This method shall support the URI query parameters specified in table 6.1.3.3.3.2-1.
Table 6.1.3.3.3.2-1: URI query parameters supported by the DELETE method on this resource
Name |
Data type |
P |
Cardinality |
Description |
n/a |
This method shall support the request data structures specified in table 6.1.3.3.3.2-2 and the response data structures and response codes specified in table 6.1.3.3.3.2-3.
Table 6.1.3.3.3.2-2: Data structures supported by the DELETE Request Body on this resource
Data type |
P |
Cardinality |
Description |
n/a |
Table 6.1.3.3.3.2-3: Data structures supported by the DELETE Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
n/a |
204 No Content |
This case represents a successful deletion of an UE Context for SMS. |
||
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. (NOTE 2) |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. (NOTE 2) |
ProblemDetails |
O |
0..1 |
404 Not Found |
When used to represent an unsuccessful deletion of an UE Context for SMS, the "cause" attribute of the "ProblemDetails" may be used to include one of the following application error codes: – CONTEXT_NOT_FOUND, if the UE context for SMS to be operated is invalid or not found in SMSF. |
NOTE 1: The mandatory HTTP error status codes for the DELETE method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
Table 6.1.3.3.3.2-4: Headers supported by the DELETE method on this resource
Name |
Data type |
P |
Cardinality |
Description |
If-Match |
String |
O |
0..1 |
Validator for conditional requests, as described in IETF RFC 7232 [18], clause 3.1 |
Table 6.1.3.3.3.2-5: Headers supported by the 307 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
String |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
String |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
Table 6.1.3.3.3.2-6: Headers supported by the 308 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
6.1.3.3.3.3 PATCH
This method shall support the URI query parameters specified in table 6.1.3.3.3.3-1.
Table 6.1.3.3.3.3-1: URI query parameters supported by the PATCH method on this resource
Name |
Data type |
P |
Cardinality |
Description |
supported-features |
SupportedFeatures |
O |
0..1 |
see 3GPP TS 29.500 [4] clause 6.6 |
This method shall support the request data structures specified in table 6.1.3.3.3.3-2 and the response data structures and response codes specified in table 6.1.3.3.3.3-3.
Table 6.1.3.3.3.3-2: Data structures supported by the PATCH Request Body on this resource
Data type |
P |
Cardinality |
Description |
array(PatchItem) |
M |
1..N |
Items describe the modifications to the Event Subscription |
Table 6.1.3.3.3.3-3: Data structures supported by the PATCH Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
n/a |
204 No Content |
Upon success, an empty response body shall be returned. |
||
PatchResult |
C |
1 |
200 OK |
Upon partial success, if the NF service consumer has indicated "PatchReport" in the supported-feature, the execution report is returned. (NOTE 3) |
UeSmsContextData |
C |
0..1 |
200 OK |
Upon partial success, if the NF service consumer does not support the "PatchReport" feature, the SMSF shall return a UeSmsContextData object in the response. (NOTE 3) |
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The NF service consumer shall generate a Location header field containing a URI pointing to the endpoint of another NF service consumer to which the notification should be sent. If an SCP redirects the message to another SCP then the location header field shall contain the same URI or a different URI pointing to the endpoint of the NF service consumer to which the notification should be sent. (NOTE 2) |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The NF service consumer shall generate a Location header field containing a URI pointing to the endpoint of another NF service consumer to which the notification should be sent. If an SCP redirects the message to another SCP then the location header field shall contain the same URI or a different URI pointing to the endpoint of the NF service consumer to which the notification should be sent. (NOTE 2) |
ProblemDetails |
O |
0..1 |
403 Forbidden |
One or more attributes are not allowed to be modified. The "cause" attribute may be used to indicate one of the following application errors: – MODIFICATION_NOT_ALLOWED, see 3GPP TS 29.500 [4] table 5.2.7.2-1. |
ProblemDetails |
O |
0..1 |
404 Not Found |
The "cause" attribute may be used to indicate one of the following application errors: – USER_NOT_FOUND – CONTEXT_NOT_FOUND |
NOTE 1: In addition common data structures as listed in table 5.2.7.1-1 of 3GPP TS 29.500 [4] are supported. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. NOTE 3: One of UeSmsContextData or PatchResult shall be returned, depending on whether the NF service consumer support "PatchReport" feature or not. |
Table 6.1.3.3.3.3-4: Headers supported by the 307 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
Table 6.1.3.3.3.3-5: Headers supported by the 308 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
6.1.3.3.4 Resource Custom Operations
6.1.3.3.4.1 Overview
Table 6.1.3.3.4.1-1: Custom operations
Operation Name |
Custom operaration URI |
Mapped HTTP method |
Description |
sendsms |
/ue-contexts/{supi}/sendsms |
POST |
Send SMS payload or CP Ack in uplink direction. |
send-mt-sms |
/ue-contexts/{supi}/send-mt-sms |
POST |
Send MT SMS payload, or the related CP Ack. |
6.1.3.3.4.2 Operation: sendsms
6.1.3.3.4.2.1 Description
This custom operation is used for NF Service Consumers to send SMS record in uplink direction.
6.1.3.3.4.2.2 Operation Definition
This custom operation is used to send a SMS payload to an individual UEContext resource in the SMSF.
This operation shall support the request data structures specified in table 6.1.3.3.4.2.2-1 and the response data structure and response codes specified in table 6.1.3.3.4.2.2-2.
Table 6.1.3.3.4.2.2-1: Data structures supported by the POST Request Body on this resource
Data type |
P |
Cardinality |
Description |
SmsRecordData |
M |
1 |
Representation of the SMS Record to be created in the SMSF. |
Table 6.1.3.3.4.2.2-2: Data structures supported by the POST Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
SmsRecordDeliveryData |
M |
1 |
200 OK |
This case represents the successful of sending SMS record in uplink direction, with necessary response data. |
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. (NOTE 2) |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. (NOTE 2) |
ProblemDetails |
O |
0..1 |
400 Bad Request |
This case represents an unsuccessful delivery of SMS payload. The "cause" attribute may be used to indicate one of the following application errors: – SMS_PAYLOAD_MISSING, if the expected SMS payload content is missing; – SMS_PAYLOAD_ERROR, if error exists in the SMS payload content. |
ProblemDetails |
O |
0..1 |
403 Forbidden |
This case represents an unsuccessful delivery of SMS payload. The "cause" attribute may be used to indicate one of the following application errors: – SERVICE_NOT_ALLOWED, if SMS service is not allowed for the given service user; |
ProblemDetails |
O |
0..1 |
404 Not Found |
This case represents an unsuccessful delivery of SMS payload. The "cause" attribute may be used to indicate one of the following application errors: – CONTEXT_NOT_FOUND, if the UE context for SMS to be operated is invalid or not found in SMSF. |
NOTE 1: The mandatory HTTP error status codes for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
Table 6.1.3.3.4.2.2-3: Headers supported by the 307 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
Table 6.1.3.3.4.2.2-4: Headers supported by the 308 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
6.1.3.3.4.3 Operation: send-mt-sms
6.1.3.3.4.3.1 Description
This custom operation is used for NF Service Consumers to send SMS record in downlink direction.
6.1.3.3.4.3.2 Operation Definition
This custom operation is used to send a SMS payload to an individual UEContext resource in the SMSF.
This operation shall support the request data structures specified in table 6.1.3.3.4.3.2-1 and the response data structure and response codes specified in table 6.1.3.3.4.3.2-2.
Table 6.1.3.3.4.3.2-1: Data structures supported by the POST Request Body on this resource
Data type |
P |
Cardinality |
Description |
SmsData |
M |
1 |
Representation of the MT SMS sent to the SMSF. |
Table 6.1.3.3.4.3.2-2: Data structures supported by the POST Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
SmsDeliveryData |
M |
1 |
200 OK |
This case represents the successful of sending SMS message in downlink direction, with necessary response data on the received delivery report. |
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. (NOTE 2) |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. (NOTE 2) |
ProblemDetails |
O |
0..1 |
400 Bad Request |
This case represents an unsuccessful delivery of SMS payload. The "cause" attribute may be used to indicate one of the following application errors: – SMS_PAYLOAD_MISSING, if the expected SMS payload content is missing; – SMS_PAYLOAD_ERROR, if error exists in the SMS payload content. |
ProblemDetails |
O |
0..1 |
403 Forbidden |
This case represents an unsuccessful delivery of SMS payload. The "cause" attribute may be used to indicate one of the following application errors: – SERVICE_NOT_ALLOWED, if SMS service is not allowed for the given service user; |
ProblemDetails |
O |
0..1 |
404 Not Found |
This case represents an unsuccessful delivery of SMS payload. The "cause" attribute may be used to indicate one of the following application errors: – CONTEXT_NOT_FOUND, if the UE context for SMS to be operated is invalid or not found in SMSF. |
NOTE 1: The mandatory HTTP error status codes for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
Table 6.1.3.3.4.3.2-3: Headers supported by the 307 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
Table 6.1.3.3.4.3.2-4: Headers supported by the 308 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same SMSF or SMSF (service) set. Or the same URI, if a request is redirected to the same target resource via a different SCP. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the request is redirected |
6.1.4 Custom Operations without associated resources
In this release of this specification, no custom operations without associated resources are defined.
6.1.5 Notifications
In this release of this specification, no notification procedures are defined.
6.1.6 Data Model
6.1.6.1 General
This clause specifies the application data model supported by the API.
Table 6.1.6.1-1 specifies the data types defined for the Nsmsf service based interface protocol.
Table 6.1.6.1-1: Nsmsf specific Data Types
Data type |
Clause defined |
Description |
UeSmsContextData |
6.1.6.2.2 |
Information used for activating SMS service for a service user, or updating the parameters for SMS service. |
SmsRecordData |
6.1.6.2.3 |
Information within request message invoking UplinkSMS service operation, for delivering SMS payload. |
SmsRecordDeliveryData |
6.1.6.2.5 |
Information for result of invoking UplinkSMS service operation. |
RecordId |
6.1.6.3.2 |
Record ID used to identify a message carrying SMS payload. |
SmsDeliveryStatus |
6.1.6.3.3 |
Status of SMS delivery attempts. |
Table 6.1.6.1-2 specifies data types re-used by the Nsmsf service based interface protocol from other specifications, including a reference to their respective specifications and when needed, a short description of their use within the Nsmsf service based interface.
Table 6.1.6.1-2: Nsmsf re-used Data Types
Data type |
Reference |
Comments |
ProblemDetails |
3GPP TS 29.571 [6] |
Common Data Type used in response bodies |
RedirectResponse |
3GPP TS 29.571 [6] |
Redirect Response |
Supi |
3GPP TS 29.571 [6] |
Subscription Permanent Identifier |
Gpsi |
3GPP TS 29.571 [6] |
General Public Subscription Identifier |
Pei |
3GPP TS 29.571 [6] |
Permanent Equipment, it contains an IMEI or IMEISV. |
Guami |
3GPP TS 29.571 [6] |
Globally Unique AMF Identifier |
AccessType |
3GPP TS 29.571 [6] |
Access Type (3GPP or non-3GPP access) |
UserLocation |
3GPP TS 29.571 [6] |
User location information |
TimeZone |
3GPP TS 29.571 [6] |
User time zone information |
NfInstanceId |
3GPP TS 29.571 [6] |
NF Instance ID |
RefToBinaryData |
3GPP TS 29.571 [6] |
Information for indicating the binary content of SMS payload. |
TraceData |
3GPP TS 29.571 [6] |
Trace control and configuration parameters |
BackupAmfInfo |
3GPP TS 29.571 [6] |
Backup AMF Information |
NfGroupId |
3GPP TS 29.571 [6] |
Network Function Group Id |
RatType |
3GPP TS 29.571 [6] |
RAT Type |
SupportedFeatures |
3GPP TS 29.571 [6] |
Supported Features |
PatchItem |
3GPP TS 29.571 [6] |
Patch item |
PatchResult |
3GPP TS 29.571 [6] |
PATCH result |
SmsData |
3GPP TS 29.577 [22] |
Information within request message for delivering SMS. |
SmsDeliveryData |
3GPP TS 29.577 [22] |
Information within response message invoking MtForwardSm service operation, for delivering MT SMS Delivery Report. |
6.1.6.2 Structured data types
6.1.6.2.1 Introduction
This clause defines the structures to be used in resource representations.
6.1.6.2.2 Type: UeSmsContextData
Table 6.1.6.2.2-1: Definition of type UeSmsContextData
Attribute name |
Data type |
P |
Cardinality |
Description |
supi |
Supi |
M |
1 |
This IE shall be present, and it shall contain the subscriber permanent identify of the service user. |
gpsi |
Gpsi |
O |
0..1 |
When present, this IE shall contain the generic public subscriber identifier of the service user. |
pei |
Pei |
O |
0..1 |
When present, this IE shall contain the IMEI or IMEISV of the service user. |
accessType |
AccessType |
M |
1 |
This IE shall be present, and it shall contain the access type from which the service user accesses to network. |
additionalAccessType |
AccessType |
C |
0..1 |
This IE shall be present in activate service operations to indicate that the service user accesses the network and request SMS service from both 3GPP access and Non-3GPP access. This IE shall be absent in deactivate service operations to indicate that service user is no longer served with SMS service via two access types. In this case the accessType attribute shall indicate the remaining access type. |
amfId |
NfInstanceId |
M |
1 |
This IE shall be present, and it shall contain the NF instance ID of the requesting AMF. |
guamis |
array(Guami) |
O |
1..N |
When present, this IE shall contain the GUAMI(s) of the AMF. |
ueLocation |
UserLocation |
O |
0..1 |
When present, this IE shall contain the UE location information (e.g. TAI and CGI). |
ueTimeZone |
TimeZone |
O |
0..1 |
When present, this IE shall contain the current time zone of the service user. |
traceData |
TraceData |
O |
0..1 |
Trace Data. The Null value indicates that trace is not active. |
backupAmfInfo |
array(BackupAmfInfo) |
C |
1..N |
This IE shall be included if the NF service consumer is an AMF and the AMF supports the AMF management without UDSF when the UE Context for SMS to be created in the SMSF, or to be updated in the SMSF. The SMSF uses this attribute to do an NRF query in order to invoke later services in a backup AMF e.g. Namf_MT. Absence of this attribute indicates the backup AMF Info is not provided or the previous provided backup AMF Info is removed. |
udmGroupId |
NfGroupId |
O |
0..1 |
Identity of the UDM group serving the supi |
routingIndicator |
string |
O |
0..1 |
When present, it shall indicate the Routing Indicator of the UE. |
hNwPubKeyId |
integer |
O |
0..1 |
When present, it shall indicate the Home Network Public Key Identifier of the UE. (see NOTE). |
ratType |
RatType |
C |
0..1 |
When present, it shall indicate the RAT type of the UE. |
additionalRatType |
RatType |
C |
0..1 |
When present, it shall indicate the RAT type of the UE corresponding to additionalAccessType. This IE shall not be included if additionalAccessType IE is not present. |
supportedFeatures |
SupportedFeatures |
C |
0..1 |
This IE shall be present if at least one optional feature defined in clause 6.1.8 is supported. |
NOTE: If present, this attribute shall be used together with routingIndicator. This attribute is only used by the HPLMN in roaming scenarios. |
6.1.6.2.3 Type: SmsRecordData
Table 6.1.6.2.3-1: Definition of type SmsRecordData
Attribute name |
Data type |
P |
Cardinality |
Description |
smsRecordId |
RecordId |
M |
1 |
This IE shall be present, and it shall contain the record id uniquely identify a message carrying SMS payload. |
smsPayload |
RefToBinaryData |
M |
1 |
This IE shall be present, and it shall contain the reference to the SMS Payload Information binary data (see clause 6.1.6.4) |
gpsi |
Gpsi |
O |
0..1 |
When present, this IE shall contain the global permanent subscriber identifier of the service user. |
pei |
Pei |
O |
0..1 |
When present, this IE shall contain the IMEI or IMEISV of the service user. |
accessType |
AccessType |
O |
0..1 |
When present, this IE shall contain the access type from which the service user accesses to network. |
ueLocation |
UserLocation |
O |
0..1 |
When present, this IE shall contain the UE location information (e.g. TAI and CGI). |
ueTimeZone |
TimeZone |
O |
0..1 |
When present, this IE shall contain the time zone of the service user. |
6.1.6.2.4 Void
6.1.6.2.5 Type: SmsRecordDeliveryData
Table 6.1.6.2.5-1: Definition of type SmsRecordDeliveryData
Attribute name |
Data type |
P |
Cardinality |
Description |
smsRecordId |
RecordId |
M |
1 |
This IE shall be present, and it shall contain the record id uniquely identify a message carrying SMS payload. |
deliveryStatus |
SmsDeliveryStatus |
M |
1 |
This IE shall be present, and it shall indicate the status of SMS payload delivery attempt in the SMSF, after SMSF receiving SMS payload on Nsmsf interface. |
6.1.6.3 Simple data types and enumerations
6.1.6.3.1 Introduction
This clause defines simple data types and enumerations that can be referenced from data structures defined in the previous clauses.
6.1.6.3.2 Simple data types
The simple data types defined in table 6.1.6.3.2-1 shall be supported.
Table 6.1.6.3.2-1: Simple data types
Type Name |
Type Definition |
Description |
RecordId |
string |
String uniquely identifying a record in the SMSF. The format of RecordId is implementation specific, e.g. using UUID format. In an OpenAPI Specification [19] schema, the format shall be designated as "RecordId". |
6.1.6.3.3 Enumeration: SmsDeliveryStatus
The enumeration SmsDeliveryStatus represents the status of SMS payload delivery attempt at the SMSF. It shall comply with the previsions defined in table 6.1.6.3.3-1.
Table 6.1.6.3.3-1: Enumeration SmsDeliveryStatus
Enumeration value |
Description |
SMS_DELIVERY_PENDING |
The SMS payload delivery at SMSF is pended. |
SMS_DELIVERY_COMPLETED |
The SMS payload delivery at SMSF is completed. |
SMS_DELIVERY_FAILED |
The SMS payload delivery at SMSF is failed due to certain reasons. |
SMS_DELIVERY_SMSF_ACCEPTED |
The SMS payload is accepted by the SMSF for further delivery. |
6.1.6.4 Binary data
6.1.6.4.1 Introduction
This clause defines the binary data that shall be supported in a binary body part in an HTTP multipart message (see clauses 6.1.2.2.2 and 6.1.2.4), to support delivery of binary content of SMS payload.
Table 6.1.6.4.1-1: Binary Data Types
Name |
Clause defined |
Content type |
SMS Payload Information |
6.1.6.4.2 |
vnd.3gpp.sms |
6.1.6.4.2 SMS Payload Information
SMS Payload Information shall encode a SMS payload as specified in 3GPP TS 23.040 [11] and 3GPP TS 24.011 [12], using the vnd.3gpp.sms content-type.
SMS Payload Information may encode e.g. the following content:
– CP-DATA, CP-ACK, CP-ERROR as specified in 3GPP TS 23.040 [11] and 3GPP TS 24.011 [12];
6.1.7 Error Handling
6.1.7.1 General
HTTP error handling shall be supported as specified in clause 5.2.4 of 3GPP TS 29.500 [4].
6.1.7.2 Protocol Errors
Protocol errors handling shall be supported as specified in clause 5.2.7 of 3GPP TS 29.500 [4].
6.1.7.3 Application Errors
The common application errors defined in the Table 5.2.7.2-1 in 3GPP TS 29.500 [4] may also be used for the Nsmsf_SMService service, and the following application errors listed in Table 6.1.7.3-1 are specific for the Nsmsf_SMService service.
Table 6.1.7.3-1: Application errors
Application Error |
HTTP status code |
Description |
USER_NOT_FOUND |
404 Not Found |
The provided subscriber identifier is invalid or the service user not found. |
CONTEXT_NOT_FOUND |
404 Not Found |
The UE context for SMS to be operated is invalid or not found in SMSF. |
SERVICE_NOT_ALLOWED |
403 Forbidden |
The requested service is not allowed for this service user. |
SMS_PAYLOAD_MISSING |
400 Bad Request |
The expected SMS payload content is missing. |
SMS_PAYLOAD_ERROR |
400 Bad Request |
Errors exist in the format of SMS payload. |
6.1.8 Feature negotiation
The optional features in table 6.1.8-1 are defined for the Nsmsf_SMService API. They shall be negotiated using the extensibility mechanism defined in clause 6.6 of 3GPP TS 29.500 [4].
Table 6.1.8-1: Features of supportedFeatures attribute used by Nsmsf_SMService service
Feature Number |
Feature |
M/O |
Description |
1 |
ES3XX |
M |
Extended Support of HTTP 307/308 redirection An NF Service Consumer (e.g. AMF) that supports this feature shall support handling of HTTP 307/308 redirection for any service operation of the Nsmsf_SMService service. An NF Service Consumer that does not support this feature does only support HTTP redirection as specified for 3GPP Release 15. |
2 |
PatchReport |
O |
If some of the modifications included in the PATCH request are not successfully implemented, the SMSF reports the result of PATCH request execution to the consumer. See clause 5.2.7.2 of 3GPP TS 29.500 [4]. |
Feature number: The order number of the feature within the supportedFeatures attribute (starting with 1). Feature: A short name that can be used to refer to the bit and to the feature. M/O: Defines if the implementation of the feature is mandatory ("M") or optional ("O"). Description: A clear textual description of the feature. |
6.1.9 Security
As indicated in 3GPP TS 33.501 [13] and 3GPP TS 29.500 [4], the access to the Nsmsf_SMService API may be authorized by means of the OAuth2 protocol (see IETF RFC 6749 [14]), based on local configuration, using the "Client Credentials" authorization grant, where the NRF (see 3GPP TS 29.510 [15]) plays the role of the authorization server.
If OAuth2 is used, an NF Service Consumer, prior to consuming services offered by the Nsmsf_SMService API, shall obtain a "token" from the authorization server, by invoking the Access Token Request service, as described in 3GPP TS 29.510 [15], clause 5.4.2.2.
NOTE: When multiple NRFs are deployed in a network, the NRF used as authorization server is the same NRF that the NF Service Consumer used for discovering the Nsmsf_SMService service.
The Nsmsf_SMService API defines a single scope "nsmsf-sms" for OAuth2 authorization (as specified in 3GPP TS 33.501 [13]) for the entire API, and it does not define any additional scopes at resource or operation level.
6.1.10 HTTP redirection
An HTTP request may be redirected to a different SMSF service instance, within the same SMSF or a different SMSF of an SMSF set, e.g. when an SMSF service instance is part of an SMSF (service) set or when using indirect communications (see 3GPP TS 29.500 [4]). See the ES3XX feature in clause 6.1.8.
An SCP that reselects a different SMSF producer instance will return the NF Instance ID of the new SMSF producer instance in the 3gpp-Sbi-Producer-Id header, as specified in clause 6.10.3.4 of 3GPP TS 29.500 [4].
If an SMSF within an SMSF set redirects a service request to a different SMSF of the set using a 307 Temporary Redirect or 308 Permanent Redirect status code, the identity of the new SMSF towards which the service request is redirected shall be indicated in the 3gpp-Sbi-Target-Nf-Id header of the 307 Temporary Redirect or 308 Permanent Redirect response as specified in clause 6.10.9.1 of 3GPP TS 29.500 [4].
Annex A (normative):
OpenAPI specification