蓝牙电话协议HFP(Hands-Free Profile) 获取本地号码/获取语音信箱号码/获取通话
发表时间:2020-10-19
发布人:葵宇科技
浏览次数:273
零. 概述
本文章主要讲下电话免提协议HFP(Hands-Free Profile)跟电话号码有关的feature,分别有Calling Line Identification (CLI) Notification(也就是使能在incoming call的时候传输电话号码),Voice Recognition Activation(也就是获取语音信箱的电话号码),Subscriber Number Information(获取本地电话号码),Enhanced Call Status Mechanisms(获取CLCC)。就是一下HFP feature中的NO.13和NO.16以及NO.20和NO.21a。

一. 声明
本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。
第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等
第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等
第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。
第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)
第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等
第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展
第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。
另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。

-------------------------------------------------------------------------------------------------------------------------
CSDN学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144
蓝牙交流扣扣群:970324688
Github代码:https://github.com/sj15712795029/bluetooth_stack
入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708
蓝牙学习目录:https://blog.csdn.net/XiaoXiaoPengBo/article/details/107727900
--------------------------------------------------------------------------------------------------------------------------
二. Calling Line Identification (CLI) Notification
![]()
The HF may issue the AT+CLIP command to enable the “Calling Line Identification notification” function in the AG.
If the calling subscriber number information is available from the network, the AG shall issue the +CLIP unsolicited result code just after every RING indication when the HF is alerted in an incoming call.
AT+CLIP=1 à enable Calling Line Identification (CLI) Notification
AT+ CLIP =0 àdisable Calling Line Identification (CLI) Notification
如果使能后,那么来电后AG就会自动发送过来 +CLIP:xxx,每次RING过来后这个命令也会过来,比如 +CLIP: "15553243910",129

三. Attach a phone number to a voice tag


比如你手机设置的按键1长按是拨打10086,那么AT+BINP=1正常就是获取1的电话号码,但是这个功能也是比较鸡肋,用我自己的手机发送,会回复ERROR
四. Subscriber Number Information
![]()
This procedure allows HF to query the AG subscriber number.
说白了就是获取本地的号码




五. Enhanced Call Status Mechanisms
![]()
The HF shall execute this procedure to query the list of current calls in AG



比如往外拨打10086,在通话中中,问询CLCC会返回
+CLCC: 1,0,0,0,0,"10086",129








