Archivo de la etiqueta: Proyectos Software

Script de instalación de Asterisk 1.4 en Debian v0.3

Aprovechando las “vacaciones” he decidido completar un poco más el script de instalación de Asterisk que hice hace algún tiempo.

He incluido algunas mejoras que varios lectores me han comentado:

  • La descarga de las versiones se realiza por HTTP, en lugar de por SVN, haciendo así que vaya más rápido.
  • Se listan correctamente las versiones de 4 bloques de números, como la 1.4.21.2.
  • Añadida la posibilidad de descargar e instalar mISDN.
  • Añadida barra de progreso durante la descarga de ficheros.
  • Comprobación de que el usuario que ejecuta el script es root y que es una Debian 🙂

Espero que os guste, y al igual que la otra vez, cualquier sugerencia será bienvenida!!

Podéis descargar el script en la sección de proyectos o aquí.

Se acerca el final: Proyecto Fin de Carrera

Ya se va acercando el final de mi primera fase universitaria, y para poner la guinda, el Proyecto Fin de Carrera. Como yo hice los 2 ciclos en universidades diferentes, también realicé un PFC al finalizar 3º. Era un Asterisk, bastante completito, pero un simple Asterisk.

Para esta ocasión, pensé en montar un super-server talla ITSP con OpenSER + Asterisk, pero me pareció que aunque fuera más complicado y molón, no dejaba de ser un poco más de lo mismo… Finalmente, me he decantado por desarrollar un softphone SIP compatible con el RFC3261.

El objetivo es comenzar el desarrollo del software como PFC, pero seguir hasta obtener un softphone usable, de calidad y compatible (lo máximo posible) con el RFC.

La verdad es que me da un poco de ‘miedo’, porque igual me viene un poco grande, pero espero que salga algo decente, sino lo escondo en el garaje como hizo Homer con aquel robot 😉

El ‘core’ será desarrollado en C, utilizando las librerías PJSIP para señalización, y PJMEDIA para el flujo de audio. De momento tengo pensado utilizar PyQt para la interfaz.

Este post no dejaría de ser otro cualquiera de ‘culto al ego’ como dicen algunos, pero me he decidido a postearlo porque encaja con la temática del blog, y porque quizá alguien que haya realizado algo similar lo lea y pueda comentarme algo al respecto… 🙂

app_spoolcall 0.3 released!

Ya he preparado una nueva release de app_spoolcall, aunque todavía no me atrevo a llamarla 1.0 beta 🙂

Los cambios básicamente consisten en una mejor gestión de la memoria y los datos, agrupándolos en estructuras, y utilizando memoria dinámica.

PERO, esta release incluye un cambio importante: ahora los ficheros son creados en otro directorio, concretamente en /var/spool/asterisk/outgoing/temp (si no hemos modificado el path en la instalación de Asterisk), y posteriormente son movidos a /var/spool/asterisk/outgoing

De esta manera evitamos posibles errores en la generación de ficheros, y que el módulo pbx_spool los coja mientras están siendo escritos. (idea de Julian JM)

Espero que os guste y vuestros comentarios… a!, y mirad el TODO a ver que opináis… 🙂

Podéis descargarlo en la página del proyecto.

sgh-logo_blanco.jpg

app_spoolcall 0.2 released!

Tras estar mejorando (o eso creo) esta aplicación, aquí os traigo el segundo release. Para los que lo ven pro primera vez: app_spoolcall es un módulo para Asterisk que crea ficheros .call en el directorio de spool, para así no tener que hacerlo con AGIs o scripts.

Los cambios son los siguientes:

  • Eliminado el directorio spool ‘hardcodeado’.
  • Makefile limpiado, para facilitar la compilación.
  • Creado el fichero de configuración spoolcall.conf con las opciones generales de funcionamiento.

Espero que os guste y espero feedback, porque si veo que va bien intentaré colarla en el SVN… 😉

Podéis descargarla aquí: http://saghul.net/blog/downloads/app_spoolcall-0.2.tgz

Página de proyectos: http://saghul.net/blog/proyectos-software/

NOTA: El paquete incluye un README con más información.

