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


5. SMPP Parameter Definition

This section describes the parameters which can be specified in an SMPP command.


5.1 Command Header Parameters

5.1.1 command_length

The command_length parameter indicates the length in octets of the SMPP message. The SMPP message header (including the command_length field itself), the mandatory parameters and the optional parameters are all considered.

5.1.2 command_id

The command_id field identifies the type of message the SMPP PDU represents, for example, submit_sm, query_sm etc.

A command identifier is allocated to each SMPP request primitive. For reserved range value settings refer to Table 5-1:.

A response command identifier is allocated to each response primitive. For reserved range value settings refer to Table 5-1: (In general a response command identifier is identical to the corresponding request command identifier, but with bit 31 set).


5.2 Mandatory SMPP Parameters

5.2.1 system_id

The system_id parameter is used to identify an ESME or an SMSC at bind time. An ESME system_id identifies the ESME or ESME agent to the SMSC. The SMSC system_id provides an identification of the SMSC to the ESME.

5.2.2 password

Thepassword parameter is used by the SMSC to authenticate the identity of the binding ESME. The Service Provider may require ESME's to provide a password when binding to the SMSC. This password is normally issued by the SMSC system administrator.

The password parameter may also be used by the ESME to authenticate the identity of the binding SMSC (e.g. in the case of the outbind operation).

5.2.3 system_type

The system_type parameter is used to categorize the type of ESME that is binding to the SMSC. Examples include "VMS" (voice mail system) and "OTA" (over-the-air activation system).

Specification of the system_type is optional - some SMSC's may not require ESME's to provide this detail. In this case, the ESME can set the system_type to NULL.

5.2.4 interface_version

This parameter is used to indicate the version of the SMPP protocol. The following interface version values are defined:

Interface Version Value
Indicates that the EMSE supports version 3.3 or earlier of the SMPP protocol. 0x00-0x33
Indicates that the ESME is supporting SMPP version 3.4 0x34
All other values reserved  

5.2.5 addr_ton, source_addr_ton, dest_addr_ton, esme_addr_ton

These fields define the Type of Number (TON) to be used in the SME address parameters. The following TON values are defined:

TONValue
Unknown00000000
International00000001
National00000010
Network Specific00000011
Subscriber Number00000100
Alphanumeric00000101
Abbreviated00000110
All other values reserved
Table 5-3: TON values

5.2.6 addr_npi, source_addr_npi, dest_addr_npi, esme_addr_npi

These fields define the Numeric Plan Indicator (NPI) to be used in the SME address parameters. The following NPI values are defined:

NPIValue
Unknown00000000
ISDN (E163/E164)00000001
Data (X.121)00000011
Telex (F.69)00000100
Land Mobile (E.212)00000110
National00001000
Private00001001
ERMES00001010
Internet (IP)00001110
WAP Client Id (to be defined by WAP Forum)00010010
All other values reserved
Table 5-4: NPI values

5.2.7 address_range

The address_range parameter is used in the bind_receiver and bind_transceiver command to specify a set of SME addresses serviced by the ESME client. A single SME address may also be specified in the address_range parameter. UNIX Regular Expression notation should be used to specify a range of addresses (Refer to Appendix A.)

Messages addressed to any destination in this range shall be routed to the ESME.

Notes

For IP addresses, it is only possible to specify a single IP address. A range of IP addresses is not allowed. IP version 6.0 is not currently supported in this version of the protocol.

5.2.8 source_addr

Specifies the address of SME which originated this message. An ESME which is implemented as a single SME address, may set this field to NULL to allow the SMSC to default the source address of the submitted message.

Notes

An IP address is specified in "aaa.bbb.ccc.ddd" notation. IP version 6.0 is not supported in V3.4 of the SMPP protocol.

5.2.9 destination_addr

Specifies the destination SME address. For mobile terminated messages, this is the directory number of the recipient MS.

Notes

An IP address is specified in "aaa.bbb.ccc.ddd" notation. IP version 6.0 is not supported in V3.4 of the SMPP protocol.

5.2.10 esme_addr

Specifies the address of an ESME address to which an alert_notification should be routed.

Notes

An IP address is specified in "aaa.bbb.ccc.ddd" notation. IP version 6.0 is not supported in V3.4 of the SMPP protocol.

5.2.11 service_type

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:-

SMSC's may implicitly associate a "replace if present" function from the indicated service_type in a message submission operation, i.e., the SMSC will always replace an existing message pending delivery, that has the same originating and destination address as the submitted message. For example, an SMSC can ensure that a Voice Mail System using a service_type of 'VMA" has at most one outstanding notification per destination MS by automatically invoking the "replace if present" function.

The following generic service_types are defined:

"" (NULL)Default
"CMT"Cellular Messaging
"CPT"Cellular Paging
"VMN"Voice Mail Notification
"VMA"Voice Mail Alerting
"WAP"Wireless Application Protocol
"USSD"Unstructured Supplementary Services Data

