1
我必须拨打电话号码并检测对方的调制解调器是否处于挂机状态。我如何在C#中使用SerialPort完成此操作?使用C#中的内置调制解调器拨打电话
我必须拨打电话号码并检测对方的调制解调器是否处于挂机状态。我如何在C#中使用SerialPort完成此操作?使用C#中的内置调制解调器拨打电话
是的,System.IO.Ports.SerialPort是使用的类。
事情是这样的:
// Set the port name, baud rate and other connection parameters you might need
SerialPort port = new SerialPort("COM1", 9600);
port.Open();
port.ReadTimeout = 1000;
port.NewLine = "\r";
port.WriteLine("ATZ"); // reset the modem
port.ReadTo("OK\r\n"); // wait for "OK" from modem
port.WriteLine("ATDT 12345678"); // dial number with dialtone
string response = port.ReadTo("\r").Trim(); // read until first newline
port.Close();
这不是测试,因为我不手边有一个调制解调器。
您可以在配置正确的Windows中创建连接(以便您可以手动拨号)。然后使用RAS API拨打连接并检查结果。
如何在使用SerialPort的ATDT命令之后检测到忙音信号? – jlafay 2011-07-25 15:45:39
自从我拨弄调制解调器之后已经有一段时间了,但是如果您使用终端并使用“ATDT 123456”手动拨号至以繁忙信号响应的号码,您是否会收到任何输出/响应?如果是这样,检查这一点。您可以发出ATX4,以启用对拨号音和忙音信号的检测。 Google for AT命令可以提供有关繁忙检测的更多信息。 – 2011-07-25 19:33:48
感谢您的帮助! – jlafay 2011-07-25 19:50:08