1

您应该如何以编程方式检测通话中的远程调制解调器何时挂断?我正在编写一个与 SoftModem 设备接口的 C 程序/dev/ttySL0Ubuntu linux 中的 SoftModem 设备接口的 C 程序。我能够使用 Hayes AT 命令配置调制解调器并与远程调制解调器通信。但是,我无法确定我应该如何检测到另一端已挂断电话。

我配置了调制解调器,以便当另一端挂断时,设备会打印NO CARRIER并切换到命令模式。但是,我无法使用NO CARRIER字符串,因为我不能保证调制解调器在数据模式下不会接收到该字符串。

你如何“听”远程挂断?

4

2 回答 2

3

这是调制解调器上的硬件信号,即载波检测 (CD) 线路。您需要对其进行监视才能知道连接已丢失。linux 的基础知识在这个how-to中进行了描述,您可以使用 ioctl() 使用 TIOCM_CAR 命令获取信号状态。

于 2012-04-20T23:29:48.273 回答
0

测试NO CARRIERas text 是不够的。这段文字经常出现在网络上的网站上,甚至在问答网站上。

来自调制解调器,它应该包含在换行符中。

此外,在检测到该文本后,您可以尝试使用 切换到命令模式+++。如果可行,则您的连接仍然存在,您可以重新连接它并继续使用它。如果没有(因为您已经在那里并且+++是一个无效命令),则连接已经消失。

于 2012-05-15T14:15:48.423 回答