蓝牙(六)HFP协议

帅比萌擦擦* 提交于 2020-01-20 21:05:05

名词

AG(Audio Gate)音频网关—音频设备输入输出网关(一般手机、车载等)
HF(Hands Free)免提—该设备作为音频网关的远程音频输入/输出机制,并可提供若干遥控功能(耳机等c)。

协议栈

AG和HF需要支持的功能

1.HF control通信流程


1.1 Service Level Connection

AG和HF均可以通过内部或者用户事件发起Service Level连接建立。Service Level Connection建立的前提是RFCOMM已经建立。同样RFCOMM的建立发起者可以是AG或者HF。

  •     支持能力交换

    首先HF发送AT+BRSF=< HF supported features >给AG,目的是首先通知AG其具有的功能,其次接收AG返回的其自身的BRSF功能。

  •     Codec协商

    如果HF支持Codec Negotiation特征,其会查看AG返回的BRSF中是否也支持该特性,如果都支持该特性,则HF将发送AT+BAC=< HF available codecs >命令给AG以告知其可用的codec。

  •     AG Indicator

    HF从AG接收到的BRSF,可以知道AG支持的Indicator,并按顺序排好,这是因为根据3GPP 27.007规范,AG可以支持Hands-Free不支持的profile。HF使用AT+CIND=?测试命令接收AG支持的indicator以及它们的次序。
    当HF获得必须的Indicator和它们的次序,它将通过AT+CIND?命令取得AG端正在使用indicator的状态。
    当HF取得AG的indicator后,HF会使用AT+CMER使能AG的indicator状态跟新功能,AG会返回OK作为应答。当service,call或者call建立状态发生时,AG将发送和indicator相关的+CIEV结果码给HF。HF根据收到的+CIEV码来跟新其自身内部的indicator。
    AG侧会一直保持indicator状态跟新功能使能直到收到AT+CMER指示其关闭或者HF和AG端的Service Level Connection连接断开。
    当HF使能AG的indicator状态跟新,如果AG和HF都支持呼叫等待(Call waiting)和3方通信(3-way calling)。HF将发送AT+CHLD=?测试命令取得AG是如何支持这种功能的。如果HF或者AG其中之一不支持三方通信,AT+CHLD=?命令不会被发送。

  •     HF Indicator

    如果HF支持HF indicator,其会查看AG是否支持HF indicator。
    如果HF和AG支持HF indicator特性,HF将发送AT+BIND=< HF supported HF indicators >通知HF侧支持的indicator,AG以OK应答。
    当AG接收到HF告知的HF indicator特性,HF将发送AT+BIND=?请求AG侧支持的HF indicator。AG将会以+BIND和以OK结尾的应答。
    当HF接收到AG支持的HF indicator,HF将会发送AT+BIND?命令确定HF目前使能的HF indicator。AG将会一次或多次以+BIND应答和以OK结尾的应答。
    至此HF可能发送AT+BIEV命令告知AG其使能的HF indicator发生变化。
    AG可以使用+BIND使能或者禁止任何HF indicator。

  •     End of Service Level Connection

    HF需要知道Service Level Connection被完全建立,这可以通过以下几个方式:
    当且仅当AG通过+BRSF命令告知HF其支持的HF indicator,在HF收到AG通过AT+BIND?命令发来的其支持的HF indicator可认为完全建立。
    当且仅当SDP服务发现AH和AG双方均支持“Call waiting and 3-way calling”,在HFAG通过AT+CHLD命令发来的其对呼叫等待和多方电话的支持,对这种情况,HF indicator不要设置该比特位,AG也不要在+BRSF命令中设置该比特位。
    在HF使用AT+CMER命令成功使能了“Indicator status update”功能,对这种情况SDP服务不应该设置“Call waiting and 3-way calling”比特位。
    如果HF收到AG通过indicator指示当前有电话时,HF查询AG的接听和保持状态来判断是否是未接听电话。
    同样AG侧Service Level Connection完全建立也有几种情况:
    当且仅当HF indicator在HF被设置且AG侧支持的indicator已经通过+BRSF命令应答,则AG以+BIND加OK结尾的命令应答其使能的HF indicator时可认为Service Level Connection完全建立。
    当且仅当“Call waiting and 3-way calling”比特在HF和AG的SDP服务中被置位,在AG通过+CHLD加OK结尾命令成功响应其对呼叫保持和多方电话支持时SLC会被完全建立。对这种情况,+BRSF不应该设置该HF indicator比特位。
    在AG成功响应AT+CMER命令。

1.2 Service Level Connection removal

本节描述释放服务级别连接的过程。

断开服务级连接后,应立即断开HF和AG之间相应的RFCOMM数据链路信道。

此外,作为移除服务级连接的结果,必须移除现有的音频连接。删除L2CAP和链路层是可选的。

应使用“服务水平连接拆除”程序解除已建立的服务水平连接。

HF或AG应启动“服务水平连接解除”程序由于明确的用户请求。

  • HF或AG应根据明确的用户请求启动“服务水平连接解除”程序。
  • 如果在HF或AG中禁用蓝牙功能,则应启动“服务级别连接解除”程序。
  • 如第4.11节所述,如果在AG的持续呼叫中执行“音频连接转移到AG”,则可以启动“服务级别连接释放”程序。如果删除了服务级别连接,

作为这个过程的前提条件,AG和HF之间存在一个正在进行的服务水平连接。

1.3 Transfer of Registration Status


1.3 Transfer of Signal Strength Indication


1.4 Transfer of Roaming Status Indication

1.5 Report Extended Audio Gateway Error Results Code

示例:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!