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

James372

Neuer User
Mitglied seit
16 Jun 2008
Beiträge
59
Punkte für Reaktionen
0
Punkte
0
Das Busy kommt z.B. auch, wenn die Anrufsperre für eingehende Nummern greift.

...wie uncool! Warum kommt da nicht BLOCKED als $4?!
Deshalb hatte ich Dich gefragt
James372 schrieb:
Welche Werte (bei welchen Ereignissen) kann $4 denn noch annehmen?

Sinn des Codes den Du "nicht verstehst": Im Betreff des Mails "BUSY on BUSY: " vor "Anruf von..." zu setzen (siehe das $busy hinter dem -s im mailer-Aufruf)


Gruss, James
 

Lemur

Mitglied
Mitglied seit
17 Mai 2007
Beiträge
281
Punkte für Reaktionen
0
Punkte
0
Ja, mitlerweile hab ich deine mailer Zeile auch gelesen und das ergibt dann wieder einen Sinn im Kontext auf "extra Info" - naja -egal.

Aus dem "Status" im Mailbody ist auch das Busy ersichtlich - somit kann ich auch behaupten, seit Jahren nix als BUSY da gesehen zu haben und warum das so "uncool" ist - wird AVM bestimmt gerne beantworten. ;)
 

maulfaul

Mitglied
Mitglied seit
9 Feb 2007
Beiträge
300
Punkte für Reaktionen
0
Punkte
0
Dank an Lemur für den Wink mit sämtlichen Zaunpfählen :)

Und bei allen anderen Beiträgern möchte ich mich auch sehr herzlich bedanken,
das Script hat mir in den Krankenhausbesuchsphasen sehr geholfen.
:groesste:
 

Sprickmann

Neuer User
Mitglied seit
25 Jul 2006
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Sorry, ich war ein paar Tage in der offline-Welt unterwegs :)

Hier mein "Letztstand" (ohne Busy oder Unwetterwarnung)

Code:
#!/bin/sh
# Meldung eingehender Anrufe der FB via Mail
# Rev. 04.2010 by Lemur / angepasst StefanSK 26.-03.08.2010
#############################################
# Einstellungen
VZDIR="/var/media/ftp/USB-DISK-USB-DISK-01/CallLog"        # Arbeitsverzeichniss
BLLOG="${VZDIR}/logs/black-log.txt"                # Logfile nicht gefundener Eintraege
DEBUG="OFF"                                        # Konsolen Debug ausgabe zum testen
SMSGW="OFF"                                        # SMS zustellung
#############################################
# Script Variablen
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 "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 CID wurde nicht übergeben - Suche übersprungen." ; fi
    else
    # Pruefe 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 Verzeichnis KLICKTEL
    if [ "$daten" = "0" ] ; then url="http://www.klicktel.de/inverssuche/index/search?method=searchSimple&_dvform_posted=1&phoneNumber=$1" ; wget -q -O ${VZDIR}/tmp.htm "$url" 
            sleep 5 ; daten="5" ;
            tbname=$(cat ${VZDIR}/tmp.htm | grep "namelink" | sed 's/<[^<]*>/\ /g;s/  //;s/ /, /');
            adress=$(cat ${VZDIR}/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 ${VZDIR}/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 Verzeichnis DAS TELEFONBUCH
    if [ "$daten" = "0" ] ; then url="http://www2.dastelefonbuch.de/?la=de&bi=15&kw=$1&cmd=search" ; wget -q -O ${VZDIR}/tmp.htm "$url" 
            sleep 5 ; daten="5" ; daten=$(cat ${VZDIR}/tmp.htm | grep -c "long hide");
                if [ "$daten" != "0" ] ; then 
                echo "<b>Inhaber: </b><br />" > ${VZDIR}/tmp1.htm
                cat ${VZDIR}/tmp.htm | sed -n -e '/class="long hide"/,/div/p' >> ${VZDIR}/tmp1.htm
                cat ${VZDIR}/tmp.htm | sed -n -e '/class="no-icon"/,/div/p' >> ${VZDIR}/tmp1.htm
                output=$(cat ${VZDIR}/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="Lemur & StefanSK (c) 08/2010 </html>"
echo -e $BODYHEAD > ${VZDIR}/result.htm
echo -e $BODYFOOT >> ${VZDIR}/result.htm
#############################################
# Adressierungseinstellung
case "$2" in
                MSN1 | MSN2)
                [email protected]
                SMSGW="OFF"
                ;;
                MSN3 )
                [email protected]
                [email protected]
                ;;
                MSN4 | MSN5 | MSN6 | MSN7 )
                [email protected]
                SMSGW="OFF"
                ;;
                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 'Fritz!Box 7270 | Standort <[email protected]>' \
        -t "$TOADDRESS" \
        -m smtp.server \
        -a smtp.user \
        -w 'password' \
      -l SSL \
        -i '/var/media/ftp/USB-DISK-USB-DISK-01/CallLog/result.htm'
