y que puedan llamarnos nuestros contactos de Google
otro SuperPoder más!
Aprovechando que ya tenemos nuestro Asterisk a pleno rendimiento, vamos a facilitar y extender su uso, a Google Talk, de forma que podamos llamar a nuestros contactos de GTalk, desde nuestras extensiones sip e incluso desde el fijo de casa. Tambien puede ser al revés, podrán llamarnos a nuestra cuenta de GTalk y que suenen nuestras extensiones sip y/o el teléfono analógico.Resulta interesante saber que Google es nuestro amigo (Don't be Evil!!) y nos deja conectar la cuenta de Gtalk a casi cualquier servicio de voz en software libre. Vamos a usar Jabber para hacer la conexión contra nuestra cuenta de Gtalk (la de Gmail). Primero es asegurarnos que tenemos nuestro Asterisk correctamente instalado y funcionando, pasaos por el post en cuestión y aseguraos. En mi caso voy a usar dos cuentas de GTalk:
- CUENTA_CASA@gmail.com será la que registre en Asterisk
- CUENTA_PERSONAL@gmail.com que será uno de los contactos
Registro
Empezamos editando:vim /etc/asterisk/jabber.confEste es el contenido del mio:
[general] autoregister=yes [asterisk] type=client serverhost=talk.google.com username=CUENTA_CASA@gmail.com/Talk secret=clave_supersecreta port=5222 usetls=yes usesasl=yes buddy=CUENTA_PERSONAL@gmail.com statusmessage="El telefono de Friky" timeout=100
Y ahora:
vim /etc/asterisk/gtalk.conf
Que tiene que parecerse más o menos a esto:
[general] bindaddr=0.0.0.0 ;externip=193.238.54.115 ; Tu IP publica externhost=TU_HOST.dyndns.org context=entrante-gtalk allowguest=yes [guest] disallow=all allow=ulaw context=entrante-gtalk [asterisk] username=CUENTA_CASA@gmail.com disallow=all allow=alaw,ulaw context=entrante-gtalk connection=asterisk
Y poco más (para el registro). Para que veamos el efecto, la siguiente imagen es una captura del chat (GTalk) integrado de Gmail de CUENTA_PERSONAL@gmail.com:
Y ahora recargamos las configuraciones de Asterisk de la siguiente forma:
asterisk -r *CLI> core set verbose 10 *CLI> module reload *CLI> jabber show connections Jabber Users and their status: [asterisk] CUENTA_CASA@gmail.com/Talk - Connected ---- Number of users: 1
Parece que está bien, vemos ahora como cambia el chat:
Jejeje perfecto.
Uso de la cuenta de GTalk
Una vez que tenemos el registro comprobado, hay que darle utilidad, para ello editamos:
vim /etc/asterisk/extensions.conf
Y ponemos por ejemplo la siguiente configuración:
[globals] gtw=sip/gateway opc=tTrkKwW [internos] include => parkedcalls exten => 1002,1,Dial(sip/1002,${TIMEOUT},${opc}) ; este es el telefono analogico same => n,Goto(nulo,s,1) exten => 100,1,Dial(sip/Juanmol,${TIMEOUT},${opc}) same => n,Goto(nulo,s,1) [salientes] exten => 112,1,Dial(${gtw}/112) exten => _X.,1,NoOp(${CALLERID(num)} llamando a ${EXTEN}) same => n,Dial(${gtw}/${EXTEN},,tT) same => n,Goto(nulo,s,1) exten => 2244,1,Dial(Gtalk/asterisk/CUENTA_PERSONAL@gmail.com) same => n,Goto(nulo,s,1) [usuarios] include => internos include => salientes [entrantes] exten => s,1,NoOp(Ha llamado ${CALLERID(num)}) same => n,Dial(SIP/1002&SIP/Juanlu,${TIMEOUT},${opc}) same => n,Goto(nulo,s,1) [entrante-gtalk] exten => s,1,Answer() same => n,Set(CALLERID(name)=${CUT(CALLERID(name),\@,1)}) same => n,NoOp(llamada entrante de ${CALLERID(name)} y por GTalk, flipa!) same => n,Dial(sip/1002&sip/Juanmol) same => n,Goto(nulo,s,1) [nulo] exten => s,1,Hangup() exten => h,1,Hangup() exten => _X,1,Hangup() exten => _X.,1,Hangup()
Este dialplan (que habría que completar) viene más o menos a ser, que las llamadas entrantes del SPA3102 (la linea analógica) suenan en el teléfono analógico, conectado al mismo SPA y a la extensión sip/Juanmol que por ejemplo la tengo registrada en el Android. Las entrantes de GTalk siguen el mismo camino. Las salientes se realizan por la línea analógica. Para llamar a sip/Juanmol desde el teléfono analógico, marcaría 100 y para llamar a CUENTA_PERSONAL@gmail.com, llamaría al 2244, desde el analógico o desde sip/Juanmol
Que cosa más hermosa
Llevaba tiempo detras de montar la centralita en casa... Muchas gracias por todo este conocimiento. Estoy disfrutando cmo un enano
ResponderEliminarMuchas gracias por la info y tengo un aporte para quienes lean esto:
ResponderEliminarPara grabar las llamadas entrantes a la cuenta de gtalk agregar
exten => s,n,Set(CALLERID(name)=${CUT(CALLERID(name),\@,1)})
exten => s,n,Set(Call_ID=${CUT(CALLERID(name),\@,1)})
exten => s,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y_%m_%d-%H:%M:%S)})
exten => s,n,Set(calldir=/var/spool/asterisk/monitor)
exten => s,n,MixMonitor(${calldir}/${Call_ID}-${calltime}.wav)
a [entrante-gtalk]
Es lo mismo para las salientes pero se modifica el identificador por el de la extencion..
Saludos.
¡¡¡MUCHO OJO!!! yo aun no había publicado nada de grabar las llamadas. Que cada uno consulte según su operador/país la legalidad de esto. NO ME HAGO RESPONSABLE DE LAS OPINIONES DE LOS COMENTARIOS, pero tampoco lo borro porque esta muy bien explicado ;)
EliminarSi eres tan burro como yo que si saber vas a la ultima y tienes Asterisk 11, vereis que en esta version no se modifica el jabber.con sino xmpp.conf.
ResponderEliminarSi quereis mas información aqui teneis la solucion (aunque en inglés)
https://wiki.asterisk.org/wiki/display/AST/Calling+using+Google
Este comentario ha sido eliminado por el autor.
ResponderEliminarMuy buenos días, estoy montando un sistema de alarma para casa, y me gustaría que las raspberry realizara una videollamada cuando salta la alarma. Ya tengo configurado asterisk con gtalk (ambas cuentas se ven correctamente), Ahora necesito saber ¿cómo puedo iniciar la videollamada desde la raspberry al otro contacto?
ResponderEliminar