nach dem ich mit ein paar Ideen aus diesem Thread geholt habe, habe ich das ganze mal etwas angepasst.
1. Es werden keine temp. Dateien mehr verwenet
2. Der Script ist allgemein gehalten (Kumpel benutzt ihn mit einer dbox)
3. Ein paar Sachen werden abgefangen (z.B. unbekannte Rufnummern)
4. etwas "sauberer" geschrieben
5. Es wird automatisch die callerid.conf gepflegt
Was ihr braucht:
1. einen Rechner mit ISDN Karte (entweder der VDR selbst oder wie bei mir ein anderer Rechner)
2. isdn4k-utils
3. ggf. eine svdrpsend.pl (wenn VDR nicht auf dem Rechner läuft)
/etc/isdn/callerid.conf
Code
[MSN]
NUMBER=123456
ALIAS=unbenutzt
SI=1
START={
[FLAG]
FLAGS=IRU
PROGRAM=/usr/local/bin/invsuche.sh $2 $19 $20
}
/usr/local/bin/invsuche.sh
Bash
#!/bin/bash
# Aufrufparameter auswerten
NUMMER=$1
NAME=$2
MSN=$3
QUELLE="A"
# Pfad zu callerid.conf
CALLERIDCONF="/etc/isdn/callerid.conf"
#Übergabeparameter
# 1. Anrufer
# 2. Name des Anrufers
# 3. Alias der MSN
# 4. Quelle
SENDCOMMAND="/usr/local/bin/msg2vdr.sh"
if [ "$NUMMER" == "?" ]; then
echo "Keine Rufnummer, steige aus"
exit 0;
fi
if [ "$NAME" == "?" ]; then
echo "Suche nach $NUMMER in der callerid.conf, falls isdn nicht neugestartet wurde"
NAME=`cat $CALLERIDCONF | fgrep $NUMMER -A 2 | fgrep ALIAS | head -n1 | awk -F = '{ print $2 }'`
QUELLE="C"
#führende Leerzeichen entfernen
NAME=`printf "%s\n" "$NAME" | { read -r a; echo "$a"; }`
fi
if [ "$NAME" == "" ]; then
echo "Suche nach $NUMMER in www.dasoertliche.de"
NAME=`wget -q -O - --tries=3 --timeout=5 "http://www1.dasoertliche.de/?form_name=search_inv&ph=$NUMMER" | grep 'entry' | sed -e s/\"entry\"\ \>/\!\!\!/ -e s/^.*\"entry\"\>//g -e s/\<'\/'a\>.*//g | awk -F '!!!' '{ print $2 }'|head -n1 `
#führende Leerzeichen entfernen
NAME=`printf "%s\n" "$NAME" | { read -r a; echo "$a"; }`
if [ "$NAME" == "" ]; then
NAME="Telefonnummer $NUMMER"
else
echo "" >> $CALLERIDCONF
echo "[NUMBER]" >> $CALLERIDCONF
echo "NUMBER = $NUMMER" >> $CALLERIDCONF
echo "ALIAS = $NAME" >> $CALLERIDCONF
fi;
QUELLE="I"
fi
$SENDCOMMAND $NUMMER "$NAME" $MSN $QUELLE
Alles anzeigen
meine /usr/local/bin/msg2vdr.sh:
Bash
#!/bin/bash
NUMMER=$1
NAME=$2
MSN=$3
QUELLE=$4
SENDCOMMAND="/usr/bin/svdrpsend.pl"
VDRS=( localhost vdr )
for element in $(seq 0 $((${#VDRS[@]} - 1)))
do
$SENDCOMMAND -d ${VDRS[$element]} -p 2001 "MESG $MSN - $NAME ($QUELLE)"
done
Alles anzeigen
Hoffe es hilft jemandem.
Gruß Magnus