Short message peer-to-peer protocol

From Wikipedia, the free encyclopedia

The short message peer-to-peer protocol (SMPP) is a telecommunications industry protocol for exchanging SMS messages between SMS peer entities such as short message service centres. It is often used to allow third parties (e.g. value-added service providers like news organisations) to submit messages, often in bulk.

SMPP was originally designed by Aldiscon, a small Irish company that was later bought by Logica, now LogicaCMG. In 1999, SMPP was formally handed over to the SMPP Developers Forum, later renamed as The SMS Forum.

The protocol is based on pairs of request/response PDUs (protocol data units, or packets) exchanged over OSI layer 4 (TCP session or X.25 SVC3) connections. PDUs are binary encoded for efficiency.

The most commonly used versions of SMPP are v3.3, the most widely supported standard, and v3.4, which adds transceiver support (single connections that can send and receive messages). Data exchange may be synchronous, where each peer must wait for a response for each PDU being sent, and asynchronous, where receiving and transmitting go in independent threads with the use of buffers and timers. The latest version of SMPP is v5.0.

Contents

[edit] Example

This is an example of a 60-octet submit_sm PDU...

[edit] Hexdump

00 00 00 3C 00 00 00 04 00 00 00 00 00 00 00 05 00 02 08 35 35 35 00 01 01
35 35 35 35 35 35 35 35 35 00 00 00 00 00 00 00 00 00 00 0F 48 65 6C 6C 6F
20 77 69 6B 69 70 65 64 69 61

[edit] PDU Header

'command_length', (60) ... 00 00 00 3C
'command_id', (4) ... 00 00 00 04
'command_status', (0) ... 00 00 00 00
'sequence_number', (5) ... 00 00 00 05

[edit] PDU Body

'service_type', () ... 00
'source_addr_ton', (2) ... 02
'source_addr_npi', (8) ... 08
'source_addr', (555) ... 35 35 35 00
'dest_addr_ton', (1) ... 01
'dest_addr_npi', (1) ... 01
'dest_addr', (555555555) ... 35 35 35 35 35 35 35 35 35 00
'esm_class', (0) ... 00
'protocol_id', (0) ... 00
'priority_flag', (0) ... 00
'schedule_delivery_time', () ... 00
'validity_period', () ... 00
'registered_delivery', (0) ... 00
'replace_if_present_flag', (0) ... 00
'data_coding', (0) ... 00
'sm_default_msg_id', (0) ... 00
'sm_length', (15) ... 0F
'short_message', (Hello wikipedia) ... 48 65 6C 6C 6F 20 77 69 6B 69 70 65 64 69 61'

[edit] External links