Short Message Peer to Peer Protocol Specification v3.4


NOTE (1): ActiveXperts SMS Component provides developers with a fast and reliable SMPP API. Simply connect to the SMPP provider, bind using your credentials and call SubmitSms to send out the messages. Read more »

NOTE (2): ActiveXperts SMS Messaging Server is an SMS messaging framework to allow sending, receiving and processing SMS messages. It is designed to implement any project that requires SMS messaging. Read more »


Table of Content


4. SMPP PDU Definition


4.1 "BIND" Operation

The purpose of the SMPP bind operation is to register an instance of an ESME with the SMSC system and request an SMPP session over this network connection for the submission or delivery of messages. Thus, the Bind operation may be viewed as a form of SMSC login request to authenticate the ESME entity wishing to establish a connection.

As described previously, an ESME may bind to the SMSC as either a Transmitter (called ESME Transmitter), a Receiver (called ESME Receiver) or a Transceiver (called ESME Transceiver). There are three SMPP bind PDUs to support the various modes of operation, namely bind_transmitter, bind_transceiver and bind_receiver. The command_id field setting specifies which PDU is being used.

An ESME may bind as both an SMPP Transmitter and Receiver using separate bind_transmitter and bind_receiver operations (having first established two separate network connections). Alternatively an ESME can also bind as a Transceiver having first established a single network connection.

If an SMSC does not support the bind_transmitter and bind_receiver operations then it should return a response message with an "Invalid Command ID" error and the ESME should reattempt to bind using the bind_transceiveroperation. Similarly if an SMSC does not support the bind_transceiver command then it should return a response message with an "Invalid Command ID" error and the ESME should reattempt to bind using the bind_transmitter or bind_receiver operations or both bind_transmitter and bind_receiver operations as appropriate.

ESME Transmitter

An ESME bound as a Transmitter is authorised to send short messages to the SMSC and to receive the corresponding SMPP responses from the SMSC.

An ESME indicates its desire not to receive (mobile) originated messages from other SME's (e.g. mobile stations) by binding as a Transmitter.

Refer to section 2.3 for a summary list of the SMPP PDUs available to an ESME Transmitter.

ESME Receiver

An ESME bound as a Receiver is authorised to receive short messages from the SMSC and to return the corresponding SMPP message responses to the SMSC.

Refer to section 2.3 for a summary list of the SMPP PDUs available to an ESME Receiver.

ESME Transceiver

An ESME bound as a Transceiver is allowed to send messages to the SMSC and receive messages from the SMSC over a single SMPP session.

Refer to section 2.3 for a summary list of the SMPP PDUs available to an ESME Transceiver.

4.1.1 "BIND_TRANSMITTER" Syntax

The format of the SMPP bind_transmitterPDU is defined in the following table.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerDefines the overall length of the bind_transmitterPDU.5.1.1
command_id4IntegerValue corresponding to bind_transmitterrequest.5.1.2
command_status4IntegerNot used in bind_transmitterPDU. Must be set to NULL.5.1.3
sequence_numbera4IntegerSet to a unique sequence number. The associated bind_transmitter_resp PDU will echo the same sequence number.5.1.4
Body
system_idbVar.max 16C-Octet StringIdentifies the ESME system requesting to bind as a transmitter with the SMSC.5.2.1
passwordcVar.max 9C-Octet StringThe password may be used by the SMSC to authenticate the ESME requesting to bind.5.2.2
system_typedVar.13C-Octet StringIdentifies the type of ESME system requesting to bind as a transmitter with the SMSC.5.2.3
interface_version1IntegerIndicates the version of the SMPP protocol supported by the ESME.5.2.4
addr_ton1IntegerIndicates Type of Number of the ESME address. If not known set to NULL5.2.5
addr_npi1IntegerNumbering Plan Indicator for ESME address. If not known set to NULL.5.2.6
address_rangeVar.max 41C-Octet StringThe ESME address. If not known set to NULL.5.2.7
Table 4-1: SMPP bind_transmitter PDU

a. There is no specific requirement on how the sequence_number should be set. However, it is recommended that the sequence number be a monotonically increasing number.

b. The recommended use of system_id is to identify the binding entity, e.g., "InternetGW" in the case of an Internet Gateway or 'VMS' for a Voice Mail System.

c. The password is used for authentication to secure SMSC access. The ESME may set the password to NULL to gain insecure access (if allowed by SMSC administration).

d. The system_type (optional) may be used to categorise the system, e.g., "EMAIL", "WWW", etc.

4.1.2 "BIND_TRANSMITTER_RESP" Syntax

The SMPP bind_transmitter_resp PDU is used to reply to a bind_transmitter request. The format of the SMPP bind_transmitter_resp PDU is defined in the following table.

Field Name Size octets Type Description Ref.
command_length4IntegerDefines the overall length of the bind_transmitter_resp PDU.5.1.1
command_id4IntegerValue corresponding to bind_transmitter_resp.5.1.2
command_status4IntegerIndicates status (success or error code) of original bind_transmitter request.5.1.3
sequence_number4IntegerSet to sequence number of original bind_transmitterrequest.5.1.4
system_idVar.max 16C-Octet StringSMSC identifier. Identifies the SMSC to the ESME.5.2.1
OPTIONAL PARAMETERS for BIND_TRANSMITTER_RESP
sc_interface_versionTLVSMPP version supported by SMSC5.3.2.25
Table 4-2: bind_transmitter_resp PDU

Note: The body portion of the SMPP bind_transmitter_resp PDU is not returned if the command_status field contains a non-zero value; i.e., if there is an error in the original bind_transmitter request, the SMSC system_id is not returned.

4.1.3 "BIND_RECEIVER" Syntax

The format of the SMPP bind_receiverPDU is defined in the following table.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerDefines the overall length of the PDU in octets.5.1.1
command_id4IntegerValue corresponding to bind_receiver request.5.1.2
command_status4IntegerNot used in bind_receiverPDU. Set to NULL.5.1.3
sequence_numbera4IntegerSet to a unique sequence number. The associated bind_receiver_resp PDU will echo the same sequence number.5.1.4
Body
system_idbVar.max 16C-Octet StringIdentifies the ESME system requesting to bind as a receiver with the SMSC.5.2.1
passwordcVar.max 9C-Octet StringThe password may be used by the SMSC for security reasons to authenticate the ESME requesting to bind.5.2.2
system_typedVar.max 13C-Octet StringIdentifies the type of ESME system requesting to bind as a receiver with the SMSC.5.2.3
interface_version1IntegerIdentifies the version of the SMPP protocol supported by the ESME.5.2.4
addr_tone1IntegerType of Number (TON) for ESME address(es) served via this SMPP receiver session. Set to NULL if not known.5.2.5
addr_npie1IntegerNumbering Plan Indicator (NPI) for ESME address(es) served via this SMPP receiver session. Set to NULL if not known.5.2.6
address_rangeeVar.max 41C-Octet StringA single ESME address or a range of ESME addresses served via this SMPP receiver session. The parameter value is represented in UNIX regular expression format (see Appendix A). Set to NULL if not known.5.2.7
Table 4-3: SMPP bind_receiver PDU

