Bose Bluetooth Headphones, "Call From..."

Hi Guys,
Really sorry to add another bluetooth related request given that there are already a few threads going on about the development.

Fresh install of OSMC, Installed a2dp-app-osmc, using a dongle (with boot.txt having dtoverlay=pi3-disable-bt set) i can connect to my mobile phone to OSMC, No problems so A2DP from device to OSMC works great.

I have a pair of Bose Soundlink Wireless II, I can connect to them via the Bluetooth menu in MyOSMC however when they connect it seems to be into a headset profile, it plays the Bose internal audio systems “Call From” through the headphones and then after a short while of hearing background noise picked up from the microphone goes silent. It’s also worth noting that the buttons on the headphones (Vol +/-, select) behave erratically, loading sub menu’s rather than turning volume down and the like.

So to try and avoid the headset profile, i went into /etc/bluetooth/audio.conf and added the line Disable=Headset to the end. This didnt seem to do anything as it still seemed to load into a headset profile anyway.

I thought somewhere i saw that you could change the profile of a connected/paired/trusted device but it seems that was just hciconfig sspmode so no use.

Is there something that I’m missing? has anyone else had these problems? Anything you can suggest that would be worth a read?

Thanks in advance.

Managed to solve this myself after a while. Starting with a fresh install of osmc (2018-06 i think).

TL;DR: Once you have a2dp-app-osmc installed, have paired and connected to your headphones, set your device to a2dp_sink via pactl. Despite profiles being a component of bluetooth connection, Profile switching is handled by the audio controller, in OSMC its Pulse Audiopactl.
pactl list sources short
get the device # of your headphones from the output and put in place in the following command.
pactl set-card-profile # a2dp_sink

Longer version, Roughly everything that I did to get headphones working with the right profile

Install the a2dp software (this may be unnecessary with newer builds of osmc)
sudo apt update && apt install a2dp-app-osmc

I’m not sure if the internal BT device on the raspberry Pi is now fully functional so I disabled the internal bluetooth controller and used a BT Dongle.
add dtoverlay=pi3-disable-bt into the file /boot/config.txt

Reboot the pi.

Ok so now we need to pair the headset, (im sort of going from memory here so this may not be perfect)
sudo bluetoothctl
commands from here are all within the bluetoothctl application
power off just to give it the ol clean start state
power on
scan on

A whole heap of stuff will start showing up, when you see a line that looks something like your headphones you can run scan off
I.e.
[NEW] Device XX:XX:XX:XX:XX:XX XX-XX-XX-XX-XX-XX
[CHG] Device XX:XX:XX:XX:XX:XX Name: Bose Headphones
[bluetooth] # scan off

From here, our device will be XX:XX:XX:XX:XX:XX, note that bluetoothctl has autocompletion on tab, so you can just type in the first few hex entries when refering to a device or command, press tab and it will write out the rest.

My headphones had problems connecting before trusting and there seems to be no default-agent defined so I trusted and unblocked the device before pairing and connecting
[bluetooth] # trust XX:XX:XX:XX:XX:XX
[bluetooth] # unblock XX:XX:XX:XX:XX:XX
it should output if it was succesfull or not for each command but just to check
[bluetooth] # info XX:XX:XX:XX:XX:XX
this will give a fair bit of info including a list of profiles available, but also show the status of trusting and blocking.
Now pair and connect
[bluetooth] # pair XX:XX:XX:XX:XX:XX
[bluetooth] # connect XX:XX:XX:XX:XX:XX
if connected the bluetooth component will now show up as your device name
[Bose Headphones] #

at this point you are connected/paired/trusted and unblocked, and if like me your headphones are screaming “Call From [Beep]” because they are stuck in Hands Free Profile (HFP)/Headset profile (HSP).

Bluetoothctl wont actually handle the switching of the profiles so we can quit out of here for now. But at this point we are connected and paired and that is good!
[bluetooth] # quit

Pulse audio is handling what service profile our bluetooth device is acting as so lets list our sources. The full output of listing our sources is unnecessary at this point so lets just get the cut down version.
pactl list sources short

You should see something along the lines of
<N> BlueZ5... XX_XX_XX_XX...
where <N> is our source/sink number and XX_XX_XX_XX... is the same mac address of our bluetooth headset.

So now we are going to set that audio device to an a2dp output device.
pactl set-card-profile <N> a2dp_sink

The setting is persistent so you shouldn’t need to do it again unless you remove the device or switch profiles manually.

I realize this is probably obvious to a lot of people but I had problems find clear answers about switching profiles so thought i would elaborate.

Enjoy!

[Edit]: pactl commands need to be run as the active user i.e. no sudo prefix

