NAV

Introduction

SMPP means Short Message Peer to Peer, (SMPP),this protocol is an open industry standard messaging protocol designed to simplify integration of data applications with wireless mobile networks such as GSM, TDMA, CDMA and PDC. The protocol is widely deployed in the mobile telecommunications industry.

The SMPP protocol specification is freely available from http://www.smpp.org

360NRS currently supports version 3.4 of the SMPP protocol. You can download the official documentation here.

Requirements

The following requirements must be met to enable the sending of short messages (SMS) via 360NRS Connectivity:

Access to the 360NRS services is subject to our general terms and conditions of business.

Please send any technical questions by email to: tech@360nrs.com

You can reach our technical hotline or the following telephone number: 902 014 480 (from Spain) or +34 964 523 331 (from abroad) Monday to Friday between 9:00am-07:00pm, CET

Glossary

The parameters used in the 360NRS SMPPServer:

Parameter Description
SMS Short Message Service
PDU Protocol Description Unit (the way how the SMSs are sent)
DR Delivery Report notification
SMPPServer SMPP Server that allows the clients to send SMSs
SMPPClient Clients that wants to send SMSs through our SMPPServer
Host Host where SMPPServer is hosted
IP IP number where the SMPPServer is hosted
Port Connection port that the SMPPServer is connectected
System_id Unique username

Technical information

The GSM specifications have limited the Short Message from the SMSC of the handset to 140 octets.

If 7 bit encoding is used we may deliver 160 characters to the handset, otherwise for 8 bit data the maximum number of characters will be limited to 140.

The characters supported by 360NRS Platform are GSM7, UCS2 and ISO-8859-1 (ISOLatin 1)

The SMPPServer allows the SMPPClient to send SMSs. This implies that the SMPPClient must connect to the SMPPServer using some PDU connection parameters.

Connection configuration


Configuration Description
SMPP Bind Type Transceiver or transmitter & receiver
Asyncrhonous outstanding operations window 10
SMPP Version 3.3 or 3.4
Max allowed sessions per server 2

Mandatory parameters


Parameter Description
Host smppv5.nrs-group.com
Port 5091
Port SSL 6091
System_id alphanumerical username of the client
Password alphanumerical password generated by client


Parameter Description
bind-mode transceiver
sync-mode async
addr-ton 1
addr-npi 1
source-ton 5
source-npi 0
destination-ton 1
destination-npi 1

Message encoding


Data coding Description
0 GSM7 encoding
3 ISO-8859-1
8 UTF-16

When data-coding is set to ISO-8859-1 text is transliterated to avoid errors when text is internally transcoded to GSM7.

The table of equivalence is:

From To From To From To From To From To From To From To
á => a          Á => A          À => A      â => a          Â => A          ã => a          Ã => A
                  È => E      ê => e          Ê => E                  
í => i          Í => I          Ì => I      î => i          Î => I                  
ó => o          Ó => O          Ò => O      ô => o          Ô => O                   Õ => O
ú => u          Ú => U          Ù => U      û => u          Û => U                  
ç => Ç                                                  

SMPP TON/NPI parameters


SMPP parameter Type of address TON NPI
Destination address Always international 1 1
Source address International 1 1
National/shortcode 2 1
Alphanumeric 5 0

International originators

Source address and destination address in international format shall not contain any leading + or 00, only the countrycode is needed.

Sample International Source Address

Displayed on handset: +34609939891

SMPP Parameter:

Alphanumeric originators

Length of an alphanumeric originator is limited to 11 characters; this limit is set by the pertinent GSM Standards.

Delivery reports

SMPPServer provides a SMSC delivery receipt via the deliver_sm or data_sm PDU, which indicates the delivery status of the message.

The informational content of an SMSC Delivery Receipt may be inserted into the short_message parameter of the deliver_sm operation. The format for this Delivery Receipt message is SMSC specific vendor but below there is a typical example of Delivery Receipt report:

The fields of the above delivery receipt example are explained in the following table:

Field Size (octects) Type Description
id 10 C-Octet String (Decimal) The message ID allocated to the message by the SMSC when originally submitted.
sub 3 C-Octet String (Decimal) Number of short messages originally submitted.
This is only relevant when the original message was submitted to a distribution list.
The value is padded with leading zeros if necessary.
dlvrd 3 C-Octet String (Decimal) Number of short messages delivered.
This is only relevant when the original message was submitted to a distribution list.
The value is padded with leading zeros if necessary.
submit date 10 C-Octet Fixed Length String The time and date when the short message was submitted.
In the case of a replaced message, this is the date that the original message was replaced.
done date 10 C-Octet Fixed Length String The time and date when the short message reached it’s final state.
The format is the same as for the submit date.
stat 7 C-Octet Fixed Length String The final status of the message.
err 3 C-Octet Fixed Length String This may be a Network specific error code or an SMSC error code for the attempted delivery of the message.
These errors are Network or SMSC related and are not included in here.
text 20 Octet String The first 20 characters of the short message.

