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

Asterisk es una potente centralita digital y un servidor de VoIP publicado bajo una licencia de código abierto, por lo que puedes utilizarlo gratuitamente. La VoIP es una tecnología utilizada para establecer y controlar las llamadas telefónicas entre múltiples puntos finales. Se utiliza en pasarelas VoIP, servidores de conferencias, centros de llamadas, operadores e instituciones gubernamentales de todo el mundo. Funciona en Linux, BSD y OS X y te permite convertir tu sistema o servidor local en un servidor de comunicaciones.

En este post, explicaremos cómo instalar Asterisk en un servidor CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada en el servidor.

Cómo empezar

Por defecto, SELinux está activado en CentOS 8. Así que primero tendrás que desactivarlo. Para desactivarlo, edita el archivo de configuración de SELinux:

nano /etc/selinux/config

Cambia la siguiente línea:

SELINUX=disabled

Guarda y cierra el archivo y luego reinicia tu sistema para aplicar los cambios.

Instalar las herramientas necesarias

Asterisk requiere varios paquetes que debes instalar en tu servidor. Primero, instala el repositorio EPEL con el siguiente comando:

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

A continuación, habilita el repo de PowerTools con el siguiente comando:

dnf config-manager --set-enabled PowerTools

A continuación, instala 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, puedes pasar al siguiente paso.

Instalar Jansson y PJSIP

A continuación, tendrás que instalar Jansson en tu sistema. Se utiliza para la codificación y descodificación de datos multimedia.

En primer lugar, descárgalo del repositorio Git mediante el siguiente comando:

git clone https://github.com/akheron/jansson.git

A continuación, cambia el directorio al descargado y compílalo utilizando el siguiente comando:

cd jansson
autoreconf -i
./configure --prefix=/usr/
make
make install

A continuación, tendrás que instalar PJSIP en tu sistema. Se trata de una biblioteca utilizada para implementar los protocolos SIP, SDP, RTP, STUN, TURN e ICE.

Primero, descárgala con el siguiente comando:

cd
git clone https://github.com/pjsip/pjproject.git

A continuación, cambia el directorio por el descargado y compílalo utilizando 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 hayas terminado, puedes proceder a instalar el Asterisk.

Instalar Asterisk

En primer lugar, navega hasta tu directorio principal y descarga 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 finalizada la descarga, extrae el archivo descargado con el siguiente comando:

tar -xvzf asterisk-18-current.tar.gz

A continuación, cambia el directorio al extraído con el siguiente comando:

cd asterisk-18.4.0/

A continuación, configura el Asterisk con el siguiente comando:

./configure --libdir=/usr/lib64

Deberías ver la siguiente salida:

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, ejecuta el siguiente comando para instalar los complementos adicionales que quieras instalar con Asterisk.

make menuselect

Deberías ver la siguiente página:

Hacer menuselect

Selecciona Complementos y pulsa Intro. Deberías ver la siguiente página:

Selecciona los complementos

Selecciona tus complementos necesarios y pulsa Enter para seleccionarlos y luego pulsa ESC para volver al menú principal:

Selecciona los complementos de Asterisk

Selecciona el paquete de sonido Core que necesites y pulsa Enter para seleccionarlo. A continuación, pulsa ESC para volver, selecciona los paquetes MOH como se muestra a continuación:

Paquetes de sonido Asterisk

Selecciona los paquetes que necesites y pulsa Enter para seleccionarlos. A continuación, pulsa ESC para volver, selecciona los paquetes Extra como se muestra a continuación:

Elige paquetes adicionales

Selecciona los paquetes que necesites y pulsa Enter para seleccionarlos. A continuación, pulsa el botón ESC. Deberías ver la siguiente página:

Guardar los cambios de construcción

Pulsa S para guardar los cambios y salir.

A continuación, ejecuta el siguiente comando para instalar todas las dependencias necesarias:

contrib/scripts/get_mp3_source.sh

A continuación, construye el Asterisk con el siguiente comando:

make

Deberías ver la siguiente salida:

 +--------- 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, instala el Asterisk con el siguiente comando:

make samples
make config
ldconfig

Configurar Asterisk

A continuación, tendrás que crear un usuario dedicado para ejecutar Asterisk. Puedes crear un usuario y un grupo con el siguiente comando:

groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk

A continuación, añade el usuario de audio y de marcación al grupo de Asterisk con el siguiente comando

usermod -aG audio,dialout asterisk

A continuación, establece la propiedad de los directorios de Asterisk al usuario asterisk con el siguiente comando:

chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk

A continuación, edita el archivo /etc/sysconfig/asterisk:

nano /etc/sysconfig/asterisk

Descomenta las siguientes líneas:

AST_USER="asterisk"
AST_GROUP="asterisk"

Guarda y cierra el archivo y luego edita el archivo /etc/asterisk/asterisk.conf:

nano /etc/asterisk/asterisk.conf

Descomenta las siguientes líneas:

runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.

Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio de Asterisk para aplicar los cambios.

systemctl restart asterisk

A continuación, activa el servicio Asterisk para que se inicie al reiniciar el sistema:

systemctl enable asterisk

Para comprobar el estado del servicio Asterisk, ejecuta el siguiente comando:

systemctl status asterisk

Deberías obtener la siguiente salida:

? 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 puedes verificar el Asterisk con el siguiente comando:

asterisk -rvv

Si todo está bien, deberías obtener la siguiente salida:

Asterisk 18.4.0, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others.
Created by Mark Spencer <[email protected]>
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, ejecuta el siguiente comando para mostrar los canales del núcleo:

centos8*CLI> core show channels

Deberías ver la siguiente salida:

Channel              Location             State   Application(Data)             
0 active channels
0 active calls
0 calls processed

Para mostrar el tiempo de actividad de Asterisk, ejecuta el siguiente comando:

centos8*CLI> core show uptime

Deberías ver la siguiente salida:

System uptime: 1 minute, 33 seconds
Last reload: 1 minute, 33 seconds

Para salir de la CLI de Asterisk, ejecuta el siguiente comando:

centos8*CLI> quit

Conclusión

En la guía anterior has aprendido a descargar y compilar la versión 18 de Asterisk en un servidor CentOS 8. Ahora puedes integrar Asterisk con otras plataformas y crear una aplicación basada en VoIP.

También te podría gustar...