Closed Bug 1014903 Opened 10 years ago Closed 10 years ago

[B2G][Open_C] When the 3rd person in a group call ends the call, the remaining devices transmit no sound

Categories

(Firefox OS Graveyard :: RIL, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

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

RESOLVED FIXED
2.0 S4 (20june)
blocking-b2g 1.4+
Tracking Status
firefox31 --- wontfix
firefox32 --- fixed
firefox33 --- fixed
b2g-v1.4 --- fixed
b2g-v2.0 --- verified
b2g-v2.1 --- verified

People

(Reporter: jschmitt, Assigned: aknow)

Details

(Keywords: regression)

Attachments

(6 files, 5 obsolete files)

282.68 KB, text/plain
Details
12.43 KB, patch
aknow
: review+
Details | Diff | Splinter Review
7.96 KB, patch
aknow
: review+
Details | Diff | Splinter Review
13.42 KB, patch
aknow
: review+
Details | Diff | Splinter Review
7.90 KB, patch
aknow
: review+
Details | Diff | Splinter Review
4.61 MB, video/mp4
Details
Attached file log.txt
Description:
After the 3rd person ends the call while in a group call, no sound can be heard from the original phone call between device 1 and device 2.

Repro Steps:
1) Update a Open_C to BuildID: 20140522000200
2) With the DUT call device 2
3) With DUT call device 3 
4) Merge the calls together to make a Group call
5) Have device 3 end the call

Actual:
Device 1 and Device 2 cannot hear sounds from each other after the 3rd person leaves.

Expected:
Device 1 and Device 2 can hear sound after the 3rd person leaves.

1.4 Environmental Variables:
Device: Open_C 1.4
BuildID: 20140522000200
Gaia: 233dd43b3b976e66a619dbc1b4044ed1e3ca3e34
Gecko: c3c0c57daef8
Version: 30.0
Firmware Version: P821A10V1.0.0B06_LOG_DL

Notes:
Repro frequency: 100%
See attached: logcat
Tested on 1.4 Buri and 1.3 Buri, issue does NOT repro.

1.4 Environmental Variables:
Device: Buri 1.4 MOZ
BuildID: 20140522000200
Gaia: 233dd43b3b976e66a619dbc1b4044ed1e3ca3e34
Gecko: c3c0c57daef8
Version: 30.0
Firmware Version: v1.2-device.cfg
Adding qawanted to test on Open_C Base.
Keywords: qawanted
QA Contact: lmauritson
This does NOT reproduce when using the Open_C 1.3 base build as the DUT.

Firmware Version: P821A10V1.0.0B06_LOG_DL
Keywords: qawanted
This sounds quite bad. Definitely something that would block certification.
blocking-b2g: --- → 1.4?
blocking-b2g: 1.4? → 1.4+
The issue occurs on the earliest build I have access to.

Device: Open_C
Build ID: 20140417000006
Gaia: 7591e9dc782ac2e97d63a96f9deb71c7b3588328
Gecko: e71ed4135461
Version: 31.0a1  
Firmware Version: P821A10V1.0.0B06_LOG_DL

Other devices: iPhone 4S and Open_C 1.4
Not sure if this is on dialer app.
Also according to comment1, it doesn't happen on Buri either 1.3 or 1.4.
Flags: needinfo?(anthony)
If it does not reproduce on Buri then it's probably a RIL or Vendcom issue.

Szu-Yu: Can you take a look?
Component: Gaia::Dialer → RIL
Flags: needinfo?(anthony) → needinfo?(szchen)
Sure, I will check it. It could be reproduced on Flame.
Flags: needinfo?(szchen)
Assignee: nobody → szchen
Bug reason:
In telephonyService, we get callStateChange first than conferenceCallStateChange. Then we turn off the audio because the conference is disconnected. However at that time, we still have an active normal call.

The patch aim to handle the audio state change properly.
Attachment #8435516 - Flags: review?(htsai)
The previous patch doesn't solve the problem correctly.
Attachment #8435516 - Attachment is obsolete: true
Attachment #8435516 - Flags: review?(htsai)
Attachment #8436788 - Flags: review?(htsai)
Comment on attachment 8436788 [details] [diff] [review]
Handle audio state change properly

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

