У меня есть следующий код фрагмента, который я использую для имитации вызова на ПК в качестве дозвона с использованием AT-команд.AT команды hang up
Проблема заключается в том, что иногда для случайного числа, которое набирается, даже если пользователь нажимает кнопку «повесить трубку» в форме окна, вызов по-прежнему продолжает набор номера в фоновом режиме.
Фактический вызов циферблата этот код:
SerialPort po = new SerialPort();
po.PortName = ConfigurationManager.AppSettings.Get("modemPort");
po.BaudRate = int.Parse("9600");
po.DataBits = Convert.ToInt32("8");
po.Parity = Parity.None;
po.StopBits = StopBits.One;
po.ReadTimeout = int.Parse("300");
po.WriteTimeout = int.Parse("300");
po.Encoding = Encoding.GetEncoding("iso-8859-1");
po.Open();
po.WriteLine("ATD" + phoneNumber + ";\r");
Затем при нажатии на кнопку Повесить трубку, у меня есть этот код:
po.DiscardInBuffer();
po.DiscardOutBuffer();
po.Close();
Это иногда держит набор вызовов в фоновом режиме.
Я даже добавил следующее, чтобы проверить его, но все тот же результат.
po.WriteLine("ATH" + "\r");
po.WriteLine("ATH0;\r");
po.WriteLine("ATH+CHUP;\r");
Любые идеи?