wireless audio: how to mute microphone / stack source by default?

From: Tomek CEDRO <tomek_at_cedro.info>
Date: Wed, 06 Aug 2025 20:12:39 UTC
Hello world :-)

Posting to three groups because I have good news about bluetooth audio
card and headset. After years and tens of devices of trial and error I
found reliable two way wireless audio communication (speaker +
microphone) solution. There is only one issue mentioned below :-P

1. USB-Audio-Card: Jabra Link 370 or 380 card shows up as standard
pcm/dsp device with both input and output functionality. Works
flawlessly, no disruptions glitches etc. Coverage is great if you put
it up under the ceriling (long 15m usb cable works fine). It is
available with USB-A or USB-C connector factor, so you may need
additional small USB-A-to-microUSB/USB-C adapter board (~$1.5).
Unfortunately to pair the card with headset windoze/mac application is
required. I have requested Jabra to add configuration of these dongles
to their mobile applications (most phones how have USB-OTG/Host
functionality, also in Android this dongle shows up as additional
audio card with no problem). I found two open-source applications for
Linux but these does not really work on FreeBSD (i.e. just for pairing
dongle with headset).

2. Jabra Evolve 75E (second hand ~$75 with dongle, 14h work time,
theoretical ANC) or even better Jabra Evolve2 65 (second hand ~$125,
no ANC but 37h work time) are awesome comfortable well designed and
implemented headsets. These can connect to both PC and Mobile at the
same time with priority to mobile incoming call even when PC audio
playing. Microphone is perfect and moving it down can auto answer call
+ unmute mic, moving mic up sets it to mute. I am testing both but due
long working sessions I will stay with Evolve2 65.

All usb-bluetooth-audio cards before had some issues, for instance non
standard microphone implementation making mic unusable (i.e. various
CSR chip based devices + generic headset). I tested Creative BT-W6
(~$75) as the newest model with theoretically all possible codecs
support, auracast, bluetooth low energy audio, etc, but it does not
work reliably, there are glitches at short range an broken
connection/audio after short time, also microphone switch is a
disaster (either auto or manual, at least there is one button+led with
473829432 different functions, this is missing in jabra link),
official support did not care to provide firmware updates or interest
in open-source platforms.

Native bluetooth audio stack HCE + VirtualOSS does not work reliably
too, very bad delays, short coverage, no support for microphone codec
on almost all modern bt headsets.

Its not advertising I just found something that was designed with
brain and "just works" as supposed (rarity nowadays). Most of us work
remotely so this is really life saving tool. Their usb dongles and
headsets have long history of firmware updates with various fixes,
their main target audience seems corpo and callcenters. Finally I can
focus on work and recommend something that works :-)


There is one (architectural) issue. All headsets (and hosts) use
Bluetooth Hands-Free Profile (HFP) for spkr+mic for audio calls, and
A2DP for high quality audio streaming (various codecs possible with
SBC as default). These cannot be used at the same time. Either HFP or
A2DP is in use. Depending on the bluetooth-audio card/stack
configuration the HFP profile is usually automatically selected when
microphone gets active (i.e. source is opened by application on the
host). Computer audio is still being played but with dramatically
lowered quality as compared to microphone free A2DP profile. For so
long no one noticed that HFP has low quality audio compared to
standard nowadays HD quality and there is no updated standard so far.
There is no hybrid either with high quality audio sink and possibly
lower quality microphone audio source leveraging both profiles
advantages, device can only have one single profile active at time :-(

On FreeBSD most of the time I have this low quality HFP audio, even if
microphone is not used, even if microphone is muted both on headset
and PC. On windoze and mac I have A2DP high quality audio unless some
application opens a microphone then A2DP is deactiated and HFP is
selected until mic gets inactive.

My question is whether is it possible to tune the audio stack to
disable microphone by default unless it is opened by some application?
This way this jabra link card could know to use A2DP high quality
audio by default and it will switch to HFP only when microphone gets
active (as on other OS).

I have played with various hw.snd and dev.pcm sysctls with no effect.
I am using Enlightenment with PulseAudio so maybe this is the mic
source user, but muting microphone here also does not help.

Another idea is to ask Jabra to update firmware in a way that when
headset is muted then it uses A2DP by default and switches to HFP
whenever headset mic is unmuted. That would be the simplest solution
:-P

Sorry again for cross posting but I finally found something that works
reliably and someone may need that too. We just need to figure out how
to fix that mic / A2DP / HFP issue :-)

Any hints welcome :-)
Tomek

-- 
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info