Etiqueta: agi

  • Cómo programar un AGI en PHP sin librerías raras

    Cómo programar un AGI en PHP sin librerías raras

    Muchas personas que están aprendiendo Asterisk y que ya conocen las posibilidades de esta aplicación, quieren empezar a desarrollar sus propias soluciones para que Asterisk pueda interactuar con bases de datos, archivos del sistema de ficheros y en función de algún valor, conseguir que Asterisk haga una llamada, reproduzca una locución, o mil cosas más.

    Esto se realiza gracias a un concepto en Asterisk llamado AGI (Asterisk Gateway Interface) y que viene a ser un programa desarrollado por nosotros (o por otro usuario) que Asterisk ejecuta (importante esto último) y que sirve para que interactúe Asterisk con el sistema Linux, pudiendo acceder a archivos locales, puertos físicos (usb, puertos series, paralelos, etc.), bases de datos, páginas webs, y prácticamente cualquier otra cosa que pueda manejar nuestro sistema Linux.

    No voy a entrar en la «profundidad» en la que se entra en el curso Asterisk Advanced, pero sí ofrecer un esqueleto básico de un AGI programado en PHP sin necesidad de librerías externas y utilizando una programación muy sencilla (ideal para empezar a familiarizarse con este tipo de sistemas de integración Asterisk-*) (más…)

  • Qué es una Bootcamp y la diferencia con otros cursos

    Digium es la creadora de Asterisk desde sus inicios por parte de Mark Spencer, hasta la actualidad en la que colaboran muchas personas ajenas a Digium pero con la «homologación» de esta al final, es quien decide que debe incluir y cómo (licencias, calidad, etc).

    El inconveniente de una aplicación de calidad es que, a medida que pasa el tiempo y recibe más y más apoyos por parte de la comunidad, la aplicación intenta abarcar más y mejor, lo que la convierte cada día que pasa en una aplicación mejor aunque más complicada.

    Asterisk no es la única aplicación a la que le ocurre esto, otras también conocidas como Apache, MySQL, e incluso el mismo kernel de Linux se complica con cada nueva versión que lanza y eso hace que muchas personas puedan aprovechar todo su potencial que va apareciendo y las empresas puedan ofrecer nuevas mejoras pese a que cualquiera puede instalar un servidor web básico ejecutando un sencillo comando en un sistema.

    La cantidad de novedades que aparecen en Asterisk con respecto al tiempo es realmente difícil de preveer, únicamente estando inscrito y bien pendiente de las listas de usuarios y desarrolladores se puede llegar a ver las diferencias que hay de una versión a otra, los nuevos comandos y los nuevos módulos que permiten a los usuarios realizar tareas que es dificilmente creíble en otros sistemas.

    Este es una de las grandes diferencias de los cursos conocidos como Bootcamp de Digium, el temario varía de un curso al otro por las novedades que van saliendo, y únicamente hasta 3 semanas antes sólo Digium tiene idea de las novedades que incluirán en los cursos y que por otra parte, otros cursos no incluyen.

    Otros de los inconvenientes de las aplicaciones de software libre es, en mi opinión, la falta de disciplina:

    Cuando un usuario quiere aprender a utilizar una aplicación de software libre, lo primero que hace es descargársela y ver si es intuitiva, es decir, si es fácil de manejar y fácil de conseguir lo que quiere llegar a hacer ¿cierto?

    Cuando la aplicación es más completa de lo que esperamos, quiero decir, no solo sirve para hacer lo que queremos si no muchas más cosas, aprender a utilizarlo se convierte en algo más complicado y lento, es por ello por lo que el siguiente paso es buscar información por Internet. (Las típicas búsquedas por las que muchos llegan a este blog son «como registrar xlite en asterisk», «como configurar tdm400», y así…).

    Con este tipo de preguntas, puedes encontrar, con suerte, una respuesta rápida que te diga exáctamente qué tienes que escribir para que te funcione, pero en ningún caso vas a aprender para qué sirve cada parámetro, que otros parámetros hacen falta o te pueden ayudar en otro momento, por lo que si queremos aprender a manejar una aplicación de una forma más profesional, es imprescindible saber todo lo necesario sobre esta aplicación, no únicamente soluciones concretas.A menudo uno se encuentra que el usuario de Asterisk configura una tarjeta con parámetros que no sirven para nada, o configuran usuarios SIP con ciertos parámetros que provocan un comportamiento no deseado, tras lo cual uno se pregunta ¿porqué ha puesto este parámetro? o también ¿porqué no ha puesto este otro parámetro? es entonces cuando te responde que lo ha visto en una página de internet …

    Esta es sin duda, una de las mayores diferencias de los cursos Bootcamp de Digium con respecto a otros.

    Otra de las diferencias de una Bootcamp es el profesorado, nadie duda que la persona que va a ofrecer un curso sobre Asterisk sabe manejar esta aplicación, aunque la diferencia se encuentra en que todos los profesores que imparten las Bootcamp han sido certificados por Digium con el dCap (un certificado del que ya hablaré dentro de poco). Los que han hecho el examen saben que es una prueba complicada, pero un requisito necesario para un profesor el tener un título que demuestre sus conocimientos, no solo el hecho de saber configurar una tarjeta o registrar un usuario en Asterisk, si no bastante más y todos los que han hecho el examen alguna vez saben a lo que me refiero.

    La palabra Bootcamp viene de EEUU y significa algo así como «campamento militar» que es básicamente lo que se encuentra cuando asiste a estos cursos. «No hay tiempo para pararse a resolver dudas, no hay tiempo para contar anécdotas, el temario es tan completo, tan detallado, tan medido, que cuando paras para resolver una duda, estás utilizando el tiempo necesario para explicar parte del temario», es por esto por lo que este año se ha apostado por incluir hasta dos profesores con el título dCap en las Bootcamp, uno para explicar y otro para resolver dudas, o bien resolver dudas fuera del tiempo reglamentario del curso.

    El curso está orientado a ofrecer esta disciplina necesaria para que un usuario haga las cosas como Digium dice que deben hacerse para evitar problemas, a muchos no les gusta que se pongan estas disciplinas, aunque la experiencia deja claro que aquellos que lo aprenden así, no tienen los problemas a los que se enfrentan muchos otros, pierden menos tiempo y logran sus objetivos sabiendo exáctamente lo que se está haciendo y porqué.

    Los objetivos mínimos que son necesarios para que la bootcamp sea de provecho, es conocer los comandos de Linux y recomendable, haber tocado Asterisk, haberse peleado un poco con él.

    La Bootcamp parte de cero, ofrece esta disciplina desde sus inicios partiendo que el usuario no ha tocado nunca un sistema Asterisk, claro que para el que sí lo ha tocado, es toda ventaja. El asistente al curso terminará conociendo todos y cada uno de los parámetros de todos y cada uno de los archivos de configuración, conociendo todas las aplicaciones, códecs, formatos, protocolos, recursos necesarios, que son, cómo funcionan y cómo se configuran todos y cada uno de los parámetros de las tarjetas y líneas analógicas, digitales, primarios, enlaces SIP, IAX, DUNDi, partes de cualquier call center, agentes, colas, e incluso cómo programar AGIs y manejar el Manager.

    Cualquiera que después de ver la cantidad de cosas que se da en este curso piense que no da tiempo en 8 horas diarias durante 5 días, aparece entonces la magia de la Bootcamp, el hecho de hacer posible que todo este temario esté en la cabeza del alumno al final del quinto día, habiendo hecho prácticas con su propio ordenador y sus propias tarjetas.

    Al final del último día, el alumno debe pararse a pensar todo lo aprendido, y darse cuenta de que es capaz de hacer todo lo que quería hacer con Asterisk y no solo esto, si no con el convencimiento que tiene la disciplina adquirida que es la que utilizan los que programan y trabajan con Asterisk.

    Al final de la Bootcamp se hace el examen dCap, un examen que certifica que tienes los conocimientos necesarios para llevar a cabo un proyecto sea cual sea la dificultad y donde sea. Hay verdaderas personas alérgicas a los títulos, quien piensa que no es necesario y estoy con él, no es necesario. Una persona puede ser muy capaz y tener los conocimientos necesarios para desempeñar su trabajo con Asterisk sin necesitar de un documento que lo certifique, de la misma manera que una persona puede hacer una estupenda comida sin tener el título de cocinero. Pero es un título, y si alguien lo suspende únicamente significa que hay cosas de Asterisk y de comunicaciones VoIP que aún no conoce, en ningún caso que no sepa configurar un sistema Asterisk.

    Bueno, espero que con esta descripción haya quedado más claro qué es una Bootcamp, ya que el més que viene empieza uno de los tres cursos Bootcamp que se impartirán en España y también en Portugal (concretamente el 25 de Abril, en Bilbao, el 30 de Junio en Madrid, el 22 de Septiembre en Lisboa y el 24 de Noviembre en Valencia)

  • Cómo ejecutar AGI de forma asíncrona

    Lo primero que hay que saber es qué es un AGIqué es el AMI.
    Una vez sepamos la diferencia entre estas dos maneras de ejecutar aplicaciones de manera que interactúen con Asterisk, nos daremos cuenta que los AGI deben ejecutarse cuando se realiza una llamada (para consultar un número de teléfono en una base de datos, o similar), mientras que el AMI está contínuamente conectado a Asterisk y puede ejecutar comandos cuando quiera independientemente de cuando haya o no llamadas activas.

    El objetivo de esta técnica, consiste en ejecutar AGI cuando se produzca un evento, no cuando se ejecute desde el dialplan.

    Combinando las dos técnicas (AGI y AMI), se puede llegar a hacer esto:

    # telnet localhost 5038
    Action: Login
    Username: test
    Secret: test

    Action: AGI
    Channel: SIP/33-blah
    Command: EXEC Playback tt-monkeys
    CommandID: MyCommandID

    En este caso, habremos ejecutado un comando de AGI en el instante que hayamos decidido, no hace falta que lo ejecute el propio dialplan de Asterisk.

    Otra idea estupenda sería poder ejecutar comandos AGI incluso desde la consola de Asterisk:

    tcore*CLI> agi exec SIP/testing-09a5b960 “EXEC startmusiconhold”
    tcore*CLI> agi exec SIP/testing-09a5b960 “EXEC stopmusiconhold”
    tcore*CLI> agi exec SIP/testing-09a5b960 “EXEC Dial(Agent/23)”

    Para esto, hay un parche que permite utilizar los comandos AGI desde la consola:
    http://www.moythreads.com/asterisk-1.4.15-async-agi.patch

    Una técnica más para poder llegar a hacer aquello que tenemos en la cabeza. 🙂

    Vía: http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/
     

  • Presentando Visual Dialplan v.1.2

    Hace tiempo que desde APSTEL nos avisaron que disponían de una nueva versión compatible con Asterisk 1.4 y Asterisk 1.2 para diseñar dialplans de una forma gráfica y sobre todo bastante intuitiva.

    No es que sea muy amigo de los interfaces (los que me conoceis, creo que ya lo sabeis), pero siempre es bueno conocer las alternativas ya que hay casos en los que personalmente los aconsejo, bien porque la programación es muy sencilla o bien porque varía tantas veces que merece la pena que la persona pueda cambiarla a su placer.

    Tras ver el aviso en la web de Saúl y recibir un correo me acordé que quedé pendiente de echarle un vistazo y ver cómo funcionaba, algo que requería de un mínimo de tiempo, pero no es precisamente algo de lo que me sobre.

    Visual DialplanLa primera crítica constructiva es que únicamente funciona bajo Windows, eso considerando que instala una máquina virtual Java (JRE) creo que es un paso atrás. Creo que por el mismo esfuerzo se podría hacer compatible para más sistemas como Mac o Linux.

    El sistema es muy intuitivo, realmente no se hace necesario leer ningún manual para entender cómo funciona, aunque sigue siendo necesario conocer los comandos, algo que generalmente se le suele evitar al usuario final aunque siempre se peca de demasiado completo o demasiado simple.

    El diseño es realmente a base de «botonazo de razón» y salvo para escribir algún valor, realmente estamos programando el dialplan de una manera visual, algo que parece evidente llamándose «Visual Dialplan«, pero por lo menos esta aplicación cumple con lo que dice su nombre.

    Realmente recomiendo probarlo a todo aquel que tenga windows en alguna máquina para que compruebe lo sencillo que puede llegar a ser.

    Por otro lado, he echado de menos funciones para manejar colas y agentes, algo que viene en la versión profesional.

    El precio es bastante barato ($69) en la versión básica y $149 la versión profesional que incluye soporte de AGI, Colas, Agentes, soporte de Billing y algunas cosas más avanzadas.
    Quizá los que estamos acostumbrados a editar el archivo, esta aplicación nos parezca un poco engorrosa (las aplicaciones visuales suelen serlo) pero para alguien que está empezando, la descripción de cada aplicación y el poder ver todas las opciones de cada aplicación de Asterisk puede serle de gran ayuda.

    Enlace: http://www.apstel.com/products/products.jsp