Konfiguration der ISDN-Treiber

Dieses Kapitel beschreibt die Anbindung der bristuffed-Version von Asterisk an einen ISDN-Anschluss. Stellvertretend für diverse andere Karten der Firma Junghanns wird dies am Beispiel der quadBRI 4-Port ISDN-Karte durchgeführt. Die gesamte Produktpalette von Junghanns ist unter http://www.junghanns.net/en/produkte.html aufgeführt.

Die Konfiguration der ISDN-Treiber erfordert etwas Hintergrundwissen zum Thema ISDN, das dieses Buch nicht in der ganzen Fülle vermitteln kann. Es wird nachfolgend davon ausgegangen, dass die Installation an einem solchen Anschluss durch entsprechend fachkundiges Personal, das mit den wesentlichen Begriffen der ISDN-Technologie vertraut ist, vorbereitet und durchgeführt wird.

Um eine quadBRI ISDN-Karte in Betrieb zu nehmen, sind einige weitere Schritte notwendig. Zunächst kopieren Sie die notwendigen Grundkonfigurationsdateien in die entsprechenden Verzeichnisse: aus dem Verzeichnis /usr/src/bristuff-0.3.0-PRE-1w/qozap die Datei zapata.conf nach /etc/asterisk und die Datei zaptel.conf nach /etc.

debian:/usr/src/bristuff-0.3.0-PRE-1w# cp qozap/zapata.conf /etc/asterisk/
debian:/usr/src/bristuff-0.3.0-PRE-1w# cp qozap/zaptel.conf /etc/
debian:/usr/src/bristuff-0.3.0-PRE-1w#

Die Datei zaptel.conf kann unverändert gelassen werden, man kann aber natürlich die dort enthaltenen Ländereinstellungen korrigieren. Dazu ändert man die Werte der Parameter loadzone und defaultzone von nl nach de.

loadzone=de
defaultzone=de
# qozap span definitions
# most of the values should be bogus because we are not really zaptel
span=1,1,3,ccs,ami
span=2,2,3,ccs,ami
span=3,0,3,ccs,ami
span=4,0,3,ccs,ami

bchan=1,2
dchan=3
bchan=4,5
dchan=6
bchan=7,8
dchan=9
bchan=10,11
dchan=12

Die Anpassung der Datei zapata.conf in /etc/asterisk hingegen erfordert schon etwas mehr Hintergrundwissen. Zunächst wird auch hier der Ländercode language von en nach de geändert und die entsprechende Zeile einkommentiert. Nun muss das System an die speziellen Bedürfnisse angepasst werden. Es können hier nicht alle Möglichkeiten aufgeführt werden, aber es werden Beispiele für eine übliche Konfiguration einer Asterisk-Anlage mit einer quadBRI-Karte gegeben. Folgende Fragen müssen bei der Planung und Konfiguration der Anlage geklärt werden:

  • Wird die Anlage an einem Mehrgeräteanschluss oder einem Anlagenanschluss betrieben?

  • Wie viele Spans (also Ports) der quadBRI-Karte werden belegt?

  • Sollen ISDN-B-Kanäle für spezielle Zwecke reserviert werden oder können alle für ausgehende Verbindungen genutzt werden?

Die Konfiguration der Anschlussart ist unkompliziert:

(Komfort-)Anlagenanschlusssignalling = bri_cpe
(Komfort-)Mehrgeräteanschlusssignalling = bri_cpe_ptmp

Die Kanäle einer Karte können in Gruppen zusammengefasst werden, daher sollte vor der Konfiguration geklärt sein, wie viele Kanäle überhaupt zur Verfügung stehen und wie (oder ob überhaupt) diese Kanäle unterschiedlichen Gruppen zugeteilt werden sollen. Bei einem Anlagen- oder Mehrgeräteanschluss stehen in der Regel zwei B-Kanäle und ein D-Kanal zur Verfügung. Die quadBRI-Karte kann also mit ihren 4 sogenannten Spans maximal 8 B-Kanäle und 4 D-Kanäle ansteuern, was auch im unteren Teil der zaptel.conf-Datei ersichtlich ist. Grob formuliert sind also maximal 8 externe Gespräche möglich. Man kann Asterisk nun entweder durch eine Gruppierung explizit vorgeben, welche Kanäle in welchem Fall zu nutzen sind oder man macht sich darüber gar keine Gedanken und fasst alles zu einer Gruppe zusammen. Eine Gruppe macht nur bei ausgehenden Anrufen Sinn, bei eingehenden Anrufen kann man in der Regel nicht direkt vorhersehen, auf welcher Leitung welcher Anrufer landen wird, da diese meist im Round-Robin-Verfahren an die zur Verfügung stehenden Anschlüsse verteilt werden. Daher kommt der Gruppen-Parameter auch später im Kapitel nur bei abgehenden Wählverbindungen zum Tragen.

