Im Hause telefonieren

Voice over IP ist zwar in aller Munde, Firmen jedoch bringen die allgemein verfügbaren Angebote wenig - für sie lohnt sich vor allem VoIP im eigenen Betrieb. Grundstein dafür kann eine PC-basierte Telefonanlage mit dem freien Asterisk sein.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Lesezeit: 7 Min.
Von
  • Thilo Rößler

Nachdem Voice over IP in den 90ern bereits als zukunftsträchtiges Thema galt, zunächst aber mangels adäquater Bandbreiten wieder in den Hintergrund trat, ist ihm inzwischen allgemeine Aufmerksamkeit sicher. Bislang treiben Privatkunden die Entwicklung voran, Firmen stellen ihre externe Kommunikation nur zögerlich auf VoIP um. Jedoch können sie mit der Open-Source-PBX Asterisk intern Sprache per IP übertragen und so Vorteile durch die Kombination von VoIP und Open Source erzielen.

Das dreiteilige Asterisk-Tutorial erläutert die Abwicklung dieser internen Kommunikation von Firmen und Privathaushalten mit Asterisk über VoIP. Dieser erste Teil behandelt neben Grundlagen von Installation und Architektur die verwendbare Hardware. Darüber hinaus beschreibt er eine einfache Anbindung von SIP-Telefonen (Session Initiation Protocol) und die Grundzüge eines Wählplans. In Teil 2 geht es um Details der Telefonanbindung, erweiterte Möglichkeiten der Wählplankonfiguration, den Einsatz von Voice-Mail-Boxen, das Definieren von Berechtigungen und die ISDN-Anbindung. Teil 3 beschäftigt sich mit der Vernetzung mehrerer Asterisk-Systeme, der Nutzung von Asterisk als VoIP-Gateway für vorhandene TK-Anlagen und diversen Tipps, Tricks und Spezialitäten.

Wer die Inhalte des Tutorials nachvollziehen will, kommt in weiten Teilen mit einem oder mehreren Computern aus. Ein mit einer Soundkarte ausgestatteter Asterisk-Server unter Linux kann zu Testzwecken als Telefon dienen und mit dem Kommando Dial Nebenstellen anrufen. Fehlt eine solche Karte, hilft das zum Alsa-Paket gehörende Modul snd-dummy.ko, das sie vorspiegelt. Hören wird man freilich nichts, aber immerhin steht das für Tests nützliche Dial-Kommando zur Verfügung. Des Weiteren kann man mit Softphones telefonieren, die zum Teil kostenlos zu beziehen sind und für Experimente vollkommen ausreichen. Für die ISDN-Anbindung kommen in diesem Tutorial aktive Karten von Eicon Networks zum Einsatz, die für Privatanwender zu teuer sind. Alternativ lassen sich preisgünstigere passive Karten einsetzen (beispielsweise AVMs Fritz-Modelle). Sie garantieren jedoch nicht die gleiche Gesprächsqualität wie aktive Karten.

Für die Anbindung einer Asterisk-Telefonanlage an einen VoIP-Provider sollte mindestens ein DSL-Anschluss mit 128 kbps Upstream vorhanden sein. Bei Verwendung eines unkomprimierten Codec wie „alaw“ reicht diese Bandbreite zumindest theoretisch für zwei parallel geführte Gespräche. Da zu den 64 kbps für die reinen digitalisierten Sprachdaten der Overhead für die Übertragung hinzukommt und außerdem meist andere Daten gleichzeitig über den Draht reisen, sind zwei simultane Gespräche über eine solche Leitung bei guter Qualität allerdings unwahrscheinlich. Der Einsatz komprimierender Codecs kann hier Abhilfe schaffen, allerdings können laufende Uploads bei geringer Bandbreite Jitter verursachen und somit die Gesprächsqualität entscheidend verschlechtern.

Im Wesentlichen nimmt der Asterisk-Kern vier Funktionen wahr. Deren bedeutendste heißt „PBX Switching“ und entspricht den bekannten Telefonanlagen-Aufgaben, beispielsweise Anrufer zum richtigen Ziel zu verbinden. Der „Codec Translator“ wandelt Daten verschiedener Audio-Codecs ineinander um. Damit kann Asterisk zwischen Endgeräten vermitteln, die sich auf keinen gemeinsamen Codec einigen können oder Gesprächsdaten durch einen komprimierenden Codec an eine Internet-Telefongesellschaft weiterleiten. Zum Starten der dazugehörigen Einzelprogramme wie des Voicemail-Systems dient der „Application Launcher“. Schließlich gibt es einen „Scheduler and I/O Manager“, der tief im System angeordnete Aufgaben wahrnimmt und versucht, immer dessen optimale Performance sicherzustellen.

