SMPP protocol is a bulk messaging protocol that uses TCP/IP protocol which provides a flexible data communications interface for transfer of short message data between a Message Centre and an SMS application system. While the former centers are SMPP servers (abbreviated as SMSC) provided by SMPP Server Provider, the latter applications are technically termed as client entities (abbreviated as ESMEs).
Working of SMPP Services
Given below is a stepwise operational guide of SMPP protocol that is followed by SMPP Server and SMPP client entities to send and receive bulk messages.
Connection establishment
Ideally, both the SMPP entities namely, SMSC and ESME are disconnected in idle conditions. Whenever the business unit or client entity wishes to send/receive messages from/to the target audiences, it needs to establish a firm and secured connection with SMPP Server API.
In order to establish this connection, the ESME issues a connection request using a technical command bind_transceiver. If the SMSC is idle at the instance when the request is received, it acknowledges the request with bind_transceiver _resp.
With this response achieved, an SMPP connection is successfully established between server and client entity. Once the connection is sealed, it shall be uninterrupted by any external sources until and unless the intended trans-reception of bulk SMS to and from mobile networks transact with the ESME. Getting hold of a reliable SMPP server provider ensures a secured transactional connection that complies rightly with the SMPP standards.
Transmission of data
As soon as the connection is established, the transmission of data starts depending upon the SMPP standard being used. The transmitted/received data is nothing but the messages that are intended to be sent or purposed to be received by ESME.
Here it is worth knowing that the messages which are sent from client application to the SMPP server are termed as Mobile terminated messages (generally abbreviated as MT messages) whereas the messages which are received from SMSC to ESME are known as Mobile originated aka MO messages.
While the former messages get there name MT SMS because they are sent to mobile phones, the latter owe their name to the process of being originated by mobile phones.
The data is transferred between the two pivotal entities in any of the three given modes depending on the SMPP standards being used.
Transmitting mode
In this mode, the ESME acts as a transmitter and can submit messages to the SMPP server. Thus, only MT messages are entertained in the process whereas MT messages hold no existence. It is needless to mention that this mode only supports unidirectional forward data transfer.
Receiving Mode
In receiver mode, the ESME acts as a receiver whereas SMSC terms to be the transmitter. Thus, only MO messages are procured in the process whereas MT messages hold no significance.
This mode also supports only one directional data flow, i.e. from SMSC to ESME. Apart from the receiving messages, incoming data for ESME also includes message delivery reports, SMS statistics, Success and failure estimated, etc.
Transceiver Mode
In this mode of SMPP data transfer, both units namely SMPP server and SMPP client act as receivers and transmitters. Thus, both the entities pertain the potential of sending as well as receiving bulk messages using TCP/IP protocol and SMPP standards. Understanding the terminology, both MT and MO messages are entertained in the process.
Connection Termination
Once the entire set of data is transmitted by the two entities, either if the (depending on the mode of data transmission) initiates a connection termination request and launches on the other entity.
This process of termination is technically known as unbinding and thus the request command used is unbind. Assumingly, if the unbinding request is initiated by the ESME, the bearer SMSC responds it with an unbind_resp response. This response is treated as an acknowledgment and the TCP based connection terminates making both SMPP server and ESME in the idle state again.
Generally, the TCP disconnection is performed after successful completion of the unbinding process. However, in some cases, the TCP disconnects even before the unbinding phase completes. Once the SMPP server is set back to the idle condition, it can be used by some other ESME based on TDMA concept for sending and receiving tons of bulk messages.