【发布时间】:2018-02-07 18:25:31
【问题描述】:
我正在做一个使用 USB 调制解调器拨打电话的项目,我已经完成了拨打电话并将音频文件发送到接收方端,但是当接收方收到呼叫时,噪音开始来自那里而不是那个音频文件.如何将噪音改变为可以听到的声音,以便接收者可以正确听到它。我正在关注这个链接。 https://www.daniweb.com/programming/software-development/code/313281/playing-wav-over-modem
在这里我发现我必须更改语音速率变量,它是 TAPI SDK 的一部分。但我不知道tapi sdk在哪里以及如何更改。 其次,如果有人帮助我在我可以从 USB 调制解调器到手机的通话中启用通话语音。 这是我用来在没有语音的情况下拨打电话并发送转换为噪音的音频文件的代码。
serialPort1 = new System.IO.Ports.SerialPort("Com3", 115200, System.IO.Ports.Parity.None, 8, StopBits.One);
serialPort1.DtrEnable = true;
serialPort1.Open();
//Switch to Voice Mode
serialPort1.Write("AT+FCLASS=8" + System.Convert.ToChar(13).ToString());
//Call Number
serialPort1.Write("AT+CLIP=1" + System.Convert.ToChar(13).ToString());
serialPort1.Write("ATDT+ HERE I PUT MY PHONE NUMBER" + System.Convert.ToChar(13).ToString());
System.Threading.Thread.Sleep(17000);
//Enter Voice-Transmission Mode
serialPort1.PinChanged += new SerialPinChangedEventHandler(serialPort1_PinChanged);
serialPort1.Write("AT+VTX" + System.Convert.ToChar(13).ToString());
bool MSwitch = false;
byte[] buffer = new byte[500000];
FileStream strm = new FileStream(@"D:\m.wav", System.IO.FileMode.Open);
MemoryStream ms = new MemoryStream();
int count = ms.Read(buffer, 44, buffer.Length - 44);
BinaryReader rdr = new BinaryReader(strm);
while (!MSwitch)
{
byte[] bt = new byte[1024];
bt = rdr.ReadBytes(1024);
if (bt.Length == 0)
{
MSwitch = true;
break;
}
serialPort1.Write(bt, 0, bt.Length);
}
strm.Close();
strm.Dispose();
serialPort1.Write("ATH" + System.Convert.ToChar(13).ToString());
serialPort1.Close();
【问题讨论】:
标签: c# at-command telephony modem