跳转至

cc - 通话管理

适用范围

层面 说明
运行环境 LuatOS-Air 脚本框架,展锐 8910 平台(Air724UG / Air722UG / Air795UG / Air720UH 等)
前提条件 需 VoLTE / CS 通话能力与音频硬件;卡未开通 VoLTE 或未驻网时拨号会失败
接口差异 cc.transVoice 只接受 12.2K AMR 格式数据;cc.dtmfDetect 的灵敏度最灵敏为 1
不适用 Air780E 及以后跑 LuatOS 的 Cat.1 模组;这些模组的同名库在 osapi 里是另一套接口,不能照抄

常量

cc.getState(num) 的返回值、以及通话过程中的状态,都对应下表:

常量 值 含义
cc.CONNECTED 0 通话中(已接通)
cc.HOLD 1 通话保持中
cc.DIALING 2 正在呼出
cc.ALERTING 3 对端振铃中
cc.INCOMING 4 正在呼入(本端振铃)
cc.WAITING 5 呼叫等待
cc.DISCONNECTING 98 正在挂断
cc.DISCONNECTED 99 已挂断

cc.anyCallExist()

是否存在通话

参数

无

返回值

bool result 存在通话返回true,否则返回false

例子

result = cc.anyCallExist()

cc.getState(num)

查询某个号码的通话状态

参数

名称 传入值类型 释义
num string 查询号码

返回值

number state 通话状态,状态值见本文「常量」一节

例子

state = cc.getState('10086')

cc.dial(num, delay)

呼出电话

参数

名称 传入值类型 释义
num string 呼出号码
delay number 可选参数,默认为0 延时delay毫秒后,才发起呼叫

返回值

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

例子

cc.dial('10086')

cc.hangUp(num)

挂断通话

参数

名称 传入值类型 释义
num string 号码,若指定号码通话状态不对,则直接退出,不会执行挂断,若挂断时会挂断所有电话

返回值

nil

例子

cc.hangUp('10086')

cc.accept(num)

接听电话

参数

名称 传入值类型 释义
num string 号码,若指定号码通话状态不对,则直接退出,不会接通

返回值

nil

例子

cc.accept('10086')

cc.transVoice(data, loop, downLinkPlay)

通话中发送声音到对端,必须是12.2K AMR格式

参数

名称 传入值类型 释义
data string 12.2K,AMR格式的数据
loop bool 可选参数,默认为nil 是否循环发送,true为循环,其余为不循环
downLinkPlay bool 可选参数,默认为nil 声音是否在本端播放,true为播放,其余为不播放

返回值

bool result true为成功,false为失败

例子

cc.transVoice("#!AMR\010\060*********")
cc.transVoice("#!AMR\010\060*********",true)
cc.transVoice("#!AMR\010\060*********",true,true)

cc.dtmfDetect(enable, sens)

设置dtmf检测是否使能以及灵敏度

参数

名称 传入值类型 释义
enable bool 可选参数,默认为nil true使能,false或者nil为不使能
sens number 可选参数,默认为3 灵敏度,最灵敏为1

返回值

nil

例子

cc.dtmfDetect(true)

cc.sendDtmf(str, playtime, intvl)

发送dtmf到对端

参数

名称 传入值类型 释义
str string dtmf字符串,仅支持数字、ABCD*#
playtime number 可选参数,默认为100 每个dtmf播放时间,单位毫秒
intvl number 可选参数,默认为100 两个dtmf间隔,单位毫秒

返回值

nil

例子

cc.sendDtmf("123")

搜索