Möchten Sie sich keine Gedanken über ein Gruppierung machen, setzen Sie alle verfügbaren B-Kanäle in eine Gruppe. Wichtig ist, dass dort wirklich nur B-Kanäle aufgeführt werden, sonst kommt es im Wirkbetrieb zu den unterschiedlichsten Fehlermeldungen. Welche Kanalnummern B-Kanäle und welche D-Kanäle sind, wird aus dem unteren Teil der zaptel.conf Datei recht deutlich (siehe oben).

; Alle B-Kanäle in eine Gruppe
group = 1
; S/T port 1,2,3,4
channel => 1,2,4,5,7,8,10,11

Möchten Sie jeden Anschluss (à 2 B-Kanäle) in eine eigene Gruppe setzen, so nutzen Sie die vorhandene Default-Konfiguration

; Für jeden Anschluss eine eigene Gruppe
group = 1
; S/T port 1
channel => 1-2

group = 2
; S/T port 2
channel => 4-5

group = 3
; S/T port 3
channel => 7-8

group = 4
; S/T port 4
channel => 10-11

Die Gruppen tauchen später in der Konfiguration des Wählplans wieder auf, dort wird deren Nutzung deutlich.

Als Beispiel ist nachfolgend eine zapata.conf-Datei für einen Euro-ISDN (Komfort-)Anlagenanschluss mit 4 verfügbaren Anschlüssen, die in zwei Gruppen aufgeteilt sind, dargestellt. Der Context für eingehende Anrufe ist dabei "eingehend".

;
; Zapata telephony interface
;
; Configuration file

[channels]
;
; Default language
;
language=de
;
; Default context
;
;
switchtype = euroisdn

; p2mp TE mode (for connecting ISDN lines in point-to-multipoint mode)
;signalling = bri_cpe_ptmp
; p2p TE mode (for connecting ISDN lines in point-to-point mode)
signalling = bri_cpe
; p2mp NT mode (for connecting ISDN phones in point-to-multipoint mode)
;signalling = bri_net_ptmp
; p2p NT mode (for connecting an ISDN pbx in point-to-point mode)
;signalling = bri_net

pridialplan = local
prilocaldialplan = dynamic
nationalprefix = 0
internationalprefix = 00

overlapdial=yes 
immediate=no

priindication = passthrough

echocancel = yes

context=eingehend

group = 1
; S/T port 1,2,3
channel => 1,2,4,5,7,8

group = 2
; S/T port 4
channel => 10-11
[Tipp]Tipp

Die beiden Parameter overlapdial=yes und immediate=no sorgen dafür, dass bei einem Anlagenanschluss die Anrufe nicht sofort durchgestellt werden, sobald die erste gültige Durchwahlnummer erreicht wurde. So kann man einen Anlagenanschluss mit längeren Durchwahlnummern bestücken. Haben Sie beispielsweise einen Anlagenanschluss mit der Basisnummer 123456, so sind an diesem Anschluss, je nach gebuchtem Umfang, maximal die Durchwahlen 0 bis 9 enthalten, also 123456-0, 123456-1 bis 123456-9. Um Durchwahlen in der Form 123456-10 oder 123456-111 zu ermöglichen, sind oben genannte Einstellungen notwendig. Der Anruf wird dann erst nach einem kurzen Timeout mit der kompletten gewählten Nummer zur Verfügung gestellt und kann im Wählplan entsprechend bearbeitet werden.

Nachdem alle Konfigurationsdateien angepasst wurden, müssen die Treiber geladen werden. Dazu wechseln Sie in das Verzeichnis qozap innerhalb des bristuff-Zweigs und laden zunächst das Modul zaptel mittels modprobe und danach per insmod das Modul qozap.ko (Kernel 2.6) oder qozap.o (Kernel 2.4). Abschließend muss noch das Tool ztcfg aufgerufen werden.

debian:/usr/src/bristuff-0.3.0-PRE-1w# cd qozap/
debian:/usr/src/bristuff-0.3.0-PRE-1w/qozap# modprobe zaptel
debian:/usr/src/bristuff-0.3.0-PRE-1w/qozap# insmod qozap.o
debian:/usr/src/bristuff-0.3.0-PRE-1w/qozap# ztcfg
debian:/usr/src/bristuff-0.3.0-PRE-1w/qozap# 
[Wichtig]Wichtig

