Questo articolo descriverà come installare il software di comunicazione open source Asterisk su RHEL 8 / CentOS 8; poiché Asterisk e altre importanti dipendenze non sono disponibili come pacchetti RPM dai repository, è necessario compilarli dai sorgenti.
In questo tutorial imparerai:
- Quali sono i prerequisiti per installare Asterisk
- Come compilare Asterisk dai sorgenti
- Come avviare Asterisk
- Come riconfigurare o rimuovere Asterisk
- Come accedere all'interfaccia della riga di comando di Asterisk
Output di avvio del servizio di sistema Asterisk su RHEL 8 / CentOS 8
Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | RHEL 8 / CentOS 8 |
Software | Asterisco, pjsip, libedit |
Altro | repository locali o remoti configurati; data e fuso orario di sistema corretti. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Introduzione
Asterisk è un software PBX (Private Branch Exchange) open source e, come tale, il suo scopo principale è quello di stabilire e controllare le chiamate telefoniche tra vari sistemi, tramite linee PSTN tradizionali o moderni endpoint VoIP.
In questa guida ci assicureremo verrà installato in RHEL 8 / CentOS 8 insieme ai componenti comuni.
Installazione di Asterisk su RHEL 8 / CentOS 8 – passo dopo passo.
Metteremo l'ultima versione:la 16.3.0 al momento della stesura di questo tutorial.
- Prerequisiti
Abbiamo bisogno di installare i seguenti pacchetti, incluso
systemd-devel
se vogliamo avviare Asterisk come servizio systemd.# dnf -y install wget bzip2 tar sqlite-devel ncurses-devel systemd-devel
E per sviluppare dalle fonti:
# dnf -y install binutils gcc gcc-c++ kernel-devel autoconf automake libtool
D'ora in poi dobbiamo installare tutto dai sorgenti, quindi facciamolo da una cartella comune
# mkdir -p /root/src && cd /root/src
Per prima cosa compileremo
libedit
, una sostituzione o un'alternativa alla modifica della riga di comando della riga di comando GNU.# cd /root/src # wget http://thrysoee.dk/editline/libedit-20190324-3.1.tar.gz # tar xzvf libedit-20190324-3.1.tar.gz # cd libedit-20190324-3.1 # ./configure && make && make install
- Installazione di componenti opzionali
I seguenti componenti sono opzionali, ma in uno scenario reale sono molto spesso necessari.DAHDI
(Digium/Asterisk Hardware Device Interface):è un framework per interfacciarsi con le schede di telefonia digitale in Asterisk.
Installiamolo.# cd /root/src # wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz # tar zxvf dahdi-linux-complete-current.tar.gz && cd dahdi-linux-complete-3.0.0+3.0.0 # make all && make install && make install-config # cd /etc/dahdi && cp system.conf.sample system.conf # systemctl enable dahdi && systemctl start dahdi # modprobe dahdi # modprobe dahdi_transcode
LibPRI è una libreria che aggiunge il supporto per ISDN (PRI e BRI), fondamentalmente è necessaria se si installa una scheda ISDN per comunicare con i sistemi legacy.
Per installarlo:
# cd /root/src/ # wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.6.0.tar.gz # tar xzvf libpri-1.6.0 && cd libpri-1.6.0 # make && make install
- Installazione di Asterisk
Ora è il momento di compilare l'applicazione principale dai sorgenti, come accennato.
Questo installerà anche la libreria SIPpjsip
nel sistema.# cd /root/src/ # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16.3.0.tar.gz # tar xzvf asterisk-16.3.0.tar.gz # wget https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.8/pjproject-2.8.tar.bz2 # mv pjproject-2.8.tar.bz2 /tmp # cd asterisk-16.3.0 # ./configure # make && make install && make install-logrotate
Con
make install-logrotate
ci assicuriamo che i file di registro dell'applicazione vengano ruotati. - Configurazione di Asterisk
In Asterisk ci sono molti file di configurazione, il principale èasterisk.conf
; per installare una versione predefinita di tutti loro dobbiamo eseguire:# cd /root/src/asterisk-16.3.0/ # make samples
A questo punto, poiché alcuni moduli o funzionalità richiedono ulteriori configurazioni o dipendenze, è meglio disabilitarli.
Tuttavia, questo non è obbligatorio, non sono componenti essenziali che impediscono l'avvio di Asterisk.#cd /etc/asterisk # cp modules.conf modules.conf.org # echo "noload => res_config_ldap.so" >>modules.conf # echo "noload => res_pjsip_transport_websocket.so" >>modules.conf # echo "noload => cdr_sqlite3_custom.so" >>modules.conf # echo "noload => cel_sqlite3_custom.so" >>modules.conf # echo "noload => res_config_sqlite3.so" >>modules.conf # echo "noload => cdr_pgsql.so" >>modules.conf # echo "noload => cel_pgsql.so" >>modules.conf # echo "noload => res_config_pgsql.so" >>modules.conf sed -i.org 's/enabled = yes/enabled = no/' ari.conf
Successivamente è il momento di preparare i file del servizio systemd:
# cd /root/src/asterisk-16.3.0/contrib/systemd # cp asterisk* /usr/lib/systemd/system
Il servizio Asterisk dovrebbe essere eseguito come un utente normale, per motivi di sicurezza, quindi è necessario aggiungere un ID servizio che si chiamerà
asterisk
come specificato nel file di configurazione di systemd.# useradd -m -c "asterisk user"
Quindi cambiamo alcuni permessi:
chown -R asterisk:asterisk /var/log/asterisk/* chown asterisk:asterisk /var/log/asterisk/.
- Avviare Asterisk
SELinux impedirà l'avvio di Asterisk, quindi lo stiamo mettendo inpermissive mode
per semplicità.# setenforce 0 # sed -i.org 's/enforcing/permissive/' /etc/sysconfig/selinux
Finalmente possiamo avviare Asterisk
# systemctl enable asterisk # systemctl start asterisk
Puoi anche eseguire Asterisk direttamente senza systemd emettendo:
# /usr/sbin/asterisk -mqf -C /etc/asterisk/asterisk.conf
o meglio
# asterisk -vvvc
per ottenere informazioni dettagliate.
Output di asterisco quando lanciato direttamente - Riconfigurazione di Asterisk
È possibile in qualsiasi momento riconfigurare Astering rimuovendo o (ri)aggiungendo qualsiasi funzionalità.
Basta interrompere il servizio, passare alla cartella di origine ed eseguiremake menuselect
. Seleziona dal menu asterisco# systemctl stop asterisk # cd /root/src/asterisk-16.3.0/ # make menuselect
Se sono state apportate modifiche è necessario salvare la configurazione prima di uscire dal menu di selezione del menu.
Dopo è necessario ricompilare nuovamente Asterisk come spiegato sopra. È meglio apportare prima qualsiasi modifica in un ambiente di test. - Rimozione di Asterik
Se è necessario rimuovere Asterisk dal sistema, inclusi Dahdi e libpri, ecco i passaggi:# systemctl stop dahdi # systemctl stop asterisk # cd /root/src/asterisk-16.3.0 # make uninstall-all cd /root/src/libpri-1.6.0 && make uninstall
- Accesso alla CLI di Asterisk
Questo software ha anche la sua shell, per accedervi – una volta avviato Asterisk – dobbiamo digitare:# asterisk -r
Asterisco CLI
Conclusione
Abbiamo compilato con successo Asterisk dai sorgenti e l'abbiamo avviato, tuttavia non è sufficiente ottenere un ambiente di lavoro; in genere dopo l'installazione aggiungerai i tuoi endpoint SIP modificando il file di configurazione sip.conf
– o tramite la CLI menzionata – e configurare qualsiasi estensione nel file extensions.conf
. Entrambi i file sono in /etc/asterisk.