All other values are carrier specific and are defined by mutual agreement between the SMSC Service Provider and the ESME application.

5.2.12 esm_class

The esm_class parameter is used to indicate special message attributes associated with the short message.

The esm_class parameter is encoded as follows in the submit_sm, submit_multi and data_sm (ESME -> SMSC) PDUs:

Bits 7 6 5 4 3 2 1 0 Meaning
 
x x x x x x 0 0
x x x x x x 0 1
x x x x x x 1 0
x x x x x x 1 1
Messaging Mode (bits 1-0) Default SMSC Mode (e.g. Store and Forward) Datagram mode Forward (i.e. Transaction) mode Store and Forward mode (use to select Store and Forward mode if Default SMSC Mode is non Store and Forward)
 
x x 0 0 0 0 x x
x x 0 0 1 0 x x
x x 0 1 0 0 x x
Message Type (bits 5-2) Default message Type (i.e. normal message) Short Message contains ESME Delivery Acknowledgement Short Message contains ESME Manual/User Acknowledgement
 
0 0 x x x x x x
0 1 x x x x x x
1 0 x x x x x x
1 1 x x x x x x
GSM Network Specific Features (bits 7-6) No specific features selected UDHI Indicator (only relevant for MT short messages) Set Reply Path (only relevant for GSM network) Set UDHI and Reply Path (only relevant for GSM network)

The esm_class parameter is encoded as follows in a deliver_sm and data_sm (SMSC -> ESME) PDUs:

Bits7 6 5 4 3 2 1 0Meaning
 
x x x x x x x x
Message Mode (bits 1-0) not applicable - ignore bits 0 and 1
 
x x 0 0 0 0 x x
x x 0 0 0 1 x x
x x 0 0 1 0 x x
x x 0 0 1 1 x x
x x 0 1 0 0 x x
x x 0 1 0 1 x x
x x 0 1 1 0 x x
x x 0 1 1 1 x x
x x 1 0 0 0 x x
Message Type (bits 5-2) Default message Type (i.e. normal message) Short Message contains SMSC Delivery Receipt Short Message contains SME Delivery Acknowledgement reserved Short Message contains SME Manual/User Acknowledgment reserved Short Message contains Conversation Abort (Korean CDMA) reserved Short Message contains Intermediate Delivery Notification all other values reserved
 
0 0 x x x x x x
0 1 x x x x x x 
1 0 x x x x x x 
1 1 x x x x x x  
GSM Network Specific Features (bits 7-6) No specific features selected UDHI Indicator set Reply Path UDHI and Reply Path

all other values reserved

The default setting of the esm_class parameter is 0x00.

Notes

5.2.13 protocol_id

GSM

Set according to GSM 03.40 [GSM 03.40]

ANSI-136 (TDMA)

For mobile terminated messages, this field is not used and is therefore ignored by the SMSC. For ANSI-136 mobile originated messages, the SMSC should set this value to NULL.

IS-95 (CDMA)

For mobile terminated messages, this field is not used and is therefore ignored by the SMSC. For IS-95 mobile originated messages, the SMSC should set this value to NULL.

5.2.14 priority_flag

The priority_flag parameter allows the originating SME to assign a priority level to the short message.

Four Priority Levels are supported:

0 = Level 0 (lowest) priority 1 = Level 1 priority 2 = Level 2 priority 3 = Level 3 (highest) priority >3=Reserved

These are applied in different networks as follows:-

Priority LevelGSMaANSI-136IS-95
0non-priorityBulkNormal
1priorityNormalInteractive
2priorityUrgentUrgent
3priorityVery UrgentEmergency
All other values reserved
Table 5-5: SMPP Message Priority values

a. For GSM mobile terminated, messages with priority greater than Level 0 are treated as priority when making a delivery attempt (i.e. a delivery attempt is made even when MWD is set in the HLR).

5.2.15 schedule_delivery_time

This parameter specifies the scheduled time at which the message delivery should be first attempted.

It defines either the absolute date and time or relative time from the current SMSC time at which delivery of this message will be attempted by the SMSC.

It can be specified in either absolute time format or relative time format. The encoding of a time format is specified in Section 7.1.1.

5.2.16 validity_period

The validity_period parameter indicates the SMSC expiration time, after which the message should be discarded if not delivered to the destination. It can be defined in absolute time format or relative time format. The encoding of absolute and relative time format is specified in Section 7.1.1.

5.2.17 registered_delivery

The registered_delivery parameter is used to request an SMSC delivery receipt and/or SME originated acknowledgements. The following values are defined:

Bits7 6 5 4 3 2 1 0Meaning
 
