SMS Dispatch Manager

Table of contents LinkedIn social network LinkedIn social network LinkedIn social network LinkedIn social network Share on social media



The PDU string contains not only the message, but also a lot of meta-information about the sender, his SMS service center, the time stamp etc.

It is all in the form of hexa-decimal octets or decimal semi-octets.

Example of PDU:

07 917283010010F5 040BC87238880900F10000993092516195800AE8329BFD4697D9EC37

This octet sequence consists of three parts:

  • An initial octet indicating the length of the SMSC (Short Message Service Center) information ("07"),
  • the SMSC (Short Message Service Center) information itself ("917283010010F5"),
  • the SMS_DELIVER part (specified by ETSI in GSM 03.40).

Octet(s) Description
07 Length of the SMSC (Short Message Service Center) information (in this case 7 octets)
91 Type-of-address of the SMSC (Short Message Service Center). (91 means international format of the phone number)
72 83 01 00 10 F5 Service center number(in decimal semi-octets). The length of the phone number is odd (11), so a trailing F has been added to form proper octets. The phone number of this service center is "+27381000015". See below.
04 First octet of this SMS-DELIVER message.
0B Address-Length. Length of the sender number (0B hex = 11 dec)
C8 Type-of-address of the sender number
72 38 88 09 00 F1 Sender number (decimal semi-octets), with a trailing F
00 TP-PID. Protocol identifier.
00 TP-DCS Data coding scheme
99 30 92 51 61 95 80 TP-SCTS. Time stamp (semi-octets)
0A TP-UDL. User data length, length of message. The TP-DCS field indicated 7-bit data, so the length here is the number of septets (10). If the TP-DCS field were set to indicate 8-bit data or Unicode, the length would be the number of octets (9).
E8329BFD4697D9EC37 TP-UD. Message itself, 8-bit octets representing 7-bit data.

All the octets above are hexa-decimal 8-bit octets, except the Service center number, the sender number and the timestamp; they are decimal semi-octets.

The message part in the end of the PDU string consists of hexa-decimal 8-bit octets, but these octets represent 7-bit data (see below).

The semi-octets are decimal, and e.g. the sender number is obtained by performing internal swapping within the semi-octets from "72 38 88 09 00 F1" to "27 83 88 90 00 1F".

The length of the phone number is odd, so a proper octet sequence cannot be formed by this number. This is the reason why the trailing F has been added.

The time stamp, when parsed, equals "99 03 29 15 16 59 08", where the 6 first characters represent date, the following 6 represents time, and the last two represents time-zone related to GMT.