HOWTO_ Asterisk 1.2 unter Debian "Sarge" 3.1 installieren
Diese Anleitung beschäftigt sich mit der Installation des aktuellen PBX Asterisk 1.2.11 auf Debian GNU/Linux "Sarge" 3.1 (stable).
Um nicht auf meinem Produktivserver herumspielen zu müssen, installierte ich kurzerhand das aktuelle Debian 3.1r3 in einer virtuellen Maschine in VirtualPC 2004 SP1. Da im stable-Zweig des Debian-Package-Repositories leider nur eine veraltete Version von Asterisk vorhanden ist, welche nicht mit QSC IPfonie privat zusammenarbeitet, kompilierte ich das ganze kurzerhand selbst. Dies war in wenigen Minuten abgehandelt.
Doch nun kam der Schock, als ich das ganze ebenso auf meinem Produktivsystem machen wollte - denn die zur Kompilierung benötigen Packages ließen sich nicht installieren. Ich hatte nämlich bereits Software aus dem testing-Zweig installiert und mir damit Packages eingehandelt, welche sich nicht mehr mit den äußerst empfindlichen libc-Packages vereinbaren ließen.
Genauso wenig konnte ich auch den halbwegs aktuellen Asterisk 1.2.10 aus testing verwenden, denn die diversen Inkompatibilitäten hätten gleich noch den MySQL 4.1 Server mit deinstalliert.
Nach vielem Herumprobieren fand ich nun doch einen Weg, wie der Asterisk ohne große Klimmzüge auf meinen Server findet.
Nun müssen, damit das System nicht vollkommen durcheinander gerät, noch die Prioritäten der einzelnen Zweige eingestellt werden. Sofern nicht vorhanden, legt man mit touch /etc/apt/prefences die entsprechende Datei an und schreibt folgende Zeilen hinein.
Jetzt noch Asterisk herunterladen und dann kann es losgehen.
Die Konfigurationsdateien liegen unter /etc/asterisk.
Um nicht auf meinem Produktivserver herumspielen zu müssen, installierte ich kurzerhand das aktuelle Debian 3.1r3 in einer virtuellen Maschine in VirtualPC 2004 SP1. Da im stable-Zweig des Debian-Package-Repositories leider nur eine veraltete Version von Asterisk vorhanden ist, welche nicht mit QSC IPfonie privat zusammenarbeitet, kompilierte ich das ganze kurzerhand selbst. Dies war in wenigen Minuten abgehandelt.
Doch nun kam der Schock, als ich das ganze ebenso auf meinem Produktivsystem machen wollte - denn die zur Kompilierung benötigen Packages ließen sich nicht installieren. Ich hatte nämlich bereits Software aus dem testing-Zweig installiert und mir damit Packages eingehandelt, welche sich nicht mehr mit den äußerst empfindlichen libc-Packages vereinbaren ließen.
Genauso wenig konnte ich auch den halbwegs aktuellen Asterisk 1.2.10 aus testing verwenden, denn die diversen Inkompatibilitäten hätten gleich noch den MySQL 4.1 Server mit deinstalliert.
Nach vielem Herumprobieren fand ich nun doch einen Weg, wie der Asterisk ohne große Klimmzüge auf meinen Server findet.
Teil 1: Pinnen
In /etc/apt/sources.list muss mindestens ein testing Zweig hinzugefügt werden. Am einfachsten kopiert man sich dazu einen der vorhandenen stable-Server und schreibt diesen auf testing um:
# Stable server
deb http://ftp.uni-koeln.de/debian/ stable main
# testing server
deb http://ftp.uni-koeln.de/debian/ testing main
# unstable server
deb http://ftp.uni-koeln.de/debian/ unstable main
deb http://ftp.uni-koeln.de/debian/ stable main
# testing server
deb http://ftp.uni-koeln.de/debian/ testing main
# unstable server
deb http://ftp.uni-koeln.de/debian/ unstable main
Nun müssen, damit das System nicht vollkommen durcheinander gerät, noch die Prioritäten der einzelnen Zweige eingestellt werden. Sofern nicht vorhanden, legt man mit touch /etc/apt/prefences die entsprechende Datei an und schreibt folgende Zeilen hinein.
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600
Man beachte die absteigenden Prioritäten.
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600
Teil 2: Software installieren
Um Asterisk kompilieren zu können, muss erst einmal eine Menge Software installiert werden. Auf einem "frischen" System wird das mit dem folgenden Kommando erledigt.
# apt-get -t testing install termcap-compat libnewt-dev \
libncurses5-dev openssl libssl-dev zlib1g-dev gcc make
libncurses5-dev openssl libssl-dev zlib1g-dev gcc make
Jetzt noch Asterisk herunterladen und dann kann es losgehen.
# cd ~
# wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
# tar -xzf asterisk-1.2-current.tar.gz
# wget http://ftp.digium.com/pub/asterisk/asterisk-1.2-current.tar.gz
# tar -xzf asterisk-1.2-current.tar.gz
Teil 3: Asterisk compilieren
# cd ~/asterisk-1.2.11
# make clean; make install; make samples
Mehr gibt es nicht dazu :).
# make clean; make install; make samples
Teil 4: Startupscript anlegen
In /etc/init.d erzeugt man noch mit touch /etc/init.d/asterisk ein Startupscript, in welches der folgende Inhalt eingetragen wird.#!/bin/sh -e # # asterisk This init.d script is used to start asterisk. # It basically just calls asterisk. ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin" set -e if [ -x /usr/sbin/asterisk ] ; then HAVE_ASTERISK=1 else exit 0 fi ASTERISK="$ENV /usr/sbin/asterisk" PIDFILE="/var/run/asterisk.pid" asterisk_start() { if [ -e "$PIDFILE" ] then echo " ... Already running" exit 1 fi $ASTERISK } asterisk_stop() { if [ -e "$PIDFILE" ] then PID=`cat $PIDFILE 2>/dev/nul` $ASTERISK -rx "stop now" CNT=0 while [ 1 ] do CNT=$(expr $CNT + 1) [ ! -d /proc/$PID ] && break if [ $CNT -gt 60 ] then echo " ... failed!" echo "Asterisk failed to honor the stop command, please investigate the situation by hand." exit 1 fi sleep 1 done else echo -n " ... no pidfile found! not running?" fi } case $1 in start) echo -n "Starting PBX: Asterisk" asterisk_start echo "." ;; stop) echo -n "Stopping PBX: Asterisk" asterisk_stop echo "." ;; reload) echo -n "Reloading PBX config..." $ASTERISK -rx "restart gracefully" echo "done." ;; restart | force-reload) echo -n "Forcing reload of PBX: Asterisk" asterisk_stop asterisk_start echo "." ;; *) echo "Usage: /etc/init.d/asterisk start|stop|restart|reload|force-reload" ;; esacJetzt muss nur noch dieses Script beim Hoch- und Herunterfahren des System ausgeführt werden:
# update-rc.d asterisk defaults 99 00
Teil 5: Starten und verbinden
Mit /etc/init.d/asterisk start wird der Service gestartet, verbinden kann man über asterisk -r.Die Konfigurationsdateien liegen unter /etc/asterisk.
cypressor - 25. Aug, 20:15