B.3. Installation der Digium B410p

Diese Installationsanleitung dient zur Installation eines Asterisk-Systems mit Treibern für eine Digium B410p ISDN-Karte. Die Karte muss dafür bereits in dem System eingebaut sein.

Wichtig

Asterisk verwendet ab Version 1.4.22 bzw. 1.6 Dahdi statt Zaptel (für mehr Informationen dazu siehe Anhang I, Zaptel zu DAHDI). Dahdi unterstützt von Haus aus Basis-ISDN (BRI) – jedenfalls, soweit es die Digium B410p betrifft (siehe Abschnitt I.4, „Interview mit Kevin P. Fleming“). Für eine aktuelle Versionsanleitung mit Dahdi siehe Abschnitt A.1, „Installation von Asterisk 1.4.x auf Debian Linux“ bzw. Abschnitt A.2, „Installation von Asterisk 1.6.x auf Debian Linux“.
Diese Anleitung bleibt aber hier stehen für den Fall, dass Sie eine Asterisk-Version vor 1.4.22 mit Zaptel installieren wollen. Zaptel lädt – wie unten genau beschrieben – durch den Befehl make b410p mISDN herunter und kompiliert es.
Überprüfen Sie bitte auch die Online-Version des Buchs (http://das-asterisk-buch.de) auf entsprechende Aktualisierungen zu diesem Kapitel.

Anmerkung

Die hier aufgeführte Installationsanleitung gilt für ein Asterisk-System mit allen in diesem Buch beschriebenen Features (bei Ausnahmen wird dies gesondert besprochen). Deshalb ist die Installation etwas umfangreicher. Das hat aber auch den Vorteil, dass Sie in der Zukunft nicht noch einmal etwas nachinstallieren müssen.
Es wird ein frisch installiertes Debian GNU/Linux 4 (Etch) vorausgesetzt. Ein ISO-Image für die Installation finden Sie auf http://www.debian.org/releases/etch/debian-installer/. Ich empfehle das etwa 140 MB große Netzinstallations-CD-Image. Eine Debian GNU/Linux-Installationsanleitung befindet sich unter http://www.debian.org/releases/etch/i386/. Ein allgemeines Anwenderhandbuch steht unter http://debiananwenderhandbuch.de.

Anmerkung

Bitte loggen Sie sich nach der Installation als Benutzer root am System ein, und führen Sie alle hier angegebenen Befehle mit diesem Benutzer aus.
Als Erstes stellen Sie sicher, dass apt alle aktuellen Paketlisten zur Verfügung hat:
debian:~# apt-get update
Hole:1 http://ftp.de.debian.org etch Release.gpg [378B]
Hole:2 http://security.debian.org etch/updates Release.gpg [189B]
OK   http://ftp.de.debian.org etch Release                      
[...]
Es wurden 2B in 0s geholt (3B/s)   
Paketlisten werden gelesen... Fertig
debian:~# 
Um sicherzugehen, dass alle Pakete auf dem neuesten Stand sind, führen Sie noch ein 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.
debian:~# 
Für den Fall, dass beim Upgrade der Pakete auch ein neuer Kernel installiert wurde, müssen Sie jetzt das System rebooten:
debian:~# shutdown -r now
[...]
The system is going down for reboot NOW!
Loggen Sie sich nach dem Booten bitte wieder als root ein.
Jetzt müssen Sie noch ein paar Pakete nachinstallieren, damit das Kompilieren von Asterisk erfolgreich durchgeführt werden kann:
debian:~# apt-get -y install build-essential \
    libncurses5-dev libcurl3-dev libnewt-dev libusb-dev \
    libvorbis-dev libspeex-dev unixodbc unixodbc-dev \
    libiksemel-dev linux-headers-`uname -r` flex bc pciutils
[...]
Die folgenden NEUEN Pakete werden installiert:
  bc binutils build-essential ca-certificates 
  comerr-dev cpp cpp-4.1 defoma dpkg-dev file flex 
  fontconfig fontconfig-config g++ g++-4.1 gcc gcc-4.1
[...]
debian:~# 
Als Nächstes wechseln Sie in das Verzeichnis /usr/src:
debian:~# cd /usr/src
debian:/usr/src# 
Auf der Asterisk-Homepage http://www.asterisk.org/ finden Sie die notwendigen Quellen, um Asterisk mit allen sinnvollen Extras zu installieren. Nehmen Sie bitte eine stabile und keine Entwickler-Version, und laden Sie diese in das Verzeichnis /usr/src/ herunter:
debian:/usr/src# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.19.2.tar.gz
[...]
18:53:47 (227.00 KB/s) - »asterisk-1.4.19.2.tar.gz« gespeichert
debian:/usr/src# 
Weiterhin benötigen Sie noch die aktuelle Zaptel-Version:
debian:/usr/src# wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.12.tar.gz
[...]
19:14:12 (115.45 KB/s) - »zaptel-1.4.12.tar.gz« gespeichert
debian:/usr/src# 
Die komprimierten Dateien werden jetzt entpackt:
debian:/usr/src# tar xvzf asterisk-1.4.19.2.tar.gz
asterisk-1.4.19.2/
asterisk-1.4.19.2/build_tools/
asterisk-1.4.19.2/build_tools/menuselect-deps.in
[...]
debian:/usr/src# tar xvzf zaptel-1.4.12.tar.gz
[...]
zaptel-1.4.12/fxstest.c
zaptel-1.4.12/zaptel-base.c
debian:/usr/src# 
Als Erstes wechseln Sie in das Zaptel-Verzeichnis und kompilieren und installieren Zaptel und mISDN. Die Abarbeitung der einzelnen Skripte wird eine Weile dauern. Zeit für einen Tee.
debian:/usr/src# cd zaptel-1.4.12
debian:/usr/src/zaptel-1.4.12# ./configure && make && make install && make b410p
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
[...]
make[1]: Leaving directory `/usr/src/zaptel-1.4.7.1/mISDNuser-1_1_3'
debian:/usr/src/zaptel-1.4.12# 
Danach gehen Sie in das Asterisk-Verzeichnis und kompilieren und installieren Asterisk:
debian:/usr/src/zaptel-1.4.12# cd /usr/src/asterisk-1.4.19.2
debian:/usr/src/asterisk-1.4.19.2# ./configure && make && make install
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
[...]
make[1]: Leaving directory `/usr/src/asterisk-1.4.19.2/main'
 +---- 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.4.19.2# 
Die eben kompilierten Programmdateien sind jetzt auf dem System installiert. Allerdings finden Sie im Asterisk-Konfigurationsverzeichnis /etc/asterisk/ noch gähnende Leere vor. In diesem Verzeichnis liegen die Konfigurationsdateien von Asterisk. Da Sie sicher nicht bei null beginnen möchten, lassen Sie sich die Standarddateien erstellen:
debian:/usr/src/asterisk-1.4.19.2# make samples
[...]
debian:/usr/src/asterisk-1.4.19.2# 
Damit Asterisk beim Booten des Rechners auch automatisch gestartet und bei einem Shutdown auch ordentlich heruntergefahren wird, benötigen wir noch entsprechende Init-Skripte. Diese können mit dem von den Entwicklern etwas unglücklich benannten Befehl make config erstellt werden:
debian:/usr/src/asterisk-1.4.19.2# make config
 Adding system startup for /etc/init.d/asterisk ...
   /etc/rc2.d/K91asterisk -> ../init.d/asterisk
   /etc/rc3.d/K91asterisk -> ../init.d/asterisk
   /etc/rc4.d/K91asterisk -> ../init.d/asterisk
   /etc/rc5.d/K91asterisk -> ../init.d/asterisk
   /etc/rc2.d/S50asterisk -> ../init.d/asterisk
   /etc/rc3.d/S50asterisk -> ../init.d/asterisk
   /etc/rc4.d/S50asterisk -> ../init.d/asterisk
   /etc/rc5.d/S50asterisk -> ../init.d/asterisk
debian:/usr/src/asterisk-1.4.19.2# 
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.4.19.2# asterisk -V
Asterisk 1.4.19.2
debian:/usr/src/asterisk-1.4.19.2# cd
debian:~# 

Konfiguration der ISDN-Karte

Ob die von Ihnen eingebaute B410p-ISDN-Karte auch richtig erkannt wird, können Sie mit dem Kommando /usr/sbin/misdn-init scan überprüfen:
debian:~# /usr/sbin/misdn-init scan
[OK] found the following devices:
card=1,0x4
[ii] run "/usr/sbin/misdn-init config" to store this information to /etc/misdn-init.conf
debian:~# 
Die für den Betrieb der Karte notwendige Konfigurationsdatei kann mit dem Kommando /usr/sbin/misdn-init config erstellt werden:
debian:~# /usr/sbin/misdn-init config
[OK] /etc/misdn-init.conf created. It's now safe to run "/usr/sbin/misdn-init start"
[ii] make your ports (1-4) available in asterisk by editing "/etc/asterisk/misdn.conf"
debian:~# 
Die erstellte Standardkonfiguration können Sie mit /etc/init.d/misdn-init start in Betrieb nehmen:
debian:~# /etc/init.d/misdn-init start
-----------------------------------------
 Loading module(s) for your misdn-cards:
-----------------------------------------
/sbin/modprobe --ignore-install hfcmulti type=0x4 protocol=0x2,0x2,0x2,0x2 layermask=0xf,0xf,0xf,0xf poll=128 debug=0
/sbin/modprobe mISDN_dsp debug=0x0 options=0 poll=128 dtmfthreshold=100
[i] creating device node: /dev/mISDN
debian:~# 
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.

Tipp

Die Portnummern stehen auf der Karte klein neben den entsprechenden Ports.

Konfiguration der ISDN-Anschlussart

Bitte erkundigen Sie sich vor dem nächsten Schritt über die Art Ihres ISDN-Anschlusses. Mit der hier besprochenen B410P-ISDN-Karte können Sie Anlagen- und Mehrgeräteanschlüsse betreiben. Um alle 4 Ports im Modus Point-to-Multi-Point (Mehrgeräteanschluss) zu betreiben, konfiguriert man sie in der /etc/misdn-init.conf wie folgt:
te_ptmp=1,2,3,4
Für den Modus Point-to-Point (Anlagenanschluss) sieht das so aus:
te_ptp=1,2,3,4
Bitte vergessen Sie nach einer Anpassung dieser Datei nicht das /etc/init.d/misdn-init restart.