x x x x x x 0 0
x x x x x x 0 1
x x x x x x 1 0
x x x x x x 1 1  
SMSC Delivery Receipt (bits 1 and 0) No SMSC Delivery Receipt requested (default) SMSC Delivery Receipt requested where final delivery outcome is delivery success or failure SMSC Delivery Receipt requested where the final delivery outcome is delivery failure reserved
 
x x x x 0 0 x x
x x x x 0 1 x x
x x x x 1 0 x x
x x x x 1 1 x x
SME originated Acknowledgement (bits 3 and 2) No recipient SME acknowledgment requested (default) SME Delivery Acknowledgement requested SME Manual/User Acknowledgment requested Both Delivery and Manual/User Acknowledgment requested
 
x x x 0 x x x x
x x x 1 x x x x
Intermediate Notification (bit 5) No Intermediate notification requested (default) Intermediate notification requested **

all other values reserved

The default setting of the registered_delivery parameter is 0x00.

Note:

5.2.18 replace_if_present_flag

The replace_if_present_flag parameter is used to request the SMSC to replace a previously submitted message, that is still pending delivery. The SMSC will replace an existing message provided that the source address, destination address and service_type match the same fields in the new message.

0 Don't replace (default)
1 Replace
2 - 255 reserved

ESME applications that use this SMSC messaging function should use the same service_type and set the replace_if_present_flag parameter consistently to "1" for all messages, including the first message. This ensures that the SMSC has at most one message pending per destination SME for a particular application (e.g. voice mail notification).

5.2.19 data_coding

Bits 7 6 5 4 3 2 1 0 Meaning Notes
 0 0 0 0 0 0 0 0SMSC Default Alphabet  
 0 0 0 0 0 0 0 1IA5 (CCITT T.50)/ASCII (ANSI X3.4) b
 0 0 0 0 0 0 1 0Octet unspecified (8-bit binary) b
 0 0 0 0 0 0 1 1Latin 1 (ISO-8859-1) b
 0 0 0 0 0 1 0 0Octet unspecified (8-bit binary) a
 0 0 0 0 0 1 0 1JIS (X 0208-1990) b
 0 0 0 0 0 1 1 0Cyrllic (ISO-8859-5) b
 0 0 0 0 0 1 1 1Latin/Hebrew (ISO-8859-8) b
 0 0 0 0 1 0 0 0UCS2 (ISO/IEC-10646) a
 0 0 0 0 1 0 0 1Pictogram Encoding b
 0 0 0 0 1 0 1 0ISO-2022-JP (Music Codes) b
 0 0 0 0 1 0 1 1reserved  
 0 0 0 0 1 1 0 0reserved  
 0 0 0 0 1 1 0 1Extended Kanji JIS(X 0212-1990) b
 0 0 0 0 1 1 1 0KS C 5601 b
 0 0 0 0 1 1 1 1reserved
 1 0 1 1 1 1 1 1reserved  
 1 1 0 0 x x x xGSM MWI control - see [GSM 03.38] d
 1 1 0 1 x x x xGSM MWI control - see [GSM 03.38] d
 1 1 1 0 x x x xreserved  
 1 1 1 1 x x x xGSM message class control - see [GSM 03.38]e

Notes:

5.2.20 sm_default_msg_id

The sm_default_msg_id parameter specifies the SMSC index of a pre-defined ('canned') message.

0reserved
1 - 254Allowed values
255Reserved

5.2.21 sm_length

The sm_length parameter specifies the length of the short_message parameter in octets. The sm_length should be set to 0 in the submit_sm, submit_multi, and deliver_sm PDUs if the message_payload parameter is being used to send user data larger than 254 octets.

0no user data in short message field
1-254allowed
255not allowed

5.2.22 short_message

The short_message parameter contains the user data. A maximum of 254 octets can be sent. ESME's should use the optional message_payload parameter in submit_sm, submit_multi, and deliver_sm to send larger user data sizes.

5.2.23 message_id

The unique message identifier reference assigned by the SMSC to each submitted short message. It is an opaque value and is set according to SMSC implementation. It is returned by the SMSC in the submit_sm_resp, submit_multi_resp, deliver_sm_resp and data_sm_resp PDUs and may be used by the ESME in subsequent SMPP operations relating to the short message, e.g. the ESME can use the query_sm operation to query a previously submitted message using the SMSC message_id as the message handle.

5.2.24 number_of_dests

The number_of_dests parameter indicates the number of dest_address structures that are to follow in the submit_multi operation. A maximum of 254 destination address structures are allowed.

5.2.25 dest_flag

Flag which will identify whether destination address is a Distribution List (DL) name or SME address.

5.2.26 no_unsuccess

The number of unsuccessful SME destinations to which delivery was attempted for a submit_multi operation.

5.2.27 dl_name

The reference name for a distribution list provisioned on the SMSC. Distribution list names are defined by mutual agreement between the SMSC and the ESME.

5.2.28 message_state

