Ozeki 10 SMS Gateway

How to setup your own secure SMPP server

This page is about SMPP server technology. It gives you information on how to setup an SMPP server and how to use it to provide SMPP SMS service for your users and customers. If you are not familiar with SMPP, but you wish to become an SMS service provider this page is good place to start. If you are interested in securing your existing SMPP server, you might want to read the SMPPS server page.

What is SMPP?

SMPP stands for Short Message Peer to Peer protocol (SMPP). It is the most popular communication standard for sending SMS messages over the Internet. SMPP is optimized for fast delivery of SMS Protocol Data Units (PDUs) in bulk. Software installed on customer computers connect to SMS service providers using this communication standard. Ozeki 10 SMS gateway implements both the SMPP client protocol and the SMPP server protocol.

What is an SMPP server?

An SMPP server is a software for providing SMS services. It can be installed on a Windows or Linux computer. It allows you to setup SMPP user accounts and it allows you to accept connections from SMPP clients. Ozeki 10 SMS Gateway is an SMPP server software.

Figure 1 - Your SMPP server

Use cases

An SMPP Server is ideal for lots of simple to complex scenarios. Some of which are:

  1. Provide SMS service to customers
  2. Act as a centeral hub for SMS services
  3. Provide SMS service for SMS applications
  4. Provide SMS aggregator service
  5. SMS routing
  6. Use as a reporting gateway to keep track of all SMS messages
  7. Use as a protocol converter (Http to SMPP, UCP to SMPP, CIMD2 to SMPP)
  8. Forward SMS messages to mobile networks and 3rd party SMS service providers

How to setup an SMPP server?

To setup an SMPP server you need to install the Ozeki SMPP gateawy and configure an SMPP user. The installation of Ozeki SMPP server is similar to the installation of a standard windows application. The only difference is that you will configure the SMPP server from a webbrowser by opening an URL (Figure 2). This is a great advantage to traditional Windows applications, because the web based user interface can be accessed from another PC in your LAN, so you won't have to spend time in the cold server room.

Figure 2 - SMPP Server configuration

How to setup an SMPP server step by step instructions:

  1. Download the Ozeki SMPP server software
  2. Install the software on Windows 10
  3. Create a link to the mobile network
  4. Configure your firewall to let users in
  5. Create SMPP user accounts
  6. Set the SMPP sender ID for each user
  7. Route outgoing SMS from SMPP users
  8. Route incoming SMS from to SMPP users
  9. Setup database reporting to log each message

Where can I download the SMPP server from?

Ozeki 10 SMS Gateway is an excellent high-performance SMPP server. You may download Ozeki 10 SMS Gateway from the following URL:


When you download Ozeki 10 SMS Gateway make sure to select the latest version. On the above download page you will be presented with a choice of platforms. You may downoad the SMPP server for Windwos, Linux or for your Android Mobile phone.

What is the SMPP server price?

The price of Ozeki 10 SMS Gateway includes the price for the built in SMPP Server and SMPP client protocols. You don't have to pay any extra for this (or any other) protocol. Pricing is determined by the performance of the system. The more messages you wish to send, the higher capacity system you will need to purchase. License prices are based on Messages per Minute (MPM) or Messages per Second (MPS) capacity. The performance ranges from 5 MPM to 1000 MPS. If you are a startup you can start with a lower capacity license, and upgrade your licens as your capacity demand increases. You may get an instant quotaton by filling out the form on the How to buy the SMS gateway page.

Is there an SMPP server free of charge?

You can use the trial of Ozeki 10 SMS Gateway free of charge for a period of 10 days. This period allows you to test the performance and the features without any financial obligations. You may setup the SMPP server on Windows, on Linux or you may even try the Ozeki SMS Gateway for Android version for trial purposes.

Which platforms are supported?

You can operate and SMPP server on Windows, Linux or Android. The choice depends on the amount of messages you wish to send and the platform you like to work with. For high performance systems, that support tens of thousands or hundreds of thousands of SMS messages per day, the Windows and Linux editions are recommended. On an Android Mobile phone the capacity is limited to a few thousand SMS per day. On the other hand the Android version could be a good option for you, because it gives you instant access to the mobile network wirelessly, which makes sending and receivig messages easy.

SMPP Server on Windows

