From time to time, Twilio will issue updates to Super SIMs to enable new features or to make adjustments to the SIMs’ settings, such as which International Mobile Subscriber Identifier (IMSI) the multi-IMSI applet running on each SIM should use in certain circumstances. These are called over-the-air updates (OTA) because they are sent conveniently via the cellular network rather than requiring physical access to the SIM.
Updates to network settings
The most frequent updates applied to a Super SIM make changes to its network settings. These settings include which IMSI is to be used in a given country, and which cellular network should be tried first when the host device is attempting to connect. We update these settings regularly as new networks become available and as our commercial partnerships evolve. This approach ensures that you always have the best experience using Super SIM.
As a result of new settings updates applied via OTA updates, the IMSIs on a given Super SIM may change over time. Consequently, it’s critical that your devices do not depend on any specific IMSI or on the Mobile Country Code (MCC) and Mobile Network Code (MNC) values that make up the IMSI’s prefix to determine the Access Point Name (APN) to use. Always stick with
How the OTA update system works
OTA updates are typically applied using a “pull” method. An applet running on the SIM will periodically establish a dedicated PDP context, and use it to contact the Twilio cloud and to check if there are any updates pending. If we have staged an update, the applet will download and install it onto the SIM.
To establish this dedicated connection, the SIM will send the proactive command
OPEN CHANNEL to your device’s cellular module. A dedicated APN,
ota.super, is used to reach the remote server. Once the check is complete, and any pending update has been retrieved, another proactive command,
CLOSE CHANNEL, is issued to the modem to instruct it to close the data connection.
For more information on the SIM Toolkit and the proactive commands it includes, please see the ETSI Card Application Toolkit manual (PDF).
Advanced: take control of OTA updates
When a cellular module fitted with a Super SIM is powered up, a period of a minute or two will elapse before the OTA update applet asks the modem to establish the data connection it requires to check for pending updates. If the modem sleeps or is powered down before this check is completed, the SIM won’t be updated, even if an update is pending. If the module remains powered up, the applet will periodically repeat the checking process, typically about once a week. Power-cycling the modem will normally reset the timer maintained by the applet and cause the applet to contact the server a minute or two after the restart.
Power-cycling a device in order to force a update check is not always practical, so a better approach is to force the applet itself to initiate the checking process. You do so by issuing this
Manually triggering a check for a pending OTA update this way can be especially useful for devices with limited battery life. This is because this type of device typically transmits in short bursts: it aims to wake up, transmit, and return to sleep as quickly as possible, to preserve its charge. Such approach to transmission is power efficient, but it may not give the SIM time to check for updates.
To allow it to do so, your application can issue the command above to the SIM and set a timer to allow time for the data connection to the
ota.super APN to be established and for any updates to be installed. When the timer fires, the device can return to sleep.
Some updates may open the
ota.super context multiple times, usually to update different services or if the size of the data being pushed to the card requires the update is dispatched in multiple blocks. These subsequent updates are opened almost immediately after the first one closes. Your timer setting should allow for any such follow-on connections.
This check does not not need to be made every time the devices wakes, but can be scheduled periodically — once a week, for example — to avoid the cost of bringing up and maintaining the connection for the duration of the timer when there are no updates staged.
This technique allows you to manage your application’s power usage — there’s no need to leave devices connected for prolonged periods of time — while also ensuring that your SIMs always remain up to date.
Need some help?
We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.