Hi, You are always welcome. Thank you for the feedback. Regards, Vimal Babu From: pulseaudio-discuss [mailto:pulseaudio-discuss-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of Pawel B Sent: Friday, November 3, 2017 3:18 PM To: General PulseAudio Discussion Subject: Re: Hsp profile available but not working Hello, This command solved my issue: hcitool cmd 0x3F 0x01C 0x01 0x02 0x00 0x01 0x01 Thanks :). 2017-11-03 9:11 GMT+01:00 Vimal Babu <Vimal.Babu at nestgroup.net<mailto:Vimal.Babu at nestgroup.net>>: 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@xxxxxxxxxxxxxxxxxxxxx<mailto:pulseaudio-discuss-bounces@xxxxxxxxxxxxxxxxxxxxx>] On Behalf Of Pawel B Sent: Tuesday, October 31, 2017 6:00 PM To: pulseaudio-discuss at lists.freedesktop.org<mailto:pulseaudio-discuss at lists.freedesktop.org> Subject: 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. ________________________________ _______________________________________________ pulseaudio-discuss mailing list pulseaudio-discuss at lists.freedesktop.org<mailto:pulseaudio-discuss at lists.freedesktop.org> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss ________________________________ 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/0b9f0ffe/attachment-0001.html>