
Wer eine NFON-Telefonanlage betreibt, kennt das Problem: Die NFON-Plattform bietet keine persistente Anrufhistorie über die API. Anrufe sind nur live sichtbar – wer nicht mitschaut, verpasst die Daten. Genau für diesen Anwendungsfall wurde bei Stylite AG der NFON Call Monitor entwickelt: Ein Open-Source-Dashboard, das sich per SSE-Stream an die NFON CTI API hängt und alle Anrufe in Echtzeit anzeigt und dauerhaft speichert.
Was macht der NFON Call Monitor?#
Der Call Monitor verbindet sich mit der NFON CTI API und bietet:
- Live-Dashboard: Alle ein- und ausgehenden Anrufe erscheinen sofort per WebSocket – ohne Neuladen der Seite.
- Extension-Karten: Jede Nebenstelle wird mit Status (online/offline), aktuellem Anruf, Gesprächsdauer und Idle-Zeit angezeigt.
- Persistente Anrufhistorie: Da NFON keine History-API besitzt, hält das Backend eine 24/7-Verbindung zum SSE-Stream und speichert jeden Anruf in einer SQLite-Datenbank.
- Click-to-Dial: Anrufe direkt aus dem Dashboard starten – per Drag & Drop oder Clipboard-Button.
- CRM-Integration: Optionale Anbindung an ProjectFacts für automatische Kontakterkennung neben Telefonnummern.

Technik im Überblick#
Der Stack ist bewusst schlank gehalten:
| Komponente | Technologie |
|---|---|
| Backend | Express.js, TypeScript, Node.js 22 |
| Frontend | React 19, Vite, Tailwind CSS |
| Echtzeit | Socket.IO + Server-Sent Events (SSE) |
| Datenbank | SQLite (WAL-Modus, Node.js built-in) |
| Deployment | Docker (Multi-Stage, amd64/arm64) |
Keine externe Datenbank, kein Redis, kein Overhead – ein einzelner Container reicht.
Features im Detail#
Anrufhistorie mit Filtern#
Die Historie bietet alles, was NFON selbst vermissen lässt:
- Filterung nach Nebenstelle, Status (angenommen/verpasst/besetzt/abgelehnt), Richtung und Zeitraum
- Volltextsuche nach Telefonnummer, Extension-Name oder CRM-Kontaktname
- Paginierung mit konfigurierbarer Seitengröße
- One-Click-Copy für Telefonnummern
Kontakterkennung#
Die optionale ProjectFacts-Anbindung erkennt Anrufer in drei Stufen:
- Exakter Treffer – Kontaktname wird in Blau angezeigt
- Fuzzy-Match – Bei deutschen Festnetznummern mit bis zu 3 Ziffern Toleranz (markiert mit
?) - Fallback – Ortsname aus einer Datenbank mit über 5.200 deutschen Vorwahlen der Bundesnetzagentur
Adaptive Presence-Erkennung#
Das Polling-Intervall für den Extension-Status passt sich automatisch an die Aktivität an: Bei vielen Anrufen wird alle 3 Sekunden gepollt, in ruhigen Phasen nur alle 60 Sekunden.
Schnellstart#
# Repository klonen und konfigurieren
git clone https://github.com/styliteag/nfon-call-monitor.git
cd nfon-call-monitor
cp .env.example .env
# .env mit NFON CTI-Zugangsdaten befüllen
# Dashboard-Passwort hashen
npm run hash-password mein-sicheres-passwort
# Abhängigkeiten installieren
npm install && cd frontend && npm install && cd ..
# Entwicklungsserver starten
npm run dev
Das Dashboard ist dann unter http://localhost:5173 erreichbar.
Docker-Deployment#
docker build -f docker/Dockerfile -t nfon-monitor .
docker run -p 3001:3001 --env-file .env nfon-monitor
Warum Open Source?#
NFON bietet zwar eine CTI API, aber keine fertige Lösung für die Fragen, die im Tagesgeschäft immer wieder auftauchen: Wer hat vorhin angerufen? Wie lange dauerte das Gespräch? Hat jemand den Anruf angenommen? Der Call Monitor füllt diese Lücke – und als Open-Source-Projekt kann jeder es an die eigenen Anforderungen anpassen.
Mitmachen und Support#
Das Projekt lebt von der Community. Pull Requests – ob Bugfixes, neue Features oder Verbesserungen – sind jederzeit willkommen. Wer Unterstützung bei der lokalen Installation benötigt oder eine Erweiterung um individuelle Funktionen wünscht, kann sich gerne direkt an uns wenden. Stylite AG bietet auch professionellen Support für Einrichtung, Anpassung und Betrieb des Call Monitors an.
Fazit#
Der NFON Call Monitor löst ein konkretes Problem: Anrufübersicht und -historie für NFON-Telefonanlagen, die die Plattform selbst nicht bietet. Mit rund 3.400 Zeilen Code, einem schlanken Stack und Docker-Support ist das Tool schnell produktiv einsetzbar.
Repository: nfon-call-monitor – Feedback und Pull Requests sind willkommen.
Für Fragen zur Installation, individuellen Anpassungen oder Support-Anfragen stehen wir gerne zur Verfügung.
Wim Bonis ist CTO bei Stylite AG und beschäftigt sich schwerpunktmäßig mit Storage, Infrastruktur und Open-Source-Tooling.
