Seit wenigen Wochen gibt es ein Skype-Plugin für den freien Telefonie-Server Asterisk. Mitarbeiter der TU Wien haben die Vernunftehe fürs Linux-Magazin getestet .
Ein tiefer Graben trennte beide VoIP-Welten bis zum Sommer. Auf der freien Seite dominierte Asterisk [1], das Open-Source-PBX (Public Branch E-Xchange) mit Unmengen an Modulen und Unterstützung für die Mehrzahl der gängigen Telekommunikationsprotokolle. In der proprietären Welt dagegen hat sich Skype durchgesetzt, auch wenn Kritiker bemängeln, dass die Technik der Signalund Medienübertragung ein zentrales Betriebsgeheimnis ausmacht. Rechtliche Streitigkeiten werfen weitere Fragen auf, stellvertretend dafür steht der Kommentar von Eitel Dignatz im Kasten “Kontra Skype – ein Kommentar”.
Das Beste beider Welten
Noch vor zweieinhalb Jahren galt das Zusammenführen dieser beiden Welten als so abwegig, dass die Meldung einer Skype-Version mit SIP-Support noch als erfolgreicher Aprilscherz [2] durchging. Nun ist das schier Unglaubliche Realität geworden: Digium [3], Entwickler und kommerzielle Firma hinter Asterisk (Abbildung 1), stellt das vor einem Jahr angekündigte Skype-Plugin vor. Mit dieser Erweiterung soll es möglich sein, sowohl Anrufe zu anderen Skype-Usern aufzubauen, als auch Anrufe von Skype per Asterisk entgegenzunehmen.

Abbildung 1: Seit über zehn Jahren implementiert das Open-Source-Projekt Asterisk eine vollständige Telefonanlage, nicht als komplexe, teure Hardwarelösung, sondern in handelsüblichen PCs mit Schnittstellen zu den verschiedenen Telekomnmmunikationsnetzen, neuerdings auch Skype.
Der Telefonserver ist schnell aufgesetzt, die Konfiguration von Asterisk gilt zu Unrecht als komplex. Als Lektüre nicht nur für Einsteiger empfehlen sich die Serie im Linux-Magazin [4], Stefan Wintermeyers Asterisk-Buch ([5], Probekapitel der neuen Ausgabe exklusiv auf der DELUG-DVD) oder die in diesem Heft beschriebene Distribution Gemeinschaft (neue Version ebenfalls exklusiv vorab auf der DVD). Mit Asterisk lässt sich so in kürzester Zeit eine funktionierende PBX aufbauen. Hersteller Digium war so freundlich, der TU Wien (Kasten “Die Technische Universität Wien als Betatester”) und dem Linux-Magazin vorabTestversionen bereitzustellen.
Jede Lizenz für das Skype-Plugin gilt für einen gekauften Channel. Damit ist ein aktiver oder passiver zeitgleicher Call möglich. Um den Skype-Channel zu aktivieren, braucht es den passenden Lizenzkey von Digium und die Aktivierung während des Installationsprozesses von Skype for Asterisk (SFA). Drei einfache Schritte sind notwendig, um die Channel-Lizenzen zu aktivieren:
wget http://downloads.digium.com/pub/register/linux/register chmod 500 register ./register
Nach dem Aktivieren kopiert der Installer den an den Rechner gebundenen Lizenzkey in das Asterisk-Verzeichnis »/var/lib/asterisk/licenses« und der Admin macht sich an den Download. Leider ist SFA recht wählerisch bei den Asterisk-Versionen. Es unterstützt 1.2. gar nicht, 1.4 erst ab Version 25 und 1.6 erst ab 1.6.0.6. Die 1.6.1 funktioniert mit dem Modul erst ab Asterisk 1.6.1.5. Auf [7] erhält der Administrator die für ihn pas- sende SFA-Version.
Es folgt der klassische Weg über »make«, »make install« und »make samples«, gefolgt von einem Neustart des Telefon- servers. In der Asterisk-CLI lässt sich anschließend mit »skype show licenses« verifizieren, ob die PBX die Lizenz korrekt laden konnte.
Nur Online-Accounts
Jetzt kommt ein erster Wermutstropfen: Derzeit unterstützt SFA nur Accounts, die der Benutzer online auf der Webseite von Skype for Business [8] angelegt hat. Ein Asterisk-Admin braucht dabei für jeden lokalen Skype-Nutzer einen Account. Mengenbeschränkung gibt es bis- her nicht. Es ist nicht bekannt, ob Skype solche einzuführen plant. Als nächster Schritt steht das Einbinden des Skype-Moduls in den Asterisk-Server auf der Liste. Dazu fügt der Admin in »chan_skype.conf« Folgendes hinzu:
[skype-lm-central] secret=l.m1234 context=skype exten=s allow=all direction=both
Zeile 1 enthält den in Skype for Business definierten Benutzernamen, Zeile 2 das zugehörige Skype-Passwort. Die Zeilen 3 bis 6 entsprechen den allgemeinen Channel-Parametern und definieren den Kontext, die Extension, die erlaubten Codecs und die erlaubte Rufrichtung. Genauso lassen sich weitere Identitäten in der »chan_skype.conf« hinzufügen. Die Menge der Identitäten ist nicht durch die Lizenzen limitiert, diese definieren nur die Anzahl paralleler Gespräche. Auch ein externer mobiler Mitarbeiter mit Schreibtisch in der Zentrale lässt sich durch Skype unterwegs seamless in die Telefoninfrastruktur einbinden (Abbildung 3).

