Receive a delivery receipt

The Delivery Receipt operation allows you to receive a delivery receipt from OpenMarket providing feedback about the status of a message. The operation supports the deliver_sm PDU header parameters and deliver_sm_resp PDU parameters operations. A request is composed of a header and parameters, as well as optional OpenMarket custom TLVs. A response echoes back the request header, message status, and the message identifier. OpenMarket sets a default limit on the number of unacknowledged MOs, which might prevent your system from processing efficiently. This limit can be changed as needed. For more information, see MO and Delivery Receipt flow control windowing.

In this topic:

deliver_sm PDU header parameters

Parameter

Description

Command Length

Length of the PDU in octets.



Size (octets): 4

Type: Integer

Value: OpenMarket-supplied

Command ID

Indicates the type of message delivered in the request. This should be deliver_sm or deliver_sm_resp.



Size (octets): 4

Type: Integer

Value: 0x05

Command Status

Not applicable for deliver_sm



Size (octets): 4

Type: Integer

Value: NULL

Sequence Number

The associated deliver_sm_resp PDU should echo this sequence number back.


Size (octets): 4

Type: Integer

Value: OpenMarket-supplied

deliver_sm PDU parameters

Parameter

Description

Service Type

Identifies the command as an OpenMarket v4 SMPP operation.


Size (octets): Maximum of 6

Type: C-Octet String

Value: OMV4

Source Address TON

The MT destination address TON referenced by the delivery receipt.



Size (octets): 1

Type: Integer

Value: Only the following are supported:

  • 0x01 - phone number, starting with country code

  • 0x03 - national short code

  • 0x05 - alphanumeric

If the source address is omitted, and the Automatic Originator Selection (AOS) used instead, the field should be 0x00 (NULL), indicating unknown.

Source Address NPI

The MT destination address numbering plan indicator referenced by the delivery receipt. This will always be 0x01.


Size (octets): 1

Type: Integer

Value: 0x01

Source Address

The MT destination address referenced by the delivery receipt.


Size (octets): Minimum - 1, maximum - 21

Type: C-Octet String

Value: The value of the MT destination address referenced by the delivery receipt.

Destination Address TON

The MT source address TON referenced by the delivery receipt.


Size (octets): 1

Type: Integer

Value: The value of the MT source address TON referenced by the delivery receipt

Destination Address NPI

The source address numbering plan indicator referenced by the delivery receipt.


Size (octets): 1

Type: Integer

Value: The value of the MT source address.

Destination Address

The MT source address referenced by the delivery receipt.


Size (octets): Variable, but with a maximum of 21

Type: C-Octet String

Value: The value of the MT destination address.

ESM Class

Indication that the short message contains a delivery receipt.


Size (octets): 1

Type: Integer

Value: 0x04

Protocol ID

This parameter is not used. Set to 0x00 (NULL).


Size (octets): 1

Type: Integer

Value: 0x00

Priority Flag

This parameter is not used. Set to 0x00 (NULL).


Size (octets): 1

Type: Integer

Value: 0x00

Schedule Delivery Time

This parameter is not used. Set to 0x00 (NULL).


Size (octets): 1

Type: C-Octet String

Value: 0x00

Validity Period

This parameter is not used. Set to 0x00 (NULL).



Size (octets): 1

Type: C-Octet String, 1 - 17

Value: 0x00

Registered Delivery

This parameter is not used. Set to 0x00 (NULL).



Size (octets): 1

Type: Integer

Value: 0x00

Replace if Present Flag

This parameter is not used. Set to 0x00 (NULL).


Size (octets): 1

Type: Integer

Value: 0x00

Data Coding

Defines the encoding scheme of the delivery receipt short message.



Size (octets): 1

Type: Integer

Value: 0x00, which is the default character set on the account.


SM Default Message ID

This parameter is not used. Set to 0x00 (NULL).



Size (octets): 1

Type: Integer

Value: 0x00

SM Length

The length of the short message in the delivery receipt.


Size (octets): 1

Type: 0x00

Value: Variable, but with a maximum of 254.

Short Message

The submitted message. This information is returned in the delivery receipt details.


Size (octets): Variable, 0 - 254

Type: Octet String

