Short Message Peer-to-Peer (SMPP) is a fundamental language which enables transmission of text messages. It functions as the governing protocol through which ESME or External Short Message Entities, encompassing business texting applications and cellular IoT devices, interact with mobile devices using Short Message Services (SMS). SMPP facilitates the flow of SMS communications via a network provider's Short Message Service Center (SMSC). To establish a connection between computers and the service center, an intermediary system such as an SMS gateway or SMPP gateway is required. Subsequently, the gateway and SMSC utilize the SMPP protocol to govern their interactions.
What Are the Mechanics of SMPP?
When an SMS-enabled device or application wants to send a text message, it initiates an SMPP session with a cellular carrier's Message Center (MC) or Short Message Service Center (SMSC). During this session, the device and the Message Center communicate using the SMPP protocol. The communication between the device and the Message Center is carried out through Protocol Data Units (PDUs). PDUs are used to package and exchange commands and responses between the two entities. They define the nature of the SMS communication, such as whether the ESME is sending or receiving a message. The Message Center acts as a mediator, accepting or rejecting the SMS transmission on behalf of the recipient. If a gateway is involved in the communication, it also serves as a mediator, relaying information to and from the Message Center.
Types of SMPP Sessions
SMPP sessions can be categorized into four types:
Transmitter (TX) is initiated by ESME to send SMS messages to a mobile device as well as cancel previously sent messages.
Receiver (RX) is used to receive SMS messages initiated by a mobile device itself.
Transceiver (TRX) enables ESMEs to both send and receive SMS messages. However, the earliest version of SMPP does not support this session type.
Outbind Session represents an SMPP session initiated by the MC.
Protocol Data Units (PDUs)
PDUs encapsulate the commands and responses exchanged between the SMSC and MC, adhering to the defined protocol. At the beginning of each session, a bind command is issued to specify the nature of the interaction. For instance, to initiate a transmitter session, the SMSC sends a PDU with the command "bind_transmitter." This initial PDU includes the ESME's identification, type, password, and the version of SMPP employed, enabling the MC to interpret the commands and determine compatible PDUs. The direction of SMS communication is also defined within PDUs. For instance, if an ESME intends to send a text message, the SMSC dispatches a "submit_sm" request to the MC.
SMPP Versions
The version of SMPP employed must be explicitly defined during each session, as it determines the permissible interaction methods between the two entities. There’re three versions of SMPP:
SMPP v3.3
SMPP v3.4
SMPP v5.0
Applications of SMPP in IoT
Some notable applications of SMPP in IoT include real-time environmental monitoring, smart home security systems, fleet management, asset tracking, and remote device management. With SMPP, IoT devices can send critical alerts, receive commands, transmit data updates, and establish bidirectional communication, enhancing the functionality and connectivity of IoT ecosystems.