SIM800L 检查来电是否被接听

SIM800L check if call was answered

我需要在我的 SIM800L 上禁用拨号音,为此我需要知道接收端是否已接听电话。 AT+CPAS returns 4 代表 'in progress' 在通话期间以及在接听电话之前的提示音期间所以它没有用。

有没有使用AT命令的方法?或者我应该求助于对输出音频进行一些信号分析?是否有任何其他设备具有此功能?

您要查找的命令是+CLCC。这是一个标准的 ETSII 命令,因此您会在每个蜂窝调制解调器中找到它。对于目前的答案,我将参考 SIM800 AT command guide.

执行命令AT+CLCC列出当前通话状态。对于每次调用,您都会得到一行,例如

+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>,<alphaID>

其中:

Parameter Description Values
<idx> Call identification number [1-7]
<dir> Direction 0 Mobile originated (MO) call
1 Mobile terminated (MT) call
<stat> State of the call 0 Active
1 Held
2 Dialing (MO call)
3 Alerting (MO call)
4 Incoming (MT call)
5 Waiting (MT call)
6 Disconnect
<mode> Bearer/tele service 0 Voice
1 Data
2 Fax
<mpty> Multiparty status 0 Call is not one of multiparty (conference) call parties
1 Call is one of multiparty (conference) call parties
<number> Remote peer phone number (String to be included in quotation marks; phone number in format specified by <type>)
<type> Type of address
<alphaId> Alphanumeric representation of <number> corresponding to the entry found in phone book (String type to be included in quotation marks)

通常只有一个电话,但无论如何您都可以通过检查答案的 number 字段来确定您感兴趣的电话。


响应的<stat>字段提供了您所需要的内容。事实上,它将包含当前呼叫的状态,在调制解调器拨号时(2,如果是移动发起的呼叫)和呼叫处于活动状态时(0;也1 如果您想包括保留的呼叫)。