B.5. Installation einer BeroFix-Karte

Stefan Wintermeyer

Warnung

Dieses Kapitel ist noch nicht fertiggestellt (work in progress). Bitte melden Sie eventuelle Fehler oder Verbesserungswünsche an stefan.wintermeyer@amooma.de
Die 2009 von beroNet vorgestellte BeroFix-ISDN-Karten-Serie geht einen anderen Weg als klassische ISDN-Karten. Die beroFix agiert als eigenständiges Media-Gateway und wird vom System aus nicht wie eine ISDN- sondern wie eine Netzwerk-Karte angesprochen. Die Kommunikation mit Asterisk erfolgt dann normal per SIP-Protokoll. Die Vorteile liegen auf der Hand: Man ist bei Asterisk- oder Kernel-Updates nicht darauf angewiesen, dass man auch einen passenden ISDN-Treiber bekommt.
Diese Installationsanleitung dient zur Installation eines Asterisk-Systems mit einer beroNet beroFix ISDN-Karte. Die Karte muss dafür bereits in dem System eingebaut sein.

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.
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 bridge-utils
[...]
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 bridge-utils
[...]
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# 
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# 
Als erstes gehen Sie in das Asterisk-Verzeichnis und kompilieren und installieren Asterisk:
debian:/usr/src# 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

Die beroFix-Karte benutzt einen Realtek-8139-Netzwerkchip um mit dem Asterisk-Wirtssystem (host system) zu kommunizieren. Deshalb ist es nicht notwendig spezielle Treiber zu kompilieren; der Netzwerkkartentreiber wird vom Betriebsystem mitgeliefert. Das Schema für eine beroFix-Karte sieht etwa so aus:

 LAN <———> Netzwerkkarte (eth0) <—> PC <—> BeroFix-Netzwerkkarte (eth1) <———> BeroFix-CPU

Das bedeutet der Host erhält durch die BeroFix eine weitere Netzwerkkarte, die einer IP-Konfiguration bedarf. In solch einem Scenario bietet sich die Konfiguration durch eine Ethernet Bridge an, die die beiden Netzwerk-Interfaces eth0 und eth1 zu einem bridge device br0 zusammenfasst.
Folgenden Schritte sind nötig um eine beroFix richtig zu installieren:
  1. Netzwerk-Brücke einrichten
  2. SIP, ISDN und Routing einrichten
  3. SIP-Peer in Asterisk einrichten

Netwerkbrücke einrichten

Zunächst sollten sie mit ifconfig -a prüfen ob die Karte vom System als zweite Netzwerkkarte erkannt wurde:
debian:~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:6E:D3:86:C6  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:797562 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35206 errors:20 dropped:0 overruns:0 carrier:20
          collisions:7447 txqueuelen:1000 
          RX bytes:141351732 (134.8 MiB)  TX bytes:19431622 (18.5 MiB)
          Interrupt:11 Base address:0xc000 

eth1      Link encap:Ethernet  HWaddr 00:50:C2:83:D0:01
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:35124 errors:0 dropped:0 overruns:0 frame:0
          TX packets:276362 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20636164 (19.6 MiB)  TX bytes:28931756 (27.5 MiB)
          Interrupt:11 Base address:0xa000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:720 (720.0 b)  TX bytes:720 (720.0 b)
Sie erkennen die beroFix an der MAC-Adresse, diese sollte mit 00:50:C2 beginnen. In diesem Beispiel ist eth1 die beroFix.
Um die Netzwerkbrücke manuell einzurichten können sie die bridge-utils verwenden und müssen ein paar Kommandozeilen eingeben:
debian:~# ifconfig eth0 0.0.0.0 up
debian:~# ifconfig eth1 0.0.0.0 up
debian:~# brctl addbr br0
debian:~# brctl addif br0 eth0
debian:~# brctl addif br0 eth1
debian:~# ifconfig br0 10.0.0.3 up
Diese Kommandos entfernen die IP-Adressen der Netzwerkkarten, erzeugen eine Brücke br0, fügen der Brücke die beiden Netzwerkkarten hinzu und geben der Brücke die IP-Adresse 10.0.0.3.
Um die Netzwerk-Konfiguration für die Brücke persistent einzurichten, erweitern sie die Konfigurationsdatei /etc/network/interfaces mit einem Texteditor wie folgt:
auto lo
iface lo inet loopback
  
auto br0
iface br0 inet static
	address 10.0.0.3
	netmask 255.0.0.0
	gateway 10.0.0.1
	bridge_ports eth0 eth1
Nun können Sie mit /etc/init.d/networking restart die Netzwerk-Konfiguration aktivieren.
debian:~# /etc/init.d/networking restart
     * Reconfiguring network interfaces...                       [ OK ]
Die Default-IP-Addresse der beroFix ist 10.0.0.2. Es sollte nun möglich sein die Weboberfläche der berofix zu erreichen. Tippen sie dazu einfach in einem Browser die URL http://10.0.0.2 ein. Der Standard-Benutzername ist admin und das Standard-Passwort ebenfalls admin.

SIP, ISDN und Routing einrichten

Die beroFix wird vollständig über die Web-Benutzeroberfläche konfiguriert. Loggen Sie sich dazu bitte mit einem Browser auf http://10.0.0.2 mit den Benutzerdaten admin/admin ein. Sie werden nun eine Weboberfläche mit den folgenden Menüpunkten sehen:
  • Hardware – zum Einrichten von ISDN-Parametern wie TE/NT, PtP und PtMP
  • ISDN – zum Gruppieren von ISDN-Ports
  • SIP – zum Verwalten von SIP-Servern
  • Dialplan – zum Verwalten des Routings
Zunächst sollten Sie die ISDN-Hardware prüfen und entsprechend Ihrem Anschluss konfigurieren. TE und NT wird auf der Karte automatisch umgeschaltet, sodass keine Jumperung nötig sind. Als nächstes sollten sie eine ISDN-Gruppe anlegen; vergeben Sie einfach als Namen BRI.
Nun können Sie einen SIP-Server einrichten. Erstellen Sie einen neuen Eintrag unter dem Menupunkt SIP mit den Werten: Name=berofix, User=berofix, Secret=berofix.

SIP-Peer in Asterisk einrichten

Unter Asterisk wird die beroFix wie ein SIP-Gateway angesprochen, deshalb muss dort in der /etc/asterisk/sip.conf ein SIP-Peer eingerichtet werden. Fügen Sie dazu in der sip.conf die folgenden Zeilen ein:
[berofix]
type = friend
secret = berofix
host = 10.0.0.2
allow = all
context = from-sip
Um nun mit einer führenden Null einen Ruf in Richtung ISDN zu senden müssen Sie nun chan_sip verwenden; benutzen Sie in der extensions.conf dazu folgenden Zeile:
exten => _0X.,1,Dial(SIP/${EXTEN:1}@berofix)