Ticket #1185 (closed defect: fixed)

Opened 11 years ago

Last modified 11 years ago

Retrieve operator list when init network will cause dialer can't make a phone call

Reported by: sean_chiang@… Owned by: chris@…
Priority: high Milestone:
Component: openmoko-dialer Version: 2007.2
Severity: critical Keywords: VERIFIED
Cc: buglog@…, erin_yueh@…, sean_chiang@… Blocked By:
Blocking: Estimated Completion (week):
HasPatchForReview: PatchReviewResult:
Reproducible:

Description


Attachments

gsm.log (118.2 KB) - added by sean_chiang@… 11 years ago.
gsm.log
analysis.log (5.4 KB) - added by sean_chiang@… 11 years ago.
analysis from gsm.log
new-function-to-get-operator-in-numeric-format.patch (4.0 KB) - added by sean_chiang@… 11 years ago.
new function to get operator in numeric fmt

Change History

comment:1 Changed 11 years ago by sean_chiang@…

When retrieve operator list on network register will cause dialer can't make a
phone call or send message. This command takes a long time to get result from
modem(about 55 secs, my observation in Taiwan).

Changed 11 years ago by sean_chiang@…

gsm.log

Changed 11 years ago by sean_chiang@…

analysis from gsm.log

comment:2 Changed 11 years ago by sean_chiang@…

  • Cc erin_yueh@… added

comment:3 Changed 11 years ago by sean_chiang@…

  • Severity changed from major to critical

I changed it to critical because when register network each time, can't make a
phone call.

comment:4 Changed 11 years ago by erin_yueh@…

yeah, we feel painful on the network initialization from UI part now.
it spends too much time to get this operator list and not only try once. When we
ever change our location, like enter into the elevator, UI will try to get this
list and retry the network initialization. On this moment, dialer is like dead,
we cannot make phone calls, although it displays dialing out UI, actually the
gsm modem is busy, wait for the reply from the network.

we suggest to remove 'retrieve operator list' code from 'moko-netowork.c'. I am
not sure whether gsmd can get the country code from other command. I will try to
figure it out. But, please remove the code first, coz it makes dialer unfriendly
and inconvenient for user.

i only try our dialer with Taiwan network and I am not sure the network status
in other countries. Probably gsmd modem can get this operator list in UK very
quickly, but we should consider different networks in other countries. Thanks!

comment:5 Changed 11 years ago by chris@…

  • Status changed from new to assigned

The only reason the operator list is retrieved is to retrieve the operator
number, which isn't provided by lgsm_oper_get - I've asked before, but I never
got an answer, would it be possible to add this information to lgsm_oper_get?
That way, there would be no need for this call.

I'll remove it for now, but if there's no way to get the operator number, this
will break resolving numbers in applications like messages and contacts (to
match against incomplete numbers)

comment:6 Changed 11 years ago by chris@…

  • Status changed from assigned to closed
  • Resolution set to fixed

Fixed in r3864 - Operator list is only retrieved when roaming, to provide the
local country code (as suggested by Erin).

Will add an error state for other phone-kit functions later so that operator
listing blocks until finished.

comment:7 Changed 11 years ago by balrogg@…

Yes, it can be added to lgsm_get_oper() or (better yet) it can be a separate
call. Gsmd would just need to execute +COPS=3,2 (i think) instead +COPS=3,0.
I'm not sure if the country code could be retrieved from the IDs you get with
the "registered" event (you get cell ID and some other ID). Is knowing the
country necessary at all?

For the record retrieving the operators list in Poland also takes over a minute,
not only on TI Calypso but also on other phones. However they never try to do
that unless specifically asked to.

comment:8 Changed 11 years ago by chris@…

The operator number starts with the MCC, which can be mapped to a location (and
already is, using a mapping table I put together:
http://svn.openmoko.org/trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-mcc-dc.h
) - It's not 100% reliable (due to my possible human error and out-of-date
information), but it's the only way I can think of of getting a country code
just using GSM - If this can be added to lgsm_oper_get, that'd be great, but
Erin informs me it can't?

comment:9 Changed 11 years ago by sean_chiang@…

Thansk Andrzej, great help. Chris, I'll patch gsmd today then you can use
lgsm_oper_ge() to get country code directly.

Changed 11 years ago by sean_chiang@…

new function to get operator in numeric fmt

comment:10 Changed 11 years ago by sean_chiang@…

  • Status changed from closed to reopened
  • Resolution fixed deleted

HI! Cris, with the gsmd patch, you could get operator in numeric format through
lgsm_oper_n_get instead of lgsm_opers_get. Please remove all lgsm_opers_get()
function call.

comment:11 Changed 11 years ago by chris@…

  • Status changed from reopened to closed
  • Resolution set to fixed

Fixed in r3878 - no more opers_list. Could you add lgsm_opers_n_get to one of
the libgsmd headers? It currently produces a warning when building phone-kit and
of course makes the function harder to discover for future libgsmd users :)

comment:12 Changed 11 years ago by erin_yueh@…

  • Keywords VERIFIED added

fixed the warning in gsmd r3915.

Note: See TracTickets for help on using tickets.