#############################################
# SMS Service
if [ "$SMSGW" = "ON" ] ; then
sed -n -f $VZDIR/html2sms.sed $VZDIR/result.htm > $VZDIR/smstext.txt
/sbin/mailer \
      -s "auth|pass|gateway=1"\
        -f 'Telefonsystem | XXXXX Group <[email protected]>' \
        -t "$TOSMS" \
        -m smtp.server.tld \
        -a smtp-auth \
        -w smtp-pass \
      -l SSL \
        -i '/var/media/ftp/USB-DISK-USB-DISK-01/CallLog/smstext.txt'
fi
#############################################
# System bereinigen
if [ "$DEBUG" = "ON" ] ; then 
    echo "Mail verarbeitet, löschen unterbrochen."
    else
    rm ${VZDIR}/*.htm
    rm ${VZDIR}/smstext.txt
    rm ${VZDIR}/tmp.htm ; rm ${VZDIR}/tmp1.htm
fi
exit 0
Die wesentliche Änderung besteht darin, dass als TMP-Verzeichnis eben der USB-Speicher herangezogen wird.
Auf die Sache mit der Unwetterwarnung würde ich gerne nochmal zurückkommen ... hast Du mal das Muster?

Danke & viele Grüsse,

St.
 
Zuletzt bearbeitet:

maulfaul

Mitglied
Mitglied seit
9 Feb 2007
Beiträge
300
Punkte für Reaktionen
0
Punkte
0
:groesste:
Perfekt!
Eine (wahlweise zu aktivierende) Kleinigkeit fehlt IMHO noch, nämlich:

Es gibt immer wieder Leute, die meinen, man müsse sofort innerhalb von 10 Sekunden zurückgerufen haben.
Schon Goethe wusste in "Faust": Die Geister, die ich rief, werd ich nun nicht wieder los ...
Nun nerven die mit neuerlichen Nachzügler-Anrufen.
Meine Idee:
Die letztanrufende(n) Nummer(n) zwischenspeichern für 30 Minuten,
ruft diese Nummer ein 2tes oder ntes Mal an, dann möge das Script nichts machen und den Anruf ignorieren, gemeldet wurde der ja schon.
Wer bitte findet das gut und mag es einbauen, ich bin dazu zu :-Ö
 

matzell

Neuer User
Mitglied seit
16 Okt 2010
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Guten Tag,

ich muss erstmal sagen, dass ich den Mod absolut genial finde. Ich hab ihn nun schon seit Wochen im Einsatz und bin begeistert.

Allerdings hab ich nun eine neue 7270 v3 und will meine alte verkaufen.
Ich bekomme den Mod allerdings nicht runter. Egal ob ich FW-Update versuche, oder sogar mit der Recover.exe arbeite... der Mod bleibt und es kommen weiter SMS.
Das ist natürlich nervig, wenn der neue Besitzer die Box nutzt... ;)

Kann mir jemand sagen, wie ich den Mod von der Box bekomme?

Vielen Dank...

Matzell
 

James372

Neuer User
Mitglied seit
16 Jun 2008
Beiträge
59
Punkte für Reaktionen
0
Punkte
0
...noch die URL für Schweizer:
Code:
  url="http://mobile.tel.local.ch/de/q/?what=$callerid&where=&type%5B%5D=res&type%5B%5D=bus";
HTH, James



P.S. Und für deutsche Schweizer, die öfter mal Anrufe aus D kriegen.
Code:
  url="http://mobile.tel.local.ch/de/q/?what=$callerid&where=&type%5B%5D=res&type%5B%5D=bus";
  output=$(wget -q -O - "$url");
  outputtest=`echo -e $output | grep -v -i "es konnten keine eintr"`
  if [ -z $outputtest ]
  then
    if [ `echo $callerid | grep "0049"` ]
    then
      url="http://mobil.dasoertliche.de/oe/search_invers?number=$callerid";
      output=$(wget -q -O - "$url")
    else  
      output="\r\n Anruf von $callerid $name auf Leitung $2\r\n Am `date +\"%d.%m.%y, um %H:%M Uhr.\"`\r\n\r\n Kein Telefonbuch-Eintrag."
    fi
  fi
 

iphone10

Neuer User
Mitglied seit
30 Mai 2010
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Guten Tag,
Kann mir jemand sagen, wie ich den Mod von der Box bekomme?

Nicht von AVM freigegebene Firmware
Die FRITZ!Box wird momentan mit einer von AVM nicht freigegebenen Firmware betrieben oder die Konfiguration wurde möglicherweise über vom Hersteller nicht vorgesehene Wege verändert (z.B. telnet). In diesem Zustand kann AVM für die korrekte Funktion Ihrer FRITZ!Box nicht mehr garantieren.
Sie haben die Möglichkeit, das Gerät wieder in den Auslieferungszustand zurückzusetzen. Starten Sie dafür das Programm "Recover" von Ihrer FRITZ!Box-CD (\Software\X_Misc).
Nach dem Wiederherstellen des Auslieferungszustandes wird Ihre FRITZ!Box wieder vollständig von AVM unterstützt.
 

matzell

Neuer User
Mitglied seit
16 Okt 2010
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Ich hab mir die recover.exe vom AVM-FTP geholt, und alles durchgeführt. Danach hab ich die gesicherte Konfiguration wieder in die Box gespielt, und trotzdem war der Mod noch aktiv. Ist der auch in der Sicherung drin?

DANKE schonmal...
 

Joe_57

IPPF-Promi
Mitglied seit
5 Mrz 2006
Beiträge
5,692
Punkte für Reaktionen
116
Punkte
63
...Allerdings hab ich nun eine neue 7270 v3 und will meine alte verkaufen...
Kann mir jemand sagen, wie ich den Mod von der Box bekomme?
Hallo Matzell,

mach mal bitte folgendes:

1.) Telnet an und auf die Box.
2.) echo > /var/flash/calllog
3.) echo > /var/flash/debug.cfg

Abschliessend noch mal die passende Recovery drüberbügeln.

Joe
 

matzell

Neuer User
Mitglied seit
16 Okt 2010
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
mach mal bitte folgendes:

1.) Telnet an und auf die Box.
2.) echo > /var/flash/calllog
3.) echo > /var/flash/debug.cfg

Abschliessend noch mal die passende Recovery drüberbügeln.
Das war der entscheidende Tipp!

Vielen Dank!!!!
 

Carsi

Neuer User
Mitglied seit
14 Jan 2011
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo,
wirklich ein Super Thema. Habe ich bereits lange nach gesucht.
Jedoch habe ich ein Problem mit den Skript von User Sprickmann (am 8.8.2010).

Ich erhalte folgende Fehlermeldung in TelNet bzw Putty angezeigt :
# /var/flash/calllog: line 61: syntax error: word unexpected (expecting "in")
# Jan 14 23:14:13 telefon[1537]: SIGCHLD received!

Was habe ich denn hier genau falsch gemacht ?
Line 61 ist bei mir "case "$2" in"

Ich hoffe Ihr könnt mich unterstützen.

Danke und Gruß
Carsi
 

iphone10

Neuer User
Mitglied seit
30 Mai 2010
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
hallo Carsi,
bitte einmal dein komplettes Script einfügen bitte. Rufnummern bitte durch XXX oder ähnlich ersetzen ;)

Gruß,
Jonas
 

Carsi

Neuer User
Mitglied seit
14 Jan 2011
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,
konnte das Problem selber lösen.

Jetzt habe ich aber ein neues. Und zwar wird keine E-Mail versandt.

Folgende Daten habe ich in den entsprechenden Bereich eingetragen :
#############################################
# Mailer
/sbin/mailer \
-s "Anruf von $CID auf $MSN um `date +\"%H:%M am %d.%m.%y\"`"\
-f 'Anruf in Abwesenheit - Zuhause | Standort <[email protected]>' \
-t "$TOADRESS" \
-m smtp.1und1.de \
-a [email protected] \
-w 'MeinPasswort' \
-l SSL \
-i '/var/media/ftp/Ut163-USB2FlashStorage-01/CallLog/result.htm'
#############################################

In $TOADRESS steht die Empfangs - E-Mail Adresse.

Die Daten result.htm wird richtig erzeugt.

Ich habe auch schon SMTP Adresse und Sende E-Mail Adresse mit Hochomma bzw. Anführungszeichen probiert.
Leider alles ohne erfolg.

Hat noch jemmand eine Idee ?

Danke und Gruß
Carsi
 

Sprickmann

Neuer User
Mitglied seit
25 Jul 2006
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Anführungszeichen und Hochkommata werden benötigt wie in meinem Skript dargestellt ... sonst gehts nicht. Funktioniert der von "iphone10" vorgeschlagene Weg? Oft liegt das Problem tatsächlich an den korrekten Daten ;-)

Gruss,
St.
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,820
Punkte für Reaktionen
14
Punkte
38
Hallo zusammen,
konnte das Problem selber lösen.

Jetzt habe ich aber ein neues. Und zwar wird keine E-Mail versandt.
...
Du kannst auch den AVM-e-mail-Reporter nehmen. Dann funktioniert der E-Mail-Versand, so z. B.:
Code:
mailer -s "Anruf von $CID auf $MSN um: `/bin/date`" -i /var/media/ftp/Ut163-USB2FlashStorage-01/CallLog/result.htm -r
 

luv76

Neuer User
Mitglied seit
7 Feb 2007
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
hallo,

bei mir funkioniert das versenden per email auch nicht kann es an den ssl port
liegen

-a [email protected] \
-w 'MeinPasswort' \
-l SSL \
-i '/var/media/ftp/Ut163-USB2FlashStorage-01/CallLog/result.htm'

per console

PHP:
/sbin/mailer -s "Betreff" -f "[email protected]" -t "[email protected]" -m smtp.1und1.de -a [email protected] -w 'deinpw'
geht es ohne probleme .....

brauche hilfe .. danke

lg
kai
 

luv76

Neuer User
Mitglied seit
7 Feb 2007
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Habe den fehler gefunden ssl mußte bei mir unter mail abgeschaltet werden und ich vergass die MSN einzutragen :)

PHP:
#############################################
# Adressierungseinstellung
# Muster:
#                MSN3 | MSN4 | MSN5 )
#                [email protected]
#                [email protected]
# Statt TOSMS: SMSGW="OFF"
#                ;;
case "$2" in
              0xxxxxx101|0xxxxx1010|0xxxxxxx011 )
                [email protected]
                SMSGW="OFF"
                ;;
				3xxxxx )
                [email protected]
                [email protected]
                SMSGW="ON"
                ;;
                esac ; 
                if [ "$DEBUG" = "ON" ] ; then echo "E-Mail für '$TOADDRESS' 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 'FritzBox Kai <[email protected]>' \
        -t "$TOADDRESS" \
        -m smtp.xxxxl.net \
        -a xxxxx \
        -w 'xxxxxxxx' \
        -i ${TMPDIR}/result.htm
		echo "test"
#############################################
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,820
Punkte für Reaktionen
14
Punkte
38
Habe den fehler gefunden ssl mußte bei mir unter mail abgeschaltet werden und ...
mail mit ssl geht mit openssl von der Konsole:
Code:
openssl s_client -crlf -connect pop.xxxx.de:[B]110[/B] -starttls [B]pop3[/B]
Code:
openssl s_client -crlf -connect mail.xxxx.de:[B]25[/B] -starttls [B]smtp[/B]