0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解读Air724UG低功耗4G模组软件的语音通话!

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-12-09 09:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇文章以Air724UG模组为例,解读低功耗4G模组软件的语音通话,呈现实用教程供大家参考。

一、音频应用-通话(VoLTE)概述

Air724UG模块的4G通信功能,通过VoLTE技术实现高清语音通话。

在通话过程中,声音信号通过 MIC 捕捉并转换为数字音频数据,经4G网络实时传输至对方设备。同时,Air724UG 支持扬声器(Speaker)输出、耳机(Headset)输出以及听筒(Handset)输出等多种音频输出模式,确保用户在不同场景下都能获得清晰的通话体验。

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

二、准备硬件环境

古人云:工欲善其事,必先利其器。在深入介绍本功能示例之前,我们首先需要确保以下硬件环境的准备工作已经完成。

2.1 Air724UG 开发板

本 demo 使用的是 Air724UG_A14 开发板,如下图所示:

wKgZPGdRKt-ABWkAABNKF_hoTpo104.png

此开发板的详细使用说明参考:
https://docs.openluat.com/air724ug/product/

Air724UG 产品手册中的开发板硬件资料中《EVB_Air724UG_A14 开发板使用说明.pdf》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明 pdf 文档。

2.2 SIM

请准备一张可正常上网的SIM卡,该卡可以是物联网卡(一般不能支持)或您的个人手机卡。

特别提醒:
请确保SIM卡未欠费且网络功能正常,以便顺利进行后续操作。

2.3 PC 电脑

请准备一台配备 USB 接口且能够正常上网的电脑。

电脑操作系统为:
WIN7以及以上版本的WINDOWS系统。

2.4 小喇叭

wKgZO2dRKviAKZX-ABC4uZ6VeXY569.png

2.5 数据通信线

请准备一根用于连接 EVB_Air724UG_A14 开发板和 PC 电脑的数据线,该数据线将实现业务逻辑的控制与交互。

USB 数据线:此数据线不仅用于为测试板供电,还用于查看数据日志。其一端为 Micro-B 接口(俗称老安卓口),用于连接 EVB_Air724UG_A14 开发板;另一端为标准 USB 接口,连接 PC 电脑。

wKgZO2dRKweASTH9AAhFAYDrTnU677.png

2.6 组装硬件环境

2.6.1 请按 SIM 卡槽指示方向正确插入 SIM 卡,避免插反损坏

通常,插入 SIM 卡的步骤如下:

将 SIM 卡的金属卡槽下滑打开。

平稳地将 SIM 卡放入卡槽。

上滑关闭卡槽。

wKgZPGdRKxiAGmuCAA9xBJKN-fw219.pngwKgZO2dRKyWAa1JkAAofTTfZEqA995.png

2.6.2 USB 数据线,连接电脑和 EVB_Air724UG_A14 开发板,如下图所示:

wKgZO2dRKzeAfKYVABFq1f14emI575.png

2.6.3 小喇叭和 EVB_Air724UG_A14 开发板连接,如下图所示:

wKgZPGdRK0OAGj7eAA_dt_Jb5kE814.png

三、准备软件环境

“凡事预则立,不预则废。”在详细阐述本功能示例之前,我们需先精心筹备好以下软件环境。

3.1 Luatools 工具

要想烧录 LuatOS 固件到 4G 模组中,需要用到的调试工具:Luatools;

下载地址:
https://docs.openluat.com/Luatools/

Luatools 工具集具备以下几大核心功能:

一键获取最新固件:自动连接服务器,轻松下载最新的模组固件。

固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中。

串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能。

串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求。

Luatools 下载之后, 无需安装,放入新建的文件夹后点击 Luatools_v3.exe 运行,出现如下界面,就代表 Luatools 安装成功了:

wKgZPGdRK1mAN_eEAAIPRJid43Y290.png

3.2 烧录代码

首先要说明一点:脚本代码, 要和固件的 LuatOS-Air_V4030_RDA8910_TTS_NOLVGL_FLOAT.pac(注:支持 LCD,字库,图片,TTS,WIFI Scan,SD 卡,VOLTE) 文件一起烧录。

整体压缩文件:内含有四个文件,如图所示。

wKgZPGdRK2eALKd3AAG3J3cqVBg219.png

3.2.1 压缩文件:完整文件包

https://docs.openluat.com/air724ug/luatos/app/audio/volte/

3.2.2找到烧录的固件文件

官网下载,底层 core 下载地址:
https://docs.openluat.com/air724ug/luatos/firmware/

wKgZPGdRK3OASMpYAAFQhQyT4_M497.pngwKgZO2dRK4CALmUpAAOrhifcnIg089.png

3.2.3正确连接电脑和 4G 模组电路板

使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线;

