2016-11-26 3 views
0

Я пытаюсь сделать код для голосового вызова с использованием usb-модема, и ему удалось сделать вызов ... теперь я хочу получить ответ на вызов, чтобы узнать, звонит ли номер, занят или недоступенполучить Ответ на вызов команды AT

Это мой код используется:

 string number = textBox1.Text; 

     po.PortName = "COM3"; 
     po.BaudRate = int.Parse("9600"); 
     po.DataBits = Convert.ToInt32("8"); 
     po.Parity = Parity.None; 
     po.StopBits = StopBits.One; 
     po.ReadTimeout = int.Parse("300"); 
     po.WriteTimeout = int.Parse("300"); 
     po.Encoding = Encoding.GetEncoding("iso-8859-1"); 
     po.Open(); 
     po.DtrEnable = true; 
     po.RtsEnable = true; 
     po.Write("ATDT "+number+";\r"); 

     System.Threading.Thread.Sleep(7000); 

     po.WriteLine("ATH+CHUP;\r"); 
     po.DiscardInBuffer(); 
     po.DiscardOutBuffer(); 
     po.Close(); 
+0

Я хочу кого-нибудь помочь – Lupindo

ответ

1

После ATD, вам чтение порта для вида информации под названием URC.

Для голосового вызова, то возможны следующие реакции,

Если нет гудка
NO DIALTONE

Если заняты,
BUSY

Если соединение не может быть установлено:
НЕТ CARRIER
НЕТ ОТВЕТ

И, прежде чем ATD, вам лучше установить формат ошибки, используя по адресу + cmee, для экзамена на + cmee = 2 будет включен формат строки.

EDIT: (Вот пример с питоном)

#! /usr/bin/env python 
# -*- coding: utf8 -*- 
from __future__ import print_function 

import sys 
import serial 


NUM = "111111111" 

ser = serial.Serial("com1", 115200) 

ser.write('at+cmee=2\r') 
ser.timeout = 10.0 
res = "invalid" 
while len(res) > 0: 
    res = ser.read(1) 
    print(res, end='') 

ser.write('atd' + NUM + ';\r') 
ser.timeout = 60.0 
res = "invalid" 
while len(res) > 0: 
    res = ser.read(1) 
    print(res, end='') 

ser.write("AT+CHUP\r") 
ser.timeout = 10.0 
res = "invalid" 
while len(res) > 0: 
    res = ser.read(1) 
    print(res, end='') 

Его выход (я отклонить вызов с телефона "111111111"),

at+cmee=2 
OK 
atd111111111; 
OK 

NO CARRIER 
AT+CHUP 
+CME ERROR: operation not allowed 

И после выхода «нет перевозчика», больше нет необходимости вешать трубку.

+0

Можете ли вы дать мне полный пример с синтаксисом – Lupindo

Смежные вопросы