Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

SMPP

-Stands for Short Message Peer to Peer Protocol


-SMPP is used to send and receive messages from and to GSM, UMTS, iDEN, CDMA and TDMA cell phones.
-The protocol is a level-7 TCP/IP protocol, which allows fast deliver of SMS messages.
-Using the SMPP protocol instead of sending messages using a GSM modem has the following advantages:

The SMPP protocol is TCP/IP based, GSM hardware is not required;

Users can send SMS to a simple Shortcode, this is not possible when sending to a GSM phone;

High throughput ( up to 200 msgs /second);

Alphanumeric sender address can be assigned.


Applications

SMPP can be used for the following applications:

Sending Voicemail alerts to mobile users;

Sending SMS notifications to mobile users, for instance when a server is down, or to notify students that a lesson is cancelled;

Information services : sending stock exchanges, traffic jam alerts or weather forecasts;

Voting, process votes from mobile users (Requesting music on the radio;

MMS notifications, when users pay for ringtones and Java applications, the download location is send by a MMS notification
or WAP Push message;

Telemetry applications.
Connections

-SMPP is used by clients to connect to a SMSC (Short Message Service Centre)


-In SMPP terms, the client is called ESME (Extended Short Message Entity). SMSC's can also exchange data using a SMPP
connection.
-Messages Send to a SMSC are called MT (Mobile Terminated) messages, because they are sent to a mobile phone. Messages received
from a SMSC are called MO (Mobile Originated) messages, because they were sent from a mobile phone.
-When an ESME establishes a connection using SMPP, this can be done in three modes: Transmitter, the ESME can only submit
messages to the SMSC; Receiver, the ESME can only receive messages or delivery reports from the SMSC; Transceiver, the EMSE
can bot send and receive messages to and from the SMSC.
SMPP PDU's
The TCP packets between the ESME and the SMSC are called PDU's (Protocol Data Units). The following types of PDU's are used in
SMPP connections:

Session Management PDUs


Connecting, disconnection and connection keep alive.

Message Submission PDUs


Submitting messages to a mobile phone.

Message Delivery PDUs


Delivery of messages to the SMPP client.

Ancillary Operations PDUs


Message query, cancel and replacement.
The following SMPP PDU's are used the most:
bind_transmitter / bind_receiver / bind_transceiver
Used to connect the client with the SMSC, in SMPP sessions a system ID and password are used for authentication.

submit_sm
Used to submit a single message from the client to the SMSC ( MT ). This packet contains the sender and
recipient address, message body and some optional parameters.
deliver_sm
When a messages has to be delivered to the client this packet is used ( MO ). It contains information about the sender of the message
and the message body. This PDU is also used to send delivery reports to the ESME.

query_sm
To query the state of a previously sent message, this command is used. You need a message reference to query a message. Most
provider require you to use delivery reports instead of querying the messages all the time.

enquire_link
This packet is sent once in every x minutes to check if the connection is still alive. If not, the connection is terminated. This packet is
also used to keep dial-up connections alive ( for instance ISDN ). The most used timeout for SMPP connections is one minute.

unbind

Used to end the session and disconnect the TCP/IP connection.

Connection examples
Sending Messages

Receiving Messages

SMPP optional parameters


To extend the SMPP protocol with extra parameters, TLV parameters, also called optional parameters were introduced in the SMPP
protocol since version 3.4:

TLVs are used to make the existing PDUs more efficient;

TLVs are used to enhance existing PDUs with new features;

TLV Stands for Tag-Length-Value field;

TLVs are supported in SMPP version 3.4 and higher.

Some commonly used TLV's are:

message_payload TLV
Used to encode large messages. The submit_sm PDU can be used to messages up to 255 chars only. This PDU improves performance,
for instance: when you need to send a message containing 315 characters you only have to send one packet instead of two. This
doubles the throughput.

sar_msg_ref_num, sar_segment_seqnum, sar_total_segments TLVs


Segmentation And Reassembly. These TLVs are used to send a long message in multiple parts.
sar_msg_ref_num - Reference of the concatenated message.
sar_segment_seqnum - ID of the current segment.
sar_total_segments - Total number of segments.
Please note that not all SMPP providers implement all TLV parameters.

You might also like