SMPP protocol

Short message peer-to-peer protocol (SMPP) — protocol, which defines inter-operation between end client and SMS-server (SMSC).
It's used to transmit SMS and USSD messages, usually in systems with VAS.

SMPP was developed by Aldiscon company from Ireland, which later has been acquired by Logica.
In 1999 SMPP has moved under control of SMPP Developers Forum, later renamed to SMSForum.

Protocol is based on exchange of PDU (protocol data units) which are transmitted on 4 OSI level (TCP/IP sessions or X.25 SVC3).
PDU have binary representation to enhance transmitting efficiency.

Packet exchange can occur either synchronously (after sending message exchange is suspended until answer is received) or asynchronously (messages are sent without delays, responses handling occurs as soon as they arrive).
Smartswitch support asynchronous message exchange mode to support big amount of messages per second.

SMSForum publishes protocol specification.
Until recently the last published specification was SMPP 3.4, and specification SMPP 5.0 belonged to Logica for a long time.
However nowadays it's also available.
Smartswitch at this moment supports specification SMPP 3.4.

Each SMPP connection could be configured in one of following modes:

  • TX (Transmitter) - only transmits messages
  • RX (Receiver) - only receives message
  • TRX (Transceiver) - both transmits and receives messages

These modes map to Smartswitch dial-peers as follows:

  • terminator.
    Could be either TX or TRX.
    TRX mode is needed to pass back a Delivery receipt from terminator.
    You should enabled this mode in case if terminator supports delivery receipts.
  • оригинатор.
    Could be either RX or TRX.
    TRX mode is needed to pass back to originator a Delivery receipt from terminator.
    You should enabled this mode in case if originator supports delivery receipts.
  • gateway.
    Could be TX, RX or TRX.

Also for SMPP connection of a pair of nodes, you need to configure master and slave nodes:

  • SMSC (SMS Center) - master node.
    Accepts incoming connections from ESME.
  • ESME (External Short Messaging Entity) - slave node.
    Performs connection to SMSC.
    When connecting, notifies SMSC desired connection mode (TX/RX/TRX)

Usually originator in Smartswitch is SMSC, and terminator is ESME.
However, similarly to SIP protocol with registration, various schemes are possible.

After successful message delivery to end user (or in case if it's impossible to deliver a message) terminator send to originator a Delivery receipt.
To accept a delivery receipt connection should be done in TRX mode.

See also:

Русский перевод

Also available in: PDF HTML TXT