ISDN ist in Deutschland die vorherrschende Technik, um Sprachdienste zur Verfügung zu stellen. Nur noch in wenigen Privathaushalten gibt es analoge Telefonanschlüsse. Im geschäftlichen Bereich ist ISDN der De-facto-Standard. Die Verfügbarkeit von schnellen und günstigen Internetanschlüssen und damit die Nutzung von Sprachdiensten via TCP/IP-Netzwerke (VoIP) wird ISDN wahrscheinlich mittel- bis langfristig ablösen (mit diesem Buch tragen wir auch unmittelbar dazu bei), aber bis dahin ist noch etwas Zeit.
Erwarten Sie an dieser Stelle keine grundlegende Einführung in das Thema ISDN und in die nähere Funktionsweise. ISDN wird in diesem Kapitel nur soweit besprochen, wie es für die Benutzung mit Asterisk relevant ist.
Ein ISDN-Anschluss stellt sogenannte D- und B-Kanäle zur Verfügung. Ein einzelner B-Kanal ist (vereinfacht gesagt) vergleichbar mit einer analogen Telefonleitung: Es kann genau ein Gespräch darüber geführt werden. Im Gegensatz zur analogen Telefonie, können aber pro Leitungspaar zwei B-Kanäle gleichzeitig übertragen werden (also zwei Gespräche). So werden bestehende Ressourcen besser genutzt. Außerdem werden die Daten digital und nicht analog übertragen. Dadurch ist die subjektive Sprachqualität viel besser.
Unterschiede D- und B-Kanal:
Der B-Kanal ist in unserem Fall ein Sprachkanal. Die Datenübertragungsmöglichkeit (64 kbps) ist für uns ohne Belang.
Der D-Kanal ist ein reiner Datenkanal (16 kbps). Allerdings kann darauf vom Endbenutzer nicht direkt zugriffen werden.[105] Vereinfacht gesagt benutzen ISDN-Telefone, ISDN-Telefonanlagen oder auch ISDN-Karten den D-Kanal, um sich mit der Vermittlungsstelle zu unterhalten.
Wir gehen in diesem Kapitel von einem funktionierenden ISDN-Anschluss in den Varianten Basis und Multiplex aus.
Der normale Basis-Anschluss wird im Telefonie-Umfeld häufig als BRI für "Basic Rate ISDN" genannt. Dieser Anschluss genügt für fast alle privaten Haushalte und auch für die meisten mittelständischen Betriebe. Er bietet 2 B-Kanäle und einen D-Kanal. Um es aber etwas komplizierter zu machen, gibt es diesen Anschluss in zwei verschiedenen Varianten:
Mehrgeräteanschluss
An ihm können bis zu 8 ISDN-Endgeräte angeschlossen werden, die dann über eigene MSNs (Telefonnummern) anwählbar sind. Mehrere Endgeräte können auf die gleichen MSN konfiguriert sein.
Anlagenanschluss
An diesen kann nur ein ISDN-Endgerät angeschlossen werden (bei uns eine ISDN-Karte, die im Asterisk-Server läuft). Wer mehr als zwei B-Kanäle benötigt, kann mehrere Anlagenanschlüsse mit der gleichen Rufnummer auf eine oder mehrere ISDN-Karten anschließen.
Der Multiplex-Anschluss kann als großer Bruder des Anlagenanschlusses bezeichnet werden. Auch er akzeptiert nur ein ISDN-Endgerät (dies ist auch hier fast immer eine Telefonanlage) und bietet in Europa 30 B-Kanäle und einen D-Kanal (diesmal allerdings mit 64 kbps). Er wird entweder S2M oder E1 genannt. In den USA wird er übrigens T1 genannt und bietet nur 24 B-Kanäle (plus einen D-Kanal).
Im Telefonie-Umfeld wird von Multiplex auch häufig als PRI für "Primary Rate ISDN" gesprochen.
Der Betrieb einer oder mehrerer ISDN-Karten in einem Asterisk-Server ist sehr einfach. Allerdings ist die Installation und Konfiguration leider immer noch nicht trivial. Es gibt verschiedene Möglichkeiten, ISDN-Karten mit Asterisk "zum Laufen" zu bringen. Auf die einzelnen Varianten gehen wir in diesem Kapitel in jeweils eigenen Bereichen ein.
Wichtig | |
---|---|
Alle in diesem Kapitel beschriebenen Installationsmethoden werden anhand eines Debian Linux-Systems beschrieben. Die jeweilige Installation kann sich auf einem anderen Linux-System ganz anders darstellen und auf so manchem BSD-System gar nicht funktionieren. Wir empfehlen Ihnen dringend, die hier beschriebenen Wege 1:1 zu übernehmen und deshalb auch ein Debian Linux einzusetzen. |
Die Frage, welche ISDN-Karte zu empfehlen ist, ist schwer und in einem gedruckten Buch eigentlich gar nicht zu beantworten. Dafür sind folgende Gründe verantwortlich:
Zur Drucklegung dieses Buches sticht kein einzelnes Produkt aus der Fülle der Anbieter hervor, die ISDN-Karten sind in Funktionsumfang und -güte zueinander weitgehend vergleichbar.
Die Software, speziell die Treiber, werden kontinuierlich verbessert und was heute zutrifft, kann für einen Leser in einem Jahr vielleicht nicht mehr nachvollziehbar sein.
Der Support des Herstellers kann nicht endkundengerecht verglichen werden.
Je nach Einsatzzweck ergeben sich unterschiedliche Anforderungen an die Produkte. Hier trennt eine Unterscheidung in gewerbliche und private Nutzung die Produkte in zwei Lager. Bei einer privaten Nutzung kann eine Anlage auch mal durch einen fehlerhaften Treiber für ein paar Stunden ausfallen. Dies ist im gewerblichen Einsatz nicht akzeptabel.
Das größte Problem für den Autor ist jedoch, dass er bei jeder Empfehlung die Kriterien nicht derart transparent darstellen kann, ohne dass ein Verdacht der Schleichwerbung entsteht. In einem seriösen Buch über Asterisk kommt man nicht umhin, alle gängigen Produkte wertfrei zu beschreiben.
In diesem Teil des Buches wird die Installation und Konfiguration verschiedener ISDN-Karten beschrieben.
Die „bristuffed“-Version von Asterisk ist eine von der Firma Junghanns gepatchte Version von Asterisk, die neben der Anpassung einiger Treiber auf die ISDN-Hardware von Junghanns auch einige nützliche Anpassungen im Bereich des Asterisk-Funktionsumfangs enthält (siehe z.B. Abschnitt 2, „Snom VoIP-Telefone“).
Tipp | |
---|---|
Die bristuff-Version ist übrigens nicht nur für Junghanns ISDN-Karten, sondern für alle ISDN-Karten mit dem Cologne-Chipsatz geeignet. Dieser Chip ist erkennbar an dem auf ihm aufgedruckten Kölner Dom. |
In diesem Kapitel wird beschrieben, wie man diese Version von Asterisk installiert, und es wird gezeigt, wie man das System am Beispiel der QuadBRI-ISDN-Karte an einem ISDN-Anlagen- oder Mehrgeräte-Anschluss konfiguriert.
Zunächst stellen Sie sicher, dass das Debian Linux (stable) System genau auf dem Stand ist, wie in „Installation Asterisk 1.2.x auf Debian Linux“ beschrieben. Wir setzen hier vor der Installation der Asterisk-Sourcen an. Zur korrekten Erzeugung aller Treiber des bristuff-Pakets werden die zum installierten Kernel passenden Sourcen benötigt. Stellen Sie vorher mittels uname -a fest, welche Kernel-Version installiert ist und laden Sie mit apt-get install kernel-source-<version> die dazu passenden Sourcen herunter.
debian:~# uname -a Linux debian 2.4.27-3-386 #1 Wed Dec 6 00:38:33 UTC 2006 i686 GNU/Linux debian:/usr/src# apt-get install kernel-source-2.4.27 Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: bzip2 [...] Richte bzip2 ein (1.0.2-7) ... Richte kernel-source-2.4.27 ein (2.4.27-10sarge5) ... debian:~#
Da BRIstuff das Programm patch
benutzt, muss dieses
noch mit apt-get -y install patch installiert
werden.
debian:/usr/src# apt-get -y install patch Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: patch [...] debian:~#
Wechseln Sie ins Verzeichnis /usr/src
. Dort
befindet sich nun eine Datei
kernel-source-2.4.27.tar.bz2
. Diese wird mit dem
Kommando tar xvjf kernel-source-2.4.27.tar.bz2
dekomprimiert und entpackt. Danach wird ein "symbolic" Link mit Namen
linux
auf diese Sourcen gelegt.
debian:~# cd /usr/src/ debian:/usr/src# tar xvjf kernel-source-2.4.27.tar.bz2 [...] debian:/usr/src# ln -s kernel-source-2.4.27 linux debian:/usr/src#
Wichtig | |
---|---|
Setzen Sie einen Kernel der Version 2.6 ein, muss der Sym-Link den
Namen |
Die Kernel-Sourcen müssen nun für die aktuelle Installation
konfiguriert werden. Dazu wechseln Sie mit cd linux in
das neu angelegte Verzeichnis linux
(oder
linux-2.6
). Kopieren Sie dann mit cp
/boot/config-2.4.27-3-386 .config die aktuelle zum Kernel
gehörige Konfiguration aus dem Verzeichnis /boot
unter dem Namen .config
in das Verzeichnis
linux
(oder linux-2.6
) und rufen
Sie die Befehle make oldconfig und make
dep auf.
debian:/usr/src# cd linux debian:/usr/src/linux# cp /boot/config-2.4.27-3-386 .config debian:/usr/src/linux# make oldconfig rm -f include/asm ( cd include ; ln -sf asm-i386 asm) /bin/sh scripts/Configure -d arch/i386/config.in # # Using defaults found in .config # * * Code maturity level options * [...] CRC32 functions (CONFIG_CRC32) [M/n/y/?] Hotplug firmware loading support (EXPERIMENTAL) (CONFIG_FW_LOADER) [M/n/y/?] *** End of Linux kernel configuration. *** Check the top-level Makefile for additional configuration. *** Next, you must run 'make dep'. debian:/usr/src/linux# make dep gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/mkdep scripts/mkdep.c make[1]: Entering directory `/usr/src/kernel-source-2.4.27/arch/i386/boot' make[1]: Für das Ziel »dep« ist nichts zu tun. make[1]: Leaving directory `/usr/src/kernel-source-2.4.27/arch/i386/boot' rm -f .depend .hdepend [...] scripts/mkdep -- init/*.c > .depend debian:/usr/src/linux#
Das Schlimmste ist überstanden, nun sind alle Kernel-Quellen korrekt konfiguriert und es kann mit der eigentlichen bristuff-Installation weitergehen.
Auf der Homepage http://www.junghanns.net der Firma Junghanns befinden sich einige Informationen zu den unterstützten und erhältlichen Karten sowie Links zu den stabilen und experimentellen Versionen von bristuff. Alle bisher veröffentlichten Pakete finden sich unter http://www.junghanns.net/downloads.
Entgegen der bisherigen Philosophie empfehle ich die Installation
des aktuellsten bristuff-Pakets, da dieses auf einem sehr aktuellen
Asterisk 1.2-System basiert und viele Fehler der vorherigen Releases
eliminiert. Laden Sie die zur Drucklegung aktuelle Version mit
wget
http://www.junghanns.net/downloads/bristuff-0.3.0-PRE-1w.tar.gz
in das Verzeichnis /usr/src/
herunter.
debian:/usr/src/linux# cd /usr/src/ debian:/usr/src# wget http://www.junghanns.net/downloads/bristuff-0.3.0-PRE-1w.tar.gz --17:18:53-- http://www.junghanns.net/downloads/bristuff-0.3.0-PRE-1w.tar.gz => `bristuff-0.3.0-PRE-1w.tar.gz' Auflösen des Hostnamen »www.junghanns.net«.... 192.67.198.55 Verbindungsaufbau zu www.junghanns.net[192.67.198.55]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 275,886 [application/x-gzip] 100%[=================================================================================================================>] 275,886 913.34K/s 17:18:54 (910.80 KB/s) - »bristuff-0.3.0-PRE-1w.tar.gz« gespeichert [275886/275886]
Die komprimierte Datei muss jetzt mit tar xvzf bristuff-0.3.0-PRE-1w.tar.gz entpackt werden:
debian:/usr/src# tar xvzf bristuff-0.3.0-PRE-1w.tar.gz bristuff-0.3.0-PRE-1w/ bristuff-0.3.0-PRE-1w/ISDNguard/ bristuff-0.3.0-PRE-1w/ISDNguard/INSTALL.ISDNguard bristuff-0.3.0-PRE-1w/ISDNguard/Makefile bristuff-0.3.0-PRE-1w/ISDNguard/guard.c [...] bristuff-0.3.0-PRE-1w/qozap/zapata.conf bristuff-0.3.0-PRE-1w/qozap/zapata.conf.octoBRI bristuff-0.3.0-PRE-1w/qozap/zaptel.conf bristuff-0.3.0-PRE-1w/qozap/zaptel.conf.octoBRI debian:/usr/src#
Die entpackten bristuff-Dateien müssen nun kompiliert und installiert werden. Dies geschieht mit dem Skript install.sh im gerade entpackten Verzeichnis. Der Kompiliervorgang kann je nach Rechenleistung des PCs wenige Minuten oder bis zu einer Stunde dauern. Einige Zwischenschritte müssen vom Anwender jedoch manuell mit ENTER bestätigt werden. Der Vorteil ist allerdings, dass dieses Installationsskript nahezu alles erledigt; angefangen vom Herunterladen der notwendigen Asterisk- und Zusatzpakete bis hin zur wesentlichen Installation des Systems.
debian:/usr/src# cd bristuff-0.3.0-PRE-1w debian:/usr/src/bristuff-0.3.0-PRE-1w# ./install.sh --18:21:59-- http://www.asterisk-support.de/mirror/zaptel/zaptel-1.2.10.tar.gz => `zaptel-1.2.10.tar.gz' Auflösen des Hostnamen »www.asterisk-support.de«.... 212.51.16.139 Verbindungsaufbau zu www.asterisk-support.de[212.51.16.139]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 1,258,750 [application/x-tar] 100%[====================================>] 1,258,750 1.04M/s 18:22:01 (1.04 MB/s) - »zaptel-1.2.10.tar.gz« gespeichert [1258750/1258750] --18:22:01-- http://www.asterisk-support.de/mirror/libpri/libpri-1.2.4.tar.gz => `libpri-1.2.4.tar.gz' Auflösen des Hostnamen »www.asterisk-support.de«.... 212.51.16.139 [...] **************************************************** ASTERISK installed. Installation finished. **************************************************** debian:/usr/src/bristuff-0.3.0-PRE-1w#
Die Software ist jetzt kompiliert und bereits zum großen Teil
installiert. Allerdings finden wir im Asterisk-Konfigurationsverzeichnis
/etc/asterisk/
noch gähnende Leere vor. In diesem
Verzeichnis liegen die Konfigurationsdateien von Asterisk und da wir nicht
von Null beginnen möchten, lassen wir uns die Standarddateien erstellen.
Dies erreichen wir mit make samples aus dem Verzeichnis
/usr/src/bristuff-0.3.0-PRE-1w/asterisk
:
debian:/usr/src/bristuff-0.3.0-PRE-1w# cd asterisk debian:/usr/src/bristuff-0.3.0-PRE-1w/asterisk# make samples build_tools/make_version_h > include/asterisk/version.h.tmp if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; then echo; [...] done debian:/usr/src/bristuff-0.3.0-PRE-1w/asterisk# cd .. debian:/usr/src/bristuff-0.3.0-PRE-1#
Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl asterisk -V können Sie die installierte Version herausfinden (bitte achten Sie auf das großgeschriebene V):
debian:/usr/src/bristuff-0.3.0-PRE-1w# asterisk -V Asterisk 1.2.13-BRIstuffed-0.3.0-PRE-1v
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-)Anlagenanschluss | signalling = bri_cpe |
(Komfort-)Mehrgeräteanschluss | signalling = 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 | |
---|---|
Die beiden Parameter |
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 | |
---|---|
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 | |
---|---|
Wenn Sie im zaptel-Verzeichnis das Kommando make
config aufrufen, wird unter |
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.
mISDN (modular ISDN for Linux) ist der offizielle Nachfolger von ISDN for Linux (hisax). Durch seinen modularen Aufbau unterstützt es neben den bekannten Treibern und Funktionen nun auch den NT Mode und ein Audio Software DSP.
Anmerkung | |
---|---|
mISDN bietet von allen ISDN Stacks, die für Linux verfügbar sind, die breiteste Abdeckung von unterschiedlichen ISDN-Karten. Deshalb wurde chan_misdn, das mISDN mit Asterisk verbindet, auch mit in den Asterisk-Entwicklungszweig aufgenommen und hat dort chan_i4lmodem abgelöst. |
Aufbau von mISDN
mISDN gliedert sich in zwei Software-Pakete:
mISDN
Einerseits gibt es das mISDN-Paket, das die Hardware-Kernel-Module und den TE-Stack beinhaltet, und deshalb auch gegen die installierten Kernel-Header kompiliert werden muss. Es enthält darüber hinaus ein Skript zur automatischen Detektierung und Konfiguration der installierten Karten.
mISDNuser
Andererseits gibt es das mISDNuser-Paket, das die Schnittstelle für Applikationen wie chan_misdn bildet, und zudem den NT Mode-Stack enthält. Hier ist auch das nützliche Tool misdnportinfo enthalten.
In diesem Kapitel gibt es zwei Anleitungen für den Betrieb von mISDN. Die eine bezieht sich auf die Digium ISDN-Karte B410P und die andere auf allgemeine mISDN-Karten.
Dieses Kapitel beschreibt die Installation und Inbetriebnahme einer Digium B410P ISDN-Karte.
Diese Installationsanleitung setzt ein frisch installiertes Debian GNU/Linux 3.1 (a.k.a. sarge) voraus.
Wichtig | |
---|---|
Bitte beachten Sie, das die Installationsanleitung nur für die zum Zeitpunkt der Veröffentlichung dieses Buches aktuelle Debian Version 3.1 und nicht für neuere Debian Versionen geeignet ist. Ein Update der Anleitung für die Debian Version 4.0 finden Sie in der zukünftigen Version des Buches. Teile davon können Sie bereits jetzt unter http://www.das-asterisk-buch.de/unstable/ einsehen. |
Wir empfehlen zur Installation das Netzwerkinstallations-CD-Image, welches ungefähr 100 MB gross ist und unter http://www.debian.org/releases/sarge/debian-installer/ downgeloadet werden kann. Eine Debian GNU/Linux-Installationsanleitung steht unter http://www.debian.org/releases/sarge/i386/ und ein allgemeines Anwenderhandbuch unter http://debiananwenderhandbuch.de.
Nach erfolgreicher Installation des Debian Linux-Systems melden Sie sich als Benutzer root am System an und führen Sie die hier nachfolgend angegebenen Befehle aus. Bitte achten Sie darauf, keinen Schritt auszulassen und die Schritte als Benutzer root durchzuführen.
Als Erstes stellen Sie mit einem apt-get update
sicher, dass apt-get
alle aktuellen Paketlisten zur Verfügung
hat:
debian:~# apt-get update OK http://ftp.de.debian.org stable/main Packages OK http://ftp.de.debian.org stable/main Release OK http://security.debian.org stable/updates/main Packages OK http://security.debian.org stable/updates/main Release OK http://security.debian.org stable/updates/contrib Packages OK http://security.debian.org stable/updates/contrib Release OK http://ftp.de.debian.org stable/main Sources OK http://ftp.de.debian.org stable/main Release Paketlisten werden gelesen... Fertig debian:~#
Um sicherzugehen, dass alle Pakete auf dem neuesten Stand sind, führen Sie zur Sicherheit noch ein apt-get -y upgrade aus:
debian:~# apt-get -y upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Jetzt müssen Sie mit apt-get -y install openssl zlibc libkrb5-dev libncurses5-dev libssl-dev zlib1g-dev noch ein paar Pakete nachinstallieren, damit das spätere Kompilieren von Asterisk erfolgreich durchgeführt werden kann:
debian:~# apt-get -y install openssl zlibc libkrb5-dev libncurses5-dev libssl-dev zlib1g-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: comerr-dev libkadm55 Vorgeschlagene Pakete: doc-base krb5-doc ca-certificates Die folgenden NEUEN Pakete werden installiert: comerr-dev libkadm55 libkrb5-dev libncurses5-dev libssl-dev openssl zlib1g-dev zlibc 0 aktualisiert, 8 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 6025kB Archive geholt werden. Nach dem Auspacken werden 18,8MB Plattenplatz zusätzlich benutzt. Hole:1 http://ftp.de.debian.org stable/main libkadm55 1.3.6-2sarge3 [165kB] Hole:2 http://ftp.de.debian.org stable/main libncurses5-dev 5.4-4 [1038kB] Hole:3 http://ftp.de.debian.org stable/main libssl-dev 0.9.7e-3sarge4 [2555kB] Hole:4 http://ftp.de.debian.org stable/main openssl 0.9.7e-3sarge4 [906kB] Hole:5 http://ftp.de.debian.org stable/main zlib1g-dev 1:1.2.2-4.sarge.2 [488kB] Hole:6 http://ftp.de.debian.org stable/main zlibc 0.9j-7 [245kB] Hole:7 http://ftp.de.debian.org stable/main comerr-dev 2.1-1.37-2sarge1 [53,0kB] Hole:8 http://ftp.de.debian.org stable/main libkrb5-dev 1.3.6-2sarge3 [574kB] Es wurden 6025kB in 57s geholt (104kB/s) Wähle vormals abgewähltes Paket libkadm55. (Lese Datenbank ... 32512 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke libkadm55 (aus .../libkadm55_1.3.6-2sarge3_i386.deb) ... Wähle vormals abgewähltes Paket libncurses5-dev. Entpacke libncurses5-dev (aus .../libncurses5-dev_5.4-4_i386.deb) ... Wähle vormals abgewähltes Paket libssl-dev. Entpacke libssl-dev (aus .../libssl-dev_0.9.7e-3sarge4_i386.deb) ... Wähle vormals abgewähltes Paket openssl. Entpacke openssl (aus .../openssl_0.9.7e-3sarge4_i386.deb) ... Creating directory /etc/ssl Wähle vormals abgewähltes Paket zlib1g-dev. Entpacke zlib1g-dev (aus .../zlib1g-dev_1%3a1.2.2-4.sarge.2_i386.deb) ... Wähle vormals abgewähltes Paket zlibc. Entpacke zlibc (aus .../archives/zlibc_0.9j-7_i386.deb) ... Wähle vormals abgewähltes Paket comerr-dev. Entpacke comerr-dev (aus .../comerr-dev_2.1-1.37-2sarge1_i386.deb) ... Wähle vormals abgewähltes Paket libkrb5-dev. Entpacke libkrb5-dev (aus .../libkrb5-dev_1.3.6-2sarge3_i386.deb) ... Richte libkadm55 ein (1.3.6-2sarge3) ... Richte libncurses5-dev ein (5.4-4) ... Richte libssl-dev ein (0.9.7e-3sarge4) ... Richte openssl ein (0.9.7e-3sarge4) ... Richte zlib1g-dev ein (1.2.2-4.sarge.2) ... Richte zlibc ein (0.9j-7) ... Richte comerr-dev ein (2.1-1.37-2sarge1) ... Richte libkrb5-dev ein (1.3.6-2sarge3) ... debian:~#
Asterisk kann erst nach der Installation von mISDN installiert werden. mISDN lässt sich momentan nur mit einem 2.6.x Kernel kompilieren. Um diesen zu installieren, suchen Sie mit apt-cache search kernel-image-2.6.8 | grep kernel-image den zu Ihrer Architektur passenden Kernel:
debian:~# apt-cache search kernel-image-2.6.8 | grep kernel-image kernel-image-2.6.8-3-386 - Linux kernel image for version 2.6.8 on 386. kernel-image-2.6.8-11-amd64-generic - Linux kernel image for version 2.6.8 on generic x86_64 systems kernel-image-2.6.8-11-amd64-k8 - Linux kernel image for version 2.6.8 on AMD64 systems kernel-image-2.6.8-11-amd64-k8-smp - Linux kernel image for version 2.6.8 on AMD64 SMP systems kernel-image-2.6.8-11-em64t-p4 - Linux kernel image for version 2.6.8 on Intel EM64T systems kernel-image-2.6.8-11-em64t-p4-smp - Linux kernel image for version 2.6.8 on Intel EM64T SMP systems kernel-image-2.6.8-12-amd64-generic - Linux kernel image for version 2.6.8 on generic x86_64 systems kernel-image-2.6.8-12-amd64-k8 - Linux kernel image for version 2.6.8 on AMD64 systems kernel-image-2.6.8-12-amd64-k8-smp - Linux kernel image for version 2.6.8 on AMD64 SMP systems kernel-image-2.6.8-12-em64t-p4 - Linux kernel image for version 2.6.8 on Intel EM64T systems kernel-image-2.6.8-12-em64t-p4-smp - Linux kernel image for version 2.6.8 on Intel EM64T SMP systems kernel-image-2.6.8-2-386 - Linux kernel image for version 2.6.8 on 386. kernel-image-2.6.8-2-686 - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4. kernel-image-2.6.8-2-686-smp - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4 SMP. kernel-image-2.6.8-2-k7 - Linux kernel image for version 2.6.8 on AMD K7. kernel-image-2.6.8-2-k7-smp - Linux kernel image for version 2.6.8 on AMD K7 SMP. kernel-image-2.6.8-3-686 - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4. kernel-image-2.6.8-3-686-smp - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4 SMP. kernel-image-2.6.8-3-k7 - Linux kernel image for version 2.6.8 on AMD K7. kernel-image-2.6.8-3-k7-smp - Linux kernel image for version 2.6.8 on AMD K7 SMP. debian:~#
In diesem Beispiel entscheiden wir uns für den Kernel
kernel-image-2.6.8-3-686
und installieren diesen
mit apt-get -y install
kernel-image-2.6.8-3-686:
debian:~# apt-get -y install kernel-image-2.6.8-3-686 Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Vorgeschlagene Pakete: lilo kernel-doc-2.6.8 kernel-source-2.6.8 Die folgenden NEUEN Pakete werden installiert: kernel-image-2.6.8-3-686 0 aktualisiert, 1 neu installiert, 0 zu entfernen und 1 nicht aktualisiert. Es müssen 15,6MB Archive geholt werden. Nach dem Auspacken werden 45,2MB Plattenplatz zusätzlich benutzt. Hole:1 http://security.debian.org stable/updates/main kernel-image-2.6.8-3-686 2.6.8-16sarge6 [15,6MB] Es wurden 15,6MB in 1m7s geholt (232kB/s) Wähle vormals abgewähltes Paket kernel-image-2.6.8-3-686. (Lese Datenbank ... 25562 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke kernel-image-2.6.8-3-686 (aus .../kernel-image-2.6.8-3-686_2.6.8-16sarge6_i386.deb) ... Richte kernel-image-2.6.8-3-686 ein (2.6.8-16sarge6) ... Searching for GRUB installation directory ... found: /boot/grub . Testing for an existing GRUB menu.list file... found: /boot/grub/menu.lst . Searching for splash image... none found, skipping... Found kernel: /boot/vmlinuz-2.6.8-3-686 Found kernel: /boot/vmlinuz-2.4.27-3-386 Updating /boot/grub/menu.lst ... done debian:~#
Danach booten wir den Rechner mit shutdown -r now und können nach dem Booten mit uname -a kontrollieren, ob mit dem richtigen Kernel gebootet wurde:
debian:~# uname -a Linux debian 2.6.8-3-686 #1 Tue Dec 5 21:26:38 UTC 2006 i686 GNU/Linux debian:~#
Zum Kompilieren benötigen wir jetzt noch die zum Kernel passenden Header-Dateien. Diese können mit apt-get -y install kernel-headers-`uname -r` nachinstalliert werden:
debian:~# apt-get -y install kernel-headers-`uname -r` Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: kernel-headers-2.6.8-3 kernel-kbuild-2.6-3 Die folgenden NEUEN Pakete werden installiert: kernel-headers-2.6.8-3 kernel-headers-2.6.8-3-686 kernel-kbuild-2.6-3 0 aktualisiert, 3 neu installiert, 0 zu entfernen und 1 nicht aktualisiert. Es müssen 3402kB Archive geholt werden. Nach dem Auspacken werden 42,6MB Plattenplatz zusätzlich benutzt. Hole:1 http://ftp.de.debian.org stable/main kernel-kbuild-2.6-3 2.6.8-2 [363kB] Hole:2 http://security.debian.org stable/updates/main kernel-headers-2.6.8-3 2.6.8-16sarge6 [2781kB] Hole:3 http://security.debian.org stable/updates/main kernel-headers-2.6.8-3-686 2.6.8-16sarge6 [258kB] Es wurden 3402kB in 18s geholt (188kB/s) Wähle vormals abgewähltes Paket kernel-kbuild-2.6-3. (Lese Datenbank ... 27265 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke kernel-kbuild-2.6-3 (aus .../kernel-kbuild-2.6-3_2.6.8-2_i386.deb) ... Wähle vormals abgewähltes Paket kernel-headers-2.6.8-3. Entpacke kernel-headers-2.6.8-3 (aus .../kernel-headers-2.6.8-3_2.6.8-16sarge6_i386.deb) ... Wähle vormals abgewähltes Paket kernel-headers-2.6.8-3-686. Entpacke kernel-headers-2.6.8-3-686 (aus .../kernel-headers-2.6.8-3-686_2.6.8-16sarge6_i386.deb) ... Richte kernel-kbuild-2.6-3 ein (2.6.8-2) ... Richte kernel-headers-2.6.8-3 ein (2.6.8-16sarge6) ... Richte kernel-headers-2.6.8-3-686 ein (2.6.8-16sarge6) ... debian:~#
Auf der Asterisk-Homepage http://www.asterisk.org/
finden Sie die notwendigen Quellen, um Asterisk zu kompilieren.
Nehmen Sie bitte eine stabile und keine
Entwickler-Version und laden Sie diese mit wget
http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
in das Verzeichnis /usr/src/
herunter:
debian:/usr/src/# cd /usr/src debian:/usr/src# wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz --18:30:46-- http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz => `asterisk-1.2-current.tar.gz' Auflösen des Hostnamen »ftp.digium.com«.... 69.16.138.164 Verbindungsaufbau zu ftp.digium.com[69.16.138.164]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 10,584,113 [application/x-gzip] 100%[====================================>] 10,584,113 224.71K/s ETA 00:00 18:31:36 (207.67 KB/s) - »asterisk-1.2-current.tar.gz« gespeichert [10584113/10584113]
Als Nächstes laden Sie mit wget http://ftp.digium.com/pub/zaptel/zaptel-1.2-current.tar.gz den dazugehörigen Zaptel-Treiber:
debian:/usr/src# wget http://ftp.digium.com/pub/zaptel/zaptel-1.2-current.tar.gz --20:47:06-- http://ftp.digium.com/pub/zaptel/zaptel-1.2-current.tar.gz => `zaptel-1.2-current.tar.gz' Auflösen des Hostnamen »ftp.digium.com«.... 69.16.138.164 Verbindungsaufbau zu ftp.digium.com[69.16.138.164]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 1,487,021 [application/x-gzip] 100%[=====================================>] 1,487,021 13.08K/s ETA 00:00 20:49:12 (12.25 KB/s) - »zaptel-1.2-current.tar.gz« gespeichert [1487021/1487021] debian:/usr/src#
Da der Zaptel-Treiber immer vor dem Asterisk-Paket kompiliert werden muss, entpacken wir diesen mit tar xvzf zaptel-1.2-current.tar.gz und wechseln dann mit cd zaptel-1.2.12 in das Verzeichnis, kompilieren ihn mit make und installieren ihn mit make install:
debian:/usr/src# tar xvzf zaptel-1.2-current.tar.gz zaptel-1.2.12/ zaptel-1.2.12/build_tools/ zaptel-1.2.12/build_tools/genmodconf zaptel-1.2.12/build_tools/make_svn_branch_name zaptel-1.2.12/build_tools/genudevrules zaptel-1.2.12/build_tools/make_version_h zaptel-1.2.12/wct4xxp/ [...] zaptel-1.2.12/torisa.h zaptel-1.2.12/pattest.c zaptel-1.2.12/mg2ec_const.h zaptel-1.2.12/README.fxsusb zaptel-1.2.12/wctdm.c zaptel-1.2.12/fir.h debian:/usr/src# cd zaptel-1.2.12 debian:/usr/src/zaptel-1.2.12# make cc -I. -O4 -g -Wall -DBUILDING_TONEZONE -DSTANDALONE_ZAPATA -DZAPTEL_CONFIG=\"/etc/zaptel.conf\" -DHOTPLUG_FIRMWARE -c -o gendigits.o gendigits.c cc -o gendigits gendigits.o -lm ./gendigits > tones.h cc -I. -O4 -g -Wall -DBUILDING_TONEZONE -DSTANDALONE_ZAPATA -DZAPTEL_CONFIG=\"/etc/zaptel.conf\" -DHOTPLUG_FIRMWARE makefw.c -o makefw ./makefw tormenta2.rbt tor2fw > tor2fw.h Loaded 69900 bytes from file ./makefw pciradio.rbt radfw > radfw.h Loaded 42096 bytes from file ZAPTELVERSION="1.2.12" build_tools/make_version_h > version.h.tmp [...] LD [M] /usr/src/zaptel-1.2.12/ztd-loc.ko CC /usr/src/zaptel-1.2.12/ztdummy.mod.o LD [M] /usr/src/zaptel-1.2.12/ztdummy.ko CC /usr/src/zaptel-1.2.12/ztdynamic.mod.o LD [M] /usr/src/zaptel-1.2.12/ztdynamic.ko make[1]: Leaving directory `/usr/src/kernel-headers-2.6.8-3-686' cc -shared -Wl,-soname,libtonezone.so.1.0 -lm -o libtonezone.so zonedata.lo tonezone.lo debian:/usr/src/zaptel-1.2.12# make install ZAPTELVERSION="1.2.12" build_tools/make_version_h > version.h.tmp if cmp -s version.h.tmp version.h ; then echo; else \ mv version.h.tmp version.h ; \ fi rm -f version.h.tmp /lib/modules/2.6.8-3-686/build [...] [ -f /etc/zaptel.conf ] || install -D -m 644 zaptel.conf.sample /etc/zaptel.conf build_tools/genmodconf linux26 "" "tor2 torisa wcusb wcfxo wctdm wctdm24xxp ztdynamic ztd-eth wct1xxp wcte11xp pciradio ztd-loc ztdummy wct4xxp" Building /etc/modprobe.d/zaptel... *** *** WARNING: *** If you had custom settings in /etc/modprobe.d/zaptel, *** they have been moved to /etc/modprobe.d/zaptel.bak. *** *** In the future, do not edit /etc/modprobe.d/zaptel, but *** instead put your changes in another file *** in the same directory so that they will not *** be overwritten by future Zaptel updates. *** debian:/usr/src/zaptel-1.2.12#
Jetzt kann der Befehl make b410p aufgerufen werden und das Skript lädt selbstständig die notwendigen Dateien nach und baut die ISDN-Treiber für die Karte:
debian:/usr/src/zaptel-1.2.12# make b410p [ -f misdn-b410p.tar.gz ] || wget ftp://ftp.digium.com/pub/zaptel/b410p/misdn-b410p.tar.gz --12:27:54-- ftp://ftp.digium.com/pub/zaptel/b410p/misdn-b410p.tar.gz => `misdn-b410p.tar.gz' Auflösen des Hostnamen »ftp.digium.com«.... 216.27.40.102 Verbindungsaufbau zu ftp.digium.com[216.27.40.102]:21... verbunden. Anmelden als anonymous ... Angemeldet! ==> SYST ... fertig. ==> PWD ... fertig. ==> TYPE I ... fertig. ==> CWD /pub/zaptel/b410p ... fertig. ==> PASV ... fertig. ==> RETR misdn-b410p.tar.gz ... fertig. Länge: 572,153 (unmaßgeblich) 100%[====================================>] 572,153 183.53K/s ETA 00:00 12:27:59 (183.04 KB/s) - »misdn-b410p.tar.gz« gespeichert [572153] tar -zxf misdn-b410p.tar.gz make -C misdn install make[1]: Entering directory `/usr/src/zaptel-1.2.12/misdn' Makeing mISDN ============= cp /usr/src/zaptel-1.2.12/misdn/drivers/isdn/hardware/mISDN/Makefile.v2.6 /usr/src/zaptel-1.2.12/misdn/drivers/isdn/hardware/mISDN/Makefile [...] make[3]: Leaving directory `/usr/src/zaptel-1.2.12/mISDNuser/tenovis' make[3]: Entering directory `/usr/src/zaptel-1.2.12/mISDNuser/voip' for i in voipisdn ; do \ install -m 755 $i //usr/bin ;\ done make[3]: Leaving directory `/usr/src/zaptel-1.2.12/mISDNuser/voip' make[2]: Leaving directory `/usr/src/zaptel-1.2.12/mISDNuser' cp include/*.h //usr/include/mISDNuser/ make[1]: Leaving directory `/usr/src/zaptel-1.2.12/mISDNuser' debian:/usr/src/zaptel-1.2.12#
Jetzt wieder mit cd .. ins Verzeichnis
/usr/src
wechseln und den Asterisk-Tarball mit
tar xvzf asterisk-1.2-current.tar.gz entpacken:
debian:/usr/src/zaptel-1.2.12# cd .. debian:/usr/src# tar xvzf asterisk-1.2-current.tar.gz asterisk-1.2.14/ asterisk-1.2.14/build_tools/ asterisk-1.2.14/build_tools/make_svn_branch_name asterisk-1.2.14/build_tools/mkdep asterisk-1.2.14/build_tools/make_build_h asterisk-1.2.14/build_tools/make_version_h asterisk-1.2.14/build_tools/make_defaults_h asterisk-1.2.14/aesopt.h asterisk-1.2.14/utils.c asterisk-1.2.14/keys/ [...] asterisk-1.2.14/cli.c asterisk-1.2.14/io.c asterisk-1.2.14/ulaw.c asterisk-1.2.14/logger.c debian:/usr/src#
Die entpackten Dateien müssen jetzt kompiliert werden. Dies geschieht mit dem Befehl make im gerade entpackten Verzeichnis.
Warnung | |
---|---|
Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 1.2.14 vielleicht zum Zeitpunkt Ihrer Installation nicht mehr aktuell ist. Entsprechend werden sich die Verzeichnisnamen ändern. |
Übrigens ist dies jetzt ein guter Moment, sich einen Kaffee oder Tee zu kochen. Der Kompiliervorgang kann je nach Rechenleistung des PCs wenige Minuten oder bis zu einer Stunde dauern.
debian:/usr/src# cd asterisk-1.2.14 debian:/usr/src/asterisk-1.2.14# make if cmp -s .cleancount .lastclean ; then echo ; else \ make clean; cp -f .cleancount .lastclean;\ fi build_tools/make_version_h > include/asterisk/version.h.tmp if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; then echo; else \ mv include/asterisk/version.h.tmp include/asterisk/version.h ; \ fi rm -f include/asterisk/version.h.tmp build_tools/mkdep -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g3 -Iinclude -I../include -D_REENTRANT -D_GNU_SOURCE -O6 -march=i686 -fomit-frame-pointer acl.c aescrypt.c aeskey.c aestab.c alaw.c app.c asterisk.c ast_expr2.c ast_expr2f.c astmm.c autoservice.c buildinfo.c callerid.c cdr.c channel.c chanvars.c cli.c config.c cryptostub.c db.c devicestate.c dlfcn.c dns.c dnsmgr.c dsp.c enum.c file.c frame.c fskmodem.c image.c indications.c io.c jitterbuf.c loader.c logger.c manager.c md5.c muted.c netsock.c pbx.c plc.c poll.c privacy.c rtp.c say.c sched.c slinfactory.c srv.c strcompat.c tdd.c [...] make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/usr/src/asterisk-1.2.14/stdtime' +--------- Asterisk Build Complete ---------+ + Asterisk has successfully been built, but + + cannot be run before being installed by + + running: + + + + make install + +-------------------------------------------+
Die Software ist jetzt kompiliert und muss nur noch mit make install installiert (sprich an die vorgesehenen Stellen im Dateisystem kopiert) werden:
debian:/usr/src/asterisk-1.2.14# make install build_tools/make_version_h > include/asterisk/version.h.tmp if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; then echo; [...] +---- Asterisk Installation Complete -------+ + + + YOU MUST READ THE SECURITY DOCUMENT + + + + Asterisk has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + make samples + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +-------------------------------------------+ debian:/usr/src/asterisk-1.2.14#
Geschafft! Die soeben kompilierten Programmdateien sind jetzt auf
dem System installiert. Allerdings finden wir im
Asterisk-Konfigurationsverzeichnis /etc/asterisk/
noch gähnende Leere vor. In diesem Verzeichnis liegen die
Konfigurationsdateien von Asterisk und da wir nicht von Null beginnen
möchten, lassen wir uns die Standarddateien erstellen. Dies erreichen wir
mit make samples:
debian:/usr/src/asterisk-1.2.14# make samples build_tools/make_version_h > include/asterisk/version.h.tmp if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; then echo; [...] done debian:/usr/src/asterisk-1.2.14#
Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl asterisk -V können Sie die installierte Version herausfinden (bitte achten Sie auf das großgeschriebene V):
debian:/usr/src/asterisk-1.2.14# asterisk -V Asterisk 1.2.14 debian:/usr/src/asterisk-1.2.14#
Mit dem Skript /etc/init.d/misdn-init
können
Sie jetzt Ihre ISDN-Karte konfigurieren. Als Erstes überprüfen wir aber
mit /etc/init.d/misdn-init scan, ob die Karte auch
erkannt wird:
debian:/usr/src/asterisk-1.2.14# /etc/init.d/misdn-init scan [OK] found the following devices: card=1,0x4 [ii] run "/etc/init.d/misdn-init config" to store this information to /etc/misdn-init.conf debian:/usr/src/asterisk-1.2.14#
Das sieht sehr gut aus und führt zum nächsten Schritt: Der Konfiguration mit /etc/init.d/misdn-init config
debian:/usr/src/asterisk-1.2.14# /etc/init.d/misdn-init config [OK] /etc/misdn-init.conf created. It's now safe to run "/etc/init.d/misdn-init start" [ii] make your ports (1-4) available in asterisk by editing "/etc/asterisk/misdn.conf" debian:/usr/src/asterisk-1.2.14#
Die Konfigurationsdatei
/etc/misdn-init.conf
wurde geschrieben und wir können
mit dieser Standardkonfiguration schon mal loslegen und
/etc/init.d/misdn-init start ausführen:
debian:/usr/src/asterisk-1.2.14# /etc/init.d/misdn-init start ----------------------------------------- Loading module(s) for your misdn-cards: ----------------------------------------- modprobe --ignore-install hfcmulti type=0x4 protocol=0x12,0x12,0x12,0x12 layermask=0x3,0x3,0x3,0x3 poll=128 debug=0xf [i] creating device node: /dev/mISDN debian:/usr/src/asterisk-1.2.14#
Um auch ganz sicherzugehen, kann man noch mit lsmod | grep hfcmulti überprüfen, ob das Modul sauber geladen wurde und mit dmesg | grep Digium, ob die Karte vom Modul gefunden wurde:
debian:/usr/src/asterisk-1.2.14# lsmod | grep hfcmulti hfcmulti 76360 0 mISDN_core 85216 6 mISDN_dsp,hfcmulti,mISDN_capi,l3udss1,mISDN_l2,mISDN_l1 debian:/usr/src/asterisk-1.2.14# dmesg | grep Digium HFC-multi: card manufacturer: 'Cologne Chip AG' card name: 'HFC-4S Digium Card' clock: normal debian:/usr/src/asterisk-1.2.14#
Die Konfigurationsdateien /etc/misdn-init.conf
und /etc/asterisk/misdn.conf
sind sehr gut
dokumentiert. Für den ersten Test sollten Sie nur sicherstellen, dass in
der /etc/misdn-init.conf
der Eintrag Port settings
für Ihre Bedürfnisse passend ist. Per Default steht da
nt_ptmp=1,2,3,4
und das bedeutet, dass auf allen
vier Ports Point-to-Multi-Point signalisiert wird. Bitte nach einer
Anpassung dieser Datei das /etc/init.d/misdn-init
restart nicht vergessen.
Starten Sie Asterisk mit asterisk -vvvvvvc und
verbinden Sie den ersten Port der Karte mit Ihrem ISDN-Anschluss. Wenn Sie
jetzt auf diesem Anschluss von extern (z.B. vom Handy aus) anrufen, werden
Sie im CLI eine Fehlermeldung sehen (da Sie ja noch keine entsprechende
Extension im Dialplan haben). Falls der hier aufgeführte Context
[Intern]
heißt, können Sie mit folgendem Abschnitt
im Dialplan alle Gespräche an Ihr SIP-Telefon mit der Nummer 2000
weiterleiten:
[Intern] exten => _.,1,Dial(SIP/2000)
Wenn Sie möchten, dass für alle Telefone im Context
[verkauf]
die Möglichkeit besteht, über eine
führende 0 (Null) eine Amtsleitung auf dem ersten Port Ihrer Karte zum
ISDN-Netz zu bekommen, dann können Sie das mit den folgenden Zeilen in
Ihrer extensions.conf
einstellen:
[verkauf] exten => _00.,1,Dial(misdn/1/${EXTEN:1})
Wenn Sie nicht über einen bestimmten Port, sondern über einen freien
Port in einer bestimmten Gruppe telefonieren wollen, so können Sie das
über das g:gruppenname
-Konstrukt machen. In der
Standardkonfiguration ist eine Gruppe intern für die Ports 1 und 2
definiert (siehe [intern]
in der
/etc/asterisk/misdn.conf
. Über diese Gruppe kann wie
folgt raustelefoniert werden (gleiches Beispiel wie oben):
[verkauf] exten => _00.,1,Dial(misdn/g:intern/${EXTEN:1})
Die Digium B410P ISDN-Karte hat eine eingebaut
Echo-Cancellation-Funktion, die in der Kartenhardware abgebildet ist und
somit Rechenlast von der CPU nimmt. Sie kann mit dem
misdn.conf
-Parameter
echocancel=yes
aktiviert werden.
Auf der Homepage http://www.misdn.org befinden sich einige Informationen zu den aktuellen Versionen von mISDN. Weiterhin gibt es ein deutsches Forum zu mISDN auf http://www.ip-phone-forum.de/forumdisplay.php?f=521 . Schließlich finden Sie auf dem VoIP-Info-Wiki hilfreiche Informationen http://www.voip-info.org/wiki/view/chan_mISDN . Und außerdem können Sie natürlich auch noch beim technischen Support von Digium anrufen (siehe http://www.digium.com).
Diese Installationsanleitung bezieht sich allgemein auf alle ISDN-Karten, die vom mISDN-Projekt unterstützt werden.
Diese Installationsanleitung setzt ein frisch installiertes Debian GNU/Linux 3.1 (a.k.a. sarge) voraus.
Wichtig | |
---|---|
Bitte beachten Sie, das die Installationsanleitung nur für die zum Zeitpunkt der Veröffentlichung dieses Buches aktuelle Debian Version 3.1 und nicht für neuere Debian Versionen geeignet ist. Ein Update der Anleitung für die Debian Version 4.0 finden Sie in der zukünftigen Version des Buches. Teile davon können Sie bereits jetzt unter http://www.das-asterisk-buch.de/unstable/ einsehen. |
Wir empfehlen zur Installation das Netzwerkinstallations-CD-Image, welches ungefähr 100 MB gross ist und unter http://www.debian.org/releases/sarge/debian-installer/ downgeloadet werden kann. Eine Debian GNU/Linux-Installationsanleitung steht unter http://www.debian.org/releases/sarge/i386/ und ein allgemeines Anwenderhandbuch unter http://debiananwenderhandbuch.de.
Nach erfolgreicher Installation des Debian Linux-Systems melden Sie sich als Benutzer root am System an und führen Sie die hier nachfolgend angegebenen Befehle aus. Bitte achten Sie darauf, keinen Schritt auszulassen und die Schritte als Benutzer root durchzuführen.
Als Erstes stellen Sie mit einem apt-get update
sicher, dass apt-get
alle aktuellen Paketlisten zur Verfügung
hat:
debian:~# apt-get update OK http://ftp.de.debian.org stable/main Packages OK http://ftp.de.debian.org stable/main Release OK http://security.debian.org stable/updates/main Packages OK http://security.debian.org stable/updates/main Release OK http://security.debian.org stable/updates/contrib Packages OK http://security.debian.org stable/updates/contrib Release OK http://ftp.de.debian.org stable/main Sources OK http://ftp.de.debian.org stable/main Release Paketlisten werden gelesen... Fertig debian:~#
Um sicherzugehen, dass wirklich alle Pakete auf dem neuesten Stand sind, führen Sie zur Sicherheit noch ein apt-get -y upgrade aus:
debian:~# apt-get -y upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Jetzt müssen Sie mit apt-get -y install openssl zlibc libkrb5-dev libncurses5-dev libssl-dev zlib1g-dev noch ein paar Pakete nachinstallieren, damit das spätere Kompilieren von Asterisk erfolgreich durchgeführt werden kann:
debian:~# apt-get -y install openssl zlibc libkrb5-dev libncurses5-dev libssl-dev zlib1g-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: comerr-dev libkadm55 Vorgeschlagene Pakete: doc-base krb5-doc ca-certificates Die folgenden NEUEN Pakete werden installiert: comerr-dev libkadm55 libkrb5-dev libncurses5-dev libssl-dev openssl zlib1g-dev zlibc 0 aktualisiert, 8 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 6025kB Archive geholt werden. Nach dem Auspacken werden 18,8MB Plattenplatz zusätzlich benutzt. Hole:1 http://ftp.de.debian.org stable/main libkadm55 1.3.6-2sarge3 [165kB] Hole:2 http://ftp.de.debian.org stable/main libncurses5-dev 5.4-4 [1038kB] Hole:3 http://ftp.de.debian.org stable/main libssl-dev 0.9.7e-3sarge4 [2555kB] Hole:4 http://ftp.de.debian.org stable/main openssl 0.9.7e-3sarge4 [906kB] Hole:5 http://ftp.de.debian.org stable/main zlib1g-dev 1:1.2.2-4.sarge.2 [488kB] Hole:6 http://ftp.de.debian.org stable/main zlibc 0.9j-7 [245kB] Hole:7 http://ftp.de.debian.org stable/main comerr-dev 2.1-1.37-2sarge1 [53,0kB] Hole:8 http://ftp.de.debian.org stable/main libkrb5-dev 1.3.6-2sarge3 [574kB] Es wurden 6025kB in 57s geholt (104kB/s) Wähle vormals abgewähltes Paket libkadm55. (Lese Datenbank ... 32512 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke libkadm55 (aus .../libkadm55_1.3.6-2sarge3_i386.deb) ... Wähle vormals abgewähltes Paket libncurses5-dev. Entpacke libncurses5-dev (aus .../libncurses5-dev_5.4-4_i386.deb) ... Wähle vormals abgewähltes Paket libssl-dev. Entpacke libssl-dev (aus .../libssl-dev_0.9.7e-3sarge4_i386.deb) ... Wähle vormals abgewähltes Paket openssl. Entpacke openssl (aus .../openssl_0.9.7e-3sarge4_i386.deb) ... Creating directory /etc/ssl Wähle vormals abgewähltes Paket zlib1g-dev. Entpacke zlib1g-dev (aus .../zlib1g-dev_1%3a1.2.2-4.sarge.2_i386.deb) ... Wähle vormals abgewähltes Paket zlibc. Entpacke zlibc (aus .../archives/zlibc_0.9j-7_i386.deb) ... Wähle vormals abgewähltes Paket comerr-dev. Entpacke comerr-dev (aus .../comerr-dev_2.1-1.37-2sarge1_i386.deb) ... Wähle vormals abgewähltes Paket libkrb5-dev. Entpacke libkrb5-dev (aus .../libkrb5-dev_1.3.6-2sarge3_i386.deb) ... Richte libkadm55 ein (1.3.6-2sarge3) ... Richte libncurses5-dev ein (5.4-4) ... Richte libssl-dev ein (0.9.7e-3sarge4) ... Richte openssl ein (0.9.7e-3sarge4) ... Richte zlib1g-dev ein (1.2.2-4.sarge.2) ... Richte zlibc ein (0.9j-7) ... Richte comerr-dev ein (2.1-1.37-2sarge1) ... Richte libkrb5-dev ein (1.3.6-2sarge3) ... debian:~#
Asterisk wird aber erst nach mISDN installiert werden. mISDN lässt sich momentan ausschließlich mit einen 2.6.x Kernel kompilieren. Um diesen zu installieren, suchen Sie mit apt-cache search kernel-image-2.6.8 | grep kernel-image den zu Ihrer Architektur passenden Kernel:
debian:~# apt-cache search kernel-image-2.6.8 | grep kernel-image kernel-image-2.6.8-3-386 - Linux kernel image for version 2.6.8 on 386. kernel-image-2.6.8-11-amd64-generic - Linux kernel image for version 2.6.8 on generic x86_64 systems kernel-image-2.6.8-11-amd64-k8 - Linux kernel image for version 2.6.8 on AMD64 systems kernel-image-2.6.8-11-amd64-k8-smp - Linux kernel image for version 2.6.8 on AMD64 SMP systems kernel-image-2.6.8-11-em64t-p4 - Linux kernel image for version 2.6.8 on Intel EM64T systems kernel-image-2.6.8-11-em64t-p4-smp - Linux kernel image for version 2.6.8 on Intel EM64T SMP systems kernel-image-2.6.8-12-amd64-generic - Linux kernel image for version 2.6.8 on generic x86_64 systems kernel-image-2.6.8-12-amd64-k8 - Linux kernel image for version 2.6.8 on AMD64 systems kernel-image-2.6.8-12-amd64-k8-smp - Linux kernel image for version 2.6.8 on AMD64 SMP systems kernel-image-2.6.8-12-em64t-p4 - Linux kernel image for version 2.6.8 on Intel EM64T systems kernel-image-2.6.8-12-em64t-p4-smp - Linux kernel image for version 2.6.8 on Intel EM64T SMP systems kernel-image-2.6.8-2-386 - Linux kernel image for version 2.6.8 on 386. kernel-image-2.6.8-2-686 - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4. kernel-image-2.6.8-2-686-smp - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4 SMP. kernel-image-2.6.8-2-k7 - Linux kernel image for version 2.6.8 on AMD K7. kernel-image-2.6.8-2-k7-smp - Linux kernel image for version 2.6.8 on AMD K7 SMP. kernel-image-2.6.8-3-686 - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4. kernel-image-2.6.8-3-686-smp - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4 SMP. kernel-image-2.6.8-3-k7 - Linux kernel image for version 2.6.8 on AMD K7. kernel-image-2.6.8-3-k7-smp - Linux kernel image for version 2.6.8 on AMD K7 SMP. debian:~#
In diesem Beispiel entscheiden wir uns für den Kernel
kernel-image-2.6.8-2-686
und installieren diesen
mit apt-get -y install
kernel-image-2.6.8-2-686:
debian:~# apt-get -y install kernel-image-2.6.8-2-686 Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Vorgeschlagene Pakete: lilo kernel-doc-2.6.8 kernel-source-2.6.8 Die folgenden NEUEN Pakete werden installiert: kernel-image-2.6.8-2-686 0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 15,5MB Archive geholt werden. Nach dem Auspacken werden 45,2MB Plattenplatz zusätzlich benutzt. Hole:1 http://ftp.de.debian.org stable/main kernel-image-2.6.8-2-686 2.6.8-16sarge1 [15,5MB] Es wurden 15,5MB in 41s geholt (375kB/s) Wähle vormals abgewähltes Paket kernel-image-2.6.8-2-686. (Lese Datenbank ... 21874 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke kernel-image-2.6.8-2-686 (aus .../kernel-image-2.6.8-2-686_2.6.8-16sarge1_i386.deb) ... Richte kernel-image-2.6.8-2-686 ein (2.6.8-16sarge1) ... Searching for GRUB installation directory ... found: /boot/grub . Testing for an existing GRUB menu.list file... found: /boot/grub/menu.lst . Searching for splash image... none found, skipping... Found kernel: /boot/vmlinuz-2.6.8-2-686 Found kernel: /boot/vmlinuz-2.4.27-3-386 Updating /boot/grub/menu.lst ... done debian:~#
Danach booten wir den Rechner mit shutdown -r now und können nach dem Booten mit uname -a kontrollieren, ob mit dem richtigen Kernel gebootet wurde:
debian:~# uname -a Linux debian 2.6.8-2-686 #1 Tue Aug 16 13:22:48 UTC 2005 i686 GNU/Linux debian:~#
Zum Kompilieren benötigen wir jetzt noch die zum Kernel passenden Header-Dateien. Diese können mit apt-get -y install kernel-headers-`uname -r` nachinstalliert werden:
debian:~# apt-get -y install kernel-headers-`uname -r` Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: kernel-headers-2.6.8-2 kernel-kbuild-2.6-3 Die folgenden NEUEN Pakete werden installiert: kernel-headers-2.6.8-2 kernel-headers-2.6.8-2-686 kernel-kbuild-2.6-3 0 aktualisiert, 3 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 3395kB Archive geholt werden. Nach dem Auspacken werden 42,6MB Plattenplatz zusätzlich benutzt. Hole:1 http://ftp.de.debian.org stable/main kernel-kbuild-2.6-3 2.6.8-2 [363kB] Hole:2 http://ftp.de.debian.org stable/main kernel-headers-2.6.8-2 2.6.8-16sarge1 [2777kB] Hole:3 http://ftp.de.debian.org stable/main kernel-headers-2.6.8-2-686 2.6.8-16sarge1 [255kB] Es wurden 3395kB in 35s geholt (96,4kB/s) Wähle vormals abgewähltes Paket kernel-kbuild-2.6-3. (Lese Datenbank ... 23577 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke kernel-kbuild-2.6-3 (aus .../kernel-kbuild-2.6-3_2.6.8-2_i386.deb) ... Wähle vormals abgewähltes Paket kernel-headers-2.6.8-2. Entpacke kernel-headers-2.6.8-2 (aus .../kernel-headers-2.6.8-2_2.6.8-16sarge1_i386.deb) ... Wähle vormals abgewähltes Paket kernel-headers-2.6.8-2-686. Entpacke kernel-headers-2.6.8-2-686 (aus .../kernel-headers-2.6.8-2-686_2.6.8-16sarge1_i386.deb) ... Richte kernel-kbuild-2.6-3 ein (2.6.8-2) ... Richte kernel-headers-2.6.8-2 ein (2.6.8-16sarge1) ... Richte kernel-headers-2.6.8-2-686 ein (2.6.8-16sarge1) ... debian:~#
Nun kann mit der eigentlichen Installation von mISDN begonnen werden.
Wechseln Sie mit cd /usr/src in das Verzeichnis
/usr/src
und laden Sie mit wget
http://www.misdn.org/downloads/mISDN.tar.gz und wget
http://www.misdn.org/downloads/mISDNuser.tar.gz die mISDN- und
mISDNuser-Quellen herunter:
debian:~# cd /usr/src debian:/usr/src# wget http://www.misdn.org/downloads/mISDN.tar.gz --17:27:13-- http://www.misdn.org/downloads/mISDN.tar.gz => `mISDN.tar.gz' Auflösen des Hostnamen »www.misdn.org«.... 80.244.243.34 Verbindungsaufbau zu www.misdn.org[80.244.243.34]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 762,995 [application/x-tar] 100%[====================================>] 762,995 86.55K/s ETA 00:00 17:27:21 (101.81 KB/s) - »mISDN.tar.gz« gespeichert [762995/762995] debian:/usr/src# wget http://www.misdn.org/downloads/mISDNuser.tar.gz --17:27:55-- http://www.misdn.org/downloads/mISDNuser.tar.gz => `mISDNuser.tar.gz' Auflösen des Hostnamen »www.misdn.org«.... 80.244.243.34 Verbindungsaufbau zu www.misdn.org[80.244.243.34]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 549,899 [application/x-tar] 100%[====================================>] 549,899 101.91K/s ETA 00:00 17:28:01 (99.57 KB/s) - »mISDNuser.tar.gz« gespeichert [549899/549899] debian:/usr/src#
Jetzt die Pakete mit tar xvzf mISDN.tar.gz und tar xvzf mISDNuser.tar.gz entpacken:
debian:/usr/src# tar xvzf mISDN.tar.gz mISDN-1_0_4/ mISDN-1_0_4/add.config mISDN-1_0_4/CVS/ mISDN-1_0_4/CVS/Root mISDN-1_0_4/CVS/Repository mISDN-1_0_4/CVS/Entries mISDN-1_0_4/drivers/ mISDN-1_0_4/drivers/CVS/ mISDN-1_0_4/drivers/CVS/Root mISDN-1_0_4/drivers/CVS/Repository mISDN-1_0_4/drivers/CVS/Entries [...] mISDN-1_0_4/km_mISDN.spec mISDN-1_0_4/Makefile mISDN-1_0_4/Makefile.module mISDN-1_0_4/Makefile.standalone mISDN-1_0_4/misdn-init mISDN-1_0_4/mISDN.modprobe.d mISDN-1_0_4/README.misdn-init mISDN-1_0_4/Rules.make.ext mISDN-1_0_4/std2kern mISDN-1_0_4/stddiff mISDN-1_0_4/VERSION debian:/usr/src# tar xvzf mISDNuser.tar.gz mISDNuser-1_0_3/ mISDNuser-1_0_3/COPYING.LIB mISDNuser-1_0_3/CVS/ mISDNuser-1_0_3/CVS/Root mISDNuser-1_0_3/CVS/Repository mISDNuser-1_0_3/CVS/Entries mISDNuser-1_0_3/example/ mISDNuser-1_0_3/example/CVS/ [...] mISDNuser-1_0_3/voip/example/rec_ctrl.sample mISDNuser-1_0_3/voip/voip_isdn.ce mISDNuser-1_0_3/voip/voip_isdn.c mISDNuser-1_0_3/voip/voip_appl.ce mISDNuser-1_0_3/voip/voip_appl.c mISDNuser-1_0_3/voip/voip_isdn_app.ce mISDNuser-1_0_3/voip/voip_isdn_app.c debian:/usr/src#
Nach einem cd mISDN-1_0_4 kann mit make install das entsprechende Paket kompiliert werden:
debian:/usr/src# cd mISDN-1_0_4 debian:/usr/src/mISDN-1_0_4# make install Making mISDN ============= cp /usr/src/mISDN-1_0_4/drivers/isdn/hardware/mISDN/Makefile.v2.6 /usr/src/mISDN-1_0_4/drivers/isdn/hardware/mISDN/Makefile export MINCLUDES=/usr/src/mISDN-1_0_4/include ; make -C /lib/modules/2.6.8-2-686/build SUBDIRS=/usr/src/mISDN-1_0_4/drivers/isdn/hardware/mISDN modules CONFIG_MISDN_DRV=m CONFIG_MISDN_DSP=m CONFIG_MISDN_HFCMULTI=m CONFIG_MISDN_HFCPCI=m CONFIG_MISDN_HFCUSB=m CONFIG_MISDN_XHFC=m CONFIG_MISDN_HFCMINI=m CONFIG_MISDN_W6692=m CONFIG_MISDN_SPEEDFAX=m CONFIG_MISDN_AVM_FRITZ=m CONFIG_MISDN_NETJET=m make[1]: Entering directory `/usr/src/kernel-headers-2.6.8-2-686' CC [M] /usr/src/mISDN-1_0_4/drivers/isdn/hardware/mISDN/avm_fritz.o CC [M] /usr/src/mISDN-1_0_4/drivers/isdn/hardware/mISDN/hfc_multi.o [...] mkdir -p //etc/modprobe.d cp mISDN.modprobe.d //etc/modprobe.d/mISDN mkdir -p //etc/modules.d cp mISDN.modprobe.d //etc/modules.d/mISDN /sbin/depmod /sbin/update-modules debian:/usr/src/mISDN-1_0_4#
Dann mit cd ../mISDNuser-1_0_3 in das mISDNuser-Verzeichnis wechseln und dort wieder mit make install kompilieren:
debian:/usr/src/mISDN-1_0_4# cd ../mISDNuser-1_0_3 debian:/usr/src/mISDNuser-1_0_3# make install mkdir -p //usr/bin/ mkdir -p //usr/include/mISDNuser/ mkdir -p ///usr/lib make TARGET=all subdirs make[1]: Entering directory `/usr/src/mISDNuser-1_0_3' set -e; for i in lib example i4lnet tenovis voip suppserv ; do make -C $i all; done make[2]: Entering directory `/usr/src/mISDNuser-1_0_3/lib' [...] make[2]: Leaving directory `/usr/src/mISDNuser-1_0_3/tenovis' make[2]: Entering directory `/usr/src/mISDNuser-1_0_3/voip' for i in voipisdn ; do \ install -m 755 $i //usr/bin ;\ done make[2]: Leaving directory `/usr/src/mISDNuser-1_0_3/voip' make[2]: Entering directory `/usr/src/mISDNuser-1_0_3/suppserv' install -m 644 libsuppserv.a //usr/lib install -m 644 libsuppserv_pic.a //usr/lib install -m 644 libsuppserv.so //usr/lib cp *.h //usr/include/mISDNuser/ make[2]: Leaving directory `/usr/src/mISDNuser-1_0_3/suppserv' make[1]: Leaving directory `/usr/src/mISDNuser-1_0_3' cp include/*.h //usr/include/mISDNuser/ debian:/usr/src/mISDNuser-1_0_3#
Auf der Asterisk-Homepage http://www.asterisk.org/
finden Sie die notwendigen Quellen, um Asterisk zu kompilieren. Nehmen Sie
bitte eine stabile und keine Entwickler-Version und
laden Sie diese mit wget
http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
in das Verzeichnis /usr/src/
herunter:
debian:/usr/src/mISDNuser-1_0_3# cd /usr/src debian:/usr/src# wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz --18:30:46-- http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz => `asterisk-1.2-current.tar.gz' Auflösen des Hostnamen »ftp.digium.com«.... 69.16.138.164 Verbindungsaufbau zu ftp.digium.com[69.16.138.164]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK Länge: 10,584,113 [application/x-gzip] 100%[====================================>] 10,584,113 224.71K/s ETA 00:00 18:31:36 (207.67 KB/s) - »asterisk-1.2-current.tar.gz« gespeichert [10584113/10584113]
Die komprimierte Datei muss jetzt mit tar xvzf asterisk-1.2-current.tar.gz entpackt werden:
debian:/usr/src# tar xvzf asterisk-1.2-current.tar.gz asterisk-1.2.13/ asterisk-1.2.13/build_tools/ asterisk-1.2.13/build_tools/make_svn_branch_name asterisk-1.2.13/build_tools/mkdep asterisk-1.2.13/build_tools/make_build_h asterisk-1.2.13/build_tools/make_version_h asterisk-1.2.13/build_tools/make_defaults_h asterisk-1.2.13/aesopt.h asterisk-1.2.13/utils.c asterisk-1.2.13/keys/ [...] asterisk-1.2.13/cli.c asterisk-1.2.13/io.c asterisk-1.2.13/ulaw.c asterisk-1.2.13/logger.c debian:/usr/src#
Die entpackten Dateien müssen nun kompiliert werden. Dies geschieht mit dem Befehl make im gerade entpackten Verzeichnis.
Warnung | |
---|---|
Bitte achten Sie darauf, dass die hier in der Dokumentation benutzte Version 1.2.13 vielleicht zum Zeitpunkt Ihrer Installation nicht mehr aktuell ist. Entsprechend werden sich die Verzeichnisnamen ändern. |
Übrigens ist dies jetzt ein guter Moment, sich einen Kaffee oder Tee zu kochen. Der Kompiliervorgang kann je nach Rechenleistung des PCs wenige Minuten oder bis zu einer Stunde dauern.
debian:/usr/src# cd asterisk-1.2.13 debian:/usr/src/asterisk-1.2.13# make if cmp -s .cleancount .lastclean ; then echo ; else \ make clean; cp -f .cleancount .lastclean;\ [...] make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/usr/src/asterisk-1.2.13/stdtime' +--------- Asterisk Build Complete ---------+ + Asterisk has successfully been built, but + + cannot be run before being installed by + + running: + + + + make install + +-------------------------------------------+
Die Software ist jetzt kompiliert und muss nur noch mit make install installiert (sprich an die vorgesehenen Stellen im Dateisystem kopiert) werden:
debian:/usr/src/asterisk-1.2.13# make install build_tools/make_version_h > include/asterisk/version.h.tmp if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; then echo; [...] +---- Asterisk Installation Complete -------+ + + + YOU MUST READ THE SECURITY DOCUMENT + + + + Asterisk has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + make samples + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +-------------------------------------------+
Geschafft! Die soeben kompilierten Programmdateien sind jetzt auf
dem System installiert. Allerdings finden wir im
Asterisk-Konfigurationsverzeichnis /etc/asterisk/
noch gähnende Leere vor. In diesem Verzeichnis liegen die
Konfigurationsdateien von Asterisk und da wir nicht von Null beginnen
möchten, lassen wir uns die Standarddateien erstellen. Dies erreichen wir
mit make samples:
debian:/usr/src/asterisk-1.2.13# make samples build_tools/make_version_h > include/asterisk/version.h.tmp if cmp -s include/asterisk/version.h.tmp include/asterisk/version.h ; then echo; [...] done
Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl asterisk -V können Sie die installierte Version herausfinden (bitte achten Sie auf das großgeschriebene V):
debian:/usr/src/asterisk-1.2.13# asterisk -V Asterisk 1.2.13
Zunächst sollten Sie sich mit dem Skript "misdn-init" vertraut machen. Dieses durchsucht Ihr System nach installierter Hardware, erstellt automatisch eine Standardkonfiguration und lädt die Kernel-Module. Führen Sie einfach misdn-init aus, um die möglichen Parameter zu erhalten.
Um zu sehen, welche mISDN-kompatiblen Karten im System installiert sind, führen Sie misdn-init scan aus.
Die Konfiguration der Kernel-Module erfolgt über die Datei
/etc/misdn-init.conf
. Um diese initial zu erzeugen,
führen Sie einfach das Kommando: misdn-init config aus.
Nun editieren Sie die Datei mit Ihrem Lieblingseditor. Nehmen wir einmal
an, Sie haben eine BN4S0-Karte der Firma beroNet im
System und wollen den Port 1 am Anlagenanschluss, den Port 2 am
Mehrgeräteanschluss betreiben. Am Port 3 soll eine TK-Anlage betrieben
werden und an Port 4 ein ISDN-Telefon. Entsprechend muss die
/etc/misdn-init.conf
wie folgt aussehen:
#Die Kartendefinition für die 4S0 Karte card=1,0x4 #der Anlagenanschluss: te_ptp=1 #der Mehrgeräteanschluss: te_ptmp=2 #die beiden NT Anschlüsse, Port 3 ist Punkt zu Punkt wegen der Anlage und Port 4 Mehrgeräte wegen des ISDN-Telefons nt_ptp=3 nt_ptmp=4 #wir beziehen die Synchronisation vom AMT am Anlagenanschluss. option=1,master_clock
Modifizieren Sie diese Datei entsprechend Ihrem Setup.
Die Kernel-Module werden nun mit misdn-init start gestartet.
Das mISDNuser-Paket enthält ein nützliches Tool, mit dem Sie feststellen können, ob die Module korrekt geladen worden sind. Führen Sie misdnportinfo aus, um die momentante Portkonfiguration zu erfahren. Die Ausgabe sieht etwa so aus:
Port 1: TE-mode BRI S/T interface line (for phone lines) -> Interface is Poin-To-Point. -> Protocol: DSS1 (Euro ISDN) -> childcnt: 2 -------- Port 2: TE-mode BRI S/T interface line (for phone lines) -> Protocol: DSS1 (Euro ISDN) -> childcnt: 2 -------- Port 3: NT-mode BRI S/T interface port (for phones) -> Interface can be Poin-To-Point/Multipoint. -------- Port 4: NT-mode BRI S/T interface port (for phones) -> Interface can be Poin-To-Point/Multipoint. -------- mISDN_close: fid(3) isize(131072) inbuf(0x804c060) irp(0x804c060) iend(0x804c060)
Nun sind die Kernel-Module geladen und konfiguriert.
Wie alle Asterisk-Konfigurationsdateien befindet sich auch die
misdn.conf
im Verzeichnis
/etc/asterisk/misdn.conf
. Hier definiert man, welche
Ports in welchen Gruppen sind und welche Parameter für diese Gruppen
gelten. Die misdn.conf
ist in 3 Sektionstypen
gegliedert, die durch eckige Klammern gekennzeichnet sind. Dies sind die
Abschnitte [general]
, [default]
und die
Gruppen-Sektionen, die der User frei benennen kann. Die
[general]
-Sektion beinhaltet Konfigurationselemente, die
unabhängig von den Port-Gruppen sind, wie etwa das Debuglevel oder ob das
Hardware-Bridging generell genutzt werden soll. Die
[default]
-Sektion enthält alle Parameter, die auch eine
Portgruppe enthalten kann. Falls ein Parameter in der Portgruppe fehlt,
wird der entsprechende aus der default-Sektion genommen. Die Portgruppen
selbst dienen einerseits dazu, dieselben Parameter für mehrere Ports zu
konfigurieren, andererseits kann der Name der Portgruppe zum Wählen
benutzt werden. Eine einfache misdn.conf
für das oben
angeführte Beispiel sieht wie folgt aus:
[general] bridging=yes [default] echocancel=256 txgain=-1 [AnlagenAnschluss] ports=1 context=isdn_in msns=* [MehrgeräteAnschluss] ports=2 context=isdn_in msns=* [Anlage] ports=3 context=anlage msns=* [Telefon] ports=4 context=telefon msns=*
Mit dieser misdn.conf
können Sie in der
extensions.conf
die folgende Zeile benutzen, um
beispielsweise ein Gespräch auf den Anlagenanschluss zu routen:
exten => _0X.,1,Dial(mISDN/g:AnlagenAnschluss/${EXTEN:1})
Beachten
Sie, wie der Sektionsname AnlagenAnschluss
beim Wählen
benutzt wird. Bei diesem Beispiel wird mit einer führenden 0
(_0X.
) rausgewählt, die durch ${EXTEN:1}
wieder
abgeschnitten wird.
Eine Gruppe macht natürlich erst richtig mit mehreren Ports Sinn. Wir könnten das obige Beispiel auch so abändern, dass der Anlagen- und Mehrgeräteanschluss in derselben Gruppe sind:
[Amt] ports=1,2 context=vomAmt msns=*
Gespräche, die nun von diesen beiden Ports
hereinkommen, werden in der extensions.conf
in den
Context vomAmt
geleitet. Hingegen können Sie beim Dial die
Gruppe Amt
benutzen: Dial(mISDN/g:Amt/..)
. Der
Mechanismus funktioniert so, dass chan_misdn zunächst prüft, ob der erste
Port eine aktive Schicht 1 hat. Dann wird geprüft, ob auf diesem Port ein
freier Kanal existiert. Sind beide Bedingungen erfüllt, wird auf diesem
Kanal herausgewählt, andernfalls wird der nächste Kanal/Port
verwendet.
Auf der Homepage http://www.misdn.org befinden sich einige Informationen zu den aktuellen Versionen von mISDN. ISDN-Karten, die den NT Mode unterstützen, sowie zusätzliche Informationen kann man auf der Seite: http://isdn.jolly.de/cards.html erhalten. Weiterhin gibt es ein deutsches Forum zu mISDN auf http://www.ip-phone-forum.de/forumdisplay.php?f=521. Schließlich finden Sie auf dem VoIP-Info-Wiki hilfreiche Informationen http://www.voip-info.org/wiki/view/chan_mISDN.
[105] In den 90er Jahren gab es tatsächlich ein paar Projekte, die sich mit der prinzipiell kostenlosen Datenübertragung über den D-Kanal beschäftigt haben. Allerdings ist das durch günstige und deutlich breitbandigere Internetverbindungen sehr schnell unattraktiv geworden.
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