July 03, 2018

Freeswitch 1.9 (continuación): mod fs_curl, usuarios almacenados en BBDD

Pues ya volvemos a estar aquí un mes después… hehe, si, tuve freeswitch aparcado unos días, pero han sido días muy provechosos! ya iré contando :)

Pues éste post sería la continuación de éste otro que publiqué hace un mes.

En el anterior manual instalábamos freeswitch con soporte de postgresql y veíamos como con la base de datos creada pero vacía, al arrancar creaba las tablas necesarias para trabajar. Pero las tablas que estaban no te permitían gestionar los usuarios de la centralita directamente desde la base de datos y estabas obligado a usar los ficheros de configuración y recargar la configuración. Pues en éste manual llegaremos a éste objetivo, para poder atacar desde otro programa a la base de datos y realizar cambios en caliente!

Vamos a ello pues… lo primero será parar freeswitch y borrar la base de datos y volver a crearla para que quede vacía.

root@freeswitch-capa8:~# /etc/init.d/freeswitch.sh stop
root@freeswitch-capa8:~# su - postgres
postgres@freeswitch-capa8:~$ dropdb freeswitch_db
postgres@freeswitch-capa8:~$ createdb -O freeswitch_user freeswitch_db
postgres@freeswitch-capa8:~$ psql 
psql (9.6.7)
Type "help" for help.

postgres=# \dt
No relations found.

Ahora partimos de un entorno limpio. Seguimos pues con fs_curl.

fs_curl es un módulo desarrollado por un usuario externo a freeswitch, es de los módulos llamados contrib, pero éste está en el repositorio de git de donde clonamos la rama que estamos usando.

Crearemos pues en el directorio donde nos descargaremos todos los proyectos contrib que es interesante mantener por si de cara al futuro necesitamos algún proyecto mas (que ya he visto que si, uno mismo de fs_cli que el modo batch parece funcionar). Iremos pues al directorio de sources.

root@freeswitch-capa8:/usr/src/freeswitch# mkdir contrib
root@freeswitch-capa8:/usr/src/freeswitch# cd contrib
root@freeswitch-capa8:/usr/src/freeswitch# git clone https://freeswitch.org/stash/scm/fs/freeswitch-contrib.git
root@freeswitch-capa8:/usr/src/freeswitch/contrib# cd freeswitch-contrib/intralanman/PHP/

Ahora compiamos el directorio fs_curl a /var/www/html/

# cp -R fs_curl /var/www/html/

Ahora instalamos algunas dependencias que vamos a necesitar

root@freeswitch-capa8:~# apt-get install curl php-xml libapache2-mod-php php-pear php7.0-pgsql

Y a configurar freeswitch para habilitar el modulo xml_curl que necesitamos para haya comunicación con el módulo y freeswitch por HTTP. Descomentamos la línea y la definimos así:

root@freeswitch-capa8:/usr/local/freeswitch/conf# vi autoload_configs/xml_curl.conf.xml

Y ahora empezamos con las montañas rusas, para resumir tendremos que hacer varias cosas ahora:
– generar el fichero mod_xml_curl.so
– descargar la librería libssl.so.1.0.0 (no sirven otras)
– arreglar la base de datos
– arreglar 3 líneas del programa php del módulo fs_curl

# Generar el fichero mod_xml_curl.so

Moveremos/Copiaremos el directorio freeswitch-contrib en el directorio que nos ha creado la instalación de freeswitch y generaremos la librería mod_xml_curl.so

root@freeswitch-capa8:/usr/src/freeswitch# cd ../freeswitch.git/
root@freeswitch-capa8:/usr/src/freeswitch.git# cp -R ../freeswitch/contrib/freeswitch-contrib .
root@freeswitch-capa8:/usr/src/freeswitch.git# make mod_xml_curl-install

Ahora la copiamos en el directorio de módulos de nuestra instalación de freeswitch.

root@freeswitch-capa8:/usr/src/freeswitch.git# cp rc/mod/xml_int/mod_xml_curl/.libs/mod_xml_curl.so /usr/local/freeswitch/mod/

