You are here: > Tutorials > SMPP Tutorials > Monitoring SMPP sessions with Ethereal


Finding errors in a SMPP connection is not a simple matter. Most SMPP SDK and API's do not have built-in advanced debugging facilities. Most of the times they only displaying an error message when the connection failes, or when it is not possible to submit a message, but if MO (incoming) messages get lost, or delivery reports aren't delivered, in most cases you have to contact the provider to find out the cause. The best way to debug SMPP connections by yourself, is by using a realtime packet sniffer or packet monitor.

The program 'Ethereal' is such a packet sniffer, besides that it also has the capability to display the decoded packets of various communication protocols amongst them:

  • SMPP (Short Message Peer to Peer);
  • MMSE (MMS Encapsulation messages);
  • WAP (Wireless Access Protocol);
  • UCP (Universal Computer Protocol);
  • and lots of non SMS- and MMS related protocols.

Installing Ethereal

Because Ethereal is an open source program, you can download it from their website for free. You can start your (Windows) download here. If you are not using Windows, there are also versions availble for other platforms here.

In this article we will only discuss the installation on Windows environments.

When the download has completed, you can install the program by starting the installer. The following screen will popup. Click 'Next' to start the installation.

(Click on the picture to enlarge)

Read the license agreement and click 'I agree' to accept it, and proceed.

(Click on the picture to enlarge)

Do not change the selections, and click 'Next' to continue.

(Click on the picture to enlarge)

Do not change the settings on this screen and click 'Next'.

(Click on the picture to enlarge)

Choose a directory in which to install the Ethereal program, and click 'Next' to continue.

(Click on the picture to enlarge)

The following dialog asks you whether to install WinPcap. This program is required to capture the packets in Windows. Leave the first checkbox checked. If there are users on the PC that also have to monitor packets which do not have administrative rights you should also check the second checkbox.

Click 'Install' to continue. WinPCap will be installed now.

(Click on the picture to enlarge)

After the installation has completed, click the 'Finish' button to finish the installation and start the program.

(Click on the picture to enlarge)

When the program has started, the following screen will appear. At this moment only the menu items and buttons are visible because there is no monitoring session started yet. To start a new monitoring session, click the highlighted button (the second button from the left).

(Click on the picture to enlarge)

The capture options will now appear. First you have to select the network card which is used to connect to the SMPP provider. When you are using a dialup connection, you do not have to change this option.

You can also specify a capture filter, setting this filter causes the program to display only the packets with a specific protocol, portnumber, direction or IP address. By setting this filter you will only see the SMPP data. In the example the filter is set to: 'tcp port 2775', this means: only capture incoming and outgoing TCP packets on TCP port 2775. Most providers are using another TCP port. In this case, replace 2775 with the TCP portnumber your provider is using.

If you select all the options in the 'Display Options' group box, the data will be displayed realtime.

Click 'Start' to begin capturing SMPP data.

(Click on the picture to enlarge)

When capturing has started, the SMPP packets will be displayed on the capture screen. By selecting a packet, it will be decoded and a HEX dump will be displayed.

Below is an example of a small SMPP session. You can see that the SMPP packets are decoded. In the packet view (uppermost window) you can see the packets that are sent and received. In this view you can select the packet you want to decode.

In the next view the selected packet is displayed. In this example you can see the fields of a 'submit_sm' SMPP packet.

In the view at the bottom at the screen, the HEX dump of the SMPP packet is displayed.

Using the 'File' => 'Save' option from the file menu, you can also save the captured data. You can then for instance send your captured data to your SMPP provider or software vendor.

(Click on the picture to enlarge)