Cómo instalar el servidor VoIP Asterisk 18 en CentOS 8

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

Fuente: https://www.howtoforge.com/how-to-install-asterisk-18-on-centos-8/