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")