EOL (End Of Life) FreeSWITCH 1.2.X

La línea de desarrollo de FreeSWITCH 1.2.X ha terminado su vida útil pasando a ser la 1.4.X la recomendable para sistemas en producción. Por ello recomendamos usar versiones iguales o superiores a la 1.4.7 para nuevas instalaciones.

En la parte derecha del blog podéis encontrar el enlace a la descarga de la última versión disponible.

Etiquetado con:
Publicado en: Freeswitch

La configuración de FreeSWITCH

FreeSWITCH utiliza el formato XML en sus archivos de configuración. Consta de múltiples archivos XML, que juntos conforman un gran archivo de configuración. La ruta por defecto de los archivos de configuración es /urs/local/freeswitch/conf y en ella podemos encontrar diferentes secciones:

  • autoload_configs: Archivos cargados automáticamente y que contiene la configuración de la mayoría de los diferentes módulos del sistema.
  • chatplan: Parámetros del módulo de chat de FreeSWITCH
  • dilplan: Alberga lo referente al dialplan del sistema.
  • directory: Lugar donde damos de alta las cuentas de usuario.
  • ivr_menus: Gestión de los menús IVR del sistema.
  • jingle_profiles: Configuración del módulo XMPP de FreeSwitch.
  • lang: Gestión de los diferentes idiomas.
  • mrcp_profiles: Configuraciones realacionadas con reconocimiento del habla y TTS (Text To Speech)
  • sip_profiles: Todo lo relacionado con perfiles SIP como creación de nuevos perfiles y definición de gateways.
  • skinny_profiles: Configuraciones del módulo Mod_skinny (SCCP de Cisco)

FreeSWITCH dispone de un preprocesador que se encarga de unir todos los archivos de configuración en uno único denominado ‘configuración de ejecución’. Este archivo se denomina freeswitch.xml.fsxml y se encuentra en la carpeta de log (/usr/local/freeswitch/log por defecto). Si cometemos algún error en la configuración, FreeSWITCH nos notificará del mismo haciendo referencia a un número de línea que deberemos buscar en ese fichero.

Un ejemplo de configuración es el siguiente:

<extension name="echo">
  <condition field="destination_number" expression="^9196$">
    <action application="answer"/>
    <action application="echo"/>
  </condition>
</extension>

Representa un fragmento del dialplan y define una extensión (9196) a la que podremos llamar y hacer un test de eco. Todo lo que hablemos lo volveremos a escuchar retornado del sistema.

El preprocesador XML dispone de otras directivas de utilidad:

Definición de un comentario:

<X-PRE-PROCESS cmd="comment" data="Esto es un comentario"/>

Ejecución de un comando en la línea de comandos y obtención de su resultado:

<X-PRE-PROCESS cmd="exec" data="echo Configuracion XML cargada el `date` >> /var/log/fs_config.log"/>

Inclusión de otro archivo de configuración XML en el actual:

<X-PRE-PROCESS cmd="include" data="vars.xml"/>

VARIABLES

El sistema de configuración dispone de dos tipos de variables: variables globales o del preprocesador y variables de canal.

A las primeras se les asigna valor en tiempo de preprocesamiento mientras que las segundas obtienen su valor en tiempo de ejecución. En el archivo vars.xml de la configuración tenemos definidas muchas de las variables globales como por ejemplo:

<X-PRE-PROCESS cmd="set" data="console_loglevel=info"/>

En ella se configura el nivel de logging de la consula a info.

Las variables de canal se establecen, por ejemplo, en el dialplan:

<extension name="ClueCon">
  <condition field="destination_number" expression="^9191$">
    <action application="set" data="effective_caller_id_name=ClueCon IVR"/>
    <action application="bridge" data="sofia/$${domain}/2000@bkw.org"/>
  </condition>
</extension>

Definimos la extensión ClueCon con número de marcado 9191 y antes de lanzar la llamada se configura el caller id name a ClueCon IVR (estableciendo el valor de la variable de canal effective_caller_id_name).

Para hacer uso del valor de las variables utilizamos $${variable_global} para obtener el valor de la variable global y ${variable_canal} para obtener el valor de la variable de canal.

En la definición de la extensión ClueCon podemos ver el uso de la variable global $${domain} declarada en el archivo vars.xml.

Publicado en: Configuración, Freeswitch

Nuevo apartado de descargas

Añadimos un nuevo apartado de descargas en la parte derecha de nuestro blog en la que iremos colgando archivos de utilidad para todos vosotros

Publicado en: Freeswitch

Iniciando FreeSWITCH

Una vez tenemos nuestro FreeSWITCH compilado e instalado (ver anterior post), el siguiente paso será iniciarlo. Para ello nos basta ejecutar el siguiente comando:

/usr/local/freeswitch/bin/freeswitch

El ejecutable permite diferentes parámetros y algunos de ellos nos pueden ser de utilidad. Por ejemplo, cuando estamos en entorno local, ejecutando:

/usr/local/freeswitch/bin/freeswitch -nonat -nocal

conseguiremos un arranqué más rápido ya que evitamos las comprobaciones de si se ecuentra tras un NAT, así como algunas calibraciones relacionadas con el reloj interno