Message states


Message State State Description
DELIVRD Delivered Message is delivered to destination
EXPIRED Expired Message validity period has expired
DELETED Deleted Message has been deleted
UNDELIV Undelivered Message is undeliverable
ACCEPTD Accepted Message is in accepted status (i.e. has been manually read on behalf of the subscriber by customer service)
UNKNOWN Unknown Message is in invalid status
REJECTD Rejected Message is in a rejected status

Action for submit response error codes

When client receives NO_CREDIT error messages:

  1. Stop sending further messages
  2. Contact call center

Binding guidelines

Only one session is available for systemID provided to the client.

  1. When session drops (due to network fluctuation or planned unbind), before rebinding to the server, the client application should wait for 60 sec before issuing the bind request.
  2. The session should not drop frequently. Once binded, session should stay for long time rather than issuing bind request.
  3. Client should not attempt to spam the server with bind request.
  4. Before the unbinding, client should issue unbind request to the system.

Enquirelink - Keep alive signal

  1. The Enquirelink signal should be sent every 30 sec. Otherwise client session will be dropped by the 360NRS platform.
  2. Client should not attempt to spam the server with Enquirelink request.

Resolving bind problems

  1. First try to ping server IP: Ex: ping smppv5.nrs-group.com. If you are not able to ping Sever IP, contact customer care.
  2. If ping is Successful do telnet. Ex: telnet smppv5.nrs-group.com <port>. If you are not able to do telnet, contact customer care.
  3. If you get any error bind response, please check the error code in the section below.
  4. If all confirmations are correct and you are still facing binding problems, please contact customer care who will redirect you to the technical department.

Frequently asked questions

1. How long should The ESME Application Wait For A submit_sm_response?

Server provides response in transaction mode. I,e, response from the operator itself. This depends on the operator delay. Otherwise better option is to send the messages in the async manner.

This command is used to provide a confidence-check of the communication path between ESME and the SMSC. All SMPP sessions on the SMSC are configured with an 80 seconds idle timeout. All ESMEs are expected to initiate an enquire_link every 60 seconds to ensure the session is not closed by the SMSC during idle periods

Error codes

Submit response error codes

Error Code Error Name Description
0x00000000 OK Message received and processed
0x00000401 NO_CREDIT Account does not have enough credits
0x000000FE Delivery Failure The message can't be routed to SMSC or Gateway.
The main reason from that can be internal server issues, losing connection with the SMSC, routing errors or others.
0x00000009 Airbag error Indicates that the same message has sent more than 3 times within less than 30 minutes.
It is considered that the message is the same when the sender, destination and the text are also the same.
The objective of this “anti-flood” mechanism is avoid possible errors from the client who send the same message several times and avoid loopings
0x0000000A Invalid Source Address Invalid Source Address
0x0000000B Invalid Dest Addr Invalid Dest Addr
0x00000402 Invalid message The message has invalid message length

DLR error codes

