SMPP

Short Message Peer-to-Peer Protocol

Protocol
Introduced in R99
Short Message Peer-to-Peer Protocol (SMPP) is an open, industry-standard protocol designed for exchanging SMS messages between Short Message Service Centers (SMSCs) and external messaging entities like ESMEs. It enables high-volume SMS submission, delivery, and query operations, forming the backbone for many value-added SMS services.

Description

The Short Message Peer-to-Peer Protocol (SMPP) is a telecommunications industry protocol operating at the application layer, primarily used for the transfer of short message data between a Short Message Service Center (SMSC) and an External Short Message Entity (ESME). An ESME can be a variety of applications, including web servers, email gateways, or other messaging platforms that need to send or receive SMS messages. SMPP uses a client-server model, where the ESME typically acts as an SMPP client (transmitter, receiver, or transceiver) that establishes a persistent TCP/IP or X.25 connection to the SMSC, which acts as the SMPP server. The protocol defines a suite of operations communicated via Protocol Data Units (PDUs) that allow for session management, message submission, message delivery, and query operations.

The protocol operates through a series of bind operations (bind_transmitter, bind_receiver, bind_transceiver) that authenticate the ESME and define its role. Once bound, the ESME can submit messages to the SMSC for delivery using the submit_sm PDU, which contains parameters like source address (ton, npi), destination address, data coding scheme, and the message payload (either standard GSM 7-bit default alphabet, 8-bit data, or UCS-2 for Unicode). For receiving messages, the SMSC will deliver messages destined for the ESME using the deliver_sm PDU. SMPP also supports advanced features like message replacement, multi-part (concatenated) messages via the UDH (User Data Header), and optional parameters (TLVs) for enhanced functionality. The protocol includes flow control mechanisms and requires regular keep-alive messages (enquire_link) to maintain the session.

SMPP's architecture is highly efficient for bulk messaging scenarios. It supports both synchronous and asynchronous communication modes. In synchronous mode, a request PDU expects a corresponding response PDU. Asynchronous mode allows for unsolicited PDUs, such as delivery receipts (delivery receipts are conveyed via a deliver_sm PDU with a specific esm_class setting) or alerts from the SMSC. The protocol's binary nature and session-oriented design minimize overhead, making it suitable for high-throughput environments. While originally developed by Aldiscon (later Logica, now part of Mobileum) and then widely adopted, its descriptions and usage guidelines were incorporated into 3GPP specifications (like 23.040 and the now-withdrawn 23.039) to ensure interoperability within the GSM/UMTS ecosystem, though it remains an industry standard beyond strict 3GPP boundaries.

Purpose & Motivation

SMPP was created to address the growing need for a standardized, efficient, and reliable interface between SMSCs and the expanding universe of external applications and service providers. In the early days of SMS, SMSCs were largely closed systems with proprietary interfaces, making it difficult and costly for third parties to develop value-added services (VAS) like news alerts, banking notifications, or interactive voting. This limitation stifled innovation in the SMS ecosystem. SMPP provided an open, well-documented protocol that abstracted the complexities of the underlying network, allowing application developers to focus on service logic rather than low-level telecommunications integration.

Historically, as SMS usage exploded beyond person-to-person messaging, the demand for application-to-person (A2P) and person-to-application (P2A) services grew. Operators needed a way to securely and scalably connect their SMSCs to external entities like content aggregators, enterprise systems, and internet gateways. SMPP solved this by defining a clear client-server model with robust authentication, support for high-volume transactions, and features essential for commercial services, such as delivery receipts, which are critical for billing and service assurance. Its adoption by major SMSC vendors made it the de facto standard for SMS gateway interfaces.

The protocol also addressed technical limitations of earlier methods, such as using simple modem AT commands or proprietary binary protocols, which were not scalable, lacked advanced features, and suffered from interoperability issues. By providing a session-oriented, connection-based protocol over reliable transport layers (TCP/IP), SMPP ensured message integrity, enabled flow control, and supported the bidirectional communication needed for both sending and receiving messages. Its flexibility in supporting various data codings and optional parameters allowed it to evolve alongside SMS technology, supporting features like concatenated messages, flash SMS, and WAP push indicators, thereby future-proofing investments in messaging infrastructure.

Key Features

  • Open, binary protocol for high-efficiency SMS exchange over TCP/IP or X.25
  • Supports multiple ESME roles: Transmitter, Receiver, and Transceiver
  • Comprehensive PDU set for session management, message submission, delivery, and query
  • Native support for delivery receipts and message replacement
  • Handles concatenated (long) SMS via User Data Header (UDH) parameters
  • Extensible through optional parameter fields (TLVs) for vendor-specific data

Evolution Across Releases

R99 Initial

Formally referenced and described within 3GPP specifications to standardize the interface between SMSCs and External Short Message Entities (ESMEs). This initial inclusion aimed to ensure interoperability for SMS-based services in GSM and UMTS networks, covering basic submission, delivery, and query operations.

Defining Specifications

SpecificationTitle
TS 23.039 3GPP TS 23.039
TS 23.140 3GPP TS 23.140