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.
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:
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.
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
Jetzt noch Asterisk herunterladen und dann kann es losgehen.
Teil 3: Asterisk compilieren
# cd ~/asterisk-1.2.11
# make clean; make install; make samples
Mehr gibt es nicht dazu :).
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"
;;
esac
Jetzt 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