[pulseaudio-discuss] Hsp profile available but not working
Paweł B
blizniukp at gmail.com
Mon Oct 9 14:51:10 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.
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
[root at localhost audio]# 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
### when no local session needs us anymore.
.ifexists module-console-kit.so
#load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif
### Enable positioned event sounds
load-module module-position-event-sounds
### Cork music/video streams when a phone stream is active
load-module module-role-cork
### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply
# X11 modules should not be started from default.pa so that one daemon
# can be shared by multiple sessions.
### Load X11 bell module
#load-module module-x11-bell sample=x11-bell
### Register ourselves in the X11 session manager
#load-module module-x11-xsmp
### Publish connection data in the X11 root window
#.ifexists module-x11-publish.so
#.nofail
#load-module module-x11-publish
#.fail
#.endif
### Make some devices default
#set-default-sink output
#set-default-source input
load-module module-switch-on-connect
###load-module module-loopback
---
[root at localhost audio]# cat /etc/pulse/daemon.conf
# 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/>.
## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5)
for
## more information. Default values are commented out. Use either ; or #
for
## commenting.
; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually
64 MiB
; lock-memory = no
; cpu-limit = no
; high-priority = yes
; nice-level = -11
; realtime-scheduling = yes
; realtime-priority = 5
exit-idle-time = -1
; scache-idle-time = 20
; dl-search-path = (depends on architecture)
; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa
; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0
; resample-method = speex-float-1
enable-remixing = yes
enable-lfe-remixing = no
; resample-methon = ffmpeg
; flat-volumes = yes
; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000
default-sample-format = s16le
default-sample-rate = 44100
; alternate-sample-rate = 48000
default-sample-channels = 2
; default-channel-map = front-left,front-right
default-fragments = 10
default-fragment-size-msec = 10
; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20171009/841d4fb6/attachment-0001.html>
More information about the pulseaudio-discuss
mailing list