3.2.4识别 4G 模组的 BOOT 引脚

在下载之前,要用模组的 BOOT 引脚触发下载。

具体到 EVB_Air724UG_A14 开发板:

当我们模块没开机时,按着下载模式键然后长按开机键开机。

当我们模块开机时,按着下载模式键然后点按重启键即可。

wKgZPGdRK5CAUu0VABJsRggaqy4176.png

3.2.5识别电脑的正确端口

判断是否进入 BOOT 模式:

模块上电,如果是正常开机运行(没有进入boot下载模式),此时在电脑的设备管理器中,查看串口设备,如下图所示(会出现3个或者4个端口):

wKgZO2dRK5uAG6Z_AAO_AJZkswg037.png

先按下载模式再按一下重启,会出现一个端口表示进入了 BOOT 下载模式,如下图所示:

wKgZPGdRK6uAAZEWAANt_khtxZc233.png

一旦进入了boot下载模式,表示硬件连接上已经处于就绪状态,此时就可以使用Luatools工具进行烧录了!

3.2.6新建项目

首先,确保你的 Luatools 的版本大于或者等于 3.0.6 版本.

在 Luatools 的左上角上有版本显示的,如图所示:

wKgZPGdRK7aAIExFAAFl74lVntg302.png

Luatools 版本没问题的话, 就点击 Luatools 右上角的“项目管理测试”按钮,如下图所示:

wKgZO2dRK8KAWdaAAAGE_-CxYys384.png

这时会弹出项目管理和烧录管理的对话框,如下图:

wKgZO2dRK86AWHeIAASKSKOjxNc932.png

3.2.7开始烧录

选择 Air724ug 开发板对应的底层 core 和 main.lua 脚本文件。下载到板子中。

wKgZO2dRK9uAfMqPAAUGOYh0He4611.png

一直按下载模式按键,再按一下重启,然后点击下载底层和脚本,如图所示:

wKgZO2dRK-iACEWtAALtagclG1k153.png

出现如图所示,表示已进入 BOOT 模式,可以松开下载模式按键,等待下载完成。

wKgZPGdRK_OAceZRAAH5b7oomuc370.png

下载完成,如图所示

wKgZO2dRK_2AC7YmAAJLs13TTWo680.png

四、音频应用-通话(VoLTE)基本用法

4.1 本教程实现的功能定义:

CC 库在 EVB_Air724UG_A14-LuatOS 中扮演了关键角色,它提供了一种高效、灵活且用户友好的呼叫控制解决方案。本次介绍的目标是帮助开发者迅速了解并精通 CC 库的 API 接口,以便在 VoLTE 通话中实现精确的呼叫管理和控制功能。

4.2 文章内容引用

EVB_Air724UG_A14 开发板软硬件资料 :
EVB_Air724UG_A14 产品手册:https://docs.openluat.com/air724ug/product/

以下接口函数不做详细介绍,可通过此链接查看具体介绍:
audio_API:
https://doc.openluat.com/wiki/21?wiki_page_id=2327#API_9

4.3 API 接口详解

4.3.1 cc.anyCallExist()

解说:cc.anyCallExist 用于检查当前是否存在任何活动的通话。这个 API 不需要任何参数。

参数:

返回值:

布尔值(true 或 false):如果存在活动的通话,则返回 true;否则返回 false。

举例:

wKgZO2dRLBGAQhvWAAEs2qY1jOU919.png

4.3.2 cc.getState(num)

解说:cc.getState 用于获取指定通话的状态。它接收一个通话标识符(可能是通话句柄或电话号码,具体取决于实现)作为参数,并返回一个表示通话状态的值(通常是枚举或常量)。

参数:

num:通话标识符(电话号码)。

返回值:

通话状态值(枚举或常量):表示指定通话的当前状态,如空闲、来电、正在拨打、已接通、保持等。

举例:

wKgZO2dRLCCAbM5BAALpqwR_XUc915.png

4.3.3 cc.dial(num, delay)

解说:cc.dial 用于拨打一个电话号码。它接收两个参数:要拨打的电话号码和一个可选的延迟时间(以秒为单位),在拨打之前可以等待一段时间。

参数:

num:要拨打的电话号码。

delay(可选):可选参数,默认为0延时 delay 毫秒后,才发起呼叫。

返回值:

bool result,true 表示允许发送 at 命令拨号并且发送 at,false 表示不允许 at 命令拨号。

举例:

wKgZPGdRLCyAR23BAAC6zUzEn8Q631.png

4.3.4 cc.hangUp(num)

解说:cc.hangUp 用于挂断指定通话。它通常接收一个通话标识符(如通话句柄或电话号码)作为参数,尽管在某些实现中可能不需要参数(如果只有一个活动通话)。

参数:

num(可选):号码,若指定号码通话状态不对,则直接退出,不会执行挂断,若挂断时会挂断所有电话。

返回值:

无。

举例:

wKgZO2dRLDeAPGniAABXQZEUzhE761.png

4.3.5 cc.dtmfDetect(enable, sens)

解说:cc.dtmfDetect 用于启用或禁用双音多频(DTMF)信号的检测。它接收两个参数:一个布尔值表示是否启用检测,以及一个可选的灵敏度值。

参数:

enable:可选参数,默认为niltrue 使能,false 或者 nil 为不使能。

sens(可选):可选参数,默认为3灵敏度,最灵敏为 1。

返回值:

无。

举例:

wKgZPGdRLEGADRjuAABMEhuKoWI621.png

4.3.6 cc.accept(num)

解说:cc.accept 用于接听传入的通话。它通常接收一个通话标识符作为参数,尽管在某些实现中可能不需要(因为通常只有一个传入的通话等待接听)。

参数:

num(可选):号码,若指定号码通话状态不对,则直接退出,不会接通。

返回值:

举例:

wKgZPGdRLEuAB6pBAABZyZswmY4218.png

4.3.7 cc.transVoice(data, loop, downLinkPlay)

解说:cc.transVoice 通话中发送声音到对端,必须是 12.2K AMR 格式。

参数:

data:12.2K,AMR 格式的数据。

loop:可选参数,默认为nil是否循环发送,true 为循环,其余为不循环。

downLinkPlay:可选参数,默认为nil声音是否在本端播放,true 为播放,其余为不播放。

返回值:

布尔值或状态码:表示传输操作是否成功启动。具体返回值可能因实现而异。

举例:

wKgZO2dRLFeAVL5jAACyOoiyBkg907.png

4.3.8 cc.sendDtmf(str, playtime, intvl)

解说:cc.sendDtmf 用于在通话中发送双音多频(DTMF)信号。它接收三个参数:一个包含 DTMF 字符的字符串,每个字符的播放时间,以及字符之间的间隔。

参数:

str:dtmf 字符串,仅支持数字、ABCD*#。

playtime:可选参数,默认为100每个 dtmf 播放时间,单位毫秒。

intvl:可选参数,默认为100两个 dtmf 间隔,单位毫秒。

返回值:

举例

wKgZO2dRLGGABUBEAAC6SCJr1Bk887.png

五、音频应用整体演示

5.1 音频应用-录音成果演示与深度解析:视频 + 图文全面展示

wKgZPGdRLGyASwOhAAROk3UBjaE607.png

5.1.11完整实例深度剖析

wKgZO2dRLIOAObw2AANcil20fFs911.png

wKgZO2dRLJWAVcUrAAYAvdLwowY114.png

wKgZPGdRLKOAUuDdAAP0MZB-24o329.png

wKgZPGdRLLOAQuxZAAOPjU7FCPo814.png

wKgZO2dRLMWAfXuRAAPcBSOVJIw218.png

wKgZO2dRLNOAeKiQAAQXE99zN5E801.png

wKgZPGdRLOGAFtZpAASbIig520E707.png

wKgZO2dRLPGAPQnMAARgNRG86vk886.png

wKgZO2dRLQOAGXwvAAM0RZmomI8841.png

wKgZO2dRLRSARmpvAAQ-FD14_MQ838.png

wKgZPGdRLSSAdX6RAAJzLsGdkZ4271.png

六、总结

CC 库的通话管理 API 接口共同构成了通话控制的核心功能,使开发者能够高效地管理通话的启动、挂断、接听、参数配置以及附加的通话处理功能。通过合理利用这些接口,开发者可以构建出具备出色通话体验的应用程序,满足用户在多种通话场景下的需求。同时,也需关注接口之间的协同配合,以确保通话功能的流畅性和可靠性。

七、常见问题

打不了电话,确认能不能正常注册上网络,有没有欠费。确认卡是否开通 VOLTE 功能, 只有开通 VOLTE 功能才能进行语音通话。固件是否支持 VOLTE 功能,固件需要支持 VOLTE 功能。注:建议使用手机卡测试,普通物联网卡可能不支持 VOLTE 功能。

audio.setMicGain()通话中设置 mic 增益,必须在通话建立以后设置。

暂不支持视频通话,且因为只有 30W 像素,效果较差。

八、扩展

通话过程中给对端播放音频文件:demo 有案例打开代码中注掉的部分即可进行测试,如图所示。

wKgZO2dRLTOAXxktAASLQnuXTpU403.png

