phoneblock
phoneblock copied to clipboard
Spam-Anrufe über Cloud-Anrufbeantworter abfangen
Problem
In ein Fritz!Box-Telefonbuch passen je nach Speicherart und Fritz!Box-Modell um die 3.000 Telefonnummern. Die aktuelle Block-Liste umfasst mehr als 11.000 Nummern mit einer stark steigenden Tendenz. Eine gute Auswahl der Nummern zu treffen, die tatsächlich in die Blockliste geladen werden wir zunehmend schwieriger. Da die Telefonbuchsynchronisierung einmal in der Nacht stattfindet, hat man eine Verzögerung von der Spam-Meldung bis zur effektiven Sperrung der Nummer von bis zu 24h.
Lösung
Die Spam-Erkennung und Rufbehandlung soll in einem Anrufbeantworter stattfinden, der extern an die Fritz!Box "angeschlossen" wird. Der Anrufbeantworter prüft bei einem ankommenen Anruf, ob der Anrufer in der Spam-Datenbank enthalten ist, und nimmt nur genau dann das Gespräch an. Damit lassen sich die folgenden Punkte leicht adressieren:
- Verwaltung von beliebig großen Blocklisten. Die Liste muss nicht mehr in die Fritz!Box geladen werden.
- Sofortige Blockierung einer Nummer, sobald genügend Spam-Meldungen für die Nummer eingegangen sind. Die Nummern müssen nicht in einem nächtlichen Synchronisierungslauf in die Fritz!Box geladen werden, sondern der Anrufbeantworter gleicht eine anrufende Nummer direkt mit der Blockliste ab.
- Garantiert keine Blockierung von Nummern, die der Nutzer lokal in sein Telefonbuch eingetragen hat. Der Anrufbeantworter kann erkennen, dass der Nutzer für eine Nummer einen eigenen Telefonbucheintrag hinterlegt hat und ignoriert alle Anrufe von Anrufern aus dem lokalen Telefonbuch.
- Keine Verlangsamung der Benutzeroberfläche der Fritz!Box durch riesige Telefonbücher. Der Anrufbeantworter prüft nur Nummern, die tatsächlich anrufen.
- Erkennung von noch aktiven Spam-Nummern. Bisher kann PhoneBlock nur durch manuelle Meldung von Nummern durch Nutzer erkennen, dass eine Spam-Nummer noch aktiv ist. Ist eine Nummer aber einmal blockiert, ergibt es für Nutzer keinen Sinn mehr, eine Spam-Meldung zu machen und PhoneBlock kann nicht erkennen, ob eine Nummer noch eine aktive Quelle von Spam-Anrufen ist. Da der Anrufbeantworter ankommende Anrufe, die sich nicht im Telefonbuch des Nutzers befinden aktiv überprüft, kann diese Prüfung genutzt werden, um aktive Spam-Nummer zu erkennen.
- Beschäftigung von Spam-Anrufern. Wird eine Nummer nur blockiert, tut das einem "Spam-Anbieter" nicht weh, da der Telefoncomputer direkt die nächste Nummer wählt. Teuer wird es für den Spammer erst, wenn der Anruf angenommen und an einen "Call-Center-Mitarbeiter" übergeben wird. Ziel des PhoneBlock-Anrufbeantworters ist es daher, Spam-Anrufe anzunehmen, sich nicht als Anrufbeantworter zu erkennen zu geben und möglichst lange mit dem Anrufer zu "reden" - natürlich ohne das Wort "ja" in den Mund zu nehmen.
Umsetzung
An einer Fritz!Box (und anderen Telefonanlagen) lassen sich VOIP-Telefoniegeräte anmelden (VOIP=Voice-over-Internet-Protocol). VOIP-Telefone gibt es relativ teuer als Hardware zu kaufen, ein VOIP-Telefoniegerät lässt sich aber auch rein in Software implementieren.
Der PhoneBlock-Anrufbeantworter ist ein solches rein in Software realisiertes Telefoniegerät, dass an der Fritz!Box angemeldet werden kann. Hierfür benötigt man keinen eigenen Rechner, der 7/24 läuft, sondern der PhoneBlock-Anrufbeantworter läuft in der PhoneBlock-Cloud und kann von dort (über das Internet) an der eigenen Fritz!Box angemeldet werden. (Wenn man einen eigenen Rechner hat, der 7/24 online ist, kann man den PhoneBlock-Anrufbeantworter natürlich auch dort installieren und selber betreiben - ist ja open-source).
Offene Punkte
- [x] Konfigurations-GUI, mit der ein Anrufbeantworter erzeugt, angemledet, eingeschaltet, ausgeschaltet und wieder gelöscht werden kann.
- [x] Ausschluss von Nummern, die sich im Telefonbuch des Nutzers befinden.
- [x] Zählen von abgefangenen Spam-Anrufen pro Nutzer/Anrufbeantworter.
- [X] Feedback beim Registrieren/Einschalten eines Anrufbeantworters.
- [x] Übersicht über die Zeit, die der Anrufbeantworter insgesamt mit Spam-Anrufern geredet hat.
- [x] Liste von abgefangenen Spam-Anrufen mit Nummer des Anrufers, Uhrzeit und Dauer des Anrufs.
- [x] Hilfe-Seiten für die Einrichtung eines PhoneBlock-Anrufbeantworters.
- [ ] #39
- [ ] #40
Was noch rein müsste ist meiner Meinung nach eine einstellbare Zeit, nach der Spam-Nummern wieder entfernt werden. Wenn eine Nummer z. B. drei Jahre nicht mehr gesehen wurde oder so
@MegaV0lt Das stimmt. Aktuell verrechnet PhoneBlock die Anzahl der Beschwerden mit der Zeit, die seit der letzten Beschwerde vergangen ist. Das ist aber eigentlich ein schlechtes Maß, da es für eine Nummer auf der Blockliste auch keine Beschwerden mehr gibt, wenn alle PhoneBlock installiert hätten.
Mit dem Anrufbeantworter gäbe es die Möglichkeit für eine bessere Heuristik, da dann PhoneBlock tatsächlich die Aktivität von SPAM-Nummern messen könnte.
@MegaV0lt Vielleicht magst Du Dich am Beta-Test beteiligen? Ich habe ein Test-System mit der Anrufbeantworter-Funktionalität aufgesetzt (sieht aus wie die Hauptseite, man muss aber einen separaten Account erstellen): https://phoneblock.net/pb-test/anrufbeantworter/ - Die SPAM-Datenbank wird aber von der Hauptseite verwendet.
Wäre bei der aktuellen Umsetzung einer lokalen Installation der Betrieb des Anrufbeantworter auf einem Raspberry Pi möglich?
Wäre bei der aktuellen Umsetzung einer lokalen Installation der Betrieb des Anrufbeantworter auf einem Raspberry Pi möglich?
Ja, definitiv. Wenn man https://github.com/haumacher/phoneblock/tree/answerbot/phoneblock-ab baut, fällt ein JAR heraus, mit dem man einen laufenden Anrufbeantworter hat. Leider muss man dafür auch noch https://github.com/haumacher/mjSIP vorher bauen, um die dafür nötige SIP Bibliothek zu bekommen.
Sehr gut. Ich werde erst einmal den finalen Release abwarten. Um die beiden Pakete komplett ohne Anleitung zu kompilieren fehlt mir das Wissen. Eine separate, installierfähige, Distribution für Raspberry Pi und ähnliche Systeme wäre ideal. Vielleicht ist das Interesse daran aber auch zu gering unter den Nutzern.
Wäre bei der aktuellen Umsetzung einer lokalen Installation der Betrieb des Anrufbeantworter auf einem Raspberry Pi möglich?
Ja, definitiv. Wenn man https://github.com/haumacher/phoneblock/tree/answerbot/phoneblock-ab baut, fällt ein JAR heraus, mit dem man einen laufenden Anrufbeantworter hat. Leider muss man dafür auch noch https://github.com/haumacher/mjSIP vorher bauen, um die dafür nötige SIP Bibliothek zu bekommen.
Hallo. Gibt es eine Anleitung wie man sich das selbst zusammen bauen kann? Ich kenne mich leider nur sehr rudimentär mit Java auf (Schulniveau).
Gibt's das eventuell auch schon als Docker oder ist das geplant?
Vielen Dank!
@FichtnerS Distribution for RaspberryPi ist geplant, aber hat aktuell nicht die höchste Priorität. Das selber zu betrieben ist nochmal um ein Vielfaches komplizierter, als den Cloud-Service zu nutzen. Aktuell muss zuerst dieser Dienst "rock-solid" funktionieren, bevor man das dezentral installieren sollte - das ist aktuell nur für Entwickler zu empfehlen, wenn eine Mitarbeit an dem Projekt geplant ist.
Beta-Tester für den Cloud-Dienst helfen aktuell mehr.
Test System: https://phoneblock.net/pb-test/anrufbeantworter/ (erfordert separate Anmeldung)
@haumacher ich habe noch ein paar fragen:
-
kannst du die aktuelle blocklist der release version für die pb-test version nutzen? die pb-test blocklist ist nicht wirklich up2date.
-
wie kann man denn bei der pb-test variante jetzt nummern "melden"? bisher ging das ja übers ins blocklist hinzufügen, aber das fällt ja mit der anrufbeantworter variante raus.
-
ich habe eine fritzbox1 und alles eingerichtet. jetzt läuft bei mir im keller aber noch eine fritzbox2 im mesh. auf dieser fritzbox2 werden von fritzbox1 alle voip rufnummern übernommen. ich kann aber auf der fritzbox2 den anrufbeantworter nicht zusätzlich einrichten, da diese fritzbox2 ja keine dyndns adresse hat (und auch keine bekommen kann, da diese einstellung im mesh mode nicht verfügbar ist). ich dachte erst, dass das auch nicht nötig ist, da ja die fritzbox1 den spam anruf abwickelt - dem ist aber nicht so. der anruf kommt bei fritzbox1 und fritzbox2 an; die fritzbox1 leitet an den AB weiter und der anruf auf der fritzbox2 endet direkt - wird dort dann aber als "unbeantworter anruf" angezeigt. das ist irgendwie unschön. hast du da noch eine idee wie man das lösen kann? edit: die FB2 zeigt zwar den anruf als "in abwesenheit" an, das fritzfon an der FB2 jedoch als "angenommen". ich muss mal den nächsten spam anruf abwarten und schauen wie es dann direkt danach auf dem fritzfon aussieht. Edit2: ja sieht gut aus, fritzfon an fritzbox2 zeigt den Anruf als angenommen an. Dh der Spam Anruf wird nicht wie angenommen als unbeantworteter Anruf dargestellt. Damit ist für mich alles gut. Könnte das zwar sein dass das Telefon dann ganz kurz klingelt, das werd ich aber erst sehen wenn ich mal eine Tag daneben sitze.
Zu 1: Das Anrufbeantworter-Testsystem nutzt tatsächlich die Blockliste der Live-Version über die API.
Zu 2: Siehe 1 - die Blockliste wird vollständig durch die Live-Version verwaltet - Melden über negative Bewertung auf der Webseite.
Zu 3: Ja, das Telefon kann ganz kurz klingeln - da kann man wohl nichts gegen machen, weil der AB ja wie ein normales Telefon reagiert. Die Box lässt die Telefone so lange klingeln, bis eines der Telefone den Anruf annimmt.