SMS functions
The purpose of the Short Message functions is to deliver short messages from one Mobile Station to another. The routing, storage, reporting, error handling and retransmission are all handled by the implementation.
There are two major types of SMS operations:
- Mobile originated (MO)
- From the Mobile Station to its own outbound SMSC
- Mobile terminated (MT)
- From SMSC to Mobile Station (through MSC or SGSN)
- Between SMSCs
For MAP versions 1 and 2 there is a single operation for forwarding the SMS: forwardSM. In this case the existence of the IMSI in the Destination Address indicates the message is MT.
For MAP version 3 separate operations mo-forwardSM and mt-forwardSM are defined. The format of the MAP messages reflect the possible ways of addressing the Origination and the Destination addresses.
The format of the SMS body and the meaning of the bits depends of the direction of the message. It is important to know this direction to be able to decode the SMS.
The sequence of operations for sending a short message is:
Contents |
Mobile Originated SMS
Path:
MS >--> (VLR or SGSN) >-(mo-forwardSM)-> SMSC
The mobile station sends the short message to its assigned SMSC. The SMSC should check that the subscriber is authorized to send short messages.
The SMSC address (number) can be:
- Configured in the Mobile Station
- Manually
- From SIM
- From VLR subscriber data
- Replied using same SMSC as the received message
Routing to the destination network
Path: SMSC >-(sendRoutingInfoForSM)-> HLR
The sendRoutingInfoForSM operation is sent from SMSC to the HLR of the destination number (after resolving number portability). The HLR returns the MSC and possibly SGSN through which the message can be delivered.
It is possible that a HLR returns the address of an Incoming Gateway MSC. This allows the destination network more control over how the messages are handled.
Delivery to destination
Path:
SMSC >-(mt-forwardSM)-> (MSC or SGSN or IGWMSC) (MSC or SGSN) >--> MS IGWMSC >--> (MSC or SGSN) >--> MS
The message is delivered to the Switching Center that will forward to the Mobile Station.
A Delivery Report is normally returned by the MS. This is converted to a Submit Report that is sent back to the Originating MS.
An error may be returned if the destination subscriber is unknown, offline or the MS cannot save the short message. This is converted to an error Status Report that is sent back to the Originating MS.
If the Originating MS requested it in the initial short message a Status Report is generated when an IGWMSC accepts the message. This indicates that the message is progressing but has not been delivered yet.
Error handling, retries, expiration
Any SMSC will store a message that cannot be delivered immediately and will retry later. The retries are based on a repeat interval but may be triggered by a notification that the mobile station is available to receive messages.
The messages are not stored indefinitely. A validity interval is set in the initial message and the SMSCs will use it as a maximum time (subject to its own policy) to preserve the message. If a message expires it is discarded and a Status Report is sent back to the Originating MS.
Finally, Status Reports are never generated in response to other reports. This prevents infinite error loops.
List of supported operations
- sendRoutingInfoForSM
- readyForSM
- alertServiceCenter
- informServiceCenter
- mt-forwardSM
- mo-forwardSM
- reportSM-deliveryStatus