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 20.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 http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
# tar zxf asterisk-18-current.tar.gz
Ahora accede al directorio e instala las dependencias requeridas:
# cd asterisk-18.*/
# contrib/scripts/get_mp3_source.sh
# contrib/scripts/install_prereq install
Durante la instalación te preguntará el prefijo del país:
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/asterisk/asterisk.conf
# sed -i 's/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/' /etc/asterisk/asterisk.conf
Prueba primero arriba, si no, verifica si funciona o 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 arriba, si no, verifica si funciona o 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 apache2 mariadb-server libapache2-mod-php7.4 php7.4 php-pear php7.4-cgi php7.4-common php7.4-curl php7.4-mbstring php7.4-gd php7.4-mysql php7.4-bcmath php7.4-zip php7.4-xml php7.4-imap php7.4-json php7.4-snmp
Ahora Descarga y descomprime FreeBPX.
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz
# tar -xvzf freepbx-16.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/7.4/apache2/php.ini
# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.4/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 ahí podrás introducir el usuario administrador y su correspondiente correo:
Listo. ¡Ya puedes disfrutar de tu Servidor con FreePBX 16!
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! 😉