Closed
Bug 805708
Opened 12 years ago
Closed 12 years ago
[b2g-bluetooth] Cannot answer a waiting call during a phone call when press the headset
Categories
(Core :: DOM: Device Interfaces, defect)
Tracking
()
People
(Reporter: gyeh, Assigned: gyeh)
References
Details
(Whiteboard: [LOE: S])
Attachments
(1 file, 3 obsolete files)
(deleted),
patch
|
Details | Diff | Splinter Review |
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•12 years ago
|
||
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•12 years ago
|
||
fix typo
Attachment #675450 -
Attachment is obsolete: true
Attachment #675450 -
Flags: review?(kyle)
Attachment #675452 -
Flags: review?(kyle)
Comment 3•12 years ago
|
||
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•12 years ago
|
||
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•12 years ago
|
||
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•12 years ago
|
||
try server somehow failed and closed a few hours ago.
Re-submit: https://tbpl.mozilla.org/?tree=Try&rev=b9a1b36cc217
Comment 7•12 years ago
|
||
Comment 8•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla19
Comment 9•12 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•