Hi,
Any comments on this?
We have thought about how to fix it in client side, that is registering
HFP AG or HSP AG profile with `AutoConnect` disabled and let PipeWire to
initiate headset profile connection throw
`org.bluez.Device1.ConnectProfile(string uuid).
But for headset has no A2DP support, PipeWire is not possible to get
triggered with device connection event when other application is calling
`org.bluez.Device1.Connect()` if `AutoConnect` is disabled on HSP AG and
HFP AG profiles, so that PipeWire don't know when to initiate headset
profile connection.
Currently we disabled HSP AG by default on PipeWire to work around this
problem.
https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/425
Regards,
Bao.
On 1/23/21 10:14 PM, Huang-Huang Bao wrote:
Hi linux-bluetooth,
PipeWire recently got HFP AG support,
its native headset backend registers both HSP AG profile and HFP AG
profile with `AutoConnect` enabled by default.
Hence, BlueZ would trying to connect headset with both HSP and HFP.
Seems it causes some headsets stop to work with HFP/HSP profile.
Discussions on PipeWire:
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/604#note_773590
Frédéric Danis says:
>Currently it seems to me that there are at least 3 behaviours when
both native HSP and HFP are enabled, depending on the Headset/Speaker:
>
> with Sony WH-1000XM3, iiuc:
> HFP is tried first, starting SLC process
> then a connection to HSP is rejected by the headset which
stops to send AT commands on the HFP RFComm channel
> Audio is not working
> with Sony WH-CH710N:
> HFP is tried first, starting SLC process
> then a connection to HSP is rejected by the headset, but the
headset keeps on sending AT commands on the HFP RFComm channel
> Audio is working
> with JBL GO 2 speaker:
> HFP is tried first, starting SLC process on a RFComm channel
> then HSP is connected on a second RFComm channel and following
HFP AT commands are sent on this second channel
> Audio is not working (iirc)
Can it be fixed in BlueZ? For example, do not auto-connect HSP or HFP
profile if the other one has been connected. Maybe to add an extra
option "Conflicts" on "org.bluez.ProfileManager1.RegisterProfile()" to
indicate UUIDs which conflict with registered profile.
Regards,
Bao