Hi,
As my understand
Messaging application will interact with Ofono and from Ofono to driver
specific functionality specific to h/w.(Eg: isi modem)
Incoming messages will be stored in device. If the storage capacity is over
in the device then there is a way to inform the network that memory capacity
is exceeded.
As application can't access driver specific functions directly this
should be done through Ofono .
Thanks
Rams
On Mon, Sep 20, 2010 at 10:40 PM, <ofono-request(a)ofono.org> wrote:
Send ofono mailing list submissions to
ofono(a)ofono.org
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.ofono.org/listinfo/ofono
or, via email, send a message with subject or body 'help' to
ofono-request(a)ofono.org
You can reach the person managing the list at
ofono-owner(a)ofono.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of ofono digest..."
Today's Topics:
1. [PATCH v2 2/2] huawei: fix online logic (Kalle Valo)
2. Re: Reg: Memory capacity exceeded (Denis Kenzior)
3. Re: ofono gprs_primary_context description (Denis Kenzior)
4. Re: Reg: Memory capacity exceeded (Aki Niemi)
5. RE: Reg: Memory capacity exceeded
(Jeevaka.Badrappan(a)elektrobit.com)
6. Re: Reg: Memory capacity exceeded (Denis Kenzior)
7. Re: [PATCH v2 1/2] huawei: poll sim state (Marcel Holtmann)
8. Re: [PATCH v2 2/2] huawei: fix online logic (Marcel Holtmann)
----------------------------------------------------------------------
Message: 1
Date: Mon, 20 Sep 2010 15:40:33 +0300
From: Kalle Valo <kalle.valo(a)canonical.com>
To: ofono(a)ofono.org
Subject: [PATCH v2 2/2] huawei: fix online logic
Message-ID: <20100920124033.12498.3545.stgit(a)potku.valot.fi>
Content-Type: text/plain; charset="utf-8"
The recently introduced online support to huawei didn't work with my
Huawei E1552. The problem was that with command AT+CFUN=1;+CFUN=5
the modem didn't initialise the sim state properly.
To fix this I changed the logic so that CFUN=5 is called only after the sim
state has switched to a valid state. Now my Huawei E1552 works with connman
again.
PIN locked SIMs still won't work. The problem is that it takes some time
for
the sim state to go to a valid state:
Sep 20 15:01:57 dell-m520 ofonod[12451]: Pcui:< \r\n+CPIN:
READY\r\n\r\nOK\r\n
[...]
Sep 20 15:02:00 dell-m520 ofonod[12451]: huawei: invalid sim state in post
online (0)
[...]
Sep 20 15:02:01 dell-m520 ofonod[12451]: Pcui:< \r\n^SIMST:1\r\n
I don't know why it takes so long to get a valid state.
There is also another issue, in "cold start" case the phonebook
initialisation fails:
Sep 20 14:34:24 dell-m520 ofonod[11939]: Pcui:> AT+CPBS=?\r
Sep 20 14:34:24 dell-m520 ofonod[11939]: Pcui:< \r\n+CME ERROR: SIM
busy\r\n
But in "warm start" it seems to work:
Sep 20 14:38:59 dell-m520 ofonod[12091]: Pcui:> AT+CPBS=?\r
Sep 20 14:38:59 dell-m520 ofonod[12091]: Pcui:< \r\n+CPBS:
("SM","EN","ON")\r\n\r\nOK\r\n
I consider this as a minor issue and didn't investigate it at all.
---
plugins/huawei.c | 77
+++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 53 insertions(+), 24 deletions(-)
diff --git a/plugins/huawei.c b/plugins/huawei.c
index 2f605ee..27473a8 100644
--- a/plugins/huawei.c
+++ b/plugins/huawei.c
@@ -163,6 +163,22 @@ static void ussdmode_support_cb(gboolean ok, GAtResult
*result,
ussdmode_query_cb, data, NULL);
}
+static void cfun_offline(gboolean ok, GAtResult *result, gpointer
user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct huawei_data *data = ofono_modem_get_data(modem);
+
+ if (!ok) {
+ ofono_modem_set_powered(modem, FALSE);
+ return;
+ }
+
+ if (data->sim == NULL)
+ return;
+
+ ofono_sim_inserted_notify(data->sim, TRUE);
+}
+
static gboolean notify_sim_state(struct ofono_modem *modem,
enum huawei_sim_state sim_state)
{
@@ -170,17 +186,33 @@ static gboolean notify_sim_state(struct ofono_modem
*modem,
DBG("%d", sim_state);
- if (sim_state == HUAWEI_SIM_STATE_NOT_EXISTENT) {
- ofono_sim_inserted_notify(data->sim, FALSE);
+ data->sim_state = sim_state;
+ switch (sim_state) {
+ case HUAWEI_SIM_STATE_NOT_EXISTENT:
/* SIM is not ready, try again a bit later */
return TRUE;
+ case HUAWEI_SIM_STATE_INVALID_OR_LOCKED:
+ ofono_modem_set_powered(modem, TRUE);
+
+ return FALSE;
+ case HUAWEI_SIM_STATE_VALID:
+ case HUAWEI_SIM_STATE_INVALID_CS:
+ case HUAWEI_SIM_STATE_INVALID_PS:
+ case HUAWEI_SIM_STATE_INVALID_PS_AND_CS:
+ /*
+ * In the "warm start" case the modem skips
+ * HUAWEI_SIM_STATE_INVALID_OR_LOCKED altogether, so need
+ * to set power also here
+ */
+ ofono_modem_set_powered(modem, TRUE);
+
+ g_at_chat_send(data->pcui, "AT+CFUN=5", none_prefix,
+ cfun_offline, modem, NULL);
+
+ return FALSE;
}
- ofono_sim_inserted_notify(data->sim, TRUE);
-
- data->sim_state = sim_state;
-
return FALSE;
}
@@ -347,24 +379,24 @@ static void cvoice_query_cb(gboolean ok, GAtResult
*result,
gint mode, rate, bits, period;
if (!ok)
- goto done;
+ return;
g_at_result_iter_init(&iter, result);
if (!g_at_result_iter_next(&iter, "^CVOICE:"))
- goto done;
+ return;
if (!g_at_result_iter_next_number(&iter, &mode))
- goto done;
+ return;
if (!g_at_result_iter_next_number(&iter, &rate))
- goto done;
+ return;
if (!g_at_result_iter_next_number(&iter, &bits))
- goto done;
+ return;
if (!g_at_result_iter_next_number(&iter, &period))
- goto done;
+ return;
data->voice = TRUE;
@@ -383,9 +415,6 @@ static void cvoice_query_cb(gboolean ok, GAtResult
*result,
/* check available voice ports */
g_at_chat_send(data->pcui, "AT^DDSETEX=?", none_prefix,
NULL, NULL, NULL);
-
-done:
- ofono_modem_set_powered(modem, TRUE);
}
static void cvoice_support_cb(gboolean ok, GAtResult *result,
@@ -396,21 +425,16 @@ static void cvoice_support_cb(gboolean ok, GAtResult
*result,
GAtResultIter iter;
if (!ok)
- goto done;
+ return;
g_at_result_iter_init(&iter, result);
if (!g_at_result_iter_next(&iter, "^CVOICE:"))
- goto done;
+ return;
/* query current voice setting */
g_at_chat_send(data->pcui, "AT^CVOICE?", cvoice_prefix,
cvoice_query_cb, modem, NULL);
-
- return;
-
-done:
- ofono_modem_set_powered(modem, TRUE);
}
static void cfun_enable(gboolean ok, GAtResult *result, gpointer
user_data)
@@ -550,7 +574,7 @@ static int huawei_enable(struct ofono_modem *modem)
g_at_chat_send(data->pcui, "ATE0", none_prefix, NULL, NULL, NULL);
- g_at_chat_send(data->pcui, "AT+CFUN=1;+CFUN=5", none_prefix,
+ g_at_chat_send(data->pcui, "AT+CFUN=1", none_prefix,
cfun_enable, modem, NULL);
query_sim_state(modem);
@@ -667,8 +691,13 @@ static void huawei_post_online(struct ofono_modem
*modem)
struct ofono_netreg *netreg;
struct ofono_message_waiting *mw;
- if (data->sim_state == HUAWEI_SIM_STATE_INVALID_PS_AND_CS)
+ if (data->sim_state != HUAWEI_SIM_STATE_VALID &&
+ data->sim_state != HUAWEI_SIM_STATE_INVALID_CS &&
+ data->sim_state != HUAWEI_SIM_STATE_INVALID_PS) {
+ ofono_info("huawei: invalid sim state in post online (%d)",
+ data->sim_state);
return;
+ }
netreg = ofono_netreg_create(modem, OFONO_VENDOR_HUAWEI, "atmodem",
data->pcui);
------------------------------
Message: 2
Date: Mon, 20 Sep 2010 07:44:45 -0500
From: Denis Kenzior <denkenz(a)gmail.com>
To: ofono(a)ofono.org
Subject: Re: Reg: Memory capacity exceeded
Message-ID: <4C97573D.90406(a)gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Hi Jeevaka,
On 09/20/2010 07:39 AM, Jeevaka.Badrappan(a)elektrobit.com wrote:
> Hi,
>
>> Of course, one can argue whether this feature really has some real
>> world relevance or is purely theoretical.
>>
>> I wonder if it is a type approval requirement to support?
>
>> I'm afraid there is a PICS case for this thing. I cannot recall how we
> got N900 through this particular hoop, but probably we just waived this
> particular test case irrelevant.
>
> correct. There is a USIM conformance case on this message capacitiy
> exceeded information. As per the 3GPP 31.121 specification section 8.2:
>
> "If all SMS data field are full and furthermore all memory capacity
> reserved for SMS inside the ME is filled up to maximum and a SM(Short
> Message) was rejected, then this shall be indicated in the SMS Status
> file.(EFsmss)"
The thing is, oFono configures SMS for direct delivery (e.g. no SM/ME
storage). And even if direct delivery does not work (e.g. crappy modem
or Class 2 / Class 3 messages) oFono still removes the SMS as soon as it
is delivered. We should never hit a sim/me memory full conditions.
So I don't see how this test case even applies.
Regards,
-Denis
------------------------------
Message: 3
Date: Mon, 20 Sep 2010 07:49:48 -0500
From: Denis Kenzior <denkenz(a)gmail.com>
To: ofono(a)ofono.org
Subject: Re: ofono gprs_primary_context description
Message-ID: <4C97586C.8000801(a)gmail.com>
Content-Type: text/plain; charset=windows-1252
Hi Laurent,
On 09/20/2010 04:20 AM, Laurent THOMAS wrote:
> Hi,
>
>
>
> According to the interface org.ofono.ConnectionContext description, the
> property ?Name? is a free short string used to describe the context.
>
> Extract from ?conman-api.txt?
>
> /Properties string Name [readwrite]/
>
> / /
>
> / The name is a free form string that
> describes this/
>
> / context. The name should not be
> empty and limited/
>
> / to a short string for display
purposes./
>
>
>
> But according to source code (version 0.28), this attribute is now only
> affected with the context String Type (?internet?, ?wap? or ?mms?)
>
>
>
> is it really the expected behaviour or did I miss something ?
By default the Name is set to the context type. E.g. creating an
"internet" context results in the name being set to "internet." You
can
still reset the Name later to whatever you wish.
~/ofono-master$ test/list-contexts
[ /phonesim ]
[ /phonesim/context1 ]
Username =
Protocol = ip
Name = Foobar
Settings = { }
Active = 0
AccessPointName =
Password =
Type = internet
Regards,
-Denis
------------------------------
Message: 4
Date: Mon, 20 Sep 2010 15:53:13 +0300
From: Aki Niemi <aki.niemi(a)nokia.com>
To: "ofono(a)ofono.org" <ofono(a)ofono.org>
Subject: Re: Reg: Memory capacity exceeded
Message-ID: <1284987193.12393.485.camel(a)tucson.research.nokia.com>
Content-Type: text/plain; charset="UTF-8"
On Mon, 2010-09-20 at 14:29 +0200, ext Pekka Pessi wrote:
> I'm afraid there is a PICS case for this thing. I cannot recall how we
> got N900 through this particular hoop, but probably we just waived
> this particular test case irrelevant.
I know we have the machinery in place in N900 to report memory exceeded
to the network. And I even remember it getting tested at some point,
basically flooding /var/spool/sms is enough to trigger it.
If this can be waived, though, good riddance.
Cheers,
Aki
------------------------------
Message: 5
Date: Mon, 20 Sep 2010 17:08:41 +0300
From: <Jeevaka.Badrappan(a)elektrobit.com>
To: <denkenz(a)gmail.com>, <ofono(a)ofono.org>
Subject: RE: Reg: Memory capacity exceeded
Message-ID:
<
B668883EB5DD7144ADFC248A72176EA802A51A03(a)fioues07.ebgroup.elektrobit.com>
Content-Type: text/plain; charset="us-ascii"
Hi Denis,
> The thing is, oFono configures SMS for direct delivery (e.g. no SM/ME
storage). And even if direct delivery does not work (e.g. crappy modem
or Class 2 / Class 3 messages) oFono still removes the SMS
> as soon as it is delivered. We should never hit a sim/me memory full
conditions.
> So I don't see how this test case even applies.
Little bit lost now. Are we speaking about the sending or receiving of
SMS?
Memory capacity exceeded applies to incoming SMS. Incoming SMS can be
stored in SIM or in ME storage. If the SMS storage for incoming SMS is
full, then the ME can inform the network that it can't handle any more
class 1/class 2 incoming SMS due to maximum memory capacity reached.
Once the user frees some memory by deleting some messages, then ME can
inform network that it is ready now to receive messages. So, I believe
this test case applies but as Pessi Pekka said we can waive this test
case.
Regards,
jeevaka
------------------------------
Message: 6
Date: Mon, 20 Sep 2010 09:11:45 -0500
From: Denis Kenzior <denkenz(a)gmail.com>
To: Jeevaka.Badrappan(a)elektrobit.com
Cc: ofono(a)ofono.org
Subject: Re: Reg: Memory capacity exceeded
Message-ID: <4C976BA1.30600(a)gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Hi Jeevaka,
On 09/20/2010 09:08 AM, Jeevaka.Badrappan(a)elektrobit.com wrote:
>
> Hi Denis,
>
>> The thing is, oFono configures SMS for direct delivery (e.g. no SM/ME
> storage). And even if direct delivery does not work (e.g. crappy modem
> or Class 2 / Class 3 messages) oFono still removes the SMS
>> as soon as it is delivered. We should never hit a sim/me memory full
> conditions.
>
>> So I don't see how this test case even applies.
>
> Little bit lost now. Are we speaking about the sending or receiving of
> SMS?
>
> Memory capacity exceeded applies to incoming SMS. Incoming SMS can be
> stored in SIM or in ME storage. If the SMS storage for incoming SMS is
> full, then the ME can inform the network that it can't handle any more
> class 1/class 2 incoming SMS due to maximum memory capacity reached.
> Once the user frees some memory by deleting some messages, then ME can
> inform network that it is ready now to receive messages. So, I believe
> this test case applies but as Pessi Pekka said we can waive this test
> case.
I know exactly the case you're talking about, but as I mentioned before,
oFono does not configure the modem to store on SIM or ME. The messages
are routed directly to oFono. See drivers/atmodem/sms.c for more
details. The only messages that *might* get routed to SM/ME are Class 2
/ 3 messages. These are automatically deleted on reception by the sms
driver.
The 'memory capacity reached' can simply never happen assuming sane
hardware.
Regards,
-Denis
------------------------------
Message: 7
Date: Tue, 21 Sep 2010 02:09:36 +0900
From: Marcel Holtmann <marcel(a)holtmann.org>
To: ofono(a)ofono.org
Subject: Re: [PATCH v2 1/2] huawei: poll sim state
Message-ID: <1285002576.20811.36.camel(a)localhost.localdomain>
Content-Type: text/plain; charset="UTF-8"
Hi Kalle,
> On my Huawei E1552 when I plug in the modem (ie. cold start) with PIN
locked
> SIM, the sim state is 255 (HUAWEI_SIM_STATE_NOT_EXISTENT). As the modem
> doesn't send ^SIMST notifications, poll the sim state until it's ready.
>
> In theory it might be possible to do this better, for example follow
> ^BOOT notifications or something, but it's unknown what parameter we
> should check for.
> ---
> plugins/huawei.c | 66
+++++++++++++++++++++++++++++++++++++++++++-----------
> 1 files changed, 53 insertions(+), 13 deletions(-)
patch has been applied.
Regards
Marcel
------------------------------
Message: 8
Date: Tue, 21 Sep 2010 02:09:55 +0900
From: Marcel Holtmann <marcel(a)holtmann.org>
To: ofono(a)ofono.org
Subject: Re: [PATCH v2 2/2] huawei: fix online logic
Message-ID: <1285002595.20811.37.camel(a)localhost.localdomain>
Content-Type: text/plain; charset="UTF-8"
Hi Kalle,
> The recently introduced online support to huawei didn't work with my
> Huawei E1552. The problem was that with command AT+CFUN=1;+CFUN=5
> the modem didn't initialise the sim state properly.
>
> To fix this I changed the logic so that CFUN=5 is called only after the
sim
> state has switched to a valid state. Now my Huawei E1552 works with
connman
> again.
>
> PIN locked SIMs still won't work. The problem is that it takes some time
for
> the sim state to go to a valid state:
>
> Sep 20 15:01:57 dell-m520 ofonod[12451]: Pcui:< \r\n+CPIN:
READY\r\n\r\nOK\r\n
> [...]
> Sep 20 15:02:00 dell-m520 ofonod[12451]: huawei: invalid sim state in
post online (0)
> [...]
> Sep 20 15:02:01 dell-m520 ofonod[12451]: Pcui:< \r\n^SIMST:1\r\n
>
> I don't know why it takes so long to get a valid state.
>
> There is also another issue, in "cold start" case the phonebook
> initialisation fails:
>
> Sep 20 14:34:24 dell-m520 ofonod[11939]: Pcui:> AT+CPBS=?\r
> Sep 20 14:34:24 dell-m520 ofonod[11939]: Pcui:< \r\n+CME ERROR: SIM
busy\r\n
>
> But in "warm start" it seems to work:
>
> Sep 20 14:38:59 dell-m520 ofonod[12091]: Pcui:> AT+CPBS=?\r
> Sep 20 14:38:59 dell-m520 ofonod[12091]: Pcui:< \r\n+CPBS:
("SM","EN","ON")\r\n\r\nOK\r\n
>
> I consider this as a minor issue and didn't investigate it at all.
> ---
> plugins/huawei.c | 77
+++++++++++++++++++++++++++++++++++++-----------------
> 1 files changed, 53 insertions(+), 24 deletions(-)
patch has been applied.
Regards
Marcel
------------------------------
_______________________________________________
ofono mailing list
ofono(a)ofono.org
http://lists.ofono.org/listinfo/ofono
End of ofono Digest, Vol 17, Issue 71
*************************************