GSM Utilities

This section describes the GSM utility classes and the functionality they provide in the SMS stack. .

The GSM utility (GSMU) class provides the functionality specified in the 3GPP standards 23.038 and23.040.

Specialised SMS classes

The GSMU provides a specialised SMS class called TGsmuLex8. TGsmulex8 provides methods to decode the PDU data.

PDU element classes

The following classes provide utility methods to encode and decode different elements of a PDU.

GSMU Class Functionality


Provides methods to encode and decode the octets of a PDU


Provides methods for character conversion between native type and user defined type.


Provides methods to specify the type of address used. The type of address includes the details of the numbering plan indicator and the type of numbering used.


Provides methods to encapsulate basic address information like source device address, destination address and the service centre address in a SMS message.


Provides methods to get and set the service centre time stamp in a SMS message.


Provides methods to get and set the validity period in a PDU.


Provides methods to get and set the SMS status in the STATUS REPORT PDU.


Provides methods to get and set flags in the reports and COMMAND PDUs. The flags represent extension, user data, data coding scheme and protocol identifier.


Provides methods to get and set the protocol identifier.


Provides methods to get and set the type of commands in a COMMAND PDU.


Provides methods to get and set user data elements from a PDU.


Provides methods to get and set various information elements from a SMS command message.

PDU classes

The following classes provide methods to create and process the six types of messages DELIVER, SUBMIT, DELIVER REPORT, SUBMIT REPORT, STATUS REPORT and COMMAND.

class Functionality


Provides generic interface to encode and decode all six types of PDUs. CSmsPDU provides the common functionalities to encode and decode different types of PDUs. For more information about the methods provided by this class see the reference documentation.


Provides the methods to create a DELIVER PDU.


Provides methods to create a SUBMIT PDU.


Provides methods to create a DELIVER REPORT PDU. A DELIVER REPORT message is created to acknowledge a received SMS.


Provides methods to process a SUBMIT REPORT message sent by the network in response to a submit message. The SUBMIT REPORT contains the result of the SUBMIT message like if the message was submitted successfully, if not the reason for the failure.


Provides the methods to process the STATUS REPORT message sent by the network. The message contains the details of the status of a previously sent SUBMIT message.


Provides methods to create a COMMAND message. This message is mobile originated and sent to the network requesting some action like status of sent message.

Buffer classes

The GSMU provides the utility classes to store the SMS messages before segmentation and concatenation. CSmsBufferBase is the base class to create the buffer space in the memory. CSmsBuffer is used to store an array of TText in the memory. CSmsEditorBuffer class is used by the messaging server to store the text in CRichText type.

User data settings

TSmsUserDataSettings class is used to encapsulate the settings such as character concatenation. The stored settings affect the encoding and decoding of the messages.


CSmsMessage class is used to represent a complete message inside the SMS stack before segmentation and a complete message after reassembly. If the message type is class 0, incomplete messages are also stored by the CSmsMesasge. The complete message is stored in the CSmsBuffer. The main function of the CSmsMessage is to store the information in a SMS and to encode and decode the message into different PDUs. The text in a message is accessed using Buffer() method. The CSmsMessage also supports decoding of partial complete Class 0 SMS.

The CSmsMesasge class supports the following functionality:

  • To add hyperlink in a SMS message using CSmsHyperlinkOperations

  • To get and set the reply address path using CSmsReplyAddressOperations

  • To get, set and remove special message indicators using CSmsSpecialSMSMessageOperations

  • To support the voice mail notifications.

  • CSmsSMSCCtrlParameterOperations class provide the clients with methods to manipulate Short Message Service Centre (SMSC) control information elements. class

  • To support segmentation and reassembly in the SMS stack.

  • To pack and unpack data from the SMS messages.

The GSMU also provides the segmentation and reassembly store described in SMS Stack Message Stores.