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

OK, ich hatte ich das
Ruft jemand an kommen immer 2 mail. 1x die o.g. und die mit dem Anrufer.
so verstanden (und auch selbst das o.g. Problem).


Gruß,
Wichard
 
Lösch einfach mal den ersten Teil - den du als 2ten Code gepostet hast -
ausser die erste Zeile(!).

Wenn du eh nicht weißt, wofür der sein soll ... ! ;)
(Ich sehe da ehrlich gesagt auch keinen Zusammenhang!)

Der Grund wird wahrscheinlich dieses unscheinbare "&" am Ende dieses Codes sein!? Gibt es überhaupt die Datei "parse_telefon.sh" in deinem Verzeichnis /var/tmp/ ?

Alle Variablen in diesem Code-Schnipsel werden eh nicht für die Mail benutzt!
 
Zuletzt bearbeitet:
Ich aber auch sowas von blöd.....sorry. War selber schuld. Das Problem tritt natürlich nur auf wenn man es nicht in "Echtbetrieb" hat, sondern nur per Aufruf mit sh macht .
 
Zuletzt bearbeitet:
Wie kann ich einige Sip Accounts von dieser Email Benachrichtigung ausschließen?
 
Vielen Dank für dieses Script - sehr hilfreich !

Ich habe es noch etwas geändert:

1. Ich brauche kein SMS - unnötige kosten, lieber bekomme ich die nachricht nur per Mail, bzw, auf meinem Blackberry
2. Das lookup im lokalen Telefonbuch habe ich abgeschaltet, da ich lieber sehen möchte wer anruft, bevor ich drangehe (kann aber natürlich leicht wieder eingeschaltet werden durch Entfernung der Kommentarzeichen)
3. Statt nur den Namen, so das die Auskunft hergibt, ist eine VCard besser - mit Strasse, PLZ und Ort, denn, Die kann man gleich in sein Adressbuch importieren.

Anbei Script, hoffentlich funktionierts auch bei anderen:

Code:
export REQUEST_METHOD="POST"
export REMOTE_ADDR="192.168.x.y"
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="login:command/password=secret"
export CONTENT_LENGTH=${#POST_DATA}
#echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null

#/usr/bin/wget -O /dev/null "http://192.168.x.y/cgi-bin/webcm?getpage="../html/de/menus/menu2.html\&var:lang=de\&var:menu=fon\&varagenam e=foncalls""

#echo "nun 5s warten"
#sleep 5

#! /bin/sh
CID=$1
name=""
FOUT="/var/tmp/calllog.vcf"
SFILE=/var/tmp/stra.txt
TFILE=/var/tmp/tel.html
ParseTelefonbuch() {
  export REQUEST_METHOD="GET"
  export REMOTE_ADDR="192.168.x.y"
  export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=fonbuch"
#  cd /usr/www/html/cgi-bin
#          ./webcm |
#            sed -n 's/^.*document.write(TrFon(.*", "\(.*\)", ".*'$*'.*/\1/p'
            }
            if [ -z "$CID" ]            
            then
             CID="unbekannt";
             name="-"
             echo "BEGIN:VCARD" >$FOUT  
             echo "VERSION:3.0" >>$FOUT                                              
             echo "N:unknown;;;;" >>$FOUT 
             echo "FN:unknown" >>$FOUT 
             echo "TEL;type=WORK;unknown" >>$FOUT                              
             echo "END:VCARD" >>$FOUT  
             VCFN=/var/tmp/anonymous.vcf
            else
             name=`ParseTelefonbuch $CID`
            if [ -z "$name" ]
            then
            url="http://www.dasoertliche.de/?form_name=search_inv&page=RUECKSUCHE&context=RUECKSUCHE&action=STANDARDSUCHE&la=de&rci=no&ph=$CID"
            wget -q -O - "$url" >$TFILE;
            name=$(cat $TFILE | grep class=\"entry\" | sed -e 's/<[^<]*>/\ /g;s/^[^a-zA-Z0-9]*//;s/  /, /g');
            cat $TFILE | sed -n -e '/\"entry\"/,/<br\/>/p' | sed -n -e '/<br\/>/p' | sed -e 's/&nbsp;/ /g;s/<br\/>//g' >$SFILE;
            STR=$(sed -e 's/,.*//g;s/^[^a-zA-Z0-9]*//' $SFILE);
            ORTP=$(sed -e 's/^.*,//g;s/^[^a-zA-Z0-9]*//' $SFILE);
            PLZ=$(echo $ORTP | sed -e 's/ .*$//g');
            ORT=$(echo $ORTP | sed -e 's/^.* //g');                                   
            if [ -z "$name" ]
            then
               name="kein Eintrag"
               echo "BEGIN:VCARD" >$FOUT                                               
               echo "VERSION:3.0" >>$FOUT                                              
               echo "N:$CID;;;;" >>$FOUT                                              
               echo "FN:$CID" >>$FOUT                                                 
               echo "TEL;type=WORK:$CID" >>$FOUT                             
               echo "END:VCARD" >>$FOUT
               VCFN=/var/tmp/unknown.vcf
            else
               echo "BEGIN:VCARD" >$FOUT                                                  
               echo "VERSION:3.0" >>$FOUT                                                 
               echo "N:$name;;;;" >>$FOUT                                                 
               echo "FN:$name" >>$FOUT                                                    
               echo "TEL;type=WORK:$CID" >>$FOUT
               echo "ADR;type=WORK;type=pref:;;$STR;$ORT;;$PLZ;">>$FOUT
               echo "END:VCARD" >>$FOUT                   
               VCFN=/var/tmp/$(echo $name | sed -e 's/ /\./g').vcf
            fi
            fi
            fi
            echo $name >/var/tmp/calllog1.txt
            echo "#########################"
            echo "`date +\"%d.%m.%y %H:%M\"` - Anruf von $CID ($name) an $2 ($3) $4"
            echo
            mv /var/tmp/calllog.vcf $VCFN                                                                                    
            /sbin/mailer \
            -s "CALL: $name $CID an $2 `date +\"%d.%m.%y %H:%M\"` ($3) $4" \
            -f '"Fritz!Box" <[email protected]>' \
            -t "[email protected]" \
            -m mailserver.domain.com \
            -a username \
            -w "password" \
            -i '/var/tmp/calllog1.txt' \
            -d $VCFN 
            rm -f $VCFN
            #  2> /dev/null

EDIT: Da habe ich noch einen Bug gefunden:
Bitte, die zeile ( 2te von unten) ergänzen (rm -f $VCFN). Das stand am Anfang nicht drin.
Sonst wird das /Var/tmp irgendwann mal voll mit .vcf Leichen sein.
 
Zuletzt bearbeitet:
Rennt Super, danke


Aber wie kann ich Anschluß 2 und 3 an der Fritzbox raus lassen ?
Möchte nur Mails für den Anschluß 1 bekommen.
 
Indem du z.B. die Mail nur bei der jeweiligen angerufenen Nr. (z.B. 030xxx) senden lässt,
also den mailer-Aufruf in calllog so änderst:
Code:
if [ "$2" = "030xxx" ]; then
  ...mailer ...
fi
 
oder:
Code:
.
.
  export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=fonbuch"
#  cd /usr/www/html/cgi-bin
#          ./webcm |
#            sed -n 's/^.*document.write(TrFon(.*", "\(.*\)", ".*'$*'.*/\1/p'
            }

#match called MSN to users mailadress
case "$2" in
    12345 )
        [email protected]
        ;;
    23456 | 78901 | 89012 )
        [email protected]
        ;;
    90123)
        [email protected]
        ;;
    34567)
        TOADDRESS=""
        ;;
    *)
        [email protected]
        ;;
