Freitag, 25. August 2006

TECH_ Namen im Display vom Grandstream BT-101

Das Grandstream Budge-Tone 100 (auch BT101, BT102) kann bis zu 12 Zeichen und Ziffern auf seinem Display darstellen. Im Zusammenspiel mit Asterisk lassen sich damit sogar Wörter als Anrufernummer im Display anzeigen.

Die folgenden Zeichen werden vom Budge-Tone unterstützt und mehr oder minder leserlich dargestellt.
AbCcdEFGgHhIiJLNnOoPqrStUuy0123456789_*#
Wie man sieht, fehlen nur K,M,V,W,X und Z. Manche Sonderzeichen werden der Darstellung unterschlagen, andere "evaluieren" zu einem Leerzeichen. Bei bestimmten Sonderzeichen wird nur ein Fehlercode auf dem Display dargestellt.

So, wo in Asterisk verwendet man nun diese Ziffern? Na klar, bei einem Anruf auf einem Budge-Tone setzt man als Caller-Nummer diese Buchstaben ein.
exten => _X.,1,SetCallerID("Haha Hacked!" <HAHA!HACCED>)

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.

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

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.
# cd ~
# 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 :).

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.

Reflog

Informationstechnische Howtos, Hinweise und Merkwürdiges

Batchlib v1.0 2008-03-29

Aktuelle Beiträge

HOWTO_ O2 DSL Surf &...
Der O2 DSL Surf & Phone-Router ist für die alleinige...
cypressor - 12. Feb, 19:57
Uptweak Windows XP Home...
There are a lot of annoying limitations in Windows...
cypressor - 9. Okt, 19:30
BATCHLIB_ Batchlib package...
Download Batchlib package v1.0 (5 KB zip file) What...
cypressor - 29. Mär, 19:10
BATCHLIB_ Batchlib library...
The batchlib library string.cmd is part of the batchlib...
cypressor - 29. Mär, 18:10

Homepage Ticker

Links

Status

Online seit 6587 Tagen
Zuletzt aktualisiert: 28. Jun, 11:32
RSS XML 1.0 Button-Get-Firefox

batch
batchlib
howto
tech
video
Profil
Abmelden
Weblog abonnieren