Closed Bug 944589 Opened 6 years ago Closed 6 years ago

[Voice Channel][Dialer][Airplane Mode] If you switch to airplane mode when talking, voice channel will not recover

Categories

(Firefox OS Graveyard :: RIL, defect)

ARM
Gonk (Firefox OS)
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: wachen, Assigned: hsinyi)

Details

Attachments

(1 file, 1 obsolete file)

Most up-to-date PVT build on 11/28/2013
with v1.2 base & MozRIL
failed on daily smoke test
Gaia:     0d57ec2801ae125ec855a19cf956ab118660d694
Gecko:    http://hg.mozilla.org/mozilla-central/rev/a5e7f611546f
BuildID   20131128040201
Version   28.0a1
ro.build.version.incremental=eng.archermind.20131114.105818

STR:
1. Call from another phone to FXOS phone
2. accept the phone call from FXOS phone
3. long press on power button and switch to airplane mode

Expected Result:
Phone got hung up and recovered back to normal voice channel.

Actual Result:
Phone got hung up correctly.
However, the voice channel is still not recover.
For example, you can play the music from music app and you can't hear it from the phone speaker.
This sounds like an audio channels bug. Can someone check if this reproduces on 1.1 & 1.2?
Component: Gaia::Dialer → AudioChannel
Keywords: qawanted
Hi,

After doing a quick investigation, I found that the call state change received by AudioManager is

  1. call from another phone
    -> AudioManager got PHONE_STATE_RINGTONE
  2. accept the phone call
     -> AudioManager got PHONE_STATE_IN_CALL
  3. 3. long press on power button and switch to airplane mode
     -> AudioManager got not thing but expect a PHONE_STATE_NORMAL.

So we need RIL friends to check it.

Hi Hsinyi,

Could you help to check this? Thanks.
Flags: needinfo?(htsai)
Sure, I will get back to you once I've seen more clues.
Flags: needinfo?(htsai)
Attached patch 944589.patch (obsolete) — Splinter Review
Currently if a call is released unexpectedly, in TelephonyProvider.js the code path would be 'notifyCallError' instead of normal 'handleCallDisconnected' that leads a miss of updating call audio state.

No matter what the call fail cause is, we'd make sure we handle that disconnected call well, and send out error notification when necessary.
Component: AudioChannel → RIL
Comment on attachment 8340893 [details] [diff] [review]
944589.patch

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

This patch makes sure that even a call is released unexpectedly, call audio state is updated correctly.
Please see comment #4 for details. Thank you.
Attachment #8340893 - Flags: review?(vyang)
Attachment #8340893 - Flags: review?(vyang) → review+
Attached patch 944589-v2.patchSplinter Review
Revision:
Should not call 'getFailCauseCode' when REQUEST_DIAL fails since the call isn't established yet.

Vicamo:
May I have your review again? Thanks.
Attachment #8340893 - Attachment is obsolete: true
Attachment #8341002 - Flags: review?(vyang)
QA Contact: sarsenyev
The issue reproduces on the 1.2 & 1.1 builds
Voice channel is not recovered after switching to "Airplane" mode during a phone call

Device: Buri 1.2 MOZ RIL build
BuildID: 20131202004001
Gaia: 075e60c878b0eca68fba9e00bc85cb6eac03578a
Gecko: 14868788d50e
Version: 26.0
Firmware version: V1.2_US_20131115

Device: Leo 1.1 MOZ RIL build
BuildID: 20131127041203
Gaia: 19c9ff3a46a4389e40253c97b359763243af4531
Gecko: 617eb9d9bcc2
Version: 18.0
Keywords: qawanted
Comment on attachment 8341002 [details] [diff] [review]
944589-v2.patch

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

Compared to AOSP call handling flows, the |CommandsInterface.getLastCallFailCause()| is only called once in |GsmCallTracker.handlePollCalls()|.  Sounds like we need a follow-up for that.
Attachment #8341002 - Flags: review?(vyang) → review+
Assignee: nobody → htsai
(In reply to Vicamo Yang [:vicamo][:vyang] from comment #8)
> Comment on attachment 8341002 [details] [diff] [review]
> 944589-v2.patch
> 
> Review of attachment 8341002 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Compared to AOSP call handling flows, the
> |CommandsInterface.getLastCallFailCause()| is only called once in
> |GsmCallTracker.handlePollCalls()|.  Sounds like we need a follow-up for
> that.

Thanks for the review! Will file another bug per your comment.
(In reply to Hsin-Yi Tsai  [:hsinyi] from comment #9)
> (In reply to Vicamo Yang [:vicamo][:vyang] from comment #8)
> > Comment on attachment 8341002 [details] [diff] [review]
> > 944589-v2.patch
> > 
> > Review of attachment 8341002 [details] [diff] [review]:
> > -----------------------------------------------------------------
> > 
> > Compared to AOSP call handling flows, the
> > |CommandsInterface.getLastCallFailCause()| is only called once in
> > |GsmCallTracker.handlePollCalls()|.  Sounds like we need a follow-up for
> > that.
> 
> Thanks for the review! Will file another bug per your comment.

Bug 946566 filed.
https://hg.mozilla.org/mozilla-central/rev/bf43134b8395
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.