Isdnlog bringt von sich aus die Möglichkeit mit, Anrufe u. a. in einer MySQL Datenbank zu speichern. Leider ist dieses Funktion in den mir vertrauten Linux Distribution nicht aktiv, so dass man erst selbst sich den Quellcode runterladen muss. Dort kann man dann über make menuconfig die Unterstützung für MySQL aktivieren, das ganze anschließend kompilieren und dann unter /usr/sbin die isdnlog gegen die neue austauschen.

Das habe ich schon probiert, klappt auch bei mir ganz gut, hat allerdings den Nachteil, das ein OS Update einem die eigene isdnlog ev. wieder überschreibt. Weiterhin hab ich bei einem Kunden das Problem das die Einträge nur sehr zeit verzögert in der DB erscheinen.

Eine Alternative Lösung ist:

a) Man fügt in /etc/isdn/callerid.conf einen Eintrag hinzu, der ein eigenes Skript startet:

[MSN]
NUMBER = 51
ALIAS = New Call 51
START = {
[FLAG]
FLAGS = IRU
PROGRAM = /root/bin/newcall.sh \\$2 $1 $3
}

51 ist die angerufene Nummer, hier in dem Beispiel ist 51 die interne Nummer einer Nebenstelle. Wenn Der Rechner direkt an dem ISDN Anschluß hängt, ist NUMBER dann die angerufene MSN z.B. 910123.

Zusätzlich braucht man noch ein Script:

#!/bin/bash
if ! test -f /var/run/newcall.pid ;   then
        echo $PPID > /var/run/newcall.pid
        datum=`date +%Y-%m-%d`
        zeit=`date +%H:%M:%S`
        echo \"insert into isdnlog (sdate,stime,calling,dir,called) values(\'$datum\',\'$zeit\',\'$1\',\'I\',\'$3\');\" |  mysql -h localhost -u isdn -pisdn mydb
        sleep 5
        rm /var/run/newcall.pid
fi
exit 0

Das Sleep 5 und die Abfrage der pid Datei hat den Hintergrund, das bei mir die Telefonanlage den Anruft, warum auch immer, zweimal auf den ISDN Bus gibt im 4 Sekunden Abstand. So verhindere ich, das zwei Einträge in der Datenbank erfolgen.

Von Jens Wagner, 16 Februar 2007, 15:26 Uhr

Kommentiere den Artikel oder setze einen Trackback

Bisher keine Kommentare zum Artikel

  1. Bisher keine Kommentare

Kommentiere den Artikel



Kommentare zu diesem Artikel über RSS 2.0-Feed verfolgen