【问题标题】:HFP profile with linux and iphone 5带有 linux 和 iphone 5 的 HFP 配置文件
【发布时间】:2014-09-21 20:56:13
【问题描述】:

如何在我的 ubuntu linux 和 iphone 5s 上使用 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

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

【问题讨论】:

  • HFP 配置文件有 2 个角色,根据您的评论,您是否在 ubuntu PC 上寻找 HF 角色(如耳机)?

标签: iphone linux bluetooth bluez hfp


【解决方案1】:

拥有 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 视为您的调制解调器。配对并连接 iPhone 后 通过 bluetoothctl 或任何其他 GUI,您可以运行以下 ofono 测试来查看 如果ofono选对了。尝试在终端上使用ofonod -n -d 运行ofonod 以监控调试日志,并且可能也以详细方式运行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

如果您看到与上述类似的输出,请启用调制解调器并尝试使用以下方式拨号 如果 SCO 套接字被创建或拒绝,命令并观察 ofono 调试日志。而且当然, 查看音频是否路由到 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

【讨论】:

  • 感谢您的回答!实际上,我在 8 月 2 日通过从源代码安装 blueZ 5.21 并启动新的蓝牙守护程序使其运行。 ofono 1.5 仅与 bluez 5.x 兼容,似乎 dbus 接口已重命名。可惜 bluez 5.21 不在 Ubuntu 的 pkg-repo 中。
  • 酷。您是否让音频重新路由以通过 Ubuntu 工作?
  • 实际上我必须先将时间投入到 A2DP 中,无法继续使用 HFP。当我尝试将笔记本电脑用作扬声器时,音频似乎从我的手机路由到我的电脑,但没有输出。您对 HFP 有同样的问题吗?也许我应该检查 pulseaudio 版本或其他东西,因为我现在使用的是 bluez 5.21。
  • 是的 - 我也有同样的问题。我不得不强制加载 alsa-sink 和 alsa-source 模块才能让音频在 Ubuntu 上运行。在您的情况下,PA 的调试日志会抛出什么样的消息?我正在使用来自gitorious.org/pulseaudio/vudentzs-mainline(分支:hfp-ofono-5.0)的 PA - 目前似乎是最新的。
  • 我发现,当我使用配置选项 --enable-bluez4 然后在我的机器上编译它时,我可以将 ofono 与 bluez4 一起使用。这样做也很好,但我仍然没有输出。我可以在我的音频选项中看到电话,当我列出输入接收器和输出源时,有一个环回模块。我将 pa 日志添加到我的帖子中。
【解决方案2】:

适用于 Linux 的 HFP 是蓝牙免提配置文件服务器。

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

http://nohands.sourceforge.net/

【讨论】:

  • 所以只有ofono和bluez还不够?在我发现ofono之前,我想使用nohands,但无法编译发布。似乎未正确调用 event.h 中名为 Invoke 的方法。此外,它试图获取一个指向不允许的临时对象(例如 BDADDR_ANY)的指针。在谷歌搜索替代方案后,我发现在 ofono 和 bluez 的合作下支持 hfp,我认为使用这两种方法就足够了,如下所述:padovan.org/blog/2010/02/handsfree-profile-into-bluez-and-ofono
  • 由于 SPP 是 fpr HFP 的基础,这可能是一个问题:stackoverflow.com/questions/10973797/… 或者 bluez 等 MFI 认证?
猜你喜欢
  • 2018-01-11
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
相关资源
最近更新 更多