The following is a list of allowable states for a short message. The message_state value is returned by the SMSC to the ESME as part of the query_sm_resp PDU.

Message StateValueDescription
ENROUTE 1 The message is in enroute state.
DELIVERED 2 Message is delivered to destination
EXPIRED 3 Message validity period has expired.
DELETED 4 Message has been deleted.
UNDELIVERABLE 5 Message is undeliverable
ACCEPTED 6 Message is in accepted state (i.e. has been manually read on behalf of the subscriber by customer service)
UNKNOWN 7 Message is in invalid state
REJECTED 8 Message is in a rejected state
Table 5-6: Message States

5.3 SMPP Optional Parameter Description

5.3.1 Optional Parameter Tag Identifiers

Optional Parameters are fields, which may be optionally included in an SMPP message. Optional Parameters must always appear at the end of a message, in the "Optional Parameters" section of the SMPP PDU. However, they may be included in any convenient order within the "Optional Parameters" section of the SMPP PDU and need not be encoded in the order presented in this document.

For a particular SMPP PDU, the ESME or SMSC may include some, all or none of the defined optional parameters as required for the particular application context. For example a paging system may in an SMPP submit_sm operation, include only the "callback number" related optional parameters.

All SMPP optional parameters have a 16 bit Parameter Tag Identifier. The SMPP protocol defines the following Parameter Tag blocks:

0x0000Reserved
0x0001 - 0x00FFSMPP defined optional parameters
0x0100 - 0x01FFReserved
0x0200 - 0x05FFSMPP defined optional parameters
0x0600 - 0x10FFReserved for SMPP Protocol Extension
0x1100 - 0x11FFReserved
0x1200 - 0x13FFSMPP defined optional parameters
0x1400 - 0x3FFFReserved for SMSC Vendor specific optional parameters
0x4000 - 0xFFFFReserved

5.3.2 SMPP Optional Parameter Tag definitions

The SMPP supported Optional Parameters and their associated Tag Values are listed in Table 5-7 below. The optional parameters are described individually in the following sections.

Generic optional parameters may be applicable to all wireless network technologies i.e., GSM/ iDEN, TDMA and CDMA.

TagValueWireless Network Technology
dest_addr_subunit0x0005GSM
dest_network_type0x0006Generic
dest_bearer_type0x0007Generic
dest_telematics_id0x0008GSM
source_addr_subunit0x000DGSM
source_network_type0x000EGeneric
source_bearer_type0x000FGeneric
source_telematics_id0x0010GSM
qos_time_to_live0x0017Generic
payload_type0x0019Generic
additional_status_info_text0x001DGeneric
receipted_message_id0x001EGeneric
ms_msg_wait_facilities0x0030GSM
privacy_indicator0x0201CDMA, TDMA
source_subaddress0x0202CDMA, TDMA
dest_subaddress0x0203CDMA, TDMA
user_message_reference0x0204Generic
user_response_code0x0205CDMA, TDMA
source_port0x020AGeneric
destination_port0x020BGeneric
sar_msg_ref_num0x020CGeneric
language_indicator0x020DCDMA, TDMA
sar_total_segments0x020EGeneric
sar_segment_seqnum0x020FGeneric
SC_interface_version0x0210Generic
callback_num_pres_ind0x0302TDMA
callback_num_atag0x0303TDMA
number_of_messages0x0304CDMA
callback_num0x0381CDMA, TDMA, GSM, iDEN
dpf_result0x0420Generic
set_dpf0x0421Generic
ms_availability_status0x0422Generic
network_error_code0x0423Generic
message_payload0x0424Generic
delivery_failure_reason0x0425Generic
more_messages_to_send0x0426GSM
message_state0x0427Generic
ussd_service_op0x0501GSM (USSD)
display_time0x1201CDMA, TDMA
sms_signal0x1203TDMA
ms_validity0x1204CDMA, TDMA
alert_on_message_delivery0x130CCDMA
its_reply_type0x1380CDMA
its_session_info0x1383CDMA
Table 5-7: Optional Parameter Tag values

5.3.2.1 dest_addr_subunit

The dest_addr_subunit parameter is used to route messages when received by a mobile station, for example to a smart card in the mobile station or to an external device connected to the mobile station.

Field Name Size octets Type Description
Parameter Tag 2 Integer dest_addr_subunit
Length 2 Integer Length of Value part in octets
Value 1 Integer 0x00 = Unknown (default)
0x01 = MS Display
0x02 = Mobile Equipment
0x03 = Smart Card 1 (expected to be SIM if
a SIM exists in the MS)
0x04 = External Unit 1
5 to 255 = reserved

5.3.2.2 source_addr_subunit

The source_addr_subunit parameter is used to indicate where a message originated in the mobile station, for example a smart card in the mobile station or an external device connected to the mobile station.

