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:

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:

    • 0x01 - phone number, starting with country code

    • 0x03 - national short code

  • Destination Address NPI

    The destination address numbering plan indicator.


    Size (octets): 1

    Type: Integer

    Value: Only the following are supported:

    • 0x01 - phone number, starting with country code

    • 0x03 - national short code

    • 0x05 - alphanumeric

    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:

    • 0x00 - the default character set on the account.
    • 0x02, 0x04 - binary
    • 0x08 - UCS2

    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