Si no se crea el fichero mod_xml_curl.so, podemos usar el del paquete de freeswitch, que aunque no podamos usar los paquetes por incompatibilidad con las signaturas, si podemos abrir los .deb en local con el gestor de archivos, extraer el fichero que nos interesa y subirlo al servidor.

root@freeswitch-capa8:~# wget -c http://files.freeswitch.org/repo/deb/debian-unstable/pool/main/f/freeswitch/freeswitch-mod-xml-curl_1.9.0~1832~25e9376-1~jessie+1_amd64.deb

Ahora descargaremos la librería libssl.so.1.0.0 de los paquetes de debian, extraemos el fichero libssl.so.1.0.0 y lo guardamos en /usr/lib/x86_64-linux-gnu/

Ésto daba el siguiente error

2018-07-02 21:35:09.064446 [CRIT] switch_loadable_module.c:1522 Error Loading module /usr/local/freeswitch/mod/mod_xml_curl.so
**libcrypto.so.1.0.0: cannot open shared object file: No such file or directory**

Para solucionarlo:

root@freeswitch-capa8:~# wget -c https://packages.debian.org/wheezy/amd64/libssl1.0.0/download
[...]
root@freeswitch-capa8:~# mv libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu

Ahora modificamos los dos ficheros de PHP

root@freeswitch-capa8:~# cd /var/www/html/fs_curl/
root@freeswitch-capa8:/var/www/html/fs_curl# vi index.php +13
//define('START_TIME', preg_replace('^0\.([0-9]+) ([0-9]+)$', '\2.\1', microtime()));
define('START_TIME', preg_replace('/^0\.(\d+) (\d+)$/', '\2.\1', microtime()));

root@freeswitch-capa8:/var/www/html/fs_curl# vi index.php +225
$this->comment( sprintf( "Estimated Execution Time Is: %s"
                                , ( preg_replace(
                                            '/^0\.(\d+) (\d+)$/', '\2.\1', microtime() ) - START_TIME )
                                        ) );

En éste último fichero tenemos que cambiar el ereg_replace por preg_replace, ya que en PHP7 ereg_replace está deprecated. También tendremos que dejar la línea siguiente tal cual aparece aquí

Ahora lo siguiente será cargar los esquemas de la base de datos y para ello, en el módulo fs_curl viene un esquema que nos va de perlas para crear las tablas, vistas y todo. Recuerdo y recomiendo que éste paso es bueno hacerlo con la base de datos vacía!

root@freeswitch-capa8:~# su - postgres
postgres@freeswitch-capa8:~$ psql freeswitch_db  /var/www/html/fs_curl/sql/postgres.sql 

Ahora veremos que nos ha creado 73 tablas, pero los permisos con incorrectos, los ha asignado al usuario postgres. Esto tenemos que arreglarlo, ya que puede causar el error de no poder escribir en la base de datos y no nos sacará ningún error.

Os lo dejo fácil... copia-pega.

