I have successfully placed a call with ATDTn but i cant hear anything from the recipient. I have googled but no help. It is a voice modem. Is there anything i am doing wrong?
This is my code:
if ((m_serialPort != null) && (m_serialPort.IsOpen))
{
SerialPort port = m_serialPort;
string t = port.ReadExisting();
System.Threading.Thread.Sleep(100);
port.WriteLine("AT+FCLASS=8" + "\r");
System.Threading.Thread.Sleep(100);
port.WriteLine("AT+CVHU" + ";\r");
System.Threading.Thread.Sleep(100);
port.WriteLine("AT+CRC=1" + ";\r");
System.Threading.Thread.Sleep(100);
port.WriteLine("AT+CLIP=1" + ";\r");
System.Threading.Thread.Sleep(100);
port.WriteLine("ATM3" + "\r");
System.Threading.Thread.Sleep(500);
string cmd = "ATDT";
string phoneNumber = tocall;
port.WriteLine(cmd + phoneNumber + ";\r");
System.Threading.Thread.Sleep(100);
port.WriteLine("AT^DDSETEX=2" + "\r");
System.Threading.Thread.Sleep(100);
port.WriteLine("AT+VTX");
txtCallStatus.Text = "Calling";
Speak(1, "You are calling " + txtDial.Text);
callchecker.Start();
bCall.Content = "End Call";
cbComPort.IsEnabled = false;
}
For a full listing of AT commands, see this wikipedia entry .
For a full listing of Voice Modem commands, see this wikipedia entry .
In general, you want to do this:
1) Request voice modem mode:
AT+FCLASS=8 (on some older modems, use AT#CLS=8 )
2) Speaker on until remote carrier detected / busy detection, and dial.
ATm1x3DTxxxxxxx (Where xxxxxxx is phone number.)
Note: in my experience, I always had to run these as two separate commands
Depending on your modem, you may also need to increase the volume with:
ATL1, ATL2, or ATL3 (depending on how loud you need it.)
To send DTMF tones during the voice call:
AT+VTS={x,25} (where x = digit to dial)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.