Quick'n'Dirty: SMS-Benachrichtigung bei eingehenden Anrufen

Wenn du dir alleine den ersten Beitrag mal genau durchliest,
dann merkst du vielleicht, dass "SMS" hier zweitrangig ist!

Es wird grundsätzlich eine normale Mail versendet!

Ich habe dir hier mal ein Script nach deinen Wünschen und relativ aktuellen Daten zusammengestellt:
Code:
#!/bin/sh
temp="/var/tmp/cid.txt"; echo $1 > $temp
CCID=$(sed -e 's/^0049//; s/^49\([0-9]\{8,\}\)/\1/; s/^0//' $temp)
rm $temp;
# Inverssuche bei DasOertliche.de
url="http://www2.dasoertliche.de/?form_name=search_inv&page=RUECKSUCHE&context=RUECKSUCHE&action=STANDARDSUCHE&la=de&rci=no&ph=0$CCID";
nameDO=$(wget -q -O - "$url" | grep class=\"entry\" |
sed -e 's/<[^<]*>/\ /g; s/^[^a-zA-Z0-9]*//g; s/  /, /g')
addrDO=$(wget -q -O - "$url" | grep -A 6 class=\"entry\" |
sed -e '1,6d; 7s/&nbsp;/ /g; s/<[^<]*>/\ /g; 7s/^ *//g')
if [ -z "$nameDO" ]; then nameDO="not found"; fi

# Formatierung Mail-Body
echo "Ergebnis der Inverssuche für $1($5):
-------------------------
dasoertliche.de:

$nameDO
$addrDO
-------------------------

Fritz!Box: Mail send at $(date +%H:%M:%S)" > /var/tmp/calllog.txt

/sbin/mailer \
  -s "FBF: Anruf von $1 ($5) an $2" \
  -f '"Fritz!Box" <[email protected]>' \
  -t "[email protected]" \
  -m smtp.mail.de \
  -a "Benutzer" \
  -w "Passwort" \
  -i '/var/tmp/calllog.txt'
Du mußt nur noch deine Maildaten am Ende des Scriptes einsetzen.
 
Klasse! Funkt! Vielen Dank!
 
Ist es eignetlich auch möglich ausgehende Anrufe über diesen Weg zu loggen?
 
Nicht dass ich wüsste.
Die FBF übergibt Daten nur bei einem ankommenden Anruf an dieses Script.

Du kannst dir ja die tägliche Pushmail aktivieren,
wo die Anruferliste des ganzen Tages mitgesendet wird.
 
Hallo, folgendes Problem habe ich mit der Box (nutze das Script aus Beitrag 161, das duerfte daran aber nicht die Schuld haben). Firmware ist 29.04.44-9163 und Box 7170.
Ich bekomme pro Verpassten Anruf auch noch ein oder zwei mails mit folgendem Betreff: FBF: Anruf von *694* () an xxxxxxx. Waehrend eines Telefonats gehen so ca. alle 20 bis 30 Sekunden mails mit dem selben Betreff raus (das macht dann bei einem laengeren Telefonat schon etliche mails, nervt dann doch etwas...).
MWI hab ich nun schon komplett deaktiviert, auch mit #97*1*. Jetzt bleibt mir fast nur noch die Hoffnung das man das Script so anpassen koennte das keine Suche nach *694* durchgefuehrt wird.
Dann mal noch eine Frage, wenn man die calllog mit cat calllog>/var/flash/calllog speichert, wird die vorhergehende komplett ueberschrieben? Oder wie loescht man das ganze falls man es nicht mehr nutzen will.
Danke schon mal.

Ciao Max
 
cat calllog>/var/flash/calllog speichert, wird die vorhergehende komplett ueberschrieben?

Jap, wird komplett überschrieben.

Und allgemein betrachtet:

rm - löscht die datei
rmdir - löscht das verzeichnis
 
... Jetzt bleibt mir fast nur noch die Hoffnung das man das Script so anpassen koennte das keine Suche nach *694* durchgefuehrt wird...