Value:

  • id - the OpenMarket ticket ID.
  • sub:000 - Since multiple MT submissions are not supported, this value will always be 000.
  • dlvrd:000 - Since multiple MT submissions are not supported, this value will always be 000.
  • submitdate - the MT-submitted date in UTC. The date/time should include seconds and be formatted as YYMMDDhhmmss.
  • donedate - the MT delivery date in UTC. if there is one. The date/time should include seconds and be formatted as YYMMDDhhmmss. If there is no delivered date the value will be 000000000000.
  • stat - the final status of the message. It uses the numeric equivalents of the SMPP message state strings:
    • DELIVRD - The message is delivered to its destination.
    • EXPIRED - The message validity period has expired.
    • DELETED - The message has been deleted.
    • UNDELIV - The message is undeliverable.
    • ACCEPTD - The message is in an accepted state; that is, the message has been manually read on behalf of the subscriber by customer service.
    • UNKNOWN - The message is in an invalid state.
    • REJECTD - The message is in a rejected state.
  • err- See Delivery receipt status codes and message states.
  • text- Not used in the OpenMarket implementation. This will always be blank.
  • For example,

    id:0116U-10277-1148V-52U78 sub:000 dlvrd:000 submitdate:161027184810 donedate:161027184812 stat:DELIVRD err:4 text:
    id:2116U-10277-1148V-60M23 sub:000 dlvrd:000 submitdate:161027184815 donedate:161027184820 stat:REJECTD err:810 text:

deliver_sm optional PDU parameters

These SMPP v3.4 parameters are always included in a delivery receipt.

Message State

The state of the message.

Tag

Description

0x0427

Type: short

Length: 2 Octets

Value: One of the following:

  • 1 - The message is en route to its destination.
  • 2 - The message is delivered to its destination.
  • 3 - The message validity period has expired.
  • 4 - The message has been deleted.
  • 5 - The message is undeliverable.
  • 6 - The message is in an accepted state; that is, the message has been manually read on behalf of the subscriber by customer service.
  • 7 - The message is in an invalid state.
  • 8 - The message is in a rejected state.

Receipted Message ID

The OpenMarket message ID of a receipted message.

Tag

Description

0x001E

Type: C-Octet String

Length: 2 Octets

Value: The MT ticket ID.

deliver_sm OpenMarket custom TLVs

These are custom OpenMarket TLV parameters. By default, the following TLVs are not returned in delivery receipts. They are only returned if your account has been configured to receive them. To enable custom TLVs returned in delivery receipts, contact OpenMarket Support.

Mobile Operator ID

The mobile operator identifier, returned in a delivery receipt only if your SMS account is configured to receive OpenMarket custom TLVs in a delivery receipt and if the mobile operator ID is known.

Tag

Description

0x2150

Type: Short

Length: 2 Octets

Value: See Mobile Operator IDs.

Note 1

Returned in the delivery receipt if it was sent in the MT.

Tag

Description

0x2168

Type: Octet String

Length: Variable, 1 - 200

Value: Customer-defined, using the default character set on your account.

Note 2

Returned in the delivery receipt if it was sent in the MT.

Tag

Description

0x3031

Type: Octet String

Length: Variable, 1 - 200

Value: Customer-defined, using the default character set on your account.

Status Code

The delivery receipt response code, returned in a delivery receipt only if your SMS account is configured to receive OpenMarket custom TLVs in a delivery receipt.

Tag

Description

0x2153

Type: Short

Length: 2

Value: See Delivery receipt status codes and message states.

Status Code Description

The description associated with status code. This code is encoded using the default character set on your account.

Tag

Description

0x2167

Type: Octet String

Length: Variable, 1 - 200

Value: See Delivery receipt status codes and message states.

deliver_sm_resp PDU parameters

Field Name

Description

Command Length

Length of the PDU in octets.


Size (octets): 4

Type: Integer

Value: Customer-supplied

Command ID

Identifies the type of message the PDU represents. For delivery receipts this will be deliver_sm.


Size (octets): 4

Type: Integer

Value: 0x80000005

Command Status

The outcome of the deliver_sm request.


Size (octets): 4

Type: Integer

Value: OpenMarket-supplied

Sequence Number

The unique OpenMarket sequence number passed in the deliver_sm request.


Size (octets): 4

Type: Integer

Value: Customer-supplied

Message ID

Not used. Set to 0x00 (NULL).


Size (octets): Variable, with a maximum of 65

Type: C-Octet String

Value: 0x00