2024年3月24日发(作者:凭运洁)
HFP协议分析
1、 HFP整体结构图
2、 HFP规定的功能支持情况。
3、 HFP支持的常见命令
4、 HCI日志中HFP AT命令交互情况。
5、 HFP codec
6、 常见HFP相关问题
1、HFP整体结构图
HFP 配置文件 V1.7.1,HFP交互双方的协议整体结构如下图。
Audio Gateway :手机电脑等设备。
Hands-Free :蓝牙耳机、carkit等设备。
2、H FP规定的功能支持情况。
HFP协议规定功能支持情况如下,M代表强制支持,o:代表可选:
序号 功能描述 免提设备 手机
1 M M
连接管理
2 M M
电话状态信息
3 M M
音频连接处理
4 M M
接收语音来电
5 M O
拒绝语音来电
6 M M
中断电话
7 M M
通话中音频链路切换
8
9
10
11
12
13
14
15
16
17
18
19
20
21a
21b
22
23
24
25
免提设备拨号
历史列表拨号
拨打最后一个电话
拨号等待通知
三方通话
CLI(Calling Line Identification)
噪声抑制回声消除
语音识别
号码绑定语音标签
传输多音频能力
远程音量控制
回复和保持
描述号码信息
扩展电话状态
扩展电话控制
特有指示
宽频语音
编解码器协商
手持设备指示器
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
M
M
M
M
M
M
O
O
O
M
O
O
O
O
O
M
O
O
O
3、HFP支持的常见命令
HFP At命令解析:
序命令 命令全称
号
AT+BRSF
Bt Retrieve Supported Features
1
Bluetooth Available Codecs
2 AT+BAC
3
4
5
6
7
8
9
10
11
12
13
+BCS
AT+CIND=?
AT+CIND?
AT+CMER
AT+CHLD=?
AT+NREC
AT+CCWA
AT+BTRH
AT+CLCC
AT+BIA
AT+CSRSF
Bluetooth Codec Selection
Current status of AG indication
Current status of AG indication
Command enable status report
Call hold
Noise Reduction and Echo Canceling
Command call waiting
Bluetooth Response and Hold Feature
The current list of current call
Bluetooth Indicators Activation
*
回复消息
+BRSF/OK
OK
AT +BCS/OK
命令解释
请求
AG
特性
请求
AG
支持的
codec
给
HF
回复
AG
支持
的
codec
+CIND:(范围)
获取对方特性支持
情况
/OK
+CIND:(具体
获取对方特性值
值) /OK
OK
OK
OK
OK
OK
OK
OK
OK
打开状态报告功能
获取三方通话支持
情况
AG
噪声抑制开关
报告状态
获取
AG
状态
蓝牙指示器
*
14
15
16
17
18
+CIEV
AT+CHUP
AT+VGS
AT+VGM
AT+TBSR
Call information element value
Hang-up
Gain of Speaker
Gain of Microphone
NA
Ok
Ok
Ok
Ok
私有命令(
=0
表示
B3
腕带中)
向
HF
通知
HF
自身
状态
挂断电话
调节
speaker
音量
调节听筒音量
华为
B2/3
私有命令
4、HCI日志中HFP AT命令交互情况。
如下图所示是连接过程中蓝牙HCI日志HFP列的AT命令交互过程。
多数命令在上面的表格中已经有介绍。其中+CIEV命令包含的含义较多,已图中
为例,+CIEV:2,2表示向外拨打电话;+CIEV:2,3表示对方响铃;+CIEV:1,1接通电
话;+CIEV:2,0当前没有待处理电话;+CIEV:1,0当前没有通话处于activity状态。
5、HFP codec
目前支持两种不同的采样频率,分别是CVSD和mSBC,并且在sco链路和eSco
链路下也存在差异。其中,CVSD是强制支持的,mSBC是可选项;但对于国内来
讲,通话的语音采样均为8KHz因此手机和蓝牙耳机之间即便采用16KHz的mSBC
采样,音频也不会有太大改善。但是使用16KHz采样的mSBC可以提高语音识别
的正确率。
5.1 CVSD codec
CVSD 采用8kHz采样,分别为SCO链路下和eSCO链路下的不同配置情况。
5.2 mSBC codec
mSBC采用16KHz采样,使用mSBC需要在eSCO链路上传输。
6、常见HFP相关问题
问题定位方法
(定位问题手段,对应到工具,常见的问题,对应的车载或耳机兼容性问题,
HFP相关的有哪些功能)
问题设备连接手机打电话phone状态异常。
分析方向:查看AT命令中+CIEV以及AT+ CHUP命令是否执行成功以及对应的状
态是否正常。
问题2.连接车载通话单通或者双线无声。
分析方向:将音频切换到手机确认是否ok,然后切换回HF设备确认是否能够恢
复。如果依然不能够恢复,抓空中包进一步确认。
问题3.无法连接“手机音频”,手动点击依然无效。
分析方向:确认HF设备的“手机音频”是否已经连接到其他设备上,尝试重启
HF设备查看是否能够恢复,并且从日志上确认手机发起的“手机音频”连接请
求是否被拒绝,以及被拒绝的原因。
问题4.华为B2/B3连接HF设备微信通话问题。
分析方向:查看当时B2/B3手环的状态,是否处于腕带模式。可通过华为私有命
令AT+BTSR进行确认。
问题5.连接蓝牙耳机通话声音异常。
分析方向:确认HF设备的AT+BRSF中的codec项以及AG设备的codec项是否显
示支持。部分蓝牙耳机对于cvsd的8KHz窄带音频支持有缺陷。可进行对比验证。
同时需要抓取空口日志进一步分析。
2024年3月24日发(作者:凭运洁)
HFP协议分析
1、 HFP整体结构图
2、 HFP规定的功能支持情况。
3、 HFP支持的常见命令
4、 HCI日志中HFP AT命令交互情况。
5、 HFP codec
6、 常见HFP相关问题
1、HFP整体结构图
HFP 配置文件 V1.7.1,HFP交互双方的协议整体结构如下图。
Audio Gateway :手机电脑等设备。
Hands-Free :蓝牙耳机、carkit等设备。
2、H FP规定的功能支持情况。
HFP协议规定功能支持情况如下,M代表强制支持,o:代表可选:
序号 功能描述 免提设备 手机
1 M M
连接管理
2 M M
电话状态信息
3 M M
音频连接处理
4 M M
接收语音来电
5 M O
拒绝语音来电
6 M M
中断电话
7 M M
通话中音频链路切换
8
9
10
11
12
13
14
15
16
17
18
19
20
21a
21b
22
23
24
25
免提设备拨号
历史列表拨号
拨打最后一个电话
拨号等待通知
三方通话
CLI(Calling Line Identification)
噪声抑制回声消除
语音识别
号码绑定语音标签
传输多音频能力
远程音量控制
回复和保持
描述号码信息
扩展电话状态
扩展电话控制
特有指示
宽频语音
编解码器协商
手持设备指示器
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
M
M
M
M
M
M
O
O
O
M
O
O
O
O
O
M
O
O
O
3、HFP支持的常见命令
HFP At命令解析:
序命令 命令全称
号
AT+BRSF
Bt Retrieve Supported Features
1
Bluetooth Available Codecs
2 AT+BAC
3
4
5
6
7
8
9
10
11
12
13
+BCS
AT+CIND=?
AT+CIND?
AT+CMER
AT+CHLD=?
AT+NREC
AT+CCWA
AT+BTRH
AT+CLCC
AT+BIA
AT+CSRSF
Bluetooth Codec Selection
Current status of AG indication
Current status of AG indication
Command enable status report
Call hold
Noise Reduction and Echo Canceling
Command call waiting
Bluetooth Response and Hold Feature
The current list of current call
Bluetooth Indicators Activation
*
回复消息
+BRSF/OK
OK
AT +BCS/OK
命令解释
请求
AG
特性
请求
AG
支持的
codec
给
HF
回复
AG
支持
的
codec
+CIND:(范围)
获取对方特性支持
情况
/OK
+CIND:(具体
获取对方特性值
值) /OK
OK
OK
OK
OK
OK
OK
OK
OK
打开状态报告功能
获取三方通话支持
情况
AG
噪声抑制开关
报告状态
获取
AG
状态
蓝牙指示器
*
14
15
16
17
18
+CIEV
AT+CHUP
AT+VGS
AT+VGM
AT+TBSR
Call information element value
Hang-up
Gain of Speaker
Gain of Microphone
NA
Ok
Ok
Ok
Ok
私有命令(
=0
表示
B3
腕带中)
向
HF
通知
HF
自身
状态
挂断电话
调节
speaker
音量
调节听筒音量
华为
B2/3
私有命令
4、HCI日志中HFP AT命令交互情况。
如下图所示是连接过程中蓝牙HCI日志HFP列的AT命令交互过程。
多数命令在上面的表格中已经有介绍。其中+CIEV命令包含的含义较多,已图中
为例,+CIEV:2,2表示向外拨打电话;+CIEV:2,3表示对方响铃;+CIEV:1,1接通电
话;+CIEV:2,0当前没有待处理电话;+CIEV:1,0当前没有通话处于activity状态。
5、HFP codec
目前支持两种不同的采样频率,分别是CVSD和mSBC,并且在sco链路和eSco
链路下也存在差异。其中,CVSD是强制支持的,mSBC是可选项;但对于国内来
讲,通话的语音采样均为8KHz因此手机和蓝牙耳机之间即便采用16KHz的mSBC
采样,音频也不会有太大改善。但是使用16KHz采样的mSBC可以提高语音识别
的正确率。
5.1 CVSD codec
CVSD 采用8kHz采样,分别为SCO链路下和eSCO链路下的不同配置情况。
5.2 mSBC codec
mSBC采用16KHz采样,使用mSBC需要在eSCO链路上传输。
6、常见HFP相关问题
问题定位方法
(定位问题手段,对应到工具,常见的问题,对应的车载或耳机兼容性问题,
HFP相关的有哪些功能)
问题设备连接手机打电话phone状态异常。
分析方向:查看AT命令中+CIEV以及AT+ CHUP命令是否执行成功以及对应的状
态是否正常。
问题2.连接车载通话单通或者双线无声。
分析方向:将音频切换到手机确认是否ok,然后切换回HF设备确认是否能够恢
复。如果依然不能够恢复,抓空中包进一步确认。
问题3.无法连接“手机音频”,手动点击依然无效。
分析方向:确认HF设备的“手机音频”是否已经连接到其他设备上,尝试重启
HF设备查看是否能够恢复,并且从日志上确认手机发起的“手机音频”连接请
求是否被拒绝,以及被拒绝的原因。
问题4.华为B2/B3连接HF设备微信通话问题。
分析方向:查看当时B2/B3手环的状态,是否处于腕带模式。可通过华为私有命
令AT+BTSR进行确认。
问题5.连接蓝牙耳机通话声音异常。
分析方向:确认HF设备的AT+BRSF中的codec项以及AG设备的codec项是否显
示支持。部分蓝牙耳机对于cvsd的8KHz窄带音频支持有缺陷。可进行对比验证。
同时需要抓取空口日志进一步分析。