Kako instalirati Asterisk na CentOS/RHEL 8/7


Asterisk je okvir otvorenog koda koji se koristi za izgradnju komunikacijskih aplikacija. Možete ga koristiti za pretvaranje lokalnog računala ili servera u komunikacijski server. Koristi se za napajanje IP PBX sistema, VoIP gatewaya, konferencijskih servera i drugih rješenja. Koriste ga sve vrste organizacija širom svijeta i konačno, ali ne i posljednje, besplatan je i otvorenog koda.

U ovom vodiču ćemo vam pokazati kako instalirati Asterisk na CentOS 8/7 (uputstva također rade na RHEL 8/7) , ali prije nego što počnemo, morat ćemo izvršiti neke pripreme kako bi Asterisk mogao nesmetano raditi nakon instalacije.

Korak 1: Onemogućite SELinux na CentOS-u

Da biste to učinili, spojite SSH na svoj sistem i pomoću svog omiljenog uređivača teksta komandne linije otvorite /etc/selinux/config i onemogućite SELINUX.

vim /etc/selinux/config

SELinux linija bi trebala izgledati ovako:

SELINUX=disabled

Sada ponovo pokrenite sistem. Kada se ponovo vrati SSH na taj sistem.

Korak 2: Instalirajte potrebne pakete

Asterisk ima dosta zahtjeva koje treba instalirati. Možete koristiti sljedeću yum komandu da instalirate potrebne pakete kao što je prikazano.

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

Prije nego što nastavimo dalje, kreirajte novog korisnika sa sudo privilegijama pod nazivom “asterisk“, koristit ćemo ovog korisnika za postavljanje asterisk na sistemu.

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

Zatim instalirajte PJSIP, besplatnu multimedijalnu komunikacionu biblioteku otvorenog koda koja implementira standardne protokole kao što su SIP,SDP,RTP,STUN,TURN i ICE. To je drajver kanala Asterisk SIP koji bi trebao poboljšati jasnoću poziva.

Da bismo dobili najnoviju verziju, prvo napravimo privremeni direktorij u koji ćemo napraviti paket iz izvora.

mkdir ~/build && cd ~/build

Sada idite na stranicu za preuzimanje PJSIP i zgrabite paket ili koristite sljedeću naredbu wget da preuzmete paket direktno u terminal.

Imajte na umu da je pisanjem ovog članka najnovija verzija 2.8, to se može promijeniti u budućnosti, stoga obavezno koristite najnoviju verziju:

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

Kada se preuzimanje završi, raspakirajte datoteku i promijenite je u taj direktorij.

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

Sljedeći korak je priprema paketa za sastavljanje. Možete koristiti sljedeću naredbu:

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

Ne biste trebali vidjeti greške ili upozorenja. Osigurajte da su ispunjene sve zavisnosti:

make dep

I sada možemo dovršiti instalaciju i povezivanje biblioteka sa:

make && sudo make install && sudo ldconfig

Konačno, uvjerite se da su sve biblioteke instalirane i prisutne:

ldconfig -p | grep pj

Trebali biste dobiti sljedeći izlaz:

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

Korak 3: Instalirajte Asterisk na CentOS 8/7

Sada smo spremni da započnemo instalaciju Asterisk-a. Vratite se na naš ~/build direktorij:

cd ~/build

Idite na stranicu za preuzimanje Asterisk i uzmite najnoviju verziju ili možete koristiti sljedeću naredbu wget da preuzmete datoteku u terminalu.

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

Prema pisanju ovog uputstva, najnovija verzija Asterisk je 16. Uvjerite se da preuzimate najnoviju verziju Asterisk-a kada slijedite korake.

Sada raspakirajte arhivu i idite do novostvorenog direktorija:

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

Ovo je trenutak da napomenemo da ako želite da omogućite podršku za mp3 za reprodukciju muzike dok je klijent na čekanju, moraćete da instalirate još nekoliko zavisnosti. Ovi koraci su izborni:

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

Nakon drugog koraka, trebali biste dobiti izlaz sličan ovome:

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.

Započnite pokretanjem skripte za konfiguriranje da pripremite paket za kompajliranje:

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

Ako dobijete nedostajuće zavisnosti da ih instalirate. U mom slučaju, dobio sam sljedeću grešku:

configure: error: patch is required to configure bundled pjproject

Za obilazak ovoga jednostavno pokrenite:

yum install patch 

I ponovo pokrenite skriptu za konfiguraciju. Ako je sve prošlo savršeno bez grešaka, vidjet ćete sljedeći snimak ekrana.

Sada, započnimo proces izgradnje:

make menuselect

Nakon nekoliko sekundi, trebali biste dobiti listu funkcija koje treba omogućiti:

Ako pokušate da koristite funkciju muzike na čekanju, morat ćete omogućiti funkciju “format_mp3 ” iz odjeljka “Dodaci”. Sačuvajte svoju listu i pokrenite sljedeću naredbu:

make && sudo make install

Da biste instalirali uzorke konfiguracijskih datoteka, koristite naredbu u nastavku:

sudo make samples

Da pokrenete Asterisk pri pokretanju, koristite:

sudo make config

Ažurirajte vlasništvo nad sljedećim direktorijima i datotekama:

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

Na kraju, testirajmo našu instalaciju sa:

sudo service asterisk start
sudo asterisk -rvv

Trebali biste vidjeti izlaz sličan ovom:

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>

Ako želite da vidite listu dostupnih komandi upišite:

asterisk*CLI> core show help

Da biste izašli iz Asterisk prompta, jednostavno upišite:

asterisk*CLI> exit

Asterisk će i dalje raditi u pozadini.

Zaključak

Sada imate pokrenut Asterisk server i možete započeti povezivanje telefona i ekstenzija i prilagoditi svoju konfiguraciju prema vašim potrebama. Za više detalja kako to postići, preporučuje se korištenje Asterisk Wiki stranice. Ako imate bilo kakvih pitanja ili komentara, javite nam u odeljku za komentare ispod.