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
Updated over 1 year ago