domingo, junio 01, 2014

Objetivo


En este manual se detalla paso a paso configurar 3 teléfonos IP para realizar llamadas entre ellos, el principal un SPA504G podrá realizar llamadas a los dos teléfonos SPA502G. Los SPA502G estarán configurados como hotline (al levantar el auricular este llamara automáticamente) al SPA504G.





Telefonía IP SIP autónoma


El protocolo de telefonía SIP, fue diseñado para que los endpoint, en este caso teléfonos, fueran inteligentes permitiendoles tener configuración propio como planes de discado, a diferencia de la telefonía tradicional donde los teléfonos eran totalmente dependientes de las centrales. Aprovechando esta característica implementaremos un sistema de telefonía IP SIP, sin central, lo cual permitirá disminuir los puntos de fallas del sistema. Esto lo podemos ver en el siguiente diagrama.



 


En el diagrama podemos ver que al utilizar una implementación de telefonos IP autonomos, no registrados a una central, se eliminan los puntos de fallos de los enlaces a la red LAN o WAN y la central IP. La implementacion de telefonos IP puede ser muy util en sistema de comunicaciones de emergencia









Pasos para configurar teléfono remoto.

Nos vamos al explorador para hacer las configuración vía web. Introducimos la IP 10.42.0.101 que es la de un teléfono.



En esta parte nos vamos a admin login que es donde vamos a trabajar.

Una vez en admin nos dirigimos a advanced que es donde esta la configuración más importante.
Aquí nos vamos a la opción EXT 1 que nos da este teléfono por que solo tiene una.

 
Proxy and registration: Aquí en la parte proxy no debe haber nada ya que no tenemos central y no nos tenemos que registrar y en make call without Reg: tiene que ser yes, en ans call without Reg: lo dejamos yes.

Subscriber infornation: Display name (EJ: 101) que es de la extensión del teléfono al igual que el User ID.

Dial plan : Aquí nos vamos a dial plan dial plan(plan de marcado) e introducimos el siguiente conjunto de números que son al cual nuestro llamado se dirigirá como es hotline al levantar el teléfono automáticamente llamara a la extensión 100 dial plan:    (<:100>S0  y al final aplicamos submit para que los cambios se guarden.



Pasos para configurar teléfono principal.

Todos los demás pasos son lo mismo pero como este es el teléfono principal el Dial plan cambia ya que como va a estar en speed dial al marcar un solo botón marca a un anexo en específico. El dial plan es:    (<101:101>|<102:102>)




Aquí nos vamos a phone y configuramos las líneas en esta imagen se muestran la línea 1 que es la del mismo teléfono por lo tanto queda (extensión 1, prívate, $user por defecto). La línea 2 se la damos a la extensión 101(extensión disable, prívate, short name 101, extended function:  fnc=sd;ext=101@10.0.42.101


Aquí es lo mismo pero en la línea 3( extensión disable, prívate, short name 102, extended function: fnc=sd;ext=102@10.0.42.102

Configuracion de Extensiones en FreeSWTICH


Continuamos con los artículos de FreeSWITCH ya hemos dados los primeros pasos:

Instalación de FreeSWITCH

Archivos de configuracion de FreeSWTICH

Ahora comenzaremos con la configuración de extensiones de FreeSWITCH. Estas se encuentran en el directorio /usr/local/freeswitch/conf/directory/ en una instalación por defecto. Dentro de este directorio encontramos lo siguiente:

default.xml : Archivo que contiene informacion general de la extensiones como el dominio, variables generales y grupos de llamados.

default/  : Directorio donde se guardan los archivos de las extensiones configuradas en nuestro freeswitch, por defecto trae extensiones creadas del 1000.xml en adelante y la estructura es la siguiente:


















En FreeSWITCH cada archivo xml incluido dentro de esta carpeta corresponde a una extension o  numero telefonico, los parametros mas importantes son:

user id:  Este corresponde al usuario y el numero telefonico del telefono.

password: es la clave del teléfono, la variable $${default_password} corresponde a la clave definida en el archivo vars.xml que por defecto es 1234, por seguridad este campo en producción debe ser una clave fuerte.

vm-password: clave del buzón de voz.

toll_allow: esta variable se utiliza para permitir acceso a rutas telefónicas.

user_context: Aqui se define el contexto en el cual las llamadas seran procesadas, por defecto FreeSWITCH  solo tiene el contexto default.


Con esto ya podemos configurar un telefono, en este caso utilizaremos el linphone (compatible con Linux, Windows, Mac y Android entre otros)

 debemos ingresar a Opciones→Manage SIP Accounts

Y seleccionamos añadir


 Al aceptar nos pedirá la clave de la extensión.

Para probar puedes llamar a la extensión 9198 y debería sonar la música de tetris con tonos. Ademas puedes configurar otra extensión y llamar entre ellas y ademas enviar mensajes!

sábado, mayo 31, 2014

Nueva version estable de FreeSWITCH, la version 1.4.5




El equipo de desarrollo de FreeSWITCH, anuncio el cambio de estado de la rama 1.4 de beta a estable, lo cual lo habilita a utilizar en ambientes de produccion(en general en FreeSWITCH estable es estable). Esta nueva version incluye las siguientes mejoras:

Soporte estable para WebRTC incluyendo Opus, DTLS y mas.
Desacoplamiento del RTP de la  Pila de SIP.
La eliminación de varias dependencias de librerías de terceros. actualizaciones relacionadas con este cambio de las librerías que dependen SQLite, OpenSSL, entre otras.
Un gran número de mejoras de seguridad y estabilidad.


Anuncio en la lista:
 http://lists.freeswitch.org/pipermail/freeswitch-users/2014-May/105420.html

Todavia no esta completa la documentación de instalacion para la nueva version, existen algunas dependencias nuevas, pero eso no impide instalar la nueva version.

Guia de instalacion
https://confluence.freeswitch.org/display/FREESWITCH/Linux+Quick+Install+Guide

Otro punto importante  es que ahora recomiendan Debian para las implementaciones de FreeSWITCH, no significa que las otras distribuciones no se pueda, debido a que los desarrolladores la utilizan.

Para descargar la ultima version estable de la rama 1.4 via git el comando es el siguiente: