LuatOS-Air AT应用指南--通话语音指令流程

本文介绍了CAT1模块如Air720UG和Air724UG如何通过AT指令开启VOLTE以进行语音通话,同时也提到了支持2G的Air720UH模块的语音通话特性。详细阐述了ATD命令进行语音和数据呼叫的操作,包括呼叫建立、接听、挂断以及呼叫保持和多方通话的相关AT指令。此外,还讨论了紧急号码拨打的问题和不同网络环境下的表现。
摘要由CSDN通过智能技术生成

1 概述:
对于只支持 4G 的 CAT1模块(Air720UG、Air724UG)而言,需要用本命令打开 VOLTE 功能才能进行语音通话。而 Air720UH 模块支持 4G 和 2G,而 2G 支持语音通话,所以不需要打开 VOLTE 就可以进行语音通话。但不支持电信2G。

2 相关AT指令介绍和示例
发起呼叫:ATD
执行命令,用于发出语音呼叫,呼叫号码长度不超过20位。
语法规则:

命令类型 语法 返回和说明
执行命令 ATD; 命令成功,则返回:
OK
如果成功建立连接,则返回:
CONNECT
如果没检测到拨号音 dial tone(并且当 ATX2 or ATX4 时): NO DIALTONE
If busy(并且当 ATX3 or ATX4): BUSY
通话被挂断或建立失败: NO CARRIER
如果被叫无应答: NO ANSWER
ATD 数据呼叫成功,则返回:
参数定义:

参数 定义 取值 对取值的说明
呼叫号码 由以下字符组成:0-9, * , #, +, A, B, C 注:拨 112 可以建立紧急呼叫,不需要 SIM 卡。
举例:

命令(→)/返回(←) 实例 解释和说明
→ AT+SETVOLTE=1 打开VOLTE功能
← OK 注:对于只支持4G的CAT1模块(Air720UG、 Air724UG)而言,需要用 AT+SETVOLTE=1 命令打开 VOLTE 功能才能进行语音通话。而 Air720UH 模块支持 4G 和 2G,所以不需要打开 VOLTE 就可以进行语音通 话
→ ATD13162398; 语音呼叫号码13162398(***是为了保护隐私,将实际数字隐去,实际操作时要如实输入号码)
← OK CONNECT 对方接听电话
→ AT+CHUP 模块主动挂断通话
← OK 返回OK
**6.3 **接听来电:ATA
有只有一个来电(RING)时,输入该命令接听来电。当有更多的来电时,请使用 AT+CHLD命令接听新的来电。
语法规则:

命令类型 语法 返回和说明
执行命令 ATA OK
举例:

命令(→)/返回(←) 实例 解释和说明
←(URC) RING 有RING上报,表示有来电。 注:RING 是一个URC命令(Unsolicited Result Code )
→ ATA 模块接听来电
← OK 返回OK,说明接听来电成功
挂断通话:ATH
通话过程中,输入执行命令会挂断所有电话,包括当前通话(active)、等待通话(waiting)和挂起通话(holding)。
语法规则:

命令类型 语法 返回和说明
执行命令 ATH OK
举例:

命令(→)/返回(←) 实例 解释和说明
←(URC) RING 有RING上报,表示有来电。
→ ATA 模块接听来电
← OK 建立通话
→ ATH 挂断通话
← OK OK
挂断通话:AT+CHUP
通话过程中,输入执行命令会挂断所有电话,包括当前通话(active)、等待通话(waiting)和挂起通话(holding)。
作用与 ATH 相同。
语法规则:

命令类型 语法 返回和说明
执行命令 AT+CHUP OK
列出所有当前的呼叫:AT+CLCC
语法规则:

命令类型 语法 返回
执行命令 AT+CLCC [+CLCC:,

,,,[,,[,]][+CLCC:, ,,,[,,[,]][…]]]
测试命令 AT+CLCC=? OK
参数定义:

参数 定义 取值 对取值的说明
呼叫识别 id - 整数型;请参考3GPP TS22.030中第 4.5.5.1 节中描述,此参数可在+CHLD命令中被使用

呼叫方向 0 移动发起的呼叫(MO 呼叫) 1 移动终止的呼叫(MT 呼叫) 呼叫状态 0 active 1 held 2 dialing(MO 呼叫) 3 alerting(MO 呼叫) 4 incoming(MT 呼叫) 5 waiting(MT 呼叫) 7 released(by network) 承载/电信业务 0 语音 1 数据 2 传真 该呼叫是否属于多方呼叫 0 不属于 1 属于 对方号码 - 字符串类型,需加双引号。电话号码格式符合 定义 呼叫号码类型,具体请参考 3GPP TS 24008 10.5.4.7 部分 129 未知类型 145 国际号码 161 国内号码 177 特殊的网络号码 对应的电话簿中姓名 - 字符型 举例:

