Asterisk es un potente servidor VoIP y PBX digital lanzado bajo una licencia de código abierto, por lo que puede usarlo de forma gratuita. VoIP es una tecnología que se utiliza para establecer y controlar llamadas telefónicas entre varios puntos finales. Se utiliza en puertas de enlace VoIP, servidores de conferencias, centros de llamadas, operadores e instituciones gubernamentales de todo el mundo. Se ejecuta en Linux, BSD y OS X y le permite convertir su sistema o servidor local en un servidor de comunicaciones.
Prerrequisitos:
-
Un servidor que ejecuta CentOS 8.
-
Se configura una contraseña de root en el servidor.
Empezando:
De forma predeterminada, SELinux está habilitado en CentOS 8. Por lo tanto, primero deberá deshabilitarlo. Para deshabilitarlo, edite el archivo de configuración de SELinux:
nano /etc/selinux/config
Cambie la siguiente línea:
SELINUX=disabled
Guarde y cierre el archivo, luego reinicie su sistema para aplicar los cambios.
Instale las herramientas necesarias:
Asterisk requiere varios paquetes que necesita instalar en su servidor. Primero, instale el repositorio EPEL con el siguiente comando:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
A continuación, habilite el repositorio de PowerTools con el siguiente comando:
dnf config-manager --set-enabled PowerTools
A continuación, instale otros paquetes y herramientas de desarrollo con el siguiente comando:
dnf install wget gcc gcc-c++ svn make bzip2 patch libedit-devel uuid-devel libuuid-devel libxml2-devel sqlite sqlite-devel nano openssl openssl-devel -y
dnf groupinstall "Development Tools"
Una vez instalados todos los paquetes necesarios, puede continuar con el siguiente paso.
Instale Jansson y PJSIP:
A continuación, deberá instalar Jansson en su sistema. Se utiliza para la codificación y decodificación de datos multimedia.
Primero, descárguelo del repositorio de Git usando el siguiente comando:
git clone https://github.com/akheron/jansson.git
A continuación, cambie el directorio al directorio descargado y compílelo usando el siguiente comando:
cd jansson
autoreconf -i
./configure --prefix=/usr/
make
make install
A continuación, deberá instalar PJSIP en su sistema. Es una biblioteca que se utiliza para implementar los protocolos SIP, SDP, RTP, STUN, TURN e ICE.
Primero, descárgalo usando el siguiente comando:
cd
git clone https://github.com/pjsip/pjproject.git
A continuación, cambie el directorio al directorio descargado y compílelo usando el siguiente comando:
cd pjproject
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
make dep
make
make install
ldconfig
Una vez que haya terminado, puede proceder a instalar el Asterisk.
Instalar Asterisk:
Primero, navegue a su directorio de inicio y descargue la última versión de Asterisk con el siguiente comando:
cd
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:
tar -xvzf asterisk-18-current.tar.gz
A continuación, cambie el directorio al directorio extraído con el siguiente comando:
cd asterisk-18.4.0/
A continuación, configure el Asterisk con el siguiente comando:
./configure --libdir=/usr/lib64
Debería ver el siguiente resultado:
configure: Menuselect build configuration successfully completed
.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.
configure: Package configured for:
configure: OS type : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :
A continuación, ejecute el siguiente comando para instalar complementos adicionales que desee instalar con Asterisk.
make menuselect
Debería ver la siguiente página:
Seleccione Add-ons y pulsa Enter . Debería ver la siguiente página:
Seleccione sus complementos requeridos y presione Enter para seleccionarlo, luego presione ESC para regresar al menú principal:
Seleccione el paquete de sonido Core requerido y presione Enter para seleccionarlo. A continuación, presione ESC para regresar, seleccione paquetes MOH como se muestra a continuación:
Seleccione sus paquetes requeridos y presione Enter para seleccionarlos. A continuación, presione ESC para regresar, seleccione Paquetes adicionales como se muestra a continuación:
Seleccione sus paquetes requeridos y presione Enter para seleccionarlos. Luego, presione el botón ESC. Debería ver la siguiente página:
Presione S para guardar los cambios y salir.
A continuación, ejecute el siguiente comando para instalar todas las dependencias necesarias:
contrib/scripts/get_mp3_source.sh
A continuación, construya el Asterisk con el siguiente comando:
make
Debería ver el siguiente resultado:
+--------- Asterisk Build Complete ---------+
+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
make install
+---- Asterisk Installation Complete -------+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ For generic reference documentation: +
+ make samples +
+ +
+ For a sample basic PBX: +
+ make basic-pbx +
+ +
+ +
+----------------- or ---------------------+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+-------------------------------------------+
A continuación, instale el Asterisk con el siguiente comando:
make samples
make config
ldconfig
Configurar Asterisk
A continuación, deberá crear un usuario dedicado para ejecutar Asterisk. Puede crear un usuario y un grupo con el siguiente comando:
groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
A continuación, agregue el usuario de audio y marcado al grupo Asterisk con el siguiente comando:
usermod -aG audio,dialout asterisk
A continuación, establezca la propiedad de los directorios de Asterisk como usuario de asterisco con el siguiente comando:
chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk
A continuación, edite el archivo /etc/sysconfig/asterisk:
nano /etc/sysconfig/asterisk
Descomente las siguientes líneas:
AST_USER="asterisk"
AST_GROUP="asterisk"
Guarde y cierre el archivo, luego edite el archivo /etc/asterisk/asterisk.conf:
nano /etc/asterisk/asterisk.conf
Descomente las siguientes líneas:
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Asterisk para aplicar los cambios.
systemctl restart asterisk
A continuación, habilite el servicio Asterisk para que se inicie al reiniciar el sistema:
systemctl enable asterisk
Para verificar el estado del servicio Asterisk, ejecute el siguiente comando:
systemctl status asterisk
Debería obtener el siguiente resultado:
? asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/rc.d/init.d/asterisk; generated)
Active: active (running) since Sat 2021-05-22 08:19:08 EDT; 15s ago
Docs: man:systemd-sysv-generator(8)
Process: 70883 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS)
Main PID: 70914 (asterisk)
Tasks: 81 (limit: 25014)
Memory: 36.8M
CGroup: /system.slice/asterisk.service
??70912 /bin/sh /usr/sbin/safe_asterisk
??70914 /usr/sbin/asterisk -f -vvvg -c
May 22 08:19:08 centos8 systemd[1]: Starting LSB: Asterisk PBX...
May 22 08:19:08 centos8 asterisk[70883]: Starting asterisk:
Verificar Asterisk
En este punto, Asterisk está instalado y configurado. Ahora puede verificar el Asterisk usando el siguiente comando:
asterisk -rvv
Si todo está bien, debería obtener el siguiente resultado:
Asterisk 18.4.0, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 18.4.0 currently running on centos8 (pid = 70914)
centos8*CLI>
Ahora, ejecute el siguiente comando para mostrar los canales principales:
centos8*CLI> core show channels
Debería ver el siguiente resultado:
Channel Location State Application(Data)
0 active channels
0 active calls
0 calls processed
Para mostrar el tiempo de actividad de Asterisk, ejecute el siguiente comando:
centos8*CLI> core show uptime
Debería ver el siguiente resultado:
System uptime: 1 minute, 33 seconds
Last reload: 1 minute, 33 seconds
Para salir de la CLI de Asterisk, ejecute el siguiente comando:
centos8*CLI> quit