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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*


uno + 6 =