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

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).
 
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.
 
Moin

HTML-Interpreter/Anzeigeprogramm
 
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'
 
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.
 
Zuletzt bearbeitet:
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
 
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ß
 
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
 
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;}'
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,149
Beiträge
2,246,980
Mitglieder
373,668
Neuestes Mitglied
Stripi
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.