sgh-logo_blanco.jpg

Code 4 fun! 🙂

Programando AGIs en Python

Python mola. No se muy bien porque pero la realidad es que mola. Así que hoy se me ha ocurrido programar un pequeño AGI en Python, para ver como iba la cosa, y la verdad es que ha sido la mar de fácil.

Para facilitarme la tarea, he utilizado Python for Asterisk (pyst), una colección de clases, para facilitar la conectividad con Asterisk, al estilo PHPAGI.

Como en Debian por defecto viene Python 2.4, he instalado la 2.5:

#apt-get install python2.5

A continuación hay que descargar el fichero correspondiente de la web, descomprimirlo, y copiar la carpeta “asterisk” al directorio /var/lib/asterisk/agi-bin

Para asegurarnos de que se ejecutan con la versión correcta de Python, comprobamos que en la cabecera de los ficheros ponga:

#!/usr/bin/env python2.5

Ya tenemos listo el entorno, así que vamos a por el primer AGI! Creamos el fichero “prueba.py” en el directorio /var/lib/asterisk/agi-bin con el siguiente contenido:

NOTA: Como no quedaba bien la indentación del código, he subido el fichero. Podéis descargarlo aquí: http://saghul.net/blog/downloads/prueba.py

Añadimos esta línea al dialplan:

exten => 1234,1,AGI(prueba.py)

Y deberíamos escuchar el fichero demo-congrats. 😉

python.png

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

VoiceGlue, un VXML GPL para Asterisk

VoiceGlue acaba de publicar la versión 0.1 de una solución VXML para Asterisk. Utiliza OpenVXI 3.4, procesa código de VoiceXML 2.0 e implementa muchas características de VoiceXML 2.1. Esta primera versión tiene las siguientes características:

  • Soporte de tonos DTMF (sin reconocimiento de voz por el momento).
  • Grabación y reproducción de sonidos mediante TTS (Text-To-Speech).
  • Esta planeada la integración con el motor de reconocimiento de voz de LumenVox y a lo mejor con Sphinx.
  • Podéis consultar una lista completa de las características aquí.

La web del proyecto: http://www.voiceglue.org/

vghead.gif

Vía VentureVoIP.

Win-get, el apt-get para Windows

Acabo de saber de la existencia de este proyecto vía Genbeta y la verdad, me he quedado alucinado. Win-get es a Windows lo que apt-get es a las distros Debian-like. Las demás podrán decir lo que quieran pero la mejor es Debain 😉

El sistema consta de una aplicación cliente (línea de comandos) escita en Pascal y otra servidor, escrita en PHP, que actúa de repositorio de archivos. Esto el el colmo, para qué usar OpenOffice y win-get en Windows, si puedes pasarte a GNU/Linux y disfrutar de todas sus ventajas?

No obstante, me parece un proyecto muy interesante, a ver si atrae más gente a GNU/Linux 🙂

La web del proyecto: http://windows-get.sourceforge.net/

winget.gif

Balanceador de carga IAX2

Leo en VentureVoIP que han sacado un balanceador de carga IAX2 independiente de Asterisk. Al parecer esto estaba siendo bastante demandado, y aunque esta en estado beta, sería interesante probarlo 😉

De momento el parece que funciona correctamente y con baja latencia manejando unos cientos de llamadas. Se configura indicando las direcciones IP de cada máquina, y el proxy guarda información de la carga de cada una.

Solo realiza pasos de mensajes (no trta el stream de audio, simplemente lo pasa), pero lo realiza a nivel de llamada, no de conexión IAX2.

Podéis descargar el código y algo de documentación aquí: http://www.gradwell.com/tmp/iax_proxy.tar.gz

Visual Dialplan Beta para Asterisk

Visual Dialplan es una aplicación que nos permite modelar nuestro dialplan en lugar de programarlo. Simplemente añadiendo “bloques” generamos un dialplan con IVR, colas, etc…

La aplicación es solo para Windows 🙁 y es beta, pero parece “bonita”. La podéis descargar de http://www.apstel.com

vdp_validation.png

Vía VentureVoIP, antes conicido como SineApps 🙂