Version

SMPP Architecture & Components

As mentioned before, SMPP consists of a set of standardized components that enable the exchange of SMS messages between applications and mobile networks. The core components of SMPP include the ESME, the SMSC, and the SMPP Gateway.

ESME (External Short Message Entity):

An ESME is a non-mobile entity that communicates with an SMSC to send and receive SMS messages. Examples of ESMEs include web applications, email gateways, WAP gateways, and enterprise messaging systems.
ESMEs can function as:

  • Transmitter: For sending messages only. Messages sent from the ESME (Transmitter) to the SMSC. Typically used for marketing messages, alerts, and notifications.
  • Receiver: For receiving messages only. Messages sent from the SMSC to the ESME (Receiver). Commonly involves delivery receipts, inbound messages from users, and status updates.
  • Transceiver: Messages exchanged in both directions. Enables two-way messaging through a single connection, allowing the ESME to both send and receive messages.

SMSC (Short Message Service Center):

The SMSC is a central component that stores, forwards, converts, and delivers SMS messages. It acts as an intermediary between mobile devices and ESMEs. The SMSC handles message routing, delivery status tracking, and retries in case of temporary delivery failures. It also manages message storage if the recipient is temporarily unreachable.

SMPP Gateway:

An SMPP Gateway serves as a bridge between the SMPP protocol and other messaging protocols or networks. It enables ESMEs to connect to multiple SMSCs across different networks using a single interface. SMPP Gateways simplify integration by handling protocol conversions, message routing, and load balancing, ensuring seamless communication between different messaging systems and mobile networks.

Message Flow:

The message flow in SMPP involves the following steps:

  1. Connection Establishment. The ESME initiates a connection with the SMSC or SMPP Gateway using a bind request (either bind_transmitter, bind_receiver, or bind_transceiver), along with authentication credentials (system_id and password). Upon successful authentication, the SMSC responds with a bind response confirming the connection.
  2. Message Submission. To send an SMS, the ESME submits a submit_sm PDU containing the source address, destination address, message content, and optional parameters (such as message validity period and delivery receipt request). The SMSC acknowledges the message submission by returning a submit_sm_resp PDU with a message ID for tracking purposes.
  3. Message Delivery to Mobile Network. The SMSC processes the message and forwards it to the appropriate mobile network for delivery to the recipient’s mobile device. If the recipient is unreachable, the SMSC stores the message temporarily and attempts redelivery until it succeeds or the validity period expires.
  4. Delivery Receipts. If the ESME requested a delivery receipt, the SMSC sends a deliver_sm PDU back to the ESME once the message has been delivered to the recipient. The delivery receipt includes information such as the message status (e.g., delivered, expired, undelivered) and a timestamp indicating when the delivery occurred.
  5. Receiving Messages. For inbound SMS messages, the SMSC forwards them to the ESME using the deliver_sm PDU. The ESME must acknowledge receipt by responding with a deliver_sm_resp PDU.
  6. Connection Maintenance. To ensure the connection remains active, the ESME and SMSC may exchange enquire_link PDUs periodically. If the connection is inactive for too long, it may be terminated by either side.
  7. Connection Termination. To close the connection, the ESME sends an unbind PDU to the SMSC. The SMSC responds with an unbind_resp PDU, formally ending the session.

Typical SMPP session sequences for an ESME acting as a ReceiverTransmitter, and Transceiver, respectively, are as follows:

Start innovating with Mobius

What's next? Let's talk!

Mobius Software

As a company you'll get:

  • Get started quickly

  • Support any business model

  • Join millions of businesses

Questions? websupport@mobius.com