Re: Some headsets appear don't work when BlueZ connecting with both HSP AG and HFP AG.

From
Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date
2021-02-01 19:17:53
Reply to
Huang-Huang Bao, 2021-02-01
Hi Bao,

On Mon, Feb 1, 2021 at 9:48 AM Huang-Huang Bao [off-list ref] wrote:
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
I guess we could introduce a some sort of conflict frag but Im afraid
that would complicate things a lot because then we need to have some
sort o priority as well, also HSP is so ancient I would basically
consider it deprecated by now, the only reason to use is if you don't
have a Telephony (e.g. oFono) subsystem to handle the HFP properly.
Regards,
Bao.

On 1/23/21 10:14 PM, Huang-Huang Bao wrote:
quoted
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


-- 
Luiz Augusto von Dentz
Thread (3 messages) 3 messages, 2 authors, last reply 2021-02-01
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help