Para iniciarlo en background:

/usr/local/freeswitch/bin/freeswitch -nc

En esta página de la Wiki de FreeSWITCH tenemos todos los parámetros aceptados

Publicado en: Freeswitch, Sin categoría

Instalación de FreeSWITCH

En este artículo vamos a ver el proceso de descarga e instalación de FreeSWITCH en Linux a partir de los fuentes. Concretamente vamos a trabajar con una distribución Centos 6.5. Usaremos la versión de FreeSWITCH 1.2.23, última disponible a día de voy y descargable desde aquí

Antes de nada es recomendable actualizar nuestro sistema mediante el comando

yum update

Instalamos los prerrequisitos necesarios para la compilación

yum install git gcc-c++ autoconf automake libtool ncurses-devel libjpeg-devel sqlite-devel libcurl-devel pcre-devel speex-devel libedit-devel curl-devel zlib-devel openssl-devel

Nos vamos a la carpeta src

cd /usr/src

Descargamos los fuentes

wget http://files.freeswitch.org/freeswitch-1.2.23.tar.bz2

Los descomprimimos

tar xjf freeswitch-1.2.23.tar.bz2
cd freeswitch-1.2.23

Compilamos

./configure
make

Y finalmente instalamos los binarios

make all install cd-sounds-install cd-moh-install

Si nos queremos evitar tener que descargar todos los paquetes de audios podemos hacerlo así:

make all install

Ya tenemos listo nuestro Freswitch que podemos ejecutar mediante el comando:

/usr/local/freeswitch/bin/freeswitch

Para aquellos más perezosos, o con problemas durante la compilación, os dejo una imagen de una máquina virtual VMWare con FreeSWITCH ya instalado aquí

Espero que os haya sido de utilidad

Publicado en: Freeswitch, Técnico

De nuevo online!

Después de algunos problemas técnicos volvemos a estar online!

Pronto tendremos algunos tutoriales interesantes

Publicado en: Otros

FreeSWITCH como gateway Skype para Asterisk

En la web VozToVoice podéis encontrar una actualización de un artículo para configurar FreeSWITCH como gateway intermedio entre Skype y Asterisk. Espero que os guste

Etiquetado con: , ,
Publicado en: Técnico

Arquitectura de FreeSWITCH

FreeSWITCH es un software altamente modular con una gran cantidad de módulos entorno a su core principal. Los módulos se agrupan en los siguientes tipos:

  • Endpoints: Relacionados con los protocolos de telefonía (SIP, H323, telefonía convencional)
  • Aplicaciones: Grupo genérico que agrupa a módulos que pueden realizar las mas diversas funcionalidades tales como comunicación con BD, reproducción de sonidos…
  • API: Interfaces de comunicación con el sistema
  • ASR: Relacionados con el reconocimiento del habla
  • Chat: Engloba diferentes protocolos de comunicaciones vía chat
  • Codec: Todos los encargados de conversiones entre diferentes formatos de audio (G711, G729, GSM…)
  • Dialplan: Toman las decisiones durante el enrutamiento de la llamada
  • Manejadores de eventos: Permiten a programa externos el control de FreeSWITCH
  • File: Interfaz para el manejo de audio desde diferentes fuentes
  • Formatos: Reproducción de audio de diferentes formatos
  • Lenguajes: Módulos para programar el comportamiento de FreeSWITCH en diferentes lenguajes (LUA, Javascript, Python…)
  • Loggers: Controlan el logging del sistema
  • Say: Ayuda a la reproducción de frases a partir de trozos de audio para conseguir cosas como cifras, palabras, horas…
  • TTS: Traducción de texto a voz
  • Timers: Fuentes de tiempo para FreeSWITCH
  • Interfaces XML: Diferentes interfaces para tareas como CDR, CURL…

 

Etiquetado con: ,
Publicado en: Freeswitch

Introducción a FreeSWITCH

Freeswitch es un softswitch de telefonía open source escalable que puede funcionar como una PBX convencional además de soportar muchas otras funcionalidades. Se trata de un proyecto estable y muy activo, que tiene como sponsor principal a Sangoma. Para aquellos que conozcan el mundo de la telefonía open source, se podría asimilar a proyectos como Asterisk o Yate.

Dispone de una gran cantidad de módulos que amplían el abanico de posibilidades además de soporte de una gran cantidad de codecs de audio. Con el paso de los posts os iremos presentando los más importantes.

Dentro del proyecto podemos destacar a personas como Anthony Minessale, autor principal de FreeSWITCH, Michael S. Collins, gran conocedor del mundo de las PBX y Brian West.

Publicado en: Otros

Bienvenida

Desde Freeswith-es os queremos dar la bienvenida. Iniciamos este blog con toda la ilusión de ofrecer información y artículos técnicos sobre Freeswitch. Queremos hacerlo en español ya que no es fácil encontrar referencias en este idioma.

Estamos abiertos a cualquier tipo de sugerencia como puedan ser mejoras o temas a tratar.

Etiquetado con: ,
Publicado en: Otros