Teste mal folgende Zeile, die du als 2te Zeile direkt unter #!/bin/sh einfügst:
Code:
if [ ${#1} -le 5 ] ; then exit 1; fi
 
Klappt leider nicht, bekomme immer noch massenhaft mails mit der oben schon genannten Meldung.
Im telnet Fenster seh ich auch folgendes:
Code:
Nov 25 17:52:31 telefon[750]: SIGCHLD received!
Nov 25 17:52:48 telefon[750]: SIGCHLD received!
Nov 25 17:53:01 telefon[750]: SIGCHLD received!
Nov 25 17:53:21 telefon[750]: SIGCHLD received!
Nov 25 17:56:20 telefon[750]: SIGCHLD received!
Nov 25 17:56:26 telefon[750]: SIGCHLD received!
Nov 25 17:56:36 telefon[750]: SIGCHLD received!
Nov 25 17:56:47 telefon[750]: SIGCHLD received!
Nov 25 17:56:58 telefon[750]: SIGCHLD received!
Nov 25 17:57:08 telefon[750]: SIGCHLD received!
Und dann geht auch jedesmal ne mail raus. Hat jemand noch eine Idee was das sein koennte?

Ciao Max
 
Ich kann das bei mir leider nicht nachvollziehen, sodass du selber testen mußt.

Teste mal diese Zeile als Ersatz für meine vorherige Lösung:
Code:
if [ `echo "$1" | grep "*"` ] ; then echo "stopped"; exit 1; fi
 
Ich kann das bei mir leider nicht nachvollziehen, sodass du selber testen mußt.
Kein Problem, das "Fehlverhalten" scheint ja auch nur bei mir aufzutreten.
So wie es aussieht funktioniert das jetzt, vielen dank noch fuer die schnelle Hilfe.

Ciao Max
 
Ist es möglich, den Script ggfs. so zu erweitern, dass der Text der Betreffzeile "Anruf von auf Leitung etc." auch in der Hauptmitteilung der E-Mail angezeigt wird ?

Hintergrund ist, dass ich mir die Anrufinfos auf meinen BB pushen lassen, und immer durch die Betreffzeile scrollen muss.

Vielen Dank.
 
Ja, ist möglich.
Einfach die gewünschten Infos in calllog.txt schreiben.
Also z.B. vorm mailer-Aufruf:
echo "FBF: Anruf von $1 ($5) an $2" >> /var/tmp/calllog.txt
 
Danker, aber ich möchte nicht die Calllog.txt erweitern, sondern die Betreff-Zeile mit de rAnruf Info auch im MailBody sehen.
 
Hallo

der Mailbody ist nun mal der Inhalt der calllog.txt!

Also musst du das wohl folgendermaßen ergänzen:
Code:
# Formatierung Mail-Body
[COLOR="Red"]echo "FBF: Anruf von $1 ($5) an $2" > /var/tmp/calllog.txt[/COLOR]
echo "Ergebnis der Inverssuche für $1($5):
-------------------------
dasoertliche.de:

$nameDO
$addrDO
-------------------------

Fritz!Box: Mail send at $(date +%H:%M:%S)" >[COLOR="Red"]>[/COLOR] /var/tmp/calllog.txt

/sbin/mailer \ ........
Bitte beachte auch die Änderung in der Fritz!Box:-Zeile (doppeltes ">"-Zeichen)!

Joe
 
Zuletzt bearbeitet:
Vielen, Vielen Dank. Genau das war es, was ich suchte. Merci. !!!
 
callmonitor mit Mailbenachrichtigung via calllog: Inverssuchen, Callback, Callthrough

Dank an Moonbase, RudatNet, Lemur, thc und die anderen im Forum: calllog - Script läuft bei mir auf der 7170 mit der aktuellen 29.04.49:

Die Benachrichtigung aller Anrufe erfolgt per Mail und auf zwei dBoxen.
Features:
- Inverssuche bei dasOertliche.de und Telefonbuch.de
- lokales Telefonbuch auf USB-Stick
- Fritzbox Telefonbuch ($5) wird auch bei Auswertung benutzt.

- Mailbenachrichtigung Ein- und Ausschalten per 2 Adminnummern (einmal anklingeln reicht)
- Wake on Call (WOC) mit Mailbenachrichtigung per 2 Adminnummern (einmal anklingeln reicht)
- Callback und callthrough (Rückruf und Durchwahl) (einmal anklingeln (Lockruf) reicht)
- Logfile mit Logfilehandling
- Logfiles etc. Files auf USB-Stick

contacte.txt nach folgendem Muster im USB-Pfad /var/media/ftp/USBMassStorageDevice... (siehe calllog) erstellen:
Code:
#LINES
#line=:anonym;
#line=111111:Privat;
#line=222222:Büro;
#line=333333:POTS virtuell;
#LINESEND

#CONTACTS
#contact=:anonym;
#contact=06321123456:Freundin;Strasse;PLZ Stadt;
#CONTACTSEND

calllog als Unix-File in USB-Pfad (hier: /var/media/ftp/USBMassStorageDevice-Partition-0-1/calllog/) per FTP auf FBF kopieren.
cd /var/media/ftp/USBMassStorageDevice-Partition-0-1/calllog/; cat calllog > /var/flash/calllog
Code:
#!/bin/sh
# calllog vom 20.2.2008
# cd /var/media/ftp/USBMassStorageDevice-Partition-0-1/calllog/; cat calllog > /var/flash/calllog

CalllogLog="/var/media/ftp/USBMassStorageDevice-Partition-0-1/calllog/calllog.log"
ContactDB1="/var/media/ftp/USBMassStorageDevice-Partition-0-1/calllog/contacte.txt"
ContactDB2="/var/media/ftp/USBMassStorageDevice-Partition-0-1/calllog/contact2.txt"
MailText="/var/media/ftp/USBMassStorageDevice-Partition-0-1/calllog/calllog_mail.txt"
CalllogFlag="/var/media/ftp/USBMassStorageDevice-Partition-0-1/calllog/calllog.flg"

MailFrom="Name <[email protected]>"
MailTo="Name <[email protected]>"
SMTP="mail.gmx.net"       # Server
User="123456"             # Mailuser
PW="passwort"             # Passwort für User

AWS_MSN1="111"
AWS_MSN2="222"
MSN_Msg_On="333"
MSN_PC_On="444"
MSN_AWS_On="555"
MSN_Callthrough="666"
MSN_CallBack1="777"    # ruft CID zurück
MSN_CallBack2="888"    # ruft Buero_Nr zurück
MSN_Mail_AWS_Off="999"

AWS_ZIEL="089111"
Buero_Nr="089222"
Admin1="0171222"   # Meine Telnr1, die ein- und ausschalten darf.
Admin2="089222"    # Meine Telnr2, die ein- und ausschalten darf.
Admin3="070222"    # Meine Telnr3, die ein- und ausschalten darf.
Admin4="069222"    # Meine Telnr4, die ein- und ausschalten darf.
prefix="089"           # meine Ortsvorwahl

dbox1="10.10.10.11" # IP von dbox 1
dbox2="10.10.10.12" # IP von dbox 2
wolinterface="eth0"    # Fritzboxinterface an dem der PC hängt
wolmac="00:33:44:55:66:77" # MAC des PC

# Logfilehandling
if [ `grep -c "" $CalllogLog` -gt 10000 ];then # mehr als 10000 Zeilen, dann die ersten 20 ZEILEN löschen.
  tail +20 $CalllogLog > ${CalllogLog}_; cp ${CalllogLog}_ $CalllogLog; rm ${CalllogLog}_
fi

# Start
echo "" >> $CalllogLog; echo "I:"`date` >> $CalllogLog
echo 14,3 > /var/led; echo "I:Internet LED flash." >> $CalllogLog

CID=$1
Line=$2 # $3=ISDN, SIP..., $5=Name aus Fritzboxtelefonbuch

if [ -z "$CID" ];then # wenn keine Nummer übertragen
	echo "I:keine CID übertragen" >> $CalllogLog
	CID="anonym";
	name="Anonym"
else # wenn Nummer übertragen #
	case ${CID} in # normalize CID
		0049*)           CID=0${CID#*0049} ;;
		49????????*)     CID=0${CID#*49} ;;
		[1-9]????????*)  CID=0${CID} ;;
		[1-9]*)          CID=${prefix}${CID} ;;
	esac
	CCID=`echo "${CID}" | sed -e 's/^0049//; s/^49\([0-9]\{8,\}\)/\1/; s/^0//'`
	echo "I:CID/CCID: $CID/$CCID erkannt." >> $CalllogLog

	# search LineName in line list
	LineName=`cat $ContactDB1 2>/dev/null | fgrep "#line=${Line}:" | sed "s/#line=${Line}://"`
	LineName=${LineName%%\;*} # Semikolon entfernen
	if [ -z "${LineName}" ];then # LineName not found?
		Name="N.N." # Nomen Nescio
		echo "W:Zeile: #Line=$Line:MSNx nicht in $ContactDB1 gefunden. Zeile manuell nachtragen." >> $CalllogLog
	fi
	httpLineName=`echo "${LineName}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`

	# search name in LocalTelbook
	entry=`cat $ContactDB1 2>/dev/null | fgrep "#contact=${CID}:" | sed "s/#contact=${CID}://"`
	name=${entry%%\;*}
	address=${entry#*\;}
	address=${address%\;*}
	streetL=${address%%\;*}
	cityL=${address##*\;}

	if [ -z "${name}" ];then # name not found LocalTelbook? Inverssuche
		echo "I:CID: $CID nicht in $ContactDB1 gefunden. Inverssuche:" >> $CalllogLog
		# Inverssuche bei dasoertliche.de
		url="http://www2.dasoertliche.de/?form_name=search_inv&page=RUECKSUCHE&context=RUECKSUCHE&action=STANDARDSUCHE&la=de&rci=no&ph=0$CCID";
		nameDO=$(wget -q -O - "$url" | grep class=\"entry\" | sed -e 's/<[^<]*>/\ /g; s/^[^a-zA-Z0-9]*//g; s/  /, /g')
		addrDO=$(wget -q -O - "$url" | grep -A 6 class=\"entry\" | sed -e '1,6d; 7s/&nbsp;/ /g; s/<[^<]*>/\ /g; 7s/^ *//g')
		nameDO=`echo $nameDO | tr -d "\f\n\r\t\v\a\b" | sed 's/[^ -ü]//g' | sed "s/^\ *//g" | sed "s/\ *$//g"` # entfernt alles, was nicht zwischen $20 - $FC ist, TRIM
		addrDO=`echo $addrDO | tr -d "\f\n\r\t\v\a\b" | sed 's/[^ -ü]//g' | sed "s/^\ *//g" | sed "s/\ *$//g"` # entfernt alles, was nicht zwischen $20 - $FC ist, TRIM

		# Inverssuche bei dastelefonbuch.de
		url="http://dastelefonbuch.de/?sp=55&aktion=23&ort=&cifav=0&s=a10000&stype=S&la=de&cmd=search&ort_ok=0&vert_ok=0&x=31&y=9&kw=$CID"
		nameDT=$(wget -q -O - "$url" | grep class=\"celname\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g')
		streetDT=$(wget -q -O - "$url" | grep class=\"celstreet\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g' -e 's/&nbsp;/ /g')
		cityDT=$(wget -q -O - "$url" | grep class=\"celcity\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g' -e 's/&nbsp;/ /g')
		nameDT=`echo $nameDT | tr -d "\f\n\r\t\v\a\b" | sed 's/[^ -ü]//g' | sed "s/^\ *//g" | sed "s/\ *$//g"` # entfernt alles, was nicht zwischen $20 - $FC ist, TRIM
		streetDT=`echo $streetDT | tr -d "\f\n\r\t\v\a\b" | sed 's/[^ -ü]//g' | sed "s/^\ *//g" | sed "s/\ *$//g"` # entfernt alles, was nicht zwischen $20 - $FC ist, TRIM
		cityDT=`echo $cityDT | tr -d "\f\n\r\t\v\a\b" | sed 's/[^ -ü]//g' | sed "s/^\ *//g" | sed "s/\ *$//g"` # entfernt alles, was nicht zwischen $20 - $FC ist, TRIM

		# dastelefonbuch hier bevorzugt
		# nimmt nameDO nur wenn nameDT leer, sonst Unbekannt; NoAddress
		if [ -n "$nameDO" ];then # wenn nameDT gefüllt
			name=$nameDO
			address="$addrDO;"
			echo "I:Inverssuche DO: erfolgreich: $name $address" >> $CalllogLog
		fi # wenn nameDO gefüllt
		if [ -n "$nameDT" ];then # wenn nameDT gefüllt
			name=$nameDT
			address="$streetDT; $cityDT"
			echo "I:Inverssuche DT: erfolgreich: $name $address" >> $CalllogLog
		fi # wenn nameDT gefüllt

		# LocalTelbook ergänzen
		if [ -n "${name}" ];then # Wenn inverssuche erfolgreich
			cat $ContactDB1 | sed -e "s/^#CONTACTSEND$/#contact=${CID}:${name};${address};#CONTACTSEND/g" | sed -e 's/#CONTACTSEND$/\n#CONTACTSEND/g' > $ContactDB2
			echo "I:Inverssuche DT: erfolgreich: $name $address $ContactDB1 ergänzt." >> $CalllogLog
		else # wenn inverssuche erfolglos
			if [ -n "$5" ];then  # CID im Fritzbox-Telefonbuch gefunden?
				name=$5
				address="NoAddress"
				echo "I:Name im FBF-Tel.buch gefunden: $name" >> $CalllogLog
			else # CID leider auch nicht im Fritzbox-Telefonbuch gefunden
				name="Unbekannt"
				address="NoAddress"
			fi # CID im Fritzbox-Telefonbuch gefunden
			# Eintrag mit Nummer in contact.txt vorbereiten
			cat $ContactDB1 | sed -e "s/^#CONTACTSEND$/#contact=${CID}:${name};;;#CONTACTSEND/g" | sed -e 's/#CONTACTSEND$/\n#CONTACTSEND/g' > $ContactDB2
			echo "W:Inverssuche: erfolglos. $ContactDB1 mit $CID $5 erweitert. Manuell ergaenzen!" >> $CalllogLog
			/sbin/mailer -s "FRITZ!Admin: contacte.txt um $CID $5 erweitert. Manuell ergaenzen!" -f "$MailFrom" -t "$MailTo" -m "$SMTP" -a "$User" -w "$PW" -i "$ContactDB2"
		fi # Wenn inverssuche erfolgreich
		cp $ContactDB2 $ContactDB1

	fi # name not found LocalTelbook?
fi # wenn Nummer übertragen

echo "I:LineName: $LineName" >> $CalllogLog
echo "I:name: $name" >> $CalllogLog
echo "I:address: $address" >> $CalllogLog

httpname=`echo "${CID} (${name})" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
httpLine=`echo "${Line} (${LineName})" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
httpAddress=`echo "${address}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
httpZeit=`date +"%20%d.%m.%Y%20%H%3A%M%3A%S%20Uhr"`

case "$Line" in # auf AdminAnrufe prüfen
	"$MSN_CallBack1")
		# if [ "$CID" = "$Admin1" ] || [ "$CID" = "$Admin2" ];then # CallBack mit hoher Sicherheit
		if [ "$CID" != "anonym" ];then # CallBack mit niederiger Sicherheit
			rc1=`echo "ATP3" | nc 127.0.0.1 1011 | tr -d "\n\r"`
			# sleep 5
			rc2=`echo "ATD$CID" | nc 127.0.0.1 1011 | tr -d "\n\r"`
			# sleep 40
			# echo "ATH" | nc 127.0.0.1 1011 >> $CalllogLog  # Auflegen nach 40 Sekunden
			MailBetreff="FRITZ!Admin:"
			MailDetails="CallBack1: ATP3: ($rc1) ATD$CID: ($rc2):"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		else
			MailBetreff="FRITZ!Achtung:"
			MailDetails="CallBack1: ATP3: ($rc1) ATD$CID: ($rc2):"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		fi
		;;
	"$MSN_CallBack2")
		# if [ "$CID" = "$Admin1" ] || [ "$CID" = "$Admin2" ];then # CallBack mit hoher Sicherheit
		if [ "$CID" != "anonym" ];then # CallBack mit niederiger Sicherheit
			rc1=`echo "ATP3" | nc 127.0.0.1 1011 | tr -d "\n\r"`
			# sleep 5
			rc2=`echo "ATD$Buero_Nr" | nc 127.0.0.1 1011 | tr -d "\n\r"`
			# sleep 40
			# echo "ATH" | nc 127.0.0.1 1011 >> $CalllogLog  # Auflegen nach 40 Sekunden
			MailBetreff="FRITZ!Admin:"
			MailDetails="CallBack2: ATP3: ($rc1) ATD$Buero_Nr: ($rc2):"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		else
			MailBetreff="FRITZ!Achtung:"
			MailDetails="CallBack2: ATP3: ($rc1) ATD$CID: ($rc2):"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		fi
		;;
	"$MSN_Callthrough")
		# if [ "$CID" = "$Admin1" ] || [ "$CID" = "$Admin2" ] || [ "$CID" = "$Admin3" ] || [ "$CID" = "$Admin4" ];then # CallBack mit hoher Sicherheit
		if [ "$CID" != "anonym" ];then # CallBack mit niederiger Sicherheit
			MailBetreff="FRITZ!Admin:"
			MailDetails="Callthrough:"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		else
			MailBetreff="FRITZ!Achtung:"
			MailDetails="Callthrough:"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		fi
		;;
	"$MSN_PC_On")
		if [ "$CID" = "$Admin1" ] || [ "$CID" = "$Admin2" ] || [ "$CID" = "$Admin3" ] || [ "$CID" = "$Admin4" ];then # WOC, Mail senden
			/bin/busybox ether-wake -i ${wolinterface} ${wolmac}
			MailBetreff="FRITZ!Admin:"
			MailDetails="WOC:"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		else
			MailBetreff="FRITZ!Achtung:"
			MailDetails="WOC:"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		fi
		;;
	"$MSN_Msg_On")
		if [ "$CID" = "$Admin1" ] || [ "$CID" = "$Admin2" ] || [ "$CID" = "$Admin3" ] || [ "$CID" = "$Admin4" ];then # MailCallinfo Einschalten: Flag löschen, Mail senden
			rm $CalllogFlag 2>/dev/null
			MailBetreff="FRITZ!Admin:"
			MailDetails="Callinfo AN:"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		else
			MailBetreff="FRITZ!Achtung:"
			MailDetails="Callinfo AN:"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		fi
		;;
	"$MSN_AWS_On")
		if [ "$CID" = "$Admin1" ] || [ "$CID" = "$Admin2" ] || [ "$CID" = "$Admin3" ] || [ "$CID" = "$Admin4" ];then # MailCallinfo Ausschalten: Flag setzen, Mail senden
			rc1=`echo "ATD*21*${AWS_ZIEL}*${AWS_MSN1}#" | nc 127.0.0.1 1011 | tr -d "\n\r"`
			rc2=`echo "ATD*21*${AWS_ZIEL}*${AWS_MSN2}#" | nc 127.0.0.1 1011 | tr -d "\n\r"`
			echo "I:AWS ON: ATD*21*${AWS_ZIEL}*${AWS_MSN1}#: ($rc1)" >> $CalllogLog
			echo "I:AWS ON: ATD*21*${AWS_ZIEL}*${AWS_MSN2}#: ($rc2)" >> $CalllogLog
			MailBetreff="FRITZ!Admin:"
			MailDetails="AWS AN (rc1=$rc1 rc2=$rc2)"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		else
			MailBetreff="FRITZ!Achtung:"
			MailDetails="AWS AN (rc1=$rc1 rc2=$rc2)"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		fi
		;;
	"$MSN_Mail_AWS_Off")
		if [ "$CID" = "$Admin1" ] || [ "$CID" = "$Admin2" ] || [ "$CID" = "$Admin3" ] || [ "$CID" = "$Admin4" ];then # MailCallinfo Ausschalten: Flag setzen, Mail senden
			echo "I:Admin-Anruf: Message+AWS OFF..." >> $CalllogLog
			touch $CalllogFlag # Flag setzen
			rc1=`echo "ATD*21**${AWS_MSN1}#" | nc 127.0.0.1 1011 | tr -d "\n\r"`
			rc2=`echo "ATD*21**${AWS_MSN2}#" | nc 127.0.0.1 1011 | tr -d "\n\r"`
			echo "I:AWS OFF: ATD*21**${AWS_MSN1}#: ($rc1)" >> $CalllogLog
			echo "I:AWS OFF: ATD*21**${AWS_MSN2}#: ($rc2)" >> $CalllogLog
			MailBetreff="FRITZ!Admin:"
			MailDetails="Callinfo+AWS AUS (rc1=$rc1 rc2=$rc2)"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		else
			MailBetreff="FRITZ!Achtung:"
			MailDetails="Callinfo+AWS AUS (rc1=$rc1 rc2=$rc2)"
			httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		fi
		;;
	*) # Anrufe auf anderen Lines (keine Admin Line (MSN))
		MailBetreff="FRITZ!Anruf:"
		MailDetails="Normal:"
		httpAdminAnruf=`echo "${MailBetreff} ${MailDetails}" | sed -e '{s/ /%20/g;s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'`
		;;
esac # AdminAnrufe

echo "I:$MailBetreff $name am `date +\"%d.%m.%Y,%H:%M\"`" >> $CalllogLog
echo "I:$MailDetails $name ($CID) an $Line ($3) am `date +\"%d.%m.%Y,%H:%M\"`" >> $CalllogLog

if [ ! -e $CalllogFlag ];then # nur wenn FlagDatei fehlt: Mailversand und dbox-Nachricht
	# send information to DBox -> TV screen
	wget -O /dev/null "http://${dbox1}/control/message?popup=${httpAdminAnruf}%0AAnrufer%3A%20${httpname}%0AAdresse%3A%20${httpAddress}%0ALeitung%3A%20${httpLine}%0AZeit%3A%20${httpZeit}" >/dev/null 2>&1 &
	wget -O /dev/null "http://${dbox2}/control/message?nmsg=${httpAdminAnruf}%0AAnrufer%3A%20${httpname}%0AAdresse%3A%20${httpAddress}%0ALeitung%3A%20${httpLine}%0AZeit%3A%20${httpZeit}" >/dev/null 2>&1 &
	echo "I:Anrufinfo an dboxen gesendet." >> $CalllogLog

	# Mailtext zusammenbauen
	mehrParameter=`echo $4 $5 $6 $7 $8 $9 | tr -d "\f\n\r\t\v\a\b" | sed 's/[^ -ü]//g' | sed "s/^\ *//g" | sed "s/\ *$//g"` # entfernt alles, was nicht zwischen $20 - $FC ist, TRIM
	# echo "FRITZ! $CID ($name) an $Line ($3) am `date +\"%d.%m.%Y,%H:%M\"`" > $MailText
	echo "$MailDetails $name ($CID) an $Line ($3) am `date +\"%d.%m.%Y,%H:%M\"`" > $MailText
	echo "
	$mehrParameter

	Ergebnis der lokalen Suche $ContactDB1 fuer $CID:
	$name
	$address

	Ergebnis der Inverssuche dasoertliche.de fuer $CID:
	$nameDO
	$addrDO

	Ergebnis der Inverssuche dastelefonbuch.de fuer $CID:
	$nameDT
	$streetDT $cityDT

	--
	Fritz!Box: Mail send at $(date +%H:%M:%S)" >> $MailText

	# und ab die Post
	/sbin/mailer -s "$MailBetreff $name am `date +\"%d.%m.%Y,%H:%M\"`" -f "$MailFrom" -t "$MailTo" -m "$SMTP" -a "$User" -w "$PW" -i "$MailText"
	echo "I:Mail an $MailTo via: $SMTP versendet." >> $CalllogLog
fi # nur wenn FlagDatei fehlt: Mailversand und dbox-Nachricht

echo 14,1 > /var/led; echo "I:Internet LED off." >> $CalllogLog
echo "I:"`date` >> $CalllogLog
# Ende
 
Zuletzt bearbeitet:
Allgemeine Frage

Ist der callmonitor (der Fritz - eigene oder als mod) auch mit der alten FRITZ!Box Fon WLAN möglich? Wenn ja, ab welcher Firmware? Habe noch die alte 08.03.91 am laufen, da ich diverse Mods (open_vpn mit Certifikaten und User Auth. ,etherwake, dropbear, ssh,imond,telmond eingebunden habe (kein ds_mod) und die mit aktuellerer FW (ich hatte mal die 08.04.15 drauf) nicht mehr sauber laufen, bzw. ich keine Zeit und Möglichkeit, habe mich wieder Tage damit zu beschäftigen. Es läuft ja alles sonst. Mit der aktuellen FW möchte ich das schon wegen der fehlenden Möglichkeit eines downgrades (2.6 Kernel) nicht testen.

Gruss

Sascha

EDIT:

Der Callmonitor läuft jetzt auf meiner Fritz Box Fon WLAN (die alte) Dank Hilfe 2er Foremmitglieder ;-). Habe jetzt Firmware 08.4.27 (letzte mit 2.4 Kernel) drauf. Bin begeistert. Der Callmonitor ist ab FW 08.4.12 (glaube ich jedenfalls) mit drin. Imond und Telmond läuft leider seit der FW 08.4.12 nicht mehr ohne Probleme (100% Prozessorlast). Ich glaube, der Telmond kommt mit dem Callmonitor ins Gehege.
 
Zuletzt bearbeitet:
Hallo,

ich habe schon mit dem Grundscript auf Seite 1 ein Problem.

Anscheinend wird die calllog im /var/flash gespeichert, auch wenn ich sie lösche.

rm /var/flash/calllog

Dann ist sie weg. ls -l zeigt sie nicht mehr an.
Schreibe ich sie in /var neu mit vi und kopiere sie anschliessend in /var/flash, ist sie auch da. mit cat wird sie wunderbar angezeigt.

Dann mache ich einen neustart mit reboot.
Nach dem Neustart der Box wird mir aber mit cat /var/flash/calllog irgend eine alte Version angezeigt. :(

Zweites Problem ist, dass die Mails nicht rausgehen.
Wenn ich /sbin/mailer manuell mit allen Parametern starte, klappt der Mailversand einwandfrei.
Hierbei spielt es auch keine Rolle, ob ich das Passwort mit -w "Passwort" oder mit -w Passwort übergebe, also mit oder ohne Hochkommas.

Das Script wirft dagegen

Feb 12 22:17:34 mailer[905]: Error in LmsoState_AuthPassSend, Server says 535 In
correct authentication data

aus. :(

Bitte Hilfe. Mir reicht schon eine Mail mit Subject "Anrufer $1", aber nichtmal das klappt :(

DAU-Frage hinterher: Wie starte ich das geänderte Script? Muss ich die Box jedes Mal neu starten?
 
Nach dem Neustart der Box wird mir aber mit cat /var/flash/calllog irgend eine alte Version angezeigt. :(
Könnte das daran liegen, dass die Datei mittels entsprechender Befehle in der debug.cfg bei jedem Start angelegt wird?

Gruß,
Wichard
 
Nein, die debug.cfg habe ich gar nie angerührt!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.