FB Callmonitor - Werbeanrufe identifizieren mit tellows

Begonnen von spooy99, 20 Februar 2016, 11:14:07

Vorheriges Thema - Nächstes Thema

spooy99

Ich nutze den FB Callmonitor auf einer separaten FHEM-Installation und einer FB7490. Funktioniert super - Danke für das Modul.

In letzter Zeit werde ich mit einer Vielzahl von Werbeanrufen belästigt und ich trage deren Rufnummern händisch in die Rufsperren der Fritzbox ein.
Nun kam mir die Idee - ähnlich der Rückwärtssuche in Telefonbüchern - eine Abfrage von z.B. tellows.de zu tätigen um einen Score-Wert für den Anrufer zu erhalten und entsprechend zu reagieren.

Tellows (kann natürlich auch ein anderer Anbieter sein) scheint Schnittstellen/APIs anzubieten, da z.B. auch jAnrufmonitor (gibt es auch für Linux) diese Funktion bietet...

Deshalb meine Frage, ob sich damit schon mal jemand beschäftigt hat (habe hier nichts gefunden), oder ob das ein Feature-Request sein darf (ich bin leider eher der Anwender als Programmierer).

Danke!
FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

marvin78

Zitat von: spooy99 am 20 Februar 2016, 11:14:07
(ich bin leider eher der Anwender als Programmierer).


Das waren ja die meisten mal. ;)

Ich würde mir anschauen, wie FB_CALLMONITOR die anderen APIs verwendet und darauf aufsetzen. Aller Anfang ist schwer, aber anfangen muss man ja.

Dr. Boris Neubert

Zitat von: spooy99 am 20 Februar 2016, 11:14:07
In letzter Zeit werde ich mit einer Vielzahl von Werbeanrufen belästigt und ich trage deren Rufnummern händisch in die Rufsperren der Fritzbox ein.

Off-topic:

Neben einer Beschwerde bei der Bundesnetzagentur per Webformular fand ich den Vorschlag in der letzten c't ganz nett, die Rufnummer des Werbers auf die Rufnummer der Support-Hotline desselben Unternehmens umzuleiten  ;D

Und wenn doch mal ein Werber durchkommt, dann finde hier DEINEN Gesprächsleitfaden:   http://i.imgur.com/p87sYYi.jpg

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Elektrolurch

Zitat:
letzten c't ganz nett, die Rufnummer des Werbers auf die Rufnummer der Support-Hotline desselben Unternehmens umzuleiten  ;D

1. Das mache ich auch.
2. Bei unbekanntem Anrufer wird sofort auf den AB weitergeleitet.
3. Kommt doch mal einer durch:
a) Krimatorium Ofen 7, wen möchten Sie sprechen?
b) oder "Moment bitte"... Dann so im Hintergrund Anweisungen geben wie: "Ihr könnt die Leiche schon einpacken, die Spusi soll die Blutproben auch mittnehmen...." Und dann nach 2 Minute wieder den Hörer in die Hand nehmen... Gibt auch Spaß.

Seit der Zeit habe ich keine aktiven Werbeanrufe mehr, aber so ein Rating wäre doch ganz nett. Müsste man dann auch im callist - Modul noch integrieren.

Elektrolurch
configDB und Windows befreite Zone!

Markus Bloch

Hallo zusammen,

ist prinzipiell möglich. Bei mir kamen solche Werbeanrufe eigenartigerweise immer auf der 3. Rufnummer an, wo direkt ein AB rangeht. Sobald die Ansage begann, wurde direkt wieder aufgelegt. Obwohl ich diese Rufnummer nie verwendet habe, rufen die immer dort an.

Hat hier jemand Erfahrungen mit entsprechenden Anbietern solcher Werbe-Listen? Welche Anbieter sollte man nehmen, welche nicht?

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

spooy99

Welcher Anbieter ... gefunden habe ich folgende


Lediglich bei tellows habe ich Infos zu einer (leider wohl kostenpflichtigen) API gefunden: http://shop.tellows.de/de/tellows-api-key.html oder http://blog.tellows.de/2011/07/tellows-api-fur-die-integration-in-eigene-programme/

Hatte mich auf De beschränkt, ob es andere für AT, CH gibt musste noch geklärt werden...

FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

Rince

Hm.
Meine eigene Rufnummer hat einen Score von 5.

Ich denke testweise können wir sicherlich mal den Testzugang ausprobieren.
http://www.tellows.de/basic/num/0781968053101?xml=1&partner=test&apikey=test123

Was ich nett finde, dass der Ort ebenfalls angegeben wird. Das mag ich z.B. bei meinem Handy auch sehr :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

spooy99

