Rufpass: Wer von mir angerufen wird, darf zurückrufen

Unser Festnetztelefon wurde zunehmend zum Werbekanal. Wenn es klingelte, war häufig jemand dran, mit dem wir überhaupt nicht sprechen wollten.

Irgendwann habe ich deshalb in der FRITZ!Box eine konsequente Sperrregel eingerichtet: Nur Rufnummern, die im Telefonbuch stehen, dürfen durchkommen.

Seitdem ist es deutlich ruhiger.

Die Regel hat allerdings eine Lücke im Alltag: Auch erwünschte Anrufer werden blockiert, solange ihre Nummer noch nicht gespeichert ist.

Freunde und Bekannte kann ich nachtragen. Schwieriger wird es bei einer Werkstatt, einer Arztpraxis oder einem neuen Kontakt. Ich rufe dort an, erreiche niemanden und lege wieder auf. Später ruft jemand zurück – und kommt nicht durch.

Genau dafür entsteht Rufpass.

Die Idee: Eigene Anrufe ermöglichen Rückrufe

Der Grundgedanke ist einfach:

Wer von mir angerufen wird, bekommt automatisch eine zeitlich begrenzte Rückruf-Freigabe.

Dazu verwendet Rufpass ein zusätzliches lokales Telefonbuch in der FRITZ!Box. Das persönliche Telefonbuch bleibt bestehen.

Der Ablauf sieht so aus:

  1. Ich wähle eine externe Rufnummer über die FRITZ!Box.
  2. Rufpass prüft, ob diese Nummer bereits in einem Telefonbuch steht.
  3. Eine bislang unbekannte Nummer wird im zusätzlichen Rufpass-Telefonbuch eingetragen.
  4. Die vorhandene Sperrregel lässt den Rückruf dadurch zu.

Standardmäßig gilt diese Freigabe für 365 Tage ab dem letzten eigenen Wählversuch. Rufe ich die Nummer erneut an, verlängert sich die Gültigkeit. Es entsteht kein zusätzlicher Eintrag.

Die Gegenstelle muss dafür nicht abnehmen. Gerade nach einem erfolglosen Anruf soll der spätere Rückruf schließlich möglich sein.

Was dafür im Hintergrund läuft

Rufpass ist eine Python-Anwendung auf einem Rechner im Heimnetz. Auf der FRITZ!Box selbst wird keine zusätzliche Software installiert.

Die Box stellt zwei Funktionen bereit, die Rufpass nutzt:

Der Callmonitor meldet Telefonie-Ereignisse, darunter den Wählbeginn. So erfährt Rufpass, welche Nummer gerade angerufen wird.

Über TR-064, die Programmierschnittstelle der FRITZ!Box, liest die Anwendung die vorhandenen Telefonbücher und verwaltet ihre eigenen Freigabeeinträge.

Dazwischen speichert Rufpass seinen Zustand lokal in SQLite. Das hilft auch dann, wenn eine Verbindung abbricht oder die Antwort auf einen Schreibzugriff ausbleibt: Vor einer erneuten Anlage wird geprüft, ob der Kontakt bereits vorhanden ist.

Für Ubuntu gibt es einen Installer, der Rufpass als systemd-Dienst einrichtet. Voraussetzung auf dem Rechner ist Python ab Version 3.12 samt Projektabhängigkeiten. Auch Windows kann den Python-Prozess ausführen. Ein Raspberry Pi mit passender Laufzeit ist ebenfalls als Plattform vorgesehen, bisher aber noch nicht am Gerät geprüft.

Ein kleines Detail mit großer Wirkung: der Kontaktname

Während der Entwicklung fiel mir etwas auf, das bei der ersten Idee leicht untergeht: Der Name im Telefonbuch wird beim Rückruf auf dem Telefon angezeigt.

„Name unbekannt“ wäre dort wenig hilfreich. Wenn mehrere Einträge so heißen, weiß ich beim Klingeln weiterhin nicht, wer zurückruft.

Deshalb verwendet Rufpass ohne aufgelösten Namen die Rufnummer selbst als Anzeigename. Auch ein Rufpass- oder Datumspräfix entfällt bei neuen Kontakten, damit die wichtige Information auf dem Display Platz hat.

Das Anlegedatum bleibt intern gespeichert.

Optional versucht Rufpass, einen Namen über Wikidata zu ermitteln. Die Abdeckung ist begrenzt. Bei einem fehlenden oder mehrdeutigen Treffer bleibt es bei der Nummer.

Diese Suche ist standardmäßig aktiv und überträgt unbekannte Wählziele an Wikidata. Wer das nicht möchte, kann sie mit reverse_lookup = false abschalten. Die eigentliche Freigabeverwaltung arbeitet lokal.

Die Router-Freigaben sollen verständlich bleiben

Für Rufpass werden ein zusätzliches Telefonbuch und ein eigener FRITZ!Box-Benutzer mit Telefonie-Rechten vorbereitet. Das Kennwort dieses Benutzers wird bei der Einrichtung abgefragt.

Der Anwendungszugriff über TR-064 ist normalerweise bereits eingeschaltet. Funktioniert der Telefonbuchzugriff, ist dafür kein zusätzlicher Einrichtungsschritt nötig.

Der Callmonitor wird dagegen gezielt aktiviert. Dabei ist wichtig zu wissen: Er stellt Anrufmetadaten über einen separaten Zugang ohne eigene Benutzeranmeldung bereit. Rechner, die diesen Zugang erreichen können, können die Ereignisse empfangen.

Deshalb gehört diese Funktion in ein vertrauenswürdiges Heimnetz. Eine Portweiterleitung ins Internet ist dafür weder erforderlich noch vorgesehen.

Wo das Projekt aktuell steht

Die grundlegenden Funktionen wurden mit einer FRITZ!Box 7690 und FRITZ!OS 8.25 sowie Ubuntu 24.04.4 LTS und Python 3.12.3 geprüft: Telefonbuchzugriff, Erkennen ausgehender Wählversuche und gezielte Kontaktänderungen.

Automatisierte Tests prüfen unter anderem Dublettenvermeidung, Verlängerung, Ablaufbereinigung und den Erhalt manuell veränderter Kontakte.

Der vollständige Dienstbetrieb und längere Betriebserfahrungen stehen noch aus. Rufpass ist deshalb ein früher Teststand. Andere FRITZ!Box-Modelle sind nicht automatisch durch diese Tests abgedeckt.

Rufpass benötigt weiterhin eine passende Sperrregel in der Box. Es erkennt außerdem keine abweichende Rückrufnummer: Wenn eine Praxis über ihre Zentrale zurückruft, obwohl ich zuvor eine andere Durchwahl gewählt habe, bleibt das eine andere Nummer.

Quellcode und Einrichtung

Den Quellcode, eine Installationsanleitung und den Changelog gibt es im Repository:

Rufpass auf GitHub

Die Lizenz erlaubt Nutzung und Anpassung auch innerhalb eines eigenen Betriebs. Die entgeltliche Weiterverwertung von Rufpass selbst wird durch die Kombination aus Apache-2.0 und Commons Clause eingeschränkt.

Entstanden ist das Projekt aus einem sehr konkreten Wunsch: Die Ruhe vor Werbeanrufen behalten und trotzdem für Menschen erreichbar sein, die ich gerade selbst angerufen habe.

Für dich vielleicht ebenfalls interessant …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert