[pulseaudio-discuss] [BUG] Using bluez 5.5 & pulseaudio a bluetooth headset cannot be used as a recording device.
Alexander Winnig
vernehmlassung at googlemail.com
Tue Jun 4 12:45:15 PDT 2013
Thanks Mikel.
Am 04.06.2013 14:02, schrieb Mikel Astiz:
>
>> parecord -r --device=bluez_source.00_1A_7D_11_C0_66 mm.wav
>>
>> in my case. Creates a crackling sound in the earpiece and a mm.wav of zero
>> bytes, no matter how long I record.
> I tried to reproduce your issue without success, with two different
> headsets. It could be an issue with your specific headset (any chance
> you can test a different one?) or more likely, according to your
> previous messages, your system is broken with multiple versions of the
> same component or an incorrect configuration (PulseAudio, BlueZ).
I re-copied a new wheezy-image on my sd-card. Now pactl list sources
short shows the bluez-device. But still, an empty file is the output. So
a broken system/incorrect configuration is unlikely now.
>
> A possible checklist you could follow is:
> 1. Make sure BlueZ's audio.conf is properly set. You might need to add
> a line with "Disable=Socket".
Done.
> 2. Make sure the headset is connected (PA card exists) and profile is
> set to "hsp".
Done.
> 3. During recording, make sure the profile's state is set to
> "available: yes". You can see this with pacmd list-cards.
This is what I get:
/pi at raspberrypi ~ $ parecord -r -d "bluez_source.00_1A_7D_11_C0_66"
mm.wav &//
//[1] 2828//
//pi at raspberrypi ~ $ pacmd list-cards//
// .....//
// index: 4//
// name: <bluez_card.00_1A_7D_11_C0_66>//
// driver: <module-bluetooth-device.c>//
// owner module: 24//
// properties://
// device.description = "Iqua Slim"//
// device.string = "00:1A:7D:11:C0:66"//
// device.api = "bluez"//
// device.class = "sound"//
// device.bus = "bluetooth"//
// device.form_factor = "headset"//
// bluez.path =
"/org/bluez/1981/hci0/dev_00_1A_7D_11_C0_66"//
// bluez.class = "0x240404"//
// bluez.name = "Iqua Slim"//
// device.icon_name = "audio-headset-bluetooth"//
// device.intended_roles = "phone"//
// profiles://
// a2dp: High Fidelity Playback (A2DP) (priority 10)//
// hsp: Telephony Duplex (HSP/HFP) (priority 20)//
// off: Off (priority 0)//
// active profile: <hsp>//
// sinks://
// bluez_sink.00_1A_7D_11_C0_66/#3: Iqua Slim//
// sources://
// bluez_sink.00_1A_7D_11_C0_66.monitor/#5: Monitor
of Iqua Slim//
// bluez_source.00_1A_7D_11_C0_66/#6: Iqua Slim//
// ports://
//
/
> 4. During recording, make sure the source is "state: RUNNING" (pacmd
> list-sources). This confirms (3) meaning that SCO audio is streaming
> fine.
I used pactl list sources short. It showed
/1 bluez_sink.00_1A_7D_11_C0_66.monitor
module-bluetooth-device.c s16le 1ch 8000Hz SUSPENDED//
//2 bluez_source.00_1A_7D_11_C0_66
module-bluetooth-device.c s16le 1ch 8000Hz *RUNNING*//
/
> If all this work fine but the issue persists, I'd have to see the
> output of hcidump during recording.
This is all hcidump gives:
/HCI sniffer - Bluetooth packet analyzer ver 2.4//
//device: hci0 snap_len: 1028 filter: 0xffffffff//
/
and a waiting green square not returning to the command line. When I
disconnected the headset I got
/> HCI Event: Inquiry Result (0x02) plen 20//
// bdaddr 00:A0:02:00:0C:00 mode 19 clkoffset 0x1300 class 0x02000c//
// bdaddr 00:02:00:0C:01:05 mode 0 clkoffset 0x0000 class 0x000000//
// bdaddr 00:00:00:00:00:00 mode 0 clkoffset 0x0000 class 0x000000//
// bdaddr 00:00:00:00:00:00 mode 0 clkoffset 0x0000 class 0x000000//
// bdaddr 00:00:00:00:00:00 mode 0 clkoffset 0x0000 class 0x000000//
// bdaddr 00:00:00:00:00:00 mode 0 clkoffset 0x0000 class 0x000000//
//Stream-Fehler: Entität terminiert//
//> HCI Event: Disconn Complete (0x05) plen 4//
// status 0x00 handle 12 reason 0x13//
// Reason: Remote User Terminated Connection//
/
>
> You can also repeat the test with module-suspend-on-idle unloaded
> before connecting the headset (e.g. disable it in default.pa). Perhaps
> the headset has issues with audio suspend&resume.
Done. Same result but this time /pactl list sources short/ showed IDLE
instead of suspended.
>>> I have the impression that you need to make the headset believe that a
>>> phone call is coming in for it's mike to become active.
> The audio stream (SCO) should start streaming as soon as parecord is
> launched. No need for phone calls or anything.
The guy from carwhisperer used the ring command for some reason. I coded
this:
http://stackoverflow.com/questions/16918659/dbus-exceptions-dbusexception-org-bluez-error-notavailable-operation-currently
which made the headset actually ring in the hsp profile but play()
returns dbus.exceptions.DBusException: org.bluez.Error.NotAvailable:
Operation currently not available.
>
>>> I've never heard of such headsets. At least my headset allows PulseAudio
>>> to use the microphone at any time.
>>>
>> By Headset I mean this
>> http://www.iqua.com/sites/default/files/images/slim_high5.jpg
>>
>> So I talked to the carwhisperer author martin. He said that he couldn't help
>> me in this case as he doesn't know his code anymore well enough. If you are
>> interested, find his code at
>> http://trifinite.org/trifinite_stuff_carwhisperer.html#downloads
>>
>> Maybe you / someone else can find the real cause.
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20130604/61d62c97/attachment.html>
More information about the pulseaudio-discuss
mailing list