A.2. Installation von Asterisk 1.6.x auf Debian Linux
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 Zukunft
nicht noch einmal etwas nachinstallieren müssen.
Es wird ein frisch installiertes Debian GNU/Linux 5.0
(„Lenny“) vorausgesetzt. Ein ISO-Image für die Installation
finden Sie auf http://www.debian.org/releases/lenny/debian-installer/.
Wir empfehlen das etwa 150 MByte große Netzinstallations-CD-Image[152]. Eine Debian GNU/Linux-Installationsanleitung findet sich
unter http://www.debian.org/releases/lenny/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.Anmerkung
Einige Anwender werden wohl direkt einen SSH-Server installieren
wollen, um von ihrem normalen Arbeitsplatz aus im Terminal auf dem Server
arbeiten zu können. Der Befehl dazu lautet:
aptitude
install ssh
. Dann kann man hier im Folgenden auch
wunderbar mit Kopieren und Einsetzen der meisten Befehle arbeiten. Wir
setzen voraus, dass Sie entweder mit der grundsätzlichen Verwendung von
ssh
vertraut sind oder direkt am System selbst
arbeiten.Es versteht sich eigentlich von selbst, dass man auf einem frisch
installierten System erst einmal sicherstellt, dass die Paketverwaltung
(APT[153] bzw.
aptitude
) die aktuellen Paketlisten
zur Verfügung hat ...debian:~#aptitude update
Treffer http://ftp.de.debian.org lenny Release.gpg[...]
1820kB wurden in 13s heruntergeladen (138kB/s) Paketlisten werden gelesen... Fertig debian:~#
... und dass alle Pakete auf dem neusten Stand sind:
debian:~#aptitude -y upgrade
Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut[...]
Es werden keine Pakete installiert, aktualisiert oder entfernt. 0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 0B an Archiven herunterladen. Nach dem Entpacken werden 0B zusätzlich belegt sein. debian:~#
Für den Fall, dass beim Upgrade der Pakete auch ein neuer Kernel
installiert wurde, müssen wir jetzt das System mit
shutdown -r now
(oder mit
reboot
) neu starten:debian:~# shutdown -r now
Broadcast message from root@debian (pts/0) (Mon Mar 23 17:42:04 2009):
The system is going down for reboot NOW!
Nach dem Booten loggen Sie sich bitte wieder als
root
ein.Anmerkung
Das hat zwar nichts mit Asterisk zu tun, aber typischerweise
installiert man auch NTP, um immer die aktuelle Zeit zu haben:
debian:~# aptitude -y install ntp ntpdate
Ein
Muss ist das natürlich nicht.Zuerst installieren wir eine Build-Umgebung – d.h. Compiler usw.
– und diverse Abhängigkeiten, damit das Kompilieren von Asterisk
erfolgreich durchgeführt werden kann.
debian:~#aptitude -y install build-essential
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: binutils{a} build-essential bzip2{a} cpp{a} cpp-4.3{a} dpkg-dev{a} g++{a} g++-4.3{a} gcc{a} gcc-4.3{a} libc6-dev{a} libgmp3c2{a} libgomp1{a} libmpfr1ldbl{a} libstdc++6-4.3-dev{a} libtimedate-perl{a} linux-libc-dev{a} make{a} patch{a} 0 Pakete aktualisiert, 19 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 19,4MB an Archiven herunterladen. Nach dem Entpacken werden 60,4MB zusätzlich belegt sein.[...]
Richte libstdc++6-4.3-dev ein (4.3.2-1.1) ... Richte g++-4.3 ein (4.3.2-1.1) ... Richte g++ ein (4:4.3.2-2) ... Richte build-essential ein (11.4) ...[...]
Linux-Kernel-Header:
debian:~#aptitude -y install linux-headers-`uname -r`
Die folgenden NEUEN Pakete werden zusätzlich installiert: cpp-4.1{a} gcc-4.1{a} gcc-4.1-base{a} linux-headers-2.6.26-1-686 linux-headers-2.6.26-1-common{a} linux-kbuild-2.6.26{a} 0 Pakete aktualisiert, 6 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 7326kB an Archiven herunterladen. Nach dem Entpacken werden 41,3MB zusätzlich belegt sein.[...]
LibPRI
Die LibPRI-Bibliothek enthält den PRI[154]-Stack, allerdings auch Funktionen für BRI[155]-ISDN-Anschlüsse. Sie ist nicht für alle Einsatzzwecke
notwendig, schadet dann aber auch nicht.
debian:~#cd /usr/src/
debian:/usr/src#wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
[...]
2009-03-23 10:24:55 (108 KB/s) - »libpri-1.4-current.tar.gz« gespeichert [94075/94075]
Anmerkung
Ja, libpri 1.4.x ist die richtige Version für Asterisk 1.6.
Entpacken Sie sie wie folgt:
debian:/usr/src#tar xvzf libpri-1.4-current.tar.gz
libpri-1.4.9/ libpri-1.4.9/build_tools/[...]
debian:/usr/src#rm libpri-1.4-current.tar.gz
Kompilieren und installieren:
debian:/usr/src#cd libpri-1.4.9/
debian:/usr/src/libpri-1.4.9#make
[...]
debian:/usr/src/libpri-1.4.9#make install
[...]
Dahdi
Dahdi[156] ist für die Kommunikation zwischen Asterisk und
ISDN/Analog-Karten zuständig. Aber auch ohne solche Karten lohnt sich die
Installation, denn Dahdi erfüllt z. B. auch die Aufgabe, einen Zeittakt für
Konferenzräume bereitzustellen.
Laden Sie Dahdi wie folgt herunter:
debian:~#cd /usr/src/
debian:/usr/src#wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz
[...]
2009-03-23 10:33:37 (165 KB/s) - »dahdi-linux-current.tar.gz« gespeichert [1251822/1251822] debian:/usr/src#wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz
[...]
2009-03-23 10:37:49 (147 KB/s) - »dahdi-tools-current.tar.gz« gespeichert [413598/413598] debian:/usr/src#
Entpacken:
debian:/usr/src#tar xvzf dahdi-linux-current.tar.gz
dahdi-linux-2.1.0.4/ dahdi-linux-2.1.0.4/include/[...]
debian:/usr/src#tar xvzf dahdi-tools-current.tar.gz
dahdi-tools-2.1.0.2/ dahdi-tools-2.1.0.2/hdlctest.c[...]
debian:/usr/src#rm dahdi-linux-current.tar.gz
debian:/usr/src#rm dahdi-tools-current.tar.gz
Abhängigkeiten installieren:
debian:/usr/src#aptitude -y install libusb-dev libnewt-dev
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: libnewt-dev libpng12-0{a} libpng12-dev{a} libslang2-dev{a} libusb-dev zlib1g-dev{a} 0 Pakete aktualisiert, 6 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 1176kB an Archiven herunterladen. Nach dem Entpacken werden 3113kB zusätzlich belegt sein.[...]
Richte libnewt-dev ein (0.52.2-11.3) ... Richte libusb-dev ein (2:0.1.12-13) ...[...]
Kompilieren und installieren:
debian:/usr/src#cd dahdi-linux-2.1.0.4/
debian:/usr/src/dahdi-linux-2.1.0.4#make
[...]
make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-1-686' debian:/usr/src/dahdi-linux-2.1.0.4#make install
[...]
DEPMOD 2.6.26-1-686 make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-1-686'[...]
################################################### ### ### DAHDI installed successfully. ### If you have not done so before, install the package ### dahdi-tools. ### ###################################################
debian:/usr/src/dahdi-linux-2.1.0.4#cd ..
debian:/usr/src#cd dahdi-tools-2.1.0.2/
debian:/usr/src/dahdi-tools-2.1.0.2#./configure
[...]
checking for newtBell in -lnewt... yes checking newt.h usability... yes checking newt.h presence... yes checking for newt.h... yes checking for usb_init in -lusb... yes checking usb.h usability... yes checking usb.h presence... yes checking for usb.h... yes[...]
debian:/usr/src/dahdi-tools-2.1.0.2#make
[...]
make[1]: Leaving directory `/usr/src/dahdi-tools-2.1.0.2' debian:/usr/src/dahdi-tools-2.1.0.2#make install
[...]
################################################### ### ### DAHDI tools installed successfully. ### If you have not done so before, install init scripts with: ### ### make config ### ################################################### debian:/usr/src/dahdi-tools-2.1.0.2#
Init-Skripte und Konfigurationsdateien installieren:
debian:/usr/src/dahdi-tools-2.1.0.2# make config
install -D dahdi.init /etc/init.d/dahdi
/usr/bin/install -c -D -m 644 init.conf.sample /etc/dahdi/init.conf
/usr/bin/install -c -D -m 644 modules.sample /etc/dahdi/modules
/usr/bin/install -c -D -m 644 modprobe.conf.sample /etc/modprobe.d/dahdi
/usr/bin/install -c -D -m 644 blacklist.sample /etc/modprobe.d/dahdi.blacklist
/usr/sbin/update-rc.d dahdi defaults 15 30
Adding system startup for /etc/init.d/dahdi ...
/etc/rc0.d/K30dahdi -> ../init.d/dahdi
/etc/rc1.d/K30dahdi -> ../init.d/dahdi
/etc/rc6.d/K30dahdi -> ../init.d/dahdi
/etc/rc2.d/S15dahdi -> ../init.d/dahdi
/etc/rc3.d/S15dahdi -> ../init.d/dahdi
/etc/rc4.d/S15dahdi -> ../init.d/dahdi
/etc/rc5.d/S15dahdi -> ../init.d/dahdi
DAHDI has been configured.
If you have any DAHDI hardware it is now recommended you
edit /etc/dahdi/modules in order to load support for only
the DAHDI hardware installed in this system. By default
support for all DAHDI hardware is loaded at DAHDI start.
I think that the DAHDI hardware you have on your system is:
debian:/usr/src/dahdi-tools-2.1.0.2#
Der Hinweis sagt uns, dass wir für einen schnelleren Systemstart und
für ein schlankeres System in der Datei
/etc/dahdi/modules
alle Module auskommentieren sollten,
die wir nicht für gegebenenfalls eingebaute Karten benötigen. Das ist aber
kein Muss. Wer keine Karten installiert hat, kann alle Module
auskommentieren.Um jetzt nicht das System rebooten zu müssen, starten wir einfach
Dahdi neu, damit die Module geladen werden:
debian:~# /etc/init.d/dahdi restart
Unloading DAHDI hardware modules: done
Loading DAHDI hardware modules:
No hardware timing source found in /proc/dahdi, loading dahdi_dummy
Running dahdi_cfg: done.
debian:~#
Hier im Beispiel wurde ohne eingebaute Karten automatisch
dahdi_dummy
[157] geladen, das auch ohne ISDN-Karten einen Zeittakt
bereitstellt.Asterisk
Auf der Asterisk-Homepage http://www.asterisk.org finden Sie
die notwendigen Quellen, um Asterisk zu installieren.
Anmerkung
Bei Asterisk 1.6 ist die Nummerierung der Versionen etwas anders als
bei 1.4. Die Versionen 1.6.0.x, 1.6.1.x, 1.6.2.x usw. sind
unterschiedliche Zweige („Branches“), d.h., es gibt eine URL
1.6.0-current
, und es wird auch demnächst eine URL
1.6.1-current
geben.debian:~#cd /usr/src/
debian:/usr/src#wget http://downloads.digium.com/pub/asterisk/asterisk-1.6.0-current.tar.gz
[...]
2009-03-23 10:45:32 (172 KB/s) - »asterisk-1.6.0-current.tar.gz« gespeichert [13415949/13415949]
Entpacken:
debian:/usr/src#tar xvzf asterisk-1.6.0-current.tar.gz
asterisk-1.6.0.6/[...]
debian:/usr/src#rm asterisk-1.6.0-current.tar.gz
Abhängigkeiten und zusätzliche Pakete installieren:
debian:/usr/src#aptitude -y install libncurses5-dev libnewt-dev
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: libncurses5-dev 0 Pakete aktualisiert, 1 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 1546kB an Archiven herunterladen. Nach dem Entpacken werden 6599kB zusätzlich belegt sein.[...]
debian:/usr/src#aptitude -y install libcurl4-openssl-dev
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: ca-certificates{a} comerr-dev{a} libcurl3{a} libcurl4-openssl-dev libglib2.0-0{a} libglib2.0-data{a} libidn11{a} libidn11-dev{a} libkadm55{a} libkrb5-dev{a} libldap2-dev{a} libpcre3{a} libssh2-1{a} libssh2-1-dev{a} libssl-dev{a} openssl{a} pkg-config{a} 0 Pakete aktualisiert, 17 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 8171kB an Archiven herunterladen. Nach dem Entpacken werden 23,2MB zusätzlich belegt sein.[...
]
debian:/usr/src#aptitude -y install libspeex-dev libspeexdsp-dev
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: libspeex-dev libspeex1{a} libspeexdsp-dev libspeexdsp1{a} 0 Pakete aktualisiert, 2 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 320kB an Archiven herunterladen. Nach dem Entpacken werden 717kB zusätzlich belegt sein.[...]
debian:/usr/src#aptitude -y install libiksemel-dev
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: libiksemel-dev libiksemel3{a} 0 Pakete aktualisiert, 2 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 91,9kB an Archiven herunterladen. Nach dem Entpacken werden 299kB zusätzlich belegt sein.[...]
debian:/usr/src#aptitude -y install unixodbc-dev
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: autotools-dev{a} defoma{a} file{a} fontconfig{a} fontconfig-config{a} libaudio2{a} libdrm2{a} libexpat1{a} libfontconfig1{a} libfreetype6{a} libgl1-mesa-glx{a} libglu1-mesa{a} libice6{a} libjpeg62{a} liblcms1{a} libltdl3{a} libltdl3-dev{a} libmagic1{a} libmng1{a} libodbcinstq1c2{a} libqt3-mt{a} libsm6{a} libtool{a} libxcursor1{a} libxdamage1{a} libxfixes3{a} libxft2{a} libxi6{a} libxinerama1{a} libxmu6{a} libxrandr2{a} libxrender1{a} libxt6{a} libxxf86vm1{a} odbcinst1debian1{a} ttf-dejavu{a} ttf-dejavu-core{a} ttf-dejavu-extra{a} ucf{a}unixodbc{a} unixodbc-dev 0 Pakete aktualisiert, 41 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 12,8MB an Archiven herunterladen. Nach dem Entpacken werden 32,2MB zusätzlich belegt sein.[...]
debian:/usr/src#aptitude -y install libspandsp-dev
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: libjpeg62-dev{a} libspandsp-dev libspandsp1{a} libtiff4{a} libtiff4-dev{a} libtiffxx0c2{a} 0 Pakete aktualisiert, 6 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 1328kB an Archiven herunterladen. Nach dem Entpacken werden 3801kB zusätzlich belegt sein.[...]
debian:/usr/src#aptitude install libjack-dev portaudio19-dev
[...]
Die folgenden NEUEN Pakete werden zusätzlich installiert: libasound2{a} libasound2-dev{a} libavc1394-0{a} libfreebob0{a} libiec61883-0{a} libjack-dev libjack0{a} libjack0.100.0-dev{a} libportaudio2{a} libraw1394-8{a} libxml2{a} portaudio19-dev sgml-base{a} xml-core{a} 0 Pakete aktualisiert, 14 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert. Muss 2420kB an Archiven herunterladen. Nach dem Entpacken werden 7930kB zusätzlich belegt sein.[...]
Kompilierung vorbereiten:
debian:/usr/src#cd asterisk-1.6.0.6/
debian:/usr/src/asterisk-1.6.0.6#./configure
checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for gcc... gcc[...]
configure: Package configured for: configure: OS type : linux-gnu configure: Host CPU : i686 configure: build-cpu:vendor:os: i686 : pc : linux-gnu : configure: host-cpu:vendor:os: i686 : pc : linux-gnu : debian:/usr/src/asterisk-1.6.0.6#
Kompilieren[158]:
debian:/usr/src/asterisk-1.6.0.6#make
[...]
[CC] astman.c -> astman.o [CC] md5.c -> md5.o [LD] astman.o md5.o -> astman [CC] stereorize.c -> stereorize.o[...]
+--------- Asterisk Build Complete ---------+ + Asterisk has successfully been built, and + + can be installed by running: + + + + make install + +-------------------------------------------+ debian:/usr/src/asterisk-1.6.0.6#
Installieren:
debian:/usr/src/asterisk-1.6.0.6#make install
[...]
+---- 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.6.0.6#
Die eben kompilierten Programmdateien sind jetzt auf dem System
installiert. Allerdings finden wir im Asterisk-Konfigurationsverzeichnis
/etc/asterisk/
noch gähnende Leere vor. Da wir nicht
von Grund auf beginnen möchten, lassen wir uns die Standard-Beispieldateien
erstellen:debian:/usr/src/asterisk-1.6.0.6#make samples
[...]
debian:/usr/src/asterisk-1.6.0.6#
Damit Asterisk beim Booten des Rechners auch automatisch gestartet und
bei einem Shutdown ordentlich gestoppt wird, benötigen wir noch
entsprechende Init-Skripte:
debian:/usr/src/asterisk-1.6.0.6# make config
update-rc.d: warning: /etc/init.d/asterisk missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
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.6.0.6#
Wir sind jetzt fast fertig. Leider setzt die Asterisk-Installation die
Runlevels auf Debian bisher noch nicht ganz korrekt, was wir folgendermaßen
beheben:
debian:/usr/src/asterisk-1.6.0.6#cd
debian:~#update-rc.d -f asterisk remove
Removing any system startup links for /etc/init.d/asterisk ... /etc/rc2.d/S50asterisk /etc/rc2.d/K91asterisk /etc/rc3.d/S50asterisk /etc/rc3.d/K91asterisk /etc/rc4.d/S50asterisk /etc/rc4.d/K91asterisk /etc/rc5.d/S50asterisk /etc/rc5.d/K91asterisk debian:~#update-rc.d asterisk defaults 50 15
update-rc.d: warning: /etc/init.d/asterisk missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts> Adding system startup for /etc/init.d/asterisk ... /etc/rc0.d/K15asterisk -> ../init.d/asterisk /etc/rc1.d/K15asterisk -> ../init.d/asterisk /etc/rc6.d/K15asterisk -> ../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:~#
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:~# asterisk -V
Asterisk 1.6.0.6
debian:~#
[152] In der Regel werden Sie das für die Architektur
i386
benötigen.
[156] Bis Asterisk 1.4.21 hieß Dahdi noch Zaptel. Für weitere Informationen siehe Anhang I, Zaptel zu DAHDI.
[157] früher ztdummy
[158] An dieser Stelle vor dem Kompilieren könnte man als erfahrenerer
Asterisk-Benutzer mit
in einem interaktiven Dialog bestimmte
Module deaktivieren.make
menuselect