命令(→)/返回(←) 实例 解释和说明
→ ATD10086; 语音呼叫号码10086
← OK
→ AT+CLCC 对方接听电话前查询下通话情况
← +CLCC: 1,0,2,0,0,“10086”,129,“” OK =2 表示拨号中,对方尚未接听
← CONNECT 对方接听
→ AT+CLCC 此时再查询下通话状态
← +CLCC: 1,0,0,0,0,“10086”,129,“” = 0 表示电话接通并保持激活
OK
→ AT+CHUP 挂电话
← OK
→ AT+CLCC 显示通话状态
← OK 只有一个OK,表示没有通话
呼叫保持和多方通话:AT+CHLD
使用该指令,可以控制 TA的附加业务:呼叫保持和多方通话。呼叫能被保持,恢复,释放和加入多方通话。

语法规则:

命令类型 语法 返回
设置命令 AT+CHLD= OK
测试命令 AT+CHLD=? +CHLD: (取值列表) OK
语法规则:

参数 定义 取值 对取值的说明
整数型 0 释放所有已保持的呼叫或者为等待中的呼叫设置用户决定用户忙(UDUB)条件
1 如果存在当前呼叫,释放所有当前呼叫并接听另外一个已保持或等待中的呼叫
1X 释放当前某一特定的呼叫X
2 如果存在当前呼叫,保持所有当前呼叫并接听另外一个已保持或等待中的呼叫
2X 保持除呼叫 X 外的所有当前呼叫
3 将一个被保持(held)的通话加入到活跃(active)通话中(建立多方通话)
举例:

命令(→)/ 返回(←) 实例 解释和说明
→ AT+CCWA=1,1
← OK
→ ATD13798; 呼叫13798
← OK
←(URC) CONNECT 对方接听,通话建立,双方通话中
←(URC) +CCWA: “13601*****97”,129,1 有又一个电话进来,此时会有如此URC上报
→ AT+CHLD=2 HOLD第一路(+CLCC中id=1),接通第二路 (+CLCC中id=2)
← OK
→ AT+CLCC 查询下当前所有当前通话
← +CLCC: 1,0,1,0,0,“137*98",129 +CLCC: 2,1,0,0,0,"1360197”,128,“TEST” OK 第一路第三个参数即=1,表示被保持第二路=0,表示正处激活状态
→ AT+CHLD=21 切回到第一路
← OK
→ AT+CHLD=3 建立三方通话(前提为:SIM卡已经开通此功能)
← OK
→ AT+CHLD=11 释放第一路
← OK
产生 DTMF 音:AT+VTS
DTMF(Double Tone Multiple Frequency,双音多频),用来在电话建立以后拨打分机号码或自动语音服务。
语法规则:

命令类型 语法 返回和说明
设置命令 AT+VTS=或 AT+VTS=[,] OK
测试命令 AT+VTS=? +VTS:(取值列表),(取值列表) OK
参数定义:

参数 定义 取值 对取值的说明
单个DTMF 单个 ASCII 字符,不需要双引号””。范围如下 0-9, #,*, A-D。DTMF 持续时间定义如下: 如果AT+VTS=,则持续时间通过命令+VTD 来设置;如果AT+VTS=,,则持续时间通过定义
持续时间 1~10 tone 的持续时间,以1/10 秒为单位
举例:

命令(→)/ 返回(←) 实例 解释和说明
→ AT+VTS=?
← +VTS: (0-9,*,#,A,B,C,D),(1-10) OK
以下的例子是拨打总机接通后,再用DTMF拨打分机109:
→ ATD10086; 拨打10086
← OK CONNECT 接通
→ AT+VTS=2 选择自动语音服务中的2服务
← OK
DTMF TONE 周期:AT+VTD
语法规则:

命令类型 语法 返回
设置命令 AT+VTD= OK
查询命令 AT+VTD? +VTD: OK
测试命令 AT+VTD=? + VTD: (取值列表) OK
参数定义:

参数 定义 取值 对取值的说明
Tone的长度 1~10 以1/10 秒为单位的tone 持续时间
音频 MIC 增益设置指令:AT+CACCP
本命令设置音频 MIC 增益 注意:语音业务的音频参数必须在通话过程中设置
语法规则:

命令类型 语法 返回
设置命令 AT+CACCP=, ,, OK
参数定义:

参数 定义 取值 对取值的说明
设备应用模式 0 Voice Call NB
2 Music Record
5 Voice Call WB
通道 0 HandSet
1 HandFree
2 Headset4P
3 Headset3P
增益类型 0 Ingain
6 Recordgain
增益值 由算法增益和模拟增益构成: 算法增益等级0-7,模拟增益0-15, 小端编码。 例如:设置算法增益为7,模拟增益为14,则gainHex为“07000E00”
举例:

命令(→)/ 返回(←) 实例 解释和说明
→ AT+SETVOLTE=1 打开VOLTE功能
← OK
→ ATD13162398; 语音呼叫号码13162398(***是为了保护隐私,将实 际数字隐去,实际操作时要如实输入号码
← OK CONNECT 对方接听电话
→ AT+CACCP=5,1,0,“07000f00” 设置通话模式MIC增益,算法增益等级为7,模拟增益为15
← +CACCP: OK 返回OK,设置成功
→ AT+CHUP 模块主动挂断通话
← OK 返回OK
3 相关资料以及购买链接
《AT指令手册》

相关开发板购买链接
Air724UG开发板
Air724 开发板使用说明

4 常见问题
AT+CACCP 语音业务的音频参数必须在通话过程中设置
紧急号码拨号问题:
常用紧急号码:报警求助 110 ,火警119 ,医疗救护 120 ,交通事故 122

拨号流程: 移动卡注册时拨打110号码时是走的正常号码呼叫,VOLTE正常能正常接通;电信卡注册时网络是提供了一个紧急号码列表给终端,110在其列表里面,所以拨打110时终端走的是紧急呼叫,网络又实际不支持,所以会CSFB TO 2G尝试,所以打不通。而加上区号走的是正常号码呼叫流程,在LTE下可以呼叫成功。

具体实测数据如下:
724开发板测试4G情况,720UH开发板测试2G情况,110,119,120,122情况应该一样,这里没有全部拨打,下面列举的是实际测试过的情况。

卡 网络 紧急号码是否加区号 是否可以成功呼叫紧急号码 成功或失败的原因
不插卡 2G 加区号 112打不通,110,119,120,122打不通 只能拨打紧急号码
不插卡 2G 不加区号 112打通语音提示,110,119,120,122打通语音提示 属于紧急号码可以打通
不插卡 4G 加区号 112打不通,110,119,120,122打不通 4G网络不支持紧急拨号
不插卡 4G 不加区号 112打不通,110,119,120,122打不通 4G网络不支持紧急拨号
移动卡 2G 加区号 112提示号码不存在,110可以正常打通 112加区号当不存在号码处理,110当普通号码处理
移动卡 2G 不加区号 112打通语音提示,110可以正常打通 属于紧急号码可以打通
移动卡 4G 加区号 112打不通,110可以正常打通 112加区号当不存在号码处理,110当普通号码处理
移动卡 4G 不加区号 112打不通,110,119,120可以正常打通 112当不存在号码处理,110,119,120当普通号码处理
联通卡 2G 加区号 112提示号码不存在,110可以正常打通 112加区号当不存在号码处理,110当普通号码处理
联通卡 2G 不加区号 112打通语音提示,110可以正常打通 属于紧急号码可以打通
联通卡 4G 加区号 112打不通,110可以正常打通 112加区号当不存在号码处理,110当普通号码处理
联通卡 4G 不加区号 112打不通,110可以正常打通 112当不存在号码处理,110当普通号码处理
电信卡 2G 加区号 112打不通,110打不通 不支持电信2G
电信卡 2G 不加区号 112打不通,110打不通 不支持电信2G
电信卡 4G 加区号 112提示号码不存在,110可以正常打通 112加区号当不存在号码处理,110当普通号码处理
电信卡 4G 不加区号 112打不通,110打不通 当紧急号码处理,4G网络不支持紧急拨号
CAT1是否支持视频通话?
不支持
移动、电信,联通卡的通话功能支持情况列表
固件是否支持VOLTE可以通过AT口发送AT+SETVOLTE?查询,0 表示关闭VOLET,1表示打开VOLET功能。
模块 卡 固件是否支持VOLTE 是否支持通话功能
720UH 移动卡 是 是
720UH 移动卡 否 是
720UH 联通卡 是 是
720UH 联通卡 否 是
720UH 电信卡 是 是,卡要开通VOLTE功能
720UH 电信卡 否 否
724UG 移动卡 是 是,卡要开通VOLTE功能
724UG 移动卡 否 否
724UG 联通卡 是 是,卡要开通VOLTE功能
724UG 联通卡 否 否
724UG 电信卡 是 是,卡要开通VOLTE功能
724UG 电信卡 否 否
连接耳机的时候,通电话过程中,耳机没有声音
需要通过,语音通道切换:AT+AUDCH指令设置为耳机通道
详细接口说明:音频播放

模组在电话通话中,能识别对方电话按键吗?
不能,不支持。

可以读到SIM卡的手机号码(MSISDN)吗?
目前有两种方式可以获取本机号码:
一. sim卡出厂时,可以写入自己的手机号码到sim卡中,但这不是强制要求的。在中 国,运营商制卡时基本上都不会写入手机号码。如果可以确认自己用的sim卡中已经存储了手机号码,可以通过如下方式读取手机号码:
发送AT+CNUM命令查询
二. 模块开机后,sim卡向短信平台发送一条短信(短信内容中可以包含imei或者imsi),短信平台收到短信后,识别手机号码后,可通过如下方式通知模块手机号码:
  1) 短信平台下发一条短信给模块,短信内容中包含手机号码,模块收到后解析出号码
  2) 模块连接一个后台服务器,后台服务器与短信平台相连,根据imei或者imsi读取到对应的手机号码,然后把这个号码,下发给imei或者imsi对应的模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l531798151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值