Configurar FreeSWITCH como cliente de GTalk y Jabber

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

Estos son los resultados:

 

Lo he probado y el audio es perfecto.

 

Cheverisimo!!!!

Technorati Tag: ,,,

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.

Distribuir contenido Distribuir contenido