Instalación FreeSWITCH en Debian 12 (bookworm)

[video]

1. Preparativos

1.1 Obtner token

Para realizar la instalacion de freeswitch se requiere un token, mismo que se puede obtener creando una cuenta gratuita en la pagina de signalwire.

Una vez que obtenemos el token, lo seteamos en una variable de ambiente

export TOKEN=XXXXXXXXXXXXXXXXXXXXXX

1.2 Instalar dependencias basicas

Instalamos los paquetes necesarios previo a la instalación de freeswitch.

apt-get update && apt-get install -y gnupg2 wget lsb-release sngrep iproute2 net-tools less vim nano tcpdump cmake git

1.3 Configurar repositorios

Descargamos la llave gpg del repositorio de freeswitch

wget --http-user=signbalwire \
--http-password=$TOKEN \
-O /usr/share/keyrings/signalwire-freeswitch-repo.gpg \
https://freeswitch.signalwire.com/repo/deb/debian-release/signalwire-freeswitch-repo.gpg

Agregamos al archivo auth.conf nuestro TOKEN para que las descargas que hagamos con apt-get se autentiquen en el portal de signalwire

echo "machine freeswitch.signalwire.com login signalwire password $TOKEN" > /etc/apt/auth.conf

Configuramos el repositorio freeswitch.list en nuestro directorio /etc/apt/sources.list.d/

echo "deb [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list

echo "deb-src [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list

2. Instalacion de FreeSWITCH

2.1 Instalacion de dependencias

Instalamos todas las dependencias que requiere freeswitch

apt-get update && apt-get build-dep freeswitch -y

2.2 Descarga de FreeSWITCH

Descargamos de github el código fuente de freeswitch

git clone https://github.com/signalwire/freeswitch.git /usr/src/freeswitch

Nos desplazamos al directorio donde descargamos los fuentes, y  configuramos nuestra instalación

cd /usr/src/freeswitch \
&& git config pull.rebase true \
&& ./bootstrap.sh -j \
&& ./configure

Compilamos e instalamos

make && make install

2.3 Pos instalación

Agregamos el grupo y usuario freeswitch

groupadd freeswitch

adduser --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH" --ingroup freeswitch freeswitch --disabled-password

Otorgamos permisios y privilegios a los directorios

chown -R freeswitch:freeswitch /usr/local/freeswitch/
chmod -R ug=rwX,o= /usr/local/freeswitch/
chmod -R u=rwx,g=rx /usr/local/freeswitch/bin/*

Copiamos el archivo service y lo ponemos en el directorio systemd

cp /usr/src/freeswitch/debian/freeswitch-systemd.freeswitch.service /etc/systemd/system/freeswitch.service

editar: /etc/systemd/system/freeswitch.service
PIDFile=/usr/local/freeswitch/run/freeswitch.pid

Creamos los directorios requeridos

mkdir /var/log/freeswitch
mkdir /var/lib/freeswitch
mkdir /var/run/freeswitch
mkdir /usr/share/freeswitch

Y creamos las ligas simbólicas a los directorios estándar (etc, bin, sbin)


ln -s /usr/local/freeswitch/conf/ /etc/freeswitch
ln -s /usr/local/freeswitch/bin/freeswitch /usr/sbin/freeswitch
ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/freeswitch
ln -s /usr/local/freeswitch/bin/fs_cli /sbin/fs_cli

Por ultimo recargamos systemd e iniciamos el servicio

systemctl daemon-reload
systemctl start freeswitch

Conclusión

Siguiendo estos pasos tendremos nuestra instalación de freeswitch funcionando, para mas opciones de instalación o versión de linux puedes consultar la guía oficial de instalación de freeswitch.


Julio Carranza