Kompetenz · Telefonie und Contact Center
Die Telefonschicht zwischen Ihrem Betreiber und demjenigen, der antwortet — Mensch oder Agent.
Wir bauen die Telefonzentrale: SIP-Trunks, zeitbasierte Routing-Regeln, aus der Datenbank gelesene IVR-Menüs, Warteschlangen, Übergabe an einen Menschen, Aufzeichnung und Analyse der Anrufe. Der Anruf wird zu einer Aufnahme mit Transkript und Zusammenfassung, nicht zu einer Erinnerung.
Bereits gebautTrei implementări proprii, citate mai jos. (1) Stratul Asterisk din platforma Kallina: 5.522 de linii de configurație de dialplan, scripturi AGI și punți audio în `asterisk/`, plus șabloane de trunk generate automat per număr. (2) `asterisk-manager` — un serviciu separat care administrează cozile, trunkurile și fluxul RTP prin interfața de management a centralei. (3) Middleware-ul pentru centrala virtuală a unui operator, care a rulat în producție: commitul de reconciliere din 14 iulie 2026 aduce în depozit cod care rulase pe server și era cu circa 40 de zile înaintea git-ului. Rezerva, spusă înainte să întrebi: gazda SIP prin care trec liniile noastre de test nu răspunde — verificat azi, 06.09.2026, fără răspuns la ping și fără răspuns pe HTTP. Nu prezentăm un număr de demonstrație pe care să suni acum, pentru că nu l-am putea ridica în fața ta.
Zwischen Ihrem Telefonanbieter und demjenigen, der tatsächlich antwortet — ein Mensch oder ein Voice-Agent — muss es eine Schicht geben, die Entscheidungen trifft. Wer den Anruf um 23:40 entgegennimmt. Was passiert, wenn niemand antwortet. Wohin der Anruf geht, wenn der Kunde „einen Menschen“ verlangt. Was von dem Gespräch übrig bleibt, nachdem es beendet wurde. Diese Schicht ist eine Telefonanlage, und wir bauen sie so, dass sie dem Unternehmen gehört, nicht dem Sprachanbieter: Wenn Sie morgen die Engine des Agenten wechseln, bleiben die Routing-Regeln, die Warteschlangen und die Historie bei Ihnen.
Konkret, was wir gebaut haben: zwölf Dialplan-Dateien — Produktion, IVR, Warteschlange, Transfer, Voicemail, Umleitung, ausgehende Anrufe mit Agent — vier AGI-Skripte in Python und zwei Audio-Bridges, insgesamt 5.522 Zeilen. Die IVR-Engine hat die Menüs nicht in der Datei geschrieben: Sie liest sie über ein AGI-Skript aus der Datenbank und gibt eine von sechs Entscheidungen zurück — zu einem Agenten, zu einem anderen Menü, zu einer Warteschlange, Transfer zu einer externen Nummer, abschließende Nachricht oder Schließung. Die Warteschlangen heißen nach ihrer Kennung und haben keine in der Konfiguration geschriebenen Mitglieder: Sie werden von außen hinzugefügt und entfernt, über die Management-Schnittstelle, was bedeutet, dass ein Operator ohne Neustart der Telefonanlage in eine Warteschlange hinein- oder aus ihr herausgehen kann.
Das Routing hat echte Regeln, nicht nur ein einziges „rufen Sie hier an“: Geschäftszeiten und Zeitzone, Nachtbetrieb wie 22:00 → 06:00 und Prioritätsabgleich — der SIP-Header `Diversion`, der die ursprüngliche Nummer trägt, von der der Anruf weitergeleitet wurde, dann die eigene Nummer, dann die Ersatzregel. Trunks werden pro Nummer generiert, mit einem aus Anbieter und Nummer aufgebauten Namen, durch eine Konfigurationsfunktion — nicht per Hand auf jeder neuen Zeile geschrieben.
Was aus dem Anruf herauskommt, ist genauso wichtig wie der Anruf. Für die Leitung, die mit der virtuellen Telefonzentrale eines Betreibers verbunden ist, haben wir ein Python-Middleware gebaut, das die Liste der Aufzeichnungen jede Minute abfragt, mit einer breiten Abgleichung alle sechs Stunden, damit ein Netzwerkausfall nichts verliert, und einem Scan alle drei Minuten für verpasste Anrufe — diese haben keine Aufzeichnung und wären sonst vollständig unsichtbar. Jede Aufzeichnung wird heruntergeladen, transkribiert, analysiert und in die Anrufanalyse gespiegelt, und der verpasste Anruf wird zu einer Warnung. Die Idempotenz liegt in einem Redis-Set, damit dieselbe Aufzeichnung nicht zweimal verarbeitet wird.