app_spoolcall: Mi primer módulo para Asterisk

Hace ya tiempo que tenía ganas de escribir algo de código para Asterisk, más concretamente un módulo. No sabía muy bien que programar, hasta que un día me inspiré leyendo un mensaje de la lista Asterisk-ES que preguntaba algo acerca de un telemarcador.

«Esto se puede hacer fácil con un AGI que cree un fichero .call en la carpeta /var/spool/asterisk/outgoing» pensé, pero luego me vino la idea: ¿y si lo hiciera un módulo de Asterisk?. Así que me puse manos a la obra, y el resultado es que funciona!!

El módulo tiene una aplicación SpoolCall a la que pasas en forma de parámetro todas las opciones del fichero .call y este se crea en el directorio correspondiente.

Toda la información, así como el código fuente están disponibles aquí: http://saghul.net/blog/proyectos/app_spoolcall/ 

Espero que a alguien le sirva, y si lo probáis, por favor, reportadme cualquier problema o sugerencia, para ir mejorando.

También he modificado la página de Proyectos Software, para no llenarla de información, y espero ir añadiendo cosas. 😉

AGRADECIMIENTOS: A Txipi, por ser mi primer betatester y a Julián J.M. por ayudarme a solucionar un segfault.

sgh-logo_blanco.jpg

6 thoughts on “app_spoolcall: Mi primer módulo para Asterisk

  1. Ey, enhorabuena por el módulo. Me quedé con la intriga del segfault, ya me contarás qué era (seguro que un detallito, como siempre) 😀

    Keep on hacking! 😉

  2. Muy buena, antes de leer el comentario de txipi, me ha surgido la misma duda, como solucionaste ese esoterico error que tenias, jaja, supongo que vas a tener que abrir una nueva entrada con la solucion, pues eso que enhorabuena, y un saludo.

  3. Tenía pensado hacer una guía en plan «Como programar módulos para Asterisk». Tengo que mirarme una cosa de los parámetros e igual la escribo… 🙂

  4. Hola, muy muy bueno el módulo, y sobre todo muy práctico. Prometo probarlo en cuanto tenga un ratillo. Si va bien creo que deberías plantearte tratar de subirlo al SVN de Asterisk porque lo de hacer un «exec» para que llame a un triste script en Bash que genere el callfile es una marranada y tu solución es muy elegante.

    Sólo un apunte por mi parte: no me gusta que los directorios estén harcodeados y no respeten los que figuran en «asterisk.conf». Me refiero a:

    char path[] = «/var/spool/asterisk/outgoing/»; (en el código C)

    y

    MODULES_DIR=$(PREFIX)/lib/asterisk/modules (en el Makefile).

    Y tal vez también:

    CONF_DIR=/etc/asterisk

    aunque los primeros que tienen eso medioharcodeado son los propios desarrolladores de Asterisk.

    Pues eso, que enhorabuena 😉

  5. Gracias por el feedback Iñaki! Lo cierto es que a mi también me pareció una guarrada en su día, pero finalmente para el primer release lo dejé. Para la siguiente versión tengo pensado lo siguiente:

    – Limpiar el Makefile y tal
    – Quitar los directorios hardcodeados
    – Crear un fichero de configuración para poner los valores por defecto, y que se comprueben estos, antes de los hardcodeados.
    – Con el fichero de configuración, contemplar otras opciones que tienen los ficheros .call

    Creo que eso es todo… Entonces si que trataré de meterlo en el SVN 🙂

  6. Hola:

    Soy estudiante de la UCI y estoy comenzando el trabajo con Asterisk.Esta genial la idea de crear trabajar un modulo para asterisk en hora bueno.

    De ser posible , me puedieras dar alguna informacion de como debo realizar uno.
    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *