Add methods to subscribe indications from an arbitrary resource.
Configured resource id is treated as the default. Also added separate
commit function for resource subscriptions in order to reduce the
number of subscription messages sent to the modem.
This adds support to assign a slave chat instance to an existing chat
instance. The slave chat is now additionally bound by the lifetime of
its master chat instance.
In case the master is cloned, the slave chat instance will also be
cloned as well.
With this it is possible to suspend the master while still have an
active slave for notifications or extra commands.
The Infineon modem returns more detailed information of the SIM Toolkit
proactive sessions to the modem driver. A proactive session starts with
the status response '91 xx' (proactive command pending) and ends with a
status response response of '90 00' (normal ending of command) after
Terminal Response.
So only when receiving '90 00' result, the indication that the session
has ended should be given to the core.
When driving the Infineon modem with the builtin multiplexer there is
a small race condition with setting up the channels and sending the
first AT commands. The window here is pretty small, but it seems to be
a modem firmware issue. In case the AT command is send right away it can
happen that the modem does not process any further AT commands. In that
case the setup is stuck and enabling the modem fails.
Just adding a 10 milliseconds delay after DLC creation and before
sending the first AT commands is enough to make this work smoothly.
MMI services 22, 21, 20 and 26 were mapped incorrectly. See the comment
in the code for more information and the thread 'Call Barring and MMI
Supplementary Service codes' on the oFono mailing list.
The current Infineon firmware overloads the AT+CFUN command with
enabling SIM Toolkit and fetching of proactive commands. It seems
to be safe to send this command in offline mode (AT+CFUN=4) and
also in online mode (AT+CFUN=1). These are the two cases where
SIM Toolkit atom would be initialized.