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

Hat sich damit schon mal jemand beschäftigt?
Ja, mehrfach, wie Du bei einer Rückwärts-Recherche merken wirst. Nur nicht mit HTTP-POST, sondern mit wget. Und "fer umme" gibts das leider auch nicht.
 
Wie du vielleicht weißt, gibt es im Internet einige Free-SMS-Dienste. Die Daten werden per HTML-Formular eingegeben und via HTTP-Post versendet. Auf diese Weise könnte man eine kostenlose Benachrichtigung realisieren.
 
Ja, weiss ich und habe es erfolglos versucht. Du darfst es besser machen und dann die Lösung posten, bin gespannt.
 
@Solo0815

Ich kann es nicht von Rapidshare downloaden:(
 
Bei mir tut es.
 
@Solo0815

Vielen Dank!

Ein Paar Änderungen, sonst hat bei mir der Email Versand nicht funktioniert (obwohl bei Debug ON: "erfolgreich versendet"):

Die ganzen -sftmiawd in /sbin/mailer habe ich eigenen Zeilen getrennt gemacht und nicht hintereinander, dann hat es funktioniert. Die Vcf und lmx bekomme ich aber nicht als Anhang oder neue Email.

Ich habe noch Problem mit Umlauten oder Sonderzeichen in den Namen die aus Rückwärtssuche kommen:

Anruf von KleiþMichaela ler

und die Frau heißt Kleißler Michaela

kann man da was machen?
 
Zuletzt bearbeitet:
Die Probleme mit Umlauten/Sonderzeichen kann ich bestätigen. Ich hätte auch noch weitere Verbesserungsvorschläge.

In meiner Version steht in der Email folgendes:
Name
Telefonnummer
Link zum Ort

Schöner fände ich, wenn dort die Adresse konkret benannt wird. Das sähe dann z. B. so aus:

Informationen ueber eingegangenen Anruf:

Inhaber: Name
Adresse: Straße
PLZ Ort: PLZ Ort

Anrufer MSN: 02xxxxxxxx
Auf Leitung: 02yyyyyyyyy (ISDN)
Anruf Zeit: am 22.12.12, um 07:25

Danach dann der Link zur Karte.

Frank
 
hallo :)

also habe ich das richtig verstanden.
laut dem ersten post ist es möglich per sms infomriert zu wedern, wenn ein anruf eingangen ist?

aber es kostet den empfänger sms gebühren.
wie sieht es denn aus wenn man eine sms flat hat. kostet das dann immer noch was?
 
Die Scripte nutzen Webseiten wie sms77 um eine SMS zu verschicken. Da hilft es dir nicht, eine SMS-Flat zu haben.
 
okay, das heißt es gibt keine kostenfreie möglichkeit?
gibt es auch keine Möglichkeit das man über jeden Anrufe kostenlos per E-Mail benachrichtigt werden kann?
 
okay, das heißt es gibt keine kostenfreie möglichkeit?
Nein gibt es nicht.
Jein - mit einem Internet-Pack bei o2 gibt es neben einer Mailadresse die Möglichkeit, sich ohne weitere Kosten auf dieser Adresse eingegangene Mails als MMS auf das zugehörige Handy zustellen zu lassen. (So funktioniert beim Bundesliga-SMS-Liveticker... ;-)) Allerdings kostet das Internetpack natürlich etwas, das Kleinste ist für 5,- EUR/Monat zu haben.


Gruß,
Wichard
 
Ich erhalte seit einiger Zeit keine eMails mehr bei eingehenden Anrufen. Da das Problem auch mit einem anderen Gerät auftritt, liegt es wahrscheinlich am Anbieter Hostloco.

Aus diesem Grund möchte ich einen GMX.net Account in die aktuelle Version von Solo0815 eintragen. Aber ich bekomme es nicht hin. Kann mir bitte jemand helfen und mir sagen, was ich falsch mache.

TOMAILADR="[email protected]" # An wen soll die Email geschickt werden
MAILLOGIN="mail.gmx.net" # Login-Server
MAILLOGINNAME="[email protected]" # Login beim Hoster
MAILLOGINPW="sagichnicht" # Passwort
 
bei mir läuft es über gmx noch via "smtp.gmx.net"
allerdings verwende ich beim starten von "/sbin/mailer" die option "-l"
=> -l SMTP with SSL or TLS.

Du solltest aber auf alle Fälle die optionen bei GMX mal dursuchen nach so etwas wie: Verwendet SMTP-Authentifizierung oder "POP3 vor SMTP"
Das müsstest du umstellen.
http://www.patshaping.de/hilfen_ta/pop3_smtp.htm
 
