#1041337 pulseaudio: Unable to use handsfree_head_unit (HFP) on BT headset

Package:
pulseaudio
Source:
pulseaudio
Description:
PulseAudio sound server
Submitter:
Wesley Schwengle
Date:
2023-07-17 15:57:04 UTC
Severity:
normal
#1041337#5
Date:
2023-07-17 15:53:39 UTC
From:
To:
Dear Maintainer,

Unable to use BT headset with HFP.  I've been able to use this headset in the
past and it seems it isn't working anymore. I've added the output of `sudo btmon
-S -w hfp.snoop`. In btmon.log, I found the following very interesting:

	> ACL Data RX: Handle 256 flags 0x02 dlen 31              #259 [hci0] 25.243498
      Channel: 64 len 27 [PSM 1 mode Basic (0x00)] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 12 len 22
        Attribute bytes: 19
        Continuation state: 0
        Combined attribute bytes: 19
          Attribute list: [len 0] {position 0}
          Attribute list: [len 0] {position 1}
        data element size too short
        ab cd                                            ..
          Attribute list: [len 0] {position 0}
          Attribute list: [len 0] {position 1}
          Attribute list: [len 0] {position 0}
          Attribute list: [len 0] {position 0}
        data element descriptor too short
        05                                               .
          Attribute list: [len 0] {position 0}
          Attribute list: [len 0] {position 1}

$ pacmd list

index: 8
	name: <bluez_card.34_DF_2A_55_D4_6B>
	driver: <module-bluez5-device.c>
	owner module: 30
	properties:
		device.description = "UA | JBL Train"
		device.string = "34:DF:2A:55:D4:6B"
		device.api = "bluez"
		device.class = "sound"
		device.bus = "bluetooth"
		device.form_factor = "headphone"
		bluez.path = "/org/bluez/hci0/dev_34_DF_2A_55_D4_6B"
		bluez.class = "0x240418"
		bluez.alias = "UA | JBL Train"
		bluetooth.battery = "80%"
		device.icon_name = "audio-headphones-bluetooth"
		bluetooth.codec = "sbc"
	profiles:
		a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 40, available: unknown)
		handsfree_head_unit: Handsfree Head Unit (HFP) (priority 30, available: no)
		off: Off (priority 0, available: yes)
	active profile: <a2dp_sink>
	sinks:
		bluez_sink.34_DF_2A_55_D4_6B.a2dp_sink/#8: UA | JBL Train
	sources:
		bluez_sink.34_DF_2A_55_D4_6B.a2dp_sink.monitor/#8: Monitor of UA | JBL Train
	ports:
		headphone-output: Headphone (priority 0, latency offset 0 usec, available: unknown)
			properties:

		headphone-input: Bluetooth Input (priority 0, latency offset -50000 usec, available: no)
			properties:

$ bluetoothctl info
Device 34:DF:2A:55:D4:6B (public)
	Name: UA | JBL Train
	Alias: UA | JBL Train
	Class: 0x00240418
	Icon: audio-headphones
	Paired: yes
	Bonded: yes
	Trusted: yes
	Blocked: no
	Connected: yes
	LegacyPairing: no
	UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
	UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
	UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
	UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	Modalias: bluetooth:v0000p0000dABCD

$ pacmd set-card-profile bluez_card.34_DF_2A_55_D4_6B handsfree_head_unit
Failed to set card profile to 'handsfree_head_unit'.