KFritz is a KDE Plasma 6 widget that connects to your AVM FRITZ!Box and shows real-time incoming calls: caller name and number, call history, and KDE notifications — with a sound, and quick actions to add unknown callers to your phonebook or block them.
(FRITZ!Box is a popular router/modem brand in Germany and other parts of Europe, with built-in telephony features.)
- Real-time call monitoring via the FritzBox's CallMonitor port.
- Caller name resolution from one or more FritzBox phonebooks (TR-064) — configure which phonebook(s) to check under Settings › Contacts sources.
- Blocklist support: a number found in any configured blocklist
phonebook is fully silent (no popup, no sound) and shows red/struck-through
in the call list — instead of a designated "block all numbers" phonebook,
since AVM's built-in call-barring feature caps out at 32 entries, too few
for an internet-sourced spam list. Understands AVM's wildcard entries
(a trailing
*on a number = prefix match), common in bulk spam lists. - Sound + KDE notification on incoming calls (skipped for blocked ones).
- Quick actions on an unrecognized caller: "Add to Contacts" (with a name field and number type) or "Add to Blocklist" — each writes to one designated phonebook per role, so a WebDAV-synced blocklist that gets overwritten on every sync can stay a read-only source while a hand-maintained one takes new entries.
- Missed-call catch-up: calls that came in while the widget wasn't running are fetched from the FritzBox's own call list on startup, with an unread-count badge on the panel icon (clears when you open the widget).
- Phonebook auto-sync: optionally re-downloads every assigned Contacts/Blocklist phonebook on a daily or weekly schedule, so a stale local cache doesn't silently miss numbers a WebDAV sync picked up since the last manual refresh.
- Compact and full Plasma representations.
- KDE Plasma 6.1+, Qt ≥ 6.7, KDE Frameworks ≥ 6.10
- A FRITZ!Box with:
- CallMonitor enabled (see below)
- TR-064 enabled
- A user account with phonebook/call-list read permission
Grab the .deb/.rpm from the
latest release, or:
# openSUSE Tumbleweed
sudo zypper ar -f https://download.opensuse.org/repositories/home:/Agundur/openSUSE_Tumbleweed/home:Agundur.repo
sudo zypper --gpg-auto-import-keys ref
sudo zypper in kfritz# Debian 13 (Trixie) / compatible — download the .deb from the release page, then:
sudo apt install ./kfritz_*.debUnlike the other Agundur-KDE plasmoids, KFritz has a real compiled C++
plugin (phonebook/TR-064 handling), so there's no .plasmoid/GHNS install —
building from source needs the full toolchain:
git clone https://github.com/Agundur-KDE/kfritz.git
cd kfritz
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
sudo make installFritzOS 7.57 and 8.03.
🛒 FRITZ!Box 6690 Cable 🛒 FRITZ!Box 6660 Cable
KFritz uses two interfaces of the FRITZ!Box:
- The CallMonitor on port 1012 for incoming call events
- The TR-064 API for phonebook name resolution, blocklist checks, and the "Add to Contacts"/"Add to Blocklist" actions
Connect a telephone to your FRITZ!Box (DECT handset or analog), then dial:
#96*5*
This enables the call monitor on port 1012 (persists across reboots).
To disable it again: #96*0*.
Newer FritzOS versions don't have a separate "allow TR-064" toggle anymore —
it's available as soon as a FRITZ!Box user with the right permission (below)
exists. Older versions: FRITZ!Box web interface (http://fritz.box) →
Home Network › Network › Network Settings → "Allow access for applications
(TR-064)".
System › FRITZ!Box Users → Add User:
- Username:
kfritz(recommended) - Permissions: only "Sprachnachrichten, Faxnachrichten, FRITZ!App Fon und Anrufliste" ("Voice messages, faxes, FRITZ!App Fon and call list") — don't grant "FRITZ!Box Settings", it's not needed and is full admin access.
This user authenticates KFritz's TR-064 calls (phonebook download, blocklist
checks, adding contacts). Run ./setup_test.sh (see below) to verify the
permission is actually sufficient before filing a bug.
Right-click the widget → Configure KFritz:
- Network: Host (usually
192.168.178.1), Port (49000default), Username/Password (the dedicated user created above) - Phonebook: country code, then assign one or more downloaded phonebooks to the "Contacts" role (used for caller ID) and/or the "Blocklist" role (checked first on every call) — each role has one designated write target for the quick-action buttons
Only needs to be done once, settings persist across reboots.
Before filing a bug, run the included diagnostic script — it checks the CallMonitor port, the TR-064 port, and phonebook/call-list access against your box directly, independent of the widget:
./setup_test.sh
# or non-interactively: ./setup_test.sh <host> <login> <password>errorCode 502 "XML error" on the phonebook/call-list check, even with
correct permissions, usually means the box isn't actually handling telephony
— e.g. it's running as a Mesh repeater / IP-client (DECT only) while a
third-party VoIP provider (Sipgate etc.) handles calls elsewhere. AVM's
X_AVM-DE_OnTel service isn't active on that box in that case; this isn't a
KFritz bug.
Open an issue: KFritz Issues
Fork and adapt freely.
GPL-3.0-or-later


