[Info] fbcallrouter - extended call routing (spam filter) for FRITZ!Box

Black Senator

Mitglied
Mitglied seit
13 Jul 2007
Beiträge
418
Punkte für Reaktionen
69
Punkte
28
Hallo,

eigentlich nur so als Test von Funktionen entstanden hatte ich meinen Call-Router (Spam-Filter) hier einmal vorgestellt.
Inzwischen ist das Coding zwei mal auf links gedreht und so weit gereift, dass ich denke, ich kann das offiziell posten.

Grüße

Black Senator
 
  • Like
Reaktionen: MegaV0lt
Hallo,

ich habe einige Änderungen/Ergänzungen vorgenommen:
  • es ist jetzt ein Logging eingebaut, damit man besser nachvollziehen kann, was, wann, wie geprüft wurde.
  • neben den ONB fehlten die Vorwahlen der Mobilfunkbetreiber, um Fake-Vorwahlen korrekt zu identifizieren - behoben
  • auch die config ist erweitert, so dass man jetzt individuell einstellen kann, ob man mit >5/>3 (Score/Kommentare) oder schärfer (z.B. >5/0) bzw. weniger scharf (z.B. >7/>10) prüfen möchte
Grüße

Black Senator
 
Hallo,

das Tool hat seit dem letzten Post (von vor fast zwei Jahren) einige Korrekturen bzw. Verbesserungen erhalten. Das war auch nötig, weil mir ein paar ärgerliche Fehler unterlaufen waren, die einen Dauerbetrieb nicht ermöglichten :(
Aber gerade weil so ein Tool im Hintergrundbetrieb werkelt, besteht die Gefahr, dass Fehler erst einmal nicht sichbar werden und dann auch noch längere Zeit unbemerkt bleiben. Insbesondere war die Verbindung zur FRITZ!Box nicht dauerhaft stabil. Ich kann aber sagen, dass zumindest auf meinem Raspberry Pi das Tool nun durchgehend fehlerfrei läuft.

Hier ein paar der Punkte, die behoben oder verbessert wurden:
  • refresh SID
    vor den SOAP-Zugriffen auf die Box (z.B. lesen schreiben der Telefonbücher) wird jetzt immer erst einmal der Client frisch aufgesetzt und bekommt eine valide SID
  • keep socket alive
    nach einiger Zeit ging die Socket-Verbindung zum Callmonitor verloren. Jetzt wird nach einem festen Intervall der Socket neu gesteckt.
  • doppelte Einträge im Spam-Telefonbuch: ich hatte vergessen eine Routine einzubauen, die verhindert, dass Spam-Nummern nicht mehrfach in die blacklist (Spam-Nummern) eingetragen werden
  • das Logging (optional abschaltbar) ist aussagekräftiger, um evtl. Abweichungen besser zu identifizieren
  • mit Testnummern kann das Verhalten der Software integrativ getestet werden (siehe hier)
Hier noch ein Blick, wie es aussieht, wenn es funktioniert - also der Spammer erkannt wurde:
fbcallrouter.png
Noch ein Wort zum Handling: wenn nun suspekte Nummern anrufen und sie werden vom Tool als neue Spammer identifiziert, dann sieht man spätestens nach dem zweiten Klingeln im Display "automatisch gesperrt...". D.h. Prüfung und Eintrag in das Spam-Telefonbuch ist erfolgt und das FRITZ!Fon zeigt diesen neuen Eintrag an. [EDIT: das Feature ist leider nicht mehr zu beobachten - offenbar durch aktuellere FRITZ!OS nicht mehr vorhanden - schade!]

Es gibt bestimmt etliche Stellen, die man - im Vergleich zu kommerzieller Software - verbessern könnte ... aber die Spammer sind es nicht wert, dass man zu viel Zeit und Lebensenergie an sie verschwendet.


Grüße

Black Senator
 
Zuletzt bearbeitet:
Hallo,

wieder sind zwei Jahre vergangen und an dem fbcallrouter hat es etliche Veränderungen gegeben. U.a. angeregt durch Nutzeranfragen sind mit hinzugekommen:
  • wenn man möchte, bekommt man eine E-Mail Benachtichtigung mit den wesentlichen Log-Einträgen, sobald ein (vermeintlicher) Spammer in die Mangel genommen wurde.
  • ungewöhnliche Rufnummern(-Kombinationen) werden abgeprüft:
    • Rufnummernlänge von in- oder ausländischen Rufnummern werden über- bzw. unterschritten
    • nicht (mehr) vorhandene Ländercodes (z.b. 00217* oder 001203*)
    • verschleierte Rufnummern: [VORWAHL des angerufenen]49[MOBILVORWAHL][RUFNUMMER]
      (dabei landet dann auch der Abschnitt [MOBILVORWAHL][RUFNUMMER] gleich mit im Spam-Telefonbuch
      fbcallrouter.jpg
  • die Web-Recherche wurde auf insgesamt fünf online Spammer-Verzeichnisse ausgeweitet. Ist eine Rufnummer dort mit entsprechend schlechter Bewertung und ausreichender Anzahl Kommentaren/Bewertungen gelistet, landet die Rufnummer im Spam-Telefonbuch.
  • Abschließend wird jetzt noch geprüft, die unbekannte Rufnummer evtl. "save" ist, d.h. es findet eine Rückwärtssuche in Das Örtliche statt. Optional kann diese Rufnummer dann in ein separates, oder beliebiges anderes Telefonbuch eingetragen werden.
  • Das Feature für die Rückwärtssuche in das Örtliche wurde auch für ausgehende Anrufe eingebaut.
Das entsprechend organisch gewachsene Coding musste dabei mehrmals komplett überarbeitet werden, da die Komplexität der Abfragen es einfach zu unübersichtlich gemacht haben und es nur noch schwer wartbar war.

Interessant, dass es nur eine Austausch darüber nur via GitHub oder durch direkte Kontaktaufnahme gibt.


Black Senator
 
Servas!

Ich bin einer der Ideengeber - ich hab fbcallrouter über github direkt gefunden und hab mich gefreut, dass du die Anregungen auch gleich umgesetzt hast.
Ich hatte gerade die letzten Woche sehr viele solcher SPAM-Anrufe (da geistert meine Nummer wohl irgendwo rum?) und mit dem Tool war dann aber schnell Ruhe. Ich habs so in der FritzBox eingerichtet, dass bei Anruf von Nummern aus dem "SPAM-Telefonbuch" direkt sofort ein Anrufbeantworter rangeht. Dort habe ich eine Nachricht aufgesprochen, dass die Nummer als Spam erkannt wurde und ich mir vorbehalte, die Nummer der Bundesnetzagentur zu melden (keine Ahnung, ob die das juckt). Ich habe hinzugefügt, wer meint, er ist kein unerlaubter Werbeanruf, soll mir was auf den AB sprechen. Von den bisher hunderten Anrufen hat keiner drauf gesprochen.

Was ich super finde, Anrufe, die per Rückwärts-Suche gefunden wurden und "legit" sind, werden direkt ebenfalls abgespeichert. Offenbar hatten wir das Autohaus oder Arzt nicht eingespeichert -> ab sofort wird der mit Name angezeigt! ;)

Ich finde solch eine Lösung besser als eine ellenlange Blacklist, die ja meist eh schon veraltet ist, wenn man sie einspielt.
 
Vielen Dank an die Nutzer, mit denen ich in den letzten Wochen intensiven Austausch hatte. Durch die andersartigen Umgebungen und Einstellungen sind noch ein paar Bugs aufgedeckt worden, die ich bei mir nicht sehen konnte. Ebenso konnten noch Mustererkennungen ergänzt werden, mit denen sich Spammer identifizieren lassen.

Als Teaser für Interessierte ein kleiner Live-Ausschnitt von meinem Anschluss:

Screenshot 2023-03-21 223701.png
[Edit Novize: Riesenbild gemäß der Forumsregeln auf Vorschau verkleinert]

Black Senator
 
Zuletzt bearbeitet von einem Moderator:
Hallo @Black Senator , ein interessantes Tool.
Eine Frage hierzu bezüglich der Installation.
Ich nutze bereits seit geraumer Zeit Dein "cardav2fb".
Kann ich den fbcallrouter ebenfalls in das Verzeichnis auf dem Raspi einrichten, oder muss ich hier wieder den "composer" installieren (separat)?
 
Hallo Olaf,

ich selbst habe beides parallel auf einem Pi laufen:
Anmerkung 2023-03-23 105648.jpg
Wenn der Composer einmal richtig installiert ist, gilt er für das gesamte System. Die jeweiligen notwendigen Libraries werden gemäß der Deklarationen in der Datei composer.json unterhalb des Verzeichnis ..\vendor\.. eingespeichert.

Beste Grüße

Black Senator
 
  • Like
Reaktionen: OL_1973
Hallo @Black Senator leider bekomme ich den fbcallrouter nicht gestartet.
Nach erfolgreicher Installation fbcallrouter und composer fehlen offenbar noch weitere files vom soap client.
Ich erhalte einige Fehlermeldungen. : PHP Fatal error: Uncaught Error: Class 'SoapClient' not found in /home/de/fbcallrouter/vendor/blacksenator/fritzsoap/src/fritzsoap.php:120.
wie muss ich hier vorgehen? Die fritzsoap Verzeichnis Struktur existiert ja schon.

Vielen Dank für die Unterstützung
 
Hallo @tester22 ,

um hier den Thread im Kernthema zu halten: schreib mich bitte PM an. E-Mail findest du z.B. im Header in den fritzsoap Dateien.

Hint: php -m

Black Senator
 
Zuletzt bearbeitet:
Wäre es möglich, eine Container Installation bereitzustellen?
 
Wäre es möglich, eine Container Installation bereitzustellen?
Damit habe ich mich noch nie beschäftigt und null Ahnung.
Sorry - aber wenn sich jemand, der das beherrscht, als Contributor damit beteiligt …
 
Hallo Olaf,

ich selbst habe beides parallel auf einem Pi laufen:

Hallo @Black Senator,
vielen Dank für die Info. Ich habe mich jetzt auch mal dran gemacht, beides auf meinen Raspberry zu installieren.
Nach einigen Startschwierigkeiten hat es jetzt geklappt.
Bin mal auf die "Spamanrufe" gespannt.
Der Testlauf (wie auf Deiner GitHub-Seite) funktionierte.
Schönes Wochenende noch.
 
...Ist an der Anleitung was zu verbessern?
Hallo @Black Senator,
nein, daran ist nichts zu verbessern.
Lag nur daran, dass ich bis dato carddav2fb auf meiner Synology laufen hatte (die schaltet sich aber nach Zeitplan ab).
Daher musste ich meinen Raspberry erstmal "pimpen" (PHP installieren, etc.).
Es läuft jetzt aber alles (hoffe ich).

Hierzu eine Frage:

Wenn ich
Code:
sudo systemctl status fbcallrouter.service
eingebe, kommt folgende Meldung:

Code:
● fbcallrouter.service - FRITZ!Box call router
     Loaded: loaded (/etc/systemd/system/fbcallrouter.service; enabled; vendor >
     Active: activating (auto-restart) (Result: exit-code) since Mon 2023-03-27>
    Process: 2476025 ExecStart=/usr/bin/env php /home/XXXXX/fbcallrouter/fbc>
   Main PID: 2476025 (code=exited, status=217/USER)
        CPU: 0
lines 1-6/6 (END)...skipping...
● fbcallrouter.service - FRITZ!Box call router
     Loaded: loaded (/etc/systemd/system/fbcallrouter.service; enabled; vendor >
     Active: activating (auto-restart) (Result: exit-code) since Mon 2023-03-27>
    Process: 2476025 ExecStart=/usr/bin/env php /home/XXXXX/fbcallrouter/fbc>
   Main PID: 2476025 (code=exited, status=217/USER)
        CPU: 0

Nach meinem Verständnis läuft der Dienst dann ja, oder?
 
Moin Olaf,

ich bin kein Linux Experte für Services - aber liest sich nicht so wie bei mir.
Irgendwas hakt - siehe: „auto- restart“
Nach meiner Erfahrung bedeutet das, dass PHP ein Warnung ausgibt. Daraufhin startet der Service neu.
Schau einmal ins Logging. Was gibt denn die Konsole aus, wenn das Programm so gestartet wird?

Black Senator
 
Hallo Olaf hast du die Kommentare aus fbcallrouter.Service entfernt?
Der Dienst ist nicht gestartet.
Im Status muß Active: active (running) erscheinen
 
Den “ErnstFall“ (einen Spamanruf nach der Installation des Programms) hatte ich noch nicht, aber das Tool ist es wert installiert zu werden, wenn man sich vor Spam Anrufen schützen möchte.
Die Verifizierung bei verschiedenen Diensten unter Berücksichtigung eines Scores (Schwellwert kann selbst definiert werden). Die E-Mail Benachrichtigung finde ich ebenfalls sinnvoll. Der clevere Test, den man nach Inbetriebnahme oder Konfigänderung starten kann, gibt außerdem einen guten Eindruck zur Funktion.
Danke @Black Senator
 
  • Like
Reaktionen: Black Senator
@tester22 : Die Kommentare habe ich gelöscht. Kommt immer noch folgende Meldung:
PHP:
● fbcallrouter.service - FRITZ!Box call router
     Loaded: loaded (/etc/systemd/system/fbcallrouter.service; enabled; vendor preset: enabled)
     Active: inactive (dead) (Result: exit-code) since Tue 2023-03-28 15:37:50 CEST; 1 day 2h ago
   Main PID: 4007210 (code=exited, status=217/USER)
        CPU: 0

@Black Senator : Auch ich bin kein Spezialist für Linux :eek:

Wenn ich
Code:
php fbcallrouter run
eingebe kommt folgende Meldung:
Code:
Starting FRITZ!Box call router...
On guard...
Da funktioniert es.

-- Zusammenführung Doppelpost gemäß Boardregeln https://www.ip-phone-forum.de/threads/ip-phone-forum-regeln.297224/ by stoney

Nachtrag, jetzt funktioniert es.
Ich habe ein Update gemacht und hier wurde die "fritzsoap" von 2.8.3 auf 2.8.4 aktualisiert.
Nach Ausführung von
Code:
sudo systemctl start fbcallrouter.service
und Eingabe von
Code:
sudo systemctl status fbcallrouter.service
erscheint jetzt folgende Meldung:
fbcallrouter.JPG
 
Zuletzt bearbeitet von einem Moderator:
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.