Zuletzt bearbeitet:
Hallo,
bin zufällig auf dieses Thema gestossen - genau das, was ich brauche ! Danke an alle, die
dazu beigetragen haben.
Was ich noch suche ist eine Möglichkeit, das Script pausieren zu lassen und es dann weiter-
laufen zu lassen, wenn das Gespräch beendet ist. Gibt es sowas ? Wahlweise wäre es auch
ok, wenn bei Gesprächsende ein anderes Script gestartet würde.

Danke für jeden Hinweis.
Gruss Joshi
 
Hallo,
habe gesucht und gelesen und bin dennoch gescheitert.

Ich möchte gern die Anrufernamen anhand der gesendeten Rufnummer aus meinem Fritzbox-Telefonbuch abfragen.

Leider klappt das so nicht mehr:
Code:
ParseTelefonbuch() {
  export REQUEST_METHOD="GET"
  export REMOTE_ADDR="127.0.0.1"
  export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=Telefonbuch"
  cd /usr/www/html/cgi-bin
  ./webcm |
  sed -n 's/^.*document.write(TrFon(.*", "\(.*\)", ".*'$*'.*/\1/p'
}

....

name=`ParseTelefonbuch $1`
if [ -z "$name" ]
  then
    name="?"
fi

Es geht auch mit dem Scriptschnipsel mit FB-Login nicht.

Ich denke, dass das Telefonbuch (nun?) anderwo liegt oder anders abgefragt werden muss.

Hat bitte jemand eine Idee ?

Habe eine FB 7170

Danke schön im voraus
 
Zuletzt bearbeitet:
Warum nutzt du nicht die nun von AVM integrierte Möglichkeit, eine Infomail bei verpassten Anrufen zu versenden?
 
Hallo Spezis

Das Thema hier ist ja schön lange und ich hab auch nach dem ganzen durchlesen ein Script für mich zusammen pasten können. Da ich in der CH bin und Anrufe von DE und CH erhalte, versuche ich 2 Rückwärtssuchen zum Laufen zu bringen.

Hier meine Daten:
- FB 7170 CH Edition mit V: 58.04.76
- Analog Tel.
- Sunrise ADSL
- DM 800

Hier das Installierte Script:
Code:
#!/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

Ich hab schon versucht, ein Script-Schnipsel für die CH einzubauen (Post #512)
Code:
url="http://mobile.tel.local.ch/de/q/?what=$callerid&where=&type%5B%5D=res&type%5B%5D=b us";
...oder einfach
url="http://mobile.tel.local.ch/de/q/?what=$callerid";

leider ohne Erfolg. Was ich nicht verstehe ist, wie werden die Daten, die von tel.search.ch zurückkommen, abgegriffen und verwendet!?!

tel.search.ch hat angeblich eine sehr einfache (für die, dies verstehen :) ) API. http://tel.search.ch/api/help Diese API gibt die Resultate in einem Atom-Feed zurück. Kann man den nicht anzapfen??

Die Prüfung bei GoYellow.de und KLICKTEL.de konnte ich noch nicht ausprobieren, da mich leider noch niemand aus DE angerufen hat… :(

Bin um jede Idee und Hilfe dankbar.

De schwiiiizer Zerofreak
 
Hallo Zusammen

Keiner eine Idee oder lust, sein Script zu Posten? Würde mich und andere evtl. weiter bringen.

Danke und Gruss
De schwiiiizer Zerofreak
 
Antworten auf vorherige Posts

@Ma-Ju:
weil ich das Script auch noch anderweitig verwende und daher das Fritzbox-Telefonbuch abfragen möchte.
Ferner gibts das wohl in neueren Firmwares, bei 7170 und Co. aber wohl nicht.

@zerofreak:
Einen Anruf aus D kannst Du haben.
Du kannst aber auch selbst einen solchen simulieren indem Du so vorgehst:

Telnet freischalten per angeschlossenem Telefon #96*7*

Auf dem PC:
Start - Ausführen - cmd
In dem schwarzen Fenster:
telnet
open fritz.box oder Box-IP
evtl. Passwort
dann nach dem #:
sh /var/flash/calllog $nr_anrufender $nr_angerufene


Und ich suche vor wie nach die Abfrage-Möglichkeit des / der Fritzbox-Telefonbücher ???
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,085
Beiträge
2,245,798
Mitglieder
373,539
Neuestes Mitglied
Horst Fürst
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.