Skip to content

SMPP Integration Guide

Martin Giess edited this page Sep 29, 2015 · 28 revisions

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 https://cdn.emnify.net/api/doc/EMnify-API-collapsible.html

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 http://opensmpp.org/specs/SMPP_v3_4_Issue1_2.pdf

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

Please configure your ESME to connect to

smpp.emnify.net:2775

Our SMPP Server is listening on TCP-Port 2775 for incoming connections from your system.

You can manage your "system_id" and "password" through our UI/API or contact our customer for further assistance at support@emnify.com

MT SMS Flow

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

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.

You can’t perform that action at this time.