0

我已经完成了所有呼叫拨号部分并且它有效。现在我需要通过电话播放录制的声音或麦克风。我只需要知道如何将音频传递给加密狗并通过通话发送。

这是我拨打电话号码的工作代码

SerialPort port = new SerialPort();
port.Open();
string t = port.ReadExisting();
Thread.Sleep(100);

string cmd = "ATD";
string phoneNumber = "071********";
port.WriteLine(cmd + phoneNumber + ";\r");


port.Close();
4

1 回答 1

8

对于您的调制解调器,您有 3 个可用的 COM 端口。一个是发送AT命令,第二个是发送数据(语音数据),最后一个是监听异步状态变化。

当您拨打电话(使用 ATD)时,您必须在监控端口上等待“^CONN: 1, 0”。

然后你需要一个 8KHz、16 位有符号、1 声道的声源。在数据端口上写入此源的 320 个字节,每 20ms。

您还将从该端口读取 320 字节的数据,每 20 毫秒用于对方说话。

当您收到“^CEND: ...”时,呼叫将终止。

但是要小心一些捕获。即使对方拒绝了您的呼叫,您也会得到“^CONN: 1, 0”。因此,请先尝试从数据端口读取数据,以检查在 ^CONN 消息后对方是否仍然存在。

于 2014-04-03T06:07:28.197 回答