SMS errors are standard responses that come from the local infrastructure when it fails to deliver a SMS to a device. Understanding them, can help debug why could be failing.
While SMS was originally designed for mobiles, it has been adapted in some use cases as a way to send messages and update config on IoT devices while they are only connected to the circuit switch (GSM) part of the network and not the packet Switch (data). This could also be a step in debugging when the devices do not connect to data.
What are the main issues?
The main issues we have seen with SMS is around IoT devices. The two reasons we see are because:
- Devices are often only on for a short period of time and go offline before the SMS is sent.
- Not ready to receive SMS when the RAN tries to send the SMS to the device.
Depending on how you have set up sending SMS, you may send SMS to a device that is offline. For more information on sending SMS to Onomondo SIMs, check out:
How SMS works when a device is offline:
- the SMS is placed in queue to be sent when the device is online
- When we receive a UpdateLocation in the signalling, we trigger the SMS to be sent.
- The RAN receives the request and checks if the device is online
- If the device is online, the SMS is sent to the device. Otherwise we receive an error from the RAN.
- If the device fails to receive the SMS, it will send the RAN a response, resulting in us receiving an error from the RAN.
- If we do not receive an error, the SMS remains in queue and tries again next time it is triggered (up to 10 tries and a year in queue - current industry practice is 5 tries and 2 weeks in queue)