Looks great, thank you.

::: dom/telephony/gonk/TelephonyService.js
@@ +220,2 @@
>  
> +    if (incoming && this._numActiveCall === 0) {

nit: s/this._numActiveCall === 0/!this._numActiveCall/

@@ +227,5 @@
> +      this._updateCallAudioState(AUDIO_STATE_NO_CALL);
> +    }
> +  },
> +
> +  _updateCallAudioState: function(audioState) {

s/audioState/aAudioState/
Attachment #8436788 - Flags: review?(htsai) → review+
I'm concerned that this patch has no new tests :(
(In reply to Anthony Ricaud (:rik) from comment #13)
> I'm concerned that this patch has no new tests :(

Thanks for the comment, rik.

Actually, the emulator cannot detect this issue because it is triggered due to different modem behaviour. However, we can still enhance the test [1] to make sure it works fine on emulator.

[1] http://dxr.mozilla.org/mozilla-central/source/dom/telephony/test/marionette/test_audiomanager_phonestate.js?from=test_audiomanager_phonestate.js&case=true#
Anthony,
Thank you for the suggestion. I understood your concern. However, even we could enhance that test, we still cannot simulate the same behavior unless we make some change in the emulator...
I prefer to land the patch first. Then we could think about how to handle this kind of test requirement.
Attached patch Part 2: Get active call by query (obsolete) — Splinter Review
Attachment #8438996 - Flags: review?(htsai)
Hsinyi,

Please help me review the v1.4 version of the patch. We should be careful of some differences between central and v1.4.
- 1. placeholder callIndex
- 2. isActive is not yet removed
Attachment #8439055 - Flags: review?(htsai)
Attachment #8436829 - Attachment description: [final] Handle audio state change properly. r=hsinyi → [final] Part 1: Handle audio state change properly. r=hsinyi
Comment on attachment 8438996 [details] [diff] [review]
Part 2: Get active call by query

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

::: dom/telephony/Telephony.cpp
@@ +210,1 @@
>        aCallState == nsITelephonyService::CALL_STATE_CONNECTED;

Also CALL_STATE_DISCONNECTING?
Attachment #8438996 - Flags: review?(htsai) → review+
This was merged to m-c.
https://hg.mozilla.org/mozilla-central/rev/ed6bd9e51cc7
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → 2.0 S4 (20june)
https://hg.mozilla.org/releases/mozilla-aurora/rev/6e0f4138959e

Though I guess this really isn't fixed yet due to Part 2 not landing anywhere?
Attachment #8438996 - Attachment is obsolete: true
Attachment #8439654 - Flags: review+
Comment on attachment 8439055 [details] [diff] [review]
(1.4) Handle audio state change properly

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

Looks good! I am still waiting for part 2 for v1.4 :)
Attachment #8439055 - Flags: review?(htsai) → review+
Attachment #8439702 - Flags: review?(htsai)
Comment on attachment 8439702 [details] [diff] [review]
(1.4) Part 2: Get active call by query

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

Looks good!
Attachment #8439702 - Flags: review?(htsai) → review+
Attachment #8439702 - Attachment is obsolete: true
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
https://hg.mozilla.org/mozilla-central/rev/f6669e8d7891
Status: REOPENED → RESOLVED
Closed: 10 years ago10 years ago
Resolution: --- → FIXED
This issue has been verified successfully on Flame2.0&2.1.

Reproducing rate: 0/5
See attachment: Verify_Flame_Callsound.mp4

Flame 2.0 build version:
Gaia-Rev        8d1e868864c8a8f1e037685f0656d1da70d08c06
Gecko-Rev       https://hg.mozilla.org/releases/mozilla-b2g32_v2_0/rev/c756bd8bf3c3
Build-ID        20141127000203
Version         32.0

Flame2.1 build version:
Gaia-Rev        5372b675e018b6aac97d95ff5db8d4bd16addb9b
Gecko-Rev       https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/rev/f34377ae402b
Build-ID        20141127001201
Version         34.0
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: