Wie man Asterisk 18 VoIP Server auf CentOS 8 installiert
Asterisk ist eine leistungsstarke digitale Telefonanlage und ein VoIP-Server, der unter einer Open-Source-Lizenz veröffentlicht wurde, sodass du ihn kostenlos nutzen kannst. VoIP ist eine Technologie, die zum Aufbau und zur Steuerung von Telefongesprächen zwischen mehreren Endpunkten verwendet wird. Sie wird in VoIP-Gateways, Konferenzservern, Call-Centern, Carriern und staatlichen Institutionen auf der ganzen Welt eingesetzt. Sie läuft auf Linux, BSD und OS X und ermöglicht es dir, dein lokales System oder deinen Server in einen Kommunikationsserver zu verwandeln.
In diesem Beitrag erklären wir dir, wie du Asterisk auf einem CentOS 8 Server installieren kannst.
Voraussetzungen
- Ein Server, auf dem CentOS 8 läuft.
- Ein Root-Passwort ist auf dem Server konfiguriert.
Erste Schritte
Standardmäßig ist SELinux in CentOS 8 aktiviert. Daher musst du es zuerst deaktivieren. Um es zu deaktivieren, editiere die SELinux Konfigurationsdatei:
nano /etc/selinux/config
Ändere die folgende Zeile:
SELINUX=disabled
Speichere und schließe die Datei und starte dein System neu, um die Änderungen zu übernehmen.
Erforderliche Tools installieren
Asterisk benötigt mehrere Pakete, die du auf deinem Server installieren musst. Als erstes installierst du das EPEL Repository mit dem folgenden Befehl:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Dann aktivierst du das PowerTools Repository mit dem folgenden Befehl:
dnf config-manager --set-enabled PowerTools
Nun installierst du andere Pakete und Entwicklungswerkzeuge mit dem folgenden Befehl:
dnf install wget gcc gcc-c++ svn make bzip2 patch libedit-devel uuid-devel libuuid-devel libxml2-devel sqlite sqlite-devel nano openssl openssl-devel -y dnf groupinstall "Development Tools"
Sobald alle benötigten Pakete installiert sind, kannst du mit dem nächsten Schritt fortfahren.
Jansson und PJSIP installieren
Als nächstes musst du Jansson auf deinem System installieren. Es wird für die Kodierung und Dekodierung von Mediendaten verwendet.
Und dann lädst du es mit folgendem Befehl aus dem Git Repository herunter:
git clone https://github.com/akheron/jansson.git
Als nächstes wechselst du in das heruntergeladene Verzeichnis und kompilierst es mit dem folgenden Kommando:
cd jansson autoreconf -i ./configure --prefix=/usr/ make make install
Als nächstes musst du PJSIP auf deinem System installieren. Es ist eine Bibliothek, die verwendet wird, um SIP, SDP, RTP, STUN, TURN und das ICE Protokoll zu implementieren.
Lade sie zuerst mit dem folgenden Befehl herunter:
cd git clone https://github.com/pjsip/pjproject.git
Als nächstes wechselst du in das heruntergeladene Verzeichnis und kompilierst sie mit dem folgenden Befehl:
cd pjproject ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr make dep make make install ldconfig
Sobald du damit fertig bist, kannst du mit der Installation von Asterisk fortfahren.
Asterisk installieren
Navigiere zunächst in dein Homeverzeichnis und lade die neueste Version von Asterisk mit dem folgenden Befehl herunter:
cd wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
Sobald der Download abgeschlossen ist, extrahiere die heruntergeladene Datei mit dem folgenden Befehl:
tar -xvzf asterisk-18-current.tar.gz
Als nächstes wechselst du mit folgendem Befehl in das entpackte Verzeichnis:
cd asterisk-18.4.0/
Als nächstes konfigurierst du Asterisk mit dem folgenden Befehl:
./configure --libdir=/usr/lib64
Du solltest die folgende Ausgabe sehen:
configure: Menuselect build configuration successfully completed .$$$$$$$$$$$$$$$=.. .$7$7.. .7$$7:. .$$:. ,$7.7 .$7. 7$$$$ .$$77 ..$$. $$$$$ .$$$7 ..7$ .?. $$$$$ .?. 7$$$. $.$. .$$$7. $$$$7 .7$$$. .$$$. .777. .$$$$$$77$$$77$$$$$7. $$$, $$$~ .7$$$$$$$$$$$$$7. .$$$. .$$7 .7$$$$$$$7: ?$$$. $$$ ?7$$$$$$$$$$I .$$$7 $$$ .7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$ .$$$. $$$ $$$ 7$$$7 .$$$ .$$$. $$$$ $$$$7 .$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$. .7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. 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 :
Als nächstes führe den folgenden Befehl aus, um zusätzliche Add-ons zu installieren, die du mit Asterisk installieren möchtest.
make menuselect
Du solltest die folgende Seite sehen:
Wähle Add-ons und drücke Enter. Du solltest die folgende Seite sehen:
Wähle deine benötigten Add-ons aus und drücke Enter, um sie auszuwählen, dann drücke ESC, um zum Hauptmenü zurückzukehren:
Wähle dein gewünschtes Core Sound Paket und drücke Enter, um es auszuwählen. Als nächstes drücke ESC um zurückzukehren, wähle die MOH Pakete wie unten gezeigt:
Wähle deine gewünschten Pakete und drücke Enter, um sie auszuwählen. Als nächstes drücke ESC, um zurückzukehren, wähle Extra Pakete, wie unten gezeigt:
Wähle deine benötigten Pakete aus und drücke Enter, um sie auszuwählen. Drücke dann die ESC-Taste. Du solltest die folgende Seite sehen:
Drücke S, um die Änderungen zu speichern und zu beenden.
Führe als nächstes den folgenden Befehl aus, um alle benötigten Abhängigkeiten zu installieren:
contrib/scripts/get_mp3_source.sh
Als nächstes baust du den Asterisk mit dem folgenden Befehl:
make
Du solltest die folgende Ausgabe sehen:
+--------- Asterisk Build Complete ---------+ + Asterisk has successfully been built, and + + can be installed by running: + + + + make install + +-------------------------------------------+ make install +---- Asterisk Installation Complete -------+ + + + YOU MUST READ THE SECURITY DOCUMENT + + + + Asterisk has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + For generic reference documentation: + + make samples + + + + For a sample basic PBX: + + make basic-pbx + + + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +-------------------------------------------+
Als nächstes installierst du Asterisk mit dem folgenden Befehl:
make samples make config ldconfig
Asterisk konfigurieren
Als nächstes musst du einen dedizierten Benutzer erstellen, um Asterisk auszuführen. Du kannst einen Benutzer und eine Gruppe mit dem folgenden Befehl erstellen:
groupadd asterisk useradd -r -d /var/lib/asterisk -g asterisk asterisk
Als nächstes fügst du den Audio- und Dialout-Benutzer mit dem folgenden Befehl zur Asterisk-Gruppe hinzu:
usermod -aG audio,dialout asterisk
Setze als Nächstes die Eigentümerschaft der Asterisk-Verzeichnisse auf den Benutzer asterisk mit dem folgenden Befehl:
chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk
Als nächstes editiere die Datei /etc/sysconfig/asterisk:
nano /etc/sysconfig/asterisk
Entferne die Kommentare in den folgenden Zeilen:
AST_USER="asterisk" AST_GROUP="asterisk"
Speichere und schließe die Datei und editiere dann die Datei /etc/asterisk/asterisk.conf:
nano /etc/asterisk/asterisk.conf
Entferne die Kommentare in den folgenden Zeilen:
runuser = asterisk ; The user to run as. rungroup = asterisk ; The group to run as.
Speichere und schließe die Datei, wenn du fertig bist. Starte dann den Asterisk-Dienst neu, um die Änderungen zu übernehmen.
systemctl restart asterisk
Als nächstes aktiviere den Asterisk-Dienst, damit er beim Neustart des Systems startet:
systemctl enable asterisk
Um den Status des Asterisk-Dienstes zu überprüfen, führe den folgenden Befehl aus:
systemctl status asterisk
Du solltest die folgende Ausgabe erhalten:
? asterisk.service - LSB: Asterisk PBX Loaded: loaded (/etc/rc.d/init.d/asterisk; generated) Active: active (running) since Sat 2021-05-22 08:19:08 EDT; 15s ago Docs: man:systemd-sysv-generator(8) Process: 70883 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS) Main PID: 70914 (asterisk) Tasks: 81 (limit: 25014) Memory: 36.8M CGroup: /system.slice/asterisk.service ??70912 /bin/sh /usr/sbin/safe_asterisk ??70914 /usr/sbin/asterisk -f -vvvg -c May 22 08:19:08 centos8 systemd[1]: Starting LSB: Asterisk PBX... May 22 08:19:08 centos8 asterisk[70883]: Starting asterisk:
Verify Asterisk
An diesem Punkt ist Asterisk installiert und konfiguriert. Du kannst nun den Asterisk mit dem folgenden Befehl verifizieren:
asterisk -rvv
Wenn alles in Ordnung ist, solltest du die folgende Ausgabe erhalten:
Asterisk 18.4.0, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others. Created by Mark Spencer <markster@digium.com> 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. ========================================================================= Running as user 'asterisk' Running under group 'asterisk' Connected to Asterisk 18.4.0 currently running on centos8 (pid = 70914) centos8*CLI>
Führe nun den folgenden Befehl aus, um die Core Channels anzuzeigen:
centos8*CLI> core show channels
Du solltest die folgende Ausgabe sehen:
Channel Location State Application(Data) 0 active channels 0 active calls 0 calls processed
Um die Betriebszeit von Asterisk anzuzeigen, führe den folgenden Befehl aus:
centos8*CLI> core show uptime
Du solltest die folgende Ausgabe sehen:
System uptime: 1 minute, 33 seconds Last reload: 1 minute, 33 seconds
Um die Asterisk CLI zu verlassen, führe den folgenden Befehl aus:
centos8*CLI> quit
Fazit
In der obigen Anleitung hast du gelernt, wie du Asterisk Version 18 auf einem CentOS 8 Server herunterladen und kompilieren kannst. Du kannst nun Asterisk mit anderen Plattformen integrieren und eine VoIP-basierte Anwendung erstellen.