Pregunta

Actualmente estoy escribiendo un servicio de Windows que utiliza el asterisco IAM para detectar cuando una llamada entrante y luego realizar una solicitud Web basado en quién es la llamada y quién se va a. ¿Alguien sabe de un evento en el asterisco que podía escuchar la incluye ambos de estos detalles? Necesito el número de la persona fuera del sistema que está llamando pero cualquier cosa que podría utilizar para identificar el número de teléfono interno que se llama estaría bien, con tal de que puede ser usado fuera del asterisco.

Me estaba mirando a los eventos y todos ellos tienen el número de la persona que llama externa en ellos sin embargo ninguno de ellos enlazar a la persona que llama interna que no sea con el uniqueid la que a menos que construir un diccionario de estas en el servicio que no lo hará ser capaz de utilizar.

¿Fue útil?

Solución

Así que al final me las arreglé para hacer esto mediante el uso de sólo el IAM y la escucha de eventos de llamada. Con lo que queríamos acceso a Escuché durante los eventos Newchannel, Dial eventos y eventos de colgado, aunque si todo lo que está después es el número de la persona que llama y el número de quien están llamando Estoy bastante seguro de que podría salirse con la supervisión sólo los eventos de marcado.

Cada vez que un evento Newchannel fue recibido creé un objeto Canal y añadido a una lista de canales que estaban actualmente en el servidor del asterisco. Entonces, al escuchar a los eventos de marcado con el evento secundario de Begin yo era capaz de extraer el canal único de identificación de las dos partes implicadas en la llamada y luego obtener los números involucrados. Cuando se ha recibido un evento Hangup Quité el canal que se estaba destruido. Esto parece estar funcionando muy bien por el momento a pesar de que no hemos tenido tiempo completo para probarlo, así que espero que sea correcto.

Otros consejos

Tengo una idea, pero es probable que no como la respuesta:)

Tratamos de hacer esto y no pudo, así que hicimos algo mal:)

Lo que hicimos fueron a escribir guiones y agi ellos les llaman utilizando la interfaz del Administrador y luego raspar la línea de comandos.

Cosas como principales canales de la demostración concisa etc, su ikky pero funciona .. que utiliza expresiones regulares para analizar la salida de cadena y luego agarró la información a partir de ahí, el único problema con hacer cosas como esa es que usted tiene que ver cada vez un parche que la salida de la línea de comandos tiende a cambio de parche a parche.

Si descubre una manera de hacer esto utilizando la API de C # y no utilizar AGI i estaría muy interesado, pero simplemente no podía hacer lo que queríamos con la API sin recurrir a agi guiones al final.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top