calltype.sh
Habs noch etwas erweitert:
calltype.sh kann nun vom calllog aufgerufen werden.
callog
1. Parameter: CID
2. Parameter: Verzögerungszeit in Sekunden
Es wird dann eine Mail an die angegeben Mail-Adresse gesendet, die wie folgt aussehen kann:
Es wird hinter -- die CID auch nochmal aus der Anrufliste herausgesucht.
Fehlt der 2. Paramter erfolgt die Ausgabe auf dem Telnet-Bildschirm, also ohne Mail, sofort.
calltype.sh
Habs noch etwas erweitert:
calltype.sh kann nun vom calllog aufgerufen werden.
callog
Code:
...
USB_Stick=`echo /var/media/ftp/*USB*`
$USB_Stick/calllog/calltype.sh $CID 600 &
1. Parameter: CID
2. Parameter: Verzögerungszeit in Sekunden
Es wird dann eine Mail an die angegeben Mail-Adresse gesendet, die wie folgt aussehen kann:
Eingehender Anruf: Typ: 1;17.03.09 21:55;Eltern;01701234567;Gigaset 3000 Micro;222222;0:04
--
1;17.03.09 21:55;Eltern;01701234567;Gigaset 3000 Micro;222222;0:04
3;17.03.09 21:45;Eltern;01701234567;Gigaset 3000 Micro;222222;0:07
1;17.03.09 20:14;Eltern;01701234567;T Sinus 45K;222222;0:04
1;17.03.09 19:54;Eltern;01701234567;Gigaset 3000 Micro;222222;0:01
3;17.03.09 19:53;Eltern;01701234567;Gigaset 3000 Micro;222222;0:01
(1-incoming, 2-missed, 3-outgoing)
Es wird hinter -- die CID auch nochmal aus der Anrufliste herausgesucht.
Fehlt der 2. Paramter erfolgt die Ausgabe auf dem Telnet-Bildschirm, also ohne Mail, sofort.
calltype.sh
Code:
CID=$1
SLEEP=$2
USB_Stick=`echo /var/media/ftp/*USB*`
MailText="$USB_Stick/calllog/calltype_mail.txt"
# Zeitverzögerung mitgegeben? Dann warten.
if [[ $# -eq 2 ]]; then
sleep $2
fi
# FBF passwort übertragen
FBFPASSW="fbfpasswort"
export REQUEST_METHOD="POST"
export REMOTE_ADDR="127.0.0.1"
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="login:command/password=$FBFPASSW"
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null
# Calltype bestimmen
# http://www.ip-phone-forum.de/showthread.php?p=1291387&posted=1#post1291387
url="http://${REMOTE_ADDR}/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=foncalls&var:errorpagename=foncalls&var:menu=home"
wget -q -O - "$url" > /dev/null
# csv anrufliste auslesen
# hier sind die neusten zuerst; format:
# Typ;Datum;Name;Rufnummer;Nebenstelle;Eigene Rufnummer;Dauer
url="http://${REMOTE_ADDR}/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv"
Call=$(wget -q -O - "$url" | grep $CID | head -1)
CallType=`echo $Call | sed 's/^\(.\).*$/\1/'`
if [ -z "$CallType" ]
then
echo "Anruf (noch) nicht in der Anrufliste..." > "$MailText"
else
case "$CallType" in
1*) echo "Eingehender Anruf: Typ: $Call" > "$MailText"
;;
2*) echo "Verpasster Anruf: Typ: $Call" > "$MailText"
;;
3*) echo "Ausgehender Anruf: Typ: $Call" > "$MailText"
;;
*) echo "Unbekannter Anruf: Typ: $Call" > "$MailText"
;;
esac
fi
echo "--" >> $MailText
wget -q -O - "$url" | grep $CID | head -5 >> $MailText
echo " (1-incoming, 2-missed, 3-outgoing)" >> $MailText
MailFrom="FRBXY <[email protected]>"
MailTo1="FRBXY <[email protected]>"
SMTP="mail.gmx.net"
User="12345678"
PW="gmxpasswort"
MailBetreff="F!INFO:"
if [[ $# -eq 2 ]]; then
/sbin/mailer -s "$MailBetreff am `date +\"%d.%m.%Y,%H:%M\"`" -f "$MailFrom" -t "$MailTo1" -m "$SMTP" -a "$User" -w "$PW" -i "$MailText"
else
cat "$MailText" # ohne sleeptimer nur auf Bildschirm ausgeben.
fi
if [ -e $MailText ];then rm $MailText; fi