名词
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
示例:
来源:CSDN
作者:xsophiax
链接:https://blog.csdn.net/xsophiax/article/details/104049364