The most obvious and most common choice is SMPP Server on Microsoft Windows. Windows gives you easy access to your system and it contains all the prerequisits needed straight out of the box. You can simply following the SMS gateway installation steps for Windows to get the basic system up and running. After your system is installed, you may configure SMPP user accounts directly from the home screen by following the steps below. The installation and configuration can be performed in a few minutes time. Windows also contains Microsoft Edge, which is a supported browser for configuration.

One of the reason we like windows is because Ozeki 10 SMS gateway is based on .NET, which comes built into Windows and is well optimized to run in that environment. In addtition to this windows offers several built in system performance monitoring functionality, that make resource optimization efficient.

SMPP Server on Linux

Many service providers who are familiar with Linux environments choose an SMPP Server on Linux configuration. The reason for this is that Linux computers can be managed from remote locations easily. On linux server, you can configure your SMPP server through the command line. This is very easy if you use base or any other high end shells. The network configuration options on most Linux systems are also very friendly. On Linux firewall rules are easy to setup and the reliability is also great. If you wish to setup your SMPP server on Linux, follow the instructions in the SMS gateway installation steps for Linux guide. This guide shows you how to do the steps on Ubuntu Linux (the Ubuntu server edition is used). If you use a different Linux distribution, such as RedHat, Debian, Linux Mint, etc the installation steps will be quite similar.

We can state that both Windows and Linux installations will offer high capacity for your SMPP server system and a convenient way to work. Depending on hardware performance both choices can be used to reach speeds of up to 1000 SMS per second if you use Ozeki 10 SMS Gateway.

SMPP Server on Android

If the message capacity you need is only a few thousand messages per day, a good option might be using an Android SMPP server. For example you can setup the Ozeki Android SMS gateway. The advantage of installing the Ozeki Android SMS Gateway directly to an Android Mobile phone is that you have instanct connection to the mobile network. In this case SMS messages will go to the mobile network wirelessly (as opposed to Windows and Linux systems, where SMS is sent through the Internet). The freedom of the wirless connection allows you to use this SMPP server system in more locations. You can use single and dual SIM phones with Android 11 or newer. Wireless mobile network connectivity is a huge plus, because you will not have to worry about wired internet access.

An additional benefit of running the software on Android is that mobile phones have a built in battery, so your SMS gateway on Android will run even if there is a power outage.

How to configre the SMPP server?

After you have installed your SMPP server, you will need to configure it. Configuration requires three actions. You will first have to connect your system to the mobile network. After this you will have to cofigure SMPP user accounts and finally you have to setup routes to tell the system which SMS message should go where.

Configuration can be performed using a webbrowser. Google Chrome and Microsoft Edge is supported. Using the webbrowser you have to connect to the built in webserver of your SMPP server. The URL to use is


This URL will work if your webbrowser runs on the same computer where your SMPP server is installed on. You can also configure it remotely, provided you open port 9515 and port 9516 on your firwall and you replace the IP address in the above url to point to your server.

The following video tutorial shows you the detailed configuration steps to take.

In the video you will see that the configuration steps will require you to:

  1. Open a webbrowser
  2. Enter the SMPP server's URL (https://localhost:9515)
  3. Login with the admin username (if prompted)
  4. In the left panel click on Add new user/application
  5. Select SMPP user from the list
  6. Create a username and password
  7. In the advanced tab turn on logging
  8. Open the Help tabpage for connection information for clients
  9. Ask your customer to configure their SMPP client software
  10. Check the logs and see the SMPP client connect
Note that detailed logging can slow down your system because of a lot of disk I/O. If you are running a high performance SMS service transfering several hundred SMS messages per second, it is best to turn off logging once your system is up and running.

It is also worth mentioning that in the above video we have used another Ozeki 10 SMS gateway to connect as an SMPP client. We could do this because Ozeki 10 SMS gateway can act as both an SMPP client and as an SMPP server. You can learn more about the SMPP client configuration in the SMPP client setup guide.

How to create a an SMPP user account in the SMPP server

To video above shows you how to setup a basic SMPP user account in your SMPP server. The Ozeki SMS Gateway installation procedure will automatically open the configuration page in the default browser. If you default browser is not Google Chrome or Microsoft Edge, we recommend you to switch to one of them, to get optimal experience.

Creating SMPP user accounts is important, because you need to authenticate the users and applications who will connect to your service. You can use this authentication information for billing and accounting purposes if you setup database reporting for SMS traffic.

You can create an SMPP server user account by clicking on the Add new user/application link in the right hand panel (Figure 1), and selecting the SMPP user option (Figure 2)

add new user
Figure 1 - Add new user

