Mientras estaban «solucionando el bug» que había encontrado Adriá, tuve la suerte de conocer a un desarrollador de Asterisk encargado reproducir y solucionar algunos de los bugs de Asterisk 1.8 y hablando con él encontré que entre las mejoras que habían desarrollado para arreglar el bug y mejorar el canal del GoogleTalk, además del soporte de STUN, también estaba el soporte para GoogleVoice, un servicio del que ya hemos hablado pero que aún no está disponible en nuestro país. No obstante, gracias a un sencillo tutorial de la web de Saúl Ibarra, podemos darnos de alta en Google Voice y probarlo nosotros mismos cuando queramos.
Para demostrar que el nuevo GoogleVoice es compatible con Asterisk, este desarrollador (pabelanger), escribió este fantástico tutorial sobre los pasos a seguir para conectar nuestra cuenta de GoogleVoice con Asterisk:
Descargamos Asterisk:
mkdir -p /usr/src/asterisk-1.8-stable cd /usr/src/asterisk-1.8-stable svn co http://svn.asterisk.org/svn/asterisk/branches/1.8 .
Instalamos las dependencias:
apt-get install libiksemel-dev apt-get install libssl-dev
Compilamos Asterisk:
./contrib/scripts/live_ast configure make ./contrib/scripts/live_ast install ./contrib/scripts/live_ast samples
Editamos el archivo /etc/asterisk/jabber.conf y añadimos esto al final del archivo:
[gmail] type=client serverhost=talk.google.com ; Your gmail username. username=usuarioAsterisk@gmail.com/asterisk ; Your gmail password. secret=contraseña statusmessage="Connectado via Asterisk"
Editamos el archivo /etc/asterisk/gtalk.conf y cambiamos lo que hay por esto:
[general]
context=public
; Required if you want to accept calls from people not on your contact list.
allowguest=yes
[guest]
; Select your codec options.
disallow=all
allow=alaw
allow=ulaw
Con esto ya tendríamos la cuenta configurada correctamente, ahora solo nos falta configurar el dialplan para aceptar llamadas de GTalk:
[public] exten => s,1,Verbose('Incoming call') same => n,Playback(hello-world) same => n,MusicOnHold(default,15) ;; Aquí ponemos lo que queremos hacer cuando entren llamadas. same => n,Hangup() [salientes] ... exten => _91NXXNXXXXXX,1,Dial(Gtalk/gmail/+${EXTEN:1}@voice.google.com) ...
Con esto ya podemos recibir llamadas y hacerlas utilizando el crédito de GoogleVoice que, aunque no sea el más barato, es una opción bastante interesante.