Com instal·lar Asterisk a CentOS/RHEL 8/7


Asterisk és un marc de codi obert utilitzat per crear aplicacions de comunicació. Podeu utilitzar-lo per convertir un ordinador o servidor local al servidor de comunicacions. S'utilitza per alimentar sistemes IP PBX, passarel·les VoIP, servidors de conferències i altres solucions. L'utilitzen tot tipus d'organitzacions a tot el món i finalment, però no per últim, és gratuït i de codi obert.

En aquest tutorial, us mostrarem com instal·lar Asterisk a CentOS 8/7 (les instruccions també funcionen a RHEL 8/7), però abans de començar, haurem de fer alguns preparatius perquè Asterisk pugui funcionar sense problemes després de la instal·lació. .

Pas 1: desactiveu SELinux a CentOS

Per fer-ho, SSH al vostre sistema i utilitzant el vostre editor de text de línia d'ordres preferit, obriu /etc/selinux/config i desactiveu SELINUX.

# vim /etc/selinux/config

La línia SELinux hauria de ser així:

SELINUX=disabled

Ara reinicieu el vostre sistema. Un cop torna SSH de nou a aquest sistema.

Pas 2: instal·leu els paquets necessaris

Asterisk té uns quants requisits que cal instal·lar. Podeu utilitzar la següent comanda yum per instal·lar els paquets necessaris tal com es mostra.

# 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

Abans de continuar més, creeu un nou usuari amb privilegis sudo anomenat asterisc, utilitzarem aquest usuari per configurar l'asterisc al sistema.

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

A continuació, instal·leu PJSIP, és una biblioteca de comunicació multimèdia de codi obert gratuïta que implementa protocols basats en estàndards com SIP, SDP, RTP, STUN, TURN i ICE. És el controlador del canal SIP Asterisk el que hauria de millorar la claredat de les trucades.

Per obtenir la darrera versió, primer creem un directori temporal on construirem el paquet des de la font.

$ mkdir ~/build && cd ~/build

Ara aneu a l'ordre wget per descarregar el paquet directament al terminal.

Tingueu en compte que en escriure aquest article l'última versió és la 2.8, això pot canviar en el futur, per tant, assegureu-vos d'utilitzar la versió més recent:

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

Un cop finalitzada la descàrrega, extreu el fitxer i canvieu-lo a aquest directori.

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

El següent pas és preparar el paquet a compilar. Podeu utilitzar l'ordre següent:

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

No hauríeu de veure cap error ni advertència. Assegureu-vos que es compleixin totes les dependències:

$ make dep

I ara podem completar la instal·lació i enllaç de les biblioteques amb:

$ make && sudo make install && sudo ldconfig

Finalment, assegureu-vos que totes les biblioteques estiguin instal·lades i presents:

$ ldconfig -p | grep pj

Hauríeu d'obtenir la següent sortida:

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

Pas 3: instal·leu Asterisk a CentOS 8/7

Ara estem preparats per iniciar la instal·lació d'Asterisk. Torneu al nostre directori ~/build:

$ cd ~/build

Aneu a l'ordre wget per descarregar el fitxer al terminal.

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

En escriure aquest tutorial, l'última versió d'Asterisk és la 16. Assegureu-vos que esteu baixant la darrera versió d'Asterisk, quan seguiu els passos.

Ara extreu l'arxiu i aneu al directori acabat de crear:

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

Aquest és el moment d'esmentar que si voleu habilitar el suport mp3 per reproduir música mentre el client està en espera, haureu d'instal·lar unes quantes dependències més. Aquests passos són opcionals:

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

Després del segon pas, hauríeu d'obtenir una sortida similar a aquestes:

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.

Comenceu executant l'script de configuració per preparar el paquet per a la compilació:

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

Si trobeu alguna dependència que falten per instal·lar-les. En el meu cas, he rebut el següent error:

configure: error: patch is required to configure bundled pjproject

Per fer-ho, simplement executeu:

# yum install patch 

I torneu a executar l'script de configuració. Si tot va anar perfectament sense errors, veureu la següent captura de pantalla.

Ara, comencem el procés de creació:

$ make menuselect

Després d'uns segons, hauríeu d'obtenir una llista de funcions per habilitar:

Si intenteu utilitzar la funció de música en espera, haureu d'activar la funció \format_mp3 a la secció \Complements. Deseu la vostra llista i executeu l'ordre següent:

$ make && sudo make install

Per instal·lar els fitxers de configuració de mostra, utilitzeu l'ordre següent:

$ sudo make samples

Per iniciar Asterisk a l'arrencada, utilitzeu:

$ sudo make config

Actualitzeu la propietat dels directoris i fitxers següents:

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

Finalment, provem la nostra instal·lació amb:

$ sudo service asterisk start
$ sudo asterisk -rvv

Hauríeu de veure una sortida similar a aquesta:

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 voleu veure una llista d'ordres disponibles, escriviu:

asterisk*CLI> core show help

Per sortir de l'indicador Asterisk, simplement escriviu:

asterisk*CLI> exit

Asterisk encara s'executarà en segon pla.

Ara teniu un servidor Asterisk en funcionament i podeu començar a connectar telèfons i extensions i ajustar la vostra configuració segons les vostres necessitats. Per obtenir més detalls sobre com aconseguir-ho, es recomana utilitzar la pàgina Viqui d'Asterisk. Si teniu cap pregunta o comentari, feu-nos-ho saber a la secció de comentaris a continuació.