4.1.4 "BIND_RECEIVER_RESP"

The format of the SMPP bind_receiver_resp PDU is defined in the following table.

Field Name Size octets Type Description Ref.
command_length4IntegerDefines the overall length of the PDU.5.1.1
command_id4IntegerValue corresponding to bind_receiver_resp.5.1.2
command_status4IntegerIndicates status (success or errorcode) of original bind_receiver request.5.1.3
sequence_number4IntegerSet to sequence number of original bind_receiverrequest.5.1.4
Body
system_idVar.max 16C-Octet StringSMSC identifier. Identifies the SMSC to the ESME.5.2.1
OPTIONAL PARAMETERS for BIND_RECEIVER_RESP
Optional Parameter Name TypeDescriptionRef.
sc_interface_version TLVSMPP version supported by SMSC5.3.2.25
Table 4-4: bind_receiver_resp PDU

Note: The bind_receiver_resp PDU Body is not returned if the command_status field contains a non-zero value, i.e., if there is an error in the original bind_receiver request, the SMSC system_id is not returned.

4.1.5 "BIND_TRANSCEIVER" Syntax

The format of the SMPP bind_transceiverPDU is defined in the following table.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerDefines the overall length of the PDU.5.1.1
command_id4IntegerValue corresponding to bind_transceiver request.5.1.2
command_status4IntegerNot used in bind_transceiverPDU. Set to NULL.5.1.3
sequence_numbera4IntegerSet to a unique sequence number.The associated bind_transceiver_resp PDU will echo the same sequence number.5.1.4
Body
system_idbVar.max 16C-Octet StringIdentifies the ESME system requesting to bind as a transceiver with the SMSC.5.2.1
passwordcVar.max 9C-Octet StringThe password may be used by the SMSC to authenticate the ESME requesting to bind.5.2.2
system_typedVar.max 13C-Octet StringIdentifies the type of ESME system requesting to bind as a transceiver with the SMSC.5.2.3
interface_version1IntegerIdentifies the version of the SMPP protocol supported by the ESME.5.2.4
addr_tone1IntegerType of Number (TON) for ESME address(es) served via this SMPP transceiver session. Set to NULL (Unknown) if not known.5.2.5
addr_npie1IntegerNumbering Plan Indicator (NPI) for ESME address(es) served via this SMPP transceiver session. Set to NULL (Unknown) if not known.5.2.6
address_rangeeVar.max 41C-Octet StringA single ESME address or a range of ESME addresses served via this SMPP transceiver session. This field may be used by the SMSC for authentication, verification or routing purposes. Set to NULL if not known.5.2.7
Table 4-5: SMPP bind_transceiver PDU

4.1.6 "BIND_TRANSCEIVER_RESP"

The format of the SMPP bind_transceiver_respPDU is defined in the following table.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerDefines the overall length of the PDU.5.1.1
command_id4IntegerValue corresponding to bind_transceiver_resp.5.1.2
command_status4IntegerIndicates status (success or error code) of original bind_transceiver request.5.1.3
sequence_number4IntegerSet to sequence number of original bind_transceiverrequest.5.1.4
Body
system_idVar.max 16C-Octet StringSMSC identifier. Identifies the SMSC to the ESME.5.2.1
OPTIONAL PARAMETERS for BIND_RECEIVER_RESP
Optional Parameter NameTypeRef 
sc_interface_versionTLVSMPP version supported by SMSC5.3.2.25
Table 4-6: bind_transceiver_resp PDU

4.1.7 "OUTBIND" Operation.

This operation is used by the SMSC to signal an ESME to originate a bind_receiverrequest to the SMSC.

4.1.7.1 "OUTBIND" Syntax

The format of the SMPP outbind PDU is defined in the following table.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerDefines the overall length of the PDU.5.1.1
command_id4IntegerValue corresponding to outbind.5.1.2
command_status4IntegerNot used in outbindPDU. Set to NULL.5.1.3
sequence_number4IntegerSet to a unique sequence number.5.1.4
system_idVar.max 16C-Octet StringSMSC identifier. Identifies the SMSC to the ESME.5.2.1
Header
passwordaVar.max 9C-Octet StringThe password may be used by the ESME for security reasons to authenticate the SMSC originating the outbind.5.2.2

4.2 "UNBIND" Operation

The purpose of the SMPP unbind operation is to deregister an instance of an ESME from the SMSC and inform the SMSC that the ESME no longer wishes to use this network connection for the submission or delivery of messages.

Thus, the unbind operation may be viewed as a form of SMSC logoff request to close the current SMPP session.

4.2.1 "UNBIND"

The format of the SMPP unbind PDU is defined in the following table. The command_id field must include the Command ID value corresponding to the unbind operation.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerDefines the overall length of the PDU.5.1.1
command_id4IntegerValue corresponding to unbind request.5.1.2
command_status4IntegerNot used. Set to NULL.5.1.3
sequence_number4IntegerSet to a unique sequence number. The associated unbind_resp PDU will echo the same sequence number.5.1.4
Table 4-7: SMPP unbind PDU format

4.2.2 "UNBIND_RESP"

The SMPP unbind_resp PDU is used to reply to an unbind request. It comprises the SMPP message header only.

The format of the SMPP unbind_resp PDU is defined in the following table. The command_id field must include the Command ID value corresponding to the unbind_resp operation.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerDefines the overall length of the PDU.5.1.1
command_id4IntegerValue corresponding to unbind_resp PDU.5.1.2
command_status4IntegerIndicates outcome of original unbind request.5.1.3
sequence_number4IntegerSet to sequence number of original unbind request.5.1.4
Table 4-8: SMPP unbind_resp PDU format

4.3 "GENERIC_NACK" PDU

This is a generic negative acknowledgement to an SMPP PDU submitted with an invalid message header. A generic_nack response is returned in the following cases :

4.3.1 "GENERIC_NACK" Syntax

Following is the format of the SMPP generic_nack PDU. It comprises the SMPP message header only.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerDefines the overall length of the PDU.5.1.1
command_id4IntegerValue corresponding togeneric_nack PDU.5.1.2
command_status4IntegerError code corresponding to reason for sending thegeneric_nack.5.1.3
sequence_number4IntegerSet to sequence number of original PDU or to NULL if the original PDU cannot be decoded.5.1.4
Table 4-9: SMPP generic_nack PDU format