... der Score von 5 bedeutet 'neutral'  - weder positiv, noch negativ bzw. keine Info vorhanden lt.
http://blog.tellows.de/tellows_score/

FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

jojoja

Hallo,

falls es noch jemand interessiert, ich habe eine kleine myUtils geschrieben (und zum ersten mal regex in Perl benutzt, also bitte nicht schlagen :D)

Es gibt 3 Funktionen:
getTellowsScore("<Nummer>") gibt einfach den Score zurück
getTellowsRating("<Nummer>") gibt ein Array mit den ganzen Infos zurück (z.B. Standort, häufigster Reklamegrund)
getTellowsRatingText("<Nummer>") gibt einen String mit den ganzen Infos zurück, den per Telegram dann versende

Das mit dem Testzugang ist interessant, ich konnte gestern und heute ~50 Anfragen zum Testen schicken, bis jetzt funktioniert alles. Ist da etwas über die Begrenzung bekannt?

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

spooy99

Hallo - kurz mal getestet - funktioniert soweit
Danke!
FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

spooy99

#10
Hallo Johannes,
vielen Dank, dein myUtils funktioniert bei mir bisher problemlos. Ich lasse mir auf meinem Infopanel die entsprechenden Anrufinfos anzeigen. Da ich jedoch sowohl den RatingText, also auch den Scorewert (farbliche Darstellung wenn Score >5) haben möchte, muss ich je die Funktionen aufrufen und somit Fhem mehrfach "belasten". Wunsch wäre deshalb diese Infos einmalig zu holen und in den Readings zu speichern (analog Reversesuche).

Ich habe deshalb - es sind meine ersten Gehversuche, bitte Nachsicht - das Modul 72_FB_Callmonitor von markusbloch (Stand 12063 v. 23.08.16) testweise um eine Abfrage von tellows.de ergänzt. Zum Test sollte nun der Anrufername gefolgt vom Scorewert im Reading external_name abgelegt werden (sh. Datei anbei - EXPERIMENT!). Hierzu tellows.de in den Attributen als Rückwärtssuche hinzufügen.

Am besten würde mir gefallen, wenn der Scorewert und der Inhalt von RatingText in zwei gesonderten Readings gespeichert werden könnte. Das würde aber weitere Anpassungen am Modul notwendig machen, was aber mit dem Author abgestimmt werden sollte (erhält Nachricht von mir).

Gruß
Spooy
FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

jojoja

Hallo Spooy,

genau diesen Schönheitsfehler mit dem doppelten Aufruf hatte ich auch. Ich lasse nun die Ergebnisse in einen Hash speichern, wodurch nur noch ein Aufruf nötig ist:

FritzFon:event:.ring {
  [...]
  my $extnum = (ReadingsVal("FritzFon","external_number",0));
  my %tellows = getTellowsRating($extnum);

  [...]

  fhem("msg |Festnetzanruf| von $extname ($extnum) ".$tellows{'text'});
 
  if(isJohannesHome()){
  [...]
fhem("msg light ".$tellows{'scoreColor'}) if(JohannesAufenthalt() eq "Wohnzimmer");
  }
  [...]
}


mit $tellows{'score'} erhält man den score, mit $tellows{'text'} den text usw.
verfügbar sind die Werte score, searches, comments, scoreColor, scorePath, location, country, mostCritic, mostCriticCount und text, also alles in einem.

So viel zur Weiterentwicklung davon, ich halt es aber für deutlich sinnvoller das Ganze in das Callmonitor Modul einzubinden. Ich versuch mal parallel in die Modulprogrammierung reinzukommen, hab ich jetzt noch nie gemacht :D Die Rücksprache mit Markus ist aber sicherlich nicht verkehrt.

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

jojoja

Hallo zusammen,

funktional habe ich das Modul um die Funktion und die Readings erweitert, allerdings ist das Ganze nicht besonders fehlertolerant (z.B. use strict auskommentiert, keine Warnung bei fehlendem API-Key, ...)

Geändert/Hinzugefügt wurden die Zeilen 33, 72-74, 390, 414-423, 769ff

Zum Testen müssen folgende Attribute gesetzt werden:
reverse-search-tellows: 1
reverse-search-tellows-api-partner: test
reverse-search-tellows-api-key: test123


Dann werden die im vorherigen Post genannten Werte als Readings hinzugefügt. Achtung: Experimentell.

Wie gesagt, Module schreiben ist für mich auch noch "Neuland", vielleicht kann ja jemand erfahrenes einen Blick drauf werfen...

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Gonzo

Hallo jojoja,

