client and ESME are used interchangeably throughout the document.
(client) opens a connection to the MC in one of the three modes: as a
transmitter, a receiver, or a transceiver. As a transmitter, it can only submit
messages for delivery. As a receiver, it can only receive messages. As a
transceiver, the ESME can both submit and receives messages. The ESME sends the
MC one of the three messages (also known as PDUs): bind_transmitter,
bind_receiver, or bind_transceiver. The MC responds with a
bind_transmitter_resp, bind_receiver_resp, or bind_transceiver_resp, as
appropriate for the request.
connection is established, the ESME can, depending on the mode in which it is
bound to the MC, send a submit_sm or data_sm message, receive a deliver_sm or
data_sm message, or send and receive any of these types of messages. The ESME
can also send ancillary messages, such as query_sm, replace_sm, and cancel_sm,
to query the status of an earlier message delivery, replace an earlier message
with a new message, or cancel an undelivered message.
If a message
is not delivered because an ESME is not available or a mobile subscriber is not
online, the message is queued. Later, when the MC detects that the mobile
subscriber is now reachable, it sends an alert_notification PDU to the ESME
over a receiver or transceiver session, requesting delivery of any queued
PDU has a unique sequence number. The response PDU has the same sequence number
as the original request. Because message exchange over SMPP can be in
asynchronous mode, an ESME or an MC can send multiple requests at a time. The
sequence number plays a crucial role in returning the response in the same SMPP
session. In other words, the sequence number makes request and response
following diagram shows how the traffic flow uses the various PDUs when the
ESME binds as a transceiver.