Reference section - SMPP

deliver_sm

SMPP deliver_sm

SMPP (Short Message Peer-to-Peer) is an open, industry standard protocol designed to provide a flexible data communications interface for the transfer of short message data between External Short Message Entities (ESME), Routing Entities (RE) and Message Centres (MC). The SMPP protocol is a means by which applications can send SMS messages to mobile devices and receive SMS from mobile devices.

4.3.1 deliver_sm Operation

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

4.3.1.1 deliver_sm Syntax

Field NameSize octetsTypeDescriptionRef.
command_length4IntegerSet to overall length of PDU.4.7.4
command_id4Integer0x000000054.7.5
command_status4Integer0x000000004.7.6
sequence_number4IntegerSet to a Unique sequence number. The associated deliver_sm_resp PDU will echo this sequence number.4.7.24
service_typeVar. max 6C-Octet StringThe 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” or control the teleservice used on the air interface.

Set to NULL if not known by MC
4.7.25
source_addr_ton 1 IntegerType of Number for source address.4.7.1
source_addr_npi 1 Integer Numbering Plan Indicator for source address.4.7.2
source_addrVar. max 21C-Octet StringAddress of SME which originated this message.4.7.29
dest_addr_ton 1 IntegerType of Number for destination4.7.1
dest_addr_npi 1 IntegerNumbering Plan Indicator for destination4.7.2
destination_addrVar. max 21C-Octet StringDestination address of this short message For mobile terminated messages, this is the directory number of the recipient MS4.7.8
esm_class1IntegerIndicates Message Mode and Message Type4.7.12
protocol_id1IntegerProtocol Identifier. Network specific field.4.7.20
priority_flag1IntegerDesignates the priority level of the message4.7.19
schedule_delivery_time1 or 17C-Octet StringThe short message is to be scheduled by the receiving MC or ESME for delivery.

This field is only applicable if the short message is being forwarded to another MC. In this case it is the time at which the receiving MC should schedule the short message.

Set to NULL if not scheduled.
4.7.23.1
validity_period1 or 17C-Octet StringThe validity period of this message.

This field is only applicable if this short message is being forwarded to another MC. In this case it specifies how long the receiving MC should retain the SM and continue trying to deliver it.

Set to NULL if the current validity period is unavailable.
4.7.23.2
registered_delivery1IntegerIndicator to signify if a MC delivery receipt or an SME acknowledgement is required.4.7.21
replace_if_present_flag 1IntegerFlag indicating if delivered message should replace an existing message.4.7.22
data_coding 1IntegerDefines the encoding scheme of the short message user data.4.7.7
sm_default_msg_id1IntegerIndicates the short message to send from a list of pre- defined (‘canned’) short messages stored on the receiving MC.

This field is only applicable if this message is being forwarded to another MC.

Set to NULL. If not known or applicable
4.7.27
sm_length1IntegerLength in octets of the short_message user data.4.7.28
short_messageVar. 0-255Octet StringUp to 255 octets of short message user data.

The exact physical limit for short_message size may vary according to the underlying network

Note: this field is superceded by the message_payload TLV if specified. Ref. 4.8.4.36

Applications which need to send messages longer than 255 octets should use the message_payload TLV. In this case the sm_length field should be set to zero
4.7.26
Message Delivery Request TLVsVar.TLV4.3.3

4.3.1.2 deliver_sm_resp Syntax

Field NameSize octetsTypeDescriptionRef.
command_length4IntegerSet to overall length of PDU.4.7.4
command_id4Integer0x80000054.7.5
command_status4IntegerIndicates outcome of deliver_sm request.4.7.6
sequence_number4IntegerSet to sequence number of original deliver_sm PDU.4.7.24
message_idVar. Max 65C-Octet StringThis field is unused and should be set to NULL4.7.14
Message Delivery Response TLVsVar.TLV4.3.4

SMPP Platforms, Tools and Services

SMPP SMS Gateway

Global cloud SMS gateway platform with advanced routing, reliability and capacity.

SMPP Load Balancer

SMPP load balancer for high availability, reliability and capacity.

SMPP Router

High-performance SMPP SMS routing engine.

SMPP-HTTP Bridge

Interoperate between SMPP and HTTP SMS infrastructures.

SMPP Testing

Test application or platform performance and SMPP conformance (e.g. rate of SMS processing, submit latency, etc).

SMSC Simulator

Test your application's ability to send and receive SMS when using SMPP.

SMS Load Test

Load test an SMS platform with 100s or 1000s of SMS/sec using one or more SMPP binds.

Tyr SMS Gateway

Use SMPP to send and receive SMS messages worldwide with over 1000 mobile networks.

SMPP Clients

Range of SMPP clients for use with SMS gateways and SMSCs.

SMPP Analyser

Analyse SMPP packets as they pass between the client application and provider.




SMS Code Bench

SMS messaging code sample and development playground. Collection of editable and runnable code samples in a variety of languages for different SMS interactions.
SMS Code Bench >

Send SMS programmatically with SMPP

Send SMS programmatically with SMPP using Python, Java, Go, Perl, C++, C#, Node.js, Ruby and PHP.

Other

Find out more...

Please provide your name.
Please provide a valid company name.
Please type your message.
Please provide a valid email address.