FreePBX una interfaz gráfica de usuario de código abierto web 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 libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev subversion -yInstalación de Asterisk
Descarga el paquete con Asterisk y descomprímelo:
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
# tar zxf asterisk-22-current.tar.gzAhora accede al directorio e instala las dependencias requeridas:
# cd asterisk-22.*/
# contrib/scripts/get_mp3_source.sh
# contrib/scripts/install_prereq installTras 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 menuselectUna 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
# ldconfigConfiguració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 asteriskAsigna 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/asteriskAhora 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; si no, puedes hacerlo manualmente:
# nano /etc/default/asteriskAST_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.confrunuser = asterisk
rungroup = asteriskReinicia Asterisk:
# systemctl restart asteriskEn este punto si haces un status:
# systemctl status asteriskVerás el siguiente error:
radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directoryPara 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.confAhora, si reinicias el servicio y haces un status debería salir todo bien:
# systemctl restart asterisk
# systemctl status asteriskFinalmente, conéctate con la línea de comandos con el comando:
# asterisk -vvvrPara salir del CLI utiliza:
# exitInstalación FreePBX
Instala nodejs, mariadb, apache2 y php para poder instalar FreePBX:
# 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 -yAhora Descarga y descomprime FreePBX.
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest.tgz
# tar -xvzf freepbx-17.0-latest.tgzAhora instala y accede a la carpeta de FreePBX, en este punto ya podrás instalar FreePBX:
# cd freepbx
# ./install -nDeberí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.confLuego 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.iniAhora ya puedes habilitar apache2 y reiniciarlo para que se apliquen los cambios.
# a2enmod rewrite && systemctl restart apache2Configuració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! 😉