ich hatte heute eine ähnliche Idee und die Forensuche hat mich auf diesen alten Thread gebracht.
Das Ganze ist schon 4 Jahre her, hattest du deine Lösung im produktiven Einsatz laufen?

Das FB_Callmonitor Modul hat sich zwar etwas geändert, aber ich denke deine Änderungen sollten auch mit dem aktuellen Stand noch funktionieren.

jojoja

Hi Gonzo,

habe vor ~1 Jahr auf Unifi gewechselt und habe somit keine Fritzbox bzw. Anrufe allgemein mehr.
Probiers aus! Bei mir hat es bis zuletzt funktioniert. Fehlermeldungen kannst du ja gern hier einstellen.
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Gonzo

Hab noch nicht so lange getestet, aber bis jetzt funktioniert es ohne Probleme! 
Danke für die Vorarbeit :)

Eine Frage noch, bekommt man irgendwie raus ob der Anrufer im FritzBox Telefonbuch gespeichert ist? Ich möchte nicht ständig gespeicherte Rufnummern zu tellows schicken, sondern nur unbekannte.


Gonzo

So, habe inzwischen rausgefunden dass der FritzBox Callmonitor keine Infos über gespeicherte Nummern liefert sondern nur den Anruf selbst.

Hab mir das Modul zuerst so umgebaut dass nur eingehende Anrufe bei tellows geprüft werden, das reicht für mich, ausgehende benötige ich nicht.
Und jetzt hab ich noch einen sehr quick&dirty Weg gefunden um die tellows Anfrage nur durchzuführen wenn die Nummer nicht im internen Telefonbuch gefunden wurde. Aber da stoße ich langsam an meine nicht-vorhandenen Programmierkünste.

Falls jemand interesse hat kann ich meinen aktuellen Stand gerne teilen.

Parador

Hallo Gonzo,
ich würde mich freuen, wenn Du mich teilhaben lassen würdest ;-)
VG

Prof. Dr. Peter Henning

Bitte mal die Details posten, das könnte mehrere Leute interessieren.

LG

pah

Gonzo

Sorry, nachdem hier lange Zeit nichts passierte hatte ich den Thread auch aus den Augen verloren.

Im Anhang meine quick&dirty Lösung.
Ich habe den Code von jojoja von 2016 genommen und in die 72_FB_CALLMONITOR Version von damals (2020) eingebaut. Geändert habe ich dass zuerst das interne Telefonbuch durchsucht wird, ist die Nummer dort nicht enthalten, wird neben der Rückwärtssuche auch die Anfrage bei Tellows gestartet.
Alle Änderungen sind mit "### tellows" gekennzeichnet.


JoWiemann

#20
Hallo Gonzo,

ich schau mir Deine Lösung die Tage mal an.

Was ich auf die Schnelle nicht verstehe ist, warum Du für die Reihenfolge nicht das vorhandene Attribut nutzt:


reverse-search (phonebook,dasoertliche.de,11880.com,search.ch,dasschnelle.at,herold.at)
Aktiviert die Rückwärtssuche der externen Rufnummer (bei eingehenden/ausgehenden Anrufen). Dieses Attribut enthält eine komma-separierte Liste mit allen Anbietern die für eine Rückwärtssuche benutzt werden sollen. Die Rückwärtssuche prüft in der gegebenen Reihenfolge (von links nach rechts) ob der entsprechende Anbieter (Telefonbuch, Textdatei oder Internetanbieter) die Rufnummer auflösen können. Das erste Resultat was dabei gefunden wird, wird als Ergebnis für die Rückwärtssuche verwendet. Es ist möglich einen bestimmten Suchanbieter zu verwenden, welcher für die Rückwärtssuche verwendet werden soll. Der Anbieter "textfile" verwendet die nutzereigene Textdatei, sofern definiert (siehe Attribut reverse-search-text-file). Der Anbieter "phonebook" verwendet das Telefonbuch der FritzBox (siehe Attribut reverse-search-phonebook-file oder fritzbox-remote-phonebook).


Hier kannst Du ja "phonebook" als erstes angeben und dann die Web Anbieter.

Und dann gibt es ja neben Tellows noch einen privaten Anbieter, den man als Blacklist Telefonbuch direkt in die Fritzbox einbinden kann: https://phoneblock.haumacher.de/phoneblock

Grüße Jörg

PS: Warum kommentierst Du use strict aus?
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

#21
Hallo,

ich habe jetzt mal tellows in die FB_CALLMONITOR Logik integriert. Sofern tellows immer angefragt werden soll, dann muss es im Attribut reverse-search an oberster Stelle stehen.

weiter geht es: https://forum.fhem.de/index.php?action=post;msg=1260286;topic=131868.0

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM