Mit Asterisk installieren Sie auf Ihren Rechner eine Telefonanlage für das gesamte Netzwerk. Wir zeigen Ihnen, wie Sie in die Internet-Telefonie einen Festnetzanschluss integrieren.
Über welche Features die Telefonanlagen-Software Asterisk genau verfügt, darüber berichteten wir in einem Artikel in der Ausgabe 12/2005. Unter den zahlreichen Leserbriefen, die die Redaktion zu diesem Thema erreichte, tauchte immer wieder die Frage auf, ob es nicht möglich sei, einen vorhandenen Festnetzanschluß irgendwie an Asterisk zu kuppeln. Dieser Artikel verrät, wie Sie die Schulterschluss zu ISDN bewerkstelligen.
Stellen Sie sich folgende Situation vor: Nachdem Sie einige Wochen Internet-Telefonie mit Asterisk und einem Software-Telefon abgewickelt haben, entschließen Sie sich zum Kauf eines Hardware-VoIP-Telefons. Anschließend stehen bei Ihnen zwei Telefone auf dem Schreibtisch, und im schlimmsten Falle haben sie ähnliche Klingeltöne, sodass Sie beim Klingeln im ersten Augenblick nicht merken, welches der Telefone klingelt.
Oder Sie haben vielleicht einen Computer mit Netzwerkanschluss an ihrem Schreibtisch stehen, ein Telefonanschluss fehlt allerdings. Dann erlaubt Asterisk Ihnen – vorausgesetzt, Sie besitzen einen ISDN-Anschluss – eine ideale Kombination aus VoIP- und Festnetztelefonie.
Voraussetzungen
Sie sehen – Gründe, um Asterisk mit dem Festnetzanschluss zu verbinden gibt es genug. Bevor Sie aber loslegen, ein Wort zu den Voraussetzungen für das Unterfangen. Zunächst benötigen Sie einen ISDN-Festnetzanschluss. Dementsprechend benötigt der Rechner mit dem Asterisk-Server zusätzlich eine ISDN-Karte. Ob es sich dabei um eine passive oder eine aktive Karte handelt, spielt im Grunde keine Rolle. Achten Sie aber darauf, das die CAPI-Treiber von AVM [1] Ihre Hardware unterstützen. Andernfalls steuert Asterisk die Karte später nicht richtig an.
Die folgende Hinweise fußen auf dem schon erwähnten ausführlichen Artikel zur Asterisk-Installation aus Heft 12/2005. Als Testsystem kommt Debian zum Einsatz. Mit etwas Geschick übertragen Sie die Schritte allerdings ohne größere Probleme auf andere Distributionen.
CAPI4Linux installieren
Haben Sie die Hardware in den Rechner eingebaut, folgt als nächster Schritt das Installieren der ISDN-Treiber. Setzen Sie auf dem Asterisk-Rechner Suse Linux 9.3 ein, finden Sie die wichtigsten Informationen ebenfalls auf der AVM-Homepage [2]. Bei allen anderen Distributionen gestaltet sich die Arbeit etwas umständlicher. Hier fangen Sie im Grunde bei Null an, indem Sie einen neuen Kernel bauen. Wie das funktioniert, erfahren Sie ebenfalls im Hilfe-Archiv von AVM [3].
Hat der Kernel Ihre ISDN-Karte als CAPI-Controller erkannt und Sie das CAPI4Linux-System auf Ihre Bedürfnisse abgestimmt, dann beginnen Sie mit der Konfiguration von Asterisk. Diese Software ist über Module beliebig erweiterbar. Ein Modul namens Chan_capi bindet es über die CAPI-Schnittstelle direkt an die ISDN-Karte, so dass Asterisk direkten Zugriff auf die Leitungen.
Wenn Sie das Asterisk-Paket Ihrer Distribution verwenden, hier im Beispiel also Debian, empfiehlt es sich, auf das Paket des Distributors für Chan_capi zu setzen. Hier funktioniert das Zusammenspiel mit dem Asterisk des Distributors am besten, und Sie sparen sich das Kompilieren des Moduls aus dem Quelltext. Das ist bei Chan_capi sehr umständlich.
Unter Debian installieren Sie Chan_capi über apt-get install asterisk-chan-capi. Leider konfiguriert das System bei der Installation dn Asterisk nicht entsprechend, sodass der Server das neue Modul tatsächlich lädt. Das holen Sie manuell nach, indem Sie die Zeile load => chan_capi.so in /etc/asterisk/modules.conf nach autoload=yes einfügen und chan_capi.so=yes unter [global] eintragen.
Nun ist zunächst ein Neustart von Asterisk fällig. Das erledigen Sie mit /etc/init.d/asterisk restart. Haben Sie die ISDN-Karte im Asterisk-Rechner jetzt mit dem entsprechenden Anschluss verbunden, dann registriert der Rechner ab nun die eingehenden Anrufe auf diesen Leitungen. Da der Server jedoch nicht für die Annahme solcher Telefonate konfiguriert ist, schickt er den Anruf stillschweigend ins Leere.
Alte Bekannte
Als nächstes steht daher auf dem Plan, Asterisk so einzurichten, dass es einen eingehenden Anruf aus dem Festnetz an das richtige Telefon oder an das passende Softwaretelefon weiterleitet. Zudem soll der Server abgehende Verbindungen per ISDN zulassen.
Dafür konfigurieren Sie zunächst in /etc/asterisk/capi.conf die ISDN-Schnittstelle der Telefonanlage. Wenn Sie die Datei öffnen, sehen Sie einen Konfigurationsabschnitt mit dem bekannten Namen [general]. Diesen Abschnitt übernehmen Sie unverändert. Darunter sehen Sie einen Eintrag namens [interfaces].
Hier gehört das entsprechende Interface hin, denn ein Eintrag in capi.conf definiert alle Eigenschaften, die Asterisk sich für die ISDN-Verbindung merkt. Hinter msn= tragen Sie Ihre Nummer ohne die Ortsvorwahl ein.
Als zentraler Dreh- und Angelpunkt arbeitet in Asterisk der so genannte Dialplan, der in /etc/asterisk/extensions.conf den Sie als Administrator eintragen. Anhand dieses Dialplans weiß das Programm, über welchen Anbieter es Verbindungen aus dem lokalen Netzwerk nach außen leiten darf und zu welchem Telefon es Anrufe und andere Verbindungen von außen durchstellt. Dazu verwendet es einzelne Befehlskolonnen, so genannte Contexts.
Wenn Sie dem Beispiel aus dem Asterisk-Artikel folgen, haben Sie in extensions.conf einen Kontext namens default definiert. Damit Asterisk weiß, in welchem Abschnitt der extensions.conf es bei eingehenden Anrufen über ISDN später Informationen findet, tragen Sie eine Zeile im Format context=Name ein – im Beispiel also context=default.
Die übrigen Zeilen übernehmen Sie aus Listing 1, das einen fertigen Abschnitt [interfaces] zeigt. Speichern Sie die Datei anschließend ab.
Listing 1
[interfaces] msn=88XXXX incomingmsn=* controller=1 softdtmf=0 accountcode= context=2000 devices=2
Wie passt nun ISDN in dieses Beispiel? Die Datei extensions.conf definiert eine solchen Anschluss prinzipiell nicht anders als einen Zugang über VoIP. Prinzipiell ereichen alle Anrufe von außen jeden Teilnehmer in dem Netzwerk, das der Asterisk-Server verwaltet.
Das Ziel finden
Was mit einem eingehenden Anruf geschieht, definieren Sie wieder in der Datei extensions.conf. Das ensprechende Schlüsselwort lautet hier exten. Ein beispielhafte Zeile hat den folgenden Aufbau:
exten => Nummer,Priorität,Dial(Ziel,15,tTr)
Der letzte Teil (,15,tTr) gehört nicht zwingend als fester Bestandteil zur Zeile; es empfiehlt sich aber dringend, in den letzten beiden Feldern, die Standardwerte zu übernehmen. Sie bestimmen die Eigenschaften des Anrufes. Wie sieht nun eine solche Konfigurationszeile für einen ISDN-Zugang aus?
Im Feld Nummer tragen Sie bei einem ISDN-Anschluss grundsätzlich Ihre Telefonnummer als Wert ein. In der Regel handelt es sich um den gleichen Wert, der in capi.conf in der Zeile msn= steht.
Bei Priorität fügen Sie als Wert eine 1 ein. Im Feld Ziel tragen Sie jeweils den Benutzernamen des Telefons am Asterisk-Server ein, an den dieser das Telefonat weiterleiten soll. Wenn sich also ein Softphone oder auch ein Hardware-VoIP-Telefon über das SIP-Protokoll als 2000 an Asterisk anmeldet, tragen Sie in diesem Feld SIP/2000 ein.
Wenn Sie einen anderen Benutzernamen verwenden, ändern Sie das Beispiel wie es im jeweiligen Falle notwendig ist. Ein fertiger Definitionsblock für eingehende Anrufe könnte aussehen wie in Listing 2.
Listing 2
exten => 012345,1,Dial(SIP/2000,15,tTr) exten => 012345,103,DigitTimeout,10 exten => 012345,104,ResponseTimeout,20
Nun gilt es noch, Asterisk zu sagen, welche Anrufe er über ISDN umleiten muss. Schließlich gilt es, in Sachen Telefongebühren den besten Kompromiss zwischen VoIP und Festnetz zu finden. Eine einzelne Zeile reicht aus, um dies zu veranlassen.
Sie folgt der Syntax exten => _Vorwahl.,1,Dial(CAPI/Nummer :${EXTEN:1}). Der Wert Vorwahl entspricht dabei nicht Ihrer Ortsvorwahl, sondern der Zahl, die Sie später auf einem Telefon vor der eigentlichen Nummer wählen, um Asterisk anzuzeigen, dass Sie für den Anruf eine ISDN-Verbindung wünschen. Tragen Sier hier 9 ein und wählen dann vor der jeweiligen Nummer die 9, so leitet Asterisk den Anruf über ISDN nach außen.
Der Wert Nummer steht hier nochmals für Ihre ISDN-Telefonnummer, wieder ohne die Ortsvorwahl. Die vollständige Zeile sähe, wenn Sie die Telefonnummer 012345 besitzen: exten => _9.,1,Dial(CAPI/012345:${EXTEN:1}). Tragen Sie die aufgeführten Zeilen schlicht in den Block [default] ein.
Loslegen
Starten Sie Asterisk wie oben beschrieben neu. Wenn jetzt ein Anruf über die ISDN-Leitung eingeht, stellt Asterisk dies fest und leitet ihn an das entsprechende Telefon weiter. Folgen Sie diesem Beispiel in den wichtigsten Punkten, stehen Ihnen außerdem problemlos die ISDN-Leitungen für abgehende Anrufe bereit. Dazu wählen Sie die 9 vor. Mit 90221... würden Sie beispielsweise einen Anschluss in Köln erreichen.
Damit integriert sich auf Ihrem heimischen Rechner die bekannte Festnetz-Telefonie sehr gut mit der neuen Kommunikation via Voice-over-IP.
Infos
[1] AVM-Treiber: http://www.avm.de/de/Download/
[2] CAPI4Linux mit Suse 9.3: http://www.avm.de/ftp/cardware/fritzcrd.pci/linux/suse.93/
[3] AVM-Hilfe-Archiv: http://www.avm.de/de/Service/Service-Portale/Service-Portal/index.php?portal=Linux