Field Name Size octets Type Description
Parameter Tag 2 Integer source_addr_subunit
Length 2 Integer Length of Value part in octets
Value 1 Integer see 5.3.2.1

5.3.2.3 dest_network_type

The dest_network_type parameter is used to indicate a network type associated with the destination address of a message. In the case that the receiving system (e.g. SMSC) does not support the indicated network type, it may treat this a failure and return a response PDU reporting a failure.

5.3.2.4 source_network_type

The source_network_type parameter is used to indicate the network type associated with the device that originated the message.

Field Name Size octets Type Description
Parameter Tag 2 Integer source_network_type
Length 2 Integer Length of Value part in octets
Value 1 Integer see 5.3.2.3

5.3.2.5 dest_bearer_type

The dest_bearer_type parameter is used to request the desired bearer for delivery of the message to the destination address. In the case that the receiving system (e.g. SMSC) does not support the indicated bearer type, it may treat this a failure and return a response PDU reporting a failure.

Field Name Size octets Type Description
Parameter Tag 2 Integer dest_bearer_type
Length 2 Integer Length of Value part in octets
Value 1 Integer 0x00 = Unknown
0x01 = SMS
0x02 = Circuit Switched Data (CSD)
0x03 = Packet Data
0x04 = USSD
0x05 = CDPD
0x06 = DataTAC
0x07 = FLEX/ReFLEX
0x08 = Cell Broadcast (cellcast)
9 to 255 = reserved

5.3.2.6 source_bearer_type

The source_bearer_type parameter indicates the wireless bearer over which the message originated.

Field Name Size octets Type Description
Parameter Tag2Integersource_bearer_type
Length2IntegerLength of Value part in octets
Value1Integersee 5.3.2.5

5.3.2.7 dest_telematics_id

This parameter defines the telematic interworking to be used by the delivering system for the destination address. This is only useful when a specific dest_bearer_type parameter has also been specified as the value is bearer dependent. In the case that the receiving system (e.g. SMSC) does not support the indicated telematic interworking, it may treat this a failure and return a response PDU reporting a failure.

Field Name Size octets Type Description
Parameter Tag2Integerdest_telematics_id
Length2IntegerLength of Value part in octets
Value2Integerto be defined

5.3.2.8 source_telematics_id

The source_telematics_id parameter indicates the type of telematics interface over which the message originated.

Field Name Size octets Type Description
Parameter Tag2Integersource_telematics_id
Length2IntegerLength of Value part in octets
Value1Integersee 5.3.2.7

5.3.2.9 qos_time_to_live

This parameter defines the number of seconds which the sender requests the SMSC to keep the message if undelivered before it is deemed expired and not worth delivering. If the parameter is not present, the SMSC may apply a default value.

Field Name Size octets Type Description
Parameter Tag2Integerqos_time_to_live
Length2IntegerLength of Value part in octets
Value4Integernumber of seconds for message to be retained by the receiving system.

5.3.2.10 payload_type

The payload_type parameter defines the higher layer PDU type contained in the message payload.

Field Name Size octets Type Description
Parameter Tag2Integerpayload_type
Length2IntegerLength of Value part in octets
Value 1 Integer

0 - Default. In the case of a WAP application, the default higher layer message type is a WDP message. See [WDP] for details.

1 - WCMP message. Wireless Control Message Protocol formatted data. See [WCMP] for details.

values - 2 to 255 are reserved

5.3.2.11 additional_status_info_text

The additional_status_info_text parameter gives an ASCII textual description of the meaning of a response PDU. It is to be used by an implementation to allow easy diagnosis of problems.

Field Name Size octets Type Description
Parameter Tag 2 Integer additional_status_info_text
Length 2 Integer Length of Value part in octets
Value 1 - 256 C Octet String Free format text to allow implementations to supply the most useful information for problem diagnosis. Maximum length is 256 octets.

5.3.2.12 receipted_message_id

The receipted_message_id parameter indicates the ID of the message being receipted in an SMSC Delivery Receipt. This is the opaque SMSC message identifier that was returned in the message_id parameter of the SMPP response PDU that acknowledged the submission of the original message.

Field Name Size octets Type Description
Parameter Tag 2 Integer receipted_message_id
Length 2 Integer Length of Value part in octets
Value 1 - 65 C Octet String SMSC handle of the message being receipted.

5.3.2.13 ms_msg_wait_facilities

The ms_msg_wait_facilities parameter allows an indication to be provided to an MS that there are messages waiting for the subscriber on systems on the PLMN. The indication can be an icon on the MS screen or other MMI indication.

The ms_msg_wait_facilities can also specify the type of message associated with the message waiting indication.

5.3.2.14 privacy_indicator

The privacy_indicator indicates the privacy level of the message.

5.3.2.15 source_subaddress

The source_subaddress parameter specifies a subaddress associated with the originator of the message.

5.3.2.16 dest_subaddress

