我需要禁用 SIM800L 上的拨号音,为此我需要知道接收端是否已接听电话。AT+CPAS 返回 4 代表“进行中”,无论是在通话期间还是在接听电话之前的音调期间,它都没有用。
有没有使用 AT 命令的方法?还是我应该对输出音频进行一些信号分析?是否有任何其他设备具有此功能?
我需要禁用 SIM800L 上的拨号音,为此我需要知道接收端是否已接听电话。AT+CPAS 返回 4 代表“进行中”,无论是在通话期间还是在接听电话之前的音调期间,它都没有用。
有没有使用 AT 命令的方法?还是我应该对输出音频进行一些信号分析?是否有任何其他设备具有此功能?
您要查找的命令是+CLCC
. 这是一个标准的 ETSII 命令,因此您可以在每个蜂窝调制解调器中找到它。对于目前的答案,我将参考SIM800 AT 命令指南。
执行命令AT+CLCC
列出当前调用的状态。对于每个呼叫,您将获得一行,例如
+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>,<alphaID>
在哪里:
范围 | 描述 | 价值观 |
---|---|---|
<idx> |
呼叫识别号码 | [1-7] |
<dir> |
方向 | 0移动发起 (MO) 呼叫 1移动终止 (MT) 呼叫 |
<stat> |
通话状态 | 0激活 1保持 2拨号(MO 呼叫) 3警报(MO 呼叫) 4来电(MT 呼叫) 5等待(MT 呼叫) 6断开 |
<mode> |
承载/电话服务 | 0语音 1数据 2传真 |
<mpty> |
多方状态 | 0呼叫不是多方(会议)呼叫方之一 1呼叫是多方(会议)呼叫方之一 |
<number> |
远程对等电话号码(要包含在引号中的字符串;电话号码格式由 指定<type> ) |
|
<type> |
地址类型 | |
<alphaId> |
<number> 对应于电话簿中的条目的字母数字表示(字符串类型要包含在引号中) |
通常只有一个电话,但无论如何您都可以通过检查number
答案字段来确定您感兴趣的电话。
响应的<stat>
字段提供了您需要的内容。事实上,它将包含当前呼叫的状态,在调制解调器正在拨号(2
移动发起呼叫的情况下)和呼叫处于活动状态(0
如果1
您想包括保持的呼叫)之间显示不同的值。