ImonC
Zur ISDN Anrufsignalisierung verwende ich das Tool ImonC. Dieses benötigt auf dem Server mit der ISDN-Karte die beiden Daemons Imond und Telmond. Die Daemons laufen auf jedem Linux-System mit funktionsfähiger ISDN-Konfiguration, also auch auf Debian mit den capiutils.
Die FLI4L Sourcen laden und entpacken.
mkdir -p /usr/src/fli4l cd /usr/src/fli4l wget http://www.fli4l.de/fileadmin/downloadzaehler.php?file=3.0.2/src.tar.gz tar xvzf src.tar.gz
Im buildroot Verzeichnis kann das Make-System verwendet werden. Alternativ kann man unter src/fli4l/base auch telmond.c und imond.c frei kompilieren.
cd src/buildroot make imond telmond cd target/root/usr/local/bin strip * cp * /usr/local/bin
Telmond liest das syslog bei meiner Konfiguration aus einem eigenem File, welches in /etc/syslog.conf definiert wird:
echo "*.* |/var/log/kernel-info" >> /etc/syslog.conf kill -1 `cat /var/run/syslogd.pid`
Weiterhin werden folgende Konfigurationsfiles benötigt:
/etc/telmond.conf und /etc/imond.conf:
touch /etc/telmond.conf vi /etc/imond.conf Mo-Su 00-24 ippp0 -1:-1 240 yes yes 0193792: Dummy_Eintrag 0.0 1 Mo-Su 00-24 ippp1 -1:-1 240 no yes 0193792: Tiscali_1,49ct 0.0149 1 Mo-Su 00-24 ippp2 -1:-1 240 no yes 0191011: T-Online_1,59ct 0.0159 1 Mo-Su 00-24 ippp3 -1:-1 240 no yes 0191771: Tiscali-8,8ct_+_0,44ct-0,88ct 0.0044 1
Auf Debian verwende ich folgendes Startskript:
/etc/init.d/imond
#!/bin/sh test -f /usr/local/bin/imond || exit 0 test -f /usr/local/bin/telmond || exit 0 START_IMOND='yes' # start imond: yes or no IMOND_PORT='5000' # port (tcp), don't open it to the outside IMOND_PASS='' # imond-password, may be empty IMOND_ADMIN_PASS='adminpw' # imond-admin-password, may be empty IMOND_ENABLE='yes' # accept "enable/disable" commands IMOND_DIAL='yes' # accept "dial/hangup" commands IMOND_ROUTE='yes' # accept "route" command IMOND_REBOOT='no' # accept "reboot" command DIALMODE='off' # standard dialmode: auto, manual, or off TELMOND_PORT='5001' # port (tcp), don't open in INPUT_ACCEPT_PORT_x IMOND_OPT="-port $IMOND_PORT -log-to-syslog /var/log /var/log" TELMOND_OPT="-port $TELMOND_PORT -log-to-syslog -syslog-fifo /var/log/kernel-info /var/log" #------------------------------------------------------------------------ # export some config variables for imond #------------------------------------------------------------------------ export START_IMOND IMOND_PASS IMOND_ADMIN_PASS IMOND_ENABLE IMOND_DIAL export IMOND_ROUTE IMOND_REBOOT DIALMODE echo $IMOND_PORT >/var/run/imond.port echo $TELMOND_PORT >/var/run/telmond.port case "$1" in start) echo -n "Starting imond server: telmond" rm /var/run/imond.pid /var/run/telmond.pid >/dev/null 2>&1 start-stop-daemon --start --quiet --pidfile /var/run/telmond.pid --exec \ /usr/local/bin/telmond -- $TELMOND_OPT while [ "`ps aux|grep -v grep|grep -c telmond`" -le 0 ]; do echo -n "." start-stop-daemon --start --quiet --pidfile /var/run/telmond.pid --exec \ /usr/local/bin/telmond -- $TELMOND_OPT sleep 1 done echo " imond." start-stop-daemon --start --quiet --pidfile /var/run/imond.pid --exec \ /usr/local/bin/imond -- $IMOND_OPT ;; stop) echo -n "Stopping imond server: telmond imond" start-stop-daemon --stop --quiet --pidfile /var/run/imond.pid start-stop-daemon --stop --quiet --pidfile /var/run/telmond.pid rm /var/run/imond.pid /var/run/telmond.pid >/dev/null 2>&1 echo "." ;; restart|force-reload) echo -n "Restarting imond server: stop..." ( start-stop-daemon --stop --quiet --pidfile /var/run/imond.pid start-stop-daemon --stop --quiet --pidfile /var/run/telmond.pid rm /var/run/imond.pid /var/run/telmond.pid >/dev/null 2>&1 ) while [ "`ps aux|grep -v grep|grep -c telmond`" -gt 0 ]; do echo -n "." ( killall -9 telmond >/dev/null 2>&1 ) ( killall -9 imond >/dev/null 2>&1 ) sleep 1 done echo -n " start telmond" start-stop-daemon --start --quiet --pidfile /var/run/telmond.pid --exec \ /usr/local/bin/telmond -- $TELMOND_OPT while [ "`ps aux|grep -v grep|grep -c telmond`" -le 0 ]; do echo -n "." start-stop-daemon --start --quiet --pidfile /var/run/telmond.pid --exec \ /usr/local/bin/telmond -- $TELMOND_OPT sleep 1 done echo -n " imond" start-stop-daemon --start --quiet --pidfile /var/run/imond.pid --exec \ /usr/local/bin/imond -- $IMOND_OPT echo "." ;; *) echo "Usage: /etc/init.d/imond {start|stop|restart|force-reload}" exit 1 ;; esac exit 0