This patch reads and writes the call forwarding unconditional status
from and to the SIM depending on the SIM file availability.
New property needs to be added due to the fact that number won't be
available from the cphs-cff file.
Incase of SIM, EFcphs-cff file holds call forwarding status and it
is represented as a flag. In case of USIM(EFcfis), we have the status
flag and also number.So, adding new property for status and using the
existing VoiceUnconditional with number will work for both SIM and USIM cases.
Other option is to have 2 properties, "VoiceUnconditional" and "Number".
"VoiceUnconditional" will have the status of the call forwarding( "enabled",
"disabled") whereas the "Number" property will have the call forwared number.
offline-online state transitions results in caching the call forwaring status
every time. To avoid this, call forwarding atom is moved to the post sim and
its moved also due to the fact that call forwarding status doesn't change in
Jeevaka Badrappan (7):
call-forwarding: Read/Write cfis/cphs-cff
ifx: Move call forwarding to post sim
isigen: Move call forwarding to post sim
plugins/n900: Move call forwarding to post sim
phonesim: Move call forwarding to post sim
doc: Add new property to call forwarding
TODO: Marking the Read/Write EFcfis task as done
TODO | 9 --
doc/call-forwarding-api.txt | 5 +
doc/features.txt | 5 +
plugins/ifx.c | 2 +-
plugins/isigen.c | 2 +-
plugins/n900.c | 2 +-
plugins/phonesim.c | 3 +-
src/call-forwarding.c | 242 ++++++++++++++++++++++++++++++++++++++++++-
8 files changed, 256 insertions(+), 14 deletions(-)
[sorry for the last mails where I got your last name mixed up...]
On 08/10/2017 07:03 AM, Eswaran Vinothkumar (BEG/PJ-IOT-EL) wrote:
> Could you send me the exact modem description you are using? So that we can write quirk?
> I am using TELIT 910 EUG Modem.
Okay, maybe that is already enough. I saw that in drivers/telit.c there
is already some code to handle variants of the modem. The matching is
done on these strings.
Are there any vid/pid available fot his modem?
Sorry missing the subject, I further checked, it is not SIM issue,
then I am confused, does the 4G LTE is really using the old 2G GRPS?
Appreciate comments what is that error really means?
On 11/20/19, JH <jupiter.hce(a)gmail.com> wrote:
> I have two 4G LTE devices, one can connect to 4G network, one could
> not and has following error from connman log file:
> Failed to change property: /ubloxqmi_0/context1
> org.ofono.ConnectionContext.Active: org.ofono.Error.AttachInProgress
> GPRS Attach is in progress
> Does the error indicate the SIM is not activated? Or what could be the
> Thank you.
> Kind regards,
> - jh
After unplugging a Huawei USB dongle, the 'atoms' in oFono are removed via 'flush_atoms'.
Every atom has a destruct function pointer, used as a - yes - destructor.
When unplugging a dongle, connected via PPP, oFono will remove the current GPRS context (= data connection).
The function calls are:
flush_atoms -> destruct -> gprs_context_remove -> at_gprs_context_remove -> modem_disconnect
Because the device is physically removed, the IO channel for the AT port is gone.
In 'at_gprs_context_remove', there is an attempt to resume communication over that AT port, but that
is not possible. This is detected, and 'io_disconnect' (pointer to 'modem_disconnect') is called.
'modem_disconnect' has the same atom and tries to remove it again, so it calls the same destructor.
modem_disconnect -> destruct -> gprs_context_remove -> at_gprs_context_remove -> modem_disconnect
And the loop is started.
The easiest way to fix this, is to move the GPRS context removal. After a disconnect, oFono tries to
re-open the AT port. If that fails (and it will in this case), we're done, since 'modem_disconnect' returns.
In case the AT port can be opened, for example, when setting up a new connection, the previous GPRS context
The old GPRS context is removed via:
- 'flush_atoms' in case the USB device is physically removed.
- 'modem_disconnect' in case a new connection is being set up.
The loop hereby is fixed, without altering general functionality of oFono. This fix is limited to Huawei devices and has been tested using the following devices:
The patch itself:
ofono-1.31/plugins/huawei.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/ofono-1.31/plugins/huawei.c b/ofono-1.31/plugins/huawei.c
index bdf7bc3..bb87670 100644
@@ -583,9 +583,6 @@ static void modem_disconnect(gpointer user_data)
data->modem = NULL;
- /* close gprs context driver */
/* reopen modem channel */
data->modem = open_device(modem, "Modem", "Modem: ");
@@ -594,6 +591,10 @@ static void modem_disconnect(gpointer user_data)
+ /* close previous gprs context driver */
+ if (data->gc)
/* configure modem channel */
g_at_chat_set_disconnect_function(data->modem, modem_disconnect, modem);
A review and upstream fix would be appreciated.
I have two 4G LTE devices, one can connect to 4G network, one could
not and has following error from connman log file:
Failed to change property: /ubloxqmi_0/context1
GPRS Attach is in progress
Does the error indicate the SIM is not activated? Or what could be the problem?