Difference between revisions of "SMS SMPP Troubleshooting"
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
SMPP Protocol | SMPP Protocol is binary encoded for efficiency. It is not text based as SIP protocol so packet capture with tethereal to .pcap file will not show human-readable information. | ||
Must-read before proceeding: | Must-read before proceeding: | ||
Line 9: | Line 9: | ||
= pcap file capture = | = pcap file capture = | ||
In order to debug SMPP issues, sometime pcap file capture is needed. This can be achieved using Wireshark program, as described here [[How to capture packets using wireshark]]. To capture only SMPP traffic it is best to capture traffic coming only to/from SMPP provider IP. So if provider's IP is '''1.2.3.4''', capture command would be the following: | |||
tethereal -i eth0 -w /home/smpp_capture.pcap host 1.2.3.4 | |||
<br><br> | <br><br> | ||
= pcap file view over Wireshark = | = pcap file view over Wireshark = | ||
Once we have captured SMPP trace into pcap file, we can download this file and view it over Wireshark program. SMPP is a binary (as opposed to SIP protocol, which is text based) protocol, so to see text we need correctly decode pcap file. Often Wireshark recognise SMPP messages as RSL format and show "malformed" text messages | |||
<br><br> | |||
[[Image:smpp_trace_mailformed.png]] | |||
<br><br> | |||
To decode such messages as SMPP, right click on such message, in context menu select 'Decode As' and choose SMPP protocol. Trace will looks like this: | |||
<br><br> | |||
[[Image:smpp_trace_text.png]] | |||
<br><br> | |||
Line 17: | Line 32: | ||
= Manually sending SMS from command line = | = Manually sending SMS from command line = | ||
It is possible to send SMS directly from command line and check debug output. | |||
/usr/local/mor/smppcli -u username -p password -n dest_number -d smpp_provider_ip:port -m message -s source_number -e ucs2 -t transmitter | |||
If we have something else but not [ESME_ROK], then check error code from this file for the cause: [[File:smpp_error_codes.pdf]] | |||
It is also possible to check what exactly parametres MOR used for sending SMS in /home/mor/log/gui_debug.log file(check for text starting with 'SMPP SMS SENDING' message) | |||
<br><br> | <br><br> |
Latest revision as of 08:20, 30 December 2015
SMPP Protocol is binary encoded for efficiency. It is not text based as SIP protocol so packet capture with tethereal to .pcap file will not show human-readable information.
Must-read before proceeding:
- https://en.wikipedia.org/wiki/Short_Message_Peer-to-Peer
- Protocol specification: https://www.openmarket.com/customer-center/documentation/SMSSMPP-Specification/SMPP-v3-4-Issue1-2.pdf
pcap file capture
In order to debug SMPP issues, sometime pcap file capture is needed. This can be achieved using Wireshark program, as described here How to capture packets using wireshark. To capture only SMPP traffic it is best to capture traffic coming only to/from SMPP provider IP. So if provider's IP is 1.2.3.4, capture command would be the following:
tethereal -i eth0 -w /home/smpp_capture.pcap host 1.2.3.4
pcap file view over Wireshark
Once we have captured SMPP trace into pcap file, we can download this file and view it over Wireshark program. SMPP is a binary (as opposed to SIP protocol, which is text based) protocol, so to see text we need correctly decode pcap file. Often Wireshark recognise SMPP messages as RSL format and show "malformed" text messages
To decode such messages as SMPP, right click on such message, in context menu select 'Decode As' and choose SMPP protocol. Trace will looks like this:
Manually sending SMS from command line
It is possible to send SMS directly from command line and check debug output.
/usr/local/mor/smppcli -u username -p password -n dest_number -d smpp_provider_ip:port -m message -s source_number -e ucs2 -t transmitter
If we have something else but not [ESME_ROK], then check error code from this file for the cause: File:Smpp error codes.pdf
It is also possible to check what exactly parametres MOR used for sending SMS in /home/mor/log/gui_debug.log file(check for text starting with 'SMPP SMS SENDING' message)