The dest_subaddress parameter specifies a subaddress associated with the destination of the message.

Field Name Size octets Type Description
Parameter Tag2Integerdest_subaddress
Length2IntegerLength of Value part in octets
ValueVar 2 - 23Octet StringSee 5.3.2.15 for parameter encoding.

Note: The dest_subaddress parameter is not supported in the SMPP submit_multi PDU.

5.3.2.17 user_message_reference

A reference assigned by the originating SME to the short message.

Field Name Size octets Type Description
Parameter Tag2Integeruser_message_reference
Length2IntegerLength of value part in octets
Value2IntegerAll values allowed.

5.3.2.18 user_response_code

A response code set by the user in a User Acknowledgement/Reply message. The response codes are application specific.

Field Name Size octets Type Description
Parameter Tag2Integeruser_response_code
Length2IntegerLength of value part in octets
Value1Integer0 to 255 (IS-95 CDMA)
0 to 15 (CMT-136 TDMA)

5.3.2.19 language_indicator

The language_indicator parameter is used to indicate the language of the short message.

Field Name Size octets Type Description
Parameter Tag2Integerlanguage_indicator
Length2IntegerLength of value part in octets
Value1Integer0 = unspecified (default)
1 = english
2 = french
3 = spanish
4 = german
5 = Portuguese
refer to [CMT-136] for other values

5.3.2.20 source_port

The source_port parameter is used to indicate the application port number associated with the source address of the message.

Field Name Size octets Type Description
Parameter Tag2Integersource_port
Length2IntegerLength of value part in octets
Value2IntegerAll values allowed.

5.3.2.21 destination_port

The destination_port parameter is used to indicate the application port number associated with the destination address of the message.

Field Name Size octets Type Description
Parameter Tag2Integerdestination_port
Length2IntegerLength of value part in octets
Value2IntegerAll values allowed.

5.3.2.22 sar_msg_ref_num

The sar_msg_ref_num parameter is used to indicate the reference number for a particular concatenated short message.

Field Name Size octets Type Description
Parameter Tag 2 Integer sar_msg_ref_num
Length 2 Integer Length of value part in octets
Value 2 Integer This parameter shall contain a originator generated reference number so that a segmented short message may be reassembled into a single original message. This allows the parallel transmission of several segmented messages. This reference number shall remain constant for every segment which makes up a particular concatenated short message. When present, the PDU must also contain the sar_total_segments and sar_segment_seqnum parameters. Otherwise this parameter shall be ignored.

5.3.2.23 sar_total_segments

The sar_total_segments parameter is used to indicate the total number of short messages within the concatenated short message.

Field Name Size octets Type Description
Parameter Tag 2 Integer sar_total_segments
Length 2 Integer Length of value part in octets
Value 1 Integer This parameter shall contain a value in the range 1 to 255 indicating the total number of fragments within the concatenated short message. The value shall start at 1 and remain constant for every short message which makes up the concatenated short message. When present, the PDU must also contain the sar_msg_ref_num and sar_segment_seqnum parameters. Otherwise this parameter shall be ignored.

5.3.2.24 sar_segment_seqnum

The sar_segment_seqnum parameter is used to indicate the sequence number of a particular short message within the concatenated short message.

Field Name Size octets Type Description
Parameter Tag 2 Integer ar_segment_seqnum
Length 2 Integer Length of value part in octets
Value 1 Integer This octet shall contain a value in the range 1 to 255 indicating the sequence number of a particular message within the concatenated short message. The value shall start at 1 and increment by one for every message sent within the concatenated short message. When present, the PDU must also contain the sar_total_segments and sar_msg_ref_num parameters. Otherwise this parameter shall be ignored.

5.3.2.25 sc_interface_version

The sc_interface_version parameter is used to indicate the SMPP version supported by the SMSC. It is returned in the bind response PDUs.

Field Name Size octets Type Description
Parameter Tag2Integersc_interface_version
Length2IntegerLength of value part in octets
Value1Integervalues as per 5.2.4. (interface_version)

5.3.2.26 display_time

The display_time parameter is used to associate a display time of the short message on the MS.

Field Name Size octets Type Description
Parameter Tag 2 Integer display_time
Length 2 Integer Length of value part in octets
Value 1 Integer 0 = Temporary
1 = Default (default)
2 = Invoke
values 3 to 255 are reserved

5.3.2.27 ms_validity

The ms_validity parameter is used to provide an MS with validity information associated with the received short message.

Field Name Size octets Type Description
Parameter Tag 2 Integer ms_validity
Length2IntegerLength of value part in octets
Value 1 Integer 0 = Store Indefinitely (default)
1 = Power Down
2 = SID based registration area
3 = Display Only
values 4 to 255 are reserved

5.3.2.28 dpf_result

The dpf_result parameter is used in the data_sm_resp PDU to indicate if delivery pending flag (DPF) was set for a delivery failure of the short message..