esac
if [ -z "$TOADDRESS" ]
then
echo "quit, no notification for this MSN"
    exit
fi

.
.
.
.
            /sbin/mailer \
            -s "CALL: $name $CID an $2 `date +\"%d.%m.%y %H:%M\"` ($3) $4" \
            -f '"Fritz!Box" <[email protected]>' \
            -t "$TOADDRESS" \
.
.
.
.
 
Vielen Dank, für die schnelle Hilfe.
Kann ich nicht aber komplett SIP2 deaktivieren?
Auf SIP2 hängt nehmlich mein Nachbar.
Von dem benötige ich nicht die Telefonnummern der Anrufer.
 
Nimm die entsprechende MSN nicht in die Liste im obigen Listing auf und lass die Wildcard am Ende der Liste weg, dann sollte zu der Nummer keine Benachrichtigung kommen.


Gruß,
Wichard
 
Hallo,

kann hier noch mal jemande eine Endgültige Version posten?
Eine die Rückwärtssucher erlaubt, nur Anrufe in Abwesenheit benachrichtigt und gegebenenfalls die Texte aus dem FritzBox Telefonbuch vorzieht.

Sehe ich das richtig, dass dieses Skript auch auf Boxen ohne DS-Mod läuft?
 
Rückwärtssuche für die Schweiz

Hier die ensprechenden Codezeilen für die Rückwärtssuche auf tel.search.ch:

Code:
url="http://tel.search.ch/result.html?iquery=$1"
output=$(wget -q -O - "$url" |grep detail | sed -e 's/<[^>]*>//g' );
 
Auslesen von unbeantworteten Anrufen klappt nicht

Hallo Leute,

versuche nun schon ne ganze Weile das folgende Script (siehe Anhang) zum Laufen zu bekommen, doch irgendwas stimmt noch nicht.

der obere Teil wake up on call funzt

der untere Teil maildaemon auch (kann mir bei allen Anrufen ne SMS Benachrichtigung zustellen lassen, das ist aber logischerweise unnötig. Die Benachrichtigung benötige ich nur bei unbeantworteten Anrufen)

