About YateOTA

YateOTA is an OTA SIM gateway that provides the functions required to manage RAM (Applets) / RFM (SIM/USIM/ISIM files) using Over The Air messages sent over SMS.

The purpose of YateOTA is to

YateOTA API can be used as encoder to generate OTA commands (RAM/RFM).
To generate OTA commands, OTA parameters are needed.
OTA parameters can be extracted from YateHSS or they can be provided manually in request.
The generated OTA commands can be stored by user or those can be sent to UE using YateSMSC through HTTP/MAP/SMPP.

OTA SIM gateway Interface

Based on delivery mode, YateOTA Interface has the next working modes:

  • Create, store and schedule RAM / RFM campaigns that will be sent to YateSMSC and after that to multiple UE
  • OTA Parameters (SPI, KIC, KID etc.) are stored in YateHSS for each UE (based on IMSI or MSISDN)
  • A list of statistical information for each campaign can be viewed by user
  • User can view all the participants assigned to a campaign
  • A participant in a campaign can be traced to view all the messages he received
  • Sends RAM / RFM commands directly to YateSMSC, passing over OTA Scheduler only to a single UE
  • This mode is perfect for testing to install an applet or update different SIM files on a test UE through OTA
  • Sends RAM / RFM commands to local card reader
  • This mode is perfect for testing to send RAM or RFM commands directly to SIM through PC/SC card reader


Based on API Type, the Yate-based OTA SIM gateway API is split in:

  • Retrieve aggregated information about OTA campaigns
  • Control OTA campaigns (stop/pause/restart a campaign)
  • Retrieve participants for an OTA campaign
  • Control participants in a campaign
  • Trace participants from an OTA campaign
  • Documentation can be found here
  • Retrieve OTA campaigns
  • Add a new RAM/RFM OTA campaign
  • Edit a RAM/RFM OTA campaign
  • Deletes a RAM/RFM OTA campaign
  • Add participants to an OTA campaign
  • Remove participants from an OTA campaign
  • Documentation can be found here
  • Generate and retrieve UD(s) and APDU(s) for updating RFM fields for multiple participants
  • Documentation can be found here

Our solutions