Der abschließende Aufruf des Tools ztcfg ist immens wichtig, da die Karten ansonsten nicht richtig funktionieren. Bitte beachten Sie, dass nach jedem Neustart des Asterisk-Rechners diese Befehlsfolge wieder aufgerufen werden muss.

[Tipp]Tipp

Wenn Sie im zaptel-Verzeichnis das Kommando make config aufrufen, wird unter /etc/init.d ein entsprechendes init.d-Skript (zaptel) installiert, das Sie über chkconfig zur Liste der Startup-Skripte hinzufügen können. Die Karte wird dann bei jedem Neustart inklusive aller Module automatisch initialisiert.

Wenn Ihre Karte bereits mit dem ISDN-Anschluss verbunden ist, sollten alle vorhandenen Kontroll-LEDs der Karte nun grün leuchten. Sollten eine oder mehrere LEDs rot leuchten, so überprüfen Sie die Anschlüsse und die Konfiguration. Ist ein Anschluss nicht belegt, ist es hingegen OK, wenn dieser rot, die restlichen belegten Anschlüsse aber grün leuchten. Zur Kontrolle können Sie auch ein abschließendes lsmod aufrufen und sollten eine ähnliche Bildschirmausgabe erhalten wie nachfolgend aufgeführt.

debian:/usr/src/bristuff-0.3.0-PRE-1w/qozap# lsmod
Module                  Size  Used by
qozap                  28192  9
zaptel                209412  25 qozap
[...]

Nun muss natürlich auch der Wählplan noch angepasst werden. Beginnen wir mit den eingehenden Anrufen. Wie oben durch den Context-Parameter beschrieben, gehen Anrufe im Context "eingehend" in die Anlage ein. Daher muss natürlich auch eine entsprechende Context-Sektion in der Datei extensions.conf enthalten sein. Ist die Anlage beispielsweise an einem Mehrgeräteanschluss konfiguriert, dessen einzelne Nummern keine Gemeinsamkeiten aufweisen, können die Endgerätenummern z.B. direkt angegeben werden.

[eingehend]
exten => 123456,1,Dial(SIP/2000,20)
exten => 123456,n,VoiceMail(2000)

exten => 654321,1,Dial(SIP/2001,20)
exten => 654321,n,VoiceMail(2001)

Wenn Sie diese Sektion in der Datei extensions.conf eingerichtet und Asterisk neu haben laden lassen, kann man bereits die angegebenen Anschlüsse problemlos anrufen.

Setzen Sie statt eines Mehrgeräteanschlusses einen Anlagenanschluss ein, macht es in der Regel Sinn, mit etwas mehr "Intelligenz" im Wählplan zu arbeiten. Angenommen, die Anlage wird in einer Firma installiert, die mit dreistelligen Durchwahlen arbeitet. Dort sollten die Endgeräte so konfiguriert werden, dass sich aus den Durchwahlen leicht die Endgerätenummer ermitteln lässt, einfach um den Wählplan übersichtlich zu halten und ein unnötiges Durcheinander oder Umrechnen zu vermeiden. Anbei ein Beispiel für eine Anlage an einer 6-stelligen Basisnummer mit dreistelligen Durchwahlen. Es wird ebenfalls berücksichtigt, dass die -0 in der Zentrale aufgeschaltet wird.

[eingehend]
; Zentrale -0
exten => 1234560,1,Dial(SIP/1000,20)
exten => 1234560,n,VoiceMail(1000)

; Restliche Teilnehmer
exten => _123456[1-9]XX,1,Dial(SIP/${EXTEN:6},20)
exten => _123456[1-9]XX,n,VoiceMail(${EXTEN:6})

Dies ist natürlich nur ein kleines übersichtliches Beispiel. Im "wirklichen Leben" werden gerade größere Firmenanlagen mit einer Vielzahl zusätzlicher Features ausgestattet werden, die weit über das reine Anwählen von Mitarbeitern hinausgehen. Zudem sollte man sich auch Gedanken über nicht belegte Durchwahlnummern etc. machen, damit diese nicht auf einer Mailbox landen, die nie jemand abhört.

Nun sollen die Mitarbeiter natürlich auch mit der Außenwelt telefonieren können. Hier kommen auch endlich die Gruppen ist Spiel, die innerhalb der zapata.conf-Datei erstellt wurden. Der Übersichtlichkeit halber können Sie auch die Anwahl nach außen in einem eigenständigen Context programmieren, der dann im jeweiligen Mitarbeiter-Context inkludiert wird. Zunächst das Beispiel für eine Wahl nach draußen, bei dem man vor der eigentlichen Nummer eine 0 vorwählt, wie es in vielen Telefonanlagen der Fall ist.

[rausgehend]
exten => _0X.,1,Set(CALLERID(num)=123456${CALLERID(num):0:3})
exten => _0X.,n,Dial(Zap/g1/${EXTEN:1})

Zunächst wird die eigene Durchwahl um die Basisnummer ergänzt, damit der angerufene Partner auch die richtige Durchwahlnummer angezeigt bekommt. Danach wird der Anruf über das Zap-Device, konkret über Gruppe 1, an die gewählte Nummer (abzüglich der führenden 0, die in diesem Beispiel für die Amtsholung definiert wurde) weitergeleitet. Das Zap-Device ist das Device, welches oben durch die zaptel.conf und zapata.conf-Datei konfiguriert wurde. Die Gruppe 1 entspricht den Einstellungen in der Datei zapata.conf, somit geht der Anruf auf einem der Kanäle 1, 2, 4, 5, 7 oder 8 raus, je nachdem, was gerade noch frei ist. Um einen Anruf über Kanal 10 oder 11, also Gruppe 2, abzusetzen, muss einfach nur der Gruppenname geändert werden. Zudem gehen in der nachfolgenden Beispielkonfiguration alle Anrufe unter der Nummer der Zentrale nach draußen.

[rausgehend_g2]
exten => _0X.,1,Set(CALLERID(num)=1234560)
exten => _0X.,n,Dial(Zap/g2/${EXTEN:1})

Inwieweit es sinnvoll ist, spezielle Endgeräte auf spezielle Kanäle zu legen, hängt vom konkreten Einzelfall ab.

Eine Rufnummernübertragung findet im Übrigen nur dann statt, wenn am Anschluss das Dienstemerkmal CLIP (Calling Line Identification Presentation), also Rufnummernübertragung, aktiviert ist. In einem solchen Fall reicht es aus, die Basisnummer wie im Beispiel zusammen mit einer gültigen Durchwahl zusammenzusetzen. Die Vermittlungstelle kontrolliert, ob sich diese Nummer im gebuchten Nummernkreis bewegt und ergänzt ggfs. die Vorwahlnummer, wenn der Ruf in eine andere Stadt oder ein anderes Land geht. Wird in der Anlage eine ungültige Caller-ID gesetzt, korrigiert die Vermittlungstelle diese automatisch auf die zentrale Durchwahlnummer -0. Es gibt allerdings Fälle, in denen es gewünscht ist, andere Nummern zu übertragen, z.B. wenn man bei einer Anrufweiterleitung die Nummer des Anrufers und nicht die des Weiterleitenden übertragen will. Um das zu erreichen, muss beim Telekommunikationsanbieter das in der Regel kostenpflichtige Merkmal "CLIP - no screening" beantragt werden, dann können beliebige Caller-IDs angezeigt werden. Aber Vorsicht: Hier muss man sich um die korrekte Darstellung der Rufnummer komplett alleine kümmern, inkl. nationaler und internationaler Vorwahlnummern. Ein Fehler in einer solchen Konfiguration führt schlicht dazu, dass niemand die von Ihnen angezeigte Rufnummer zurückrufen kann. Im ungünstigsten Fall weisen Sie vielleicht auch eine Nummer eines anderen Teilnehmers aus, das kann sogar rechtliche Schritte nach sich ziehen, da ein solcher Verstoß kein Kavaliersdelikt darstellt. Sie sollten also von diesem Feature nur mit der gebotenen Vorsicht Gebrauch machen und alle Szenarien (Anruf innerhalb derselben Stadt, Anruf in fremder Stadt, Anruf im Ausland, etc.) ausgiebigst getestet haben.

Herzlichen Glückwunsch - die Anlage ist nun grundlegend für den Betrieb am ISDN-Anschluss konfiguriert.


Version 1.2, November 2002

Neue Version verfügbar

Sie betrachten gerade die alte Version des Buches (Version 1.0). Wir empfehlen Ihnen für Asterisk 1.4 und 1.6 die neue Version des Buches.

Asterisk-Tag 2008

Lernen Sie Mark Spencer (den Erfinder von Asterisk) kennen! Viele Vorträge, Case-Studies und Workshops rund um das Thema VoIP. Asterisk-Tag.org

Das gedruckte Buch