Friday, December 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.....

No comments: