我正在使用Putty模拟我的手机通过串口连接的调制解调器。当我的手机接到电话时,它会输出' RING'进入腻子,但当来电者取消通话时,Putty没有提出任何回应或结果。
调制解调器如何知道呼叫者断开/取消呼叫,但不在putty中输出?
谢谢
答案 0 :(得分:2)
大多数调制解调器会在收到呼叫时显示来电号码和RING
,并在取消呼叫时显示END
。要查看未接来电,您可以使用以下AT
命令。
AT+CPBS="MC"
AT+CPBR=1,99
第一个命令告诉调制解调器查看未接来电电话簿,第二个命令加载1到99之间的条目。请注意,这种行为不是标准的。我能够在GSM模块上复制它,但不能在我的3G调制解调器上复制。在您的调制解调器上尝试它并检查它是否有效。一切顺利。
答案 1 :(得分:2)
要检测未接来电,您可以尝试三件事。
检查是否有合适的text
指示符可以打开。我认为AT+CIND
不会这样做,因为我认为只有在接听电话时它才会转到call
。如果您的手机支持1
或类似的东西(您应该使用的话)(您必须实施逻辑以检测呼叫何时未进入状态)。
有关启用AT + CIND指标的示例,请参阅27.007中的“8.57信息性示例”一章以获取更多说明,并密切关注callsetup
,例如The subparameter order in the command is defined by the query command order
。
如果AT + CIND =?返回
+CIND: ("abc",(0-1)),("xyz",(0,1)),("call",(0,1))
然后调用是索引3,而
+CIND: ("abc",(0-1)),("call",(0,1)),("xyz",(0,1))
调用是索引2.在这里做不硬编码任何假设,这应该被解析并检查运行时(一开始就检查一次就足够了)。
或者,您可以在RING
开始使用AT+CLCC
轮询通话状态,直到不再列出通话为止。
或者您可以轮询MC
电话簿存储并检测更改。