FreeSWITCH puede conectarse, como cliente y servidor, a un servidor con protocolo Jingle (tipo GoogleTalk). En este articulo veremos como conectarlo como cliente a Gtalk.
Prerequisitos:
Seguir los pasos indicados en esta guia
Primero tenemos que decirle a FreeSWITCH que al arrancar cargue el modulo mod_dingaling:
nano /usr/local/freeswitch/conf/autoload_config/modules.conf.xml
y en el bloque
<!-- Endpoints -->
modificamos la línea del modulo para que quede así:
<load module="mod_dingaling"/>
Guardamos los cambios y seguimos
nano /usr/local/freeswitch/conf/jingle_profiles/client.xml
<include>
<!-- Client Profile (Original mode) -->
<!-- to use this profile take the x- away from the open and close tags so its <profile> and </profile> -->
<profile type="client">
<param name="name" value="gtalk"/>
<param name="login" value="freeswitchesp@gmail.com/gtalk"/>
<param name="password" value="contraseña"/>
<param name="dialplan" value="XML"/>
<param name="context" value="public"/>
<param name="message" value="I am Freeswitch Server"/>
<param name="rtp-ip" value="$${bind_server_ip}"/>
<!-- <param name="ext-rtp-ip" value="$${external_rtp_ip"/> -->
<param name="auto-login" value="true"/>
<!-- SASL "plain" or "md5" -->
<param name="sasl" value="plain"/>
<!-- if the server where the jabber is hosted is not the same as the one in the jid -->
<param name="server" value="talk.google.com"/>
<!-- Enable TLS or not -->
<param name="tls" value="true"/>
<!-- disable to trade async for more calls -->
<param name="use-rtp-timer" value="true"/>
<!-- default extension (if one cannot be determined) -->
<param name="exten" value="888"/>
<!-- VAD choose one -->
<!-- <param name="vad" value="in"/> -->
<!-- <param name="vad" value="out"/> -->
<param name="vad" value="both"/>
<!--<param name="avatar" value="/path/to/tiny.jpg"/>-->
<!--<param name="candidate-acl" value="dl-candidates"/>-->
</profile>
</include>
En la líneas en negrita es donde configuramos la extensión(888) y el contexto (public) que vamos a configurar en el dialplan
Creamos un nuevo archivo llamado gmail.xml en la carpeta public
nano /usr/local/freeswitch/conf/dialplan/public/gmail.xml
y copiamos estas líneas
<include>
<extension name="gtalk">
<condition field="destination_number" expression="^(888)$">
<action application="set" data="domain_name=$${domain}"/>
<!-- Este ejemplo mapa la extension 888 y llama la extension 1000 en el contexto default -->
<action application="transfer" data="1000 XML default"/>
</condition>
</extension>
</include>
Todas las llamadas a la extensión 888 serán transferidas a la extension 1000


Lo he probado y el audio es perfecto.
Cheverisimo!!!!
Technorati Tag: FreeSWITCH,Gtalk,Jingle,Dingaling
Comentarios
Necesito ayuda con el ejemplo
Hola, soy un desarrollador de software y actualmente estoy investigando sobre FreeSWITCH. Tu ejemplo me ha parecido bastante bueno como para dar los primeros "pininos" en FreeSWITCH, sin embargo, a pesar de haber seguido tu ejemplo.... no logro comprenderlo del todo. Mi interrogante concreta es la siguiente:
En los screenshots que has publicado, se ve que hay un usuario x que esta usando google talk y que tiene como contacto al usuario freeswitchesp@gmail.com, que es el que has registrado en FreeSWITCH. ¿El usuario freeswitchesp@gmail.com se autentica en googletalk cuando arrancas FreeSWITCH? o ¿el usuario freeswitchesp@gmail.com esta asociado a una extensión de FreeSWITCH? ¿la extensión 1000? ¿que papel tiene en todo esto la extensión 888?
Te agradecería mucho me pudieras dar una luz en esto.
Redbaron
GTalk y FreeSWITCH
El usuario freeswitchesp@gmail.com se autentica en google talk cuando arranca FreeSwitch y queda conectado hasta que FreeSWITCH esté corriendo. Más que usuario en este caso se puede hablar de cliente google talk.
El mismo usuario está asociado a la extensión 888 (como el archivo de configuración del cliente gtalk muestra). Todas las llamadas entran con esa extensión a Freeswitch, luego yo puedo decidir si transferirla a una extensión o, por ejemplo a un menú de voz. Eso lo defino con el dialplan. En el caso del ejemplo, transfiero todas las llamadas dirigidas a la extensión 888 a la extensión 1000 (que en mi caso es el teléfono IP que tengo configurado como extensión 1000).
Si todavía no tienes algo claro, o no me expliqué bien, puedes seguir preguntando.
Saludos
Cada vez más claro
Saludos admin, muchas gracias por la explicación, veo que no tenía muy claro a dónde iba a llegar con el ejemplo, creo también que otra de las razones es que no tenía a nadie con quien probar en ése momento (alguien que estuvise en windows usando GoogleTalk) como para decir que llegaría por prueba y error. Este día voy a realizar la prueba y publicaré cuál fue mi resultado.
Gracias de nuevo.