Friday, July 22, 2011

Configurar Gtalk en Asterisk

Gracias a los modulos res_jabber y chan_gtalk podemos integrar Gtalk con Asterisk y de esta manera poder recibir y realizar llamadas mediante Gtalk (Por el momento solo llamadas de audio), para poner en marcha esta implementación tenemos que asegurarnos de que tenemos los modulos instalados y cargados en nuestro asterisk, para ello nos conectamos a la consola de asterisk:

# asterisk -r

Y Ejecutamos los comandos "module show like gtalk" y "module show like jabber", si nos muestra lo siguiente es porque lo tenemos instalado y cargado correctamente:

Asterisk*CLI> module show like jabber

Module                         Description                              Use Count 
res_jabber.so                  AJI - Asterisk Jabber Interface          0         
1 modules loaded

Asterisk*CLI> module show like gtalk

Module                         Description                              Use Count 
chan_gtalk.so                  Gtalk Channel Driver                     0         
1 modules loaded

En caso de que no los tengamos instalado, vamos a tener que instalarlos, y para ello deberemos recompilar asterisk (En caso de que lo hagamos compilado) o instalarlo desde los repositorios, estos módulos tienen como dependencia el paquete iksemel (Pueden conseguirlo AQUI o instalarlo desde los repos).

Cuando tengamos los modulos correspondientes instalados, procedemos con la configuración, para ello necesitaremos configurar 2 archivos: jabber.conf y gtalk.conf.

Pueden crearlos desde cero o simplemente copiar los archivos de configuracion de ejemplo correspondientes desde el codigo fuente de Asterisk (carpeta configs).


Nos dirigimos a la carpeta raiz de asterisk y creamos primero el archivo gtalk.conf, con el siguiente contenido:

[general]
context=google-in                          ;Contexto al cual irán las llamadas
bindaddr=0.0.0.0               
externip=prueba.no-ip.org             ;IP Externa, en caso de que se este por debajo de un NAT
allowguest=yes                              ; Permitir llamadas de personas que no esten en nuestra lista

[guest]                                           ;Se declara la cuenta que identifica a los invitados
disallow=all                                   
allow=ulaw
context=google-in                          ;Contexto al cual irán las llamadas

[PuntoLibre]
username=puntolibreasterisk@gmail.com     ;usuario que va a llamar o aceptar llamadas
disallow=all
allow=ulaw
context=google-in               
connection=asterisk            ; Elemento del archivo jabber.conf con el que se conectará

Luego creamos el archivo jabber.conf con el siguiente contenido:

[general]
debug=yes         ;Se sobre-entiende :D
autoprune=yes   ;Autoelimina usuarios de la lista de contactos
autoregister=yes ;Autoregistra usuarios en la lista de contactos basandose en el Buddy-List
auth_policy=accept ;Politica de autorizacion, por defecto va aceptar todas las solicitudes.

[asterisk]                               ;Elemento definido anteriormente en gtalk.conf 
type=client 
serverhost=talk.google.com   ;Servidor de jabber de gtalk
username=puntolibreasterisk@gmail.com/Talk ; Cuenta de correo antes puesta
secret=Password ;Contraseña
port=5222 ;Puerto por defecto es 5222
usetls=yes ;Uso de TLS
usesasl=yes ;Uso de SASL
;Amigos que se añádiran manualmente
buddy=amigo1@gmail.com
buddy=amigo2@gmail.com
buddy=amigo3@gmail.com
statusmessage=Asterisk Server ;Mensaje de Status
timeout=100 ;Timeout del mensaje antes mostrado

Y para finalizar configuramos el Dialplan modificando el archivo extensions.conf, guiandonos de esta configuración de ejemplo:

[google-in]
exten => s,1,NoOp(Llamadas desde Gtalk)
same => n,Set(CALLERID(name)="GoogleTalk")
same => n,Dial(SIP/1001,20,tr)

[google-out]
exten => 8001,1,Dial(Gtalk/asterisk/amigo1@gmail.com)
exten => 8002,1,Dial(Gtalk/asterisk/amigo2@gmail.com)
exten => 8003,1,Dial(Gtalk/asterisk/amigo3@gmail.com)

Finalmente reiniciamos Asterisk y tendremos integrado Gtalk con Asterisk, cualquier duda o aclaración, me escriben!

Hasta la Proxima!

3 comentarios:

Anonymous said...

Excelente, vere si lo implemento ahora mismo :)

Ramphis Che said...

Dale para alla!! me cuentas tu experiencia,

Saludos

Necropoly said...

Bueno, me nace una duda, todo lo que comentas funciona perfectamente usando el cliente de gtalk, ahora también se ha implementado la funcionalidad que desde el webmail pueda efectuar llamadas a los contactos, y es en esta parte donde no funciona el ingreso de llamdas ni la salida, pero si se usa el cliente de gtalk funciona perfecto en ambos sentidos.

Desearía tu ayuda aclarando este inconveniente.

Post a Comment