What is the SMPP message-id?

In another tutorial, we have described the SMPP protocol to understand the basic functionality of SMPP. A sender can submit a short message to the SMSC over SMPP and get an asynchronous delivery report with a unique message Id.

The SMPP message-id correlates with the further SMPP message and delivery report. How does all this work? We will explain here how the SMPP  message-id is used.

SMPP Bind command:

When an external short message entity (ESME) wants to send a short message to a mobile device, the SMPP bind is the first protocol procedure. Using SMPP bind, ESME authorizes itself with the SMPP Server. Before sending any command to the SMSC, an ESME connects to the SMSC over TCP protocol.

There can be three types of SMPP Bind.

Bind Transmitter – The ESME only uses this command to bind on SMSC to send short messages.

Bind Receiver – The ESME can only receive short messages.

Bind Transceiver – ESME can send and receive short messages.

In SMPP bind,  ESME sends the following SMPP bind parameters to the SMPP server.

Parameters Description
Command LengthThe total length of the SMPP Bind Message.
Command IdInteger Value (0x02) for SMPP bind message.
Command StatusZero (0) means no error. The command status is used in
Response messages.
Sequence NumberAn integer value. SMPP allows an asynchronous request and response correlation model using the sequence number.
System IdAn identifier for the ESME account on the SMPP server.
PasswordPassword for the SMPP account for ESME.
System TypeThe type of ESME wishes to send messages. Could be a Value Added Service provider.
Interface VersionThe version of the SMPP protocol an ESME wishes to use with the SMPP server.
Type Of Number(TON)Type of number an ESME wants to serve. For sending a short message,  TON is used over SS7 also. The following are the possible values.





Network-Specific (3)

Subscriber Number(4)

Alphanumeric (5)

Abbreviated (6)

If Not known can be set to zero or NULL.

Numbering Plan IndicatorOne byte Integer Value,
Unknown – 0
ISDN (E163/E164) – 1
Data (X.121) – 3
Telex (F.69) -4
Land Mobile (E.212) – 6
National -8
Private -9
ERMES – 10
Internet (IP) 000014
WAP Client Id (to be
defined by WAP Forum)
18 Set to Unknown.
Address Range.This represents the set of ranges an ESME wishes to process. The range can be given using regular expressions, e.g., 9184*. In this example, ESME will process all numbers starting with 9891. The SMSC sets the routing for Mobile originated messages towards ESME. So this parameter is specified only in the Bind Receiver and Bind Transceiver types of a BIND command.

Use of SMPP message Id :

After a successful bind, ESME sends a short message to the SMSS using a submit sm protocol message. SMSC sends a submit sm response. The successful submit sm response contains the same sequence number as in the request and a message-id (generated by SMSC locally).   After submitting a short message,
SMSC tries to deliver a short message to the mobile device using visiting MSC.

The outcome (success/failure ) is conveyed in SMPP deliver-sm message to the ESME. It has the same SMPP message-id that was present in the submit_sm response.