Mono + Mic instead of stereo sound for Bluetooth headphones on Ubuntu

I recently switched from Windows to Ubuntu. My headphones either support stereo sound or mono sound with the microphone. So, I cant have a stereo and a microphone on at the same time. In windows, I could choose mono+mic as default. But in Ubuntu headphones are set to stereo and if I set microphone to my headphones then headphones get disconnected.

It will be great if someone can suggest me a solution. I have to boot into Windows whenever I have an online session which I don't want to do.

  • Model of Bluetooth headset: boat Rockerz 510
  • Ubuntu version: 18.04

EDIT: After further digging, I found that when I switch audio mode from "A2DP mode" to "HSP/HFP" my headphones get disconnected.


Solution 1:

Short answer : There is no solution as long as you are using Linux and a Bluetooth headset.

Long answer: For music playback only A2DP is suitable, but it does not have an INPUT mode so use of the headset for VoiP isn't possible. The HSP/HFP mode uses the CVSD codec which is sampled at 8 kHz, same as used in telephony systems (so sounds like an old telephone, if at all).

A fix was introduced in pulseaudio 10 for automatic switching between A2DP and HSP/HFP profiles, based on detecting that some phone application wants to access the microphone or not. But this doesn't work for all headsets and applications.

You may read the long-running bug-report Bug #508522 : Add automatic switching to HSP/HFP from A2DP when a mic is needed, starting in 2010 (!), and whose status today is still "New" after having been closed and re-opened during its long history.

Such headsets are reported as working perfectly well in Windows and MacOS, so the problem is only with the Linux pulseaudio implementation of Bluetooth. You would need to use a USB headset to avoid the problem.

Solution 2:

There is a solution I have tested and which works on ubuntu 18 & 20: ofono It is not very convenient though so I still mostly use my android smartphone for video conferences with my BT headset, which is sad considering android is linux too...