freeswitch_db=# \dt
ALTER TABLE accounts                     OWNER TO freeswitch_user;
ALTER TABLE acl_lists                    OWNER TO freeswitch_user;
ALTER TABLE acl_nodes                    OWNER TO freeswitch_user;
ALTER TABLE carrier_gateway              OWNER TO freeswitch_user;
ALTER TABLE carriers                     OWNER TO freeswitch_user;
ALTER TABLE cdr                          OWNER TO freeswitch_user;
ALTER TABLE conference_advertise         OWNER TO freeswitch_user;
ALTER TABLE conference_controls          OWNER TO freeswitch_user;
ALTER TABLE conference_profiles          OWNER TO freeswitch_user;
ALTER TABLE dialplan                     OWNER TO freeswitch_user;
ALTER TABLE dialplan_actions             OWNER TO freeswitch_user;
ALTER TABLE dialplan_condition           OWNER TO freeswitch_user;
ALTER TABLE dialplan_context             OWNER TO freeswitch_user;
ALTER TABLE dialplan_extension           OWNER TO freeswitch_user;
ALTER TABLE dialplan_special             OWNER TO freeswitch_user;
ALTER TABLE dingaling_profile_params     OWNER TO freeswitch_user;
ALTER TABLE dingaling_profiles           OWNER TO freeswitch_user;
ALTER TABLE dingaling_settings           OWNER TO freeswitch_user;
ALTER TABLE directory                    OWNER TO freeswitch_user;
ALTER TABLE directory_domains            OWNER TO freeswitch_user;
ALTER TABLE directory_gateway_params     OWNER TO freeswitch_user;
ALTER TABLE directory_gateways           OWNER TO freeswitch_user;
ALTER TABLE directory_global_params      OWNER TO freeswitch_user;
ALTER TABLE directory_global_vars        OWNER TO freeswitch_user;
ALTER TABLE directory_group_user_map     OWNER TO freeswitch_user;
ALTER TABLE directory_groups             OWNER TO freeswitch_user;
ALTER TABLE directory_params             OWNER TO freeswitch_user;
ALTER TABLE directory_vars               OWNER TO freeswitch_user;
ALTER TABLE easyroute_conf               OWNER TO freeswitch_user;
ALTER TABLE easyroute_data               OWNER TO freeswitch_user;
ALTER TABLE iax_conf                     OWNER TO freeswitch_user;
ALTER TABLE iax_settings                 OWNER TO freeswitch_user;
ALTER TABLE ivr_conf                     OWNER TO freeswitch_user;
ALTER TABLE ivr_entries                  OWNER TO freeswitch_user;
ALTER TABLE lcr                          OWNER TO freeswitch_user;
ALTER TABLE lcr_conf                     OWNER TO freeswitch_user;
ALTER TABLE lcr_profiles                 OWNER TO freeswitch_user;
ALTER TABLE lcr_settings                 OWNER TO freeswitch_user;
ALTER TABLE limit_conf                   OWNER TO freeswitch_user;
ALTER TABLE limit_data                   OWNER TO freeswitch_user;
ALTER TABLE local_stream_conf            OWNER TO freeswitch_user;
ALTER TABLE modless_conf                 OWNER TO freeswitch_user;
ALTER TABLE npa_nxx_company_ocn          OWNER TO freeswitch_user;
ALTER TABLE post_load_modules_conf       OWNER TO freeswitch_user;
ALTER TABLE rss_conf                     OWNER TO freeswitch_user;
ALTER TABLE sip_authentication           OWNER TO freeswitch_user;
ALTER TABLE sip_dialogs                  OWNER TO freeswitch_user;
ALTER TABLE sip_presence                 OWNER TO freeswitch_user;
ALTER TABLE sip_registrations            OWNER TO freeswitch_user;
ALTER TABLE sip_shared_appearance_dialogs   OWNER TO freeswitch_user;
ALTER TABLE sip_shared_appearance_subscriptions OWNER TO freeswitch_user;
ALTER TABLE sip_subscriptions            OWNER TO freeswitch_user;
ALTER TABLE sofia_aliases                OWNER TO freeswitch_user;
ALTER TABLE sofia_conf                   OWNER TO freeswitch_user;
ALTER TABLE sofia_domains                OWNER TO freeswitch_user;
ALTER TABLE sofia_gateways               OWNER TO freeswitch_user;
ALTER TABLE sofia_settings               OWNER TO freeswitch_user;
ALTER TABLE voicemail_conf               OWNER TO freeswitch_user;
ALTER TABLE voicemail_email              OWNER TO freeswitch_user;
ALTER TABLE voicemail_msgs               OWNER TO freeswitch_user;
ALTER TABLE voicemail_prefs              OWNER TO freeswitch_user;
ALTER TABLE voicemail_settings           OWNER TO freeswitch_user;

Ahora actualizamos algunos campos de la base de datos de ejemplo que nos ha cargado. Muestro las tablas que tenemos que tener en cuenta para hacer funcionar el registro de usuarios:

freeswitch_db=# select * from lcr_conf;
 id | param_name |                                          param_value                                           
----+------------+------------------------------------------------------------------------------------------------
  1 | odbc-dsn   | pgsql://hostaddr=127.0.0.1 dbname=freeswitch_db user=freeswitch_user password=XXX