4.4 "SUBMIT_SM" Operation

This operation is used by an ESME to submit a short message to the SMSC for onward transmission to a specified short message entity (SME). The submit_sm PDU does not support the transaction message mode.

4.4.1 "SUBMIT_SM" Syntax

The format of the SMPP submit_sm PDU is defined in the following table.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integersubmit_sm5.1.2
command_status4IntegerNot used. Set to NULL.5.1.3
sequence_number4IntegerSet to a Unique sequence number. The associated submit_sm_resp PDU will echo this sequence number.5.1.4
Mandatory Parameters
service_type Var.max 6 C-Octet String The service_type parameter can be used to indicate the SMS Application service associated with the message. Specifying the service_type allows the ESME to
  • avail of enhanced messaging services such as "replace by service" type
  • to control the teleservice used on the air interface.
Set to NULL for default SMSC settings.
5.2.11
source_addr_ton 1 Integer Type of Number for source address. If not known, set to NULL (Unknown). 5.2.5
source_addr_npi 1 Integer Numbering Plan Indicator for source address. If not known, set to NULL (Unknown). 5.2.6
source_addr Var.max 21 C-Octet String Address of SME which originated this message. If not known, set to NULL (Unknown). 5.2.8
dest_addr_ton1IntegerType of Number for destination.5.2.5
dest_addr_npi1IntegerNumbering Plan Indicator for destination.5.2.6
destination_addrVar.max 21C-Octet StringDestination address of this short message. For mobile terminated messages, this is the directory number of the recipient MS.5.2.9
esm_class1IntegerIndicates Message Mode & Message Type.5.2.12
protocol_id1IntegerProtocol Identifier. Network specific field.5.2.13
priority_flag1IntegerDesignates the priority level of the message.5.2.14
schedule_delivery_time1 or 17C-Octet StringThe short message is to be scheduled by the SMSC for delivery. Set to NULL for immediate message delivery.5.2.15
validity_period1 or 17C-Octet StringThe validity period of this message. Set to NULL to request the SMSC default validity period.5.2.16
registered_delivery1IntegerIndicator to signify if an SMSC delivery receipt or an SME acknowledgement is required.5.2.17
replace_if_present_flag1IntegerFlag indicating if submitted message should replace an existing message.5.2.18
data_coding1IntegerDefines the encoding scheme of the short message user data.5.2.19
sm_default_msg_id1IntegerIndicates the short message to send from a list of pre-defined ('canned') short messages stored on the SMSC. If not using an SMSC canned message, set to NULL.5.2.20
sm_length1IntegerLength in octets of the short_message user data.5.2.21
short_message Var.0-254 Octet String

Up to 254 octets of short message user data. The exact physical limit for short_message size may vary according to the underlying network.

Applications which need to send messages longer than 254 octets should use the message_payload parameter. In this case the sm_length field should be set to zero.

Note: The short message data should be inserted in either the short_message or message_payload fields. Both fields must not be used simultaneously.

5.2.22
Optional Parameter Name Type Description Ref.
Optional Parameters
user_message_reference TLV ESME assigned message reference number. 5.3.2.17
source_port TLV Indicates the application port number associated with the source address of the message. This parameter should be present for WAP applications. 5.3.2.20
source_addr_subunit TLV The subcomponent in the destination device which created the user data. 5.3.2.2
destination_port TLV Indicates the application port number associated with the destination address of the message. This parameter should be present for WAP applications. 5.3.2.21
dest_addr_subunit TLV The subcomponent in thedestination device for which the user data isintended. 5.3.2.1
sar_msg_ref_num TLV The reference number for a particular concatenated short message. 5.3.2.22
sar_total_segments TLV Indicates the total number of short messages within the concatenated short message. 5.3.2.23
sar_segment_seqnum TLV Indicates the sequence number of a particular short message fragmentwithin the concatenated short message. 5.3.2.24
more_messages_to_send TLV Indicates that there are more messages to follow for the destination SME. 5.3.2.34
payload_type TLV defines the type of payload (e.g. WDP, WCMP, etc.). 5.3.2.10
message_payload TLV

Contains the extended short message user data. Up to 64K octets can be transmitted.

Note: The short message data should be inserted in either the short_message or message_payload fields. Both fields should not be used simultaneously.

The sm_length field should be set to zero if using the message_payload parameter.

5.3.2.32
privacy_indicator TLV Indicates the level of privacy associated with the message. 5.3.2.14
callback_num TLV A callback number associated with the short message. This parameter can be included a number of times for multiple callback addresses. 5.3.2.36
callback_num_pres_ind TLV Defines the callback number presentation and screening. If this parameter is present and there are multiple instances of the callback_num parameter then this parameter must occur an equal number of instances and the order of occurrence determines the particular callback_num_pres_ind which corresponds to a particular callback_num. 5.3.2.37
callback_num_atag TLV Associates a displayable alphanumeric tag with the callback number. If this parameter is present and there are multiple instances of the callback_num parameter then this parameter must occur an equal number of instances and the order of occurrence determines the particular callback_num_atag which corresponds to a particular callback_num. 5.3.2.38
source_subaddress TLV The subaddress of the message originator. 5.3.2.15
dest_subaddress TLV The subaddress of the message destination. 5.3.2.16
user_response_code TLV A user response code. The actual response codes are implementation specific. 5.3.2.18
display_time TLV Provides the receiving MS with a display time associated with the message. 5.3.2.26
sms_signal TLV Indicates the alerting mechanism when the message is received by an MS. 5.3.2.40
ms_validity TLV Indicates validity information for this message to the recipient MS.5.3.2.27
ms_msg_wait_facilities TLV This parameter controls the indication and specifies the message type (of the message associated with the MWI) at the mobile station.5.3.2.13
number_of_messages TLV Indicates the number of messages stored in a mail box 5.3.2.39
alert_on_msg_delivery TLV Request an MS alert signal be invoked on message delivery. 5.3.2.41
language_indicator TLV Indicates the language of an alphanumeric text message. 5.3.2.19
its_reply_type TLV The MS user's reply method to an SMS delivery message received fromthe network is indicated and controlled by this parameter. 5.3.2.42
its_session_info TLV Session control information for Interactive Teleservice. 5.3.2.43
ussd_service_op TLV This parameter is used toidentify the required USSD Service type when interfacing to a USSD system.5.3.2.44
Table 4-10: submit_sm PDU

4.4.1.1 Source and Destination Addressing

The submit_sm PDU includes provision for both 'source address' and 'destination address'. The 'source address' is comprised of the source_addr_ton, source_addr_npi and source_addr fields and 'destination address' is comprised of the dest_addr_ton, dest_addr_npi and destination_addr fields.