der mittlere Teil, auslesen der unbeantworteten Anrufe nicht

Was mache ich falsch, habt Ihr ne Idee?
 

Anhänge

  • Test1_.jpg
    Test1_.jpg
    104.6 KB · Aufrufe: 67
Zuletzt bearbeitet:
Vielleicht solltest du einen SCREENSHOT als JPG anhängen und nicht als Word-File!
 
sms77.de Inline Attachment

Ich versuche über sms77.de als E-Mail Gateway benutzen.
SMS77 verlangt jedoch eine E-Mailinhalt zur Absenderverifizierung.
Bei wehavemorefun steht das ich mit der Option -d STRING einen Text einfügen kann.
In welcher Form muss der String nach dem -d aufgebaut werden damit die Fritzbox den Inhalt richtig weiter gibt?

#! /bin/sh
echo "`date +\"%d.%m.%y %H:%M\"` - Anruf von $1 auf Leitung $2 ($3) $4"
/sbin/mailer \
-s "`date +\"%d.%m.%y %H:%M\"` - Anruf von $1 auf Leitung $2 ($3) $4" \
-f '<XXXXXXXXXXX>' \
-t '<[email protected]>' \
-m post.strato.de \
-a XXXXXXXXXXdv.de \
-w "XXXX" \
-i `"XXXXXX#XXXXXXX#XXXXXX"` \ ?????
# 2> /dev/null

Gruß Computerhuaba
 
Hallo,
das Senden einer eMail ist eine klasse Sache und funktioniert problemlos.
Ich wollte jetzt noch die Rufnummer auf meiner RokuSoundbridge anzeigen lassen. Dazu kann man sich per telnet 192.168.xxx.yyy:4444 auf die Soundbridge einloggen und dort per sketch-Kommando die Information absetzen.
Das Problem ist, dass die FBF keinen telnet-Client besitzt. Gibt&acute;s mit der Originalsoftware eine Möglichkeit direkt einen bestimmten Port eines Remote-Computers anzusprechen?

Gruß
0351
 
Könnte jemand mal die endgültige Version Posten mit:

Code:
.
.
  export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=fonbuch"
#  cd /usr/www/html/cgi-bin
#          ./webcm |
#            sed -n 's/^.*document.write(TrFon(.*", "\(.*\)", ".*'$*'.*/\1/p'
            }

#match called MSN to users mailadress
case "$2" in
    12345 )
        [email protected]
        ;;
    23456 | 78901 | 89012 )
        [email protected]
        ;;
    90123)
        [email protected]
        ;;
    34567)
        TOADDRESS=""
        ;;
    *)
        [email protected]
        ;;
esac
if [ -z "$TOADDRESS" ]
then
echo "quit, no notification for this MSN"
    exit
fi

.
.
.
.
            /sbin/mailer \
            -s "CALL: $name $CID an $2 `date +\"%d.%m.%y %H:%M\"` ($3) $4" \
            -f '"Fritz!Box" <[email protected]>' \
            -t "$TOADDRESS" \
.
.
.
.
 
icq-benachrichtigung

Ich hab grad mal -- ebenfalls quick&dirty -- eine icq-benachrichtigung reingebaut:
Mangels icq-client auf der fritzbox, wird via ssh mit public-key-auth centericq auf einem linux-server gestartet:
Code:
/var/tmp/ssh  -p 22 -i /var/tmp/dropbear_rsa_hostkey <USER>@<LINUX-SERVER> "echo `date +'%d.%m.%y %H:%M'` - Anruf von $CID \($name\) an $2 \($3\) $4 | centericq -s msg -p icq -t <ICQ-ID>"

Nur so als nettes Feature (ich hab da bei mir noch nen alive-test an den server davorgebaut). :)
cya,
whoopi
 
Ich habe schon länger eine einfache Version des Skriptes auf meiner FB laufen. Jetzt wollte ich die geschickte Email verändern, doch die Änderungen im Skript werden scheinbar überhaupt nicht übernommen obwohl sie in der debug.cfg eindeutig drinstehen (auch jedesmal rebootet).

Jetzt habe ich mal den kompletten Teil (was den mailer betrifft) aus der debug.cfg gelöscht, aber das Skript funktioniert trotzdem noch.

Wo ist das denn gespeichert und wie kann ich es denn noch ändern?
 
Shaitan schrieb:
Wo ist das denn gespeichert und wie kann ich es denn noch ändern?
Also das Script wird eigentlich in der Datei /var/flash/calllog gespeichert und bleibt dort auch beim reboot erhalten. (man kann natürlich auch das script in ner separaten datei ablegen wenn man in der calllog nur einen einzelnen programmaufruf haben will....)
die datei calllog wird mit "nvi /var/flash/calllog" bearbeitet.
 
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.