Cum se instalează Asterisk pe CentOS/RHEL 8/7


Asterisk este un cadru open source utilizat pentru construirea de aplicații de comunicare. Îl puteți folosi pentru a transforma un computer sau un server local în serverul de comunicații. Este folosit pentru alimentarea sistemelor IP PBX, gateway-uri VoIP, servere de conferințe și alte soluții. Este folosit de toate tipurile de organizații din întreaga lume și, în cele din urmă, dar nu în ultimul rând, este gratuit și open source.

În acest tutorial, vă vom arăta cum să instalați Asterisk pe CentOS 8/7 (instrucțiunile funcționează și pe RHEL 8/7) , dar înainte de a începe, va trebui să facem câteva pregătiri, astfel încât Asterisk să poată rula fără probleme după instalare.

Pasul 1: Dezactivați SELinux pe CentOS

Pentru a face acest lucru, accesați SSH pe sistemul dvs. și folosind editorul de text preferat în linia de comandă, deschideți /etc/selinux/config și dezactivați SELINUX.

# vim /etc/selinux/config

Linia SELinux ar trebui să arate astfel:

SELINUX=disabled

Acum reporniți sistemul. Odată ce se întoarce SSH din nou la acel sistem.

Pasul 2: Instalați pachetele necesare

Asterisk are destul de multe cerințe care trebuie instalate. Puteți utiliza următoarea comandă yum pentru a instala pachetele necesare, așa cum se arată.

# 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

Înainte de a continua, creați un nou utilizator cu privilegii sudo numit „asterisc“, vom folosi acest utilizator pentru a configura asterisc pe sistem.

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

Apoi, instalați PJSIP, este o bibliotecă de comunicații multimedia cu sursă deschisă gratuită care implementează protocoale standard, cum ar fi SIP,SDP,RTP,STUN,TURN și ICE. Este driverul de canal Asterisk SIP care ar trebui să îmbunătățească claritatea apelurilor.

Pentru a obține cea mai recentă versiune, mai întâi să creăm un director temporar în care vom construi pachetul din sursă.

$ mkdir ~/build && cd ~/build

Acum mergeți la comanda wget pentru a descărca pachetul direct în terminal.

Rețineți că, până la scrierea acestui articol, cea mai recentă versiune este 2.8, aceasta se poate schimba în viitor, prin urmare asigurați-vă că utilizați cea mai recentă versiune:

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

Odată ce descărcarea este completă, extrageți fișierul și treceți la acel director.

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

Următorul pas este pregătirea pachetului care urmează să fie compilat. Puteți folosi următoarea comandă:

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

Nu ar trebui să vedeți erori sau avertismente. Asigurați-vă că toate dependențele sunt îndeplinite:

$ make dep

Și acum putem finaliza instalarea și legarea bibliotecilor cu:

$ make && sudo make install && sudo ldconfig

În cele din urmă, asigurați-vă că toate bibliotecile sunt instalate și prezente:

$ ldconfig -p | grep pj

Ar trebui să obțineți următorul rezultat:

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

Pasul 3: Instalați Asterisk pe CentOS 8/7

Acum suntem gata să inițiem instalarea Asterisk. Navigați înapoi la directorul nostru ~/build:

$ cd ~/build

Accesați comanda wget pentru a descărca fișierul în terminal.

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

La scrierea acestui tutorial, cea mai recentă versiune Asterisk este 16. Asigurați-vă că descărcați cea mai recentă versiune de Asterisk atunci când urmați pașii.

Acum extrageți arhiva și navigați la directorul nou creat:

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

Acesta este momentul să menționăm că, dacă doriți să activați suportul mp3 pentru a reda muzică în timp ce clientul este în așteptare, va trebui să instalați încă câteva dependențe. Acești pași sunt opționali:

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

După al doilea pas, ar trebui să obțineți rezultate similare cu acestea:

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.

Începeți prin a rula scriptul de configurare pentru a pregăti pachetul pentru compilare:

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

Dacă aveți dependențe lipsă pentru a le instala. În cazul meu, am primit următoarea eroare:

configure: error: patch is required to configure bundled pjproject

Pentru a ocoli acest lucru pur și simplu rulați:

# yum install patch 

Și rulați din nou scriptul de configurare. Dacă totul a decurs perfect, fără erori, veți vedea următoarea captură de ecran.

Acum, să începem procesul de construire:

$ make menuselect

După câteva secunde, ar trebui să obțineți o listă de funcții de activat:

Dacă încercați să utilizați funcția de muzică în așteptare, va trebui să activați funcția „format_mp3” din secțiunea „Suplimente”. Salvați lista și executați următoarea comandă:

$ make && sudo make install

Pentru a instala exemplele de fișiere de configurare, utilizați comanda de mai jos:

$ sudo make samples

Pentru a porni Asterisk la pornire, utilizați:

$ sudo make config

Actualizați proprietatea următoarelor directoare și fișiere:

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

În cele din urmă, să ne testăm instalația cu:

$ sudo service asterisk start
$ sudo asterisk -rvv

Ar trebui să vedeți o ieșire similară cu aceasta:

Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <>
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>

Dacă doriți să vedeți o listă de comenzi disponibile, tastați:

asterisk*CLI> core show help

Pentru a ieși din promptul Asterisk, tastați pur și simplu:

asterisk*CLI> exit

Asterisk va rula în continuare în fundal.

Concluzie

Acum aveți un server Asterisk care rulează și puteți începe să conectați telefoane și extensii și să vă ajustați configurația în funcție de nevoile dvs. Pentru mai multe detalii despre cum să realizați acest lucru, vă recomandăm să utilizați pagina Asterisk Wiki. Dacă aveți întrebări sau comentarii, vă rugăm să ne spuneți în secțiunea de comentarii de mai jos.