Cómo instalar Asterisk en CentOS 7


Asterisk es un marco de código abierto utilizado para crear aplicaciones de comunicación. Puede usarlo para convertir una computadora o servidor local en un servidor de comunicación. Se utiliza para alimentar sistemas IP PBX, pasarelas VoIP, servidores de conferencia 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 7 (las instrucciones también funcionan en RHEL 7 ), pero antes de Para empezar, tendremos que hacer algunos preparativos para que Asterisk pueda ejecutarse sin problemas después de la instalación.

Paso 1: Deshabilite SELinux en CentOS 7

Para hacer esto, primero SSH en su sistema y usando su editor de texto de línea de comando favorito, abra /etc/selinux/config y desactive SELINUX .

# vim /etc/selinux/config

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

SELINUX=disabled

Ahora reinicie su sistema. Una vez vuelve SSH nuevamente a ese sistema.

Paso 2: Instalar los paquetes requeridos

Asterisk tiene unos cuantos requisitos que deben instalarse. Puede usar el siguiente comando yum para instalar los paquetes requeridos 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

Antes de continuar, cree un nuevo usuario a través del cual usaremos asterisco .

# adduser asterisk -c "Asterisk User"
# su asterisk

Luego, instale PJSIP , es una biblioteca de comunicación multimedia de código abierto 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 vamos a crear un directorio temporal donde construiremos el paquete desde la fuente.

$ mkdir ~/build && cd ~/build

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

Tenga en cuenta que al escribir este artículo, la versión más reciente es 2.8 , esto puede cambiar en el futuro, por lo tanto, asegúrese de usar la versión más reciente:

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

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

$ tar xvjf pjproject-2.8.tar.bz2
$ cd pjproject-2.8

El siguiente paso es preparar el paquete a compilar. Puedes usar 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ías ver ningún error o advertencia. Asegúrese de que todas las dependencias se cumplan:

$ make dep

Y ahora podemos completar las bibliotecas de instalación y enlace 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ías 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 7

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

$ cd ~/build

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

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

Al escribir este tutorial, la última versión de Asterisk es 16 . Asegúrese de que está descargando 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.0.0

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:

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

Después del segundo paso, debería obtener una salida similar a la siguiente:

A    addons/mp3
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
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

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

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

Si tienes dependencias faltantes instálalas. En mi caso, recibí el siguiente error:

configure: error: patch is required to configure bundled pjproject

Para ir alrededor de esto simplemente ejecute:

# yum install patch 

Y vuelva a ejecutar el script de configuración. Ahora comencemos el proceso de construcción:

$ make menuselect

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

Si intenta usar la función de música en espera, deberá habilitar la función " format_mp3 " de la sección " Complementos ". Guarda tu lista y ejecuta el siguiente comando:

make && sudo make install

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

sudo make samples

Para iniciar Asterisk en el arranque, use:

sudo make config

Como usuario root, actualice la propiedad de los siguientes directorios y archivos:

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

Finalmente probemos nuestra instalación con:

$ sudo service asterisk start
$ sudo asterisk -rvv

Deberías ver una salida similar a esta:

Asterisk 16.0.0, Copyright (C) 1999 - 2018, Digium, Inc. 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.
=========================================================================
Connected to Asterisk 16.0.0 currently running on asterisk (pid = 3985)
asterisk*CLI>

Si quieres ver una lista de comandos disponibles escribe:

asterisk*CLI> core show help

Para salir del indicador de asterisco, simplemente escriba:

asterisk*CLI> exit

Asterisco seguirá ejecutándose en segundo plano.

Ahora tiene un servidor en ejecución Asterisk 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.