#!/bin/sh
set -xv
# Debug aktivieren - true/false
DEBUG="true"
# Ausgabe auf der Kommandozeile - true/false
COMMANDL="true"
# Email schicken bei Anruf - ON/OFF
MAIL="ON"
# DBox-Ausgabe der Anrufe - ON/OFF
DBOX="ON"
# Mail Config
TOMAILADR="[email protected]"
MAILLOGIN="smtp.a.com:123"
MAILLOGINNAME="[email protected]"
MAILLOGINPW="123456789"
# Dreambox Config
dboxip="1.2.3.4" # IP des WebIF der DreamBox
dboxDURATION=20 # Anzeigedauer auf der DreamBox
isE2="true" # bei Enigma1 = false, bei Enigma2 = true
#############################################
# Script Initialisierung
#############################################
CID=$1 # CID die ruft
MSN=$2 # MSN die gerufen wird
LINE=$3 # Leitung die gerufen wird
FBTB=$5 # Name des internen Telefonbuchs, falls vorhanden
if $DEBUG; then
# Wenn Debug, dann wird automatisch die Ausgabe auf die Kommandozeile eingeschaltet
# egal, was oben angegeben wurde
COMMANDL="true"
echo "Script start mit CID=$CID , MSN=$MSN , LINE=$LINE , FBTB=$FBTB"
echo "DBOX=$DBOX, MAIL=$MAIL"
echo
fi
########################################################
f_dbox(){
DBOX_DATE="$(date +%d.%h%20%H:%M)"
if [ "$DBOX" = "ON" ] ; then
# Leerzeichen durch %20 ersetzen
MYNAMEDBOX="$(echo $MYNAME | sed 's/ /%20/g')"
MYNAMEDBOX1="$(echo $MYNAME1 | sed 's/ /%20/g')"
FBTBDBOX="$(echo $FBTB | sed 's/ /%20/g')"
# Wenn kein Eintrag Online
case $MYNAME in
KEIN.EINTRAG)
# Telefonbuch leer
if [ -z "$FBTB" ]; then
DBOXMESSAGE="$CID%20%5Cn$DBOX_DATE"
else
# Telefonbucheintrag vorhanden
DBOXMESSAGE="$FBTBDBOX%20%5Cn$CID%20%5Cn$DBOX_DATE"
fi
;;
anonym)
# Anonymer Anruf
DBOXMESSAGE="Der%20Teilnehmer%20hat%20die%20Nr.%20unterdrückt%20%5Cn$DBOX_DATE"
;;
*)
# Normaler Anruf mit Online-Eintrag
DBOXMESSAGE="$FBTBDBOX%20%5Cn$CID%20%5Cn$MYNAMEDBOX1%20%5Cn$DBOX_DATE"
;;
esac
# Nachrichten-Syntax f³r E1 oder E2 festlegen
if $isE2; then
DBOX_POPUP="http://$dboxip/web/message?text=$DBOXMESSAGE&type=1&timeout=$dboxDURATION"
else
DBOX_POPUP="http://$dboxip/cgi-bin/xmessage?caption=Anruf&body=$DBOXMESSAGE&timeout=$dboxDURATION"
fi
# Nachricht ausgeben
wget -q -O /dev/null "$DBOX_POPUP"
if $DEBUG ; then echo "wget -q -O /dev/null $DBOX_POPUP"; fi
fi
}
f_mail(){
if [ "$MAIL" = "ON" ]; then
ALLTOGETHER="-f '"Fritz!Box" <[email protected]>' -t "$TOMAILADR" -m $MAILLOGIN -i '/var/tmp/calllog1.txt' -a $MAILLOGINNAME -w $MAILLOGINPW"
# Wenn eine Datei $MYNAME.vcf existiert
if [ -f /var/tmp/$MYNAME.vcf ]; then
/sbin/mailer \
-s "CALL: $MYNAME $CID an $MSN `date +\"%d.%m.%y %H:%M\"` ($LINE)$4" \
$ALLTOGETHER \
-d /var/tmp/$MYNAME.vcf
rm -f /var/tmp/$MYNAME.vcf > /dev/null
else
/sbin/mailer \
-s "CALL: $MYNAME $CID an $MSN `date +\"%d.%m.%y %H:%M\"` ($LINE)$4" \
$ALLTOGETHER
fi
fi
}
f_echofindings(){
if $COMMANDL; then
echo $MYURL
echo $MYNAME
echo $MYNAME1
echo $BASEURL
echo $SEARCHI
fi
}
f_loadvcard(){
wget -O /var/tmp/tmp.vcf "$BASEURL$MYURL"
grep -v "URL;" /var/tmp/tmp.vcf | grep -v "NOTE;" | grep -v "END:VCARD" | sed's/^N:\([a-zA-Z]*\) \([a-zA-Z]*\).*/N:\1;\2/' | tr -d '\t' >/var/tmp/$MYNAME.vcf
grep "NOTE;" /var/tmp/tmp.vcf >$TMPF3
cat $TMPF3 | sed 's/^.*\/?//g' | sed 's/\&mt.*//g' | sed 's/3D//g' >$TMPF4
LAT=$( cat $TMPF4 | sed 's/lat=\([0-9]*\)\.\([0-9]*\)\&lon=\([0-9]*\)\.\([0-9]*\).*/\1.\2/' )
LON=$( cat $TMPF4 | sed 's/lat=\([0-9]*\)\.\([0-9]*\)\&lon=\([0-9]*\)\.\([0-9]*\).*/\3.\4/' )
}
# Falls notwendig, pr³fe in online Vereichnis DAS TELEFONBUCH
if [ "$daten" = "0" ]; then
url="http://www2.dastelefonbuch.de/?la=de&bi=15&kw=$1&cmd=search"
wget -q -O tmp.htm "$url"
sleep 5 ; daten="5" ; daten=$(cat tmp.htm | grep -c "long hide");
if [ "$daten" != "0" ]; then
echo "<b>Inhaber: </b><br />" > tmp1.htm
cat tmp.htm | sed -n -e '/class="long hide"/,/div/p' >> tmp1.htm
cat tmp.htm | sed -n -e '/class="no-icon"/,/div/p' >> tmp1.htm
output=$(cat tmp1.htm);
else
output="Der Anschlussinhaber konnte nicht ermittelt werden." ; echo -e "`date +\"%y.%m.%d-%H:%M\"` - auf MSN: $MSN - no result in T - Com Database - CID: $CID" >> ${BLLOG} ;
fi
if [ "$DEBUG" = "ON" ]; then echo "T-Com ergab: OUTPUT=$output , daten=$daten"; fi
fi
#########################################################
if $COMMANDL; then
echo "#########################################################################"
echo "`date +\"%d.%m.%y %H:%M\"` - Anruf von $CID ($FBTB) an $MSN ($LINE) $4"
echo
fi
if [ -z "$CID" ]; then
MYNAME="anonym";
if $COMMANDL; then echo "Anonymer Anruf!"; fi
else
# Pr³fung 1 - GoYellow.de
BASEURL="http://www.goyellow.de"
SEARCHI="inverssuche/?TEL="
TMPF1=/var/tmp/tmpc.txt
TMPF2=/var/tmp/tmpcc.txt
TMPF3=/var/tmp/maps.tmp
TMPF4=/var/tmp/maps1.tmp
BBMAPSURL="http://maps.BlackBerry.com"
GMAPSURL="http://maps.google.com"
CR='\015'
if $COMMANDL; then
echo "===================================="
echo "Auswertung $BASEURL ..."
fi
# Online Abfrage
wget -q -O $TMPF1 "$BASEURL/$SEARCHI$CID"
# Visitenkarte abfragen
cat $TMPF1 | grep "Eine Visitenkarte" | sed '2,50d' >$TMPF2
MYURL=$( cat $TMPF2 | sed -e 's/^.*href=\"//g' | sed -e 's/\">.*//g' )
MYNAME=$( cat $TMPF2 | sed -e 's/^.*von //g' | sed -e 's/\([a-zA-Z0-9]*\) \([a-zA-Z0-9]*\).*/\2_\1/' )
MYNAME1=$(echo $MYNAME | sed 's/_/ /g')
# Wenn kein Visitenkarte vorhanden, weitere Kontaktdaten abfragen
if [ "$MYURL" = "" ]; then
cat $TMPF1 | grep 'title\=\"Weitere Kontaktdaten' | sed '2,50d' >$TMPF2
MYURL1=$( cat $TMPF2 | sed 's/^<a href="\/upgrade?q=\([0-9a-z]*\).*/\1/' )
# Wenn keine Kontaktdaten vorliegen
if [ "$MYURL1" = "" ]; then
FOUND="N"
MYNAME="KEIN.EINTRAG"
MYNAME1="Kein Eintrag"
if $COMMANDL; then echo "kein Eintrag! - $BASEURL"; fi
else
# Kontaktdaten abfragen (weiterer Versuch)
echo "next try: $BASEURL/upgrade?q=$MYURL1"
wget -q -O $TMPF1 "$BASEURL/upgrade?q=$MYURL1"
cat $TMPF1 | grep "Eine Visitenkarte" | sed '2,50d' >$TMPF2
MYURL=$( cat $TMPF2 | sed -e 's/^.*href=\"//g' | sed -e 's/\".*//g' )
MYNAME=$(cat $TMPF2 | sed -e 's/^.*von //g' | sed -e 's/\([a-zA-Z0-9]*\) \([a-zA-Z0-9]*\).*/\2_\1/' | sed 's/,/_/g' )
MYNAME1="$(echo $MYNAME | sed -e 's/_/ /g')"
FOUND="Y"
f_echofindings
# Visitenkarte holen
f_loadvcard
fi
else
FOUND="Y"
f_echofindings
f_loadvcard
fi
fi
# Pr³fung 2
# Falls notwendig, pr³fe bei KLICKTEL
# if [ "$MYNAME1" = "Kein Eintrag" -a -z "$FBTB" ]; then
if [ "$MYNAME1" = "Kein Eintrag" ]; then
BASEURL="http://www.klicktel.de"
url="$BASEURL/inverssuche/index/search?method=searchSimple&_dvform_posted=1&phoneNumber=$1"
if $COMMANDL; then
echo "===================================="
echo "Auswertung $BASEURL ..."
fi
wget -q -O /var/tmp/tmp.htm "$url"
#sleep 5
#tbname=$(cat tmp.htm | grep "namelink" | sed 's/<[^<]*>/\ /g;s/ //;s/ /, /');
MYNAME="$(cat /var/tmp/tmp.htm | grep namelink | sed 's/<[^<]*>/\ /g; s/^[ \t]*//g; s/\([a-zA-Z]*\) \([a-zA-Z]*\)/\2_\1/g')"
# Falls die Variable leer ist
if [ -z "$MYNAME" ]; then
FOUND="N"
MYNAME="KEIN.EINTRAG"
MYNAME1="Kein Eintrag"
if $COMMANDL; then echo "kein Eintrag! - $BASEURL"; fi
else
FOUND="Y"
MYNAME1="$(echo $MYNAME | sed 's/_/ /g')"
fi
#adress=$(cat tmp.htm | sed 's!/!!g' | sed -n '/p class="data track"/,/p>/p' | sed '/p class="data track"/d;$d' | sed 's!<br >! <br />!g');
#tbnum=$( cat tmp.htm | grep "phoneNumber" | sed 's/"phoneNumber" value="/ #/;s/.*\#//;s/"/ # /;/^#/d;s/#.*$//g;s/ //g');
#output="Inhaber: <b> <br />$tbname </b> <br />$adress <br />Tel.:$tbnum"
#if [ -z "$tbname" ] ; then daten="0" ; output="Der Anschlussinhaber konnte nicht ermittelt werden." ; echo -e "`date +\"%y.%m.%d-%H:%M\"` - auf MSN: $MSN - no result in KlickTel Database - CID: $CID" >> ${BLLOG} ; fi
if $DEBUG ; then echo "tel.search.ch ergab: tbname=$tbname"; fi
fi
echo $MYNAME1 >/var/tmp/calllog1.txt
echo $CID >>/var/tmp/calllog1.txt
if [ "$FOUND" = "Y" ]; then
echo $BBMAPSURL\?lat\=$LAT\&lon\=$LON\&z=2 >>/var/tmp/calllog1.txt
# Visitenkarte erstellen
echo -n NOTE\;ENCODING\=QUOTED\-PRINTABLE:$BBMAPSURL\?lat\=3D$LAT\&lon\=3D$LON\&z=3D2 >>/var/tmp/$MYNAME.vcf
cat /var/flash/CRLF.txt >> /var/tmp/$MYNAME.vcf
echo "END:VCARD" >>/var/tmp/$MYNAME.vcf
cat /var/flash/CRLF.txt >> /var/tmp/$MYNAME.vcf
cat /var/flash/CRLF.txt >>/var/tmp/calllog1.txt
echo "Alternativ Gmaps URL" >>/var/tmp/calllog1.txt
echo $GMAPSURL/\?q\=$LAT,$LON >>/var/tmp/calllog1.txt
cat /var/flash/CRLF.txt >>/var/tmp/calllog1.txt
# echo "---- debug info: -------" >>/var/tmp/calllog1.txt
# echo "$BASEURL$MYURL" >>/var/tmp/calllog1.txt
fi
# Auswertung der Online-Abfrage ausgeben
if [ "$MYNAME" = "anonym" ]; then
if $COMMANDL; then echo "--- anonym"; fi
f_dbox
f_mail
exit
fi
if [ "$MYNAME" = "KEIN.EINTRAG" ]; then
if $COMMANDL; then echo "--- kein eintrag"; fi
f_dbox
f_mail
exit
fi
if $COMMANDL; then echo "--- vcf: $MYNAME.vcf"; fi
f_dbox
f_mail