If the dpf_result parameter is not included in the data_sm_resp PDU, the ESME should assume that DPF is not set.

Currently this parameter is only applicable for the Transaction message mode.

Field Name Size octets Type Description
Parameter Tag2Integerdpf_result
Length2IntegerLength of value part in octets
Value1Integer0 = DPF not set
1 = DPF set
values 2 to 255 are reserved

5.3.2.29 set_dpf

An ESME may use the set_dpf parameter to request the setting of a delivery pending flag (DPF) for certain delivery failure scenarios, such as

The SMSC should respond to such a request with an alert_notification PDU when it detects that the destination MS has become available.

The delivery failure scenarios under which DPF is set is SMSC implementation and network implementation specific. If a delivery pending flag is set by the SMSC or network (e.g. HLR), then the SMSC should indicate this to the ESME in the data_sm_resp message via the dpf_result parameter.

Field Name Size octets Type Description
Parameter Tag 2 Integer set_dpf
Length 2 Integer length of value part in octets
Value 1 Integer 0 = Setting of DPF for delivery failure to MS not requested
1 = Setting of DPF for delivery failure requested (default)
values 2 to 255 are reserved

5.3.2.30 ms_availability_status

The ms_availability_status parameter is used in the alert_notification operation to indicate the availability state of the MS to the ESME.

If the SMSC does not include the parameter in the alert_notification operation, the ESME should assume that the MS is in an "available" state.

Field Name Size octets Type Description
Parameter Tag2Integerms_availability_status
Length2IntegerLength of value part in octets
Value 1 Integer0 = Available (Default)
1 = Denied (e.g. suspended, no SMS capability, etc.)
2 = Unavailable values 3 to 255 are reserved

5.3.2.31 network_error_code

The network_error_code parameter is used to indicate the actual network error code for a delivery failure. The network error code is technology specific.

Field Name Size octets Type Description
Parameter Tag2Integernetwork_error_code
Length2IntegerLength of value part in octets
Value 3 Octet String

The first octet indicates the network type. The following values are defined:

  • 1 = ANSI-136
  • 2 = IS-95
  • 3 = GSM
  • 4 = Reserved
  • All other values reserved.

The remaining two octets specify the actual network error code appropriate to the network type.

5.3.2.32 message_payload

The message_payload parameter contains the user data.

Field Name Size octets Type Description
Parameter Tag2Integermessage_payload
Length2IntegerSet to length of user data
Value Variable Octet String Short message user data. The maximum size is SMSC and network implementation specific.

5.3.2.33 delivery_failure_reason

The delivery_failure_reason parameter is used in the data_sm_resp operation to indicate the outcome of the message delivery attempt (only applicable for transaction message mode). If a delivery failure due to a network error is indicated, the ESME may check the network_error_code parameter (if present) for the actual network error code.

The delivery_failure_reason parameter is not included if the delivery attempt was successful.

Field Name Size octets Type Description
Parameter Tag2Integerdelivery_failure_reason
Length2IntegerLength of value part in octets
Value 1 Integer 0 = Destination unavailable
1 = Destination Address Invalid (e.g.
suspended, no SMS capability, etc.)
2 = Permanent network error
3 = Temporary network error
values 4 to are 255 reserved

5.3.2.34 more_messages_to_send

The more_messages_to_send parameter is used by the ESME in the submit_sm and data_sm operations to indicate to the SMSC that there are further messages for the same destination SME. The SMSC may use this setting for network resource optimization.

Field Name Size octets Type Description
Parameter Tag2Integermore_messages_to_send
Length2IntegerLength of value part in octets
Value 1   0 = No more messages to follow; 1 = More messages to follow (default) values 2 to 255 are reserved

5.3.2.35 message_state

The message_state optional parameter is used by the SMSC in the deliver_sm and data_sm PDUs to indicate to the ESME the final message state for an SMSC Delivery Receipt.

Field Name Size octets Type Description
Parameter Tag2Integermessage_state
Length2IntegerLength of value part in octets
Value1 Values as per section 5.2.28

5.3.2.36 callback_num

The callback_num parameter associates a call back number with the message. In TDMA networks, it is possible to send and receive multiple callback numbers to/from TDMA mobile stations.

Field Name Size octets Type Description
Parameter Tag2Integer 
Length2IntegerLength of Value part in octets
Value Var 4 - 19 Octet String

Bits 7.............0

0000000D (octet 1)

00000TTT (octet 2)

0000NNNN (octet 3)

XXXXXXXX (octet 4)

:

:

XXXXXXXX (octet N)

The originating SME can set a Call Back Number for the receiving Mobile Station. The first octet contains the Digit Mode Indicator. Bit D=0 indicates that the Call Back Number is sent to the mobile as DTMF digits encoded in TBCD. Bit D=1 indicates that the Call Back Number is sent to the mobile encoded as ASCII digits. The 2nd octet contains the Type of Number (TON). Encoded as in section 5.2.5.

