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
(Document)

/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