Abbildung 3: Das Asterisk-Skype-Setup für einen Mitarbeiter im Außendienst. Mit der richtigen Konfiguration klingeln beide Apparate oder Softphones, ohne dass der Anrufer etwas davon mitbekommt.
Roadwarrior
So besteht für ihn die Möglichkeit, Anrufe sowohl mit dem komfortablen Desktop-Telefon am Arbeitsplatz entgegenzuneh- men, aber auch unterwegs mit seinem Skype-Softclient. Diese Weiterleitung ist für den Anrufer unsichtbar, der Ange- rufene ist weltweit unter seiner klassischen Nebenstellennummer erreichbar. Den folgende Dialplan in der »extensions. conf« ergänzt pro Mitarbeiter je eine zusätzliche Konfigurationszeile mit einem Verweis auf die Skype-Identität:
[isdn-in] exten => 1234,1,DIAL(SIP/lm-employee1&&SKYPE/skype-lm-central/skype-lm-employee1) exten => 1235,1,DIAL(SIP/lm-employee2&&SKYPE/skype-lm-central/skype-lm-employee2)
Wenn für den Context »[isdn-in]« ein Anruf auf die Nebenstelle 1234 kommt, startet Asterisk das Programm »DIAL« und leitet gleichzeitig den Anruf an die SIP-Identity »lm-employee1« und an eine beliebige Skype-Identität wie in dem Beispiel »skype-lm-employee1« weiter. Jetzt läuten sowohl das SIP-Hardphone als auch der Skype-Client, der Empfänger kann ein Gespräch an beiden Enden entgegennehmen.
Für den Anrufer ergibt sich kein Unterschied, ob der Angerufene sein Handset oder seinen Skype-Client verwendet. Hingegen ist für den über Skype Angerufenen leider nicht zu erkennen, wer ihn denn anklingelt. Die Ursache liegt auf der Hand: Gegenstelle ist ja immer der vermittelnde Asterisk-Server mit der Skype-Identity »skype-lm-central«. Möglicherweise unterstützen künftige Versio- nen von SFA auch Messaging, dann ließe sich die Identität des Anrufers als Skype-Instant-Message mitsenden.
Ein weiteres Szenario ergibt sich durch die vergleichsweise günstigen Skype-Festnetztarife. Es ist ohne Weiteres möglich, die Asterisk-Nebenstellenanlage so zu konfigurieren, dass beispielsweise alle Gespräche ins ausländische Festnetz nicht ISDN, sondern Skype nutzen.
Least-Cost-Routing
Das schlägt vor allem bei internationalen Verbindungen deutlich zu Buche, kostet doch eine Minute ins chinesische Festnetz mittels Skype nur 2 Cent pro Minute, mit der Deutschen Telekom mehr als das Doppelte, je nach Vertrag ab 5 Cent. Im Testsetup lösten die Autoren dieses Artikels die Aufgabe so, dass der Benutzer ein fixes Präfix »99« vor der vollstän- digen Rufnummer eingibt:
exten => _99.,1,DIAL(SKYPE/skype-lm-central@${EXTEN:2})
Durch dieses Präfix kommt eine Regel im Dialplan zum Tragen, die anstelle des »chan_capi« den »chan_skype« verwen- det und dann per Skype-out in das Fest- netz telefoniert. Weil Asterisk eine sehr flexible Skript-Einbindung beinhaltet, lässt sich aber anstatt des Präfix auch eine richtige Least-Cost-Logik einbinden (Abbildung 4).

