viernes, diciembre 28, 2007

Adhearsion Asterisk

Para a los que les salgan sarpullidos por programar el dialplan de Asterisk porque piensan que es como volver a la programación de hace unos 30 años (al rico GOTO), les recomiendo que prueben Adhearsion

Resumiendo podríamos decir que permite crear aplicaciones de verdad con un lenguaje de verdad que se integran perfecto con Asterisk y usando AGI y AMI por lo que funciona sin modificaciones en Asterisk.

A continuación doy la lista de pasos básica para que funcione una prueba sencilla en Ubuntu Feisty o en Ubuntu Gutsy.

Requisitos:
* disponemos de Asterisk instalado y funcionando.
* tenemos instalado ruby (en caso contrario apt-get install ruby).
* tenemos desacargado rubygems-1.0.1.tgz (el que viene en paquete deb no me ha servido).

Los pasos a dar son:
* Descomprimimos rubygems (tar zxvf rubygems-1.0.1.tgz)
* Instalamos rubygems (cd rubygems-1.0.1; sudo ruby setup.rb)
* Hacemos un link para dejar el nombre correcto al ruby gems (ln -s /usr/bin/gem1.8 /usr/bin/gem)
* Instalamos adhearsion usando ruby gems (gem install adhearsion)
* Creamos una aplicación de test y la llamamos gettingstarted (ahn create gettingstarted)
* Editamos gettingstarted/extensions.rb y ponemos como contexto de entrada adhearsion_test.
* Arrancamos la aplicación creada (ahn start gettingstarted)
* Configuramos un telefono para que su contexto sea el contexto para hacer pruebas, en mi caso adhearsion_test
* Modificamos el dialplan de asterisk para que ese telefono de test interactue con la aplicación creada, para ello:
* Creamos el contexto [adhearsion_test]
* Creamos como única extensión de ese contexto una llamada a la aplicación mediante AGI con la siguiente linea: exten => _X.,1,AGI(agi://127.0.0.1)
* Recargamos la configuración correspondiente al teléfono de test (sip, zap, mgcp, la que corresponda) y el extensión de asterisk. O reiniciamos el asterisk....
* Y a testear el programa.... Podemos editar el extensions de la aplicación gettingstarted creada para ir haciendo pruebas...


Por ahora me ha parecido una solución muy buena, por ahora lo que me queda pendiente es meter estrés, a ver como se comporta y seguir la evolución del framework ya que en la propia web consideran que todavía no está como para sistemas en producción....

Que sepáis que si sois desarrolladores y necesitáis integraros con Asterisk y os habéis peleado con el Dialplan de Asterisk, en cuanto probéis esta solución no vais a querer volver a ver dialplan de Asterisk nunca más.....

miércoles, diciembre 26, 2007

domingo, diciembre 23, 2007

Felicidades a Todos....

Para los cristianos: Felices Navidades.
Para los ateos: Felices días de Vacaciones.
Para los satánicos: Lo siento tios.... a soportar otras Navidades
Para el resto: Felicidades sin especificar.

viernes, diciembre 14, 2007

Persiguiendo Fantasmas

Finalmente se ha destado el problema de que el endpoint MGCP/NCS se quedase pitando con señalización inband cuando se le enviaba un DTMF por sip desde nuestro proveedor.... el tema es sencillamente preguntar a todo el mundo hasta que alguien te confirme/confiese que para hacer ciertas pruebas con el proveedor habia cambiado la señalización de ese trunk.... vamos para pegarse un tiro...

Asi que amigos ya sabeis:

1) Proveedor A (SIP + DTMF 2833 )
2) Asterisk B (SIP trunk con A configurado con DTMF inband)
3) Endpoint C MGCP/NCS conectado a Asterisk B con DTMF hybrid)
4) Llamada desde D, se enruta por A, pasa por B, llega a C que contesta
5) D pulsa un DTMF y suelta
6) Resultado.
6.1) Asterisk B detecta sólo el comienzo del DTMF
6.2) El Endpoint C suena el DTMF "ad infinitum" independientemente de cuando suelte la tecla D.

martes, diciembre 11, 2007

Semanas Asterisk

Llevo un par de semanas metido de lleno en el tema de la telefonía IP con Asterisk. Por una parte asistí a la BootCamp realizada en Madrid, aunque el examen para dCap lo he dejado para un poco más adelante. Vamos que el viernes correspondiente al examen no me veía preparado....

De la BootCamp me ha quedado un sabor agridulce, puesto que aunque el profesor (Elio Rojano de sinologic asterisk bootcamp en madrid) se notaba que sabía un montón del tema, y a que la verdad es que he aprendido (o sobre todo afianzado) muchas cosas, ciertos problemas de logística y organización hicieron que el curso se quedase algo más pobre de lo que cabría esperar.

En cualquier caso el blog sinologic es de Indispensable lectura en caso de estar interesado por el tema de VozIp y/o Asterisk.


Por otro lado están siendo las semanas de Asterisk puesto que estoy peleando en el trabajo con la puesta al día del ćodigo de MGCP de Asterisk para que funcione correctamente algunos problemas detectados con los DTMS en las últimas revisiones de Asterisk.... (tanto en la serie 1.4.x como en el trunk)

El caso es que de los errores detectados alguno se está resistiendo bastante y lo peor es que MGCP no es de las partes con mejor soporte de Asterisk por lo que es dificil encontrar gente que te pueda echar una mano....

Si alguien tiene tiempo y ganas de echarme una mano que se eche un vistazo a chan_mgcp.c y al Bug #11443 y que tenga en cuenta que la primera parte del error reportado está corregida, pero aparece uno nuevo por el que cuando nos llaman desde SIP con señalización inband sólo se detecta el comienzo del DTMF y el endpoint MGCP/NCS se queda pitando con el primer DTMF detectado.... (porca miseria!!!)