Целью является посещение вызова через сопряженные BT-устройства с использованием HFP.
Выполненные действия:
a. Используемое программное обеспечение:
-pulseaudio-4.99.2
-Bluez-5.14
-офоно-1.14
b. Вышеупомянутое приложение было запущено и затем, используя методы bluetoothctl, я подключил и подключил мобильное устройство к ПК с Ubuntu.
с. Звонок был сделан на мобильный. После разговора я пытался услышать звук через гарнитуру, подключенную к компьютеру с Ubuntu. Но не было слышно ни звука.
д. Я попытался перечислить приемник и источники bluez, используя следующую команду:
pactl list short sources | grep bluez_source
pactl list short sinks | grep -v Monitor | grep alsa_output.pci
e. Затем зациклите устройства, используя приведенную ниже команду
pactl load-module module-loopback source=[BTSOURCE] sink=[SINK]
f. Я также отредактировал /etc/bluetooth/audio.conf, чтобы включить
[General]
Enable=Gateway,Source,Socket,Sink,Media,Headset
Пожалуйста, помогите мне, если я что-то пропустил. Что-нибудь нужно изменить в файле daemon.conf?
Я также получаю эти журналы в pulseAudio
D: [pulseaudio] module-loopback.c: Loopback overall latency is 43.55 ms + 335.02 ms + 26.97 ms = 405.54 ms
D: [pulseaudio] module-loopback.c: Should buffer 2112 bytes, buffered at minimum 3346 bytes
I: [pulseaudio] module-loopback.c: New rate of 8061 Hz not within 2‰ of 7919 Hz, forcing smaller adjustment
D: [pulseaudio] module-loopback.c: [alsa_output.pci-0000_00_1b.0.analog-stereo] Updated sampling rate to 7934 Hz.
D: [pulseaudio] module-loopback.c: Loopback overall latency is 0.00 ms + 19584.88 ms + 0.00 ms = 19584.88 ms
D: [pulseaudio] module-loopback.c: Should buffer 96 bytes, buffered at minimum 154078 bytes
W: [pulseaudio] module-loopback.c: Sample rates too different, not adjusting (8000 vs. 15699).
D: [pulseaudio] module-loopback.c: [bluez_sink.4C_21_D0_3A_29_04] Updated sampling rate to 8000 Hz.
D: [bluetooth] ratelimit.c: 134 events suppressed
D: [bluetooth] memblock.c: Pool full
D: [alsa-sink-ALC892 Analog] memblock.c: Pool full
D: [bluetooth] memblock.c: Pool full
============= ================================================== =============
Пожалуйста, помогите мне !!!
С Bluez и ofono можно достигнуть его.
я попробовал его блюзом 4.x. Не уверенный, если это будет работать с блюзом 5.x.
https://bugs.freedesktop.org/show_bug.cgi? id=73325
Сначала для проверки HFP поддерживается аппаратными средствами.
$ sdptool browse local
Это перечислит все поддерживаемые профили. Это должно разоблачить что-то как:
Service Name: Hands-Free Audio Gateway
Service RecHandle: 0x10002
Service Class ID List:
"Handsfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 13
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0105
Service Name: Hands-Free
Service RecHandle: 0x10003
Service Class ID List:
"Handsfree" (0x111e)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0105
Следующий шаг должен соединить Ваш телефон с ПК с помощью bluetoothctl или GUI. Теперь необходимо свериться с ofono для модемов. Здесь Ваш телефон действует как модем. Goto ofono тестируют каталог и тип
$./list-modems
Теперь, он должен перечислить Ваш телефон в списке. Затем включите, это
$./enable-modem
Начинает называть Ваш телефон, и Вы сможете получить речь к ПК.
Я тоже столкнулся с этой проблемой. Если вы видите уровни звука с помощью pavucontrol, вы увидите, что звук на самом деле поступает на ноутбук, но маршрутизация звука (на уровне pulseaudio) настроена неправильно.
Когда вы подключите свой телефон с Bluetooth к машине с Linux и наберете вызов через телефон, вы увидите, что профиль Bluetooth переключен на HSP/HFP с помощью вкладки «Конфигурация» в pavucontrol.Вы также можете проверить, что для вашего устройства приемник и источник по умолчанию (PulseAudio) были переключены на bluez_sink и bluez_source.
Чтобы иметь возможность воспроизводить звук вызова через динамики/проводную гарнитуру и передавать свой голос во время вызова с помощью внутреннего микрофона/микрофона проводной гарнитуры, попробуйте этот скрипт.
#!/bin/bash
SOUNDCARD_SOURCE="Find using $ pacmd list-sources | grep -e 'index:' -e device.string -e 'name:'"
SOUNDCARD_SINK="Find using $ pacmd list-sinks | grep -e 'index:' -e device.string -e 'name:'"
BLUEZ_SOURCE="Find using $ pacmd list-sources | grep -e 'index:' -e device.string -e 'name:'"
BLUEZ_SINK="Find using $ pacmd list-sinks | grep -e 'index:' -e device.string -e 'name:'"
pactl unload-module `pactl list short modules | grep bluez_sink | cut -d 'm' -f 1`
pactl unload-module `pactl list short modules | grep bluez_source | cut -d 'm' -f 1`
pacmd "set-default-sink $SOUNDCARD_SINK"
pacmd "set-default-source $SOUNDCARD_SOURCE"
pactl load-module module-loopback source=$SOUNDCARD_SOURCE sink=$BLUEZ_SINK latency_msec=1
pactl load-module module-loopback source=$BLUEZ_SOURCE sink=$SOUNDCARD_SINK latency_msec=1
Что он делает, так это просто выгружает модули обратной связи pactl, загруженные конфигурацией, и подключает ваш микрофон к bluez_sink и подключает bluez_source к вашим динамикам/наушникам.
Это мой первый раз, когда я публикую решение, поэтому, пожалуйста, прокомментируйте для получения дополнительных разъяснений.