1

如何在带有 iphone 5s 的 ubuntu linux 上使用 hfp?我安装了蓝牙、所有 bluez 包和 ofono。

对于ofono,我需要一个调制解调器。根据我从蓝牙核心、协议和配置文件规范的理解,蓝牙的 rfcomm 和 spp 可用于模拟调制解调器。这如何与 bluez 一起使用?bluetoothd 和 ofonod dbus-services 是否已经处理到 hfp 的传入连接,我是否必须编写自己的侦听器?

编辑:

程序正在运行。我根据测试脚本实现了它。但是我遇到了音频问题,因为我在打电话时没有任何声音。声音没有静音。

pa日志(翻译):

9 月 26 日 13:57:47 ubu2 pulseaudio[2524]: [alsa-sink-Intel ICH] alsa-sink.c: ALSA 唤醒我们在设备上写入新数据,但没有什么可写的!
9 月 26 日 13:57:47 ubu2 pulseaudio[2524]:[alsa-sink-Intel ICH] alsa-sink.c:这很可能是 ALSA 驱动程序“snd_intel8x0”的错误。请将此错误发送给 ALSA 开发人员。
9 月 26 日 13:57:47 ubu2 pulseaudio[2524]: [alsa-sink-Intel ICH] alsa-sink.c: 我们已被 POLLOUT-Set 唤醒,但随后的 snd_pcm_avail() 调用返回值 0或另一个小于 min_avail 的值。

如何查看 ALSA 是否遇到了一些错误?我没有找到日志。

当连接 a2dp-Profile 以使我的计算机成为 iPhone 的扬声器时,我也没有声音。

编辑2:

要解决此错误,建议这样做:
文件:/etc/pulse/default.pa
添加tsched=0到以下行:
load-module module-detect
来自帖子 #21 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/374002

但这并不能解决我的问题。我也尝试强制加载模块。

4

2 回答 2

3

拥有 ofono 和 bluez 就足够了。

但是,最新版本的 bluez/ofono 和 pulseaudio 不支持 HSP 和 HFP 配置文件。Pulseaudio 发行说明说 bluez5.x 仅支持 A2DP。如果您使用的是 bluez4.x、ofono 和 pulseaudio 4.x/5.x,您可能仍然可以正常工作。

http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/5.0/

ofono 会将您的 iPhone 5s 视为您的调制解调器。通过 bluetoothctl 或任何其他 GUI 配对和连接 iPhone 后,您可以运行以下 ofono 测试以查看 ofono 是否正确选择了它。尝试在终端上运行 ofonodofonod -n -d来监控调试日志,并且可能也以详细方式运行 pulseaudio ( pulseaudio -k && pulseaudio -v)

bash$ cd */ofono-1.x/test

此目录包含用于测试 ofono 功能的示例 dbus 脚本。

bash$ ./list-modems

[ /hfp/org/bluez/hci0/dev_94_94_26_88_XX_XX ]
    Type = hfp
    Interfaces = org.ofono.Siri org.ofono.VoiceCallManager org.ofono.CallVolume org.ofono.Handsfree org.ofono.NetworkRegistration 
    Features = net 
    Serial = 94:94:26:88:XX:XX
    Online = 1
    Powered = 1
    Lockdown = 0
    Emergency = 0
    Name = XXXXXX’s iPhone
    [ org.ofono.Siri ]
        EyesFreeMode = disabled
        Enabled = 1
    [ org.ofono.VoiceCallManager ]
        EmergencyNumbers = 08 000 999 110 112 911 118 119 
    [ org.ofono.CallVolume ]
        Muted = 0
        SpeakerVolume = 50
        MicrophoneVolume = 50
    [ org.ofono.Handsfree ]
        VoiceRecognition = 0
        InbandRinging = 1
        Features = three-way-calling echo-canceling-and-noise-reduction voice-recognition release-all-held release-specified-active-call private-chat create-multiparty 
        BatteryChargeLevel = 4
        SubscriberNumbers = +XXXXXXXXXXXX
        EchoCancelingNoiseReduction = 1
    [ org.ofono.NetworkRegistration ]
        Status = registered
        Name = XXX XXXXXX
        Mode = auto-only
        Strength = 60

如果您看到与上面类似的输出,请启用调制解调器并尝试使用以下命令拨号并观察 ofono 调试日志是否创建或拒绝了 SCO 套接字。当然,还要查看音频是否路由到 Ubuntu。

bash$ ./enable-modem

bash$ ./dial-number +XXXXXXXXXXXX
...

同样,尝试调用您的 iPhone 并观察 ofono、pulseaudio 日志。bash$ ./answer-calls

看起来 pulseaudio 的人们正在尝试使用 bluez5.x 和 ofono,但似乎还没有公开可用的补丁。此处正在跟踪该错误: https ://bugs.freedesktop.org/show_bug.cgi?id=73325

于 2014-08-03T08:07:14.600 回答
1

HFP for Linux 是一个蓝牙免提配置文件服务器。

它允许您的 Linux 系统充当手机的免提电话。它旨在成为兼容蓝牙 HFP 1.5 Hands Free 的实现,支持所有必需的命令和通知,以及流式音频。

http://nohands.sourceforge.net/

于 2014-07-30T10:05:20.567 回答