An ESME Transmitter may enter NULL values in the 'source address' fields. In this event, the SMSC may then substitute a default address for that particular ESME. This feature is designed for interfaces that are not normally familiar with the notion of a source address for a short message, e.g., paging systems, voice mail system.

4.4.1.2 Message Replace operation in "SUBMIT_SM"

Though SMPP offers a dedicated replace_sm operation, the submit_sm operation also facilitates replacement of a short message which has been previously submitted but has not yet been delivered to the designated destination.

The replace function can be activated in the submit_sm PDU by setting the replace_if_present_flag to 1 (one).

Alternatively, an SMSC administrator may define a specific service_type to provide 'replace- if-present' functionality. In this case, the replace function can be activated in the submit_sm PDU by setting the service_type field to the defined value.

For both methods of replacing a message using the submit_sm operation, the data contained in the short message found in the SMSC, whose source and destination addresses and service_type match those addresses specified in the latest submit_sm operation, will be replaced with the text contained in the short_message field of that latest submit_sm operation.

Note:

If the submit_sm PDU is used to replace an as yet undelivered message in the SMSC, and a matching message is not found in the SMSC, a new short message will be submitted to the SMSC.

If a matching message is not found when using the replace_sm operation, the replace_sm operation will not result in a new message being submitted to the SMSC - an SMPP error will be returned to the ESME in the replace_sm_resp PDU.

4.4.2 "SUBMIT_SM_RESP"

This is the response to the submit_sm PDU and has the following format:

Field Name Size octets Type Description Ref.
Header
command_length 4 Integer Set to overall length of PDU. 5.1.1
command_id 4 Integer submit_sm_resp 5.1.2
command_status 4 Integer Indicates outcome of submit_sm request. 5.1.3
sequence_number 4 Integer Set to sequence number of original submit_smPDU. 5.1.4
Body
message_id Var.max 9 33 65C-Octet StringThis field contains the SMSC message ID of the submitted message. It may be used at a later stage to query the status of a message, cancel or replace the message. 5.2.23
Table 4-11: submit_sm_resp PDU

Note: The submit_sm_resp PDU Body is not returned if the command_status field contains a non-zero value.


4.5 "SUBMIT_MULTI" Operation

The submit_multi operation may be used to submit an SMPP message for delivery to multiple recipients or to one or more Distribution Lists. The submit_multi PDU does not support the transaction message mode.

4.5.1 "SUBMIT_MULTI" Syntax

Following is the format of the SMPP submit_multi PDU. The command_id field contains the command identifier code for submit_multi.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integersubmit_multi5.1.2
command_status4IntegerNot used. Set to NULL.5.1.3
sequence_number4IntegerSet to a unique sequencenumber. The associated submit_multi_resp PDUwill echo the same sequence number.5.1.4
Mandatory Parameters
service_type Var max 6 C-Octet String

The service_type parameter can be used to indicate the SMS Application service associated with the message. Specifying the service_type allows the ESME to

  • avail of enhanced messaging services such as replace by service type
  • to control the teleservice used on the air interface.

Set to NULL for default SMSC settings.

5.2.11
source_addr_ton1IntegerType of Number for source address. If not known, set to NULL(Unknown).5.2.5
source_addr_npi1IntegerNumbering Plan Indicator for source. If not known, set to NULL (Unknown).5.2.6
source_addrVar.max 21C-Octet StringAddress of SME which originated this message. If not known, set to NULL (Unknown).5.2.8
number_of_dests 1 Integer

Number of destination addresses - indicates the number of dest_address structures that are to follow. A maximum of 254 destination addresses are allowed.

Note: Set to 1 when submitting to one SME Address OR when submitting to one Distribution List.

5.2.24
dest_address(es) Var.n[2-24] See Ref See Ref. Contains one or more (number_of_dests) SME addresses or/and Distribution List names. Table 4-13
esm_class1IntegerIndicates Message Mode & Message Type.5.2.12
protocol_id1IntegerProtocol Identifier. Network specific field.5.2.13
priority_flag1IntegerDesignates the priority levelof the message.5.2.14
schedule_delivery_time1 or 17C-Octet StringThe short message is to be scheduled by the SMSC for delivery. Set to NULL for immediate message delivery.5.2.15
validity_period1 or 17C-Octet StringThe validity period of this message. Set to NULL to request the SMSCdefault validity period.5.2.16
registered_delivery1IntegerIndicator to signify if an SMSC delivery receipt or an SME acknowledgement is required.5.2.17
replace_if_present_flag1IntegerReserved. Must be set to NULL.5.2.18
data_coding1IntegerIndicates the encoding scheme of the short message.5.2.19
sm_default_msg_id1IntegerIndicates the short message to send from a list of predefined ("canned") short messages stored on the SMSC. If not using an SMSC predefined message, set to NULL.5.2.20
sm_length1IntegerLength in octets of the short_message user data.5.2.21
short_message Var.0-254 Octet String

Up to 254 octets of short message user data. The exact physical limit for short_message size may vary according to the underlying network.

Applications which need to send messages longer than 254 octets should use the message_payload parameter. In this case the sm_length parameter should be set to zero.

Note: The short message data should be inserted in either the short_message or message_payload parameters. Both parameters must not be used simultaneously.

5.2.22
OPTIONAL PARAMETERS for SUBMIT_MULTI
Optional Parameter NameTypeDescriptionRef.
Optional Parameters
user_message_referenceTLVESME assigned message reference number.5.3.2.17
source_portTLVIndicates the application port number associated with the source address of the message. This parameter should be present for WAP applications.5.3.2.20
source_addr_subunitTLVThe subcomponent in the destination device which created the user data.5.3.2.2
destination_portTLVIndicates the application port number associated with the destination address of the message. This parameter should be present for WAP applications5.3.2.21
dest_addr_subunitTLVThe subcomponent in the destination device for which the user data is intended.5.3.2.1
sar_msg_ref_numTLVThe reference number for a particular concatenated short message.5.3.2.22
sar_total_segmentsTLVIndicates the total number of short messages within the concatenatedshort message.5.3.2.23
sar_segment_seqnumTLVIndicates the sequence number of a particular short message fragmentwithin the concatenated short message.5.3.2.24
payload_typeTLVDefines the type of payload (e.g. WDP, WCMP, etc.)5.3.2.10
message_payload TLV

Contains the extended short message user data. Up to 64K octets canbe transmitted.

Note: The short message data should be inserted in either the short_message or message_payload fields. Both fields should not be used simultaneously.

The sm_length field should be set to zero if using the message_payload parameter.

