[Dolphin][V1.4][Conference Call]Failed to complete conference call request.

RESOLVED FIXED in Firefox 32

Status

defect
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: sam.hua, Assigned: aknow)

Tracking

unspecified
2.0 S6 (18july)
x86_64
Linux
Bug Flags:
in-testsuite +
in-moztrap +

Firefox Tracking Flags

(blocking-b2g:1.4+, firefox31 wontfix, firefox32 fixed, firefox33 fixed, b2g-v1.4 fixed, b2g-v2.0 fixed, b2g-v2.1 fixed)

Details

(Whiteboard: [sprd327677], )

Attachments

(5 attachments, 3 obsolete attachments)

Steps:
1) Make a dedicated call from SIM1.
2) Now make MTC on Dolphin.
3) Pick the second call. 
3) Now Dolphin fail to merge call from MMI .

BuildID:
gecko: a149b5fda3d60b309cd1da8c4cf4b4c9905e384e
gaia : 76e669c6fa387f97bcaaaee5d179ee4a9dcca986
Posted file radio.log
Posted file main.log
Whiteboard: [sprd327677]
1. MTPY has been established
06-26 13:29:36.689   126   188 D use-Rlog/RLOG-AT: [w] Channel2: AT< +CLCC: 1,0,0,0,1,"+8801535479509",145
06-26 13:29:36.689   126   188 D use-Rlog/RLOG-AT: [w] Channel2: AT< +CLCC: 2,1,0,0,1,"+8801795949606",145
06-26 13:29:36.689   126   188 D use-Rlog/RLOG-AT: [w] Channel2: AT< OK
06-26 13:29:36.689   126   568 D use-Rlog/RLOG-RILC: [w] [2855]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=145,conf,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,ACTIVE,toa=145,conf,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}


2. The second mpty requset is reject
06-26 13:29:36.789   126   572 D use-Rlog/RLOG-AT: [w] Channel1: AT> AT+CHLD=3
06-26 13:29:36.809   126   188 D use-Rlog/RLOG-AT: [w] Channel1: AT< +CME ERROR: 3

3. MPTY is held by user
06-26 13:29:37.190   126   569 D use-Rlog/RLOG-RILC: [w] [2857]> SWITCH_WAITING_OR_HOLDING_AND_ACTIVE 
06-26 13:29:37.190   126   569 D use-Rlog/RLOG-RIL: [w] onRequest: SWITCH_WAITING_OR_HOLDING_AND_ACTIVE sState=4
06-26 13:29:37.190   126   569 D use-Rlog/RLOG-RIL: [w] channel1 state: '0' 
06-26 13:29:37.190   126   569 D use-Rlog/RLOG-RIL: [w] get Channel ID '1'
06-26 13:29:37.190   126   569 D use-Rlog/RLOG-AT: [w] Channel1: AT> AT+CHLD=2
06-26 13:29:37.850   126   188 D use-Rlog/RLOG-AT: [w] Channel0: AT< +ECIND: 0,1,1
06-26 13:29:37.850   126   188 D use-Rlog/RLOG-AT: [w] Channel1: AT< OK
06-26 13:29:37.850   126   569 D use-Rlog/RLOG-RILC: [w] [2857]< SWITCH_WAITING_OR_HOLDING_AND_ACTIVE
Please help to check:
1. RILC --> Gecko
06-26 13:29:36.679   126   188 D use-Rlog/RLOG-AT: [w] Channel1: AT< +CLCC: 1,0,0,0,1,"+8801535479509",145
06-26 13:29:36.679   126   188 D use-Rlog/RLOG-AT: [w] Channel1: AT< +CLCC: 2,1,0,0,1,"+8801795949606",145
06-26 13:29:36.679   126   188 D use-Rlog/RLOG-AT: [w] Channel1: AT< OK
06-26 13:29:36.679   126   569 D use-Rlog/RLOG-RILC: [w] [2854]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=145,conf,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,ACTIVE,toa=145,conf,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}

but: It isn't handled as conference call
06-26 13:29:36.699   111   478 I Gecko   : RIL Worker: [0] Solicited response for request type 9, token 2854, error 0
06-26 13:29:36.699   111   478 I Gecko   : RIL Worker: [0] Handling parcel as REQUEST_GET_CURRENT_CALLS
06-26 13:29:36.699   111   111 I Gecko   : -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"callStateChange","call":{"state":0,"callIndex":1,"toa":145,"isMpty":false,"isMT":false,"als":0,"isVoice":true,"isVoicePrivacy":false,"number":"+8801535479509","numberPresentation":0,"name":null,"namePresentation":0,"uusInfo":null,"isOutgoing":true,"isEmergency":false,"isConference":false,"started":1403767765243},"rilMessageClientId":0}
blocking-b2g: --- → 1.4?
13:29:33.156 : 1 Active + 1 Hole at , and user request CONFERENCE at .
13:29:35.218 : request 1st CONFERENCE
13:29:36.038 : request 2nd CONFERENCE