After clicking on the Add new user/application link you will be presented with a list of options. Select SMPP user by clicking on the install link.

install smpp user
Figure 2 - Install SMPP user

After clickong on install, you will see the configuration form of the SMPP user account. You need to provide the Username and the Password on this form (Figure 3). You may also turn on SMPP logging in the Advanced tab page of the form.

login information
Figure 3 - Login information

Finally after creating the SMPP user account, the system will take you to the details page of the newly created SMPP user. On this page you can see the communication log, the message queues, the message speed measured in Messages per Minute (MPM) and you can change the configuration. A great tool on this page can be found in the Protocol Data Unit (PDU) Decorder tab page (Figure 4). The PDU decorder allows you to understand how an SMPP pdu is created. You may simply copy an SMPP PDU from the events panel into the PDU decoder form, and you will be presented with a detailed analysis of the PDU.

smpp user created
Figure 4 - SMPP user created

How to setup an SMPP client on a different computer to connect to the SMPP server

Once you have created your SMPP user account, you are ready to accept SMPP client connections in your SMPP server. To test this functionality, we recommend you to install another copy of Ozeki 10 SMS gateway on a different computer, and configure it as an SMPP client. You may find detailed instructions on how to install and configure an SMPP Client connection for SMS messaging using the Ozeki 10 SMS Gateway software in the SMPP client setup guide.

When you configre your SMPP client you will need to enter 4 mandatory parameters: the host name and the port where the SMPP server is runnint and the SMPP username and the SMPP password. The SMPP user name is called System ID in some SMPP clients. To find out these paramters, you need to open the Help tab on the details page of the corresponding user of your SMPP Server (Figure 5).

the smpp connection details for clients
Figure 5 - The smpp connection details for clients

Send your first test SMS to your SMPP server

The final step is to send your first SMS message from your SMPP client to your SMPP server. This is the most exciting step. It is best to enable SMPP logging in both the SMPP client and in the SMPP Server's user account to see that communication taking place during this step. To send the message you need to open the details page of the SMPP client connection and click on Send on the Test tab. After the test is sent you can check the logs (Figure 6).

sms received
Figure 6 - SMS received

Advanced SMPP user authentication

Once your SMPP server is up and running, you may go to the next step and automate manual process, such as user creation. If you decide to authenticate users automatically, you have several options. In the example above the user authentication was done using the username and password that was entered manuall (when the SMPP user account was created). Ozeki 10 provides other ways of authenticating SMPP clients: you can authenticate users using user information stored in a database table, or you can authenticate SMPP users using user information stored on an LDAP server such as Microsoft Active directory. This option is often used in enterprise environments, where the login details are alreay available in the LDAP directory. You may also configure Ozeki to issue HTTP requests and ask if a username/password is valid. This method is called SMPP user authentication using HTTP requests. In all of these cases the SMPP user will be created automatically on the first successful authentication attempt.

Assigning credits to SMPP users

SMS messages cost money. If you operate a pre-paid SMS service, or you simply want to be on the safe side, it is a good idea to setup credits for your SMPP user account. This allows you to set a maximum limit for an SMPP user, to limit the number of messages he can send in a day/week/fortnight/month. Credit limits can be adjusted automatically, or you can add/remove credit manually. If an SMPP user sends an SMS a single credit is deducted from his balance. If he sends a multipart messages, for example a message containing 3 SMS parts, 3 credits will be used. This credit system allows you to control your users and keep your system safe from building up unexpected costs.

Limiting capacity for SMPP users

If you are an SMS service provider, you might want to protect your system from overload, or you might simply want to charge your users based on purchased message capacity. Ozeki 10 SMS gateway gives you the option to limit SMPP speed to a configured Messages per Minute (MPM) or Messages per Second (MPS) rate. You can set different SMPP speed limits for different SMPP user accounts. If the user exceeds it's allowed speed quota, the system will return SMPP throttling error messages. This will allow the user to adjust the outgoing speed of his SMPP client's connection.

Picking a randomn Sender ID for SMPP users

SMS service providers usualy opreate a pool of phone numbers. Some customers will want to use random Sender IDs for their outgoing messages to avoid SPAM detection or blocking. The following page gives you information on how to configure randomin sender ID for SMPP sms connections. In short there are two options. You can use the routing table of Ozeki 10 SMS gateway, and modify the SMS messages on the fly, or you may set the sender IDs in the configuration form of the SMPP user.