[pulseaudio-discuss] Hsp profile available but not working
Paweł B
blizniukp at gmail.com
Tue Oct 31 12:29:31 UTC 2017
Hi All.
I have a problem with hsp profile.
After connect to Philips WeCall Speaker profile headset_head_unit is
available:
Card #2
Name: bluez_card.0C_A6_94_25_70_DE
Driver: module-bluez5-device.c
Owner Module: 25
Properties:
device.description = "Philips WeCall Speaker"
device.string = "0C:A6:94:25:70:DE"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/hci1/dev_0C_A6_94_25_70_DE"
bluez.class = "0x240404"
bluez.alias = "Philips WeCall Speaker"
device.icon_name = "audio-headset-bluetooth"
device.intended_roles = "phone"
Profiles:
* headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1,
sources: 1, priority: 20, available: yes*
a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1,
sources: 0, priority: 10, available: yes)
device.description = "Philips WeCall Speaker"
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: headset_head_unit
Ports:
headset-output: Headset (priority: 0, latency offset: 0 usec)
Part of profile(s): headset_head_unit, a2dp_sink
headset-input: Headset (priority: 0, latency offset: 0 usec)
Part of profile(s): headset_head_unit
I set default sink and source.
After run ‘mplayer test.wav’ nothing is happens (there is no sound). In
a2dp_sink profile everything works fine, but I need use microphone to
record voice, so I need to use headset_head_unit.
I run hcidump:
[root at localhost ~]# hcidump -i hci1 -X
HCI sniffer - Bluetooth packet analyzer ver 2.5
device: hci1 snap_len: 1500 filter: 0xffffffff
< HCI Command: Exit Sniff Mode (0x02|0x0004) plen 2
handle 13
> HCI Event: Command Status (0x0f) plen 4
Exit Sniff Mode (0x02|0x0004) status 0x00 ncmd 1
> HCI Event: Mode Change (0x14) plen 6
status 0x00 handle 13 mode 0x00 interval 0
Mode: Active
< HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17
handle 13 voice setting 0x0060 ptype 0x003f
> HCI Event: Command Status (0x0f) plen 4
Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
> HCI Event: Synchronous Connect Complete (0x2c) plen 17
status 0x00 handle 6 bdaddr 0C:A6:94:25:70:DE type eSCO
Air mode: CVSD
*< SCO data: handle 6 flags 0x00 dlen 48 0000: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 ................ 0010: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 ................ 0020: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 ................< SCO data: handle 6 flags 0x00
dlen 48 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................ 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................ 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................*
< HCI Command: Disconnect (0x01|0x0006) plen 3
handle 6 reason 0x13
Reason: Remote User Terminated Connection
> HCI Event: Command Status (0x0f) plen 4
Disconnect (0x01|0x0006) status 0x00 ncmd 1
> HCI Event: Disconn Complete (0x05) plen 4
status 0x00 handle 6 reason 0x16
Reason: Connection Terminated by Local Host
My controller - is a BCM4354 chip
[bluetooth]# show
Controller C0:97:27:4C:2E:67
Name: ARTIK10
Alias: ARTIK10
Class: 0x0c0408
Powered: yes
Discoverable: no
Pairable: yes
UUID: Headset AG
(00001112-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile
(00001801-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control
(0000110e-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile
(00001800-0000-1000-8000-00805f9b34fb)
UUID: PnP Information
(00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target
(0000110c-0000-1000-8000-00805f9b34fb)
UUID: Audio Source
(0000110a-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink
(0000110b-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d0524
Discovering: no
My device:
[Philips WeCall Speaker]# info 0C:A6:94:25:70:DE
Device 0C:A6:94:25:70:DE
Name: Philips WeCall Speaker
Alias: Philips WeCall Speaker
Class: 0x240404
Icon: audio-card
Paired: 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)
*pulseaudio log*
[root at localhost audio]# journalctl -b 0 | grep -i pulse
Oct 09 16:10:26 localhost systemd[1]: Started pulseaudio service.
Oct 09 16:10:26 localhost systemd[1]: Starting pulseaudio service...
Oct 09 16:10:26 localhost pulseaudio[3416]: W: [pulseaudio] main.c: Running
in system mode, but --disallow-module-loading not set!
Oct 09 16:10:26 localhost pulseaudio[3416]: N: [pulseaudio] main.c: Running
in system mode, forcibly disabling SHM mode!
Oct 09 16:10:26 localhost pulseaudio[3416]: W: [pulseaudio] main.c: OK, so
you are running PA in system mode. Please note that you most likely
shouldn't be doing that.
Oct 09 16:10:26 localhost pulseaudio[3416]: W: [pulseaudio] main.c: If you
do it nonetheless then it's your own fault if things don't work as expected.
Oct 09 16:10:26 localhost pulseaudio[3416]: W: [pulseaudio] main.c: Please
read
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/WhatIsWrongWithSystemWide/
for an explanation why system mode is usually a bad idea.
Oct 09 16:10:27 localhost kernel: [c6] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost kernel: [c1] lpass_set_sched: [pulseaudio] pid =
3416, prio = 49
Oct 09 16:10:27 localhost pulseaudio[3416]: W: [pulseaudio] authkey.c:
Failed to open cookie file '/var/run/pulse/.config/pulse/cookie': No such
file or directory
Oct 09 16:10:27 localhost pulseaudio[3416]: W: [pulseaudio] authkey.c:
Failed to load authentication key '/var/run/pulse/.config/pulse/cookie': No
such file or directory
Oct 09 16:10:27 localhost pulseaudio[3416]: W: [pulseaudio] authkey.c:
Failed to open cookie file '/var/run/pulse/.pulse-cookie': No such file or
directory
Oct 09 16:10:27 localhost pulseaudio[3416]: W: [pulseaudio] authkey.c:
Failed to load authentication key '/var/run/pulse/.pulse-cookie': No such
file or directory
*journalctl -b 0 | grep -i blue*
Oct 09 16:10:24 localhost kernel: [c6] Bluetooth: Core ver 2.16
Oct 09 16:10:24 localhost kernel: [c6] Bluetooth: HCI device and connection
manager initialized
Oct 09 16:10:24 localhost kernel: [c6] Bluetooth: HCI socket layer
initialized
Oct 09 16:10:24 localhost kernel: [c6] Bluetooth: L2CAP socket layer
initialized
Oct 09 16:10:24 localhost kernel: [c6] Bluetooth: SCO socket layer
initialized
Oct 09 16:10:24 localhost kernel: [c5] Bluetooth: Generic Bluetooth SDIO
driver ver 0.1
Oct 09 16:10:25 localhost kernel: [c0] bcm4354_bluetooth bluetooth.8:
bcm4354_bluetooth_probe.
Oct 09 16:10:25 localhost kernel: [c2] [BT] Bluetooth Power On.
Oct 09 16:10:25 localhost kernel: [c5] bcm4354_bluetooth bluetooth.8:
bcm4354_bluetooth_probe End
Oct 09 16:10:25 localhost kernel: [c7] [BT] Bluetooth Power On.
Oct 09 16:10:26 localhost dbus-daemon[3403]: Unknown username "bluealsa" in
message bus configuration file
Oct 09 16:10:26 localhost kernel: [c6] [BT] Bluetooth Power On.
Oct 09 16:10:26 localhost systemd[1]: Starting BCM4354 Bluetooth firmware
service...
Oct 09 16:10:27 localhost fwdown.sh[3423]: /etc/bluetooth /
Oct 09 16:10:27 localhost dbus[3403]: [system] Activating via systemd:
service name='org.bluez' unit='dbus-org.bluez.service'
Oct 09 16:10:27 localhost systemd[1]: Started BCM4354 Bluetooth firmware
service.
Oct 09 16:10:27 localhost systemd[1]: Starting Bluetooth service...
Oct 09 16:10:27 localhost bluetoothd[3555]: Bluetooth daemon 5.36
Oct 09 16:10:27 localhost dbus[3403]: [system] Successfully activated
service 'org.bluez'
Oct 09 16:10:27 localhost bluetoothd[3555]: Starting SDP server
Oct 09 16:10:27 localhost systemd[1]: Started Bluetooth service.
Oct 09 16:10:27 localhost kernel: [c0] Bluetooth: BNEP (Ethernet Emulation)
ver 1.3
Oct 09 16:10:27 localhost kernel: [c0] Bluetooth: BNEP filters: protocol
multicast
Oct 09 16:10:27 localhost kernel: [c0] Bluetooth: BNEP socket layer
initialized
Oct 09 16:10:27 localhost bluetoothd[3555]: Bluetooth management interface
1.3 initialized
Oct 09 16:10:27 localhost connmand[3419]: Method "ListAdapters" with
signature "" on interface "org.bluez.Manager" doesn't exist
Oct 09 16:10:27 localhost kernel: [c3] Bluetooth: HCI UART driver ver 2.2
Oct 09 16:10:27 localhost kernel: [c3] Bluetooth: HCI H4 protocol
initialized
Oct 09 16:10:27 localhost kernel: [c3] Bluetooth: HCI BCSP protocol
initialized
Oct 09 16:10:27 localhost kernel: [c3] Bluetooth: HCILL protocol initialized
Oct 09 16:10:27 localhost kernel: [c3] Bluetooth: HCIATH3K protocol
initialized
Oct 09 16:10:27 localhost kernel: [c3] Bluetooth: HCI Three-wire UART (H5)
protocol initialized
Oct 09 16:10:27 localhost bluetoothd[3555]: Failed to obtain handles for
"Service Changed" characteristic
Oct 09 16:10:27 localhost systemd[1]: Reached target Bluetooth.
Oct 09 16:10:27 localhost systemd[1]: Starting Bluetooth.
Oct 09 16:10:27 localhost kernel: [c0] Bluetooth: RFCOMM TTY layer
initialized
Oct 09 16:10:27 localhost kernel: [c0] Bluetooth: RFCOMM socket layer
initialized
Oct 09 16:10:27 localhost kernel: [c0] Bluetooth: RFCOMM ver 1.11
Oct 09 16:10:27 localhost bluetoothd[3555]: hci1 Load Connection Parameters
failed: Unknown Command (0x01)
Oct 09 16:10:28 localhost bluetoothd[3555]: Endpoint registered:
sender=:1.5 path=/MediaEndpoint/A2DPSource
Oct 09 16:10:28 localhost bluetoothd[3555]: Endpoint registered:
sender=:1.5 path=/MediaEndpoint/A2DPSink
[root at localhost audio]# *pulseaudio --version*
pulseaudio 6.0
[root at localhost audio]# *bluetoothctl --version*
5.36
I checked many different configuration. The last one is:
--
[root at localhost audio]# cat /etc/bluetooth/audio.conf
# Configuration file for the audio service
# This section contains options which are not specific to any
# particular interface
[General]
# Switch to master role for incoming connections (defaults to true)
Master=true
# If we want to disable support for specific services
# Defaults to supporting all implemented services
#Disable=Gateway,Source,Socket
#Disable=Gateway
#Enable=Headset
#Enable=Gateway,Source,Socket
Enable=Source,Sink,Media,Socket,Headset
#Enable=Source
# SCO routing. Either PCM or HCI (in which case audio is routed to/from
ALSA)
# Defaults to HCI
#SCORouting=PCM
# Automatically connect both A2DP and HFP/HSP profiles for incoming
# connections. Some headsets that support both profiles will only connect
the
# other one automatically so the default setting of true is usually a good
# idea.
AutoConnect=true
# Headset interface specific options (i.e. options which affect how the
audio
# service interacts with remote headset devices)
[Headset]
# Set to true to support HFP, false means only HSP is supported
# Defaults to true
HFP=false
# Maximum number of connected HSP/HFP devices per adapter. Defaults to 1
MaxConnected=1
# Set to true to enable use of fast connectable mode (faster page scanning)
# for HFP when incoming call starts. Default settings are restored after
# call is answered or rejected. Page scan interval is much shorter and page
# scan type changed to interlaced. Such allows faster connection initiated
# by a headset.
FastConnectable=true
# Just an example of potential config options for the other interfaces
[A2DP]
SBCSources=1
MPEG12Sources=0
--
[root at localhost audio]# cat /etc/pulse/system.pa
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)
.nofail
### Load something into the sample cache
#load-sample-lazy x11-bell /usr/share/sounds/freedesktop/stereo/bell.oga
#load-sample-lazy pulse-hotplug
/usr/share/sounds/freedesktop/stereo/device-added.oga
#load-sample-lazy pulse-coldplug
/usr/share/sounds/freedesktop/stereo/device-added.oga
#load-sample-lazy pulse-access
/usr/share/sounds/freedesktop/stereo/message.oga
.fail
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties
### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-null-sink
#load-module module-pipe-sink
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect tsched=0
.else
### Use the static hardware detection module (for systems that lack udev
support)
load-module module-detect
.endif
### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
##headset=native
.endif
### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish
### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv
### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2
rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor
### Load additional modules from GConf settings. This can be configured
with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might
conflict with manually
### loaded modules.
.ifexists module-gconf.so
.nofail
load-module module-gconf
.fail
.endif
### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent
modules
### that look up the default sink/source get the right value
load-module module-default-device-restore
### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams
### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink
### Honour intended role device property
load-module module-intended-roles
### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle
### If autoexit on idle is enabled we want to make sure we only quit
How to fix this issue?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20171031/b505706a/attachment-0001.html>
More information about the pulseaudio-discuss
mailing list