藍芽電話協定HFP(Hands-Free Profile) 獲取本地號碼/獲取語音信箱號碼/獲取通話時號碼(CLCC)

2020-10-20 14:00:27

零. 概述

本文章主要講下電話擴音協定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