Thanks.
Hi Alex,

On Tue, Jun 4, 2013 at 9:45 PM, Alexander Winnig
<[email protected]> wrote:
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@raspberrypi ~ $ parecord -r -d "bluez_source.00_1A_7D_11_C0_66" mm.wav &
[1] 2828
pi@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)
Which version of PulseAudio/pacmd are you using? 4.0 would have shown
the profile availability here.
pulseaudio 2.0
pacmd 2.0(Compiled with libpulse 2.0.0, Linked with libpulse 2.0.0)

If I *have to* get the newest pulseaudio *for my purpose*, please tell me how to exactly configure, make and make install it for it to work this time. I won't install it if it's just nice-to-have.

In any case, the state of the source below already confims the SCO state.

                 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
This looks good.

Can you check list-sinks? I believe the headset sink will be
suspended, but let's confirm it.
....
    index: 1
        name: <bluez_sink.00_1A_7D_11_C0_66>
        driver: <module-bluetooth-device.c>
        flags: HARDWARE HW_VOLUME_CTRL LATENCY
        state: IDLE
        suspend cause:
        priority: 9030
        volume: 0:  53%
                balance 0.00
        base volume: 100%
        volume steps: 16
        muted: no
        current latency: 137.00 ms
        max request: 0 KiB
        max rewind: 0 KiB
        monitor source: 1
        sample spec: s16le 1ch 8000Hz
        channel map: mono
                     Mono
        used by: 0
        linked by: 0
        fixed latency: 128.00 ms
        card: 1 <bluez_card.00_1A_7D_11_C0_66>
        module: 6
        properties:
                bluetooth.protocol = "sco"
                device.intended_roles = "phone"
                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/1980/hci0/dev_00_1A_7D_11_C0_66"
                bluez.class = "0x240404"
                bluez.name = "Iqua Slim"
                device.icon_name = "audio-headset-bluetooth"


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
It seems the SCO link (the actual audio stream) is up but there's no
audio flowing.
That's what I am saying. I presume the headset needs a RING AT command, then listen for the accept button to be pressed on the headset then initiate the audio connection. But as i said, play() doesn't work with python like my stackoverflow example shows.

Which hardware are you testing this on? You mentioned you're using a
raspberry pi, which I believe doesn't have a built-in bluetooth chip.
Are you using some conventional USB dongle?
An expensive belkin bluetooth 4.0+ adapter.

I ask this because the hardware could be set up for SCO over PCM (as
opposed to SCO over HCI) which would lead to the described behavior.

Otherwise, assuming it's SCO over HCI, the hcidump above would be
pretty bad. I haven't seen this before but it's definitely possible
that the headset doesn't send any audio unless it receives some, which
is not happening in this case.

You should be able to confirm this by sending some audio to the
headset with paplay during the recording, and checking if parecord
works during this time. hcidump would be interesting here too.
This is what I did

   /hcidump > ausgabehci.txt &//
   //[1] 2447//
   //parecord -r -d "bluez_source.00_1A_7D_11_C0_66" neu.wav &//
   //[2] 2448//
   //paplay -p -d "bluez_sink.00_1A_7D_11_C0_66" under.wav//
   //<Wait some seconds(I hear no sound in my headset)>//
   /

Result

ausgabehci.txt: 0 Bytes
neu.wav: 0 Bytes

Best

Alexander
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to