Una de las cosas que me gusta hacer junto con el Ethical Hacking es instalar/programar aplicaciones de Voz para ello hace mucho tiempo que uso Asterisk, evidentemente esto a evolucionado gratamente para los que nos gusta esta área, a partir de Asterisk 12 apareció ARI o «Asterisk REST Interface» API que permite programar cualquier tipo de aplicación y que se ejecute en Asterisk.

Realmente ARI desde mi punto de vista ha cambiado la forma de ver lo que se puede hacer con Asterisk ya que no solo es pensar en una PBX, si no que ahora puedes tomar las librerías de ARI de los lenguajes mas importantes como python, C#, Java, Javascript, para conectarte a la API y empezar a desarrollar usando la aplicación que implementa Asterisk a nivel de dialplan llamada «Statis».

En esa linea de ideas, debido a que Issabel trae Asterisk 13 podemos usar ARI sin problemas, a continuación veremos como realizar la configuración del mismo y realizar una prueba básica usado la herramienta wscat para conectarnos vía Websocket hacia la API en este caso ARI.

 

1.- Configurar ARI en Issabel

Ingresar al archivo http_custom.conf y activar ARI e indicarle en que puerto va funcionar de la siguiente forma:

Luego ingresar al archivo «ari.conf» el usuario y contraseña con el cual usaremos ARI

2.- Crear el dialplan

Ahora crearemos un dialplan para consumir y/o conectarse hacia ARI , para ello sera necesario declarar una extension 9000 donde invocaremos la aplicacion «Stasis» que es el mecanismo que utiliza Asterisk para entregar el control de un canal desde el plan de marcado hacia ARI.

En el archivo «extensions_custom.conf» incluimos un nuevo contexto llamado «ariwebsoket» de la siguiente forma:

 

Luego agregamos el final del archivo el nuevo conexto:

3.- Pruebas con ARI sobre Issabel.

Vamos a preparar una prueba muy sencilla de como nos podemos conectar mediante una petición de websoket hacia ARI para visualizar un evento en concreto, para ello sera necesario instalar wscat mediante nodejs.

curl -sL https://rpm.nodesource.com/setup_8.x | bash –
yum install -y nodejs
npm install -g wscat

Ahora desde una terminal nos conectamos a Issabel y ejecutamos

wscat -c «ws://localhost:8088/ari/events?api_key=ari:tucontrasena&app=hello-world»

Veremos que estamos conectados hacia ARI, de igual forma en el CLI veremos lo siguiente:

Lo cual nos indica que hay una conexión vía WebSocket hacia la aplicación «Hello-world»

Ahora al llamar a la extensión 9000 sera posible ver los detalles del evento mediante ARI de la siguiente forma

Esto es un test muy sencillo para validar que ARI funciona correctamente en Issabel, en un post nuevo veremos como desarrollar una aplicación con Nodejs haciendo uso de una cliente ARI para controlar Issabel.

Saludos
Juan Oliva.

 

 

9 respuestas a «Asterisk Rest Interface (ARI) en Issabel»

  1. Avatar de Poncho
    Poncho

    Muchas Gracias, excelente articulo Saludos!!!!

  2. Avatar de hectorgnux

    Gracias por la informacion, muy util!

  3. Avatar de Gerardo Jacinto Astudillo
    Gerardo Jacinto Astudillo

    muy interesante, saludos!!

  4. one day at A time cast

    Asterisk Rest Interface (ARI) en Issabel | Juan Oliva

  5. Avatar de Carlos Lopez
    Carlos Lopez

    Buenas noches. Al poner el comando curl -sL https://rpm.nodesource.com/setup_8.x | bash – me manda el iguiente mensaje:

    bash: –: No such file or directory

    Saludos.

  6. Avatar de Carlos Lopez
    Carlos Lopez

    Buenas noches Juan.

    Ya lo pude instalar con wget -qO- https://rpm.nodesource.com/setup_8.x | bash -, pero ahora al correr el siguiente comando:

    wscat -c “ws://localhost:8088/ari/events?api_key=ari:tucontrasena&app=hello-world”

    Me regresa el siguiente mensaje de error:

    error: Unexpected server response: 404

    Saludos.

  7. tronsr.org

    Asterisk Rest Interface (ARI) en Issabel | Juan Oliva

  8. Avatar de Carlos Lopez
    Carlos Lopez

    Buen día Juan.

    Me interesa el post «como desarrollar una aplicación con Nodejs haciendo uso de una cliente ARI para controlar Issabel»

Replica a tronsr.org Cancelar la respuesta

Juan Oliva

Consultor en Ciberseguridad con mas de 17 años de experiencia en el campo, muy involucrado en proyectos de Ethical Hacking, análisis y explotación de vulnerabilidades en infraestructura, aplicaciones web, APIs y Móviles, pruebas de ingeniería social y revisión de código.