Nota
L'ultima versione di Rocky Linux su cui è stata testata questa procedura è stata la versione 8.5. Poiché la maggior parte di questa procedura si basa sulla compilazione dei sorgenti direttamente da Asterisk e su un semplice set di strumenti di sviluppo di Rocky Linux, dovrebbe funzionare su tutte le versioni. Se riscontrate un problema, fatecelo sapere!
Installazione di Asterisk su Rocky Linux¶
Che cos'è Asterisk?
Asterisk è un framework open source per la creazione di applicazioni di comunicazione. Inoltre, Asterisk trasforma un normale computer in un server di comunicazione, oltre ad alimentare sistemi IP PBX, gateway VoIP, server per conferenze e altre soluzioni personalizzate. È utilizzato da piccole imprese, grandi aziende, call center, vettori e agenzie governative in tutto il mondo.
Asterisk è gratuito e open source ed è sponsorizzato da Sangoma. Sangoma offre anche prodotti commerciali che utilizzano Asterisk come base, a seconda della vostra esperienza e del vostro budget, l'utilizzo di questi prodotti potrebbe essere più vantaggioso rispetto alla creazione di un proprio sistema. Solo voi e la vostra organizzazione conoscete la risposta.
Va notato che questa guida richiede che l'amministratore faccia una discreta quantità di ricerche per conto proprio. L'installazione di un server di comunicazione non è un processo difficile, ma la sua gestione può essere piuttosto complicata. Sebbene questa guida renda il vostro server operativo, non sarà completamente pronto per l'uso in produzione.
Prerequisiti¶
Per completare questa guida sono necessarie almeno le seguenti competenze e strumenti:
- Una macchina con Rocky Linux
- Un livello di comfort nella modifica dei file di configurazione e nell'emissione di comandi dalla riga di comando
- Conoscenza dell'uso di un editor a riga di comando (qui usiamo
vi
, ma potete sostituirlo con il vostro editor preferito) - È necessario avere accesso a root e, idealmente, essere registrati come utente root nel proprio terminale
- I repository EPEL di Fedora
- La possibilità di accedere come root o di eseguire comandi di root con sudo. Tutti i comandi qui presenti presuppongono un utente con diritti sudo, ma i processi di configurazione e di compilazione vengono eseguiti con
sudo -s
. - Per ottenere l'ultima versione di Asterisk, è necessario utilizzare
curl
owget
. Questa guida utilizzawget
, ma se si desidera utilizzare la stringacurl
appropriata, è possibile sostituirla.
Aggiornare Rocky Linux e installare wget
¶
sudo dnf -y update
In questo modo il server verrà aggiornato con tutti i pacchetti rilasciati o aggiornati dall'ultimo aggiornamento o installazione. Quindi eseguire:
sudo dnf install wget
Impostare l'Hostname¶
Impostate il vostro hostname sul dominio che userete per Asterisk.
sudo hostnamectl set-hostname asterisk.example.com
Aggiungere i repository necessari¶
Per prima cosa, installare EPEL (Extra Packages for Enterprise Linux):
sudo dnf -y install epel-release
Quindi, attivare i PowerTools di Rocky Linux:
sudo dnf config-manager --set-enabled powertools
Installare gli strumenti di sviluppo¶
sudo dnf group -y install "Development Tools"
sudo dnf -y install git wget
Installare Asterisk¶
Scaricare e configurare la build di Asterisk¶
Prima di scaricare questo script, assicuratevi di avere la versione più recente. Per farlo, visitate il link per il download di Asterisk qui e cercate l'ultima versione di Asterisk. Quindi copiate la posizione del link. Al momento della stesura di questo documento, la build più recente era la seguente:
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
tar xvfz asterisk-20-current.tar.gz
cd asterisk-20.0.0/
Prima di eseguire il comando install_prereq
(e gli altri comandi), è necessario essere superutente o root. A questo punto è molto più facile entrare in sudo in modo permanente per un po'. Usciremo da sudo più avanti nel processo:
sudo -s
contrib/scripts/install_prereq install
Al termine dello script si dovrebbe vedere quanto segue:
#############################################
## install completed successfully
#############################################
Ora che tutti i pacchetti necessari sono installati, il prossimo passo è configurare e costruire Asterisk:
./configure --libdir=/usr/lib64 --with-jansson-bundled=yes
Supponendo che la configurazione venga eseguita senza problemi, si dovrebbe ottenere un grande emblema ASCII di Asterisk, seguito dal seguente messaggio su Rocky Linux:
configure: Package configured for:
configure: OS type : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :
Set Asterisk menu options [For more options]¶
Questa è una delle fasi in cui l'amministratore deve fare i compiti a casa. Ci sono molte opzioni di menu che possono essere necessarie o meno. Eseguire il seguente comando:
make menuselect
si aprirà una schermata di selezione del menu:
Esaminate attentamente queste opzioni e scegliete in base alle vostre esigenze. Come già detto, potrebbe essere necessario un ulteriore lavoro a casa.
Creare e Installare Asterisk¶
Per costruire, vogliamo eseguire i seguenti comandi in successione:
make
make install
L'installazione della documentazione non è obbligatoria, ma a meno che non siate esperti di server di comunicazione, è consigliabile installarla:
make progdocs
Quindi installare il PBX di base e configurare il sistema. Il PBX di base è proprio questo, molto semplice! Probabilmente sarà necessario apportare delle modifiche per far funzionare il PBX come si desidera.
make basic-pbx
make config
Configurazione di Asterisk¶
Creare un Utente e un Gruppo¶
Avrete bisogno di un utente specifico solo per asterisk. Tanto vale crearlo subito.
groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk
restorecon -vr {/etc/asterisk,/var/lib/asterisk,/var/log/asterisk,/var/spool/asterisk}
Ora che la maggior parte del lavoro è stata completata, si può uscire dal comando sudo -s
. Questo richiederà che la maggior parte dei comandi rimanenti utilizzino nuovamente sudo:
exit
Impostare Utente e Gruppo Predefiniti¶
sudo vi /etc/sysconfig/asterisk
Rimuovere i commenti nelle due righe sottostanti e salvare:
AST_USER="asterisk"
AST_GROUP="asterisk"
sudo vi /etc/asterisk/asterisk.conf
Rimuovere i commenti nelle due righe sottostanti e salvare:
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
Configurare il Servizio Asterisk¶
sudo systemctl enable asterisk
Configurare il Firewall¶
Questo esempio utilizza firewalld
per il firewall, che è quello predefinito in Rocky Linux. L'obiettivo è quello di aprire le porte SIP al mondo e di aprire RTP (Realtime Transport Protocol) al mondo sulle porte 10000-20000, come raccomandato dalla documentazione di Asterisk.
Tenete presente che quasi certamente avrete bisogno di altre regole firewall per altri servizi forward-facing (HTTP/HTTPS) che probabilmente vorrete limitare ai vostri indirizzi IP. Ciò esula dallo scopo di questo documento:
sudo firewall-cmd --zone=public --add-service sip --permanent
sudo firewall-cmd --zone=public --add-port=10000-20000/udp --permanent
Poiché abbiamo reso permanenti i comandi di firewalld
, dovremo riavviare il server. È possibile farlo con:
sudo shutdown -r now
Test¶
La Console Asterisk¶
Per verificare, colleghiamoci alla console di Asterisk:
sudo asterisk -r
Questo vi porterà al client a riga di comando di Asterisk. Questo prompt viene visualizzato dopo la visualizzazione delle informazioni di base di Asterisk:
asterisk*CLI>
Per modificare la verbosità della console, utilizzare la seguente procedura:
core set verbose 4
La console di Asterisk dovrebbe mostrare quanto segue:
Console verbose was OFF and is now 4.
Mostra Esempi di Autenticazione End-Point¶
Al prompt del client a riga di comando Asterisk, digitare:
pjsip show auth 1101
Questo restituisce informazioni sul nome utente e sulla password che possono essere utilizzate per connettersi a qualsiasi client SIP.
Conclusione¶
Le indicazioni di cui sopra vi permetteranno di essere operativi con il server, ma la configurazione finale, il collegamento dei dispositivi e l'ulteriore risoluzione dei problemi dipendono da voi.
La gestione di un server di comunicazione Asterisk richiede molto tempo e impegno e richiede molte ricerche da parte di qualsiasi amministratore. Per ulteriori informazioni su come configurare e utilizzare Asterisk, consultate il Wiki Asterisk qui.
Contributors: Steven Spencer, Ganna Zhyrnova