Installation Asterisk 1.4 mit ISDN Treiber für Digium B410P auf Debian 4 (Etch)

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.

[Anmerkung]Anmerkung

Die hier aufgeführte Installationsanleitung ist 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, das man in der Zukunft nicht noch einmal etwas nachinstallieren muss.

Es wird ein frisch installiertes Debian GNU/Linux 4 (a.k.a 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.

Bitte loggen Sie sich nach der Installation als Benutzer root am System an und führen Sie alle hier angegebenen Befehle mit diesem Benutzer aus.

Als Erstes stellen Sie mit einem apt-get update sicher, dass apt-get 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                      
OK   http://security.debian.org etch/updates Release
Ign http://ftp.de.debian.org etch/main Packages/DiffIndex
Ign http://security.debian.org etch/updates/main Packages/DiffIndex
Ign http://ftp.de.debian.org etch/main Sources/DiffIndex
Ign http://security.debian.org etch/updates/main Sources/DiffIndex
OK   http://ftp.de.debian.org etch/main Packages
OK   http://security.debian.org etch/updates/main Packages
OK   http://ftp.de.debian.org etch/main Sources
OK   http://security.debian.org etch/updates/main Sources
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 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.
debian:~# 

Für den Fall das beim Upgrade der Pakete auch ein neuer Kernel installiert wurde, müssen wir jetzt das System mit shutdown -r now rebooten:

debian:~# shutdown -r now

Broadcast message from root@debian (pts/0) (Fri May  4 19:43:09 2007):

The system is going down for reboot NOW!

Nach dem Booten bitte wieder als root einloggen.

Jetzt müssen Sie mit apt-get -y install build-essential libncurses5-dev libcurl3-dev libvorbis-dev libspeex-dev unixodbc unixodbc-dev libiksemel-dev linux-headers-`uname -r` flex bc pciutils libnewt-dev libusb-dev 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 libvorbis-dev libspeex-dev unixodbc unixodbc-dev libiksemel-dev linux-headers-`uname -r` flex bc pciutils libnewt-dev libusb-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  binutils ca-certificates comerr-dev cpp cpp-4.1 defoma dpkg-dev file
  fontconfig fontconfig-config g++ g++-4.1 gcc gcc-4.1 libaudio2 libc6-dev
  libcurl3 libcurl3-openssl-dev libexpat1 libfontconfig1 libfreetype6 libice6
  libidn11 libidn11-dev libiksemel3 libjpeg62 libkadm55 libkrb5-dev liblcms1
  libltdl3 libltdl3-dev libmagic1 libmng1 libodbcinstq1c2 libogg-dev libogg0
  libpci2 libpng12-0 libqt3-mt libsm6 libspeex1 libssl-dev libssp0
  libstdc++6-4.1-dev libvorbis0a libvorbisenc2 libvorbisfile3 libxcursor1
  libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1
  libxt6 linux-headers-2.6.18-5 linux-kbuild-2.6.18 linux-kernel-headers m4
  make odbcinst1debian1 openssl patch pkg-config ttf-dejavu ucf zlib1g-dev
Vorgeschlagene Pakete:
  binutils-doc doc-base cpp-doc gcc-4.1-locales defoma-doc psfontmgr
  x-ttcidfont-conf dfontmgr debian-keyring bison gcc-4.1-doc lib64stdc++6
  manpages-dev autoconf automake1.9 libtool gdb gcc-doc libc6-dev-amd64
  lib64gcc1 lib64ssp0 nas glibc-doc libcurl3-dbg libfreetype6-dev krb5-doc
  liblcms-utils libtool-doc libqt3-mt-psql libqt3-mt-mysql libqt3-mt-odbc
  speex libstdc++6-4.1-doc make-doc-non-dfsg diff-doc libgnome-dev libmyodbc
  odbc-postgresql libct1 libqt3-mt-dev
Empfohlene Pakete:
  libft-perl bzip2 libmudflap0-dev libgl1-mesa-glx libgl1 libglu1-mesa libglu1
  libxmu6 debconf-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

[...]

Richte libvorbis-dev ein (1.1.2.dfsg-1.2) ...
Richte linux-headers-2.6.18-4 ein (2.6.18.dfsg.1-12) ...
Richte linux-kbuild-2.6.18 ein (2.6.18-1) ...
Richte linux-headers-2.6.18-4-686 ein (2.6.18.dfsg.1-12) ...
Richte unixodbc-dev ein (2.2.11-13) ...
Richte libstdc++6-4.1-dev ein (4.1.1-21) ...
Richte g++-4.1 ein (4.1.1-21) ...
Richte g++ ein (4.1.1-15) ...

Richte build-essential ein (11.3) ...
debian:~#

Als nächstes wechseln wir mit cd /usr/src 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 zu mit allen sinnvollen Extras zu installieren. Nehmen Sie bitte eine stabile und keine Entwickler-Version und laden Sie diese mit wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz in das Verzeichnis /usr/src/ herunter:

debian:/usr/src# wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
--18:53:00--  http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
           => `asterisk-1.4-current.tar.gz'
Auflösen des Hostnamen »downloads.digium.com«.... 69.16.138.164
Verbindungsaufbau zu downloads.digium.com[69.16.138.164]:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 10,928,902 [application/x-gzip]

100%[====================================>] 10,928,902   230.71K/s    ETA 00:00

18:53:47 (227.00 KB/s) - »asterisk-1.4-current.tar.gz« gespeichert [10928902/10928902]
debian:/usr/src#

Weiterhin benötigen wir noch die aktuelle Zaptel-Version, die wir mit wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz downloaden:

debian:/usr/src# wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz
--19:13:47--  http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz
           => `zaptel-1.4-current.tar.gz'
Auflösen des Hostnamen »downloads.digium.com«.... 216.27.40.102
Verbindungsaufbau zu downloads.digium.com|216.27.40.102|:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 2.835.893 (2.7M) [application/x-gzip]

100%[====================================>] 2.835.893    119.68K/s    ETA 00:00

19:14:12 (115.45 KB/s) - »zaptel-1.4-current.tar.gz« gespeichert [2835893/2835893]

debian:/usr/src#

Die komprimierten Dateien werden jetzt mit tar xvzf asterisk-1.4-current.tar.gz && tar xvzf zaptel-1.4-current.tar.gz entpackt:

debian:/usr/src# tar xvzf asterisk-1.4-current.tar.gz && tar xvzf zaptel-1.4-current.tar.gz
asterisk-1.4.2/
asterisk-1.4.2/build_tools/
asterisk-1.4.2/build_tools/menuselect-deps.in
asterisk-1.4.2/build_tools/get_moduleinfo
asterisk-1.4.2/build_tools/mkpkgconfig
asterisk-1.4.2/build_tools/embed_modules.xml
asterisk-1.4.2/build_tools/get_makeopts
asterisk-1.4.2/build_tools/make_version

[...]

zaptel-1.4.1/timertest.c
zaptel-1.4.1/mec3-float.h
zaptel-1.4.1/zaptel.init
zaptel-1.4.1/hdlcverify.c
zaptel-1.4.1/fxstest.c
zaptel-1.4.1/zaptel-base.c
debian:/usr/src#  

1.4 ist die erste Asterisk-Version, die den Unix/Linux üblichen autoconf-Mechanismus benutzt.

[Wichtig]Wichtig

Bitte beachten Sie das sich die folgenden Verzeichnisnamen natürlich mit aufsteigenden Versionsnummern im Laufe der Zeit verändern. Es liegt in der Natur einer Dokumentation, das diese Links nicht immer aktuell gehalten werden können.

Als erstes wechseln wir mit cd zaptel-1.4.7.1 in das Zaptel Verzeichnis und rufen ein ./configure && make && make install && make b410p auf. Die Abarbeitung der einzelnen Skripte wird eine Weile dauern. Zeit für einen Tee.

debian:/usr/src# cd zaptel-1.4.7.1
debian:/usr/src/zaptel-1.4.7.1# ./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
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E


[...]

make[3]: Leaving directory `/usr/src/zaptel-1.4.7.1/mISDNuser-1_1_3/voip'
make[3]: Entering directory `/usr/src/zaptel-1.4.7.1/mISDNuser-1_1_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[3]: Leaving directory `/usr/src/zaptel-1.4.7.1/mISDNuser-1_1_3/suppserv'
make[3]: Entering directory `/usr/src/zaptel-1.4.7.1/mISDNuser-1_1_3/bridge'
for i in isdnbridge ; do \
		install -m 755 $i //usr/bin ;\
	done
make[3]: Leaving directory `/usr/src/zaptel-1.4.7.1/mISDNuser-1_1_3/bridge'
make[2]: Leaving directory `/usr/src/zaptel-1.4.7.1/mISDNuser-1_1_3'
cp include/*.h //usr/include/mISDNuser/
make[1]: Leaving directory `/usr/src/zaptel-1.4.7.1/mISDNuser-1_1_3'
debian:/usr/src/zaptel-1.4.7.1# 

Danach gehen wir mit cd /usr/src/asterisk-1.4.17 in das Asterisk Verzeichnis und führen auch dort ein ./configure && make && make install aus:

debian:/usr/src/zaptel-1.4.7.1# cd /usr/src/asterisk-1.4.17
debian:/usr/src/asterisk-1.4.17# ./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
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes

[...]

make[1]: Entering directory `/usr/src/asterisk-1.4.17/main'
for x in ; do /usr/bin/install -c -m 755 $x /usr/lib/asterisk/modules ; done
make[1]: Leaving directory `/usr/src/asterisk-1.4.17/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.17# 

Die eben 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 einem make samples

debian:/usr/src/asterisk-1.4.17# make samples
mkdir -p /etc/asterisk
for x in configs/*.adsi; do \
  if [ ! -f /etc/asterisk/$x ]; then \
   /usr/bin/install -c -m 644 $x /etc/asterisk/`/usr/bin/basename $x` ; \
  fi ; \
 done
mkdir -p /etc/asterisk

[...]

  echo "Skipping asterisk.conf creation"; \
 fi
mkdir -p /var/spool/asterisk/voicemail/default/1234/INBOX
build_tools/make_sample_voicemail //var/lib/asterisk //var/spool/asterisk
debian:/usr/src/asterisk-1.4.17#

Fertig! Asterisk ist auf Ihrem System installiert. Mit dem Befehl asterisk -V können Sie die installierte Version rausfinden (bitte achten Sie auf das großgeschriebene V):

debian:/usr/src/asterisk-1.4.17# asterisk -V
Asterisk 1.4.17
debian:/usr/src/asterisk-1.4.17# 

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/src/asterisk-1.4.17# /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:/usr/src/asterisk-1.4.17#  

Die für den Betrieb der Karte notwendige Konfigurationsdatei kann mit dem Kommando /usr/sbin/misdn-init config erstellt werden:

debian:/usr/src/asterisk-1.4.17# /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:/usr/src/asterisk-1.4.17#

Die erstellte Standardkonfiguration können Sie mit /etc/init.d/misdn-init start in Betrieb nehmen:

debian:/usr/src/asterisk-1.4.17# /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:/usr/src/asterisk-1.4.17#

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]Tipp

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

Start- und Stop-Skripte

Damit Asterisk beim Booten des Rechners auch automatisch gestartet und bei einem Shutdown auch ordentlich runtergefahren wird, benötigen wir noch entsprechende Init-Skripte. Diese können im Verzeichnise /usr/src/asterisk-1.4.2 mit dem von den Entwicklern etwas unglücklich gewählten Befehl make config erstellt werden:

debian:/usr/src/asterisk-1.4.17# 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.17# 

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 in der /etc/misdn-init.conf:

te_ptmp=1,2,3,4

Für den Modus Point-to-Point (Anlagenanschluss):

te_ptp=1,2,3,4

Bitte nach einer Anpassung dieser Datei das /etc/init.d/misdn-init restart nicht vergessen.


AMOOCON 2009

Kommen Sie am 4. und 5. May zur grössten europäischen Open-Source VoIP Konferenz nach Rostock! Treffen Sie Asterisk Erfinder Mark Spencer und den Chefentwickler von Digium Kevin Fleming. Sowie natürlich das Autorenteam dieses Buches. AMOOCON 2009 ist die Nachfolgerkonferenz zum Asterisk-Tag.org. Nur grösser und besser. ;-)

Asterisk Schulung

2.1: Asterisk 1.4 + 1.6

2.1 Version des Asterisk Buches (für Asterisk 1.4 und 1.6). Die 1.0 Version (für Asterisk 1.2 und 1.4) ist ebenfalls online. Bitte melden Sie Fehler und Feedback per E-Mail an den Autor.

YouTube Screencasts

Kostenlose Asterisk Screencasts mit jeweils 10 minütigen Erklärungen zu Spezial-Themen.

Loading...

Shameless Plug

noch-ne-auto-seite.de

Das gedruckte Buch

Werbung

Asterisk-Tag.org 2008

Auf der Asterisk-Tag.org Webseite finden Sie die Folien und Videos der Vorträge.