Búsqueda de sitios web

Cómo instalar Asterisk en CentOS/RHEL 8/7


Asterisk es un marco de código abierto que se utiliza para crear aplicaciones de comunicación. Puede usarlo para convertir una computadora o servidor local en el servidor de comunicaciones. Se utiliza para alimentar sistemas IP PBX, puertas de enlace VoIP, servidores de conferencias y otras soluciones. Es utilizado por todo tipo de organizaciones en todo el mundo y, por último, pero no por último, es gratuito y de código abierto.

En este tutorial, le mostraremos cómo instalar Asterisk en CentOS 8/7 (las instrucciones también funcionan en RHEL 8/7) , pero antes de comenzar, necesitaremos hacer algunos preparativos para que Asterisk pueda funcionar sin problemas después de la instalación.

Paso 1: deshabilite SELinux en CentOS

Para hacer esto, conecte SSH a su sistema y use su editor de texto de línea de comando favorito, abra /etc/selinux/config y deshabilite SELINUX.

vim /etc/selinux/config

La línea SELinux debería verse así:

SELINUX=disabled

Ahora reinicie su sistema. Una vez que regrese SSH nuevamente a ese sistema.

Paso 2: instale los paquetes necesarios

Asterisk tiene bastantes requisitos que deben instalarse. Puede utilizar el siguiente comando yum para instalar los paquetes necesarios como se muestra.

yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel libedit libedit-devel

Antes de continuar, cree un nuevo usuario con privilegios sudo llamado "asterisk", usaremos este usuario para configurar asterisk en el sistema.

adduser asterisk -c "Asterisk User"
passwd asterisk 
usermod -aG wheel asterisk
su asterisk

A continuación, instale PJSIP, una biblioteca de comunicación multimedia de código abierto y gratuita que implementa protocolos basados en estándares como SIP, SDP, RTP, STUN, TURN e ICE. Es el controlador del canal Asterisk SIP el que debería mejorar la claridad de las llamadas.

Para obtener la última versión, primero creemos un directorio temporal donde compilaremos el paquete desde el código fuente.

mkdir ~/build && cd ~/build

Ahora vaya a la página de descarga de PJSIP y obtenga el paquete o use el siguiente comando wget para descargar el paquete directamente en la terminal.

Tenga en cuenta que al momento de escribir este artículo, la última versión es 2.8, esto puede cambiar en el futuro, por lo tanto, asegúrese de utilizar la última versión:

wget https://www.pjsip.org/release/2.9/pjproject-2.9.tar.bz2

Una vez que se complete la descarga, extraiga el archivo y cámbielo a ese directorio.

tar xvjf pjproject-2.9.tar.bz2
cd pjproject-2.9

El siguiente paso es preparar el paquete a compilar. Puede utilizar el siguiente comando:

./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr

No debería ver ningún error o advertencia. Asegúrese de que se cumplan todas las dependencias:

make dep

Y ahora podemos completar la instalación y vincular bibliotecas con:

make && sudo make install && sudo ldconfig

Finalmente, asegúrese de que todas las bibliotecas estén instaladas y presentes:

ldconfig -p | grep pj

Debería obtener el siguiente resultado:

libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
	libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
	libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
	libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
	libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
	libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
	libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
	libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
	libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
	libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
	libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
	libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
	libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
	libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
	libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
	libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
	libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
	libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
	libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
	libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
	libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
	libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
	libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
	libpj.so (libc6,x86-64) => /lib64/libpj.so

Paso 3: instale Asterisk en CentOS 8/7

Ahora estamos listos para iniciar la instalación de Asterisk. Vuelve a nuestro directorio ~/build:

cd ~/build

Vaya a la página de descarga de Asterisk y obtenga la última versión o puede usar el siguiente comando wget para descargar el archivo en la terminal.

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

Al momento de escribir este tutorial, la última versión de Asterisk es la 16. Asegúrese de descargar la última versión de Asterisk cuando siga los pasos.

Ahora extraiga el archivo y navegue hasta el directorio recién creado:

tar -zxvf asterisk-16-current.tar.gz
cd asterisk-16.5.1

Este es el momento de mencionar que si desea habilitar la compatibilidad con mp3 para reproducir música mientras el cliente está en espera, necesitará instalar algunas dependencias más. Estos pasos son opcionales:

sudo yum install svn
sudo ./contrib/scripts/get_mp3_source.sh

Después del segundo paso, debería obtener resultados similares a estos:

A    addons/mp3
A    addons/mp3/Makefile
A    addons/mp3/README
A    addons/mp3/decode_i386.c
A    addons/mp3/dct64_i386.c
A    addons/mp3/MPGLIB_TODO
A    addons/mp3/mpg123.h
A    addons/mp3/layer3.c
A    addons/mp3/mpglib.h
A    addons/mp3/decode_ntom.c
A    addons/mp3/interface.c
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
Exported revision 202.

Comience ejecutando el script de configuración para preparar el paquete para la compilación:

sudo contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64 --with-jansson-bundled

Si le faltan dependencias, instálelas. En mi caso, recibí el siguiente error:

configure: error: patch is required to configure bundled pjproject

Para solucionar esto simplemente ejecute:

yum install patch 

Y vuelva a ejecutar el script de configuración. Si todo salió perfectamente sin errores, verá la siguiente captura de pantalla.

Ahora, comencemos el proceso de construcción:

make menuselect

Después de unos segundos, debería obtener una lista de funciones para habilitar:

Si intenta utilizar la función de música en espera, deberá habilitar la función “format_mp3” en la sección “Complementos”. Guarde su lista y ejecute el siguiente comando:

make && sudo make install

Para instalar los archivos de configuración de muestra, utilice el siguiente comando:

sudo make samples

Para iniciar Asterisk en el arranque, use:

sudo make config

Actualice la propiedad de los siguientes directorios y archivos:

sudo chown asterisk. /var/run/asterisk
sudo chown asterisk. -R /etc/asterisk
sudo chown asterisk. -R /var/{lib,log,spool}/asterisk

Finalmente, probemos nuestra instalación con:

sudo service asterisk start
sudo asterisk -rvv

Deberías ver un resultado similar a este:

Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <[email >
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.
=========================================================================
Connected to Asterisk 16.5.1 currently running on centos8-tecmint (pid = 9020)
centos8-tecmint*CLI>

Si desea ver una lista de comandos disponibles, escriba:

asterisk*CLI> core show help

Para salir del mensaje de Asterisk, simplemente escriba:

asterisk*CLI> exit

Asterisk seguirá ejecutándose en segundo plano.

Conclusión

Ahora tiene un servidor Asterisk en ejecución y puede comenzar a conectar teléfonos y extensiones y ajustar su configuración según sus necesidades. Para obtener más detalles sobre cómo lograr esto, se recomienda utilizar la página Wiki de Asterisk. Si tiene alguna pregunta o comentario, háganoslo saber en la sección de comentarios a continuación.