Ricerca nel sito web

Come installare Asterisk su CentOS/RHEL 8/7


Asterisk è un framework open source utilizzato per creare applicazioni di comunicazione. Puoi usarlo per trasformare un computer o un server locale in un server di comunicazione. Viene utilizzato per alimentare sistemi IP PBX, gateway VoIP, server per conferenze e altre soluzioni. È utilizzato da tutti i tipi di organizzazioni in tutto il mondo e, infine, ma non ultimo, è gratuito e open source.

In questo tutorial, ti mostreremo come installare Asterisk su CentOS 8/7 (le istruzioni funzionano anche su RHEL 8/7) , ma prima di iniziare, dovremo fare alcuni preparativi affinché Asterisk possa funzionare senza problemi dopo l'installazione.

Passaggio 1: disabilita SELinux su CentOS

Per fare ciò, accedi tramite SSH al tuo sistema e, utilizzando il tuo editor di testo a riga di comando preferito, apri /etc/selinux/config e disabilita SELINUX.

vim /etc/selinux/config

La linea SELinux dovrebbe assomigliare a questa:

SELINUX=disabled

Ora riavvia il sistema. Una volta tornato di nuovo SSH su quel sistema.

Passaggio 2: installare i pacchetti richiesti

Asterisk ha alcuni requisiti che devono essere installati. È possibile utilizzare il seguente comando yum per installare i pacchetti richiesti come mostrato.

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

Prima di continuare oltre, crea un nuovo utente con privilegi sudo chiamato "asterisco", utilizzeremo questo utente per impostare asterisco sul sistema.

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

Successivamente, installa PJSIP, è una libreria di comunicazione multimediale open source gratuita che implementa protocolli basati su standard come SIP,SDP,RTP,STUN,TURN e ICE. È il driver del canale Asterisk SIP che dovrebbe migliorare la chiarezza delle chiamate.

Per ottenere la versione più recente, creiamo prima una directory temporanea in cui creeremo il pacchetto dal sorgente.

mkdir ~/build && cd ~/build

Ora vai alla pagina di download di PJSIP e prendi il pacchetto o usa il seguente comando wget per scaricare il pacchetto direttamente nel terminale.

Tieni presente che al momento della stesura di questo articolo l'ultima versione è 2.8, questa potrebbe cambiare in futuro, quindi assicurati di utilizzare la versione più recente:

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

Una volta completato il download, estrai il file e passa a quella directory.

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

Il passo successivo è preparare il pacchetto da compilare. È possibile utilizzare il seguente comando:

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

Non dovresti vedere alcun errore o avviso. Assicurati che tutte le dipendenze siano soddisfatte:

make dep

E ora possiamo completare l'installazione e il collegamento delle librerie con:

make && sudo make install && sudo ldconfig

Infine, assicurati che tutte le librerie siano installate e presenti:

ldconfig -p | grep pj

Dovresti ottenere il seguente output:

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

Passaggio 3: installa Asterisk su CentOS 8/7

Ora siamo pronti per avviare l'installazione di Asterisk. Torna alla nostra directory ~/build:

cd ~/build

Vai alla pagina di download di Asterisk e prendi la versione più recente oppure puoi utilizzare il seguente comando wget per scaricare il file nel terminale.

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

Al momento della stesura di questo tutorial, l'ultima versione di Asterisk è 16. Assicurati di scaricare l'ultima versione di Asterisk mentre segui i passaggi.

Ora estrai l'archivio e vai alla directory appena creata:

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

Questo è il momento di menzionare che se desideri abilitare il supporto mp3 per riprodurre musica mentre il client è in attesa, dovrai installare alcune altre dipendenze. Questi passaggi sono facoltativi:

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

Dopo il secondo passaggio, dovresti ottenere un output simile a questo:

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.

Inizia eseguendo lo script configure per preparare il pacchetto per la compilazione:

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

Se ottieni dipendenze mancanti per installarle. Nel mio caso, ho ricevuto il seguente errore:

configure: error: patch is required to configure bundled pjproject

Per aggirare questo problema è sufficiente eseguire:

yum install patch 

Ed eseguire nuovamente lo script di configurazione. Se tutto è andato perfettamente senza errori, vedrai la seguente schermata.

Ora iniziamo il processo di creazione:

make menuselect

Dopo alcuni secondi, dovresti ottenere un elenco di funzionalità da abilitare:

Se provi a utilizzare la funzione musica di attesa, dovrai abilitare la funzione "format_mp3" dalla sezione "Componenti aggiuntivi". Salva la tua lista ed esegui il seguente comando:

make && sudo make install

Per installare i file di configurazione di esempio, utilizzare il comando seguente:

sudo make samples

Per avviare Asterisk all'avvio, utilizzare:

sudo make config

Aggiorna la proprietà delle directory e dei file seguenti:

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

Infine, testiamo la nostra installazione con:

sudo service asterisk start
sudo asterisk -rvv

Dovresti vedere un output simile a questo:

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>

Se vuoi vedere l'elenco dei comandi disponibili digita:

asterisk*CLI> core show help

Per uscire dal prompt dell'asterisco, digitare semplicemente:

asterisk*CLI> exit

Asterisk continuerà a funzionare in background.

Conclusione

Ora hai un server Asterisk in esecuzione e puoi iniziare a connettere telefoni ed interni e adattare la configurazione in base alle tue esigenze. Per maggiori dettagli su come raggiungere questo obiettivo, si consiglia di utilizzare la pagina Wiki di Asterisk. Se avete domande o commenti, fatecelo sapere nella sezione commenti qui sotto.