The third octet contains the Numbering Plan Indicator (NPI). Encoded as specified in section 5.2.6

The remaining octets contain the Call Back Number digits encoded as ASCII characters

5.3.2.37 callback_num_pres_ind

Field Name Size octets Type Description
Parameter Tag2Integercallback_num_pres_ind
Length2IntegerLength of Value part in octets
Value 1 Bit mask

Bits 7............0
0000ppss

This parameter controls the presentation indication and screening of the CallBackNumber at the mobile station.If present, the callback_num parameter must also be present.

The Presentation Indicator is encoded in bits 2 and 3 as follows:

00 = Presentation Allowed

01 = Presentation Restricted

10 = Number Not Available

11 = Reserved

The Screening Indicator is encoded in bits 0 and 1 as follows:

00 = User provided, not screened

01 = User provided, verified and passed

10 = User provided, verified and failed

11 = Network Provided.

5.3.2.38 callback_num_atag

The callback_num_atag parameter associates an alphanumeric display with the call back number.

Field Name Size octets Type Description
Parameter Tag2Integercallback_num_atag
Length2IntegerLength of Value part in octets
Value Var max 65 Octet string

Alphanumeric display tag for call back number


Bits 7...............0
EEEEEEEE (octet 1)
XXXXXXXX (octet 2)
:
:
XXXXXXXX (octet N)

The first octet contains the encoding scheme of the Alpha Tag display characters. This field contains the same values as for Data Coding Scheme (see section 5.2.19). The following octets contain the display characters: There is one octet per display character for 7-bit and 8-bit encoding schemes. There are two octets per display character for 16-bit encoding schemes.

5.3.2.39 number_of_messages

The number_of_messages parameter is used to indicate the number of messages stored in a mailbox.

Field Name Size octets Type Description
Parameter Tag2Integernumber_of_messages
Length2IntegerLength of Value part in octets
Value1Integer0 to 99 = allowed values. Values 100 to 255 are reserved

5.3.2.40 sms_signal

The sms_signal parameter is used to provide a TDMA MS with alert tone information associated with the received short message.

Field Name Size octets Type Description
Parameter Tag2Integersms_signal
Length2IntegerLength of Value part in octets
Value2IntegerEncoded as per [CMT-136]

5.3.2.41 alert_on_message_delivery

The alert_on_message_delivery parameter is set to instruct a MS to alert the user (in a MS implementation specific manner) when the short message arrives at the MS.

Field Name Size octets Type Description
Parameter Tag2Integeralert_on_message_delivery
Length2IntegerLength of Value part in octets (= 0)
Value0No Value 

5.3.2.42 its_reply_type

The its_reply_type parameter is a required parameter for the CDMA Interactive Teleservice as defined by the Korean PCS carriers [KORITS]. It indicates and controls the MS user's reply method to an SMS delivery message received from the ESME.

Field Name Size octets Type Description
Parameter Tag2Integerits_reply_type
Length2IntegerLength of Value part in octets
Value 1 Integer
0 = Digit 
1 = Number 
2 = Telephone No. 
3 = Password 
4 = Character Line 
5 = Menu 
6 = Date 
7 = Time 
8 = Continue 
values 9 to 255 are reserved 

5.3.2.43 its_session_info

The its_session_info parameter is a required parameter for the CDMA Interactive Teleservice as defined by the Korean PCS carriers [KORITS]. It contains control information for the interactive session between an MS and an ESME.

Field Name Size octets Type Description
Parameter Tag2Integerits_session_info
Length2IntegerLength of Value part in octets
Value 2 Octet String
Bits 7...............0 
SSSS SSSS (octet 1) 
NNNN NNNE (octet 2) 

Octet 1 contains the session number (0 - 255) encoded in binary. The session number remains constant for each session.

The sequence number of the dialogue unit (as assigned by the ESME) within the session is encoded in bits 7..1 of octet 2.

The End of Session Indicator indicates the message is the end of the conversation session and is encoded in bit 0 of octet 2 as follows: 0 = End of Session Indicator inactive. 1 = End of Session Indicator active.

5.3.2.44 ussd_service_op

The ussd_service_op parameter is required to define the USSD service operation when SMPP is being used as an interface to a (GSM) USSD system.

Field Name Size octets Type Description
Parameter Tag2Integerussd_service_op
Length2IntegerLength of Value part in octets
Value 1 Octet String
0 = PSSD indication 
1 = PSSR indication 
2 = USSR request 
3 = USSN request 
4 to 15 = reserved 

16 = PSSD response 
17 = PSSR response 
18 = USSR confirm 
19 = USSN confirm 

20 to 31 = reserved 
32 to 255 = reserved for vendor specific 
USSD operations