FreePBX es una Interfaz gráfica de usuario de código abierto Web que para controlar y dirigir Asterisk.
En este artículo te explicamos cómo instalar FreePBX en Ubuntu 24.04 LTS, pero también es válido el procedimiento para la mayoría de distribuciones basadas en Debian.
Preparación del sistema:
Lo primero que tienes que hacer es actualizar los repositorios:
# apt update && apt upgrade -y
Instala las dependencias requeridas para la instalación de Asterisk:
# apt install unzip git gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev subversion -y
Instalación de Asterisk
Descarga el paquete con Asterisk y lo descomprímelo:
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
# tar zxf asterisk-22-current.tar.gz
Ahora accede al directorio e instala las dependencias requeridas:
# cd asterisk-22.*/
# contrib/scripts/get_mp3_source.sh
# contrib/scripts/install_prereq install
Tras ejecutar los comandos anteriores, el script descargará e instalará todos los paquetes necesarios. A continuación, mostrará un mensaje de éxito similar al que se muestra a continuación:
Current status: 1 (-14) upgradable.
#############################################
## install completed successfully
#############################################
Ahora tendrás que configurar el Asterisk:
# ./configure
# make menuselect
Una vez utilices los comandos anteriores te saldrá una pestaña con los add-ons requeridos (solo tienes que habilitar los módulos marcados con *):
También tienes que habilitar los módulos de sonido, los paquetes Music on hold y Los Extras Sound:
Para salir y guardar pulsa F12.
Para instalar Asterisk con sus respectivas plantillas utiliza los siguientes comandos:
# make -j2
# make install
# make samples
# make config
# ldconfig
Configuración de Asterisk:
Ahora tienes que crear un usuario y grupo para Asterisk, luego tendrás que agregarlo al grupo pertinente:
# groupadd asterisk
# useradd -r -d /var/lib/asterisk -g asterisk asterisk
# usermod -aG audio,dialout asterisk
Asigna permisos de propietario al usuario Asterisk:
# chown -R asterisk:asterisk /etc/asterisk
# chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
# chown -R asterisk:asterisk /usr/lib/asterisk
Ahora abre el fichero /etc/default/asterisk y asigna al usuario Asterisk como el usuario por defecto descomentando AST_USER y AST GROUP.
# sed -i 's/#AST_USER="asterisk"/AST_USER="asterisk"/' /etc/default/asterisk
# sed -i 's/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/' /etc/default/asterisk
Prueba primero los comandos anteriores para realizar el cambio automáticamente y después verifica si funciona, sino puedes hacerlo manual:
# nano /etc/default/asterisk
AST_USER="asterisk"
AST_GROUP="asterisk"
Ahora abre el fichero /etc/asterisk/asterisk.conf y descomenta tanto runuser como rungroup:
# sed -i 's/;runuser = asterisk/runuser = asterisk/' /etc/asterisk/asterisk.conf
# sed -i 's/;rungroup = asterisk/rungroup = asterisk/' /etc/asterisk/asterisk.conf
Prueba primero los comandos anteriores para realizar el cambio automáticamente y después verifica si funciona, puedes hacerlo manual:
# nano /etc/asterisk/asterisk.conf
runuser = asterisk
rungroup = asterisk
Reinicia Asterisk:
# systemctl restart asterisk
En este punto si haces un status:
# systemctl status asterisk
Verás el siguiente error:
radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory
Para resolverlo utiliza los siguientes comandos para reemplazar y modificar los errores de configuración:
# sed -i 's";\[radius\]"\[radius\]"g' /etc/asterisk/cdr.conf # sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf # sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf
Ahora, si reinicias el servicio y haces un status debería salir todo bien:
# systemctl restart asterisk
# systemctl status asterisk
Finalmente, conéctate con la línea de comandos con el comando:
# asterisk -vvvr
Para salir del CLI utiliza:
# exit
Instalación FreePBX
Instala nodejs, mariadb, apache2 y php para poder instalar FreeBPX:
# apt install nodejs mariadb-server apache2 php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip php-ldap php-imap php-cas -y
Ahora Descarga y descomprime FreeBPX.
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest.tgz
# tar -xvzf freepbx-17.0-latest.tgz
Ahora instala y accede a la carpeta de freebpx, en este punto ya podrás instalar FreeBPX:
# cd freepbx
# ./install -n
Debería salirte un resultado parecido a:
Ahora tendrás que reemplazar el usuario de apache y activar la opción de AllowOverride All en apache:
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
Luego necesitarás configurar el tamaño máximo de subida en PHP:
# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/*/apache2/php.ini
# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/*/cli/php.ini
Ahora ya puedes habilitar apache2 y reiniciarlo para que se apliquen los cambios.
# a2enmod rewrite && systemctl restart apache2
Configuración FreePBX
Accede a la dirección: http://your-server-ip/admin. Una vez accedido, podrás introducir el usuario y su correspondiente correo:
Listo. ¡Ya puedes disfrutar de tu Servidor con FreePBX 17!
Esperamos haberte ayudado con este artículo. Si te quedan dudas sobre esta u otra cuestión relacionada con tus servidores en Clouding, escríbenos a soporte@clouding.io. ¡Estamos para ayudarte! 😉