[b2g-bluetooth] Audio not routed through bluetooth headset

VERIFIED FIXED

Status

Firefox OS
Gaia
P1
normal
VERIFIED FIXED
6 years ago
6 years ago

People

(Reporter: cjones, Assigned: gyeh)

Tracking

unspecified
ARM
Gonk (Firefox OS)
Dependency tree / graph

Firefox Tracking Flags

(blocking-basecamp:+)

Details

(Whiteboard: [caf:blocking])

Attachments

(1 attachment)

I was able to
 - pair with my headset
 - control device volume through the headset
 - on receiving a call, hear ring in headset

But during the call, I was unable to hear call audio.

Is there any way I can help debug more?
(Assigned to Gina based on Kyle's advice.)
blocking-basecamp: --- → ?
Duplicate of this bug: 800572
(Assignee)

Comment 3

6 years ago
I'll take a look at this.
(Assignee)

Comment 4

6 years ago
I tested with a bluetooth headset at hand and it works. We probably need more information about this to figure out the problem. Can anyone help us to provide the hcidump log? (adb shell hcidump dev0 --ascii) Thanks a lot.
Hi Gina,

After testing a build made from 89cb60a08159, I'm able to pair with my headset but can no longer control device volume or hear incoming calls ring in the headset.  Can you list the steps you're following to test the headset?

I can get a dump while running those steps.
(Assignee)

Comment 6

6 years ago
Hi cjones,

Please check the version of Gaia. The connection part should be fixed in bug 797281.

Here's the steps:
1. Enable bluetooth
2. Pair with a headset device, and you'll see the device shownin the list of "Paired Devices".
3. Choose the headset device and press "Connect".

After pressing 'Connect', it starts to connect with the headset, and we can adjust volume and hear incoming calls ring in the headset if the connection process is completed successfully. 

Please let me know and help to attach the hcidump log (adb shell hcidump dev0 --ascii) and audio route information (adb shell | grep AudioHardware) from step 2. I can find more details from them.

Thanks a lot.
Created attachment 670683 [details]
BT log

Here's a log of me
 - pairing with headset
 - trying to control volume (didn't work)
 - receiving a call (no ringing in headset)
Attachment #670683 - Attachment mime type: text/x-log → text/plain
Build made from gaia 2ab7bd25e21b7931b700731389ad433286a18945 / inbound 89cb60a08159.
(Assignee)

Comment 9

6 years ago
Hi cjones,

Thanks for your help.

After checking the log and tested with a headset device, we think the connection process is failed somehow. The reason is because we try to connect the headset immediately after pairing process, and we don't have the device service uuid at that time yet resulted in the failures of connection process.

I'll discuss with Gaia team to figure out an workaround. And here's also a reference for this issue: 
http://androidxref.com/4.1.1/xref/packages/apps/Phone/src/com/android/phone/BluetoothHeadsetService.java#830

One possible solution is to send the system message (of type bluetooth-pairedstatuschanged) to Gaia a bit later after pairing process.

For now, please press the headset device in "Paired Devices" list and choose "Connect" to connect with it manually. It should be able to successfully connect the headset, and then control volume and hear ringing in headset.
(In reply to Gina Yeh from comment #9)
> For now, please press the headset device in "Paired Devices" list and choose
> "Connect" to connect with it manually. It should be able to successfully
> connect the headset, and then control volume and hear ringing in headset.

OK, that worked!  And audio was routed to my headset when I called the phone.

One last issue: when I called my b2g phone, the ringtone played in my headset.  But when I pressed the button on the headset to connect the call, it didn't connect.  Answering the call using the gaia UI resulted in the audio being routed, though.  Is that expected?
blocking-basecamp: ? → +
(Assignee)

Comment 11

6 years ago
This should not be the expected behavior. When calling from our b2g phone, we should be able to hang up the phone call by pressing the button. When there's an incoming call, we can answer it by pressing the button. And for most bluetooth handsfree devices, double press can re-dial the last call number. 

When user press button on the headset, we'll send out a system message to Dialer based on current call status (implemented in Bug 794005), and here's the bug for UI part, bug 796224, which haven't completed yet. We should be able to answer/hang-up/re-dial the phone call via a bluetooth headset after it is revolved. :)
Excellent, thanks Gina.
(Assignee)

Comment 13

6 years ago
Had a discussion with Evelyn from Gaia team. After completing the pairing process with a headset, we'll try to connect with it after a few seconds. If it fails, user can still press the device item and connect with it manually.
(Assignee)

Comment 14

6 years ago
The implementation of Gaia side will be here:
https://bugzilla.mozilla.org/show_bug.cgi?id=797713

Close this bug after bug 797713 lands.
Depends on: 797713
Whiteboard: [caf:blocking]
(Assignee)

Comment 15

6 years ago
Workaround in Gaia, PR https://github.com/mozilla-b2g/gaia/pull/6047
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
Component: DOM: Device Interfaces → Gaia
Product: Core → Boot2Gecko

Updated

6 years ago
Priority: -- → P1

Comment 16

6 years ago
Verified fixed on Unagi build 20130103070201. Used a Motorola H730. Was able to hear the incoming ring in the headset. Was able to answer the call using the headset, and finally was able to control the audio volume using the headset. Call audio was fine.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.