13:29:36.659 : 1st conference response back
13:29:36.669 : error for 2nd conference call request
13:29:36.679 : now rild know we have both active calls 

13:29:36.789 : 3rd conference call request
13:29:36.809 : error for 3rd conference calls request due to pre-condition not match. ()

13:29:37.890 : why change status to holding for both calls????


06-26 13:29:33.156   126   569 D use-Rlog/RLOG-RILC: [w] [2851]< GET_CURRENT_CALLS {[id=1,HOLDING,toa=145,norm,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,ACTIVE,toa=145,norm,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}

06-26 13:29:35.218   126   568 D use-Rlog/RLOG-RILC: [w] [2852]> CONFERENCE
...
06-26 13:29:36.038   126   572 D use-Rlog/RLOG-RILC: [w] [2853]> CONFERENCE

06-26 13:29:36.659   126   568 D use-Rlog/RLOG-RILC: [w] [2852]< CONFERENCE
06-26 13:29:36.669   126   568 D use-Rlog/RLOG-RILC: [w] [2855]> GET_CURRENT_CALLS
06-26 13:29:36.669   126   572 D use-Rlog/RLOG-RILC: [w] [2853]< CONFERENCE fails by E_GENERIC_FAILURE
06-26 13:29:36.679   126   569 D use-Rlog/RLOG-RILC: [w] [2854]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=145,conf,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,ACTIVE,toa=145,conf,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}
06-26 13:29:36.689   126   568 D use-Rlog/RLOG-RILC: [w] [2855]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=145,conf,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,ACTIVE,toa=145,conf,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}

...

06-26 13:29:36.789   126   572 D use-Rlog/RLOG-RILC: [w] [2856]> CONFERENCE
06-26 13:29:36.809   126   572 D use-Rlog/RLOG-RILC: [w] [2856]< CONFERENCE fails by E_GENERIC_FAILURE

06-26 13:29:37.890   126   568 D use-Rlog/RLOG-RILC: [w] [2858]< GET_CURRENT_CALLS {[id=1,HOLDING,toa=145,conf,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,HOLDING,toa=145,conf,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}
06-26 13:29:37.890   126   572 D use-Rlog/RLOG-RILC: [w] [2859]< GET_CURRENT_CALLS {[id=1,HOLDING,toa=145,conf,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,HOLDING,toa=145,conf,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}
For conference call request in a row case, it should be improvable, but not critical.

For the 3rd conference call request, modem return failure is acceptable, but call status change is weird to me.
Hi Hsinyi/Aknow:
 Could you please help check why RIL reports both call Active (and conference), but gecko handles it as not in conference call?



06-26 13:29:36.679   126   569 D use-Rlog/RLOG-RILC: [w] [2854]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=145,conf,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,ACTIVE,toa=145,conf,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}
06-26 13:29:36.689   126   568 D use-Rlog/RLOG-RILC: [w] [2855]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=145,conf,mo,als=0,voc,noevp,+8801535479509,cli=0,name='(null)',0][id=2,ACTIVE,toa=145,conf,mt,als=0,voc,noevp,+8801795949606,cli=0,name='(null)',0}

...