分享完毕


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 4G
    4G
    +关注

    关注

    15

    文章

    5607

    浏览量

    123248
  • 低功耗
    +关注

    关注

    12

    文章

    2990

    浏览量

    106250
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    分步实操 | Air724UG低功耗模组软件中复刻高效FTP示例!

    本文要说的是低功耗4G模组Air724UG软件中复刻高效FTP示例,我已整理成文供大家参考。
    的头像 发表于 12-03 11:45 1503次阅读
    分步实操 | <b class='flag-5'>Air724UG</b><b class='flag-5'>低功耗</b><b class='flag-5'>模组</b><b class='flag-5'>软件</b>中复刻高效FTP示例!

    ESP32S2 WROVER在使用AT指令获取4G模组时,dte会报超时怎么解决?

    模组:ESP32 S2 WROVER 4G模组:合宙Air724UG 在使用AT指令获取4G模组
    发表于 06-27 06:54

    air724ug开发板

    air724ug开发板,最近购买了一块4G开发板来玩玩,做个开发记录开发板采用合宙Air724UG模块作为主控,没有外挂其它单片机,原来的2/4G模块都是通过AT指令串口外挂单片机,此
    发表于 07-22 07:25

    STM32+Air724UG基本控制篇

    Air724UG,4G Cat.1全网通③基本外设:液晶OLED(IIC); RGB三色灯;温湿度传感器(DHT1...
    发表于 08-20 06:09

    Air724UG模块及其硬件接口规范

    1. 绪论本文档定义了Air724UG模块及其硬件接口规范,电气特性和机械细节,通过此文档的帮助,结合我们的应用手册和用户指导书,客户可以快速应用Air724UG模块于无线应用。2.综述2.1
    发表于 11-11 06:44

    Air724UG是什么

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Air724UG是什么?二、AT是什么?三、服务器是什么?四、我们要做什么?五、我们该怎么做?0.准备工作1·连接模块
    发表于 12-13 07:07

    合宙低功耗4G模组Air724UG ——产品规格书

    Air724UG 是合宙通信推出的超小封装 LTE Cat.1 bis 模块;采用紫光展锐的UIS8910平台,支持 LTE 3GPP Rel.13 技术。是4G全网通模块,可适应不同的运营商和产品,确保产品设计的最大灵活性。
    的头像 发表于 09-10 17:47 2547次阅读
    合宙<b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air724UG</b> ——产品规格书

    UART通信入门:4G模组软件的实践指南

    本文将对4G模组Air724UG软件的UART做出相关示例,希望想了解此模组的朋友们收藏好仔细看。
    的头像 发表于 11-17 00:07 1833次阅读
    UART通信入门:<b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>软件</b>的实践指南

    4G模组SD卡使用技巧|专家指南

    今天我们学习的是4G模组SD卡使用技巧,以Air724UG为例做出指南供大家参考。
    的头像 发表于 12-14 09:37 1162次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b>SD卡使用技巧|专家指南

    SPI与4G模组的集成:技术要领篇

    今天咋们要讲的是SPI与4G模组的技术要领,以低功耗模组Air724UG为例,展示给大家学习。
    的头像 发表于 11-20 23:25 1052次阅读
    SPI与<b class='flag-5'>4G</b><b class='flag-5'>模组</b>的集成:技术要领篇

    4G模组Air724UG软件示例:UDP实战演练!

    关于4G模组Air724UG软件的UDP示例,今天我将对其实战演练,整理成文示例展示:
    的头像 发表于 11-26 12:10 1085次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air724UG</b><b class='flag-5'>软件</b>示例:UDP实战演练!

    4G模组Air724UG软件教程:KEYPAD示例!

    本回我要说的是低功耗4G模组Air724UG的KEYPAD示例,我已整理成文,特供大家参考。
    的头像 发表于 11-30 09:44 1125次阅读
    <b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>Air724UG</b>的<b class='flag-5'>软件</b>教程:KEYPAD示例!

    藏箱子里Air724UG模组LuatOS开发的HTTP示例!

    今天我们来学习的是我珍藏已久的低功耗模组Air724UG的LuatOS开发HTTP示例,献给大家。
    的头像 发表于 11-30 09:42 1081次阅读
    藏箱子里<b class='flag-5'>Air724UG</b><b class='flag-5'>模组</b>LuatOS开发的HTTP示例!

    低功耗模组软件的UDP示例 基础教程篇

    本文以常用的低功耗4G模组Air724UG为例,做出关于低功耗模组
    的头像 发表于 12-02 14:53 1127次阅读
    <b class='flag-5'>低功耗</b><b class='flag-5'>模组</b><b class='flag-5'>软件</b>的UDP示例   基础教程篇

    轻松攻克低功耗4G模组软件的FTP示例!

    今天是以Air724UG模组为例,轻松攻克低功耗4G模组软件的FTP示例。
    的头像 发表于 12-05 09:08 958次阅读
    轻松攻克<b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模组</b><b class='flag-5'>软件</b>的FTP示例!