SMPP: Short Message Peer-to-Peer Protocol

Quick definition: SMPP, or Short Message Peer-to-Peer Protocol,
is the system of rules that lets devices and software applications
send and receive text messages over the internet.

SMPP: Short Message Peer-to-Peer Protocol

SMPP is essentially the language cellular networks use to relay text messages. It governs how External Short Message Entities (ESME) such as business texting apps and cellular IoT devices exchange Short Message Services (SMS) with a mobile device. All SMS communications have to go through a network provider’s Short Message Service Center (SMSC). Computers need a third-party system such as an SMS gateway or SMPP gateway to connect to the service center, and then the gateway and SMSC use SMPP to govern the interaction.
Here’s what it looks like:

How does the SMPP work?

When an SMS-enabled device or application wants to send a text to another device, it initiates an SMPP session with a cellular carrier’s Message Center (MC), also known as an SMSC.
During the session, the device and the Message Center use the SMPP protocol to send requests (or commands) and respond to one another. They package these requests and responses as “Protocol Data Units” (PDUs). It’s how they define whether an External Short Message Entity (ESME) is going to send or receive an SMS communication (or do both), and how they actually relay the information.

SMPP Protocol : API to enable SMS messaging between applications and mobiles.The SMPP (Short Message Peer-to-Peer) protocol is an open, industry standard protocol designed to provide a flexible data communications interface for the transfer of short message data between External Short Message Entities (ESME), Routing Entities (RE) and Message Centres (MC). It is a means by which applications can send SMS messages to mobile devices and receive SMS from mobile devices. This is done using an SMPP connection with a Short Message Service Center (SMSC), SMS gateway (UK), SMPP gateway or hub.

SMPP sessions

There are four types of SMPP sessions, three of which are initiated by the ESME, and the MC initiates the other.

Transmitter (TX)

An ESME will initiate a session as a transmitter in order to send SMS messages to a mobile device. It can also use a transmitter session to cancel previously sent messages. Since it sends these messages to a mobile device, they’re also known as mobile terminated messages.

Receiver (RX)

An ESME will initiate a session as a receiver in order to receive SMS messages from a mobile device. Since these messages originate from the mobile device, they’re also known as mobile originated devices.

Transceiver (TRX)

Transceiver sessions allow ESMEs to both send and receive SMS messages. The oldest version of the SMPP doesn’t allow this type of session.

Protocol data units (PDUs)

PDUs contain the actual commands and responses the SMSC and MC send to each other, formatted according to the protocol.

At the start of every session, a bind command defines the type of interaction that will take place. For example, to initiate a transmitter session, the SMSC sends a PDU with the command bind_transmitter. This initial PDU also contains the ESME’s identification, type, and a password. It also specifies which version of the SMPP the ESME is using, so the MC knows how to interpret the commands and which PDUs can be used.

PDUs also define which direction an SMS communication is coming from. If an ESME wants to send a text message, for example, the SMSC sends the request submit_sm to the MC.