HFP(hands free profle)

发布时间 2023-07-18 13:32:25作者: 踏浪而来的人

HFP蓝牙免提协议:

1. 角色:

 AG(audio gateway):音频网关,相当于手机

 HF(hand free): 免提端,相当于耳机

  

2. 支持的feature:

 

 

3. SLC(service level connect establishment)服务级连接的建立

 SLC就是一些AT指令的交互,交互完后,SLC就建立成功了。

 前提:SLC建立前必须存在HFP基于RFCOMM的server channel的连接,有了这个连接才能在HF和AG间交互AT command。

 SLC连接过程:

   3.1 支持的feature交换(Supported features exchange):

       a. HF发送AT+BRSF=<HF supported features>告诉AG它支持的feature

     b. AG会发送+BRSF告诉HF它支持的feature

     这样HF和AG都知道了对方都支持的feature。

   3.2 codec协商(Codec Negotiation):

     a. 如果HF支持Codec Negotiation feature,并且通过+BRSF知道了AG也支持Codec Negotiation feature

     b. HF发送AT+BAC=<HF available codecs>指令告诉AG它自己可用的codec(包括msbc、cvsd)
   3.3 AG指示器(AG Indicators):
     Indicators包括:service, call, or call setup
     在检索AG支持的feature后,HF将要确定AG支持的indicators,以及这些indicators 的顺序
     a. HF发送AT+CIND=?指令来检索AG支持的indicators,以及这些indicators 的顺序
     b. HF发送 AT+CIND?来检索当前的indicators的状态
     c. HF发送AT+CMER指令来开启 "Indicators status update",相当于打开了总开关,AG会回应OK
     d. 当AG中indicators的值有改变,AG将发送 +CIEV告诉HF他的indicators的值改变了
     e. 如果HF和AG都支持“Call waiting and 3-way calling” feature,HF将发送AT+CHLD=?命令来检索AG是如何支持call hold and multiparty services
   3.4 HF指示器(HF Indicators)

       a. 如果HF和AG都支持HF Indicator feature,HF将发送AT+BIND=<HFsupported HF indicators>指令通知AG它支持的Indicators,AG会回应OK

     b. HF发送AT+BIND=?来获取AG支持的HF indicators,AG会发送+BIND告诉HF它支持的HF indicators,并跟着OK

     c. 在HF接收到AG支持的HF indicators后,HF将发送AT+BIND?命令来确定开启哪些HF indicators。AG将用+BIND来响应,并跟着OK

     d. 之后,只要HF的indicators改变,他都将发送AT+BIEV指令到AG   

   3.5 结束SLC(End of Service Level Connection):