Desarrollar web service AGI en node js

88 views
Skip to first unread message

gabrie...@gmail.com

unread,
Oct 19, 2022, 3:42:03 PM10/19/22
to asterisk-es
Buenas tardes compañeros, estoy desarrollando una aplicacion de comunicacion con asterisk y quiero desarrollar un AGI web service para poder controlar mi dialplan alguien tiene algun ejemplo o material que me pueda compartir ¿?

Gaston Draque

unread,
Oct 19, 2022, 4:40:24 PM10/19/22
to aster...@googlegroups.com
Buenas tardes Gabriel,
   No me queda muy claro que es lo que quieres hacer, creo que quieres decir un AGI [a][b] que consulta a un Webservice y así controlas el dialplan?
   Un AGI típicamente se inicia desde el dialplan, sobre una llamada iniciada. Este puede consultar un webservice , setear variables y continuar con el dialplan, o puede iniciar un AGI y controlar la llamada desde el AGI mismo (dentro del servidor o de forma remota con fastAGI [b]) y liberarla solo para el cierre de la llamada. Estos son ejemplos extremos claro, hay intermedios.
    La "opción atómica" es usar ARI [c][d], pero si el dialplan no varía demasiado y no tienes que "crear una aplicación que no existe en Asterisk" o soportar un grupo de servidores trabajando como media servers, lo evitaría porque se complica mucho y ya te tienes que hacer cargo de todo.

Saludos


Librerías en links [a] y [d]

[a] https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=32375589

On Wed, Oct 19, 2022 at 4:42 PM gabrie...@gmail.com <gabrie...@gmail.com> wrote:
Buenas tardes compañeros, estoy desarrollando una aplicacion de comunicacion con asterisk y quiero desarrollar un AGI web service para poder controlar mi dialplan alguien tiene algun ejemplo o material que me pueda compartir ¿?

--
Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)
Normas de la lista Asterisk-ES: http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
---
Has recibido este mensaje porque estás suscrito al grupo "asterisk-es" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a asterisk-es...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/asterisk-es/059b4793-a40c-4546-bc35-dc37ce591773n%40googlegroups.com.


Gabriel Alejandro Mata

unread,
Oct 19, 2022, 5:24:17 PM10/19/22
to aster...@googlegroups.com
Muchas Gracias Gaston, muy amable en responder. Basicamente es una aplicacion donde habro un canal a traves de AMI desde una interfaz y luego quiero ceder el control al AGI para que realice las labores de setear variables, capturar los canales, grabar y otras funciones que necesito.

he visto en algunos dialplan que llaman archivos AGI como hacia un web service http://locahost/archivo.agi y le pasan argumentos para procesar esto es lo que quiero hacer para controlar todo desde el AGI una vez inicia la llamada.



--
Ing.Gabriel Alejandro Mata
+573214814169

Gaston Draque

unread,
Oct 19, 2022, 8:31:16 PM10/19/22
to aster...@googlegroups.com
Entiendo, quieres usar AMI como disparador de una llamada y luego pasar el control al AGI. Es un pattern muy usado.

Sin entrar en detalles de implementación, lo que has visto en las llamadas de AGI que hacen referencias a una URL, no es un webservice sino lo que te comentaba antes, un FastAGI. Es bastante más rudimentario que un webservice. Es una conexión via TCP similar a los viejos CGIs de apache y los parámetros se pasan de forma similar.
Si vas a usar FastAGI[1], necesitas un FastAGI server donde recibirás la llamada del AGI y tomarás control. No tiene mucho sentido tenerlo en la misma máquina, aunque puedes hacerlo claro.
Entonces, cuando usas AGI, usas su forma de enviar comandos [2] y recibir mensajes. Es serial y bloqueante por defecto, por lo que si se necesita algún tipo de control de estado entre comandos, hay que usar AMI en paralelo.
Mis 2 centavos... ordena todo bien y separa las funciones en contextos de dialplan y AGIs específicos. Evita el "mega-AGI-que-todo-lo-hace"... ahorrate esos dolores de cabeza.
Y claro, todo con una pizca de sal, porque no conozco su aplicación.

Suerte!

[2] https://wiki.asterisk.org/wiki/display/AST/Asterisk+20+AGI+Commands

Gabriel Mata

unread,
Oct 20, 2022, 8:54:34 AM10/20/22
to aster...@googlegroups.com
Muchas gracias Gastón por compartir tu conocimiento, seguiré tus recomendaciones te voy contando cómo avanza el tema. 

Muy agradecido. 

Ing. Gabriel Mata 

El 19/10/2022, a la(s) 7:31 p.m., Gaston Draque <gaston...@gmail.com> escribió:



jumanor

unread,
Oct 20, 2022, 1:16:32 PM10/20/22
to asterisk-es

Aca hay un ejemplo claro y simple del uso de AGI en 00:15:59

https://youtu.be/eCinJQK-GYY?t=959

Gabriel Alejandro Mata

unread,
Oct 20, 2022, 6:02:05 PM10/20/22
to aster...@googlegroups.com
Gracias Jumanor, voy a revisarlo.

Saludos.

Reply all
Reply to author
Forward
0 new messages