domingo, 30 de diciembre de 2007

Asterisk y Gtalk


Muchos son los proyectos que intentan la convergencia entre los diferentes IM y algunos servicios de llamadas a través de internet.

Vamos a configurar nuestro asterisk para poderlo comunicar con una cuenta de googleTalk.

Para ello aprovechamos algunos ficheros de configuración que trae la última versión de asterisk(1.4), destinados exclusivamente a este fin.


Primeramente debemos modificar nuestras extensiones definidas anteriormente y añadir un usuario al de gTalk con el que deseamos establecer la conexión. No es necesario modificar el archivo sip.conf

Al fichero de configuración extensions.conf le debemos añadir:

[google-in]
exten => s,1,NoOp( Call from Gtalk )
exten => s,n,Set(CALLERID(name)=”From Google Talk”)
exten => s,n,Dial(SIP/test1)

[google-out]
exten => 200,1,Dial(gtalk/gtalk_account/username@gmail.com)


En esta versión de Asterisk existe además dos ficheros de configuración que vamos a modificar: jabber.conf y gtalk.conf.

El contenido de jabber.conf será de la siguiente manera:

[general]
debug=yes
autoprune=no
autoregister=no

[gtalk_account]
type=client
serverhost=talk.google.com
username=username@gmail.com/Talk
secret=********
port=5222
usetls=yes
usesasl=yes
buddy=buddy@gmail.com
statusmessage=”This is an Asterisk server”
timeout=100


Y el contenido de gtalk.conf será de la siguiente manera:

[general]
context=google-in
allowguest=yes
;
[guest]
disallow=all
allow=ulaw
context=google-in

[buddy]
username=username@gmail.com
disallow=all
allow=ulaw
context=google-in
connection=gtalk_account



Una vez configurado esto ya lo tenemos, configuramos un cliente(softphone) con la numeración a la que podemos llamar según el dialplan que hemos definido.

Una vez que nos metemos en la consola por primera vez aparecerán cosas de la siguiente manera:

JABBER: gtalk_account INCOMING:

Mi usuario de gtalk se tiene agregado a si mismo por eso ese log.

También aparecerán logs de la siguiente manera.

JABBER: gtalk_account INCOMING:

Y alguno de la siguiente manera:

JABBER: gtalk_account OUTGOING: Greetings I am the Asterisk Open Source PBX and I want to subscribe to your presence



Una vez visto que efectivamente asterisk está interactuando con la cuenta de gtalk que hemos configurado pasamos a la ejecución del ejemplo:

Primero intentamos desde la consola de asterisk:

*CLI> dial
The 'dial' command is deprecated and will be removed in a future release. Please use 'console dial' instead.

Y de repente como era esperable nuestro cliente comienza a sonar. Y en la pantalla aparece el número de Google Talk.



Finalmente llamamos a la extensión 200, (cuenta de gtalk.) y obtenemos el siguiente log en la consola de asterisk

*CLI>
[Dec 30 15:20:47] ERROR[14176]: chan_gtalk.c:858 gtalk_alloc: no gtalk capable clients to talk to.
[Dec 30 15:20:47] WARNING[14176]: app_dial.c:1125 dial_exec_full: Unable to create channel of type 'gtalk' (cause 0 - Unknown)


Es un comienzo de cómo asterisk se puede comunicar con gtalk! seguiremos investigando.






No hay comentarios: