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.
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
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 |
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.
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 |
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 |
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 parameter | Type of address | TON | NPI |
---|---|---|---|
Destination address | Always international | 1 | 1 |
Source address | International | 1 | 1 |
National/shortcode | 2 | 1 | |
Alphanumeric | 5 | 0 |
Source address and destination address in international format shall not contain any
leading +
or 00
, only the countrycode is needed.
Displayed on handset: +34609939891
SMPP Parameter:
Length of an alphanumeric originator is limited to 11 characters
; this limit is set by the
pertinent GSM Standards.
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 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 |
When client receives NO_CREDIT error messages:
Stop sending further messages
Only one session is available for systemID provided to the client.
30 sec
. Otherwise client session will be dropped by the 360NRS platform.ping smppv5.nrs-group.com
. If you are not able to ping Sever IP, contact customer care.telnet smppv5.nrs-group.com <port>
. If you are not able to do telnet, contact customer care.error code
in the section below.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 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 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 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 |
basic
character set0x00 | 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
extended
character set0x00 | 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
basic
character set0x00 | 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
extended
character set0x00 | 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