Wie ein einzelner Anruf eingeht, ist dem Asterisk-Kern weitgehend gleichgültig. Diverse APIs bilden eine Abstraktionsschicht, die solche Informationen von ihm fern hält. Besonders wichtig ist in diesem Zusammenhang die „Channel API“. Sie gewährleistet, dass Asterisk mit unterschiedlichen Geräten kommunizieren kann, seien es IP-Telefone (oder andere Endgeräte) mit SIP, H.323 oder IAX2 als Protokoll, Telefone an analogen oder ISDN-Karten oder jede beliebige weitere Technik. Voraussetzung ist nur ein geeigneter Channel-Treiber. Die „Application API“ übernimmt das Hinzuladen externer Applikationen. Die „Codec Translator API“ lädt den Support für alle Codecs, mit denen Asterisk umgehen können soll. Als Letztes erlaubt die „File Format API“ den lesenden und schreibenden Zugriff von Dateien im Dateisystem (zum Beispiel für das Loggen von Anrufdaten oder das Einspielen von Hintergrundmusik aus Klangdateien).

Asterisk-Pakete gibt es von mehreren Linux-Anbietern. Darüber hinaus existieren speziell angepasste Distributionen, die insbesondere auf reine Asterisk-Systeme abgestellt sind (zum Beispiel www.astlinux.org). Der allgemein gültige Weg zum eigenen Asterisk-System führt über die auf der Projekt-Homepage erhältlichen Quellen. Unter www.asterisk.org finden sich mehrere Pakete, fürs Erste reicht als Grundausstattung asterisk-1.0.x.tar.gz. Das Paket bringt ein eigenes Makefile mit, ein vorheriges ./configure entfällt also. Wer Teile von Asterisk in abweichenden Verzeichnissen zu installieren wünscht, weist den zugehörigen Variablen im Makefile (ASTCONFPATH, ASTMANDIR, ASTBINDIR und so weiter) eigene Werte zu.

Sollen die Daten von Endgeräten statt in Konfigurationsdateien in einer MySQL-Datenbank stehen, muss man außerdem noch das Makefile im Unterverzeichnis channels editieren und die Variable USE_SIP_MYSQL_FRIENDS mit dem Wert 1 belegen. Das dort ebenfalls vorhandene USE_MYSQL_FRIENDS ermöglicht die Definition von IAX2-Gegenstellen in einer MySQL-Tabelle.

Neben den üblichen Verdächtigen beim Kompilieren von Programmen sind zum Bauen eines Asterisk-Systems die Pakete libtermcap, libtermcap-devel, ncurses, ncurses-devel und mysql-devel nötig - Letzteres nur, wenn eine der gerade genannten Variablen der Wert 1 trägt. make und make install erledigen die Installation; make samples generiert diverse Beispieldateien. Um bei der ersten eigenen Konfiguration nicht komplett bei Null zu beginnen, bietet sich dieser Schritt an.

Wer gerne später Wartemusik für all jene einspielen will, die auf den nächsten freien Mitarbeiter warten, sollte mpg123 installieren - und zwar das Original. Die von diversen Linux-Distributionen mitgelieferten Klone (etwa mpg321) verrichten ihren Dienst nicht immer wie gewünscht. mpg123 findet sich entweder im Paketangebot der eigenen Distribution oder lässt sich aus dem Verzeichnis der Asterisk-Quellen mit make mpg123 installieren. Da dieses Kommando die passenden Quellen aus dem Netz ziehen will, muss eine Internetverbindung vorhanden sein.

Prinzipiell kann Astrisk mit jeder Art Telefon zusammenarbeiten, für dessen Protokoll ein Channel-Treiber existiert. Als Standard für Endgeräte hat sich SIP (Session Initiation Protocol) etabliert. Das einstmals weiter verbreitete H.323-Protokoll befindet sich zusehends auf dem Rückzug, und das ursprünglich zur Vernetzung von Asterisk-Systemen konzipierte IAX2 hat sich bis jetzt nur auf wenigen Endgeräten eingenistet.

Den vollständigen Artikel sowie weitere Artikel zum Thema VoIP (Fritz Box, Rechtsfragen) finden Sie in der aktuellen Printausgabe.

Mehr Infos

iX-TRACT

  • Voice over IP ist für Unternehmen vor allem im Haus und zur Anbindung von Filialen reizvoll. Eine IP-Telefonanlage lässt sich mit einem PC und der freien Software Asterisk aufbauen.
  • Zum Testen der Asterisk-Konfiguration eignen sich besonders Softphones, die es für viele Plattformen kostenlos gibt.
  • Ein Wählplan ordnet in Asterisk herkömmliche Durchwahlen den in VoIP benutzten IP-Adressen zu. Dadurch können Anwender weiterhin die bekannten Nummern verwenden.

Teil II: Komplexe Wählpläne, ISDN-Anbindung, Voice-Mail und Berechtigungen

Teil III: Asterisk-Vernetzung, Anbindung vorhandener TK-Anlagen, Tipps und Tricks (ck)