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)

x86_64
Linux
defect
Not set
normal

Tracking

(blocking-b2g:1.3+, b2g-v1.3 fixed)

RESOLVED FIXED
1.3 C3/1.4 S3(31jan)
blocking-b2g 1.3+
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.
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?
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?
(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.
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
blocking-b2g: 1.3? → 1.3+
(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)
Whiteboard: [FT:RIL]
Blocks: 946593
(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
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
(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
Flags: needinfo?(jcheng)
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.
etienne, will you be able to look into this? Thanks
Flags: needinfo?(jcheng) → needinfo?(etienne)
Assignee: nobody → etienne
Flags: needinfo?(etienne)
Attached file Pointer to gaia PR
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)
Target Milestone: --- → 1.3 C3/1.4 S3(31jan)
Attachment #8363589 - Flags: review?(anthony) → review+
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-
(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); }
(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.
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-
Comment on attachment 8363589 [details] [review] Pointer to gaia PR Looks great! :)
Attachment #8363589 - Flags: feedback?(htsai) → feedback+
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+
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Uplifted 1720aab5d5697e9c77029f15cff6ae343809c228 to: v1.3: 1318d1612299ba5d86820bbb6a65ae090f3b2fd6
Blocks: 967404
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: