[b2g-bluetooth] Cannot answer a waiting call during a phone call when press the headset

RESOLVED FIXED in Firefox 18

Status

()

Core
DOM: Device Interfaces
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: gyeh, Assigned: gyeh)

Tracking

unspecified
mozilla19
ARM
Gonk (Firefox OS)
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite -

Firefox Tracking Flags

(blocking-basecamp:+, firefox18 fixed, firefox19 fixed)

Details

(Whiteboard: [LOE: S])

Attachments

(1 attachment, 3 obsolete attachments)

(Assignee)

Description

5 years ago
Repro:
- Connect with a bluetooth headset
- During a phone call, make an incoming call or outgoing call

Expected Behaviour:
- Answer the incoming call and make current call on hold
- Or Hang up current call and answer the incoming call
(depends on the command send from bluetooth headset)

Actual Behaviour:
- No response
(Assignee)

Comment 1

5 years ago
Created attachment 675450 [details] [diff] [review]
Patch 1(v1): Handle three-way calling

Keep call status for each call object in BluetoothHfpManager.

Some bluetooth headsets support three-way calling feature, and it will send command like "AT+CHLD=1" to our phone. 

The meanings of each value explained as following: 
- 1: hang up the active phone call if any and answer the waiting/held call
- 2: make the current call on hold and answer the waiting call

When we get this kind of command from bluetooth headset, we'll send system message to Dialer (as we did in Bug 794005), and the command would be "CHUP+ATA"
and "CHLD+ATA" for value 1 and 2 respectively.
Attachment #675450 - Flags: review?(kyle)
(Assignee)

Comment 2

5 years ago
Created attachment 675452 [details] [diff] [review]
Patch 1(v1): Handle three-way calling

fix typo
Attachment #675450 - Attachment is obsolete: true
Attachment #675450 - Flags: review?(kyle)
Attachment #675452 - Flags: review?(kyle)
Blocks: 805762
Comment on attachment 675452 [details] [diff] [review]
Patch 1(v1): Handle three-way calling

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

r=me with fixes

::: dom/bluetooth/BluetoothHfpManager.cpp
@@ +750,2 @@
>  
> +        if (NS_FAILED(sHfpCommandThread->Dispatch(sendRingTask, NS_DISPATCH_NORMAL))) {

There's no command thread anymore, so you'll need to update this.

@@ +824,5 @@
>              break;
>          }
> +
> +        if (aCallIndex == mCurrentCallIndex) {
> +          mCurrentCallStateArray[aCallIndex] = aCallState;

We should probably make sure we're in the array bounds here, since we're having to manage the state ourselves.
Attachment #675452 - Flags: review?(kyle) → review+
(Assignee)

Comment 4

5 years ago
Created attachment 676449 [details] [diff] [review]
Patch 1: Handle three-way calling, r=qdot

with Nit picked.

try server:
https://tbpl.mozilla.org/?tree=Try&rev=cca55f73800f
https://tbpl.mozilla.org/?tree=Try&rev=dd0e594bff33
Attachment #675452 - Attachment is obsolete: true
(Assignee)

Comment 5

5 years ago
Created attachment 676457 [details] [diff] [review]
Patch 1: Handle three-way calling, r=qdot

Fix typo.

sCINDItems[CINDType::CALLHELD].value = CallSetupState::NO_CALLHELD;
=> sCINDItems[CINDType::CALLHELD].value = CallHeldState::NO_CALLHELD;

try server:
https://tbpl.mozilla.org/?tree=Try&rev=bde0a64a5d94
https://tbpl.mozilla.org/?tree=Try&rev=45e1ade16c35
Attachment #676449 - Attachment is obsolete: true
(Assignee)

Comment 6

5 years ago
try server somehow failed and closed a few hours ago.

Re-submit: https://tbpl.mozilla.org/?tree=Try&rev=b9a1b36cc217
https://hg.mozilla.org/integration/mozilla-inbound/rev/f6ced9fd4fc5

Comment 8

5 years ago
https://hg.mozilla.org/mozilla-central/rev/f6ced9fd4fc5
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla19
https://hg.mozilla.org/releases/mozilla-aurora/rev/451b59edba14
status-firefox18: --- → fixed
status-firefox19: --- → fixed
Flags: in-testsuite-
You need to log in before you can comment on or make changes to this bug.