Dieser Artikel beschreibt, wie Sie die Open-Source-Kommunikationssoftware Asterisk auf RHEL 8 / CentOS 8 installieren; aufgrund der Tatsache, dass Asterisk und andere wichtige Abhängigkeiten nicht als RPM-Pakete aus den Repositories verfügbar sind, müssen sie aus den Quellen kompiliert werden.
In diesem Tutorial lernen Sie:
- Welches sind die Voraussetzungen für die Installation von Asterisk
- Wie man Asterisk aus Quellen kompiliert
- So starten Sie Asterisk
- Wie man Asterisk neu konfiguriert oder entfernt
- Zugriff auf die Asterisk-Befehlszeilenschnittstelle
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042507200422.png)
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | RHEL 8 / CentOS 8 |
Software | Asterisk, pjsip, libedit |
Andere | lokale oder entfernte Repositories konfiguriert; korrektes Systemdatum und Zeitzone. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Einführung
Asterisk ist eine Open-Source-PBX-Software (Private Branch Exchange) und als solche besteht ihr Hauptzweck darin, Telefonanrufe zwischen verschiedenen Systemen über traditionelle PSTN-Leitungen oder moderne VoIP-Endpunkte aufzubauen und zu steuern.
In diesem Leitfaden werden wir dafür sorgen Es wird zusammen mit gemeinsamen Komponenten in RHEL 8 / CentOS 8 installiert.
Asterisk auf RHEL 8 / CentOS 8 installieren – Schritt für Schritt.
Wir werden die letzte Version – die 16.3.0 – zum Zeitpunkt des Schreibens dieses Tutorials bereitstellen.
- Voraussetzungen
Wir müssen die folgenden Pakete einschließlich
systemd-devel
installieren wenn wir Asterisk als Systemdienst starten wollen.# dnf -y install wget bzip2 tar sqlite-devel ncurses-devel systemd-devel
Und aus Quellen entwickeln:
# dnf -y install binutils gcc gcc-c++ kernel-devel autoconf automake libtool
Von nun an müssen wir alles aus den Quellen installieren, also tun wir es aus einem gemeinsamen Ordner
# mkdir -p /root/src && cd /root/src
Zuerst werden wir
libedit
kompilieren , ein Ersatz oder eine Alternative zur GNU readline-Befehlszeilenbearbeitung.# 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
- Optionale Komponenten installieren
Die folgenden Komponenten sind optional, werden aber in einem realen Szenario sehr oft benötigt.DAHDI
(Digium/Asterisk Hardware Device Interface):Es ist ein Framework für die Verbindung mit digitalen Telefoniekarten in Asterisk.
Lass es uns installieren.# 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 ist eine Bibliothek, die Unterstützung für ISDN (PRI und BRI) hinzufügt und grundsätzlich benötigt wird, wenn eine ISDN-Karte installiert wird, um mit Legacy-Systemen zu kommunizieren.
So installieren Sie es:
# 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
- Asterisk installieren
Jetzt ist es an der Zeit, die Hauptanwendung aus den Quellen zu kompilieren – wie erwähnt.
Dadurch wird auch die SIP-Bibliothekpjsip
installiert in das System.# 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
Mit
make install-logrotate
wir stellen sicher, dass die Anwendungsprotokolldateien rotiert werden. - Asterisk konfigurieren
In Asterisk gibt es viele Konfigurationsdateien, die wichtigste istasterisk.conf
; Um eine Standardversion von allen zu installieren, müssen wir Folgendes ausführen:# cd /root/src/asterisk-16.3.0/ # make samples
Da einige Module oder Funktionen weitere Konfigurationen oder Abhängigkeiten erfordern, ist es an dieser Stelle besser, sie zu deaktivieren.
Dies ist jedoch nicht zwingend erforderlich, sie sind keine wesentlichen Komponenten, die den Start von Asterisk verhindern.#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
Danach ist es an der Zeit, die systemd-Dienstdateien vorzubereiten:
# cd /root/src/asterisk-16.3.0/contrib/systemd # cp asterisk* /usr/lib/systemd/system
Der Asterisk-Dienst sollte aus Sicherheitsgründen als normaler Benutzer ausgeführt werden, daher müssen wir eine Dienst-ID mit dem Namen
asterisk
hinzufügen wie in der systemd-Konfigurationsdatei angegeben.# useradd -m -c "asterisk user"
Dann ändern wir einige Berechtigungen:
chown -R asterisk:asterisk /var/log/asterisk/* chown asterisk:asterisk /var/log/asterisk/.
- Das Starten von Asterisk
SELinux verhindert das Starten von Asterisk, also versetzen wir es in denpermissive mode
der Einfachheit halber.# setenforce 0 # sed -i.org 's/enforcing/permissive/' /etc/sysconfig/selinux
Endlich können wir Asterisk starten
# systemctl enable asterisk # systemctl start asterisk
Sie können Asterisk auch direkt ohne systemd ausführen, indem Sie Folgendes eingeben:
# /usr/sbin/asterisk -mqf -C /etc/asterisk/asterisk.conf
oder besser
# asterisk -vvvc
um ausführliche Informationen zu erhalten.
Asterisk-Ausgabe bei direktem Start
- Neukonfiguration von Asterisk
Es ist jederzeit möglich, Astering neu zu konfigurieren, indem Sie beliebige Funktionen entfernen oder (erneut) hinzufügen.
Stoppen Sie einfach den Dienst, wechseln Sie in den Quellordner und führen Siemake menuselect
.Sternchenmenü auswählen
# systemctl stop asterisk # cd /root/src/asterisk-16.3.0/ # make menuselect
Wenn Sie Änderungen vorgenommen haben, müssen Sie die Konfiguration speichern, bevor Sie das Menü verlassen.
Danach muss Asterisk wie oben beschrieben erneut kompiliert werden. Es ist besser, Änderungen zuerst in einer Testumgebung vorzunehmen. - Asterik entfernen
Falls Sie jemals Asterisk vom System entfernen müssen – einschließlich Dahdi und libpri – hier sind die Schritte:# 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
- Zugriff auf Asterisk CLI
Diese Software hat auch ihre Shell, um darauf zuzugreifen – sobald Asterisk gestartet ist – müssen wir Folgendes eingeben:# asterisk -r
Asterisk-CLI
Schlussfolgerung
Wir haben Asterisk erfolgreich aus den Quellen kompiliert und gestartet, aber es reicht nicht, um eine Arbeitsumgebung zu bekommen; Normalerweise fügen Sie nach der Installation Ihre SIP-Endpunkte hinzu, indem Sie die Konfigurationsdatei sip.conf
bearbeiten – oder über das erwähnte CLI – und konfigurieren Sie eine beliebige Erweiterung in der Datei extensions.conf
. Beide Dateien befinden sich in /etc/asterisk.