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

CommandParameterUsage
bind_transceiver
bind_transmitter
bind_receiver
system_idIdentifier of application establishing session. 15 characters in length.
passwordPassword for identifier. 8 characters in length.
system_typeMessaging domain of identifier. 12 characters in length.
interface_version0x00 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.

CommandParameterUsage
submit_sm
data_sm
source_addrunused (will be populated with sending application's identifier by the hub)
destination_addrIdentifier of application to where message is to be sent.
registered_deliveryunused (may be used in future version to request delivery receipt)
submit_smschedule_delivery_timeTime when hub should first attempt delivery of the message to the destination application. Set to NULL for immediate delivery.
validity_periodTime 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_lengthLength of short_message field in bytes
short_messageMessage content for destination application. Up to 255 bytes in length.
submit_sm
data_sm
message_payload TLVMessage 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.

CommandParameterUsage
deliver_smshort_messageMessage 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 TLVMessage 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