bg-gradient-orange
bg-gradient-orange-post-mobile
Dec, 4 2020

SMPP Integration Guide

blog

EMnify customers can exchange SMS with their endpoints through 2 different interfaces: our RestAPI and/or through a SMPP bind towards the EMnify SMSC. If you are looking for the RestAPI please go here.

If you want to integrate via SMPP your system will need to implement an ESME (client) and EMnify SMSC will act as server.

We support SMPP Version 3.4, you can find the original specification here.

Through the SMPP bind you will only be able to send SMS to your own endpoints, you cannot send SMS to endpoints of other EMnify customers or any other mobile stations.

Also by default your Endpoints can communicate through SMS by default only with your system either through the RestAPI or SMPP, but cannot send or receive SMS to/from other endpoints or other mobile stations directly. This keeps your IoT/M2M devices secured from SMS traffic originated by unauthorised parties.

Access to SMPP Server

Note: Access to the EMnify SMPP server is restricted by means of an IP whitelist.
To have your application whitelisted for communication with the EMnify SMPP server, a request may be submitted at the following address with the public application IP included:

Request SMPP Server Access 

After your application IP has been whitelisted, your ESME may be configured to connect to

smpp.emnify.net

Our SMPP Server is listening on the default TCP-Port 2775 for incoming connections, so a typical address configuration for the server would be

smpp.emnify.net:2775 (or smpp://smpp.emnify.net:2775)

The "system_id" and "password" for SMPP authentication may be managed in the UI at the Service Profiles -> Profile -> SMS tab.

Note that access to the SMPP Server may also be enabled and configured via the API by setting the esme_interface_type to '2'.

For troubleshooting issues, feel free to contact customer support for further assistance at support@emnify.com.

MT SMS Flow

smpp_mt_sms_flow

For SMS from your application to one of your endpoints you need to submit them via SUBMIT_SM with the MSISDN of the desired endpoint as "destination_address". The "source_address" you may choose as you like, may it be an international MSISDN, short code or alphanumeric string.

MO SMS Flow

smpp_mo_sms_flow

Any SMS originated on your IoT/M2M devices will be delivered to your ESME via SMPP, this allows you to take full control over the SMS flow and implement your own message routing logic: you may want to forward some message to your applications or forward them to another mobile station via a SMS provider of your choice.

Delivery Receipts

Our SMSC supports delivery receipts for final status of delivered, failed and expired messages. You need to request delivery receipts by setting parameter "registered_delivery" to value 1 in the SUBMIT_SM command. The SMSC will then generate a DELIVER_SM with esm_class=0x04 and the delivery receipt data, this will include the optional parameters "message_state" and "receipted_message_id".

Supported SMPP commands

  • BIND_TRANSCEIVER
  • UNBIND
  • ENQUIRE_LINK
  • SUBMIT_SM (for submission of MT SMS)
  • DELIVER_SM (for delivery of MO SMS and DLR)
  • QUERY_SM
  • CANCEL_SM

Enquire Link/Keepalive

Our SMSC will respond to ENQUIRE_LINK request from your ESME, also it will send ENQUIRE_LINK requests to your ESME on regular basis to check connection health. Your SMPP client needs to respond with ENQUIRE_LINK_RESP to keep the connection open.

TLS for SMPP connection

To activate this feature, please send an email to support@emnify.com to request it.

We will provide a cert and the URL they need their SMPP client to connect to.
The SMPP client used needs to support TLS

 

Source at GitHub

/bg-gradient-blue

Subscribe to our Developer Newsletter