【问题标题】:AT commands for dialing and receiving calls by use of usb modem in laptop on landline telephone cableAT 命令通过在固定电话线上使用笔记本电脑中的 USB 调制解调器拨打和接听电话
【发布时间】: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


    【解决方案1】:

    确保 wav 文件具有与调制解调器中所选选项相同的设置。 要检查调制解调器中支持的选项,请执行以下命令:

    AT+VSM=?
    

    结果例如

    0,"SIGNED PCM",8,0,8000,0,0
    1,"UNSIGNED PCM",8,0,8000,0,0
    129,"IMA ADPCM",4,0,8000,0,0
    130,"UNSIGNED PCM",8,0,8000,0,0
    131,"Mu-Law",8,0,8000,0,0
    132,"A-Law",8,0,8000,0,0
    133,"14 bit PCM",14,0,8000,0,0
    

    然后你可以选择其中之一:

    AT+VSM=131,"Mu-Law",8,0,8000,0,0
    

    8000:(每秒采样)。 8:(每个样本位)。

    我记得的另一件事是,您应该在调用命令之后执行AT+FCLASS=8(如果调制解调器支持语音功能,则启用语音模式)。

    【讨论】:

      猜你喜欢
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2023-04-01
      • 2018-02-05
      相关资源
      最近更新 更多