script interface to OsmocomBB "mobile"
The idea here is to have some high-level scripting interface in the OsmocomBB "mobile" program, which can be used to automatically execute certain behavior. This is very useful for automatic testing.The commands should be very high-level operations, such as
- perform network search
- perform cell (re)selection
- perform normal/periodic/attach LU
- perform USSD
- send MO-SMS
- receive MT-SMS
- make MO voice call
- receive MT voice call
In order to make the related scripts easy to write, the script language interface functions should expose blocking semantics. This means the "mobile" stack needs to be run in a thread/process with its usual event-driven osmo_fd architecture, and it needs to exchange primitives with another thread/process that runs the script commands.
As scripting language, I would suggest LUA as it's small to embed. Size does matter, as we likely will want to simultaneously run thousands to tens of thousandsof "mobile" instances on one machine.
Slow progress in general:
- MO-/MT-Calls: I think we can and should just use the external MMCC interface
- MO/MT-SMS: Simple SMS can be send (and received) in scripts
- Location Updating: Primitives for normal cell-selection (on/off of the device). Can add code to force cell reselection.
- Primitives added to allow bi-directional communication from a script with the outside world with event loop integration
- More complex SMS (e.g. multi-part to see if the channel remains, cold be passively monitored by throughput)
- Add code for cell re-selection.