This section describes how Class 0 SMS messages are handled in Symbian platform.
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.
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.
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.
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.