.titleBar { margin-bottom: 5px!important; }

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

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von Moonbase, 14 März 2006.

  1. tzippy

    tzippy Neuer User

    Registriert seit:
    6 Nov. 2010
    Beiträge:
    63
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    Denkbar wäre auch eine Push Notification auf dem iPhone via Prowl App. Es reicht zB ein einfaches HTTP POST mit curl abzusetzen und man bekommt eine Push benachritigung mit benutzerdefinierbarem Text (als post data).
     
  2. ar544

    ar544 Neuer User

    Registriert seit:
    12 Jan. 2017
    Beiträge:
    3
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Ort:
    Neuss
    Liebe Forenmitglieder,

    dieser Thread ist schon sehr alt. Mir hat das calllog Script mit Rückwärtssuche immer gute Dienste erwiesen.
    Allerdings hat die webseite www.das oertliche.de die Rückantwort geändert, so das ich mit meinem Nichtwissen den Namen nicht mehr auslesen kann.

    <a href="http://www.dasoertliche.de/?id=2290...showbuc=0&verlNr=102&la=de&page=78&context=11" class="name " onmouseover="" onMouseOut=""><span class="">Mustermann Max&nbsp;</span>

    Kann mir einer sagen, wie ich aus diesem langen Einzeiler den Namen hier Mustermann Max auslesen kann?

    Danke im Vorraus und lieben Gruß an die Leser.
     
  3. koyaanisqatsi

    koyaanisqatsi IPPF-Urgestein

    Registriert seit:
    24 Jan. 2013
    Beiträge:
    10,912
    Zustimmungen:
    160
    Punkte für Erfolge:
    63
    Moin

    HTML-Interpreter/Anzeigeprogramm
     
  4. creon

    creon Neuer User

    Registriert seit:
    20 Jan. 2005
    Beiträge:
    98
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    Du willst im Prinzip ja den Inhalt des "span"-Tag ausfiltern.
    Sowas benötigst du also:
    http://blog.xig.ch/In-Bash-einen-String-aus-HTML.XML-Tags-extrahieren_137.html

    Im konkreten Fall musst du den String also an folgendes sed Kommando übergeben.
    sed -n -e 's/.*<span class="">\(.*\)<\/span>.*/\1/p'


    Das machst du, indem du ihn in eine Variable schreibst, oder irgendwie anders die Standardausgabe an dieses SED Kommando per Pipe weiterleitest:
    j=...
    echo $j | sed -n -e 's/.*<span class="">\(.*\)<\/span>.*/\1/p'
     
  5. creon

    creon Neuer User

    Registriert seit:
    20 Jan. 2005
    Beiträge:
    98
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
  6. koyaanisqatsi

    koyaanisqatsi IPPF-Urgestein

    Registriert seit:
    24 Jan. 2013
    Beiträge:
    10,912
    Zustimmungen:
    160
    Punkte für Erfolge:
    63
    #586 koyaanisqatsi, 18 Juli 2017
    Zuletzt bearbeitet: 19 Juli 2017
    Das kannste dir auch so...
    Code:
    view-source:https://mobil.dasoertliche.de/Themen?nummer=08003301000
    ...im HTML-Anzeigeprogramm angucken.
    Ist das überhaupt noch (wohlgeformtes) HTML ?
    ...sogar mit data: Links.

    Ich würde mir...
    data-wipeitem=
    Code:
    wget -qO- http://mobil.dasoertliche.de/Themen?nummer=08003301000|grep -E -o "data-wipeitem.*}"
    ...vornehmen.
     
  7. ar544

    ar544 Neuer User

    Registriert seit:
    12 Jan. 2017
    Beiträge:
    3
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Ort:
    Neuss
    Vielen Dank für die vielen Vorschläge und Hilfe.

    Dank Eurer Tipps funktioniert es jetzt so bei mir

    url="http://www.dasoertliche.de/Controller?la=de&kw=$caller&form_name=search_nat"
    name=$(wget -q -O - "$url" | grep na: | sed -e 's/\ / /g;s/[ ]//g;s/^[ ]//g;s/<[^<]*>//g;s/na:/ /g;s/"//g' | tr "\015" "\012")

    Der Name taucht auf der Seite noch ein zweites mal auf, wo das auslesen leichter ist.

    Gruß und Dank
     
  8. creon

    creon Neuer User

    Registriert seit:
    20 Jan. 2005
    Beiträge:
    98
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
  9. creon

    creon Neuer User

    Registriert seit:
    20 Jan. 2005
    Beiträge:
    98
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
  10. creon

    creon Neuer User

    Registriert seit:
    20 Jan. 2005
    Beiträge:
    98
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
  11. ar544

    ar544 Neuer User

    Registriert seit:
    12 Jan. 2017
    Beiträge:
    3
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Ort:
    Neuss
    Liebe Leser,

    für das HTTPS Problem gibt es eine Lösung:

    https://www.fritzmod.net/tools/wget/

    Dort gibt es für alte und neue FritzBoxen ein fertig kompiliertes wget mit SSL.

    Bei mir sieht das im calllog jetzt so aus (Niederlande, frankreich, Schweiz, Austria, Deutschlane):

    Code:
    case "$caller" in
                0031*)
                    # echo Niederlande;
                    url="https://www.detelefoongids.nl/en/$1/11-2/?oWhat=$1&oWhere="
                    name=$(/var/media/ftp/USBStick/bin/wget_v1.14_mipsel -q -O - --no-check-certificate --secure-protocol=auto "$url" | grep -A 1 "<span itemprop=\"name\"" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/[^! -~]//g;s/*//g;');
                    ;;
                0033*)
                    # echo Frankreich;
                    url="https://www.pagesjaunes.fr/annuaireinverse/recherche?quoiqui=$1&proximite=0";
                    name=$(/var/media/ftp/USBStick/bin/wget_v1.14_mipsel -U Polipo -q -O - --no-check-certificate --secure-protocol=auto "$url" | grep -A 1 "class=\"denomination-links" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/[^ -~]//g');
                    ;;
                0041*)
                    # echo bin in Schweiz;
                    url="https://tel.search.ch/?tel=$1";
                    name=$(/var/media/ftp/USBStick/bin/wget_v1.14_mipsel -q -O - --no-check-certificate --secure-protocol=auto "$url" | grep -A 1 ";private=1" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/[^ -~]//g;s/Details//');
                    ;;
                0043*)
                    # AUSTRIA allerdings bleiben Hochkommata im NAMEN;
                    url="http://www.telefonabc.at/result.aspx?what=$1&where=&exact=False&firstname=&lastname=&appendix=&branch=&p=0&sid=&did=&cc="
                    name=$(/var/media/ftp/USBStick/bin/wget_v1.14_mipsel -q -O - --no-check-certificate --secure-protocol=auto "$url" | grep -A 1 "'Lastname':" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/[^! -~]//g;s/-//g;s/!//g;s/ <//g;s/Firstname//g;s/Lastname//g;s/[":]//g')
                    ;;
                *)
                    # Rest, also BRD;
                    url="http://www.dasoertliche.de/Controller?la=de&kw=$caller&form_name=search_nat"
                    name=$(wget -q -O - "$url" | grep na: | sed -e 's/\ / /g;s/[    ]//g;s/^[ ]//g;s/<[^<]*>//g;s/na:/ /g;s/"//g' | tr "\015" "\012")
                    ;;
    esac
    Falls es jemand braucht.
    In Östereich wird der Name imer in Hochkomata ausgegeben. Dafür hatte ich auf die schnelle keine Lösung gefunden.

    Gruß
     
  12. creon

    creon Neuer User

    Registriert seit:
    20 Jan. 2005
    Beiträge:
    98
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    Code:
    # Keine Benachrichtigungen für Anrufe von Werbefritzen mit Tellow Score > 6
    score=`wget -qO- http://www.tellows.de/basic/num/$1?xml=0&partner=test&apikey=test123`
    score=`echo $score | sed -n -e 's/.*<span id="score">\([0-9]\)<\/span>.*/\1/p'`
    if [ $score -ge "7" ]; then
      echo "ATP51 ATD*09 ATH0 ATP1 ATD*09 ATH0" | nc 127.0.0.1 1011
      exit
    fi
    
    Hier noch mein Beispielcode, welches einfach auflegt, sofern der Tellow-Score größer als 7 ist.
    Was macht das Skript? Es fragt zur Rufnummer den Tellow-Score ab, das ist ein SPAM Indikator. Bei unbewerteten Rufnummern ist der 5. Bei gut Bewerteten ist der < 5 und bei schlecht bewerteten ist der > 5.
    Sofern der Wert schlecht ist, wird aufgelegt und das Skript beendet.

    Das Beenden hat mich einige Stunden Zeit gekostet, herauszufinden, wie die Kommandos sind.
    Man muss letzten Endes von jedem Telefon einmal ein "Catch all" machen, d.h. das Gespräch an sich ziehen und dann auflegen. Ist kein Telefon mehr übrig, wird aufgelegt.
    In diesem Fall:
    - Nächsten Befehl vom ISDN Telefon ausführen (ATP51)
    - Gespräch an sich reißen (ATD*09 -> Dial *09 = Catch All)
    - Gespräch auflegen (ATH0)
    - Nächsten Befehl vom Fon1 ausführen (ATP1)
    - Gespräch an sich reißen (ATD*09)
    - Gespräch auflegen (ATH0)


    Sofern keine Nummer übertragen wird, wird das Skript schon recht früh am Anfang abgebrochen, weil ich dann keine E-Mail Benachrichtigung benötige – ich kann ja ohnehin nicht zurückrufen.
    Wer das nicht hat, sollte das einbetten in:

    Code:
    if [ $FROM ]; then
       ...
    fi
    
     
  13. creon

    creon Neuer User

    Registriert seit:
    20 Jan. 2005
    Beiträge:
    98
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    #593 creon, 12 Jan. 2018
    Zuletzt bearbeitet: 2 Mai 2018
    Edit: 2018-05-02 Die Abfrage hat sich erneut geändert.
    Sie basiert jetzt zwangsweise auf https, der Rest ist gleich.
    Hierfür müsst ihr ein wget nutzen, welches https unterstützt. Ich habe meines heruntergeladen und in /var/media/ftp gespeichert, ausführbar gemacht mit chmod +x wget; selbst kompilieren geht natürlich auch.

    Download: https://www.ip-phone-forum.de/threads/aktuelles-wget-für-fritz-box-7390.256038/#post-1888208

    Das aktuelle Kommando:
    Code:
       name=`/var/media/ftp/wget --no-check-certificate -q -O - "https://www.dasoertliche.de/Controller?la=de&form_name=search_nat&kw=$1" | sed -n '/var handlerData/p' | sed -e "s/',[ ]*'/=/g" | cut -d "=" -f16`
       name=`echo "${name}" | sed -e '{s/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/&/%26/g;}'