Tracking SMS delivery statuses

There are two possible options to track the delivery status: active and passive.

The passive option provides for setting the registered_delivery flag of the SUBMIT_SM packet. After the message transits to the final state, the server sends the DELIVER_SM packet with the Delivery_Receipt message.

To request a delivery report, the SUBMIT_SM package must have the registered_delivery=0x01 flag set. In response, the SMSC sends a DELIVER_SM packet containing the short_message field with a delivery report.

Example of a delivery report

(deliver: (pdu: 0 5 0 393653) (addr: 1 1 msisdn) (addr: 5 0 Sender_Name) (sm: enc: UTF-8 msg: id:616d2dbfde073b06 sub:001 dlvrd:001 submit date:2110181118 done date:2110191118 stat:UNDELIV err:999 text:<r:FINAL>) (opt: (oct: (tlv: 1059) 03ffff) (byte: (tlv: 1063) 5) (str: (tlv: 30) 616d2dbfde073b06) ) )

The parameters included in the report are described in detail in the table below.

SMS delivery parameters

Parameter

Description

id

message ID

sub

number of messages sent

dlvrd

number of messages delivered

submit date

message sending time

done date

message finalization time

stat

message status (dlvrd – delivered, or undeliv – not delivered)

err

error code (if any)

text

message status (intermediate or finalized)

tlv

additional parameters

Description of additional parameters:

Parameter value
Parameter
Description

1059

network_error_code

The network_error_code parameter is used to denote the actual network error code for a failed delivery.

1063

message_state

SMSC uses this parameter in PDU deliver_sm and data_sm to transmit the message final status for SMSC Delivery Receipt. Status descriptions are listed in the table below.

30

receipted_message_id

The receipted_message_id parameter denotes ID of the message received in SMSC Delivery Receipt.

Description of the message_status values:

Code
Message status
Description

1

ENROUTE

Message is being sent

2

DELIVERED

Message is delivered to the recipient

3

EXPIRED

Permitted message sending period has expired

4

DELETED

Message has been deleted

5

UNDELIVERABLE

Message cannot be delivered

6

ACCEPTED

Message is in the accepted status

7

UNKNOWN

Message is in an unknown status

8

REJECTED

Message is in the rejected status

Receiving multipart messages statuses

When sending a multipart message, the SMSC immediately returns the delivery status for all parts except the last one. At the same time, in the short_message field for each of the parts, except for the last one, the following is transmitted:

text:<r:PROGRESS>

The actual delivery status of the multipart message is transmitted to the last part received. For this, after short_message,

text:<r:FINAL>

will be transmitted

Last updated