Enviado por admin el
Como ya algunos de ustedes me preguntaron como instalar Asterisk en Almalinux/RockyLinux, he decidido publicar esta guía que se basa en un VPS de Upcloud con instalado Rocky Linux 9. He decidido instalar la versión 20 de Asterisk, que tiene soporte hasta el 19 de octubre del 2027, porque todavía está presente el canal SIP chan_sip, canal que desaparece por completo desde la versión 21.
Una vez creado el servidor se accede vía SSH y se actualiza el sistema:
dnf update -y
se instala el editor nano, la utilizada para comprimir/descomprimir los paquetes y wget que se utilizará para descargar el paquete de Asterisk:
dnf install nano tar wget -y
Como los servidores de UpCloud vienen sin Memoria de Swap, es una buena practica crear una que sea el doble de la memoria RAM disponible; en nuestro caso como la memoria RAM disponible es de 1GB, vamos a crear una memoria de Swap de 2GB:
dd if=/dev/zero of=/swapfile bs=1024 count=2048k
mkswap /swapfile
swapon /swapfile
Se configura la partición de swap para que arranque con el sistema:
nano /etc/fstab
al final del archivo se añade la linea que sigue:
/swapfile swap swap defaults 0 0
Se guardan los cambios y se cambian los permisos del archivo recién creado:
chmod 0600 /swapfile
Se instalan los repositorios de Fedora, una distribución Linux “hermana” de Rocky Linux, que se utilizarán más adelante para instalar algunos paquetes/programas no disponibles en los repositorios estándar de Rocky Linux:
dnf install epel-release -y
Para terminar se revisa si Selinux está activado; si así fuera, se desactiva:
nano /etc/selinux/config
las lineas importantes son:
SELINUX=disabled
SELINUXTYPE=targeted
Se guardan los cambios y se actualiza nuevamente el sistema:
dnf update -y
Ya se puede reiniciar el servidor remoto:
reboot
Se vuelve a acceder al servidor y se activan los repositorios crb que permiten la instalación de algunos paquetes que no están presentes en los repositorios estándar de Rocky Linux:
dnf config-manager --set-enabled crb
se descarga la ultima versión disponible de la rama 20 de Asterisk:
cd /usr/src/
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-curren...
se descomprime:
tar -xf asterisk-20-current.tar.gz
se entra en la carpeta creada:
cd asterisk-20.10.0
se instalan los paquetes requeridos para una correcta compilación de las fuentes:
contrib/scripts/install_prereq install
se entra en el menú de configuración de Asterisk:
make menuselect
si queremos instalar el canal chan_sip (deprecado) entramos en el menú Channel Drivers y lo seleccionamos:
En Codec Translators seleccionamos los siguientes módulos:
luego en Core Sound Packages y Extra Sound Packages seleccionamos todas los paquetes de las locuciones audio que necesitamos y hacemos lo mismo en Music On Hold File Packages para la música de espera. Terminamos utilizando la tecla tabulador hasta posicionarnos en:
y presionamos la tecla envío. Luego compilamos:
make
instalamos Asterisk:
make install
instalamos todos los archivos de configuración predefinidos con el comando:
make samples
para que el sript de arranque funcione correctamente:
dnf install chkconfig initscripts -y
con el comando que sigue se instala el script de arranque de Asterisk que permitirá iniciar la PBX al boot de Linux:
make config
Para terminar, si se quiere utilizar el canal chan_sip en lugar de chan_pjsip, se abre el archivo donde se configura todo lo relacionado con los módulos de Asterisk PBX:
nano +48 /etc/asterisk/modules.conf
se modifica el contenido de la linea 48:
noload = chan_sip.so
con:
noload = chan_pjsip.so
se guardan los cambios y se inicia Asterisk:
service asterisk start
Reloading systemd: [ OK ]
Starting asterisk (via systemctl): [ OK ]
Lo primero es revisar los LOG para ver si hay errores presentes; en mi caso:
[Oct 19 23:51:28] ERROR[58120] res_config_ldap.c: No directory URL or host found.
[Oct 19 23:51:28] ERROR[58120] res_config_ldap.c: Cannot load LDAP RealTime driver.
[Oct 19 23:51:28] ERROR[58120] res_config_pgsql.c: PostgreSQL RealTime: Failed to connect database asterisk on 127.0.0.1:
[Oct 19 23:51:28] ERROR[58120] res_sorcery_config.c: Contents of config file 'geolocation.conf' are invalid and cannot be parsed
[Oct 19 23:51:28] ERROR[58120] res_sorcery_config.c: Contents of config file 'geolocation.conf' are invalid and cannot be parsed
[Oct 19 23:51:29] ERROR[58120] ari/config.c: No configured users for ARI
[Oct 19 23:51:29] ERROR[58120] loader.c: Failed to resolve dependencies for res_pjsip_geolocation
[Oct 19 23:51:29] ERROR[58120] loader.c: res_pjsip_geolocation declined to load.
[Oct 19 23:51:29] ERROR[58120] loader.c: res_pjsip_transport_websocket declined to load.
[Oct 19 23:51:29] ERROR[58120] loader.c: cdr_pgsql declined to load.
[Oct 19 23:51:29] ERROR[58120] loader.c: cdr_radius declined to load.
[Oct 19 23:51:29] ERROR[58120] loader.c: cdr_sqlite3_custom declined to load.
[Oct 19 23:51:29] ERROR[58120] loader.c: cdr_tds declined to load.
[Oct 19 23:51:29] ERROR[58120] loader.c: cel_radius declined to load.
[Oct 19 23:51:29] ERROR[58120] loader.c: cel_sqlite3_custom declined to load.
[Oct 19 23:51:29] ERROR[58120] loader.c: cel_tds declined to load.
La mayoría de los errores no afecta el correcto funcionamiento de Asterisk ya que están relacionados con módulos que normalmente no se utilizan. Para acceder a la consola de Asterisk:
asterisk -rvvvvvvvvvvvvvv
para salir:
asterisk20*CLI> quit
para ver la versión exacta instalada:
asterisk -V
Asterisk 20.10.0
En un próximo articulo veremos como configurar el CDR en una base de datos ya que no se puede utilizar más el modulo cdr_mysql.so porque no presente en las fuentes de Asterisk.
Cualquier cosa me comentan
Comentarios recientes