SMPP Access

This concept document describes using SMPP instead of REST to access Nexmo's APIs. Implementing SMPP access requires a deep understanding of this complex telecommunications protocol and a lot of low-level development work. Most developers can safely ignore this information.

By default, your account is configured to use Nexmo's REST APIs over HTTPS. Unless your organisation is an aggregator with an existing SMPP implementation, the information in this guide will probably be irrelevant to you.

Contents

This document covers the following:

What is SMPP?

Short Message Peer-to-Peer (SMPP)  is a protocol that the telecommunications industry uses to exchange SMS messages between Short Message Service Centers (SMSC) and/or External Short Messaging Entities (ESME).

SMPP is a level-7 TCP/IP protocol  , which enables fast delivery of SMS messages. It is widely used for short message exchange outside SS7 networks because of its support for non-GSM SMS protocols such as UMTS  and CDMA  .

Nexmo uses SMPP to connect to multiple carriers worldwide. Because SMPP is a standard, we expect any new carriers we onboard to provide standard means of connectivity. If they do, we can integrate them them with relative ease.

Should I use SMPP to connect to the Nexmo platform?

Nexmo does not encourage SMPP access for the following reasons:

Why does Nexmo offer SMPP access?

Nexmo offers this service to integrate new carriers and make it easier for customers with an existing SMPP implementation to use our platform.

Instead of having to re-implement messaging over our REST APIs, you can simply modify your existing integration to establish a bind with Nexmo's SMPP clusters.

Configuring SMPP access

You can configure SMPP access to the Nexmo platform by using one of the following methods:

Standard configuration

  1. Read the SMPP FAQ  , which contains details about character encodings, DLR formats, concatenated messages, throttle management and other important information.
  2. Email us your monthly volume forecast. We will configure our system to enable SMPP access for you and send you a confirmation email with links to further resources.

Using Kannel

You can use Kannel  version 1.4.3 or higher to configure SMPP access:

  1. Complete the standard configuration steps.

  2. Download the kannel.conf configuration file  .

  3. Edit kannel.conf to replace $nexmo_user and $nexmo_password with your Nexmo SMPP credentials.

  4. For security reasons kannel.conf only allows access from localhost. To enable access from a different machine, edit the following parameters in kannel.conf. For example, for the IP addresses X.X.X.X and Y.Y.Y.Y:

    admin-allow-ip = "127.0.0.1;X.X.X.X;Y.Y.Y.Y"
    ...
    box-allow-ip = "127.0.0.1;X.X.X.X;Y.Y.Y.Y"
    ...
    user-allow-ip = "127.0.0.1;X.X.X.X;Y.Y.Y.Y"
    
  5. Restart Kannel.

  6. Send a test message. For example:

    https://localhost:13013/cgi-bin/sendsms?username=username&password=pwd&to=%2B33XXXXXXX&text=Hello%20World&from=test&charset=ISO-8859-1&dlr-mask=17
    

Our SMPP instances

Nexmo hosts three instances of SMPP:

We recommend that you bind to both SMPP1 and SMPP2. Only bind to SMPP0 if you cannot bind to a clustered setup.

The standalone instance SMPP0 is for aggregators running legacy infrastructure who cannot maintain simultaneous binds to multiple IP addresses. If you are binding to SMPP0, you must implement SMPP redundancy to avoid a higher risk of planned and unplanned downtime.

Resources