Closed
Bug 959914
Opened 12 years ago
Closed 12 years ago
[DSDS] always use the 1st service to make an emergency call when 2 slots are empty
Categories
(Firefox OS Graveyard :: Gaia::Dialer, defect)
Tracking
(blocking-b2g:1.3+, b2g-v1.3 fixed)
| Tracking | Status | |
|---|---|---|
| b2g-v1.3 | --- | fixed |
People
(Reporter: hsinyi, Assigned: etienne)
References
Details
(Whiteboard: [FT:RIL])
Attachments
(1 file)
Currently, dialer is always using the user preference service to make a call. However, in airplane mode or in the case of 2 sim slots being empty, dialer should always use the 1st service/slot for outgoing calls.
| Reporter | ||
Comment 1•12 years ago
|
||
nominate as 1.3+ because once bug 943215 landed, we have a specific radio control on fugu dsds devices. If we don't have this bug fixed, and if primary is set to 2, the phone becomes crazy when user tries to make a call out.
blocking-b2g: --- → 1.3?
| Reporter | ||
Comment 2•12 years ago
|
||
Okay, I should correct my comment 0 a little bit:
We should -- always use the 1st slot for outgoing calls *when 2 slots are empty*, i.e. both mobileConnections[0].iccId and mobileConnections[1].iccId are null, even there's a chance that the primary setting is set to 2.
Summary: [DSDS] always use the 1st service to make an emergency call when in airplane mode or 2 slots are empty → [DSDS] always use the 1st service to make an emergency call when 2 slots are empty
Hi Hsinyi,
Sorry for some dumb questions:
1. When there is no SIM, under airplane mode, why can't it dial out with slot 1 channel?
2. When there is no SIM, no airplane mode, device will dial out EC based on primary outgoing call setting, right?
3. When there are 2 SIM, under airplane mode, device will dial out EC based on primary outgoing call setting, right?
4. When there is only one SIM, under airplane mode, device will dial out EC via the SIM, right?
| Reporter | ||
Comment 4•12 years ago
|
||
(In reply to Enpei from comment #3)
> Hi Hsinyi,
>
> Sorry for some dumb questions:
>
> 1. When there is no SIM, under airplane mode, why can't it dial out with
> slot 1 channel?
Assuming slot 1 you mentioned is the 2nd slot ...
The restriction is because of hardware/modem implementation.
For fugu, we CANNOT power on a specific slot if there's no SIM card inserted unless it's the hardware default slot, i.e. 1st slot, and both slots are empty.
>
> 2. When there is no SIM, no airplane mode, device will dial out EC based on
> primary outgoing call setting, right?
No. No matter the device is on airplane mode or not, if there's no SIM card at all, we dial out an emergency call only with 1st slot rather than the primary setting.
>
> 3. When there are 2 SIM, under airplane mode, device will dial out EC based
> on primary outgoing call setting, right?
>
Not exactly...
Under airplane mode, some hardware/modem will turn off the power of SIM cards. That means, the symptom we observe makes our phone believe there's no SIM cards (mobileConnection[n].iccId == null). In this case, our dialer needs to choose 1st slot to make a call.
However, if the device is fugu, due to different hardware/modem design, the power of SIM cards won't be turned off even in airplane mode (only radio being off in airplane mode). Then, the symptom we observe (mobileConnections[n].iccId != null) is different from 'no-SIM-card case.' Therefore, dialer should make out a call via the one as the primary setting.
> 4. When there is only one SIM, under airplane mode, device will dial out EC
> via the SIM, right?
Similar to 3.
| Reporter | ||
Comment 5•12 years ago
|
||
So, this bug is filed due to hardware-dependent behaviours as below:
1) Radio control
a) fugu dsds: radio of a service/slot could be on only when 1) there's a SIM card inserted 2) the service/slot is the hardware default one (in fugu, it's always the 1st one) and both services/slots have no cards
b) qc devices: no special restriction
2) Airplane mode
a) fugu dsds: even in airplane mode, we can still detect SIM cards if there are any
b) qc devuces: in airplane mode, the cardstate from modem is null. We cannot really tell if there's a card or not.
To abstract the differences among hardware and to make sure at any time an emergency call can be dialed out, comment 2 is a proposal (Proposal#1).
Proposal#2 - dialer doesn't address such cases but SIM manager does. SIM manager always sets 'primary outgoing call' to 1st slot when mobileconnections[0].iccId == null and mobileconnections[1].iccId == null. However as case3 in comment 4, iccId==null doesn't necessarily mean there's no card inserted (at least on qc device). If SIM manager changes the primary setting, user could be surprised once she turns off the airplane mode.
Proposal#3 - make our gaia code hardware-conscious.
I am in favor of #1 because the code could be hardware-dependent and we don't surprise user by automatically changing the primary settings.
CC aknow, Arthur and EJ, who have discussed this as well
Updated•12 years ago
|
blocking-b2g: 1.3? → 1.3+
| Assignee | ||
Comment 6•12 years ago
|
||
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #5)
> I am in favor of #1 because the code could be hardware-dependent and we
> don't surprise user by automatically changing the primary settings.
+1 (and we probably want to update the component of this bug)
Updated•12 years ago
|
Whiteboard: [FT:RIL]
| Reporter | ||
Comment 7•12 years ago
|
||
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #5)
> So, this bug is filed due to hardware-dependent behaviours as below:
> 1) Radio control
> a) fugu dsds: radio of a service/slot could be on only when 1) there's a SIM
> card inserted 2) the service/slot is the hardware default one (in fugu, it's
> always the 1st one) and both services/slots have no cards
> b) qc devices: no special restriction
>
> 2) Airplane mode
> a) fugu dsds: even in airplane mode, we can still detect SIM cards if there
> are any
> b) qc devuces: in airplane mode, the cardstate from modem is null. We cannot
> really tell if there's a card or not.
>
> To abstract the differences among hardware and to make sure at any time an
> emergency call can be dialed out, comment 2 is a proposal (Proposal#1).
>
> Proposal#2 - dialer doesn't address such cases but SIM manager does. SIM
> manager always sets 'primary outgoing call' to 1st slot when
> mobileconnections[0].iccId == null and mobileconnections[1].iccId == null.
> However as case3 in comment 4, iccId==null doesn't necessarily mean there's
> no card inserted (at least on qc device). If SIM manager changes the primary
> setting, user could be surprised once she turns off the airplane mode.
>
> Proposal#3 - make our gaia code hardware-conscious.
>
> I am in favor of #1 because the code could be hardware-dependent and we
^^^^^^^^^^^^^^^^^^^ Ha, definitely a typo. Should be "hardware-indenpendent" !
> don't surprise user by automatically changing the primary settings.
>
> CC aknow, Arthur and EJ, who have discussed this as well
Comment 8•12 years ago
|
||
hsinyi, it looks like you are the best assginee for this bug. Assign to you for now, please feel free to reassign as needed. thanks
Assignee: nobody → htsai
| Reporter | ||
Comment 9•12 years ago
|
||
(In reply to Joe Cheng [:jcheng] from comment #8)
> hsinyi, it looks like you are the best assginee for this bug. Assign to you
> for now, please feel free to reassign as needed. thanks
I thought the fix should be on gaia/dialer. I'd like to ask for Comms gaia developers' help :)
Assignee: htsai → nobody
| Reporter | ||
Updated•12 years ago
|
Flags: needinfo?(jcheng)
Comment 10•12 years ago
|
||
Looks like this bug also blocks bug 946593 which is also a 1.3+ bug. Can we try to find an owner for this bug? Thank you.
Comment 11•12 years ago
|
||
etienne, will you be able to look into this? Thanks
Flags: needinfo?(jcheng) → needinfo?(etienne)
| Assignee | ||
Updated•12 years ago
|
Assignee: nobody → etienne
Flags: needinfo?(etienne)
| Assignee | ||
Comment 12•12 years ago
|
||
Here's a patch.
Hsin-Yi just want to double check that this is the changed needed :)
Attachment #8363589 -
Flags: review?(anthony)
Attachment #8363589 -
Flags: feedback?(htsai)
Updated•12 years ago
|
Target Milestone: --- → 1.3 C3/1.4 S3(31jan)
Updated•12 years ago
|
Attachment #8363589 -
Flags: review?(anthony) → review+
| Reporter | ||
Comment 13•12 years ago
|
||
Comment on attachment 8363589 [details] [review]
Pointer to gaia PR
Think about one case:
slot 1 is empty and slot 2 has a card with pin locked. Now, if SIM manager works well, the defaultServiceId is set to 1 (i.e. slot 2). In this case, for slot 2, conn.voice.emergencyOnly will be true. However, since there's a card on slot 2 (conn.iccId !== null), we should keep using 'defaultServiceId' to make a call out.
f- for this.
Attachment #8363589 -
Flags: feedback?(htsai) → feedback-
| Reporter | ||
Comment 14•12 years ago
|
||
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #13)
> Comment on attachment 8363589 [details] [review]
> Pointer to gaia PR
>
> Think about one case:
> slot 1 is empty and slot 2 has a card with pin locked. Now, if SIM manager
> works well, the defaultServiceId is set to 1 (i.e. slot 2). In this case,
> for slot 2, conn.voice.emergencyOnly will be true. However, since there's a
> card on slot 2 (conn.iccId !== null), we should keep using
> 'defaultServiceId' to make a call out.
>
> f- for this.
I think the logic would be:
var conn = mozMobileConnections[defautId];
var hasCard = conn.iccId !== null;
var emergencyOnly = conn.voice.emergencyOnly;
if (emergencyOnly && !hasCard) {
telephony.dial(number, 0);
}
| Assignee | ||
Comment 15•12 years ago
|
||
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #14)
> (In reply to Hsin-Yi Tsai [:hsinyi] from comment #13)
> > Comment on attachment 8363589 [details] [review]
> > Pointer to gaia PR
> >
> > Think about one case:
> > slot 1 is empty and slot 2 has a card with pin locked. Now, if SIM manager
> > works well, the defaultServiceId is set to 1 (i.e. slot 2). In this case,
> > for slot 2, conn.voice.emergencyOnly will be true. However, since there's a
> > card on slot 2 (conn.iccId !== null), we should keep using
> > 'defaultServiceId' to make a call out.
> >
> > f- for this.
>
> I think the logic would be:
>
> var conn = mozMobileConnections[defautId];
> var hasCard = conn.iccId !== null;
> var emergencyOnly = conn.voice.emergencyOnly;
>
> if (emergencyOnly && !hasCard) {
> telephony.dial(number, 0);
> }
Thanks a lot! I get it now :)
Will update the patch today.
| Assignee | ||
Comment 16•12 years ago
|
||
Comment on attachment 8363589 [details] [review]
Pointer to gaia PR
v2
Attachment #8363589 -
Flags: review?(anthony)
Attachment #8363589 -
Flags: review+
Attachment #8363589 -
Flags: feedback?(htsai)
Attachment #8363589 -
Flags: feedback-
| Reporter | ||
Comment 17•12 years ago
|
||
Comment on attachment 8363589 [details] [review]
Pointer to gaia PR
Looks great! :)
Attachment #8363589 -
Flags: feedback?(htsai) → feedback+
Comment 18•12 years ago
|
||
Comment on attachment 8363589 [details] [review]
Pointer to gaia PR
Can you change the commit message before merging? It doesn't represent what we do now.
Attachment #8363589 -
Flags: review?(anthony) → review+
| Assignee | ||
Comment 19•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Comment 20•12 years ago
|
||
Uplifted 1720aab5d5697e9c77029f15cff6ae343809c228 to:
v1.3: 1318d1612299ba5d86820bbb6a65ae090f3b2fd6
status-b2g-v1.3:
--- → fixed
You need to log in
before you can comment on or make changes to this bug.
Description
•