SMS
FORUM
Short Message Peer-to-Peer
Protocol Specification
Version 5.0
www.smsforum.net
SMPP V5.0 SMS Forum 2 of 166
SMS
FORUM
Short Message Peer to Peer Protocol Specification
v5.0 19-February-2003
1999-2003 SMS Forum.
COPYRIGHT
All rights reserved. This document or any part thereof may not, without the prior written
consent of SMS Forum, be copied, reprinted or reproduced in any material form including,
but without prejudice to the foregoing and not by way of exception photocopying, transcribing,
transmitting or storing in any medium or translating into any language, in any form or by any
means, including but not limited to, electronic, mechanical, xerographic, optical, magnetic,
digital or other methodology.
DISCLAIMER
WHILST THE GREATEST CARE HAS BEEN TAKEN TO ENSURE THE ACCURACY OF
THE INFORMATION AND DATA CONTAINED HEREIN, SMS FORUM DOES NOT
WARRANT THE ACCURACY OR SUITABILITY OF SAME FOR ANY SPECIFIC USE. SMS
FORUM EXPRESSLY DISCLAIMS ALL AND ANY LIABILITY TO ANY PERSON, WHETHER
A PURCHASER OR OTHERWISE, IN RESPECT OF ANY CONSEQUENCES OF
ANYTHING DONE OR OMITTED TO BE DONE BY ANY SUCH PERSON IN PARTIAL OR
TOTAL RELIANCE UPON THE WHOLE OR ANY PART OF THE CONTENTS OF THIS
PUBLICATION OR ANY DERIVATIVE THEREOF.
THE INFORMATION CONTAINED HEREIN IS BELIEVED TO BE ACCURATE AND
RELIABLE. HOWEVER, SMS FORUM ACCEPTS NO RESPONSIBILITY FOR ITS’ USE BY
ANY MEANS OR IN ANY WAY WHATSOEVER. SMS FORUM SHALL NOT BE LIABLE
FOR ANY EXPENSES, COSTS OR DAMAGE THAT MAY RESULT FROM THE USE OF
THE INFORMATION CONTAINED HOWSOEVER ARISING IN THIS DOCUMENT OR ANY
DERIVATIVE THEREOF.
NOTE 1: THE INFORMATION CONTAINED IN THE WITHIN DOCUMENT AND ANY
DERIVATIVE THEREOF IS SUBJECT TO CHANGE WITHOUT NOTICE.
NOTE 2: THE CORPORATE NAME OF SMS FORUM IS NORTHGROVE LIMITED,
COMPANY NUMBER 309113, REGISTERED OFFICE GARDNER HOUSE, WILTON
PLACE, DUBLIN 2.
www.smsforum.net
SMPP V5.0 SMS Forum 3 of 166
SMS
FORUM
Table Of Contents
1 Introduction .................................................................................................................12
1.1 Scope Of This Document ........................................................................................13
1.2 Glossary ..................................................................................................................13
1.3 References ..............................................................................................................14
1.4 SMPP Overview ......................................................................................................16
1.4.1 Protocol Versions .............................................................................................17
1.4.2 Supported Cellular Technologies.....................................................................18
1.4.3 Typical Applications of SMPP ..........................................................................19
1.4.4 SMPP Sessions ...............................................................................................20
1.4.5 Protocol Operations and PDUs........................................................................21
1.4.5.1 Session Management Operations ............................................................21
1.4.5.2 Message Submission Operations.............................................................22
1.4.5.3 Message Delivery Operations...................................................................23
1.4.5.4 Message Broadcast Operations ...............................................................23
1.4.5.5 Anciliary Submission Operations..............................................................23
1.4.5.6 Anciliary Broadcast Operations ................................................................24
2 SMPP Sessions ..........................................................................................................25
2.1 Application Layer Communication...........................................................................25
2.2 Establishing a SMPP Session.................................................................................26
2.3 Session States ........................................................................................................26
2.3.1 Open.................................................................................................................26
2.3.2 Bound_TX ........................................................................................................26
2.3.3 Bound_RX........................................................................................................27
2.3.4 Bound_TRX......................................................................................................27
2.3.5 Unbound...........................................................................................................28
2.3.6 Closed ..............................................................................................................28
2.3.7 Outbound .........................................................................................................28
2.4 Operation Matrix......................................................................................................29
2.5 Sample Sessions.....................................................................................................31
2.5.1 Example Transmitter Session ..........................................................................31
2.5.2 Example Receiver Session ..............................................................................32
2.5.3 Example Transceiver Session .........................................................................33
2.5.4 Example Transmitter Session (Cell Broadcast Entity).....................................34
2.5.5 Example Outbind Session................................................................................35
2.6 PDU Sequencing.....................................................................................................36
2.6.1 The PDU Sequence Number ...........................................................................36
2.6.2 Why use Monotonically Increasing Sequence numbers?................................37
2.6.3 Sequence Numbers Across Sessions .............................................................37
2.6.4 Synchronous Vs. Asynchronous ......................................................................37
2.6.5 Why Asynchronous? ........................................................................................39
2.7 Session Timers........................................................................................................40
2.8 Error Handling .........................................................................................................41
2.8.1 Handling Connection Failure............................................................................41
2.8.2 Operation Failure .............................................................................................42
2.9 Flow Control and Congestion Avoidance................................................................43
2.10 Session Security and Encryption.........................................................................44
2.10.1 Leased Lines....................................................................................................45
2.10.2 Secure Transport Layer ...................................................................................45
2.10.3 Secure VPN .....................................................................................................45
2.10.4 Secure Tunnel..................................................................................................46
2.11 Forward and Backward Compatibility..................................................................47
2.11.1 Forward Compatibility ......................................................................................47
2.11.2 Backward Compatibility....................................................................................48
3 SMPP Parameter and PDU Format............................................................................49
3.1 Parameter Type Definitions.....................................................................................49
3.1.1 NULL Settings ..................................................................................................51
3.1.2 SMPP Parameter Field Size Notation..............................................................52
www.smsforum.net
SMPP V5.0 SMS Forum 4 of 166
SMS
FORUM
3.2 General PDU Format...............................................................................................53
3.2.1 PDU Format .....................................................................................................53
3.2.1.1 Command_length......................................................................................53
3.2.1.2 Command_id.............................................................................................54
3.2.1.3 Command_status......................................................................................54
3.2.1.4 Sequence_number....................................................................................54
3.2.1.5 Standard Parameters................................................................................54
3.2.1.6 TLV Parameters ........................................................................................54
3.2.2 A sample PDU..................................................................................................55
4 SMPP PDU Definitions................................................................................................56
4.1 Session Management Operations ...........................................................................56
4.1.1 Bind Operation .................................................................................................56
4.1.1.1 bind_transmitter Syntax ............................................................................56
4.1.1.2 bind_transmitter_resp Syntax ...................................................................57
4.1.1.3 bind_receiver Syntax ................................................................................58
4.1.1.4 bind_receiver_resp Syntax .......................................................................59
4.1.1.5 bind_transceiver Syntax............................................................................59
4.1.1.6 bind_transceiver_resp Syntax...................................................................60
4.1.1.7 outbind Syntax. .........................................................................................61
4.1.1.8 unbind Syntax ...........................................................................................61
4.1.1.9 unbind_resp Syntax ..................................................................................62
4.1.2 Enquire Link Operation ....................................................................................63
4.1.2.1 enquire_link Syntax...................................................................................63
4.1.2.2 enquire_link_resp Syntax..........................................................................63
4.1.3 Alert Notification Operation ..............................................................................64
4.1.3.1 alert_notification Syntax............................................................................64
4.1.4 Generic NACK Operation.................................................................................65
4.1.4.1 generic_nack Syntax.................................................................................65
4.2 Message Submission Operations............................................................................66
4.2.1 submit_sm Operation .......................................................................................66
4.2.1.1 submit_sm Syntax.....................................................................................66
4.2.1.2 submit_sm_resp Syntax............................................................................68
4.2.2 data_sm Operation...........................................................................................69
4.2.2.1 data_sm Syntax ........................................................................................69
4.2.2.2 data_sm_resp Syntax ...............................................................................70
4.2.3 submit_multi Operation ....................................................................................71
4.2.3.1 submit_multi Syntax ..................................................................................71
4.2.3.2 submit_multi_resp Syntax.........................................................................74
4.2.4 Message Submission Request TLVs ...............................................................75
4.2.5 Message Submission Response TLVs ............................................................77
4.2.6 Source and Destination Addressing.................................................................77
4.2.6.1 TON...........................................................................................................77
4.2.6.1.1 International and National Format.........................................................77
4.2.6.1.2 Alphanumeric Format............................................................................78
4.2.6.2 NPI ............................................................................................................78
4.2.6.3 ESME Addresses ......................................................................................78
4.2.7 Message Replace operation in submit_sm ......................................................79
4.2.8 Message Length...............................................................................................79
4.2.9 Message Types ................................................................................................79
4.2.9.1 Registered.................................................................................................79
4.2.9.2 Scheduled .................................................................................................80
4.2.9.3 Pre-defined................................................................................................80
4.2.10 Message Modes ...............................................................................................81
4.2.10.1 Default Message Mode .............................................................................81
4.2.10.2 Store and Forward Message Mode ..........................................................81
4.2.10.3 Datagram Message Mode.........................................................................83
4.2.10.4 Transaction Message Mode......................................................................84
4.3 Message Delivery Operations .................................................................................85
4.3.1 deliver_sm Operation .......................................................................................85
www.smsforum.net
SMPP V5.0 SMS Forum 5 of 166
SMS
FORUM
4.3.1.1 deliver_sm Syntax.....................................................................................85
4.3.1.2 deliver_sm_resp Syntax ...........................................................................87
4.3.2 data_sm Operation...........................................................................................88
4.3.3 Message Delivery Request TLVs.....................................................................88
4.3.4 Message Delivery Response TLVs..................................................................90
4.3.5 Delivery Message Types..................................................................................90
4.3.5.1 MC Delivery Receipt .................................................................................90
4.3.5.2 Intermediate Notification ...........................................................................91
4.3.5.3 SME Delivery Acknowledgement..............................................................91
4.3.5.4 SME Manual/User Acknowledgement ......................................................91
4.3.5.5 Conversation Abort ...................................................................................91
4.4 Message Broadcast Operations..............................................................................92
4.4.1 broadcast_sm Operation..................................................................................92
4.4.1.1 broadcast_sm Syntax ...............................................................................92
4.4.1.2 broadcast_sm_resp Syntax ......................................................................96
4.4.2 Broadcast Request Optional TLVs...................................................................96
4.4.3 Broadcast Response Optional TLVs................................................................99
4.4.4 Message Replacement with broadcast_sm .....................................................99
4.5 Ancillary Submission Operations ..........................................................................100
4.5.1 cancel_sm Operation .....................................................................................100
4.5.1.1 cancel_sm Syntax...................................................................................100
4.5.1.2 cancel_sm_resp Syntax..........................................................................102
4.5.2 query_sm Operation.......................................................................................102
4.5.2.1 query_sm Syntax ....................................................................................102
4.5.2.2 query_sm_resp Syntax ...........................................................................103
4.5.3 replace_sm Operation....................................................................................104
4.5.3.1 replace_sm Syntax .................................................................................104
4.5.3.2 replace_sm_resp Syntax ........................................................................106
4.5.3.3 Message Replacement TLVs..................................................................106
4.6 Ancillary Broadcast Operations.............................................................................107
4.6.1 query_broadcast_sm Operation.....................................................................107
4.6.1.1 query_broadcast_sm Syntax ..................................................................107
4.6.1.2 Query Broadcast Request Optional TLVs ..............................................108
4.6.1.3 query_broadcast_sm_resp Syntax .........................................................108
4.6.1.4 Query Broadcast Response Optional TLVs............................................109
4.6.2 cancel_broadcast_sm Operation ...................................................................110
4.6.2.1 cancel_broadcast_sm Syntax.................................................................110
4.6.2.2 Cancel Broadcast Optional TLVs ...........................................................111
4.6.2.3 cancel_broadcast_sm_resp Syntax........................................................112
4.7 PDU Field Definitions ............................................................................................113
4.7.1 addr_ton, source_addr_ton, dest_addr_ton, esme_addr_ton .......................113
4.7.2 addr_npi, source_addr_npi, dest_addr_npi, esme_addr_npi ........................113
4.7.3 address_range ...............................................................................................114
4.7.3.1 UNIX Regular Expressions .....................................................................114
4.7.4 command_length............................................................................................114
4.7.5 command_id...................................................................................................115
4.7.6 command_status, error_status_code ............................................................116
4.7.7 data_coding....................................................................................................123
4.7.8 destination_addr.............................................................................................124
4.7.9 dest_flag.........................................................................................................124
4.7.10 dl_name..........................................................................................................124
4.7.11 esme_addr .....................................................................................................124
4.7.12 esm_class ......................................................................................................125
4.7.13 interface_version............................................................................................126
4.7.14 message_id....................................................................................................126
4.7.15 message_state...............................................................................................127
4.7.16 no_unsuccess ................................................................................................129
4.7.17 number_of_dests ...........................................................................................129
4.7.18 password........................................................................................................129