There are four classes of an SMS message. Classes identify the importance of an SMS message and also the location where it must be stored.
Class 0
This type of SMS message is displayed on the mobile screen without being saved in the message store or on the SIM card; unless explicitly saved by the mobile user.
Class 1
This message is to be stored in the device memory or the SIM card (depending on memory availability).
Class 2
This message class carries SIM card data. The SIM card data must be successfully transferred prior to sending acknowledgment to the service center. An error message is sent to the service center if this transmission is not possible.
Class 3
This message is forwarded from the receiving entity to an external device. The delivery acknowledgment is sent to the service center regardless of whether or not the message was forwarded to the external device.
For an incoming message, the usual route is:
The phone receives the SMS. The telephony server notifies the SMS stack.
The SMS stack decodes the message and then notifies the SMS watcher that handles messages of the relevant service center. The watcher creates a new messaging entry in the message store's Inbox.
Any messaging application that is set as an observer of the message store is notified of the arrival of the new message. The application can then determine whether it should handle the message, and if so, can then read the message and process it appropriately.
For an outgoing message, the route is:
A messaging application uses the SMS client MTM APIs to create a message, to set its contents and fields, and to send it
The message server passes the send command to the SMS server MTM. This calls the appropriate SMS stack to send the message.
The stack calls the telephony server to send the message.