SMPP Integration Guide

04.12.2020

emnify customers can exchange SMS with their endpoints through 4 different interfaces: the Portal, the RestAPI, Zapier and/or through a SMPP bind towards the emnify SMSC. This guide explains the SMPP setup.

SMPP is often used by telematics platforms, SMS services or operator to enable the exchange of SMS from and towards the device.

If you want to integrate via SMPP your system or 3rd party application acts as an external short messaging entity client (ESME) that connect to the emnify Short message center (SMSC) which will act as a server. 

We support SMPP Version 3.4 - via TLS SSMPP or regular SMPP.

Through the SMPP bind you will be able to send and receive SMS to and from your own endpoints. You cannot send SMS to any other mobile stations.

Access to SMPP Server

The SMPP server is available under the following hostname: 

customer-smpp.emnify.net

Dependent if your ESME supports SMPP over TLS or not - you can use the following URLs and ports

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

For TLS: 
customer-smpp.emnify.net:3550 (or smpp://customer-smpp.emnify.net:3550)

Without TLS:
customer-smpp.emnify.net:2775(or smpp://customer-smpp.emnify.net:2775)

The "system_id" and "password" for SMPP authentication may be managed in the portal: Device Policies -> select desired Service Profile -> scroll to SMS interface ->  Select and Click SMPP under "SMS Interface"


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

MT SMS Flow

For SMS send to the device the ESME will trigger the sending of the SMS with the appropriate MSISDN of the device and the ESME will get a delivery receipt.

The SMS sender address you can choose as you like, may it be an international MSISDN, short code or alphanumeric string.

smpp_mt_sms_flow

MO SMS Flow

Any SMS originated from 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.

smpp_mo_sms_flow

 

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.

Get in touch with our IoT experts

Discover how emnify can help you grow your business and talk to one of our IoT consultants today!

Related Posts

Image for post How to send and receive SMS via the API?

How to send and receive SMS via the API?

To submit SMS directly from your application to an endpoint using our API, the following API call needs to be made: POST https://cdn.emnify.net/api/v1/endpoint/{endpointId}/sms Required Headers: Content-Type: application/json Authorization: Bearer {auth_token} JSON Body: { "source_address": "12345", "payload": "This is the message text!" } To receive SMS on your application server from the device you will need to first set up a Callback URL in the Service profile assigned to that endpoint: Set the API URL on the "SMS" tab - select "RestAPI" on the drop-down menu for “Interface” Select the “configuration icon” next to “RestAPI”, input a purpose (name of your choosing) and the URL You can also set up a "Secret" (optional) The EMnify system will then send the MO SMS as a JSON payload if the destination address of the SMS is an invalid MSISDN (8 digits or less). A2P / P2P Routing Our system distinguishes A2P SMS (application-to-person) from P2P SMS (person-to-person) based on the length of the source (MO SMS) or the destination (MT SMS) address. If there are 8 digits or less (i.e. an invalid MSISDN), an SMS will be considered A2P. If there are 9 digits or more, an SMS will be processed as MSISDN and will be considered P2P. To dispatch SMS MO to your application (A2P) and at the same time have P2P SMS enabled, the destination number (dest_address) must be limited to 8 digits or less. A detailed description of the SMS API you can find in our API Documentation.