trying to understand context creation
by Jussi Kukkonen
Hi,
I'm looking at how I'm creating and using internet contexts to make
sure I'm not missing any problem cases, and I feel like I don't have
much feedback on what is happening and what possibly scenarios I
should be ready for. Dennis explained the ConnectionManager "life
time" last week which helped a lot (thanks) but I'm still struggling.
I've listed some steps that may happen from user/GUI point of view and
the questions I have (some are connman related but I think this is
still the better list):
* Modem with ConnectionManager appears
A ConnectionContext may have been created automatically or not. Under
what circumstances does this happen? E.g. If the mobile broadband db
contains several plans for a MNC/MCC does ofono try them until one
works or is the selection left to user? Are there checks to make sure
the created context is valid for the network?
* If a ConnectionContext does not appear, UI/user may create one.
using ConnectionManager.AddContext() and
ConnectionContext.SetProperty().
Are there checks at this point to ensure that the created context is
valid and should work? If not, is there anythign I can do to check
context validity?
* Connman exposes a cellular service
What are the conditions for this to happen? If connman exposes a
service, should that "Just work" (with normal caveats about internet
connections) or does it appear for any context that has been created?
* Finally, user can connect the cellular service exposed by connman
If the connection with a cellular service fails, is there anything
else than "Error=connect-failed" to work with? What are the potential
reasons for this -- is it just the normal issues with any network
connection, or can e.g. broken APN settings be a reason for failure at
this point?
In case background helps to understand it, this uncertainty came to be
from two issues (possibly related ones):
1. a tester is telling me nothing happens when he selects his plan
using dawati networks panel (ofono is 1.0 so automatic context
creation does not work), in other words the service isn't appearing in
connman. Now, I know how to start digging to the specific problem in
this case, but I'd like to make sure I'm handling all the relevant
error cases... What are the possible points of failure in this? Is it
just the method calls in ConnectionManager and ConnectionContext plus
Connman Service.Error after trying to connect to the service?
2. I've been testing ofono 1.4 and it seems I can succesfully create a
context with any values of APN/username/password and a connman service
will appear. Is this supposed to happen? (Calling Connect() on this
service will timeout and in the end set "Error=connect-failed", which
is to be expected)
- Jussi
10 years, 2 months
HSO modem, apparent confusion between App and Control ports
by Neil Jerram
I'm using an HSO modem in a GTA04 device, and have a UI that, on session
startup, powers the modem on, and sets it online.
Sometimes - after roughly 50% of reboots - the setting online times out,
and I've established that this is because there's still a preceding
command in chat->command_queue, when hso_set_online() is called. So the
real problem is that the preceding AT command appears to the code not to
have completed.
I've looked at the logs and identified a significant-looking difference
between a good run and a bad one. In a good run, the ofonod log
(following powering on), leading up to the point of divergence, has:
Feb 27 22:01:59 gta04 daemon.info ofonod[983]: Control: > AT_OERCN?\r
Feb 27 22:01:59 gta04 daemon.info ofonod[983]: Control: < \r\n_OERCN: 3, 10\r\n\r\nOK\r\n
Feb 27 22:01:59 gta04 daemon.debug ofonod[983]: drivers/atmodem/sim.c:oercn_cb() retry counter id=1, val=3
Feb 27 22:01:59 gta04 daemon.debug ofonod[983]: drivers/atmodem/sim.c:oercn_cb() retry counter id=9, val=10
Feb 27 22:01:59 gta04 daemon.info ofonod[983]: Control: > AT+CRSM=192,28590\r
Feb 27 22:02:00 gta04 daemon.info ofonod[983]: Control: < \r\n+CRSM: 106,130,""\r\n\r\nOK\r\n
Feb 27 22:02:00 gta04 daemon.info ofonod[983]: Control: > AT+CRSM=176,28589,0,0,4\r
Feb 27 22:02:00 gta04 daemon.info ofonod[983]: Control: < \r\n+CRSM: 144,0,"00FFFF02"\r\n\r\nOK\r\n
Feb 27 22:02:00 gta04 daemon.debug ofonod[983]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 4
Feb 27 22:02:00 gta04 daemon.debug ofonod[983]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 4
Feb 27 22:02:00 gta04 daemon.info ofonod[983]: Control: > AT+CRSM=192,28438\r
Feb 27 22:02:00 gta04 daemon.info ofonod[983]: Control: < \r\n+CRSM: 106,130,""\r\n\r\nOK\r\n
But in a bad run, the last line is different:
Feb 27 21:52:33 gta04 daemon.info ofonod[996]: Control: > AT_OERCN?\r
Feb 27 21:52:33 gta04 daemon.info ofonod[996]: Control: < \r\n_OERCN: 3, 10\r\n\r\nOK\r\n
Feb 27 21:52:33 gta04 daemon.debug ofonod[996]: drivers/atmodem/sim.c:oercn_cb() retry counter id=1, val=3
Feb 27 21:52:33 gta04 daemon.debug ofonod[996]: drivers/atmodem/sim.c:oercn_cb() retry counter id=9, val=10
Feb 27 21:52:33 gta04 daemon.info ofonod[996]: Control: > AT+CRSM=192,28590\r
Feb 27 21:52:33 gta04 daemon.info ofonod[996]: Control: < \r\n+CRSM: 106,130,""\r\n\r\nOK\r\n
Feb 27 21:52:33 gta04 daemon.info ofonod[996]: Control: > AT+CRSM=176,28589,0,0,4\r
Feb 27 21:52:33 gta04 daemon.info ofonod[996]: Control: < \r\n+CRSM: 144,0,"00FFFF02"\r\n\r\nOK\r\n
Feb 27 21:52:33 gta04 daemon.debug ofonod[996]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 4
Feb 27 21:52:33 gta04 daemon.debug ofonod[996]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 4
Feb 27 21:52:33 gta04 daemon.info ofonod[996]: Control: > AT+CRSM=192,28438\r
Feb 27 21:52:34 gta04 daemon.info ofonod[996]: App: < \r\n+CRSM: 106,130,""\r\n\r\nOK\r\n\r\n_OSIGQ: 0,0\r\n\r\n+CREG: 0\r\n\r\n+CGREG: 0\r\n\r\n_OSSYSI: 3\r\n
I.e. firstly the AT+CRSM reply appears to be on the wrong channel, and
secondly it seems to have a whole load of further replies or unsolicited
indications tacked on.
If the problem isn't already obvious, from the above, can you advise
what more I can do to debug or fix this? It seems clear that the above
is wrong, but I don't yet understand ofono well enough to have a clue
what the right fix might be.
Thanks,
Neil
10 years, 2 months
[PATCH 1/2] sim900: Add support for SIMCOM SMS delivery reports
by r.r.zaripov@gmail.com
From: Renat Zaripov <r.r.zaripov(a)gmail.com>
---
plugins/sim900.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/plugins/sim900.c b/plugins/sim900.c
index f7b1642..b2d1b46 100644
--- a/plugins/sim900.c
+++ b/plugins/sim900.c
@@ -224,7 +224,8 @@ static void sim900_post_sim(struct ofono_modem *modem)
DBG("%p", modem);
ofono_phonebook_create(modem, 0, "atmodem", data->modem);
- ofono_sms_create(modem, 0, "atmodem", data->modem);
+ ofono_sms_create(modem, OFONO_VENDOR_SIMCOM, "atmodem",
+ data->modem);
}
static void sim900_post_online(struct ofono_modem *modem)
--
1.7.7.3
10 years, 2 months
[PATCH] hso: Don't access freed data, in hso_set_online
by Neil Jerram
---
plugins/hso.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/hso.c b/plugins/hso.c
index 497c64e..249bb2c 100644
--- a/plugins/hso.c
+++ b/plugins/hso.c
@@ -421,9 +421,9 @@ static void hso_set_online(struct ofono_modem *modem, ofono_bool_t online,
if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd, g_free))
return;
- g_free(cbd);
-
CALLBACK_WITH_FAILURE(cb, cbd->data);
+
+ g_free(cbd);
}
static void hso_pre_sim(struct ofono_modem *modem)
--
1.7.9
10 years, 2 months
[PATCH] hso: Don't access freed data, in hso_set_online
by Neil Jerram
---
plugins/hso.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/plugins/hso.c b/plugins/hso.c
index 4834c56..697beaa 100644
--- a/plugins/hso.c
+++ b/plugins/hso.c
@@ -422,7 +422,7 @@ static void hso_set_online(struct ofono_modem *modem, ofono_bool_t online,
g_free(cbd);
- CALLBACK_WITH_FAILURE(cb, cbd->data);
+ CALLBACK_WITH_FAILURE(cb, user_data);
}
static void hso_pre_sim(struct ofono_modem *modem)
--
1.7.9
10 years, 2 months
[PATCH] configure/make basics
by Jens Rehsack
Hi,
while hacking on a plugin for mmsd to deal with supl push
messages, I ran into a few "not so nice" solved things
in configure.ac / Makefile.am
1) libtool handling
libtool configuration is meanwhile done using LT_INIT(options)
instead of AC_PROC_LIBTOOL and alike
==> because of libtool stores some of the configuration
in the generated libtool shell script, it's reasonable
to run LT_INIT as late as possible (painfully learned
while writing and porting c++ software for many OS)
2) additional libraries
do no require explicit libraries (like -lresolv), always
let a devop in doubt invoke configure with
LIBS="-lmyspecialwrapper" to wrap between available
libs/functions and requirements
See pkgsrc's nbcompat library for example
Best regards,
Jens
10 years, 2 months
Introducing Jens Rehsack
by Jens Rehsack
Hi oFono community,
before start to asking questions, I'd like to introduce myself and
why I joined into the community.
I'm hired by Vodafone Global (Vodafone Group Services GmbH) to
assist there on some networking services, currently location
services. One part of the job will be to work with oFono, using
it, learn some work flows - and when possible - improving it.
This part of the job will also include submitting patches.
My technical background is system development on Unix and
embedded systems, most times in wired networking and related
protocols. Mobile protocols and standards are completely new
to me and I'm not tightened into names, abbreviations and
protocols related to mobile world.
I hope I can learn quickly what I need to know to start practical
things with oFono.
Best regards,
Jens
10 years, 2 months
Enhancing mmsd
by Jens Rehsack
Hi,
as announced in my last mail, I'm here to work with + improve ofono
and related software.
My next task will be to implement an ofono plugin which handles some
UPL push messages. Because there is only one "listener" at
org.ofono.PushNotificationAgent possible, I see two and a half way
to go on:
1) fork ofono-mmsd to handle more message types than mms
(via plugins?)
1b) fork ofono-mmsd to handle only SUPL push messages
2) find a way for more listeners on push messages
Any suggestions, preferred ways?
Best regards and have a nice weekend,
Jens
10 years, 2 months
[PATCHv2 0/8] Call forwarding state handling change
by Oleg Zhurakivskyy
Hello,
Please find the changes in order to correct call forwarding states.
Changes from v2:
- Don't run conditional queries if cfu is active.
- Clear the conditional cache flag on conditional deactivation
while cfu is active.
Regards,
Oleg
Oleg Zhurakivskyy (8):
call-forwarding: Minor style fixes
call-forwarding: Minor refactoring of is_cfu_enabled()
call-forwarding: Don't set conditional cfs when cfu is active
call-forwarding: Don't report conditional cfs when cfu is active
call-forwarding: Emit signals to mask/unmask conditional cfs
call-forwarding: Don't run conditional queries if cfu is active
call-forwarding: Clear the conditional cache flag
TODO: Remove completed call forwarding state task
TODO | 17 -----
src/call-forwarding.c | 182 ++++++++++++++++++++++++++++++++++--------------
2 files changed, 129 insertions(+), 70 deletions(-)
--
1.7.5.4
10 years, 3 months