Abbildung 4: Auch als Least-Cost-Router ist Asterisk zu gebrauchen. Klartextdateien und hervorragende Skripting-Eigenschaften machen die Entwicklung einer eigenen Routing-Logik recht einfach.
Filialanbindung
Skype bietet einen durchaus robusten und verlässlichen, mit AES 256 verschlüsselten Kanal. Der lässt sich für die Anbindung einer Filiale mit einer einfa- chen und sehr stabilen Alternative zu einem VPN abwickeln (Abbildung 5).

Abbildung 5: Mit dem Skype-Plugin lassen sich die Telefonnetze zweier Standorte günstig und einfach vernetzen. Dazwischen telefonieren die Mitarbeiter in der Regel kostenlos. Auch Auslands- und Überseegespräche sind dank Skype-out deutlich billiger als beim Festnetz-Provider.
Das Ziel des folgenden Beispiels ist, Asterisk und SFA so zu konfigurieren, dass Benutzer transparent das Gespräch von ihrem Endgerät in der Firmenzentrale zu einem Endgerät in der Filiale über Skype führen können. Dafür nötig sind zwei Asterisk-Installationen, eine im Hauptsitz und eine in dessen Filiale, sowie mindestens je eine SFA-Lizenz und zwei Skype-Accounts (»skype-lm-central« und »skype-lm-branch«).
In folgenden, einfachen Beispiel haben die Nebenstellen der Zentrale als erste Ziffer »1« und die der Filiale als führende Ziffer »2«. Jetzt erweitern die Admins die »extensions.conf« in der Zentrale so, dass Asterisk alle Anrufe an eine Nebenstelle beginnend mit 2 an den Skype-Account der Filiale weiterleitet.
exten => _2XXXX,1,Set(SKYPE_CALL_PROPERTY(topic)=${EXTEN})
exten => _2XXXX,n,Dial(Skype/skype-lm-central/skype-lm-branch)
Um über Skype die gewünschte Nebenstelle zu signalisieren, bedarf es eines Tricks: Eine kaum genutzte und in manchen Clients nicht verfügbare Funktionalität ist es, Anrufe mit einem Topic – »SKYPE_CALL_PROPERTY(topic)« – zu versehen, idealerweise mit der gewünschten Nebenstellennummer. Die Konfiguration der Filiale ist noch einfacher, sie muss nur wieder den Topic auslesen und diese Nebenstelle kontaktieren. Hier gilt es zu beachten, dass für die Kommunikation von der Filiale zur Zentrale diese Einstellungen auch für die umgekehrte Richtung konfiguriert sein müssen:
exten => s,1,DIAL(SIP/${CHANNEL(skype_topic)})
Derzeit fehlt dem SFA-Modul die Möglichkeit, aus der Skype-Welt kommend direkt eine Nebenstelle zu erreichen. Das Problem lässt sich jedoch durch eine Sprachansage mit der Bitte um Eingabe der gewünschten Nebenstelle lösen.
Skype und Nebenstellen
Im Beispiel in Listing 1 nimmt Asterisk zuerst einen Anruf entgegen, wartet dann kurz und initialisiert die Variable »NR«. Anschließend bittet die Simme vom Band um Eingabe der Nummer des gewünschten Apparats. Während dieser Ansage hat der Anrufer 30 Sekunden, um die Nebenstelle einzugeben. Nach Ablauf dieser Zeit oder nach Drücken von [#] klingelt es bei der entsprechenden Nebenstelle.
|
Listing 1: |
|---|
; Skype-Anruf entgegennehmen
exten => s,1,Answer()
exten => s,n,Wait(2)
exten => s,n,Set(NR=)
exten => s,n,Background(vm-enter-num-to-call)
exten => s,n,Set(TIMEOUT(response)=30)
; DTMF-Ziffern speichern
exten => _X,1,Set(NR=${NR}${EXTEN})
exten => _X,2,WaitExten
; Bei Raute waehlen
exten => #,1,Set(TIMEOUT(response)=0)
exten => #,n,Dial(SIP/${NR})
exten => #,n,Hangup()
; Bei Timeout versuchen, das bisher Übermittelte zu wählen
exten => t,1,Dial(SIP/${NR})
exten => t,2,HangUp
|
Die vier aufgeführten Beispiele sind nur eine Auswahl der Möglichkeiten, die dem Administrator zur Verfügung stehen. SFA ist, und das müssen sich die Freunde quelloffener Software eingestehen, eine Bereicherung für Asterisk mit einer Fülle an spannenden und kostensparenden Features.
Auch Skypes Tarife halten sich im akzeptablen Bereichen. Wenn die hoffent- lich bald kommenden Plugin-Versionen fehlende Funktionalitäten wie Instant Messaging mitbringen, dann ist dieses Modul wahrscheinlich ein Muss für viele Asterisk-Administratoren.
Kritiker von Skype und sicherheitsbewusste Anwender sehen das anders: Skype praktiziert offensichtlich die unter Experten verpönte Taktik, Sicherheit durch Verschleierung (Security by Obscurity) vorzutäuschen.
Vermutete Sicherheit
Es scheint zu funktionieren: Ein erfolgreicher Angriff auf den Medien-Layer des Skype-Protokolls ist noch nicht nachweisbar bekannt geworden. Trotzdem halten sich hartnäckig Gerüchte, dass staatliche Stellen auch Skype-Telefonate abhören können [9]. Doch die sind unbestätigt und die Angriffe wurden wahrscheinlich durch eingeschleuste Trojaner bei den Endgeräten realisiert.
|
Infos |
|---|
|
[1] Asterisk: [http://www.asterisk.org] [2] Skype lernt dazu: [http://www.heise.de/ix/meldung/Skype-lernt-dazu-164133.html] [3] Digium: [http://www.digium.com] [4] Stefan Wintermeyer, Asterisk-Workshop Teile 1 bis 4: Linux-Magazin, 01/2008 bis 04/2008. [5] Stefan Wintermeyer, “Das Asterisk Buch”: [http://www.das-asterisk-buch.de/2.1] [6] TU Wien: [http://www.tuwien.ac.at] [7] Digium Skype for Asterisk Download: [http://downloads.digium.com/pub/telephony/skypeforasterisk] [8] Skype Enterprise: [http://skype.com/business] [9] Österreichs Polizei hört mit: [http://futurezone.orf.at/stories/293368] [10] Skype-Eula: [http://www.skype.com/legal/eula] [11] Skype vor dem Aus?: [http://www.heise.de/newsticker/meldung/Skype-Dienstewegen-lizenzrechtlicher-Streitigkeiten-vom-Aus-bedroht-749193. html] [12] Zoiper-Softphone: [http://www.zoiper.com] [13] Twinkle-Softphone: [http://www.twinklephone.com] [14] Eitel Dignatz, “Billig im Ausland”: Linux-Magazin, 12/ 2008, S. 62. [15] Eitel Dignatz, “Ruf mich an!”: Linux-Magazin, 11/ 2008, S. 71. |
|
Die Autoren |
|---|
|
Christoph Egger ist Assistent am Institut für Breitbandkommunikation der TU Wien. Seine Schwerpunkte sind die Simulation von SIP-Services sowie QoS innerhalb emulierter Netze. Michael Hirschbichler, ebenfalls Assistent am IBK, forscht im Bereich “Abfangen von Überlastsituationen in komplexen VoIP/MS-Infrastrukturen” und der VoIP-Security. Philipp Kolmann ist Referatsleiter am Zentralen Informatikdienst der TU Wien und betreibt das ENUM-Gateway, das mit Asterisk realisiert ist. |

![Eitel Dignatz ist Strategieberater und Inhaber der Firma Dignatz Consulting in München: [http://www.dignatz.de/spot458]. Er nutzt Asterisk intensiv als Middleware.](https://www.linux-magazin.de/wp-content/uploads/2009/12/abb6.jpg-243x300.jpg)