5.3.2.32
privacy_indicatorTLVIndicates the level of privacy associated with the message.5.3.2.14
callback_numTLVA callback number associated with the short message. This parameter can be included a number of times for multiple callback addresses.5.3.2.36
callback_num_pres_indTLVIdentifies the presentation and screening associated with the callback number. If this parameter is present and there are multiple instances of the callback_num parameter then this parameter must occur an equal number of instances and the order of occurrence determines the particular callback_num_pres_ind which corresponds to a particular callback_num.5.3.2.37
callback_num_atagTLVAssociates a displayable alphanumeric tag with the callback number. If this parameter is present and there are multiple instances of the callback_num parameter then this parameter must occur an equal number of instances and the order of occurrence determines the particular callback_num_atag which corresponds to a particular callback_num.5.3.2.38
source_subaddressTLVThe subaddress of the message originator.5.3.2.15
dest_subaddressTLVThe subaddress of the message destination.5.3.2.16
display_timeTLVProvides the receiving MS based SME with a display time associated with the message.5.3.2.26
sms_signalTLVIndicates the alerting mechanism when the message is received by an MS.5.3.2.40
ms_validityTLVIndicates validity information for this message to the recipient MS.5.3.2.27
ms_msg_wait_facilitiesTLVThis parameter controls the indication and specifies the message type(of the message associated with the MWI) at the mobile station.5.3.2.13
alert_on_msg_deliveryTLVRequests an MS alert signal be invoked on message delivery.5.3.2.41
language_indicatorTLVIndicates the language of an alphanumeric text message.5.3.2.19
Table 4-12: submit_multi PDU

4.5.1.1 Destination Address definition

Field Name Size octets Type Description Ref.
Header
dest_flag 1 Integer Flag which will identify whether destination address is a Distribution List name or SME address. 5.2.25
SME Address or Distribution List Name See Ref.See Ref. Depending on dest_flag this could be an SME Address or a Distribution List Name. Tbl 4-14
Tbl-15
Table 4-13: dest_address
Field Name Size octets Type Description Ref.
 
dest_addr_ton1IntegerType of Number for destination SME.5.2.5
dest_addr_npi1IntegerNumbering Plan Indicator for destination SME.5.2.6
destination_addrVar.max.21C-Octet StringDestination Address for this short message.5.2.9
Table 4-14: SME_dest_address

4.5.1.2 Distribution List (DL) definition

Field Name Size octets Type Description Ref.
 
dl_nameVar.max.21C-Octet StringName of Distribution List.5.2.27
Table 4-15: DL Name
Field Name Size octets Type Description Ref.
 
dest_addr_ton1IntegerType of Number for destination SME.5.2.5
dest_addr_npi1IntegerNumbering Plan Indicator for destination SME.5.2.6
destination_addrVar.max.21C-Octet StringDestination Address for this short message.5.2.9
Table 4-14: SME_dest_address

4.5.2 "SUBMIT_MULTI_RESP" Syntax

The following is the format of the SMPP submit_multi_resp PDU. The command_id field contains the command identifier code for submit_multi_resp.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integersubmit_multi_resp5.1.2
command_status4IntegerOutcome of submit_multi request.5.1.3
sequence_number4IntegerSet to sequence number of original submit_multiPDU.5.1.4
Body
message_idVar.max 65C-Octet StringThe SMSC message ID of the submitted message.5.2.23
no_unsuccess1IntegerThe number of messages to destination SME addresses that were unsuccessfully submitted to the SMSC.5.2.26
unsuccess_sme(s)Var.n[7-27]See Ref.See Ref.Contains one or more (no_unsuccess) SME address(es) or/and Distribution List names to which submission was unsuccessful.Table 4-17
Table 4-16: submit_multi_resp PDU

4.5.2.1 Unsuccessful deliveries

Field Name Size octets Type Description Ref.
Header
dest_addr_ton1IntegerType of number for destination SME.5.2.5
dest_addr_npi1IntegerNumbering Plan Indicator fordestination SME5.2.6
destination_addrVar.max.21C-Octet StringDestination Address of destination SME5.2.9
error_status_code4IntegerIndicates the success or failure of the submit_multi request to this SME address. 5.1.3
Table 4-17: Unsuccess_smes

4.6 "DELIVER_SM" Operation

The deliver_sm is issued by the SMSC to send a message to an ESME. Using this command, the SMSC may route a short message to the ESME for delivery.

In addition the SMSC uses the deliver_sm operation to transfer the following types of short messages to the ESME:-

4.6.1 "DELIVER_SM" Syntax

The deliver_sm PDU has the same format as the submit_sm PDU. For this reason, some fields are unused.

Field Name Size octets Type Description Ref.
Header
command_length 4 Integer Set to overall length of PDU. 5.1.1
command_id 4 Integer deliver_sm 5.1.2
command_status 4 Integer Unused. Set to NULL. 5.1.3
sequence_number 4 Integer Set to a unique sequence number. The associated deliver_sm_resp PDU should echo the same sequence number. 5.1.4
Mandatory Parameters
service_type Var max 6 C-Octet StringThe service_type parameter can be used to indicate the SMS Application service associated with the message. 5.2.11
source_addr_ton 1 Integer Type of Number for source address. If not known, set to NULL (Unknown). 5.2.5
source_addr_npi 1 Integer Numbering Plan Indicator for source. If not known, set to NULL (Unknown). 5.2.6
source_addr Var.max 21C-Octet StringAddress of SME which originated this message. If not known, set to NULL (Unknown). 5.2.8
dest_addr_ton 1 Integer Type of number of destination SME. 5.2.5
dest_addr_npi 1 Integer Numbering Plan Indicator of destination SME. 5.2.6
destination_addr Var.max 21C-Octet StringDestination address of destination SME. 5.2.9
esm_class 1 Integer Indicates Message Type and enhanced network services. 5.2.12
protocol_id 1 Integer Protocol Identifier. Network Specific Field. 5.2.13
priority_flag 1 Integer Designates the priority level of the message. 5.2.14
schedule_delivery_time 1 C-Octet StringThis field is unused for deliver_sm. It must be set to NULL. 5.2.15
validity_period 1 C-Octet StringThis field is unused for deliver_sm It must be set to NULL. 5.2.16
registered_delivery 1 Integer Indicates if an ESME acknowledgement is required. 5.2.17
replace_if_present_flag 1 Integer Not used in deliver_sm. It must be set to NULL. 5.2.18
data_coding 1 Integer Indicates the encoding scheme of the short message. 5.2.19
sm_default_msg_id 1 Integer Unused in deliver_sm. It must be set to NULL. 5.2.20
sm_length 1 Integer Length of short message user data in octets. 5.2.21
short_message Var.0-254 Octet String

Up to 254 octets of short message user data.

