原创 轻松搞定打电话——定位模组Air201!

2025-2-14 14:06 23 0 分类: 物联网

今天特别分享VoLTE通话功能示例,感兴趣的朋友一起来学。

VoLTE通话功能示例

Air201模组的4G通信功能,通过VoLTE技术实现高清语音通话,支持音频编解码、硅麦输入和喇叭输出。在通话过程中,声音信号通过MIC捕捉并转换为数字音频数据,经4G网络实时传输至对方设备。

这一应用广泛适用于物联网设备中的远程通信、语音交互等场景,提供便捷、高效的通话服务。 

Air201最新资料下载:

www.air201.cn

注:Air201最大可支持8Ω 1.2W功率喇叭(默认),或者4Ω 2.5W功率喇叭。

本文将通过Air201+喇叭+扩展板进行相关演示,教你使用VoLTE通话功能示例,在实际开发中可根据具体情况灵活应用。



一. 搭建环境


新同学建议先看前期的基础知识相关教程,更有助于理解和操作。

可以在LuaTools项目管理中新建一个项目,重新选择底层CORE和脚本;或者在原有项目的基础上,不更换CORE,将原来的脚本删除,添加为demo/cc的脚本。


1.1 硬件准备:


Air201 PCBA

Air201-BTB扩展板(带一个FPC线)

配套USB_BOOT小板、喇叭

可正常上网及通话的SIM卡

带有数据通信功能的数据线

Win10及以上PC

Air201通过FPC线连接BTB扩展板,使用扩展板上的按键,接线如下所示:


1.2 软件准备:


LuaTools调试工具:

https://docs.openluat.com/Luatools

最新固件:https://gitee.com/openLuat/LuatOS-Air201/tree/master/core

最新脚本:

https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/cc

API接口:

https://docs.openluat.com/air201/luatos/api/core/cc


1.3 烧录操作:

由于Air201单板子没有复位键和BOOT键,所以数据线与Air201开发板之间还需要接一个USB_BOOT板(Air201套件里已包含)。

将Air201通过USB_BOOT小板连接电脑,如下图所示:


1.3.1 根据下方操作进行烧录

此时就需要大家先点击Luatools工具上的【下载脚本】或【 下载底层和脚本】,再执行下方操作了。

新同学请先学习LuaTools使用和烧录教程:

https://docs.openluat.com/Luatools/


开发板处于未开机状态:

此时先按住下载模式按键(BOOT键)不放,再长按开机键(POW键)开机。若不出意外开发板将会进入下载模式,LuaTools工具下载进度条会开始跑,这时便可以松开BOOT键和POW键,等到工具提示下载完成即可。


开发板已经处于开机状态:

此时可以先按住BOOT键不放,再短按复位键(RST键)后开发板会重启并进入下载模式。


1.3.2 不同模式下的端口显示


正常开机模式:

下载模式:



二. 示例代码


2.1 初始化驱动ES8311

Air201板子自带了ES8311音频编解码芯片(Audio Codec),所以硬件配置参数是固定的。

ES8311使用了I2C0,电源脚为GPIO2,PA控制脚为GPIO23:


2.2 订阅通话状态

通过sys.subscribe函数订阅了一个名为CC_IND的事件。当这个事件被触发时,会调用后面的匿名函数,传入一个参数 state,表示当前的通话状态。



2.3 注册音频事件回调函数



2.4 通讯录列表



2.5 通话管理状态机


1)IDLE(空闲状态):

系统处于等待状态,准备接收来电或拨号。

转移条件:



2)WAIT_CALLING(等待呼叫状态):

系统在等待后续的拨号操作。

转移条件:



3)CALLING(拨号中状态):

正在拨打电话。

转移条件:



4)PREPARE(准备通话状态):

准备接听来电或拨打电话。

转移条件:



5)CONNECTING(通话中状态):

准备接听来电或拨打电话。

转移条件:



6)DISCONNECTING(挂断流程状态):

处理挂断电话的流程。

转移条件:



2.6 呼叫,挂断按键配置



2.7 运行结果展示

通过LuaTools工具,查看相关运行结果。


1)模组主动拨打电话

空闲状态下按下按键1,默认拨打通讯录第一位联系人,日志打印显示如下:


2)模组主动挂断电话

通话状态下按下按键2,挂断电话,日志打印显示如下:



三、总结


CC库的通话管理API接口共同构成了通话控制的核心功能,使开发者能够高效地管理通话的启动、挂断、接听、参数配置以及附加的通话处理功能。

通过合理利用这些接口,开发者可以构建出具备出色通话体验的应用程序,满足用户在多种通话场景下的需求。同时,也需关注接口之间的协同配合,以确保通话功能的流畅性和可靠性。

今天的分享就到这里了~

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /1 下一条