smpp message id

What is the SMPP message-id?

In another tutorial, we have described the SMPP protocol to understand the protocol.  A user can submit a short message to the SMSC over SMPP and gets an asynchronous delivery report with a unique message Id. The SMPP message-id correlates the further SMPP message and delivery report. How all this works, we will explain here and how 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, and ESME authorizes itself with the SMPP Server.  Before sending any command to the SMSC an ESME first connects to the SMSC over TCP protocol.

There can be three types of SMPP Bind.

Bind Transmitter – The ESME uses this command to bind on SMSC, only 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 Length The total length of the SMPP Bind Message.
Command Id Integer Value (0x02) for SMPP bind message.
Command Status Zero (0), means no error. The command status is used in
Response messages.
Sequence Number An integer value. SMPP allows an asynchronous model for request and response correlation using the sequence number.
System Id An identifier for the ESME account on the SMPP server.
Password Password for the SMPP account for ESME.
System Type The type of ESME wishes to send messages. Could be a Value Added Service provider.
Interface Version The 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 Indicator One 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)
18Set to Unknown if don’t know
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 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 request and a message-id (generated by SMSC locally).   After submitting a short message,
SMSC tries to deliver the short message to the mobile device using visiting MSC.

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

Leave a Comment