When sending messages longer than 254 octets the message_payload parameter should be used and the sm_length parameter should be set to zero.

Note: The message data should be inserted in either the short_message or the message_payload parameters. Both parameters must not be used simultaneously.

5.2.22
OPTIONAL PARAMETERS for DELIVER_SM
Optional Parameter NameTypeDescriptionRef.
Optional Parameters
user_message_reference TLV A reference assigned by the originating SME to the message. In the case that the deliver_sm is carrying an SMSC delivery receipt, an SME delivery acknowledgement or an SME user acknowledgement (as indicated in the esm_class field), the user_message_reference parameter is set to the message reference of the original message. 5.3.2.17
source_port TLV Indicates the application port number associated with the source address of the message. The parameter should be present for WAP applications. 5.3.2.20
destination_port TLV Indicates the application port number associated with the destination address of the message. The parameter should be present for WAP applications. 5.3.2.21
sar_msg_ref_num TLV The reference number for a particular concatenated short message. 5.3.2.22
sar_total_segments TLV Indicates the total number of short messages within the concatenated short message. 5.3.2.23
sar_segment_seqnum TLV Indicates the sequence number of a particular short message fragmentwithin the concatenated short message. 5.3.2.24
user_response_code TLV A user response code. The actual response codes are SMS application specific. 5.3.2.18
privacy_indicator TLV Indicates a level of privacy associated with the message. 5.3.2.14
payload_type TLV Defines the type of payload (e.g. WDP, WCMP, etc.) 5.3.2.10
message_payload TLV

Contains the extended short message user data. Up to 64K octets can be transmitted.

Note: The short message data should be inserted in either the short_message or message_payload fields. Both fields should not be used simultaneously.

The sm_length field should be set to zero if using the message_payload parameter.

5.3.2.32
callback_num TLV A callback number associated with the short message. This parameter can be included a number of times for multiple call back addresses. 5.3.2.36
source_subaddress TLV The subaddress of the message originator. 5.3.2.15
dest_subaddress TLV The subaddress of the message destination. 5.3.2.16
language_indicator TLV Indicates the language of an alphanumeric text message. 5.3.2.19
its_session_info TLV Session control information for Interactive Teleservice. 5.3.2.43
network_error_code TLV Network Error Code. May be present for Intermediate Notifications and SMSC Delivery Receipts 5.3.2.31
message_state TLV Message State. Should be present for SMSC Delivery Receipts and Intermediate Notifications. 5.3.2.35
receipted_message_id TLV SMSC message ID of receipted message Should be present for SMSC Delivery Receipts and Intermediate Notifications. 5.3.2.12
Table 4-18: deliver_sm PDU

4.6.2 "DELIVER_SM_RESP" Syntax

The following is the format of the SMPP deliver_sm_resp PDU.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integerdeliver_sm_resp5.1.2
command_status4IntegerIndicates outcome of deliver_sm request.5.1.3
Body
sequence_number4IntegerSet to sequence number of deliver_smPDU.5.1.4
message_id1C-Octet StringThis field is unused and is set to NULL.5.2.23
Table 4-19: deliver_sm_resp PDU

4.7 "DATA_SM" Operation

This command is used to transfer data between the SMSC and the ESME. It may be used by both the ESME and SMSC.

This command is an alternative to the submit_sm and deliver_sm commands. It is introduced as a new command to be used by interactive applications such as those provided via a WAP framework.

The ESME may use this command to request the SMSC to transfer a message to an MS. The SMSC may also use this command to transfer an MS originated message to an ESME.

In addition, the data_sm operation can be used to transfer the following types of special messages to the ESME:-

4.7.1 "DATA_SM" Syntax

The following is the format of the SMPP data_sm PDU.

Field Name Size octets Type Description Ref.
Header
command_length 4 Integer Set to overall length of PDU. 5.1.1
command_id 4 Integer data_sm 5.1.2
command_status 4 Integer Not used. Set to NULL. 5.1.3
sequence_number 4 Integer Set to a unique sequence number. The associated data_sm_resp PDU will echo the same sequence number. This parameter is used to facilitate transaction windowing. 5.1.4
Mandatory Parameters
service_type Var.max 6 C-Octet String

The service_type parameter can be used to indicate the SMS Application service associated with the message. Specifying the service_type allows the ESME/SMSC to

  • to indicate the teleservice used on the air interface.
