#!/bin/sh
# Meldung eingehender Anrufe der FB via Mail
# Rev. 04.2010 by Lemur
# Ergänzt von iPhone10 04.08.2010
# Folgende Sachen ergänzt: Tmpdir und Tmpdateien erstellt. Es fehlt noch: .sed Integration
#############################################
# Einstellungen
VZDIR="/var/media/ftp/SanDisk-U3CruzerMicro-01/monitor" # Arbeitsverzeichniss
TMPDIR="/var/tmp/calllog" # Tempdir
BLLOG="${VZDIR}/logs/black-log.txt" # Logfile nicht gefundener Einträge
DEBUG="ON" # Konsolen Debug ausgabe zum testen
SMSGW="ON" # SMS zustellung
#############################################
# Script Variabeln
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
#############################################
# Script Initialisierung
if [ "$DEBUG" = "ON" ] ; then echo "touch tmp.htm + touch tmp1.htm + smstext.txt" ; fi
if [ -d ${TMPDIR} ] ; then if [ "$DEBUG" = "ON" ] ; then echo "Verzeichnis /var/tmp/calllog schon vorhanden" ; fi ; else mkdir ${TMPDIR}; fi
touch ${TMPDIR}/tmp.htm
touch ${TMPDIR}/tmp1.htm
touch ${TMPDIR}/smstext.txt
touch ${TMPDIR}/result.htm
if [ "$DEBUG" = "ON" ] ; then echo "Script start mit CID=$1 , MSN=$2 , LINE=$3 , FBTB=$5" ; fi
if [ "$CID" = "" ] ; then
CID="Unbekannt"
output="<b>Der Anrufer hat seine Telefonnummer nicht übermittelt</b>."
if [ "$DEBUG" = "ON" ] ; then echo "Die Rufnummer wurde nicht übergeben - Suche übersprungen." ; fi
else
# Prüfe in Whitelist & internem Telefonbuch
daten=$(cat ${VZDIR}/whitelist.txt | grep -c $1);
if [ "$daten" != "0" ] ; then output=$(cat ${VZDIR}/whitelist.txt | grep $CID | sed 's/;/+/g;s/[^+]*+//;s/^/Inhaber: <br><b>/;s!+!</b>+!;s!+!<br />!g'); fi
if [ "$daten" = "0" ] ; then output="Inhaber: <b> <br />$5</b>" ; fi
if [ "$5" != "" ] ; then daten="1" ; fi
if [ "$DEBUG" = "ON" ] ; then echo "Whitelist ergab: Output=$output , Daten=$daten" ; fi
# Falls notwendig, prüfe in online Vereichnis KLICKTEL
if [ "$daten" = "0" ] ; then url="http://www.klicktel.de/inverssuche/index/search?method=searchSimple&_dvform_posted=1&phoneNumber=$1" ; wget -q -O ${TMPDIR}/tmp.htm "$url"
sleep 5 ; daten="5" ;
tbname=$(cat ${TMPDIR}/tmp.htm | grep "namelink" | sed 's/<[^<]*>/\ /g;s/ //;s/ /, /');
adress=$(cat ${TMPDIR}/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 ${TMPDIR}/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" = "ON" ] ; then echo "KlickTel ergab: OUTPUT=$output , daten=$daten" ; fi
fi
# 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 ${TMPDIR}/tmp.htm "$url"
sleep 5 ; daten="5" ; daten=$(cat ${TMPDIR}/tmp.htm | grep -c "long hide");
if [ "$daten" != "0" ] ; then
echo "<b>Inhaber: </b><br />" > ${TMPDIR}/tmp1.htm
cat ${TMPDIR}/tmp.htm | sed -n -e '/class="long hide"/,/div/p' >> ${TMPDIR}/tmp1.htm
cat ${TMPDIR}/tmp.htm | sed -n -e '/class="no-icon"/,/div/p' >> ${TMPDIR}/tmp1.htm
output=$(cat ${TMPDIR}/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
fi
BODYHEAD="<html><body><b> <font face="arial" size="2"> Telefonsystem | Anrufinformation:</b><br /><br /> $output <br /><br /> <font color="#666666"> Status: $3 $4 <br/> Von Nummer: $CID <br /> Auf Leitung: $2 <br/> Um: `date -R` CET <br /><br /> <br /> <br />"
BODYFOOT="Ein Service von Jonas :P </html>"
echo -e $BODYHEAD > ${TMPDIR}/result.htm
echo -e $BODYFOOT >> ${TMPDIR}/result.htm
#############################################
# Adressierungseinstellung
# Muster:
# MSN3 | MSN4 | MSN5 )
# [email protected]
# [email protected]
# Statt TOSMS: SMSGW="OFF"
# ;;
case "$2" in
3xxxxx )
[email protected]
SMSGW="OFF"
;;
3xxxxx )
[email protected]
[email protected]
SMSGW="ON"
;;
esac ;
if [ "$DEBUG" = "ON" ] ; then echo "E-Mail für $TOADRESS vorbereitet." ; fi
if [ -z "$TOADDRESS" ] ; then exit ; fi
#############################################
# Mailer
/sbin/mailer \
-s "Von $CID auf $MSN um `date +\"%H:%M am %d.%m.%y\"`"\
-f 'Abesndername <[email protected]>' \
-t "$TOADDRESS" \
-m smtp.hoster.de \
-a login \
-w passwort \
-l 465 \
-i ${TMPDIR}/result.htm
#############################################
# SMS Service
if [ "$SMSGW" = "ON" ] ; then
sed -n -f ${VZDIR}/html2sms.sed ${TMPDIR}/result.htm > ${TMPDIR}/smstext.txt
/sbin/mailer \
-s "benutzername|passwort|gateway=2"\
-f 'Abesndername <[email protected]>' \
-t "$TOSMS" \
-m smtp.hoster.de \
-a login \
-w passwort \
-l 465 \
-i ${TMPDIR}/result.htm
fi
#############################################
# System bereinigen
if [ "$DEBUG" = "ON" ] ; then
echo "Mail verarbeitet, löschen unterbrochen."
else
rm ${TMPDIR}/*.htm
rm ${TMPDIR}/*.txt
fi
exit 0