Mehr als VoIP

Workshop: Telefonanlage mit Asterisk

31.01.2006 von STEFAN RUBNER 
Mit Asterisk lässt sich nicht nur eine Telefonanlage mit allem erdenklichen Komfort realisieren. Die Software schlägt zudem eine Brücke zwischen Telefonnetz und VoIP-Anwendungen.

Beim Begriff Telefonanlage denkt man automatisch an kleine oder auch große Kästen, die ein internes Telefonsystem mit dem Festnetz verbinden und eine Reihe von mehr oder minder komfortabel nutzbaren Funktionen bieten. Das Innenleben bleibt dem Anwender meist verborgen, Erweiterungen sind bei kleineren Geräten in der Regel nicht möglich und bei professionellen Systemen extrem teuer.

Dass es auch anders geht, beweist das Open-Source-Projekt Asterisk. Mit Hilfe der Asterisk-Software lässt sich in Verbindung mit Linux und einem moderat ausgestatteten PC von einem erfahrenen Anwender eine Telefonanlage realisieren, die an Funktionsumfang und Leistungsfähigkeit selbst den großen Systemen von renommierten Anbietern Konkurrenz machen kann. Zusätzlich bietet Asterisk die Integration der bislang noch weit gehend getrennten Welten von Festnetztelefonie und VoIP – sofern Letztere nach dem aktuell von den meisten Anbietern favorisierten Standard SIP arbeitet.

Dabei beschränkt es sich nicht auf die einfache Anbindung von SIP-basierten Telefonen oder Softphones, sondern stellt alle Funktionen systemübergreifend bereit. Über das eigene Protokoll IAX2 bietet es außerdem die Möglichkeit, mehrere Asterisk-Installationen an mehreren Standorten über das Internet zu verbinden.

Wie Sie Asterisk als Drehscheibe zwischen ISDN- und VoIP-Diensten einrichten, Ihre internen Nebenstellen verwalten und nebenbei professionelle Funktionen wie digitale Assistenten, Anrufbeantworter und Anrufweiterleitung sowie Rufsignalisierung an ganzen Gerätegruppen einrichten, ist Thema dieses mehrteiligen Workshops.

Voraussetzungen für den Asterisk-Einsatz

Als Basis-Hardware für die ersten Schritte mit Asterisk genügt ein älterer PC mit einem Prozessortakt von 400 MHz und einem Hauptspeicher von 128 MByte. Passende Angebote finden sich bei Ebay für weniger als 100 Euro.

Wie bei jeder anderen Software gilt auch für Asterisk: Mehr CPU-Leistung und zusätzliches RAM ist selbstverständlich besser. Eine Netzwerkkarte oder ein DSL-Adapter zur Anbindung ans Internet sollten vorhanden sein. Für den Anschluss an das ISDN-Netz genügt eine einfache Steckkarte wie zum Beispiel die FRITZ!Card von AVM.

Wollen Sie bereits vorhandene ISDN-Telefone weiter nutzen, benötigen Sie zudem einen ISDN-Adapter mit HFC-Chipsatz. Passende Produkte finden Sie für rund 50 Euro bei Conrad oder Billion. Die FRITZ!Card ist für die Anbindung interner Geräte leider nicht geeignet.

Sinnvoll, für den Betrieb von Asterisk aber nicht zwingend notwendig, ist eine vorhandene Sound-Karte mit Vollduplex-Fähigkeit. So gut wie alle Motherboards mit integriertem AC97-Sound genügen diesem Anspruch. Alternativ darf es auch eine PCI-Karte sein. Beim Betriebssystem haben Sie die freie Auswahl aus den aktuell verfügbaren Distributionen. Für den Workshop kommt SUSE Linux 10.0 zum Einsatz, das Sie kostenlos von der Opensuse-Webseite herunterladen können.

Die SUSE-10-Falle

Beachten Sie bei der Installation von SUSE Linux 10.0 unbedingt, dass Sie diese Version am besten von DVD und nicht von den CDs einrichten sollten. Aus nicht nachvollziehbaren Gründen hat SUSE auf den CDs nicht alle auf der DVD enthaltenen Pakete untergebracht. Daher fehlt zum Beispiel bei einer CD-Installation das Paket kernel-nongpl-2.6.13-15, welches ausgerechnet den Treiber für die FRITZ!Card von AVM enthält.

Vorbereitungen für Asterisk

Da es für die aktuellen Versionen von Asterisk keine direkt installierbaren Binärpakete gibt, müssen Sie die Software mit Hilfe der Quelldateien selbst übersetzen. Daher benötigen Sie auf dem Rechner den C++-Compiler sowie einige weitere Bibliotheken. Unter SUSE Linux 10.0 genügt es, via YaST die vorgefertigte Selektion „C/C++-Compiler und Tools“ sowie zusätzlich die Pakete openssl-devel und gegebenenfalls ncurses-devel zu installieren.

Ist dies erledigt, laden Sie zunächst von www.mpg123.de die Version 0.59r des MP3-Players für die Linux-Kommandozeile herunter und installieren diesen wie folgt:

tar xvzf mpg123-0.59r
make linux
make install

Asterisk kompilieren

Anschließend laden Sie von der Asterisk-Seite die Quellen der Software herunter. Für den Anfang genügt das Basisarchiv asterisk-1.x.y.tar.gz. Die gezeigten Beispiele orientieren sich an Asterisk 1.0.9 funktionieren aber auch mit der frisch veröffentlichten Nachfolgeversion 1.2.x.

Das Entpacken des Quellarchivs und das Einrichten der Software erledigen Sie mit wenigen Befehlen auf der Kommandozeile:

tar xvzf asterisk-1.0.9.tar-gz
cd asterisk-1.0.9
make clean
make
make install
make samples

Die letzte Anweisung sorgt dafür, dass die im Archiv enthaltenen Demokonfigurationen im Verzeichnis /etc/asterisk abgelegt werden. Diese dienen als Ausgangsbasis für den weiteren Workshop und lassen sich dank der enthaltenen Dokumentation auch gut zum Selbststudium heranziehen.

Der erste Start

Um den Erfolg der Übersetzung zu überprüfen, starten Sie nun Asterisk zum ersten Mal mit Hilfe des Befehls asterisk -vvvc. Die Angabe des Parameters vvv bewirkt eine sehr detaillierte Ausgabe der beim Start geladenen Module und deren Rückgabewerte. Die Option c sorgt dafür, dass Asterisk sich nicht als Prozess im Hintergrund versteckt, sondern im Vordergrund bleibt und eine Kommandozeile für Benutzereingaben zur Verfügung stellt.

Haben Sie beim Start von Asterisk genau aufgepasst, ist Ihnen sicher nicht entgangen, dass in der über den Bildschirm scrollenden Textmenge auch einige Fehlermeldungen enthalten waren. Neben vielen, die Sie für den Moment ignorieren können, befindet sich darunter auch eine, die das Fehlen einer für lokale Tests entscheidenden Funktion signalisiert: Asterisk kann aller Wahrscheinlichkeit nach nicht auf die Sound-Karte des Rechners zugreifen.

Sound auf ALSA umstellen

Der Grund dafür ist, dass Asterisk für die Zusammenarbeit mit dem Open Sound System (OSS) ausgelegt ist. Da dieses aber nicht mehr unter der GPL zur Verfügung steht, verwenden neuere Linux-Distributionen die Advanced Linux Sound Architecture (ALSA). Obwohl sie einen OSS-Kompatibilitätsmodus anbietet, genügt dieser Asterisk nicht für den Zugriff auf die Sound-Hardware. Um ihn zu realisieren, müssen Sie Asterisk auf die Arbeit mit ALSA umstellen.

Diese Änderung nehmen Sie in der Datei modules.conf vor, die Sie im Verzeichnis /etc/asterisk/ finden. Passen Sie die beiden Zeilen mit den Anweisungen zum Laden der Module chan_alsa.so und chan_oss.so wie nachfolgend gezeigt an:

load = chan_alsa.so
noload = chan_oss.so

Ein erneuter Start von Asterisk nach dem Speichern der Datei – wiederum mit den bereits beschriebenen Optionen -vvvc – zeigt, dass nun der Zugriff auf die Sound-Karte gegeben und damit die Nutzung der installierten Demofunktionen möglich ist.

... und erste Schritte

Haben Sie ein Headset oder – für Demonstrationszwecke ausreichend – Lautsprecher an Ihrem Rechner angeschlossen, können Sie sich jetzt einen ersten Vorgeschmack auf die Leistungsfähigkeit von Asterisk holen. Ermöglicht wird dies durch die Emulation von Wählbefehlen auf der Kommandozeile.

Geben Sie beispielsweise das Kommando dial 2 ein, werden Sie vom integrierten Voice-Assistenten begrüßt und erhalten eine englischsprachige Kurzeinführung in Asterisk. Entsprechend dem Wählvorgang per dial können Sie eine Verbindung jederzeit per hangup beenden.

Wollen Sie den Anrufbeantworter testen, verwenden Sie zum Hinterlassen einer Nachricht auf der eingerichteten Demo-Mailbox das Kommando dial 1234. Sie erhalten – wiederum auf Englisch – die bekannte Standardbegrüßung und können nach dem Piepton eine Mitteilung aufsprechen.

Nachricht abhören

Zum Abhören der gerade von Asterisk abgelegten Sprachnachricht ist ein wenig mehr Aufwand nötig. Die Mailbox-Zentrale ist unter der Rufnummer 8500 erreichbar. Hier werden Sie zunächst nach der abzurufenden Mailbox gefragt, in unserem Fall also 1234. Im nächsten Schritt ist das Passwort einzugeben, das als die Ziffernfolge 4242 hinterlegt ist. Achten Sie darauf, dass Sie jedes Mal das Kommando dial verwenden, und nicht wie vom normalen Telefon gewohnt einfach nur die Ziffern eingeben. Sie gelangen nun in das Menü des Anrufbeantworters und können hier Nachrichten abhören, speichern und löschen. Die nacheinander einzugebenden Befehle sind also:

dial 8500
dial 1234
dial 4242

Ein Tipp: Sollte die Sprachausgabe zu leise sein, starten Sie YaST und wählen Sie unter Hardware den Punkt Sound. Wählen Sie anschließend die Option „Normales Setup“. Hier können Sie unter anderem den Standardwert für die Lautstärke der Tonausgabe festlegen.

Diese Maßnahme hilft allerdings nicht bei den gelegentlichen Aussetzern, die bei der Wiedergabe der vorgefertigten Texte auftreten. Schuld ist hier Asterisk selbst. In der aktuellen Version 1.2.x sind diese Probleme beseitigt.

Wenn Sie genug mit Asterisk gespielt haben, verlassen Sie die Software über den Befehl stop now auf der Kommandozeile.

Ausblick

Mit diesem ersten Teil haben wir die ersten Schritte mit Asterisk gemacht. Zu den nächsten Schritten gehören unter anderem die Einrichtung eines SIP-Accounts und der Anschluss eines Softphones, 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. An den relevanten Stellen erklärt der Workshop die Arbeitsweise von Asterisk. (mha)