[pulseaudio-discuss] Hsp profile available but not working
Vimal Babu
Vimal.Babu at nestgroup.net
Fri Nov 3 08:11:01 UTC 2017
Hi,
I also faced same issue in HFP,
< 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
What I did is that , I send commands to Bluetooth module, to switch from PCM to UART.
hcitool cmd 0x3F 0x01C 0x01 0x02 0x00 0x01 0x01 //For routing
After sending this my issue was solved.
Regards,
Vimal Babu
From: pulseaudio-discuss [mailto:pulseaudio-discuss-bounces at lists.freedesktop.org] On Behalf Of Pawel B
Sent: Tuesday, October 31, 2017 6:00 PM
To: pulseaudio-discuss at lists.freedesktop.org
Subject: [pulseaudio-discuss] Hsp profile available but not working
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<http://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?
________________________________
Confidentiality Statement / Disclaimer : This message and any attachments is intended for the sole use of the intended recipient. It may contain confidential information. Any unauthorized use, dissemination or modification is strictly prohibited. If you are not the intended recipient, please notify the sender immediately then delete it from all your systems, and do not copy, use or print. Internet communications are not secure and it is the responsibility of the recipient to make sure that it is virus/malicious code exempt.
The company/sender cannot be responsible for any unauthorized alterations or modifications made to the contents. If you require any form of confirmation of the contents, please contact the company/sender. The company/sender is not liable for any errors or omissions in the content of this message.
________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20171103/518c0d04/attachment-0001.html>
More information about the pulseaudio-discuss
mailing list