(1 row)


freeswitch_db=# select * from directory;
 id | username | domain_id | cache  
----+----------+-----------+--------
  1 | 1010     |         1 | 300000
  2 | 1011     |         1 | 300000
  3 | 20000    |         4 |      0
  4 | 20001    |         4 |      0
(4 rows)

freeswitch_db=# select * from directory_domains;
 id |    domain_name     
----+--------------------
  4 | 10.XXX
  1 | crustaci.capa8.cat
(2 rows)

freeswitch_db=# select * from directory_params;
 id | directory_id | param_name | param_value 
----+--------------+------------+-------------
  1 |            3 | password   | XXX
  2 |            4 | password   | XXX
(2 rows)

Y ahora ya estamos listos para arrancar freeswitch con soporte de base de datos!

root@freeswitch-capa8:/usr/local/freeswitch/bin# ./fs_cli
freeswitch@freeswitch-capa8> list_users 
userid|context|domain|group|contact|callgroup|effective_caller_id_name|effective_caller_id_number
20000||10.XXX|default|error/user_not_registered|||
20001||10.XXX|default|error/user_not_registered|||
1010||crustaci.capa8.cat|default|error/user_not_registered|||
1011||crustaci.capa8.cat|default|error/user_not_registered|||

+OK

Para llegar aquí he usado éste manual que cuenta como hacerlo sobre mysql.

Probé ésta mañana de configurar el freeswitch sobre odbc, pude llegar a hacer funcionar el conector odbc sobre mariadb usando la libreria de la versión 2.0.17 y sacarle la línea de setup, poder sólo la de driver en /etc/odbcinst.ini.

July 01, 2018

Freeswitch 1.9 (master) en debian 8 (y debian 9) con soporte postgresql

Venga, éste post espero que si sea el definitivo, voy a probar que tal con debian 9 mas tarde y si conviene hago otro post.

ACTUALIZACIÓN
Éste manual también es válido para debian 9! :) mirad al final del artículo las anotaciones

Empezamos con una debian 8 recién instalada.

Vamos a instalar primero de todo todas las dependencias necesarias

root@freeswitch-capa8:~# apt-get install git libpq-dev postgresql postgresql-client build-essential dialog autoconf libtool-bin yasm
root@freeswitch-capa8:~# apt-get install zlib1g-dev libjpeg-dev pkg-config libsqlite3-dev libcurl4-gnutls-dev libpcre3-dev libogg-dev libspeex-dev libspeexdsp-dev libldns-dev libedit-dev libtiff5-dev libopus-dev libsndfile-dev liblua5.2-dev

Las primeras dependencias son las que necesitamos para preparar la instalación de freeswitch, las segundas las librerías que pide al momento de hacer el “./configure –enable-core-pgsql-support”.

Primero de todo crearemos una base de datos en el postgresql sobre la que queremos que freeswitch trabaje.

root@freeswitch19-capa8:~# su - postgres
postgres@freeswitch19-capa8:~$ createuser freeswitch_user
postgres@freeswitch19-capa8:~$ createdb -O freeswitch_user freeswitch_db
postgres@freeswitch19-capa8:~$ psql freeswitch_db
freeswitch_db=# ALTER USER freeswitch_user WITH PASSWORD 'XXX';
freeswitch_db=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO freeswitch_user;
freeswitch_db=# GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO freeswitch_user;

Ahora descargamos freeswitch del repositorio git en /usr/src/

root@freeswitch19-capa8:/usr/src# git clone https://freeswitch.org/stash/scm/fs/freeswitch.git
Cloning into 'freeswitch'...
remote: Counting objects: 307888, done.
remote: Compressing objects: 100% (67730/67730), done.
remote: Total 307888 (delta 239698), reused 298098 (delta 232095)
Receiving objects: 100% (307888/307888), 148.13 MiB | 9.94 MiB/s, done.
Resolving deltas: 100% (239698/239698), done.
Checking connectivity... done.

Ahora iremos al directorio /usr/src/freeswitch/scripts y ejecutaremos el script FreeSWITCH-debian-raspbian-installer.sh

