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.