5.2.11
source_addr_ton 1 Integer Type of Number for source address. If not known, set to "Unknown" (0x00). 5.2.5
source_addr_npi 1 Integer Numbering Plan Indicator for source address. If not known, set to "Unknown" (0x00). 5.2.6
source_addr Var.max 65C-Octet StringAddress of SME which originated this message. 5.2.8
dest_addr_ton 1 Integer Type of Number for destination. 5.2.5
dest_addr_npi 1 Integer Numbering Plan Indicator for destination. 5.2.6
destination_addr Var.max 65C-Octet StringDestination address of this short message. For mobile terminated messages, this is the directory number of the recipient MS. 5.2.9
esm_class 1 Integer Indicates Message Mode and Message Type. 5.2.12
registered_delivery 1 Integer Indicator for requesting a SMSC delivery receipt or an SME acknowledgement 5.2.17
data_coding 1 Integer Indicates the encoding scheme of the payload data 5.2.19
OPTIONAL PARAMETERS for DELIVER_SM
Optional Parameter NameTypeDescriptionRef.
Optional Parameters
source_portTLVIndicates the application port number associated with the source address of the message. This parameter should be present for WAP applications.5.3.2.20
source_addr_subunitTLVThe subcomponent in the destination device which created the user data.5.3.2.2
source_network_typeTLVThe correct network associated with the originating device.5.3.2.4
source_bearer_typeTLVThe correct bearer type for the delivering the user data to the destination.5.3.2.6
source_telematics_idTLVThe telematics identifier associated with the source.5.3.2.8
destination_portTLVIndicates the application port number associated with the destination address of the message. This parameter should be present for WAP applications.5.3.2.21
dest_addr_subunitTLVThe subcomponent in the destination device for which the user data is intended.5.3.2.1
dest_network_typeTLVThe correct network for the destination device.5.3.2.3
dest_bearer_typeTLVThe correct bearer type for the delivering the user data to the destination.5.3.2.5
dest_telematics_idTLVThe telematics identifier associated with the destination.5.3.2.7
sar_msg_ref_numTLVThe reference number for a particular concatenated short message.5.3.2.22
sar_total_segmentsTLVIndicates the total number of short messages within the concatenatedshort message.5.3.2.23
sar_segment_seqnumTLVIndicates the sequence number of a particular short message fragment within the concatenated short message.5.3.2.24
more_messages_to_sendTLVIndicates that there are more messages to follow for the destination SME.5.3.2.34
qos_time_to_liveTLVTime to live as a relative time in seconds from submission. 5.3.2.9
payload_typeTLVDefines the type of payload (e.g. WDP, WCMP, etc.). 5.3.2.10
message_payloadTLVContains the message user data. Up to 64K octets can be transmitted.5.3.2.32
set_dpfTLVIndicator for setting Delivery Pending Flag on delivery failure.5.3.2.29
receipted_message_idTLVSMSC message ID of message being receipted. Should be present for SMSC Delivery Receipts and Intermediate Notifications.5.3.2.12
message_stateTLVMessage State. Should be present for SMSC Delivery Receipts and Intermediate Notifications.5.3.2.35
network_error_codeTLVNetwork error code. May be present for SMSC Delivery Receipts and Intermediate Notifications.5.3.2.31
user_message_referenceTLVESME assigned message reference number.5.3.2.17
privacy_indicatorTLVIndicates a level of privacy associated with the message.5.3.2.14
callback_numTLVA callback number associated with the short message. This parameter can be included a number of times for multiple call back addresses.5.3.2.36
callback_num_pres_indTLVThis parameter identifies the presentation and screening associated with the callback number. If this parameter is present and there aremultiple instances of the callback_num parameter then this parametermust occur an equal number of instances and the order of occurrence determines the particular callback_num_pres_ind which corresponds toa particular callback_num.5.3.2.37
callback_num_atagTLVThis parameter associates a displayable alphanumeric tag with the callback number. If this parameter is present and there are multiple instances of the callback_num parameter then this parameter must occur an equal number of instances and the order of occurrence determines the particular callback_num_atag which corresponds to a particular callback_num.5.3.2.38
source_subaddressTLVThe subaddress of the message originator.5.3.2.15
dest_subaddressTLVThe subaddress of the message destination.5.3.2.16
user_response_codeTLVA user response code. The actual response codes are implementation specific.5.3.2.18
display_timeTLVProvides the receiving MS based SME with a display time associated with the message.
sms_signalTLVIndicates the alerting mechanism when the message is received by an MS.5.3.2.40
ms_validityTLVIndicates validity information for this message to the recipient MS.5.3.2.27
ms_msg_wait_facilitiesTLVThis parameter controls the indication and specifies the message type (of the message associated with the MWI)at the mobile station.5.3.2.13
number_of_messagesTLVIndicates the number of messages stored in a mail box (e.g. voice mail box).5.3.2.39
alert_on_msg_deliveryTLVRequests an MS alert signal be invoked on message delivery.5.3.2.41
language_indicatorTLVIndicates the language of an alphanumeric text message.5.3.2.19
its_reply_typeTLVThe MS user's reply method to an SMS delivery message received from the network is indicated and controlled by this parameter.5.3.2.42
its_session_infoTLVSession control information for Interactive Teleservice.5.3.2.43
Table 4-20: data_sm PDU

4.7.2 "DATA_SM_RESP" Syntax

The following is the format of the SMPP data_sm_resp PDU.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU5.1.1
command_id4Integerdata_sm_resp5.1.2
command_status4IntegerIndicates outcome of data_sm request.5.1.3
sequence_number4IntegerSet to sequence number of original data_smPDU.5.1.4
Body
message_id Var.max 65C-Octet StringThis field contains the SMSC assigned message ID of the short message.5.2.23
OPTIONAL PARAMETERS for DATA_SM_RESP
Optional Parameter NameTypeDescriptionRef.
delivery_failure_reasonaTLVInclude to indicate reason for delivery failure.5.3.2.33
network_error_codeaTLVError code specific to a wireless network.5.3.2.31
additional_status_info_textTLVASCII text giving a description of the meaning of the response5.3.2.11
dpf_resultaTLVIndicates whether the Delivery Pending Flag was set.5.3.2.28
Table 4-21: data_sm_resp PDU

note


4.8 "QUERY_SM" Operation

This command is issued by the ESME to query the status of a previously submitted short message.

The matching mechanism is based on the SMSC assigned message_id and source address. Where the original submit_sm, data_smor submit_multi 'source address' was defaulted to NULL, then the source address in the query_sm command should also be set to NULL.

4.8.1 "QUERY_SM" Syntax

Following is the format of the SMPP query_sm PDU.

Field Name Size octets Type Description Ref.
Mandatory   P A R A M E T E R S
command_length4IntegerSet to overall length of PDU5.1.1
command_id4Integerquery_sm5.1.2
command_status4IntegerNot used. Set to NULL.5.1.3
sequence_number4IntegerSet to a unique sequence number. The associated query_sm_resp PDU should echo the same sequence number5.1.4
message_idVar.Max 65C-Octet StringMessage ID of the message whose state is to be queried. This must be the SMSC assigned Message ID allocated to the original short message when submitted to the SMSC by the submit_sm, data_smor submit_multi command, and returned in the response PDU by the SMSC.5.2.23
source_addr_ton1IntegerType of Number of message originator. This is used for verification purposes, and must match that supplied in the original request PDU (e.g. submit_sm). If not known, set to NULL.5.2.5
source_addr_npi1IntegerNumbering Plan Identity of message originator. This is used for verification purposes, and must match that supplied in the original request PDU (e.g. submit_sm). If not known, set to NULL.5.2.6
source_addrVar.Max 21C-Octet StringAddress of message originator. This is used for verification purposes, and must match that supplied in the original request PDU (e.g. submit_sm). If not known, set to NULL.5.2.8
Table 4-22: query_sm PDU

4.8.2 "QUERY_SM_RESP" Syntax

Following is the format of the SMPP query_sm_resp PDU.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integerquery_sm_resp5.1.2
command_status4IntegerIndicates outcome of query_sm request5.1.3
sequence_number4IntegerSet to sequence number of original query_smPDU.5.1.4
Mandatory Parameters
message_idVar.max 65C-Octet StringSMSC Message ID of the message whose state is being queried.5.2.23
final_date1 or 17C-Octet StringDate and time when the queried message reached a final state. For messages which have not yet reached a final state this field will contain a single NULL octet.7.1.1
message_state1IntegerSpecifies the status of the queried short message.5.2.28
error_code1IntegerWhere appropriate this holds a network error code defining the reason for failure of message delivery.6.1
Table 4-23: query_sm_respPDU

4.9 "CANCEL_SM" Operation

This command is issued by the ESME to cancel one or more previously submitted short messages that are still pending delivery. The command may specify a particular message to cancel, or all messages for a particular source, destination and service_type are to be cancelled.

Where the original submit_sm, data_sm or submit_multi 'source address' was defaulted to NULL, then the source address in the cancel_sm command should also be NULL.

4.9.1 "CANCEL_SM" Syntax

