want phone to see both handsfree and media audio profiles

What does it take to get linux/bluez to advertise *both* handsfree and a2dp profiles? I’ve been able to pair my phone, but all it sees is the “media audio” profile.

Hi Adam,

Thanks for posting. Unfortunately, the HSP/HFP profiles are no longer supported in Bluez 5.x, and it is supposed to be supported elsewhere. But this has not been implemented well. From the Bluez 5.0 release notes (http://www.bluez.org/release-of-bluez…):

Remove internal support for telephony (HFP and HSP) profiles. They should be implemented using the new Profile interface preferably by the telephony subsystem of choice (e.g. oFono which already supports this)

Unfortunately, support for oFono is distro dependent and not at all consistent.

I’ve been doing some research on this and will be releasing a blog post about it on our website to.

I hope this helps.

Plugable Support

OK. I didn’t read the amazon page carefully enough. I really need this feature, but not today, more like within 3-4 months. I’m actually using an odroid C2. I can run ubuntu, archlinux… I’m going to see about gentoo as that’ll let me compile any packages I want through their build system with any features (use flags) I want.

Maybe I should see about going back to bluez 4.x? Gentoo has 4.101 available.

Hi Adam,

I apologize for the delay in answering. I’ve been on vacation.

Going back to Bluez 4.x would theoretically solve the problem, but there might be other unmet dependencies.


I was able to get my phone to see both HFP and A2DP profiles by using ofono. I don’t have HFP audio working yet and it really ought to pop up a handset keyboard for answer/hangup at the minimum.

I have also been unable to get HFP audio to work reliably with bluez5, pulseaudio 7+, and ofono.

Is there more detailed information for how to set this up with bluez4? Even if such information is distribution dependent, that would be really helpful.

Hi Adam,

Would it be possible to say how you were able to get the HFP profile working with ofono? It would be very helpful.


I don’t think anybody on the planet has gotten it working yet. It’s been too long since I last tried. I had a2dp and hfp profiles available, but the hfp protocol was useless. I think there needs to be a phone emulator up and running to supply a UI for things like accept/reject call, the keypad, etc. and perhaps that emulator might be able to carry sound out to pulseaudio.

What’s interesting, is that by all accounts the upper layers of the stack are being set up correctly. Ofono recognizes the HFP capabilities of a device after it is connected, and while in a call, pulseaudio is notified, and loads the correct loopback modules that would theoretically allow the audio to be routed appropriately (PC mic as source -> HFP modem out as sink, HFP modem in as source -> PC audio card as sink). Indeed, after hacking in some debug tracing to pulseaudio, the module-bluez5-device driver actually is receiving SCO packets from the phone. The interesting thing though is that, if you take a look at the SCO packets with hcidump, they either only contain series’ of 0x0001 or 0x0000. I’m suspicious that it is something at the kernel level that is preventing the SCO packet payloads from being streamed correctly.

This is the specific versions that I tested, though, I have seen this behavior with other versions of bluez5 + 4.6 kernel as well.

Kernel: 4.6.4
Bluez: 5.9
Ofono: 1.18
Pulesaudio: 9