Workshop: Asterisk - Grundlagen

08.02.2006 von STEFAN RUBNER 
Ohne ein Verständnis für die Begriffe Channel, Context und Extension wird die Konfiguration von Asterisk zum reinsten Irrgarten. Nachdem im ersten Teil eine grundlegende Installation vorgenommen wurde, geht es hier um die Grundlagen der Open-Source-Software.

Asterisk ist äußerst flexibel, allerdings zu einem Preis: die Konfiguration kann schnell komplex und unübersichtlich werden. Ein Blick auf die interne Arbeitsweise hilft, die Abläufe besser zu verstehen.

Nachdem Asterisk eingerichtet ist, möchten Sie nun sicher auch etwas damit tun – zum Beispiel telefonieren. Schließlich ist das Spielen mit den Demo-Funktionen ganz nett, aber auf Dauer nicht wirklich befriedigend und schon gar nicht der eigentliche Grund, eine Telefonanlage zu installieren.

Gehen wir also daran, Asterisk mit Voice over IP zusammen zu bringen. Im Folgenden verwenden wir einen Account von Sipgate, die Beispiele lassen sich jedoch leicht an andere Anbieter anpassen. Bevor es allerdings wirklich losgeht müssen Sie noch ein wenig Theorie bewältigen, um die Arbeitsweise von Asterisk zu verstehen und sich in den Konfigurationsdateien zurecht zu finden.

Arbeitsweise

Vor allem drei Begriffe tauchen bei der Arbeit mit Asterisk immer wieder auf: Kanal (Channel), Kontext (Context) und Durchwahl (Extension). Hierbei handelt es sich um die drei aufeinander aufbauenden Klassen, die Asterisk zur Verwaltung von Verbindungen verwendet. Auf der untersten Ebene befinden sich die Kanäle. Diese stellen die unterschiedlichen, von Asterisk unterstützten Transportwege für Sprachdaten dar. Im Wesentlichen sind dies analoge Leitungen, ISDN-Busse, SIP-Verbindungen sowie die Anbindung an weitere Asterisk-Server mittels des Asterisk-eigenen IAX2-Protokolls.

Jeder Kanal wird durch eine eigene Konfigurationsdatei im Verzeichnis /etc/asterisk repräsentiert. Zusätzlich zu den physikalischen Kanälen bietet Asterisk auch logische Kanäle an. In diese Kategorie fallen beispielsweise das Voicemail-System (Anrufbeantworter) oder auch die lokale Konsole.

Kontext

Jedem dieser Kanäle ordnet Asterix je nach Zustand einen Kontext zu. Die Unterscheidung erfolgt dabei nach ein- und ausgehenden Rufen. Ein ausgehender Kontext wird durch einen eigenen Abschnitt in der jeweiligen Konfigurationsdatei repräsentiert, die eingehenden Kontext-Definitionen finden sich in der Datei extensions.conf. Zusätzlich existiert für jeden Kanal ein globaler Kontext, über den sich global gültige Standardeinstellungen festlegen lassen.

Vermeintlich am einfachsten zu verstehen sind die Extensions, was am ehesten mit Durchwahl zu übersetzen ist. Im Prinzip stimmt das auch, allerdings gilt es dabei eine Besonderheit zu beachten: Genau wie die jeweiligen Kontexte an einen Kanal gebunden sind, gehören die einzelnen Durchwahlen jeweils zu bestimmten Kontexten. Es ist daher durchaus möglich, dieselbe Durchwahl in unterschiedlichen Kontexten zu verwenden und entsprechend unterschiedliche Geräte und damit Personen im Telefonnetz zu adressieren.

Dialplan

Ein Spezialfall der Extensions ist der so genannte Dialplan. Er ist das Äquivalent der Durchwahlen für ausgehende Gespräche und wird daher im Ausgangskontext der einzelnen Channels definiert, während die Extensions im Eingangskontext zu platzieren sind.

Dank der Unterscheidung nach Kanälen erlaubt es Asterisk übrigens auch, die Telefoniefunktionen für mehrere Firmen zu übernehmen, sofern diese über getrennte Anschlüsse ans Telefonnetz und eigene VoIP-Accounts verfügen.

Spezielle Dateien und Ausblick

Die Konfiguration der einzelnen Kanäle erfolgt über jeweils eigene Dateien, die im Verzeichnis /etc/asterisk abgelegt sind. Dort finden sich auch zwei spezielle Dateien, die die Einstellungen für Asterisk selbst beinhalten: asterisk.conf und modules.conf.

Erstere legt die Verzeichnisse fest, in denen Asterisk die für seine Arbeit benötigten Dateien wie Sounds und Bibliotheken findet. In der zweiten können Sie festlegen, welche Module beim Start von Asterisk geladen oder ignoriert werden sollen. Mit einigen dieser Konfigurationsdateien befassen wir uns im nächsten Teil näher, wenn es um das Einrichten eines SIP-Accounts sowie der zugehörigen Clients geht.

Zu den nächsten Schritten gehören unter anderem die Verbindung zu einer ISDN-Anlage und der Einsatz von Asterisk als Anrufbeantworter. Danach widmen wir uns dem Call-Routing, also dem Vermitteln zwischen verschiedenen Anschlüssen, und einer einfachen Form des Least Cost Routing. (mha)

Info: Mehr zu VoIP und Asterisk können Sie am 23. Februar auf unserem VoIP-Day in Frankfurt/Main erfahren. Dort steht Ihnen auch der Autor dieses Beitrags zum persönlichen Erfahrungsaustausch zur Verfügung. Die komplette Artikelserie zu Asterisk finden Sie auch im aktuellen tecCHANNEL-Compact zum Nachlesen, das Sie sofort in unserem Online-Shop versandkostenfrei bestellen können.