root@freeswitch19-capa8:/usr/src# cd /usr/src/freeswitch/scripts/
root@freeswitch19-capa8:/usr/src/freeswitch/scripts# ./FreeSWITCH-debian-raspbian-installer.sh

Éste script nos hará algunas preguntas a las que tendremos que responder.

La primera es si queremos instalar freeswitch 1.6 o freeswitch 1.7, que en realidad es freeswitch 1.9 porque se descarga de nuevo el código de la rama master de freeswitch en el directorio /usr/src/freeswitch.git/.

Ahora le indicaremos el FQDN, la IP y el mail del robot que mandará e-mails de notificaciones.

Ahora empezará a trabajar él solo un buen rato.

Al final tiene que salirte algo similar a ésto

Done, without errors.


Execution Time (2018-05-26 01:20:40 UTC+2)
loading tasks     300ms  ▇▇▇ 2%
wiredep:app       174ms  ▇▇ 1%
concurrent:dist    3.4s  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 23%
cssmin:generated  996ms  ▇▇▇▇▇▇▇▇ 7%
ngAnnotate:dist    1.6s  ▇▇▇▇▇▇▇▇▇▇▇▇ 10%
uglify:generated   7.6s  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 51%
Total 15s

Éste script ha instalado todas las dependencias necesarias para hacer funcionar todos los módulos y compilar así freeswitch. El script también instala freeswitch, pero la instalación resultante no tiene el conector con postgresql compilado y tendremos que especificarselo expresamente, luego make y finalmente make install.

root@freeswitch19-capa8:/usr/src/freeswitch/scripts# cd /usr/src/freeswitch.git/
root@freeswitch19-capa8:/usr/src/freeswitch.git# ./configure --enable-core-pgsql-support
root@freeswitch19-capa8:/usr/src/freeswitch.git# make
root@freeswitch19-capa8:/usr/src/freeswitch.git# make install

Si en el proceso dice que le falta alguna dependencia (sobretodo al hacer el make), se resuelve y se vuelve a iniciar todo el proceso desde el “./configure –enable-core-pgsql-support”.

Si todo va bien seguimos! ahora tenemos la última versión de la rama master de freeswitch instalada y con soporte de postgresql.

Copiamos el fichero /freeswitch.sh en /etc/init.d/

root@freeswitch19-capa8:/usr/src/freeswitch.git# cp scripts/freeswitch.sh /etc/init.d/

Una vez instalado, tendremos que indicarle los datos de acceso a la base de datos a freeswitch. Para ello nos posicionaremos en el directorio /usr/local/freeswitch/conf/ y editaremos los siguientes ficheros:

Grupo 1

root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/switch.conf.xml

Grupo 2

root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/directory.conf.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/voicemail.conf.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/cidlookup.conf.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/db.conf.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/lcr.conf.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/callcenter.conf.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/fifo.conf.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi jingle_profiles/server.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi sip_profiles/internal.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi sip_profiles/internal-ipv6.xml
root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi skinny_profiles/internal.xml

Grupo 3

root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi autoload_configs/easyroute.conf.xml

En cada uno de ellos deberemos buscar alguna referencia a la configuración de la db (buscas odbc-dsn y en la línea siguiente pegas el código que ahora mostraré). Cada grupo de los que he indicado arriba, el formato de la línea de configuración cambia un poco, así que por cada grupo de ficheros indicaré la línea que se tiene que añadir. Al grupo 3 se tienen que añadir/modificar varias líneas.
Revisad que no haya dos líneas haciendo referencia a la misma configuración, usad para comentar (mejor que borrar) la línea ante las dudas.

- Grupo 1: 
*param name="core-db-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch_db user=freeswitch_user password='XXX' options='-c client_min_messages=NOTICE'" />

- Grupo 2: 
*param name="odbc-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch_db user=freeswitch_user password='XXX' options='-c client_min_messages=NOTICE' application_name='freeswitch'" />

