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

TSmsOctet

Provides methods to encode and decode the octets of a PDU

CSmsAlphabetConverter

Provides methods for character conversion between native type and user defined type. This class provides the functionality to compliment CSmsBufferSegmenter, TSmsBufferReassembler and TSmsAlphabetPacker.

CSmsmAddress

Provides methods to represent the recipient device or the service centre address.

TGsmSmsTypeOfAddress

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.

TGsmSmsTelNumber

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

TSmsServiceCenterTimeStamp

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

TSmsValidityPeriod

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

TSmsStatus

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

TSmsParameterIndicator

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.

TSmsProtocolIdentifier

Provides methods to get and set the protocol identifier.

TSmsCommandType

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

CSmsuserData

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

CSmsCommandData

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

CSmsPDU

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.

CSmsDeliver

Provides the methods to create a DELIVER PDU.

CSmsSubmit

Provides methods to create a SUBMIT PDU.

CSmsDeliverReport

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

CSmsSubmitReport

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.

CSmsStatusReport

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.

CSmsCommand

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

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:

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