SMPP

We offer support for SMPP version 3.4 which is the industry standard protocol for sms communication. Our setup provides redundant connection options with an endpoint pointing at two different locations.

Connecting

In order to connect, you need the following:

Parameter Value
system_id Individual per account
password Individual per account
hosts smpp-dk1.inmobile.dk
smpp-dk2.inmobile.dk
port 2775 (ssl is required for all connections - no support for non-ssl)
ConnectionMode Individual per account

In order to get an SMPP system id, please contact us at support@inMobile.com.

Encryption over ssl/tls

As stated previously, all communication must happen on encrypted connections. This requires for the applications to download and use the certificate used at https://mm.inmobile.dk (The certificate is a wildcard certificate for *.inmobile.dk).

Supported messages types

  • bind_transmitter
  • bind_receiver
  • bind_transceiver
  • unbind
  • submit_sm
  • deliver_sm
  • enquire_link

DataCodings

Data coding Hex value Binary encoding
Default 0x0 GSM7
Default Class 0 0x10 GSM7
UCS2 0x8 UTF-16 (big endian byte order)
UCS2 Class 0 0x18 UTF-16 (big endian byte order)

Data codings are mapped to binary encodings according to the table above, e.g. when using data coding UCS2 the binary data must be UTF-16 encoded. In some languages, e.g. C#, this is known as "Big endian unicode". UCS2 is a subset of UTF-16, so using UCS2 specifically on the client side will also work just fine.

Delivery reports

The error code in this example (005) is the absolute value of the message status code -5 defined here:

Status code Description
1 xxxx
2 xxxx
3 xxxx
4 xxxx
5 xxxx

Example of our delivery report formats

id:ble50673-f8b8-41e8-a143-07a43bb8c86b sub:001 dlvrd:001 submit
date:1911121314 done date:1911121314 stat:DELIVRD err:000

Incoming messages

To get deliver_sm or incoming messages via SMPP, you’ll have to log in to your inMobile account, and set up PDU forwarding to your system_id.

Contact support for further help, with setting this up.

Limitations

The source_addr parameter has a max length of 15 characters. If the source_addr parameter is any longer, anything after the 15th character, will be discarded.

Maintenance

SMPP is an async protocol meaning that multiple requests and replies may be transported over the wire at a given time. In order to avoid losing any data in case of maintenance or updating our SMPP server, we have taken measures ensuring controlled shutdown and restart.

In the event of an SMPP server system restart, any newly sent submitSm-message will be rejected with the reply ESME_RSUBMITFAIL and clients will be sent an unbind message. Right after, the connection will be disconnected. In case a client tries to rebind at the exact time, that a server is about to restart, the bind attempt will be replied with a generic ESME_RBINDFAIL reply.

A typical restart of an SMPP server takes 2 seconds and all planned restarts and maintenance will be informed in advanced to the users of all accounts using our SMPP connection.