* Fixed Dialing @ 2010-10-01 16:06 Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Petteri Tikander 0 siblings, 1 reply; 13+ messages in thread From: Petteri Tikander @ 2010-10-01 16:06 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 185 bytes --] This patchset is for supporting Fixed Dialing (actually FD is not supported yet). If FD is enabled in the SIM-card, all atoms are removed and only emergency calls are accepted. ^ permalink raw reply [flat|nested] 13+ messages in thread
* [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card 2010-10-01 16:06 Fixed Dialing Petteri Tikander @ 2010-10-01 16:06 ` Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 2/4] modem: Remove atoms " Petteri Tikander ` (3 more replies) 0 siblings, 4 replies; 13+ messages in thread From: Petteri Tikander @ 2010-10-01 16:06 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 4292 bytes --] --- drivers/atmodem/sim.c | 23 +++++++++++++++++++++ include/sim.h | 3 ++ src/sim.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 0 deletions(-) diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c index d0a7148..854ba08 100644 --- a/drivers/atmodem/sim.c +++ b/drivers/atmodem/sim.c @@ -831,6 +831,28 @@ error: CALLBACK_WITH_FAILURE(cb, -1, data); } +static void at_barring_query_enabled(struct ofono_sim *sim, + ofono_sim_locked_cb_t cb, void *data) +{ + struct sim_data *sd = ofono_sim_get_data(sim); + struct cb_data *cbd = cb_data_new(cb, data); + char buf[64]; + + if (!cbd) + goto error; + + snprintf(buf, sizeof(buf), "AT+CLCK=\"FD\",2"); + + if (g_at_chat_send(sd->chat, buf, clck_prefix, + at_lock_status_cb, cbd, g_free) > 0) + return; + +error: + g_free(cbd); + + CALLBACK_WITH_FAILURE(cb, -1, data); +} + static gboolean at_sim_register(gpointer user) { struct ofono_sim *sim = user; @@ -898,6 +920,7 @@ static struct ofono_sim_driver driver = { .lock = at_pin_enable, .change_passwd = at_change_passwd, .query_locked = at_pin_query_enabled, + .query_call_barred = at_barring_query_enabled, }; void at_sim_init() diff --git a/include/sim.h b/include/sim.h index 42b19bd..e73a995 100644 --- a/include/sim.h +++ b/include/sim.h @@ -74,6 +74,7 @@ enum ofono_sim_cphs_phase { enum ofono_sim_state { OFONO_SIM_STATE_NOT_PRESENT, OFONO_SIM_STATE_INSERTED, + OFONO_SIM_STATE_FAILED, OFONO_SIM_STATE_READY, }; @@ -156,6 +157,8 @@ struct ofono_sim_driver { void (*query_locked)(struct ofono_sim *sim, enum ofono_sim_password_type type, ofono_sim_locked_cb_t cb, void *data); + void (*query_call_barred)(struct ofono_sim *sim, + ofono_sim_locked_cb_t cb, void *data); }; int ofono_sim_driver_register(const struct ofono_sim_driver *d); diff --git a/src/sim.c b/src/sim.c index 6f10d4c..2252ae0 100644 --- a/src/sim.c +++ b/src/sim.c @@ -49,6 +49,7 @@ static GSList *g_drivers = NULL; static void sim_own_numbers_update(struct ofono_sim *sim); static void sim_pin_check(struct ofono_sim *sim); static void sim_set_ready(struct ofono_sim *sim); +static void sim_set_not_ready(struct ofono_sim *sim); struct ofono_sim { /* Contents of the SIM file system, in rough initialization order */ @@ -1468,6 +1469,27 @@ static void sim_iccid_read_cb(int ok, int length, int record, &sim->iccid); } +static void sim_call_barred_query_cb(const struct ofono_error *error, + int locked, + gpointer data) +{ + struct ofono_sim *sim = data; + + if (error->type != OFONO_ERROR_TYPE_NO_ERROR || locked) { + + ofono_error("Fixed Dialing is enabled, emergency calls only"); + sim_set_not_ready(sim); + } +} + +static void sim_call_barring_check(struct ofono_sim *sim) +{ + if (!sim->driver->query_call_barred) + return; + + sim->driver->query_call_barred(sim, sim_call_barred_query_cb, sim); +} + static void sim_initialize(struct ofono_sim *sim) { /* @@ -1496,6 +1518,15 @@ static void sim_initialize(struct ofono_sim *sim) * in the EFust */ + /* + * In this moment Fixed Dialing is not supported. + * Check if FD is enabled in the SIM-card. If it's + * enabled, signal SIM not ready condition. + * This function checks in this moment only FD-status, + * not any call-barrings. + */ + sim_call_barring_check(sim); + /* Grab the EFiccid which is always available */ ofono_sim_read(sim, SIM_EF_ICCID_FILEID, OFONO_SIM_FILE_STRUCTURE_TRANSPARENT, @@ -1733,6 +1764,27 @@ enum ofono_sim_state ofono_sim_get_state(struct ofono_sim *sim) return sim->state; } +static void sim_set_not_ready(struct ofono_sim *sim) +{ + GSList *l; + ofono_sim_state_event_cb_t notify; + + if (sim == NULL) + return; + + if (sim->state != OFONO_SIM_STATE_INSERTED) + return; + + sim->state = OFONO_SIM_STATE_FAILED; + + for (l = sim->state_watches->items; l; l = l->next) { + struct ofono_watchlist_item *item = l->data; + notify = item->notify; + + notify(sim->state, item->notify_data); + } +} + static void sim_set_ready(struct ofono_sim *sim) { GSList *l; -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC PATCH 2/4] modem: Remove atoms if FD is enabled in the SIM-card 2010-10-01 16:06 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Petteri Tikander @ 2010-10-01 16:06 ` Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 3/4] modem: some debugs added for indicating modem state change Petteri Tikander 2010-10-01 16:25 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Jeevaka.Badrappan ` (2 subsequent siblings) 3 siblings, 1 reply; 13+ messages in thread From: Petteri Tikander @ 2010-10-01 16:06 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 542 bytes --] --- src/modem.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/modem.c b/src/modem.c index 7a29edf..f6ed1ab 100644 --- a/src/modem.c +++ b/src/modem.c @@ -419,6 +419,9 @@ static void sim_state_watch(enum ofono_sim_state new_state, void *user) break; case OFONO_SIM_STATE_INSERTED: break; + case OFONO_SIM_STATE_FAILED: + modem_change_state(modem, MODEM_STATE_POWER_OFF); + break; case OFONO_SIM_STATE_READY: modem_change_state(modem, MODEM_STATE_OFFLINE); -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC PATCH 3/4] modem: some debugs added for indicating modem state change 2010-10-01 16:06 ` [RFC PATCH 2/4] modem: Remove atoms " Petteri Tikander @ 2010-10-01 16:06 ` Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 4/4] TODO: Owner of Fixed Dialing task Petteri Tikander 2010-10-02 6:09 ` [RFC PATCH 3/4] modem: some debugs added for indicating modem state change Marcel Holtmann 0 siblings, 2 replies; 13+ messages in thread From: Petteri Tikander @ 2010-10-01 16:06 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 1145 bytes --] --- src/modem.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/src/modem.c b/src/modem.c index f6ed1ab..e90f4dc 100644 --- a/src/modem.c +++ b/src/modem.c @@ -380,20 +380,25 @@ static void modem_change_state(struct ofono_modem *modem, modem->modem_state = new_state; - if (old_state > new_state) + if (old_state > new_state) { + DBG("flush atoms"); flush_atoms(modem, new_state); + } switch (new_state) { case MODEM_STATE_POWER_OFF: + DBG("MODEM_STATE_POWER_OFF"); modem->call_ids = 0; break; case MODEM_STATE_PRE_SIM: + DBG("MODEM_STATE_PRE_SIM"); if (old_state < MODEM_STATE_PRE_SIM && driver->pre_sim) driver->pre_sim(modem); break; case MODEM_STATE_OFFLINE: + DBG("MODEM_STATE_OFFLINE"); if (old_state < MODEM_STATE_OFFLINE) { if (driver->post_sim) driver->post_sim(modem); @@ -403,6 +408,7 @@ static void modem_change_state(struct ofono_modem *modem, break; case MODEM_STATE_ONLINE: + DBG("MODEM_STATE_ONLINE"); if (driver->post_online) driver->post_online(modem); break; -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC PATCH 4/4] TODO: Owner of Fixed Dialing task 2010-10-01 16:06 ` [RFC PATCH 3/4] modem: some debugs added for indicating modem state change Petteri Tikander @ 2010-10-01 16:06 ` Petteri Tikander 2010-10-02 6:11 ` Marcel Holtmann 2010-10-02 6:09 ` [RFC PATCH 3/4] modem: some debugs added for indicating modem state change Marcel Holtmann 1 sibling, 1 reply; 13+ messages in thread From: Petteri Tikander @ 2010-10-01 16:06 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 453 bytes --] --- TODO | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/TODO b/TODO index 643c828..f2f769f 100644 --- a/TODO +++ b/TODO @@ -90,6 +90,7 @@ SIM / SIM File system Priority: Low Complexity: C2 + Owner: Petteri Tikander <petteri.tikander@ixonos.com> - Barred Numbers. oFono should support Barred Numbers capability. This requires ability to read & write EFadn entries on the SIM. -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 4/4] TODO: Owner of Fixed Dialing task 2010-10-01 16:06 ` [RFC PATCH 4/4] TODO: Owner of Fixed Dialing task Petteri Tikander @ 2010-10-02 6:11 ` Marcel Holtmann 0 siblings, 0 replies; 13+ messages in thread From: Marcel Holtmann @ 2010-10-02 6:11 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 608 bytes --] Hi Petteri, > --- > TODO | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/TODO b/TODO > index 643c828..f2f769f 100644 > --- a/TODO > +++ b/TODO > @@ -90,6 +90,7 @@ SIM / SIM File system > > Priority: Low > Complexity: C2 > + Owner: Petteri Tikander <petteri.tikander@ixonos.com> so in general I would expect that this patch comes first. The TODO is there to make sure that we don't have many parties working on the same item without knowing of each other. Because of that, I went ahead and applied this patch right away. Regards Marcel ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 3/4] modem: some debugs added for indicating modem state change 2010-10-01 16:06 ` [RFC PATCH 3/4] modem: some debugs added for indicating modem state change Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 4/4] TODO: Owner of Fixed Dialing task Petteri Tikander @ 2010-10-02 6:09 ` Marcel Holtmann 1 sibling, 0 replies; 13+ messages in thread From: Marcel Holtmann @ 2010-10-02 6:09 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 1563 bytes --] Hi Petteri, > src/modem.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/src/modem.c b/src/modem.c > index f6ed1ab..e90f4dc 100644 > --- a/src/modem.c > +++ b/src/modem.c > @@ -380,20 +380,25 @@ static void modem_change_state(struct ofono_modem *modem, > > modem->modem_state = new_state; > > - if (old_state > new_state) > + if (old_state > new_state) { > + DBG("flush atoms"); > flush_atoms(modem, new_state); > + } just adding a DBG("") in flush_atoms() at the top would be a bit better here. > switch (new_state) { > case MODEM_STATE_POWER_OFF: > + DBG("MODEM_STATE_POWER_OFF"); > modem->call_ids = 0; > break; > > case MODEM_STATE_PRE_SIM: > + DBG("MODEM_STATE_PRE_SIM"); > if (old_state < MODEM_STATE_PRE_SIM && driver->pre_sim) > driver->pre_sim(modem); > break; > > case MODEM_STATE_OFFLINE: > + DBG("MODEM_STATE_OFFLINE"); > if (old_state < MODEM_STATE_OFFLINE) { > if (driver->post_sim) > driver->post_sim(modem); > @@ -403,6 +408,7 @@ static void modem_change_state(struct ofono_modem *modem, > break; > > case MODEM_STATE_ONLINE: > + DBG("MODEM_STATE_ONLINE"); > if (driver->post_online) > driver->post_online(modem); > break; I would prefer if we just add a DBG() at the top of modem_change_state function that indicates the previous and the new state. And you can just to start as integer value. No need for the string here. They are 4 states only anyway. Regards Marcel ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card 2010-10-01 16:06 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 2/4] modem: Remove atoms " Petteri Tikander @ 2010-10-01 16:25 ` Jeevaka.Badrappan 2010-10-04 12:19 ` Petteri Tikander 2010-10-02 6:22 ` Marcel Holtmann 2010-10-04 13:31 ` Pekka Pessi 3 siblings, 1 reply; 13+ messages in thread From: Jeevaka.Badrappan @ 2010-10-01 16:25 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 1796 bytes --] Hi Petteri, +static void at_barring_query_enabled(struct ofono_sim *sim, + ofono_sim_locked_cb_t cb, void *data) { + struct sim_data *sd = ofono_sim_get_data(sim); + struct cb_data *cbd = cb_data_new(cb, data); + char buf[64]; + + if (!cbd) + goto error; + + snprintf(buf, sizeof(buf), "AT+CLCK=\"FD\",2"); + + if (g_at_chat_send(sd->chat, buf, clck_prefix, + at_lock_status_cb, cbd, g_free) > 0) + return; + +error: + g_free(cbd); + + CALLBACK_WITH_FAILURE(cb, -1, data); +} + static gboolean at_sim_register(gpointer user) { struct ofono_sim *sim = user; @@ -898,6 +920,7 @@ static struct ofono_sim_driver driver = { .lock = at_pin_enable, .change_passwd = at_change_passwd, .query_locked = at_pin_query_enabled, + .query_call_barred = at_barring_query_enabled, }; @@ -156,6 +157,8 @@ struct ofono_sim_driver { void (*query_locked)(struct ofono_sim *sim, enum ofono_sim_password_type type, ofono_sim_locked_cb_t cb, void *data); + void (*query_call_barred)(struct ofono_sim *sim, + ofono_sim_locked_cb_t cb, void *data); }; +static void sim_call_barred_query_cb(const struct ofono_error *error, + int locked, + gpointer data) +{ + struct ofono_sim *sim = data; + + if (error->type != OFONO_ERROR_TYPE_NO_ERROR || locked) { + + ofono_error("Fixed Dialing is enabled, emergency calls only"); + sim_set_not_ready(sim); + } +} + +static void sim_call_barring_check(struct ofono_sim *sim) { + if (!sim->driver->query_call_barred) + return; + + sim->driver->query_call_barred(sim, sim_call_barred_query_cb, sim); } + Function names are misleading(eg: query_call_barred, sim_call_barring_check). Is it better to use the function name like query_fdn_status?? Regards, jeevaka ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card 2010-10-01 16:25 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Jeevaka.Badrappan @ 2010-10-04 12:19 ` Petteri Tikander 0 siblings, 0 replies; 13+ messages in thread From: Petteri Tikander @ 2010-10-04 12:19 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 712 bytes --] Hi, Jeevaka. Well yes, function naming is misleading. I just had some idea for collecting different kind of call-restrictions (FDN, BDN, other?) under the same checking function sim_call_barring_check(), which now supports only FDN. Well perhaps changing name from sim_call_barring_check() to sim_call_restriction_check() would be more descriptive? Then it could call proper driver-functions. OK, I'll change driver-function query_call_barred() to something more descriptive for Fixed Dial-purpose. Br, Petteri > Function names are misleading(eg: query_call_barred, > sim_call_barring_check). Is it better to use the function name like > query_fdn_status?? > > Regards, > jeevaka ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card 2010-10-01 16:06 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 2/4] modem: Remove atoms " Petteri Tikander 2010-10-01 16:25 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Jeevaka.Badrappan @ 2010-10-02 6:22 ` Marcel Holtmann 2010-10-04 16:17 ` Petteri Tikander 2010-10-04 13:31 ` Pekka Pessi 3 siblings, 1 reply; 13+ messages in thread From: Marcel Holtmann @ 2010-10-02 6:22 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 2150 bytes --] Hi Petteri Tikander, > --- > drivers/atmodem/sim.c | 23 +++++++++++++++++++++ > include/sim.h | 3 ++ > src/sim.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 78 insertions(+), 0 deletions(-) these need to be split into two separate patches no matter what. First one is adding a feature to the core. The other is implementing it in the atom driver. > diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c > index d0a7148..854ba08 100644 > --- a/drivers/atmodem/sim.c > +++ b/drivers/atmodem/sim.c > @@ -831,6 +831,28 @@ error: > CALLBACK_WITH_FAILURE(cb, -1, data); > } > > +static void at_barring_query_enabled(struct ofono_sim *sim, > + ofono_sim_locked_cb_t cb, void *data) > +{ > + struct sim_data *sd = ofono_sim_get_data(sim); > + struct cb_data *cbd = cb_data_new(cb, data); > + char buf[64]; > + > + if (!cbd) > + goto error; > + > + snprintf(buf, sizeof(buf), "AT+CLCK=\"FD\",2"); > + > + if (g_at_chat_send(sd->chat, buf, clck_prefix, > + at_lock_status_cb, cbd, g_free) > 0) > + return; > + > +error: > + g_free(cbd); > + > + CALLBACK_WITH_FAILURE(cb, -1, data); > +} > + > static gboolean at_sim_register(gpointer user) > { > struct ofono_sim *sim = user; > @@ -898,6 +920,7 @@ static struct ofono_sim_driver driver = { > .lock = at_pin_enable, > .change_passwd = at_change_passwd, > .query_locked = at_pin_query_enabled, > + .query_call_barred = at_barring_query_enabled, > }; > > void at_sim_init() > diff --git a/include/sim.h b/include/sim.h > index 42b19bd..e73a995 100644 > --- a/include/sim.h > +++ b/include/sim.h > @@ -74,6 +74,7 @@ enum ofono_sim_cphs_phase { > enum ofono_sim_state { > OFONO_SIM_STATE_NOT_PRESENT, > OFONO_SIM_STATE_INSERTED, > + OFONO_SIM_STATE_FAILED, > OFONO_SIM_STATE_READY, > }; I know that you guys talked with Denis about this, so I might be just missing something here. The requirement for minimum FDN support is really to power down the modem and not leave it in pre_sim state for emergency calls? Regards Marcel ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card 2010-10-02 6:22 ` Marcel Holtmann @ 2010-10-04 16:17 ` Petteri Tikander 2010-10-05 0:03 ` Denis Kenzior 0 siblings, 1 reply; 13+ messages in thread From: Petteri Tikander @ 2010-10-04 16:17 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 2744 bytes --] Hi Marcel, and thanks for the valid comments. > Hi Petteri Tikander, > > > --- > > drivers/atmodem/sim.c | 23 +++++++++++++++++++++ > > include/sim.h | 3 ++ > > src/sim.c | 52 > > +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 > > insertions(+), 0 deletions(-) > > these need to be split into two separate patches no matter what. First > one is adding a feature to the core. The other is implementing it in the > atom driver. OK. > > I know that you guys talked with Denis about this, so I might be just > missing something here. > You did not necessarily missed anything:) So logically presim-state in SIM- enabled FDN has sense (or even switching to OFF_LINE-state). It can be my misunderstanding. We had some discussion with Denis of this issue, and I understood it so, that oFono-api has to remove rest of the atoms, if FDN is enabled (so also SIM- and voicecall atoms). At least it was easy way to filter any calls. Well, the removal of the SIM-atom (what my patch-code did) wasn't a good idea from me. Seems that SIM-initialization routine will be done every time when waking up from the POWER-OFF state to the emergency-mode :( Anyway, I ensured the situation (staying in the presim-state) by next kind of test (by making some test-code, where FDN-enabled SIM causes keeping in the PRE_SIM-state): 1) enable FDN in SIM 2) enable modem: - create SIM-atom/voice call atom/.../read some EFs/.../read IMSI-code/read FDN enabled-status 3) dial to some number in the FDN-list 4) call passed! Well, why the call passed to B-subscriber: it shouldn't because modem should be offline (AT+CFUN=1 not given yet). But my test-modem doesn't understand 'AT+CFUN=4'- command, so it can pass calls anyway. OK, most modems will not start dialing. But anyway, if modem is in the offline, it still receives 'ATD####'-command through atom/driver-chain, handles it, and probably returns some error. So the basic question is now, should the voicecall-atom also be removed in the call-restrictions (FDN/BDN-situations etc), causing calls to be filtered in very early phase. Or voicecall-atom not even created until switching to ON_LINE (emergency-mode logic switches). Or is it OK to accept situation mentioned below (let trust the modem to filter calls), and keep the voicecall- logic visible all the time? Or, probably to add some condition in voicecall atoms's methods for canceling calls when not being in the MODEM_ON_LINE-state. > The requirement for minimum FDN support is really to power down the > modem and not leave it in pre_sim state for emergency calls? > Thanks. Br, Petteri ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card 2010-10-04 16:17 ` Petteri Tikander @ 2010-10-05 0:03 ` Denis Kenzior 0 siblings, 0 replies; 13+ messages in thread From: Denis Kenzior @ 2010-10-05 0:03 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 2248 bytes --] Hi Petteri, > > You did not necessarily missed anything:) So logically presim-state in SIM- > enabled FDN has sense (or even switching to OFF_LINE-state). It can be my > misunderstanding. We had some discussion with Denis of this issue, and I > understood it so, that oFono-api has to remove rest of the atoms, if FDN is > enabled (so also SIM- and voicecall atoms). At least it was easy way to filter > any calls. Please refer to SIM initialization procedures in 3GPP 31.102 Section 5.1.1.2. The FDN enabled check is done after EFust / EFest is read but before EFimsi is read. So the modem should remain in the 'pre-sim' state. > > Well, the removal of the SIM-atom (what my patch-code did) wasn't a good idea > from me. Seems that SIM-initialization routine will be done every time when > waking up from the POWER-OFF state to the emergency-mode :( Removing of sim atom is not necessary, simply never proceed past the pre-sim state. <snip> > > So the basic question is now, should the voicecall-atom also be removed in > the call-restrictions (FDN/BDN-situations etc), causing calls to be filtered in > very early phase. Or voicecall-atom not even created until switching to > ON_LINE (emergency-mode logic switches). Or is it OK to accept situation > mentioned below (let trust the modem to filter calls), and keep the voicecall- > logic visible all the time? Or, probably to add some condition in voicecall > atoms's methods for canceling calls when not being in the MODEM_ON_LINE-state. In the future we will have a way to trigger online state for dialing emergency numbers even if FDN/BDN are enabled or the SIM is not inserted. That is something Pekka and other folks at Nokia are working on. So the suggested way forward is to simply check the entries in EFest / EFsst (for 51.011 and 11.11) and halt SIM initialization procedures if FDN is enabled. Adding a property to tell the UI what is going on (e.g. boolean FixedDialing) might be a good idea as well. > > >> The requirement for minimum FDN support is really to power down the >> modem and not leave it in pre_sim state for emergency calls? >> No, we should not power down the modem. Regards, -Denis ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card 2010-10-01 16:06 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Petteri Tikander ` (2 preceding siblings ...) 2010-10-02 6:22 ` Marcel Holtmann @ 2010-10-04 13:31 ` Pekka Pessi 3 siblings, 0 replies; 13+ messages in thread From: Pekka Pessi @ 2010-10-04 13:31 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 646 bytes --] Moro Petteri and others, 2010/10/1 Petteri Tikander <petteri.tikander@ixonos.com>: > index 42b19bd..e73a995 100644 > --- a/include/sim.h > +++ b/include/sim.h > @@ -74,6 +74,7 @@ enum ofono_sim_cphs_phase { > enum ofono_sim_state { > OFONO_SIM_STATE_NOT_PRESENT, > OFONO_SIM_STATE_INSERTED, > + OFONO_SIM_STATE_FAILED, > OFONO_SIM_STATE_READY, > }; Would it be a good idea to let modem driver indicate the failure state in some cases? I recall the N900 modem had some pathological cases where it crashed if a SIM has certain services enabled? -- Pekka.Pessi mail at nokia.com ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2010-10-05 0:03 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-10-01 16:06 Fixed Dialing Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 2/4] modem: Remove atoms " Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 3/4] modem: some debugs added for indicating modem state change Petteri Tikander 2010-10-01 16:06 ` [RFC PATCH 4/4] TODO: Owner of Fixed Dialing task Petteri Tikander 2010-10-02 6:11 ` Marcel Holtmann 2010-10-02 6:09 ` [RFC PATCH 3/4] modem: some debugs added for indicating modem state change Marcel Holtmann 2010-10-01 16:25 ` [RFC PATCH 1/4] sim: check if FD is enabled in the SIM-card Jeevaka.Badrappan 2010-10-04 12:19 ` Petteri Tikander 2010-10-02 6:22 ` Marcel Holtmann 2010-10-04 16:17 ` Petteri Tikander 2010-10-05 0:03 ` Denis Kenzior 2010-10-04 13:31 ` Pekka Pessi
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.