Hi,
i follow this manual. but it seems that the ad2dp_sink is missing on my OSMC vero 4k+

osmc@osmc:~$ pactl list sources short
0 alsa_output.platform-aml_m8_snd.46.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_input.platform-aml_m8_snd.46.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
2 bluez_sink.28_11_A5_33_D2_46.headset_head_unit.monitor module-bluez5-device.c s16le 1ch 8000Hz IDLE
3 bluez_source.28_11_A5_33_D2_46.headset_head_unit module-bluez5-device.c s16le 1ch 8000Hz SUSPENDED

osmc@osmc:~$ pactl set-card-profile 3 a2dp_sink
Failure: No such entity

Did you install a2dp?

sudo apt install a2dp-app-osmc

yes, i have latest version

osmc@osmc:~$ sudo apt install a2dp-app-osmc
Reading package lists… Done
Building dependency tree
Reading state information… Done
a2dp-app-osmc is already the newest version (1.1.3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
<

It looks to me like you should have done this instead:

pactl set-card-profile 2 a2dp_sink

the same result

osmc@osmc:~$ pactl set-card-profile 2 a2dp_sink
Failure: No such entity

i think it can not find a2dp_sink for some reason

Unfortunately, that as far as I can to trying to help since I don’t have a BT headset and have never actually tried this. I guess I should pick up a cheap pair of BT headsets so I can actually try this myself.

I reconect the headphones and used the command:
pactl set-card-profile 2 a2dp_sink
and it’s working now

thanks!

Great! I still should pick myself up a cheap headset so I can test also…

The arctic p253bt are the cheapest pair of Bluetooth headset you’ll find out there. Despite the cost, they’re reliable, resistant and when the earpads will wear off, you can request new ones for free.

Hi guys,
Thanks for the tips @RobertJRussellLives! I have followed them and am getting an error osmc@osmc:~$ pactl set-card-profile 4 a2dp_sink Failure: No such entity
I’m not too sure how to run the commands as an active user, if that’s my mistake. (I’m a total noob) haha
the “sudo apt install a2dp-app-osmc” has been installed.
Does anyone have any ideas on how to get this working?
Thanks in advance!!

  1. Did you rebooted before trying this?
  2. What is the exact problem? Are you getting sound still out of HDMI instead of Headphones or no audio at all?

Hi fzinken,
Thanks for your reply.

  1. Yes, I have tried rebooting.

  2. Ah in terms of an issue in the command shell, I get this error “Failure: No such entity” when entering the command “pactl set-card-profile 14 a2dp_sink” (Not sure if that’s even an issue…?)

  3. In terms of sound and audio playback. I have allowed audio passthrough however, there is no sound coming out from the TV and there is only “White static noise” coming through on the headphones…

Suggest to upload full debug logs, maybe we can see there something.

To get a better understanding of the problem you are experiencing we need more information from you. The best way to get this information is for you to upload logs that demonstrate your problem. You can learn more about how to submit a useful support request here.

Depending on the used skin you have to set the settings-level to standard or higher, in summary:

  • enable debug logging at settings->system->logging

  • reboot the OSMC device twice(!)

  • reproduce the issue

  • upload the log set (all configs and logs!) either using the Log Uploader method within the My OSMC menu in the GUI or the ssh method invoking command grab-logs -A

  • publish the provided URL from the log set upload, here

Thanks for your understanding. We hope that we can help you get up and running again shortly.

OSMC skin screenshot:

Thanks for your help, please see the log link below: :slight_smile:
https://past.osmc.tv/izituqaduk

Audio output device: ALSA:default

You would need to change the audio output under Settings>System>Audio Output

Ah maybe not, could be wrong what I said. Just check that it shows Pulseserver in there.

Oh, ahh no the setting is defiantly showing Pulseserver…

So you say even if the Headphones are off there is no audio coming from the TV?

Your TV doesn’t report any digital format support so why did you enable passthrough?

====================== Audio Cap =================== k3dRrf31
CodingType MaxChannels SamplingFreq SampleSize
PCM, 2 ch, 32/44.1/48 kHz, 16 bit

So you say even if the Headphones are off there is no audio coming from the TV?

Ah yes, that is correct. Well, there is sound coming from the TV if it’s switched to the TV aerial source.
The sound only disappears when the source is on HDMI 1 (Vero 4K +) and the Bluetooth headphones are connected. This is where the white noise comes in on the headphones.

Your TV doesn’t report any digital format support so why did you enable passthrough?

Oh I wasn’t even aware that this was a prerequisite. Didn’t even know such a thing existed ahah, so would that mean I wouldn’t be able to use the headphones?