AT-команды для набора и приема вызовов с использованием USB-модема в ноутбуке по стационарному телефонному кабелю
Я делаю проект, который предназначен для совершения звонков с использованием USB-модема. Я сделал звонки и отправил аудиофайл на конец получателя, но когда получатель получает вызов, из этого аудиофайла начинает поступать шум. измените этот шум на слышимый голос, чтобы получатель мог слышать его правильно. Я перехожу по этой ссылке. https://www.daniweb.com/programming/software-development/code/313281/playing-wav-over-modem
здесь я обнаружил, что мне нужно перейти и изменить переменную скорости речи, которая является частью TAPI SDK. но я не знаю, где находится тапи 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();
0 ответов
Убедитесь, что 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
(который включает голосовой режим, если модем поддерживает голосовую функцию) после команды вызова.