Configuración FusionPBX - Tercera Parte - Configuración de FreeSWITCH

Después de la segunda parte, donde hemos aumentado la seguridad de nuestro servidor con la instalación y configuración de Fail2Ban, revisaremos la configuración de FreeSWITCH para corregir la mayoría de los errores presentes. La versión de FreeSWITCH es la 1.6.5. Lo primero que hacemos es parar FreeSWITCH para luego iniciarlo en primer plano:

service freeswitch stop

/usr/bin/freeswitch -nonat

Los primeros errores:

[ERR] switch_xml.c:1385 Couldn't open /etc/freeswitch/autoload_configs/../ivr_menus/*.xml (No such file or directory)
[ERR] switch_xml.c:1385 Couldn't open /etc/freeswitch/autoload_configs/../sip_profiles/*.xml (No such file or directory)
[ERR] switch_xml.c:1385 Couldn't open /etc/freeswitch/dialplan/*.xml (No such file or directory)
[ERR] switch_xml.c:1385 Couldn't open /etc/freeswitch/directory/*.xml (No such file or directory

En realidad no son errores ya que esas carpetas están escondidas deliberadamente ya que la configuración se guarda en una base de datos y no en los archivos XML (lenguaje en que están escritos los archivos de configuración de FreeSWITCH. El primer error importante que encontraremos será:

2015-12-30 16:49:26.599532 [CRIT] mod_cidlookup.c:125 Cannot Open Database!

Ese modulo en FusionPBX se utiliza en el menú Apps –> Contacts par asociar un nombre a un numero de teléfono para luego utilizarlo como identificador en las llamadas salientes.

Abrimos una segunda conexión SSH al servidor remoto y creamos una carpeta para guardar una copia de los archivo de configuración de FreeSWITCH antes de modificarlos:

mkdir /etc/freeswitch/old

Copiamos el archivo que vamos a modificar:

cp /etc/freeswitch/autoload_configs/cidlookup.conf.xml /etc/freeswitch/old/

Lo abrimos:

nano /etc/freeswitch/autoload_configs/cidlookup.conf.xml

Primero modificamos la conexión ODBC a la base de datos MySQL fusionpbx:

<param name="odbc-dsn" value="phone:phone:phone"/>

cuya sintaxis es nombrebasededatos,nombreusuario,contraseña. En nuestro caso la contraseña asociada al usuario fusionbx, que tiene los privilegios para realizar todas las modificaciones en la base de datos fusionpbx, se encuentra en el archivo /tmp/db.txt en el parámetro database_password=. Esa contraseña cambia en cada instalación. En esta instalación la línea quedará de la siguiente forma:

<param name="odbc-dsn" value="fusionpbx:fusionpbx:c4rl0s3l4rt1111"/>

Luego modificamos este bloque:

SELECT name||' ('||type||')' AS name
      FROM phonebook p JOIN numbers n ON p.id = n.phonebook_id
      WHERE n.number='${caller_id_number}'
      LIMIT 1

Para que quede:

        SELECT CONCAT(v_contacts.contact_name_given, ' ', v_contacts.contact_name_family) AS name, v_contact_phones.phone_number AS number
        FROM v_contacts, v_contact_phones
        WHERE v_contact_phones.contact_uuid = v_contacts.contact_uuid AND v_contact_phones.phone_number = '${caller_id_number}'

Que es la consulta que se realizará en la base de datos FusionPBX para asociar el numero de teléfono al nombre y apellido del usuario dueño del numero.

Seguimos mirando el LOG de FreeSwitch. Encontraremos:

[CRIT] switch_loadable_module.c:1520 Error Loading module /usr/lib64/freeswitch/mod/mod_lcr.so

Este modulo se utiliza para implementar el Least Cost Routing (LCR) es decir la posibilidad de escoger la ruta más económica para las llamadas salientes. Como recuerdan este es el modulo de pago desarrollado para la empresa Mexicana de que se ha hablado en otro articulo. Para solucionar el error tenemos dos opciones:

  1. Configurar correctamente el modulo
  2. desactivarlo para que no se cargue al iniciar FreeSWITCH

Como, por ahora, no lo necesitamos, lo desactivaremos. Primero creamos una copia del archivo que vamos a modificar

cp /etc/freeswitch/autoload_configs/modules.conf.xml /etc/freeswitch/old

Luego:

nano /etc/freeswitch/autoload_configs/modules.conf.xml

Modificamos esta línea:

<load module="mod_lcr"/>

para que quede comentada:

<!-- <load module="mod_lcr"/> -->

Guardamos los cambios y seguimos revisando los LOG de FreeSWITCH. Encontraremos:

[ERR] mod_memcache.c:413 Error while running command get: SYSTEM ERROR

Parece que el memcache no esta corriendo. Lo iniciamos y lo configuramos para que arranque con el sistema:

/etc/init.d/memcached start
Iniciando memcached:                                       [  OK  ]

chkconfig memcached on

Siguiendo encontraremos distintos errores relacionados con los algunos codec audio/video:

[CRIT] switch_loadable_module.c:1520 Error Loading module /usr/lib64/freeswitch/mod/mod_vp8.so
[CRIT] switch_loadable_module.c:1520 Error Loading module /usr/lib64/freeswitch/mod/mod_ilbc.so
[CRIT] switch_loadable_module.c:1520 Error Loading module /usr/lib64/freeswitch/mod/mod_com_g729.so

Los primeros dos no son indispensables y lo vamos a deshabilitar. El tercero lo vamos a reconfigurar. Abrimos nuevamente:

nano /etc/freeswitch/autoload_configs/modules.conf.xml

modificamos estas líneas:

<load module="mod_vp8"/>
<load module="mod_ilbc"/>
<load module="mod_com_g729"/>

para que queden:

<!-- <load module="mod_vp8"/> -->
<!-- <load module="mod_ilbc"/> -->
<load module="mod_g729"/>

Otro error presente en LOG:

[CRIT] switch_loadable_module.c:1520 Error Loading module /usr/lib64/freeswitch/mod/mod_flite.so

Parece que este modulo que se basa en FLite (Festival Lite) no funciona bajo CentOS 6.7. He intentado compilarlo desde la fuentes sin éxito. En versiones anteriores si no recuerdo mal, funcionaba sin problemas. Se desactiva también:

nano /etc/freeswitch/autoload_configs/modules.conf.xml

cambiando esta línea:

<load module="mod_flite"/>

para que quede comentada:

<!-- <load module="mod_flite"/> -->

Guardamos los cambios. Con eso terminamos las correcciones. Salimos de la consola de FreeSWITCH:

freeswitch@localhost> ...

Reiniciamos nuevamente FreeSWITCH y revisamos que no haya errores:

/usr/bin/freeswitch -nonat

Si así es hemos terminado nuestro trabajo. Salimos de la consola y iniciamos FreeSWITCH como servicio:

freeswitch@localhost> ...

service freeswitch start

Podemos pasar a la configuración de nuestra dos primeras extensiones. Cosa que veremos en la próxima parte.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Configuración FusionPBX - Tercera Parte - Configuración de FreeSWITCH" Suscribirse a VozToVoice - Todos los comentarios