零. 概述

由于HFP feature小节太多,所以我们计划本章把相近的feature合并,本文章主要讲下电话免提协议HFP(Hands-Free Profile)Audio Connection handing以及Audio Connection transfer during an outgoing call,就是一下HFP feature中的NO.3跟NO.7。

其中Audio Connection handing包括:

1)Audio Connection set up(建立SCO连接)

2)Audio Connection release(断开SCO连接)

3)Codec Connection set up(Codec建立)。

其中Audio Connection transfer during an outgoing call包括:

1)Audio Connection transfer towards the HF(建立SCO连接)

2)Audio Connection transfer towards the AG(断开SCO连接)。

另外,这两个feature我也录制了btsnoop,在资料中的...\STM32_UBUNTU_BLUETOOTH\2-蓝牙资料\蓝牙协议分析hfp_audio_transfer.log,还生成了流程图等。

一. 声明

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

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。

第二篇: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

--------------------------------------------------------------------------------------------------------------------------

二. Audio Connection handing介绍

Audio connection handing分为3个部分介绍,audio connection大家要通过看HCI protocol中的SCO才能知道,我来给大家用最简短的概括,说白了就是一个数据通道,主要传输电话音频数据。

2.1 Audio Connection set up

Aududio connection HF & AG都可以建立.

1) 从AG建立audio connection如图所示

Btsnoop流程如下:

2) 从HF建立audio connetion的过程如下:

AT+BCC (Bluetooth Codec Connection)

这个AT command主要是触发AG来建立codec connection

流程如下:

2.2 Audio Connection release

HF和AG都可以主动断开SCO,主动断开通过HCI command ,remote断开会收到HCI disconnect的event

2.3 Codec Connection set up

Codec connection的建立也很简单,在SLC建立得而时候如果发送过AT+BAC,那么AG会发送+BCS选择codec id,HF回复AT+BCS回复相同得而codec id,然后AG回复OK

三. Audio Connection transfer during an outgoing call介绍

3.1 Audio Connection transfer towards the HF

3.2 Audio Connection transfer towards the AG

此部分比较简单,transfer towards to the HF就是建立SCO,transfer towards to the AG就是断开SCO,不再重复

蓝牙电话协议HFP(Hands-Free Profile) SCO建立/释放/在通话中Audio transfer相关推荐

  1. 蓝牙电话协议HFP(Hands-Free Profile) 接听来电/挂断来电(HFP Accept/Reject incoming call)

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)接听来电/挂断来电(HFP Accept/Reject incoming call)以及在挂断电话(Terminat ...

  2. 蓝牙电话协议HFP(Hands-Free Profile) 传输手机状态信息(信号/漫游/电量/运行商/电话状态)

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)Phone status information.包括Signal Strength(信号强度),Roaming S ...

  3. 蓝牙电话协议HFP(Hands-Free Profile) 三方通话功能相关的流程介绍 Three-way call

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)Call waiting notification,Three-Way Call Handling,Response ...

  4. 蓝牙电话协议HFP(Hands-Free Profile) 通过号码拨打电话/memory拨打电话(Memory Dialing)/尾号重播(Last Number Re-Dial) 功能介绍

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)通过号码拨打电话(Place a call with the phone number)/memory拨打电话(Me ...

  5. 蓝牙电话协议HFP(Hands-Free Profile) 获取本地号码/获取语音信箱号码/获取通话时号码(CLCC)

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)跟电话号码有关的feature,分别有Calling Line Identification (CLI) Notif ...

  6. 蓝牙协议HFP(Hands-Free Profile)电话免提协议 Connection management 连接管理HFP SLC 的建立跟释放

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)Connection management.包括connection establishment     跟conn ...

  7. 蓝牙电话/耳机和蓝牙音乐profile

    蓝牙协议的几种profile: btservice: 统一管理,控制其他服务. a2dp: 和蓝牙耳机,音频有关,比如听歌等. avrcp: 音频/视频通过连接的蓝牙控制,比如放歌时控制暂停等. ga ...

  8. 蓝牙协议--HFP协议--转

    HFP协议 目前HFP的使用场景有车载蓝牙,耳机和PDA,定义了AG和HFP两种角色. AG(Audio Gate)音频网关-音频设备输入输出网关      HF(Hands Free)免提-该设备作 ...

  9. 蓝牙协议栈 电话免提协议HFP(Hands-Free)概念讲解

    零. 概述 主要介绍下蓝牙协议栈(bluetooth stack) 电话免提协议HFP(Hands-Free) 协议概念介绍. 一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下 ...

最新文章

  1. MATLAB 循环子字符串
  2. 浪潮NF5270M3 刷uefi_新零售浪潮中,开为科技利用刷脸支付帮门店“运营”人
  3. java JSONObject
  4. 捷信达登录信息代码133_报名!广州40所热门民办初中学费均价38678,有学校涨幅133%...
  5. Kube-OVN:基于OVN的开源Kubernetes网络实践
  6. matlab 设计带阻型陷波滤波器_Q值可调、最大增益恒定的带通滤波器
  7. 【Flink】未解决 FLink 写 hive MemoryManager New Memory allocation smaller than the minimum allocation size
  8. docker 镜像修改的配置文件自动还原_基于Docker搭建Redis一主两从三哨兵
  9. MFCWinInet学习
  10. QUdpSocket 4.6 严重丢包
  11. 由ViewStateException: The client disconnected想到的
  12. Relay log read failure解决办法
  13. 计算机模拟学,深度学习是让计算机模拟
  14. vue如何设置视频封面_vue设置视频封面教程 vue如何修改标题
  15. 【BUG】【已解决】VS2019:应用程序无法正常启动(0x000007b)
  16. python股票回测_python量化入门(一)——利用特定指标筛选股票并回测
  17. [干货分享]硬件测试快速入门你必须了解的知识!
  18. matlab ode45修改,matlab ode45增加输入值
  19. 江在川上曰:vue中使用swiper
  20. arcgis server里预览地图显示空白

热门文章

  1. 复活→移步:https://beiyuouo.github.io/
  2. Android多线程断点续传下载原理及实现,移动开发工程师简历
  3. 【Linux】Alibaba Cloud Linux 3 中第二硬盘、MySQL8.*、MySQL7.*、Redis、Nginx、Java 系统安装
  4. 极路由s1有wds_极路由1、1s等机型刷OpenWrt--成为真正的极客
  5. python List中删除特定元素
  6. 最新 955 不加班的公司名单(2022版)
  7. 955 不加班的公司名单:955.WLB
  8. 经典c语言程序创意,49个经典年会小游戏(绝对有创意)C
  9. 计算机会计模块考试,会计电算化考试
  10. Python多进程写Kafka