Etiqueta: Moy

  • Digium homenajea al principal desarrollador del chan_unicall

    Cualquiera que vea el ranking de usuarios de Asterisk puede darse cuenta que tras EEUU y España, los países con más usuarios de Asterisk pertenecen a un conjunto de países donde existe una señalización de primarios llamada MFC/R2 y que, a pesar de ser muy conocida en estos países, en EEUU y en Europa no lo es tanto por lo que, en teoría los desarrolladores existentes en los países implicados se encuentran a menudo solos, ante una señalización especial y no contemplada desde un principio por el desarrollo original de Asterisk.

    El creador del SpanDSP (Steve Underwood) es incluso más conocido por desarrollar un canal que ofreciera el soporte necesario para permitir la compatibilidad con esta señalización. Steve se encontró inmerso en muchos proyectos y no tenía capacidad para continuar con este soporte por lo que lo terminó dejando de lado y eso hizo que muchos usuarios y empresas se encontrasen con grandes dificultades para soportar esta señalización.

    Hace algún tiempo, buscando información sobre señalización MFC/R2 para primarios en Angola (como ex-colonia de Portugal, mucha tecnología proviene de Portugal y esta a su vez de Brasil) me encontré con un blog de un mejicano llamado Moises Silva (moythreads.com) que además de ser usuario y desarrollador de Asterisk, es el principal desarrollador del proyecto chan_unicall que dota de soporte para la señalización MFC/R2 continuando el trabajo que comenzó en su día Steve Underwood, y más tarde reescribiendo un stack de R2 nuevo e integrándolo en chan_zap, asi no es necesario usar chan_unicall ni unicall, libmfcr2, spandsp y demás librerias.

    Ahora leo en el blog de Digium un breve homenaje a Moises a modo de agradecimiento por su tiempo y esfuerzo y sobre todo, por ofrecerlo con libre para la comunidad de Asterisk, algo que es digno de admiración y de agradecimiento por parte de todos.

    A propósito, comentar que Moises Silva estará en la Astricon 2008 para dar una charla sobre el soporte de MFC/R2 en Asterisk. 🙂

  • 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/