06-26 13:29:36.699   111   111 I Gecko   : -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"callStateChange","call":{"state":0,"callIndex":1,"toa":145,"isMpty":false,"isMT":false,"als":0,"isVoice":true,"isVoicePrivacy":false,"number":"+8801535479509","numberPresentation":0,"name":null,"namePresentation":0,"uusInfo":null,"isOutgoing":true,"isEmergency":false,"isConference":false,"started":1403767765243},"rilMessageClientId":0}
06-26 13:29:36.729   111   111 I Gecko   : -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"callStateChange","call":{"state":0,"callIndex":2,"toa":145,"isMpty":false,"isMT":true,"als":0,"isVoice":true,"isVoicePrivacy":false,"number":"+8801795949606","numberPresentation":0,"name":null,"namePresentation":0,"uusInfo":null,"isConference":false,"started":1403767773195},"rilMessageClientId":0}
06-26 13:29:36.779   111   111 I Gecko   : -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"callStateChange","call":{"state":0,"callIndex":1,"toa":145,"isMpty":false,"isMT":false,"als":0,"isVoice":true,"isVoicePrivacy":false,"number":"+8801535479509","numberPresentation":0,"name":null,"namePresentation":0,"uusInfo":null,"isOutgoing":true,"isEmergency":false,"isConference":false,"started":1403767765243},"rilMessageClientId":0}
06-26 13:29:36.779   111   111 I Gecko   : -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"callStateChange","call":{"state":0,"callIndex":2,"toa":145,"isMpty":false,"isMT":true,"als":0,"isVoice":true,"isVoicePrivacy":false,"number":"+8801795949606","numberPresentation":0,"name":null,"namePresentation":0,"uusInfo":null,"isConference":false,"started":1403767773195},"rilMessageClientId":0}
Flags: needinfo?(szchen)
Flags: needinfo?(htsai)
Attachment #8451553 - Attachment mime type: text/x-log → text/plain
Hi Pei-pei,

Does this happen on Flame?
Flags: needinfo?(pcheng)
I didn't reproduce this on both dolphin and flame. 

Sam, I tried FIREFOXOS_V1.4_W14.28.1_SP7715 dolphin build but cannot reproduce this. Are you sure your SIM card support conference call?
Flags: needinfo?(pcheng) → needinfo?(sam.hua)
Assignee: nobody → szchen
Flags: needinfo?(szchen)
gaia should send two conference request and then hold it.

so please click it quickly.

http://bugzilla.spreadtrum.com/bugzilla/show_bug.cgi?id=327677
Flags: needinfo?(sam.hua)
Flags: needinfo?(htsai)
Comment on attachment 8452850 [details] [diff] [review]
Part 1: Only accept one conference request at a time

Review of attachment 8452850 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/system/gonk/ril_worker.js
@@ +1864,5 @@
> +      // Only accept one conference request at a time..
> +      if (this._hasConferenceRequest) {
> +        options.success = false;
> +        options.errorName = "addError";
> +        options.errorMsg = RIL_ERROR_TO_GECKO_ERROR[options.rilRequestError];

options.rilRequestError undefined.
Attachment #8452850 - Flags: review?(htsai)
Comment on attachment 8452851 [details] [diff] [review]
Part 2: Add test to send conference request twice

Review of attachment 8452851 [details] [diff] [review]:
-----------------------------------------------------------------

Nice! Thank you.
Attachment #8452851 - Flags: review?(htsai) → review+
Attachment #8452850 - Attachment is obsolete: true
Attachment #8452942 - Flags: review?(htsai)
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #14)
> Comment on attachment 8452851 [details] [diff] [review]
> Part 2: Add test to send conference request twice
> 
> Review of attachment 8452851 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Nice! Thank you.

For part2, I have renamed the test case to "test_conference_add_twice_error.js". It is also added into manifest.
Comment on attachment 8452942 [details] [diff] [review]
Part 1#2: Only accept one conference request at a time

Review of attachment 8452942 [details] [diff] [review]:
-----------------------------------------------------------------

Thank you!
Attachment #8452942 - Flags: review?(htsai) → review+
blocking-b2g: 1.4? → 1.4+
bhavana,

this seems generic, might want to consider for 2.0 onwards.
Flags: needinfo?(bbajaj)
I think that we could only land part 1 on v1.4.
There is a big difference on testing code between master and 1.4. It's not easy to migrate the test case.
Attachment #8453613 - Flags: review+
https://hg.mozilla.org/integration/b2g-inbound/rev/81abb9a43f2c
https://hg.mozilla.org/integration/b2g-inbound/rev/48a8caaf166a

Please refrain from testing all platforms for code changes that are clearly B2G-only. Doing so needlessly consumes tremendous resources and contributes to ongoing backlog problems that affect all other developers.
https://wiki.mozilla.org/Sheriffing/How:To:Recommended_Try_Practices
Flags: in-testsuite+
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/81abb9a43f2c
https://hg.mozilla.org/mozilla-central/rev/48a8caaf166a
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 2.0 S6 (18july)
There is a valid testcase that covers this bug: https://moztrap.mozilla.org/manage/case/9054/
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Flags: in-moztrap?(dharris)
Flags: needinfo?(ktucker)
Flags: in-moztrap?(dharris)
Flags: in-moztrap+
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
You need to log in before you can comment on or make changes to this bug.