DLR code Status Duration Description
0 DELIVRD n/a The message is delivered sucessfully
1 UNDELIV Unknown The message can't be delivered but the failure is unkown
2 UNDELIV permanent The msisdn is wrong, the carrier has blocked the sending or it is included in the blacklist permanently
3 UNDELIV permanent The message can't be delivered in its usual format
4 UNDELIV permanent It isn't determined the correct routing for the msisdn
5 UNDELIV temporary The HLR service has failed in the look up
6 UNDELIV temporary The message has failed due to a temporary issue on the SMSC or exit Gateway
7 UNDELIV permanent The handset is not able to receive the message due to an technical incompatibility
8 UNDELIV temporary The handset has the memory fulled, SIM card full or another similar issue, but it will be able to receive messages in the future
9 UNDELIV temporary The message has failed becasuse the MSISDN is ina a roaming process
10 UNDELIV temporary The handset is not connected or out of range during the period the operator has been trying to deliver the message
11 UNDELIV temporary Internal error with the client's balance, the client has no balance after the reception os the sms
30 UNKNOWN permanent The final status of the message is unknown for NRS due NRS has not received any confirmation from the SMSC or Gateway
40 EXPIRED permanent Message expired according to the established time frame
50 DELETED permanent The message has been deleted
60 RECEIVED n/a The message has been received by the Gateway but NRS has not still received the final message status. Currently, this DLR is not being informed to the client
70 ACCEPTD n/a The message has been received by the Gateway but NRS has not still received the final message status. Currently, this DLR is not being informed to the client
80 REJECTD permanent The message has been reject by the SMSC or Gateway due to unknown reasons
81 REJECTD permanent The message has been reject by the carrier due to it's been identified as spam message
82 REJECTD permanent The message does not meet the requirements established by the route for promotional sending
83 REJECTD permanent The message exceeds 140 octets per part
84 REJECTD permanent The message is empty
85 REJECTD permanent The sender exceeds 11 alphanumeric or 15 numeric characters
86 REJECTD permanent The recipient number is incorrect
87 REJECTD temporary The same message has been sent in a time period of less than 30 seconds more than three times. The message is considered to be the same when the sender, recipient, and text of the message coincide. The objective of this 'antiflood' mechanism is to avoid possible errors on the part of the client that sends the same message multiple times and to avoid possible loops
88 REJECTD permanent Wrong expiration date
89 REJECTD temporary External parameter validation error
90 REJECTD permanent The message exceeds the maximum number of characters allowed
91 REJECTD permanent The client has requested the cancellation of promotional messages

Error codes

Error Code Error Name Description
0x00000000 ESME_ROK No Error
0x00000001 ESME_RINVMSGLEN Message too long
0x00000002 ESME_RINVCMDLEN Command length is invalid
0x00000003 ESME_RINVCMDID Command ID is invalid or not supported
0x00000004 ESME_RINVBNDSTS Incorrect bind status for given command
0x00000005 ESME_RALYBND Already bound
0x00000006 ESME_RINVPRTFLG Invalid Priority Flag
0x00000007 ESME_RINVREGDLVFLG Invalid registered delivery flag
0x00000008 ESME_RSYSERR System error
0x0000000A ESME_RINVSRCADR Invalid source address
0x0000000B ESME_RINVDSTADR Invalid destination address
0x0000000C ESME_RINVMSGID Message ID is invalid
0x0000000D ESME_RBINDFAIL Bind failed
0x0000000E ESME_RINVPASWD Invalid password
0x0000000F ESME_RINVSYSID Invalid System ID
0x00000011 ESME_RCANCELFAIL Cancelling message failed
0x00000013 ESME_RREPLACEFAIL Message recplacement failed
0x00000014 ESME_RMSSQFUL Message queue full
0x00000015 ESME_RINVSERTYP Invalid service type
0x00000033 ESME_RINVNUMDESTS Invalid number of destinations
0x00000034 ESME_RINVDLNAME Invalid distribution list name
0x00000040 ESME_RINVDESTFLAG Invalid destination flag
0x00000042 ESME_RINVSUBREP Invalid submit with replace request
0x00000043 ESME_RINVESMCLASS Invalid esm class set
0x00000044 ESME_RCNTSUBDL Invalid submit to ditribution list
0x00000045 ESME_RSUBMITFAIL Submitting message has failed
0x00000048 ESME_RINVSRCTON Invalid source address type of number (TON)
0x00000049 ESME_RINVSRCNPI Invalid source address numbering plan (NPI)
0x00000050 ESME_RINVDSTTON Invalid destination address type of number (TON)
0x00000051 ESME_RINVDSTNPI Invalid destination address numbering plan (NPI)
0x00000053 ESME_RINVSYSTYP Invalid system type
0x00000054 ESME_RINVREPFLAG Invalid replace_if_present flag
0x00000055 ESME_RINVNUMMSGS Invalid number of messages
0x00000058 ESME_RTHROTTLED Throttling error
0x00000061 ESME_RINVSCHED Invalid scheduled delivery time
0x00000062 ESME_RINVEXPIRY Invalid Validty Period value
0x00000063 ESME_RINVDFTMSGID Predefined message not found
0x00000064 ESME_RX_T_APPN ESME Receiver temporary error
0x00000065 ESME_RX_P_APPN ESME Receiver permanent error
0x00000066 ESME_RX_R_APPN ESME Receiver reject message error
0x00000067 ESME_RQUERYFAIL Message query request failed
0x000000C0 ESME_RINVTLVSTREAM Error in the optional part of the PDU body
0x000000C1 ESME_RTLVNOTALLWD TLV not allowed
0x000000C2 ESME_RINVTLVLEN Invalid parameter length
0x000000C3 ESME_RMISSINGTLV Expected TLV missing
0x000000C4 ESME_RINVTLVVAL Invalid TLV value
0x000000FE ESME_RDELIVERYFAILURE Transaction delivery failure
0x000000FF ESME_RUNKNOWNERR Unknown error
0x00000100 ESME_RSERTYPUNAUTH ESME not authorised to use specified servicetype
0x00000101 ESME_RPROHIBITED ESME prohibited from using specified operation
0x00000102 ESME_RSERTYPUNAVAIL Specified servicetype is unavailable
0x00000103 ESME_RSERTYPDENIED Specified servicetype is denied
0x00000104 ESME_RINVDCS Invalid data coding scheme
0x00000105 ESME_RINVSRCADDRSUBUNIT Invalid source address subunit
0x00000106 ESME_RINVSTDADDRSUBUNIR Invalid destination address subunit
0x00000107 ESME_RINVBCASTFREQINT Broadcast Frequency Interval is invalid.
0x00000108 ESME_RINVBCASTALIAS_NAME Broadcast Alias Name is invalid.
0x00000109 ESME_RINVBCASTAREAFMT Broadcast Area Format is invalid.
0x0000010A ESME_RINVNUMBCAST_AREAS Number of Broadcast Areas is invalid.
0x0000010B ESME_RINVBCASTCNTTYPE Broadcast Content Type is invalid.
0x0000010C ESME_RINVBCASTMSGCLASS Broadcast Message Class is invalid.
0x0000010D ESME_RBCASTFAIL broadcast_sm operation failed.
0x0000010E ESME_RBCASTQUERYFAIL query_broadcast_sm operation failed.
0x0000010F ESME_RBCASTCANCELFAIL cancel_broadcast_sm operation failed.
0x00000110 ESME_RINVBCAST_REP Number of Repeated Broadcasts is invalid.
0x00000111 ESME_RINVBCASTSRVGRP Broadcast Service Group is invalid.
0x00000112 ESME_RINVBCASTCHANIND Broadcast Channel Indicator is invalid.
0x00000401 ESME_RINVBALANCE Insufficient credits to send message
0x00000402 ESME_RINVLENGTH Invalid message

Annexes

GSM character set

GSM basic character set

0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
0x00 @ Δ SP 0 ¡ P ¿ p
0x01 £ _ ! 1 A Q a q
0x02 $ Φ " 2 B R b r
0x03 ¥ Γ # 3 C S c s
0x04 è Λ ¤ 4 D T d t
0x05 é Ω % 5 E U e u
0x06 ù Π & 6 F V f v
0x07 ì Ψ ' 7 G W g w
0x08 ò Σ ( 8 H X h x
0x09 Ç Θ ) 9 I Y i y
0x0A LF Ξ * : J Z j z
0x0B Ø ESC + ; K Ä k ä
0x0C ø Æ , < L Ö l ö
0x0D CR æ - = M Ñ m ñ
0x0E Å ß . > N Ü n ü
0x0F å É / ? O § o à

* Special characters

GSM extended character set

0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
0x00 |
0x01
0x02
0x03
0x04 ^
0x05
0x06
0x07
0x08 {
0x09 }
0x0A FF
0x0B SS2
0x0C [
0x0D CR2 ~
0x0E ]
0x0F \

* Special characters

GSM-PT character set

GSM-PT basic character set

0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
0x00 @ Δ SP 0 Í P ~ p
0x01 £ _ ! 1 A Q a q
0x02 $ ª " 2 B R b r
0x03 ¥ Ç # 3 C S c s
0x04 ê À º 4 D T d t
0x05 é % 5 E U e u
0x06 ú ^ & 6 F V f v
0x07 í \ ' 7 G W g w
0x08 ó ( 8 H X h x
0x09 ç Ó ) 9 I Y i y
0x0A LF | * : J Z j z
0x0B Ô ESC + ; K Ã k ã
0x0C ô Â , < L Õ l õ
0x0D CR â - = M Ú m `
0x0E Á Ê . > N Ü n ü
0x0F á É / ? O § o à

* Special characters ** Characters different from GSM

GSM-PT extended character set

0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
0x00 |
0x01 À Â
0x02 Φ
0x03 Γ
0x04 ^
0x05 ê Ω Ú ú
0x06 Π
0x07 Ψ
0x08 Σ {
0x09 ç Θ } Í í
0x0A FF
0x0B Ô SS2 Ã ã
0x0C ô [ Õ õ
0x0D CR2 ~
0x0E Á ]
0x0F á Ê \ Ó ó â

* Special characters ** Characters different from GSM