- Grupo 3:
*param name="db-username" value="freeswitch_user"/>
*param name="db-password" value="XXX"/>
*param name="db-dsn" value="freeswitch"/>
*param name="db-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch_db user=freeswitch_user password='XXX' options='-c client_min_messages=NOTICE' application_name='freeswitch'" />
/!\ borrar el * /!\

Ahora lo siguiente serà comprobar que freeswitch está parado y que no hay tablas en la base de datos que hemos creado de postgresql. Para verificar que el usuario que hemos configurado a freeswitch en lugar del usuario “root” de postgresql, el usuario postgres, vamos a usar el que hemos creado al principio del artículo al crear la base de datos.

root@freeswitch19-capa8:~# ps aux |grep freeswitch
root@freeswitch19-capa8:~# su - postgres
postgres@freeswitch19-capa8:~$ psql -U freeswitch_user -d freeswitch_db --password
Password for user freeswitch_user: 
psql (9.4.15)
Type "help" for help.

freeswitch_db=> \dt
No relations found.

Si no podemos conectar con éste usuario, deberemos revisar la configuración del fichero pg_hba.conf (comentamos las líneas con # y añadimos la última debajo de la primera línia que comento) y reiniciamos postgresql.

root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi /etc/postgresql/9.4/main/pg_hba.conf
#local   all             postgres                                peer
#local   all             all                                     peer
local    all             all                                     trust
root@freeswitch19-capa8:/usr/local/freeswitch/conf# /etc/init.d/postgresql restart
[ ok ] Restarting postgresql (via systemctl): postgresql.service.
root@freeswitch19-capa8:/usr/local/freeswitch/conf# su - postgres
postgres@freeswitch19-capa8:~$ psql -U freeswitch_user -d freeswitch_db --password
Password for user freeswitch_user: 
psql (9.4.15)
Type "help" for help.

freeswitch_db=> \dt
No relations found.

Ahora vamos a arrancar freeswitch y para comprobar que la conexión es correcta, mostraremos de nuevo las tablas de la base de datos y veremos que habrá creado todas las tablas!

root@freeswitch19-capa8:~# /etc/init.d/freeswitch.sh start
22613 Backgrounding.
freeswitch_db=> \dt

                           List of relations
 Schema |                Name                 | Type  |      Owner      
--------+-------------------------------------+-------+-----------------
 public | aliases                             | table | freeswitch_user
 public | calls                               | table | freeswitch_user
 public | channels                            | table | freeswitch_user
 public | complete                            | table | freeswitch_user
 public | db_data                             | table | freeswitch_user
 public | group_data                          | table | freeswitch_user
 public | interfaces                          | table | freeswitch_user
 public | limit_data                          | table | freeswitch_user
 public | nat                                 | table | freeswitch_user
 public | recovery                            | table | freeswitch_user
 public | registrations                       | table | freeswitch_user
 public | sip_authentication                  | table | freeswitch_user
 public | sip_dialogs                         | table | freeswitch_user
 public | sip_presence                        | table | freeswitch_user
 public | sip_registrations                   | table | freeswitch_user
 public | sip_shared_appearance_dialogs       | table | freeswitch_user
 public | sip_shared_appearance_subscriptions | table | freeswitch_user
 public | sip_subscriptions                   | table | freeswitch_user
 public | tasks                               | table | freeswitch_user
 public | voicemail_msgs                      | table | freeswitch_user
 public | voicemail_prefs                     | table | freeswitch_user
(21 rows)

(END)

Y si queremos ver los logs vamos a /usr/local/freeswitch/log/freeswitch.log

root@freeswitch19-capa8:~# less /usr/local/freeswitch/log/freeswitch.log 

Si en cualquier momento tenemos algun problema, podemos subir el nivel de debug del fichero de log en el fichero vars.xml del directorio de configuración de freeswitch.

root@freeswitch19-capa8:/usr/local/freeswitch/conf# vi vars.xml
*X-PRE-PROCESS cmd="set" data="console_loglevel=debug"/>
/!\ borrar el * /!\

cambiamos el info por debug. Paramos freeswitch y lo volvemos a arrancar

root@freeswitch19-capa8:/usr/local/freeswitch/conf# /etc/init.d/freeswitch.sh stop
Killing: 22613
root@freeswitch19-capa8:/usr/local/freeswitch/conf# /etc/init.d/freeswitch.sh start
22719 Backgrounding.

Finalmente nos tendrá que haber creado las siguientes tablas

freeswitch_db=# \dt

                           List of relations
 Schema |                Name                 | Type  |      Owner      
--------+-------------------------------------+-------+-----------------
 public | aliases                             | table | freeswitch_user
 public | calls                               | table | freeswitch_user
 public | channels                            | table | freeswitch_user
 public | complete                            | table | freeswitch_user
 public | db_data                             | table | freeswitch_user
 public | group_data                          | table | freeswitch_user
 public | interfaces                          | table | freeswitch_user
 public | limit_data                          | table | freeswitch_user
 public | nat                                 | table | freeswitch_user
 public | recovery                            | table | freeswitch_user
 public | registrations                       | table | freeswitch_user
 public | sip_authentication                  | table | freeswitch_user
 public | sip_dialogs                         | table | freeswitch_user
 public | sip_presence                        | table | freeswitch_user
 public | sip_registrations                   | table | freeswitch_user
 public | sip_shared_appearance_dialogs       | table | freeswitch_user
 public | sip_shared_appearance_subscriptions | table | freeswitch_user
 public | sip_subscriptions                   | table | freeswitch_user
 public | tasks                               | table | freeswitch_user
 public | voicemail_msgs                      | table | freeswitch_user
 public | voicemail_prefs                     | table | freeswitch_user
(21 rows)

(END)

Recomiendo realizar éste proceso de arrancar y parar el freeswitch 2 veces.

Ahora podremos entrar ya a la consola fs_cli

root@freeswitch19-capa8:/usr/local/freeswitch/log# cd /usr/local/freeswitch/bin/
root@freeswitch19-capa8:/usr/local/freeswitch/bin# ./fs_cli

Podemos añadir /usr/local/freeswitch/bin/ a las variables de entorno y no tendremos que ir cada vez al directorio para ejecutar el cli

root@freeswitch19-capa8:/usr/local/freeswitch/bin# export PATH=$PATH:/usr/local/freeswitch/bin
root@freeswitch19-capa8:/usr/local/freeswitch/bin# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/freeswitch/bin
root@freeswitch19-capa8:~# fs_cli 
.=======================================================.
|            _____ ____     ____ _     ___              |
|           |  ___/ ___|   / ___| |   |_ _|             |
|           | |_  \___ \  | |   | |    | |              |
|           |  _|  ___) | | |___| |___ | |              |
|           |_|   |____/   \____|_____|___|             |
|                                                       |
.=======================================================.
| Anthony Minessale II, Ken Rice,                       |
| Michael Jerris, Travis Cross                          |
| FreeSWITCH (http://www.freeswitch.org)                |
| Paypal Donations Appreciated: paypal@freeswitch.org   |
| Brought to you by ClueCon http://www.cluecon.com/     |
.=======================================================.

.=======================================================================================================.
|    ____ _             ____                                                                            |
|   / ___| |_   _  ___ / ___|___  _ __                                                                  |
|  | |   | | | | |/ _ \ |   / _ \| '_ \                                                                 |
|  | |___| | |_| |  __/ |__| (_) | | | |                                                                |
|   \____|_|\__,_|\___|\____\___/|_| |_|                                                                |
|                                                                                                       |
|   _____    _            _                          ____             __                                |
|  |_   _|__| | ___ _ __ | |__   ___  _ __  _   _   / ___|___  _ __  / _| ___ _ __ ___ _ __   ___ ___   |
|    | |/ _ \ |/ _ \ '_ \| '_ \ / _ \| '_ \| | | | | |   / _ \| '_ \| |_ / _ \ '__/ _ \ '_ \ / __/ _ \  |
|    | |  __/ |  __/ |_) | | | | (_) | | | | |_| | | |__| (_) | | | |  _|  __/ | |  __/ | | | (_|  __/  |
|    |_|\___|_|\___| .__/|_| |_|\___/|_| |_|\__, |  \____\___/|_| |_|_|  \___|_|  \___|_| |_|\___\___|  |
|                  |_|                      |___/                                                       |
|   _____                           _                         _                                         |
|  | ____|_   _____ _ __ _   _     / \  _   _  __ _ _   _ ___| |_                                       |
|  |  _| \ \ / / _ \ '__| | | |   / _ \| | | |/ _` | | | / __| __|                                      |
|  | |___ \ V /  __/ |  | |_| |  / ___ \ |_| | (_| | |_| \__ \ |_                                       |
|  |_____| \_/ \___|_|   \__, | /_/   \_\__,_|\__, |\__,_|___/\__|                                      |
|                        |___/                |___/                                                     |
|                                       ____ _             ____                                         |
|  __      ____      ____      __      / ___| |_   _  ___ / ___|___  _ __         ___ ___  _ __ ___     |
|  \ \ /\ / /\ \ /\ / /\ \ /\ / /     | |   | | | | |/ _ \ |   / _ \| '_ \       / __/ _ \| '_ ` _ \    |
|   \ V  V /  \ V  V /  \ V  V /   _  | |___| | |_| |  __/ |__| (_) | | | |  _  | (_| (_) | | | | | |   |
|    \_/\_/    \_/\_/    \_/\_/   (_)  \____|_|\__,_|\___|\____\___/|_| |_| (_)  \___\___/|_| |_| |_|   |
|                                                                                                       |
.=======================================================================================================.

Type /help  to see a list of commands




[This app Best viewed at 160x60 or more..]
+OK log level  [7]
freeswitch@freeswitch19-capa8>

ACTUALIZACIONES: PARA INSTALAR EN DEBIAN 9
Al instalar las dependencias cambia de nombre libsndfile-dev a libsndfile1-dev

libsndfile-dev -> libsndfile1-dev

Al ejecutar el script no encuentra el paquete npm que no está en debian 9, pero en debian sid si. Nos descargamos el fichero de los repositorios sid de debian y lo instalamos

root@freeswitch-capa8:/usr/src# wget -c http://ftp.us.debian.org/debian/pool/main/n/npm/npm_1.4.21+ds-2_all.deb
root@freeswitch-capa8:/usr/src# dpkg -i npm_1.4.21+ds-2_all.deb
root@freeswitch-capa8:/usr/src# apt-get -f install

Una vez arreglada la dependencia volvemos a ejecutar el script FreeSWITCH-debian-raspbian-installer.sh

ya cuando hacemos el configure activando el postgresql, nos pide una dependencia, así que antes de ejecutar el configure, instalamos ésta dependencia

root@freeswitch-capa8:/usr/src/freeswitch.git# apt-get install libldns-dev
root@freeswitch-capa8:/usr/src/freeswitch.git# ./configure --enable-core-pgsql-support
root@freeswitch-capa8:/usr/src/freeswitch.git# make
root@freeswitch-capa8:/usr/src/freeswitch.git# make install

Mas adelante cambia la ubicación del fichero hba.conf

root@freeswitch-capa8:/usr/local/freeswitch/conf# vi /etc/postgresql/9.6/main/pg_hba.conf

Han quedado algunas bases de datos creadas sobre sqlite3, así supongo que tendremos que añadir la línea de configuración en los ficheros correspondientes en confs

root@freeswitch-capa8:/usr/local/freeswitch/db# ls
fifo.db  json.db  sofia_reg_external.db  sofia_reg_external-ipv6.db
root@freeswitch-capa8:/usr/local/freeswitch/conf# vi autoload_configs/fifo.conf.xml
root@freeswitch-capa8:/usr/local/freeswitch/conf# vi autoload_configs/sofia.conf.xml

Recomiendo instalar también net-tools, para poder ver las conexiones y sockets y sngrep no es tampoco una mala herramienta ;)
[FIN ACTUALIZACIÓN]

Y aquí termina éste manual! :) Doy las gracias a los chicos de freeswitch-users que han tenido una gran paciencia conmigo y me han ayudado a identificar los problemas que tenía y a crear éste completo manual de instalación! mi pequeña aportación al proyecto! :D