Following is the format of the SMPP cancel_sm PDU.

Field Name Size octets Type Description Ref.
Mandatory Parameters
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integercancel_sm5.1.2
command_status4IntegerNot used. Set to NULL.5.1.3
sequence_number4IntegerSet to a unique sequence number. The associated cancel_sm_resp PDU should echo the same sequence number.5.1.4
service_typeVar.max 6C-Octet StringSet to indicate SMS Application service, if cancellation of a group of application service messages is desired. Otherwise set to NULL.5.2.11
message_idVar.max 65C-Octet StringMessage ID of the message to be cancelled. This must be the SMSC assigned Message ID of the original message. Set to NULL if cancelling a group of messages.5.2.23
source_addr_ton1IntegerType of Number of message originator. This is used for verification purposes, and must match that supplied in the original message submission request PDU. If not known, set to NULL.5.2.5
source_addr_npi1IntegerNumbering Plan Identity of message originator. This is used for verification purposes, and must match that supplied in the original message submission request PDU. If not known, set to NULL.5.2.6
source_addrVar.max 21C-Octet StringSource address of message(s) to be cancelled. This is used for verification purposes, and must match that supplied in the original message submission request PDU(s).5.2.8
Table 4-24: cancel_sm PDU

4.9.2 "CANCEL_SM_RESP" Syntax

The cancel_sm_resp PDU is used to reply to a cancel_sm request. It comprises the SMPP message header only.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integercancel_sm_resp5.1.2
command_status4IntegerIndicates outcome of cancel_sm request.5.1.3
sequence_number4IntegerSet to sequence number of cancel_sm PDU.5.1.4
Table 4-25: cancel_sm_resp PDU

4.10 "REPLACE_SM" Operation

This command is issued by the ESME to replace a previously submitted short message that is still pending delivery. The matching mechanism is based on the message_id and source address of the original message.

Where the original submit_sm 'source address' was defaulted to NULL, then the source address in the replace_sm command should also be NULL

4.10.1 "REPLACE_SM" Syntax

Following is the format of the SMPP replace_sm PDU. The command_id field contains the command identifier code for replace_sm.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integerreplace_sm5.1.2
command_status4IntegerNot used. Set to NULL5.1.3
sequence_number4IntegerSet to a unique sequence number. The associated replace_sm_resp PDU should echo the same sequence number.5.1.4
Mandatory Parameters
message_idVar.max 65C-Octet StringSMSC message ID of the message to be replaced. This must be the message ID allocated to the original short message when submitted to the SMSC by the submit_sm command, and returned in the submit_sm_resp message by the SMSC.5.2.23
source_addr_ton1IntegerType of Number of mesage originator. This is used for verification purposes, and must match that supplied in the corresponding submit_sm request. If not known, set to NULL.5.2.5
source_addr_npi1IntegerNumbering Plan Identity of message originator. This is used for verification purposes, and must match that supplied in the corresponding submit_sm request. If not known set to NULL.5.2.6
source_addrVar.1-21C-Octet StringOriginating address of the short message to be replaced. This is used for verification purposes, and must match that supplied in the corresponding submit_sm request.5.2.8
Table 4-26: replace_sm PDU

4.10.2 "REPLACE_SM_RESP" Syntax

The replace_sm_resp PDU is used to reply to a replace_sm request. It comprises the SMPP message header only.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU.5.1.1
command_id4Integerreplace_sm_resp5.1.2
command_status4IntegerIndicates outcome of replace_sm request5.1.3
sequence_number4IntegerExpected to be the same sequence number of original replace_sm PDU.5.1.4
Table 4-27: replace_sm_resp PDU

4.11 "ENQUIRE_LINK" Operation

This message can be sent by either the ESME or SMSC and is used to provide a confidence- check of the communication path between an ESME and an SMSC. On receipt of this request the receiving party should respond with an enquire_link_resp, thus verifying that the application level connection between the SMSC and the ESME is functioning. The ESME may also respond by sending any valid SMPP primitive.

4.11.1 "ENQUIRE_LINK" Syntax

The enquire_link PDU comprises the SMPP message header only.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU5.1.1
command_id4Integerenquire_link5.1.2
command_status4IntegerNot used. Set to NULL5.1.3
sequence_number4IntegerSet to a unique sequence number. The associated enquire_link_resp PDU should echo the same sequence number5.1.4
Table 4-28: enquire_link PDU

4.11.2 "ENQUIRE_LINK_RESP" Syntax

The enquire_link_resp PDU is used to reply to an enquire_link request. It comprises the SMPP message header only.

Field Name Size octets Type Description Ref.
Header
command_length4IntegerSet to overall length of PDU5.1.1
command_id4Integerenquire_link_resp5.1.2
command_status4IntegerSet to ESME_ROK (Success)5.1.3
sequence_number4IntegerSet to the same sequence number of original enquire_link PDU5.1.4
Table 4-29: enquire_link_resp PDU

4.12 "ALERT_NOTIFICATION" Operation

This message is sent by the SMSC to the ESME, when the SMSC has detected that a particular mobile subscriber has become available and a delivery pending flag had been set for that subscriber from a previous data_sm operation.

It may be used for example to trigger a data content 'Push' to the subscriber from a WAP Proxy Server.

Note: There is no alert_notification_resp PDU.

4.12.1 "ALERT_NOTIFICATION" Syntax

Following is the format of the SMPP alert_notification PDU.

Field Name Size octets Type Description Ref.
Header
command_length 4 Integer Set to overall length of PDU. 5.1.1
command_id 4 Integer alert_notification 5.1.2
command_status 4 Integer Not used. Set to NULL. 5.1.3
sequence_number 4 Integer Set to a unique sequence number. 5.1.4
Mandatory Parameters
source_addr_ton 1 Integer Type of number for the MS which has become available. If not known, set to NULL. 5.2.5
source_addr_npi v1 Integer Numbering Plan Indicator for the MS which has become available. If not known, set to NULL. 5.2.6
source_addr Var.max 65C-Octet StringAddress of MS which has become available. 5.2.8
esme_addr_ton 1 Integer Type of number for x destination address which requested an alert on a particular MS becoming available. If not known, set to NULL. 5.2.8
esme_addr_npi 1 Integer Numbering Plan Indicator for ESME which requested an alert on a particular MS becoming available. If not known, set to NULL. 5.2.6
esme_addr Var.max 65 C-Octet StringAddress of ESME which requested an alert on a particular MS becoming available. 5.2.10
OPTIONAL PARAMETERS for ALERT_NOTIFICATION
Optional Parameter NameTypeDescriptionRef.
ms_availability_status TLV The status of the mobile station. 5.3.2.30
Table 4-30: alert_notification PDU