Estoy utilizando el siguiente método para detectar la identificación de llamada cuando alguien llama.Detección de identificación de llamada: no funciona con algunos teléfonos
de carga en la forma que establezca el siguiente código:
this.serialPort1.PortName = "COM3";
this.serialPort1.BaudRate = 9600;
this.serialPort1.DataBits = 8;
this.serialPort1.RtsEnable = true;
this.serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
this.serialPort1.Open();
this.serialPort1.WriteLine("AT#cid=1" + System.Environment.NewLine);
void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
richTextBox1.Text += this.serialPort1.ReadLine();
//richTextBox1.Text += this.serialPort1.ReadExisting();
//richTextBox1.Text += this.serialPort1.ReadByte().ToString();
}
El comando
this.serialPort1.WriteLine("AT#cid=1" + System.Environment.NewLine);
me dio la salida
OK
que asegura que identificador de llamadas es apoyado por módem y está trabajando.
He intentado con algunas líneas telefónicas privadas en nuestro país (India), da el resultado esperado de la siguiente manera.
RING //On 1st Ring
DATE = xxxxx //On 2nd Ring
TIME = xxxx
NMBR = xxxxxxxxx
RING //On 3rd Ring
RING //On 4th Ring
Pero cuando trato con los teléfonos públicos (BSNL la compañía en la India), que no da fecha, hora y NMBR parte. Da la siguiente salida.
RING //On 1st Ring
RING //On 3rd Ring
RING //On 4th Ring
Tenga en cuenta que no hay nada demostrado durante el segundo anillo.
Nota importante:
- teléfonos Gobierno sí apoyan identificador de llamadas, porque cuando la línea telefónica está conectada al instrumento de teléfono, número hace manifiesta.
- El código anterior funciona con éxito con muchos otros teléfonos de línea fija de compañías privadas.
- ¿Alguna idea de por qué no obtengo los números de los teléfonos BSNL, a pesar de que aparecen en la pantalla de identificación de llamadas del teléfono?
Edit: Paso los siguientes comandos de inicialización al módem para configurarlo para el modo de recepción DTMF.
AT#CID=1 //Enable Caller ID (Verbose)
AT#VLS=0 //Voice Source--Telephone Line (Go on hook)
AT#VTD=3F,3F,3F //Enable DTMF Transmit, Receive and Voice Online
AT#CLS=8 //Sets Modem to Voice Mode
Gracias de antemano.
¿Se trata de llamadas provenientes de BSNL o de ellas? ¿Esto es a través de un antiguo modem POTS o celular? –
@Alex: Estas son llamadas que llegan a un teléfono BSNL.Está utilizando el módem de teléfono y fax (Modelo: Smart Link 56K Voice Modem) – Marshal