SMS Stack Configuration for Class 0 Messages

This section describes how Class 0 SMS messages are handled in Symbian platform.

Introduction

According to the 3GPP specification TS 23.038, a mobile terminated Class 0 SMS message should be displayed to the user immediately even if there is no memory available in the Universal Subscriber Identity Module (U)SIM or the phone memory.

Class 0 SMS

Normal condition

The SMS stack receives message segments from the network through the telephony system plug-in (TSY). The received segments are acknowledged and passed to the reassembly store to assemble all the received segments. The message is then forwarded to the clients. The reassembly store is a permanent file store and the message segments are stored as streams.

Out of disk condition

When sufficient disk space is not available the SMS stack is unable to reassemble the message segments and pass them to the clients due to lack of memory. A pre-allocated memory, which can be configured, is available for handling the class 0 SMS .

Pre - allocated memory

When this feature is configured a separate memory is available for handling the Class 0 SMS messages when sufficient disk space is not available. This can be enabled by adding a ReassemblyStore section in the .esk file. The pre-allocated memory is created during the phone boot time and hence it is always created.

Configuring the SMS stack

The .esk file is used to customise the SMS stack to handle Class 0 SMS messages. The following section should be added to allocate a separate memory for the Class 0 SMS in out of disk situations. The reserve memory is allocated by the SMS stack.

[ReassemblyStore]

Class0=1

MaxClass0Messages= 10

NumberOfPDUsegments= 20

GuardTimeOut= 12

ESK configuration fields

Class0

This field must be set to 1 to enable the SMS stack to allocate reserve memory. When the Class 0 field is set to 0 or is not configured, Class 0 SMS messages are handled as normal SMS by the SMS stack.

When Class0 is set to 1 and other fields are not configured the default values, configured above, are used by the SMS stack.

Note: The following fields are optional.

MaxClass0Messages

This field stores an integer value to specify the maximum number of Class 0 messages to be stored. The default value is 10.

NumberOfPDUSegments

This field stores an integer value to specify the number of PDU segments that can be stored in the reserve memory. The default value is 20.

GuardTime

This field stores a value that specifies the time that the SMS stack must wait for a message to be completely received before forwarding the message to clients. The default value is 12 hours. If all the segments of the SMS are received then the SMS is forwarded to the messaging clients before the guard time expires.

SMS stack behaviour

The SMS stack receives and processes SMS messages from the TSY. If the received message is a Class 0 SMS and if sufficient memory is available the stack attempts to store the message in the permanent store. If sufficient memory is not available, and the stack is configured to handle Class 0 messages in out of disk conditions, it uses the pre-allocated reserve memory to reassemble the segments.

Maximum number of segments exceeded

The stack waits to receive all segments of the Class 0 SMS. The maximum number of segments depends on the value specified in the NumberOfPDUSegments field. If the stack exceeds the maximum level it reassembles the partial message and forwards it to the clients. If the maximum number of segments is not exceeded then the stack waits for the duration of the guard period specified in the .esk file. If the duration expires then a partial message is reassembled and forwarded to the clients.

Maximum number of messages exceeded

When the stack receives a Class 0 SMS after it has reached the configured number of messages, it reassembles the oldest incomplete message and forwards it to the client.

Type 0 SMS

Type 0 messages are generally positively acknowledged and discarded. Class 0 Type 0 message are handled as explained above both in normal and out of disk conditions. All other Type 0 messages are handled as non class 0 messages.

WAP class 0 messages over SMS bearer

The Class 0 messages that contain WAP datagram are handled as non class 0 messages.