Communication protocol

The Short Message Peer-to-Peer (SMPP) protocol is used by applications to communicate with Message Hub. SMPP can be used with or without TLS, application profile permitting. Standard SMPP or Melrose Labs cSMPP can be used with Message Hub.

SMPP operations with Message Hub

SMPP is a session-based protocol. The below diagram shows an example interaction with Messaging Hub using SMPP. In this interaction, after the application has established the SMPP session it submits a message to the hub (submit_sm) and receives a message from the hub (deliver_sm).

Applications submit messages to the hub using the SMPP submit_sm or data_sm PDUs.

Establish SMPP session to Message Hub

Command

Parameter

Usage

bind_transceiver bind_transmitter bind_receiver

system_id

Identifier of application establishing session. 15 characters in length.

password

Password for identifier. 8 characters in length.

system_type

Messaging domain of identifier. 12 characters in length.

interface_version

0x00 or 0x34 (SMPP v3.4); 0x50 (SMPP v5.0)

unbind

Message submission

The data_sm or submit_sm PDU may be used to send messages.

Command

Parameter

Usage

  • *submit_sm data_sm**

source_addr

unused (will be populated with sending application's identifier by the hub)

destination_addr

Identifier of application to where message is to be sent.

registered_delivery

unused (may be used in future version to request delivery receipt)

submit_sm

schedule_delivery_time

Time when hub should first attempt delivery of the message to the destination application. Set to NULL for immediate delivery.

validity_period

Time after which the hub should cease to attempt delivery of the message to the destination application. Set to NULL for default validity period (see maximum time message stored while awaiting delivery).

sm_length

Length of short_message field in bytes

short_message

Message content for destination application. Up to 255 bytes in length.

  • *submit_sm
    data_sm**

message_payload TLV

Message content for destination application. Up to 64 KB in length. If present, sm_length and short_message fields are unused.

Message reception

A message sent using a submit_sm PDU will be received in a deliver_sm PDU.

A message sent using a data_sm PDU will be received in a data_sm PDU.

Command

Parameter

Usage

deliver_sm

short_message

Message from sender. Up to 255 bytes in length.

In future version, can contain delivery receipt to sender of message about the status of a message previously submitted by sender.

  • *deliver_sm
    data_sm**

message_payload TLV

Message from sender. Up to 64 KB in length.

cSMPP - narrowband protocol

cSMPP from Melrose Labs is a variation of the standard SMPP protocol and is for use where data rates can be low or there are other resource constraints (e.g. satellite, IoT). cSMPP is identical to SMPP but uses smaller PDUs.

Read more about cSMPP