SMPP Global SMS
Receive a Mobile Originated (MO) message
Short messages can be delivered from OpenMarket to you using the MO operation. The operation supports the deliver_sm request and deliver_sm_resp PDU PDUs. The deliver_sm request sends the message from the SMSC to the ESME, which in turn responds using the deliver_sm_resp PDU. 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.
To receive MO messages, your account must have one of the following types of numbers provisioned:
- Short code (national)
- Long code or VMN
- Landline (US and Canada only)
- Toll-free number (US and Canada only)
End users in regions that support short codes (such as the US, Canada, and the UK) can text into national short codes. They cannot text into a short code that’s provisioned for another region. For all other types of numbers, end users can generally text into these regardless of region. However, if they are sending to another region (e.g. UK to US) they may incur additional charges, or international messaging may be blocked by their mobile operator.
Note that mobile operators cannot route messages to alphanumeric codes (nor do mobile phones generally allow this).
In this topic:
- deliver_sm PDU header
- deliver_sm PDU mandatory parameters
- deliver_sm optional PDU parameter
- deliver_sm OpenMarket custom TLV
- deliver_sm_resp PDU
Retries
If an MO cannot be delivered due to an unconnected bind, or the receiver's system cannot be found, retries are attempted for up to 72 hours.
deliver_sm
The deliver_sm operation requests information about short message delivery from a mobile handset. It is composed of a header and a body that contains PDU and optional OpenMarket TLV parameters, described in the following sections.
deliver_sm PDU header
Parameter |
Description |
---|---|
Command Length |
Length of the PDU in octets. Size (octets): 4 Type: Integer Value: OpenMarket-supplied |
Command ID |
Identifies the type of message the SMPP PDU represents. For MOs this will be deliver_sm. Size (octets): 4 Type: Integer Value: 0x05 |
Command Status |
This field is not used. Set to 0x00 (NULL). Size (octets): 4 Type: Integer Value: 0x00 |
Sequence Number |
A unique OpenMarket-set sequence number. The associated deliver_sm_resp PDU echoes this sequence number back in the response. Size (octets): 4 Type: Integer Value: OpenMarket-supplied |
deliver_sm PDU mandatory parameters
Parameter |
Description |
---|---|
Service Type |
Identifies the command as a version 4 operation. Size (octets): Maximum is 6 Type: C-Octet String Value: OMV4 |
Source Address TON |
The MO source address type of number. Only 1 is supported Size (octets): 1 Type: Integer Value: 0x01 |
Source Address NPI |
The source address numbering plan indicator. If the Source Address NPI is unknown, then set this field is set to 0x00, NULL. Size (octets):1 Type: Integer Value: 0x01 |
Source Address |
Address of the originating short messaging entity (SME). Size (octets): Minimum - 1, maximum - 21 Type: C-Octet String Value: The telephone number of the source user. |
Destination Address TON |
Type of number for the destination. For example, this might be international (1) or short code (3). Size (octets): 1 Type: Integer Value: One of the following:
|
Destination Address NPI |
The destination address numbering plan indicator. Size (octets): 1 Type: Integer Value: Only the following are supported:
|
Destination Address |
The SME destination address. Size (octets): Variable, but a maximum of 21 Type: C-Octet String Value: The MO destination address |
ESM Class |
The message mode and type, indicating any special message attributes associated with the SMS. Size (octets): 1 Type: Integer Value: 0x00 or 0x40 if the short message begins with a user data header (UDH) |
Protocol ID |
Not used. Set to 0x00 (NULL). Size (octets): 1 Type: Integer Value: 0x00 |
Priority Flag |
Not used. Set to 0x00 (NULL). Size (octets): 1 Type: Integer Value: 0x00 |
Scheduled Delivery Time |
Not used. Set to 0x00 (NULL). Size (octets): 1 Type: C-Octet String Value: 0x00 |
Validity Period |
Not used. Set to 0x00 (NULL) Size (octets): 1 Type: C-Octet String, 1 or 17 Value: 0x00 |
Registered Delivery |
Not used. Set to 0x00 (NULL). Size (octets): 1 Type: Integer Value: 0x00 |
Replace if Present Flag |
Not used. Set to 0x00 (NULL) Size (octets): 1 Type: Integer Value: 0x00 |
Data Coding |
Defines the encoding scheme of the short message. Size (octets): 1 Type: Integer Value: Use the following:
See Data Coding Scheme for more information. |
SM Default Message ID |
Not used. Set to 0x00 (NULL). Size (octets): 1 Type: Integer Value: 0x00 |
SM Length |
The length of the Short Message. Size (octets): 1 Type: Integer Value: 1 to 160 |
Short Message |
The message submitted by the end user. The maximum byte length is 160 octets. Size (octets): Variable, 0 to 160 Type: Octet String Value: The contents of the message. |
deliver_sm optional PDU parameter
Parameter |
Description |
---|---|
Receipted Message ID |
The OpenMarket ticket identifier for the MO.
Size (octets): Variable, 1 to 65 Type: C-Octet String Value: Dependent on the OpenMarket ticket ID. For example, this might be 24172-04250-1750M-49UN4. |
deliver_sm OpenMarket custom TLV
The following describes the optional custom OpenMarket deliver TLV parameter, Operator ID. It is only returned if your account has been configured to receive it. To enable this TLV, contact OpenMarket Support.
Operator ID
Tag |
Description |
---|---|
0x2150 |
Type: Short Size (octets): 2 Value: Mobile operator-dependent |
deliver_sm_resp PDU
The deliver_sm_resp PDU returns information about the deliver_sm request. It is composed of a header and a body that contains PDU, described in the following sections.
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 MOs 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: Customer-supplied |
Sequence Number |
The unique sequence number passed in the deliver_sm request. Size (octets): 4 Type: Integer Value: OpenMarket-supplied |
Message ID |
Not used. Set to 0x00 (NULL). Size (octets): Variable, with a maximum of 65 Type: C-Octet String Value: 0x00 |