Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spam-Anrufe über Cloud-Anrufbeantworter abfangen #36

Closed
8 of 9 tasks
haumacher opened this issue Jan 22, 2024 · 11 comments
Closed
8 of 9 tasks

Spam-Anrufe über Cloud-Anrufbeantworter abfangen #36

haumacher opened this issue Jan 22, 2024 · 11 comments
Labels
enhancement New feature or request

Comments

@haumacher
Copy link
Owner

haumacher commented Jan 22, 2024

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

@haumacher haumacher added the enhancement New feature or request label Jan 22, 2024
@MegaV0lt
Copy link

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

@haumacher
Copy link
Owner Author

@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.

@haumacher
Copy link
Owner Author

haumacher commented Feb 10, 2024

@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/phoneblock/anrufbeantworter/ - Die SPAM-Datenbank wird aber von der Hauptseite verwendet.

@pulsarclarinetokrabee
Copy link

Wäre bei der aktuellen Umsetzung einer lokalen Installation der Betrieb des Anrufbeantworter auf einem Raspberry Pi möglich?

@haumacher
Copy link
Owner Author

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.

@pulsarclarinetokrabee
Copy link

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.

@FichtnerS
Copy link

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!

@haumacher
Copy link
Owner Author

haumacher commented Feb 19, 2024

@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/phoneblock/anrufbeantworter/ (erfordert separate Anmeldung)

@dm82m
Copy link

dm82m commented Sep 17, 2024

@haumacher ich habe noch ein paar fragen:

  1. kannst du die aktuelle blocklist der release version für die pb-test version nutzen? die pb-test blocklist ist nicht wirklich up2date.

  2. 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.

  3. 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.

@haumacher
Copy link
Owner Author

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.

@haumacher
Copy link
Owner Author

Funktion ist live: https://phoneblock.net/phoneblock/anrufbeantworter/

Fehlendes wird nachgeliefert (#40).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants