By Mark Spencer <[email protected]> and the Asterisk.org developer community.
Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
Es ist unbedingt erforderlich, dass Sie den Inhalt des Sicherheitsinformationsdokuments lesen und vollständig verstehen, bevor Sie versuchen, einen Asterisk-Server zu konfigurieren und auszuführen.
Weitere Informationen finden Sie unter Wichtige Sicherheitsüberlegungen.
Asterisk ist ein Open-Source-PBX- und Telefonie-Toolkit. Es handelt sich gewissermaßen um eine Middleware zwischen Internet- und Telefonkanälen unten und Internet- und Telefonanwendungen oben. Allerdings unterstützt Asterisk mehr Telefonieschnittstellen als nur Internettelefonie. Asterisk bietet außerdem umfangreiche Unterstützung für die herkömmliche PSTN-Telefonie.
Weitere Informationen zum Projekt selbst finden Sie auf der Asterisk-Homepage und in der offiziellen Dokumentation. Darüber hinaus finden Sie unter voip-info.org viele von der Asterisk-Community zusammengestellte Informationen.
Es gibt ein Buch über Asterisk, das von O'Reilly unter der Creative Commons-Lizenz veröffentlicht wurde. Es ist im Buchhandel sowie als herunterladbare Version auf der Website asteriskdocs.org erhältlich.
Die Asterisk Open Source PBX wurde hauptsächlich auf dem GNU/Linux-Betriebssystem entwickelt und getestet und wird von jeder größeren GNU/Linux-Distribution unterstützt.
Asterisk wurde ebenfalls „portiert“ und läuft Berichten zufolge auch auf anderen Betriebssystemen einwandfrei, darunter Sun Solaris, Apples Mac OS X, Cygwin und die BSD-Varianten.
Stellen Sie zunächst sicher, dass Sie über unterstützte Hardware verfügen (beachten Sie jedoch, dass Sie KEINE spezielle Hardware benötigen, nicht einmal eine Soundkarte), um Asterisk zu installieren und auszuführen.
Zur unterstützten Telefonie-Hardware gehören:
Wenn Sie von einer früheren Version von Asterisk aktualisieren, lesen Sie unbedingt die Datei UPGRADE.txt im Quellverzeichnis. Es gibt einige Dateien und Konfigurationsoptionen, die Sie ändern müssen, auch wenn wir alle Anstrengungen unternommen haben, um die Abwärtskompatibilität aufrechtzuerhalten.
Um neue Funktionen zu entdecken, sehen Sie sich bitte die Konfigurationsbeispiele im configs-Verzeichnis der Quellcode-Distribution an. Eine Liste der neuen Funktionen in dieser Version von Asterisk finden Sie in der CHANGES-Datei.
Stellen Sie sicher, dass Ihr System einen kompatiblen Compiler und Entwicklungsbibliotheken enthält. Asterisk benötigt entweder die GNU Compiler Collection (GCC) Version 4.1 oder höher oder einen Compiler, der die C99-Spezifikation und einige der gcc-Spracherweiterungen unterstützt. Darüber hinaus muss Ihr System über die Header der C-Bibliothek sowie die Header und Bibliotheken für ncurses verfügen.
Es gibt viele Module, die zusätzliche Abhängigkeiten haben. Um zu sehen, nach welchen Bibliotheken gesucht wird, sehen Sie sich ./configure --help
an oder führen Sie make menuselect
aus, um die Abhängigkeiten für bestimmte Module anzuzeigen.
Bei vielen Distributionen werden diese Abhängigkeiten durch Pakete mit Namen wie „glibc-devel“, „ncurses-devel“, „openssl-devel“ und „zlib-devel“ oder ähnlichem installiert.
Also, lasst uns fortfahren:
Es gibt mehr Dokumente als dieses im Dokumentverzeichnis. Möglicherweise möchten Sie auch die Konfigurationsdateien überprüfen, die Beispiele und Referenzhandbücher im Verzeichnis configs enthalten.
./configure
aus Führen Sie das Konfigurationsskript aus, um Werte für systemabhängige Variablen zu erraten, die während der Kompilierung verwendet werden. Wenn das Skript angibt, dass einige erforderliche Komponenten fehlen, können Sie ./contrib/scripts/install_prereq install
ausführen, um die erforderlichen Komponenten zu installieren. Beachten Sie, dass dadurch alle Abhängigkeiten für alle Funktionen von Asterisk installiert werden. Nachdem Sie das Skript ausgeführt haben, müssen Sie ./configure
erneut ausführen.
make menuselect
[optional]Dies ist erforderlich, wenn Sie die zu kompilierenden Module auswählen und Abhängigkeiten für verschiedene optionale Module überprüfen möchten.
make
Vorausgesetzt, der Build wird erfolgreich abgeschlossen:
make install
Wenn Sie zum ersten Mal mit Asterisk arbeiten, möchten Sie möglicherweise die Beispiel-PBX mit Demonstrationserweiterungen usw. installieren. Wenn ja, führen Sie Folgendes aus:
make samples
ausDadurch werden alle vorhandenen Konfigurationsdateien, die Sie installiert haben, überschrieben.
# asterisk -vvvc
Während der Initialisierung von Asterisk werden Sie eine Reihe ausführlicher Meldungen auf Ihrem Bildschirm sehen (das ist der Modus „sehr, sehr ausführlich“). Wenn es fertig ist und Sie das „c“ angegeben haben, erhalten Sie eine Befehlszeilenkonsole, die so aussieht:
*CLI>
Sie können jederzeit „core show help“ eingeben, um Hilfe zum System zu erhalten. Um Hilfe zu einem bestimmten Befehl zu erhalten, geben Sie „core show help“ ein. Um die Telefonanlage über Ihre Soundkarte zu starten, können Sie „Konsolenwahl“ eingeben, um die Telefonanlage anzurufen. Anschließend können Sie mit „Konsolenantwort“, „Konsolenauflegen“ und „Konsolenwahl“ die Aktionen eines Telefons simulieren. Denken Sie daran, dass es (noch nicht) nicht richtig funktioniert, wenn Sie keine Vollduplex-Soundkarte haben (und Asterisk wird Ihnen irgendwo in seinen ausführlichen Meldungen mitteilen, ob Sie eine Vollduplex-Soundkarte haben).
„man asterisk“ an der Unix/Linux-Eingabeaufforderung gibt Ihnen detaillierte Informationen zum Starten und Stoppen von Asterisk sowie alle Befehlszeilenoptionen zum Starten von Asterisk.
Schauen Sie sich gerne die Konfigurationsdateien in /etc/asterisk
an, dort finden Sie viele Informationen darüber, was Sie mit Asterisk machen können.
Alle Asterisk-Konfigurationsdateien haben ein gemeinsames Format. Kommentare werden durch „;“ getrennt. (da „#“ natürlich eine DTMF-Ziffer ist und an vielen Stellen vorkommen kann). Eine Konfigurationsdatei ist in Abschnitte unterteilt, deren Namen in []s erscheinen. Jeder Abschnitt enthält typischerweise zwei Arten von Anweisungen, solche der Form „Variable = Wert“ und solche der Form „Objekt => Parameter“. Intern ist die Verwendung von „=“ und „=>“ genau gleich, daher dienen sie nur dazu, die Konfigurationsdatei verständlicher zu machen und haben keinen Einfluss darauf, wie sie tatsächlich analysiert wird.
Einträge der Form „Variable=Wert“ legen den Wert eines Parameters in Sternchen fest. Beispielsweise könnte man in chan_dahdi.conf Folgendes angeben:
switchtype=national
Um Asterisk anzuzeigen, dass der Switch, mit dem sie sich verbinden, vom Typ „national“ ist. Im Allgemeinen gilt der Parameter für Instanziierungen, die unterhalb seiner Spezifikation erfolgen. Wenn die Konfigurationsdatei beispielsweise lautet:
switchtype = national
channel => 1-4
channel => 10-12
switchtype = dms100
channel => 25-47
Der Schaltertyp „national“ würde auf die Kanäle eins bis vier und die Kanäle 10 bis 12 angewendet, während der Schaltertyp „dms100“ auf die Kanäle 25 bis 47 angewendet würde.
Das „object => Parameters“ instanziiert ein Objekt mit den angegebenen Parametern. Beispielsweise erstellt die Zeile „channel => 25-47“ Objekte für die Kanäle 25 bis 47 der Karte und bezieht die Einstellungen aus den oben angegebenen Variablen.
Wer SIP-Telefone nutzt, sollte sich darüber im Klaren sein, dass Asterisk empfindlich auf große Zeitsprünge reagiert. Das manuelle Ändern der Systemzeit mithilfe von date(1) (oder anderen ähnlichen Befehlen) kann dazu führen, dass SIP-Registrierungen und andere interne Prozesse fehlschlagen. Wenn Ihr System die genaue Zeit nicht selbst halten kann, verwenden Sie NTP, um die Systemuhr mit der „Echtzeit“ zu synchronisieren. NTP soll die Systemuhr synchron halten, indem es die Systemuhr beschleunigt oder verlangsamt, bis sie mit der „Echtzeit“ synchronisiert ist, anstatt die Zeit zu überspringen und Diskontinuitäten zu verursachen. Die meisten Linux-Distributionen enthalten vorkompilierte Versionen von NTP. Hüten Sie sich vor einigen Zeitsynchronisierungsmethoden, die regelmäßig die richtige Echtzeit ermitteln und dann die Systemuhr manuell einstellen.
Scheinbare Zeitänderungen aufgrund der Sommerzeit sind genau das, offensichtlich. Die Verwendung der Sommerzeit in einem Linux-System ist ein reines Problem der Benutzeroberfläche und hat keinen Einfluss auf den Betrieb des Linux-Kernels oder von Asterisk. Die Systemuhr auf Linux-Kerneln arbeitet mit UTC. UTC verwendet keine Sommerzeit.
Beachten Sie außerdem, dass dieses Problem unabhängig von der Taktung von TDM-Kanälen auftritt und sich bekanntermaßen zumindest auf SIP-Registrierungen auswirkt.
Abhängig von der Größe Ihres Systems und Ihrer Konfiguration kann Asterisk eine große Anzahl von Dateideskriptoren verbrauchen. Unter UNIX werden Dateideskriptoren nicht nur für Dateien auf der Festplatte verwendet. Dateideskriptoren werden auch für die Abwicklung der Netzwerkkommunikation (z. B. SIP-, IAX2- oder H.323-Anrufe) und des Hardwarezugriffs (z. B. analoge und digitale Amtsleitungshardware) verwendet. Asterisk greift auf viele Dateien auf der Festplatte zu, von Konfigurationsinformationen bis hin zum Voicemail-Speicher.
Die meisten Systeme begrenzen die Anzahl der Dateideskriptoren, die Asterisk gleichzeitig geöffnet haben kann. Dies kann die Anzahl gleichzeitiger Anrufe begrenzen, die Ihr System verarbeiten kann. Wenn das Limit beispielsweise auf 1024 (ein üblicher Standardwert) eingestellt ist, kann Asterisk etwa 150 SIP-Anrufe gleichzeitig bearbeiten. Um die Anzahl der Dateideskriptoren zu ändern, befolgen Sie die nachstehenden Anweisungen für Ihr System:
Wenn Ihr System PAM (Pluggable Authentication Modules) verwendet, bearbeiten Sie /etc/security/limits.conf
. Fügen Sie diese Zeilen am Ende der Datei hinzu:
root soft nofile 4096
root hard nofile 8196
asterisk soft nofile 4096
asterisk hard nofile 8196
(Passen Sie die Zahlen nach Ihrem Geschmack an). Möglicherweise müssen Sie das System neu starten, damit diese Änderungen wirksam werden.
Wenn oben keine speziell auf Ihr System zugeschnittenen Anweisungen vorhanden sind, können Sie versuchen, den Befehl ulimit -n 8192
zum Skript hinzuzufügen, das Asterisk startet.
Weitere Dokumentation zu verschiedenen Funktionen finden Sie im Dokumentverzeichnis. Bitte lesen Sie auch hier alle Konfigurationsbeispiele durch, die eine Dokumentation zu den Konfigurationsoptionen enthalten.
Abschließend möchten Sie möglicherweise die Support-Website besuchen und sich in die Mailingliste eintragen, wenn Sie an weiteren Informationen interessiert sind.
Willkommen in der wachsenden weltweiten Community der Asterisk-Benutzer!
Mark Spencer, and the Asterisk.org development community
Asterisk ist eine Marke der Sangoma Technologies Corporation