Ascultă
Versteht das Anliegen im Kontext des Gesprächs und der Regeln des Unternehmens.
Agenți vocali AI Platformă
Wir bauen Agenten, die Anrufe annehmen und selbst führen, das Wissen des Unternehmens nutzen und mit Ihren Systemen arbeiten. Von der ersten Frage bis zur vollständigen Anfrage, einer Bestätigung oder der Übergabe an eine Kollegin.
Kallina
Versteht das Anliegen im Kontext des Gesprächs und der Regeln des Unternehmens.
Fragt vor der Antwort die Wissensdatenbank und die freigegebenen Integrationen ab.
Vervollständigt die Daten, führt die erlaubte Aktion aus oder übergibt das Gespräch an einen Menschen.
Häufige Fragen, Aufnahme von Anliegen und Rückruf an alle, die darum gebeten haben.
Bestätigungen und Abstimmung, mit den Daten aus dem angebundenen Bestellsystem.
Sammelt die nötigen Angaben. Kalenderzugriff und die Buchung selbst werden je Integration festgelegt.
Szenarien, Rufnummer, Sprachen und Aktionen werden für jede Einführung einzeln konfiguriert. Das Team behält die Möglichkeit, das Gespräch zu übernehmen.
Kallina im Detail
Kallina ist die Plattform, auf der wir Agenten bauen, die am Telefon und auf der Webseite sprechen. Ein Agent hat eine geschriebene Rolle, eine freigegebene Wissensdatenbank, einen Satz Werkzeuge, die er aufrufen darf, und eine Grenze, hinter der er das Gespräch an einen Menschen übergibt. Das Gespräch endet nicht im Transkript: Ein Anruf hat Dauer, Kosten pro Anbieter, Aufzeichnung und Auswertung, alles mit dem Konto des Unternehmens verknüpft.
Es gibt nicht nur eine Sprach-Engine. In der Agentenkonfiguration wählen Sie zwischen ElevenLabs Conversational AI, OpenAI Realtime, Gemini Live oder „auto“, wobei Kallina den Anbieter nach Sprache, Last und Verfügbarkeit auswählt. Darüber wählen Sie getrennt das Textgehirn — der Katalog im Code hat 78 Einträge von OpenAI, Google, Anthropic, xAI und ElevenLabs, jeder mit Latenz und Kosten pro Minute in der Oberfläche, damit die Wahl informiert ist und nicht vom Hörensagen kommt.
Die Telefonie betreiben wir selbst, sie ist nicht beim Sprachanbieter gemietet. Die Anrufe laufen über ein eigenes Asterisk, mit Routing nach Öffnungszeiten und Zeitzone, Nachtplänen (zum Beispiel 22:00 → 06:00) und Zuordnung nach Priorität: der SIP-Diversion-Header, dann die Kallina-Nummer, dann die Ersatzregel. Für OpenAI Realtime gibt es eine AudioSocket-Bridge, die den Codec in beide Richtungen wandelt, g711_ulaw ↔ PCM16.
In `AGENT_PROVIDERS` stehen vier Optionen: `elevenlabs` (ConvAI), `openai-realtime`, `gemini-live` und `auto`. Für die Sprachsynthese in anderen Sprachen als Englisch ist `eleven_flash_v2_5` die Voreinstellung — 32 Sprachen, rund 75 ms Latenz; die qualitativ bessere Alternative `eleven_turbo_v2_5` kostet rund 250 ms. Die Wahl ist nicht im Code versteckt, sie ist ein Feld in der Agentenkonfiguration.
78 Modelle in `LLM_MODELS`, in der Oberfläche nach Anbieter gruppiert, zusammen mit der gemessenen Latenz und den Kosten pro Minute — von `gpt-5-nano` bei rund 806 ms und etwa 0,0004 $/Min. bis `claude-sonnet-4-6` bei rund 1,55 s und etwa 0,0225 $/Min. Ein Kunde, der fragt „warum antwortet das so langsam“, bekommt eine Antwort mit Zahlen und keine Meinung.
Die Rufumleitung wird nach Arbeitszeiten und Zeitzone konfiguriert, mit Unterstützung für Nachtpläne und Zuordnung nach Priorität (SIP-Diversion-Header → Kallina-Nummer → Ersatzregel). Die Bridge `openai-realtime-bridge` übernimmt die AudioSocket-Wandlung zwischen g711_ulaw und PCM16 für den bidirektionalen Audiostrom.
`<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>`. Die Seite erfährt nie, welcher Agent antwortet, und hält keinen Anbieterschlüssel: Sie fordert bei Kallina eine Sitzung an, und Kallina liefert eine kurzlebige signierte URL zurück. Es gibt auch den Modus `data-mode="inline"`, in dem das Embed überhaupt nichts zeichnet und die Seite ihre eigene Oberfläche über die API `start()` / `stop()` / `toggle()` / `on(event, fn)` baut.
Anrufe im Stapel mit 1–10 gleichzeitigen Leitungen, Kontaktimport aus CSV, Wiederholungslogik, Verfolgung in Echtzeit mit Pause, Fortsetzen und Stopp, dazu Follow-up per SMS.
Die Agentenkonfiguration nimmt 32 Sprachen an (`LANGUAGES`), die vollständige Sprachkarte der Plattform hat 41 Einträge, und das Verwaltungspanel ist in 20 übersetzt (`src/i18n/locales`). Rumänisch ist die Voreinstellung in `DEFAULT_VALUES`.
Daten und Betrieb
Von der Sondierung zur Einführung
Ein Szenario mit klarem Eingang und klarem Ausgang — angenommener Anruf am Empfang, Bestellbestätigung, Anrufkampagne. Wir schreiben ausdrücklich auf, was der Agent nicht tun darf und auf welchem Weg er das Gespräch an einen Menschen übergibt.
Die Nummer läuft auf den SIP-Trunk unseres Asterisk. Eingehende und ausgehende Anrufe werden getrennt getestet, weil sie getrennt kaputtgehen: eine Sperre des Netzbetreibers für ausgehende Anrufe lässt die eingehenden einwandfrei laufen.
`scripts/verify-voice-path.mjs` geht genau den Weg eines Browsers — die Konfigurationszeile, `get-widget-config`, dann `widget-voice-session` — und hält bei der signierten URL an, ohne das Websocket zu öffnen. Es läuft auf einem einzelnen Widget oder auf allen mit aktiver Sprache, mit 1–3 parallel, und liefert einen Exit-Code, passt also direkt in einen Cron.
Sie wählen zwischen ElevenLabs Conversational AI, OpenAI Realtime und Gemini Live, oder Sie lassen „auto“ stehen und Kallina entscheidet nach Sprache und Verfügbarkeit. Für die Sprachsynthese in anderen Sprachen als Englisch ist das Modell `eleven_flash_v2_5` voreingestellt — 32 Sprachen, um die 75 ms; wenn Sie höhere Qualität wollen und mehr Verzögerung akzeptieren, liegt `eleven_turbo_v2_5` bei etwa 250 ms. Die Stimmen von OpenAI Realtime sind zehn, und ihre Engine reicht bis `gpt-realtime-2.1`.
Eine Zeile: `<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>`, als normales Skript geladen, nicht als Modul. Die Datei wird heute ausgeliefert und ist 13.762 Byte groß. Wenn Sie Ihre eigene Oberfläche wollen, zeichnet `data-mode="inline"` nichts und lässt Ihnen `start()`, `stop()`, `toggle()` und die Ereignisse `state`, `message`, `error`. Achten Sie auf den Host: die Datei liegt auf `app.kallina.info`, nicht auf `kallina.info` — das sind zwei Anwendungen auf zwei verschiedenen Servern.
Nein. Die Reihenfolge in `embed.js` ist: SDK laden, das Mikrofon mit `getUserMedia({audio:true})` anfragen und erst danach `widget-voice-session` aufrufen. Verweigert der Mensch das Mikrofon, entsteht die Sitzungsanfrage gar nicht erst, es wird also keine signierte URL ausgestellt und nichts verbraucht.
Ja — Anrufe im Stapel, 1–10 gleichzeitig, Kontakte aus CSV, Wiederholungen und Follow-up per SMS. Ausgehende Anrufe hängen aber vom Netzbetreiber ab, nicht nur von uns: In unserem Störungsregister ist ein Fall dokumentiert, in dem die Vermittlungsstelle des Betreibers bei allen ausgehenden Anrufen `403 Forbidden` zurückgab, bei unveränderter Konfiguration auf unserer Seite und mit normal funktionierenden eingehenden Anrufen. Deshalb testen wir ausgehende Anrufe getrennt, bevor wir eine Kampagne zusagen.
Die Agentenkonfiguration nimmt 32 Sprachen an, die interne Sprachkarte hat 41 Einträge, und das Verwaltungspanel ist in 20 übersetzt. Rumänisch ist die Standardsprache neuer Agenten.
Nein, und das sollte man wissen, bevor man einen Start plant. Der GitHub-Workflow im Repository zielt auf ein Supabase-Cloud-Projekt, das gelöscht wurde, „Push auf main = Veröffentlichung“ stimmt also seit dem Umzug auf eigene Infrastruktur nicht mehr. Die tatsächliche Veröffentlichung läuft über SSH, mit Kopieren und Neustart. Praktische Folge: eine dringende Änderung braucht einen Menschen, nicht nur einen Commit.
Die Übergabe an einen Menschen ist Teil des Szenarios, keine Ausnahme. Jeder Agent hat geschriebene Grenzen und einen auf der Telefonie konfigurierten Übergabeweg; im Gespräch selbst gibt es Guardrails und Bewertungskriterien, gerade damit ein Fall außerhalb der Rolle gestoppt und nicht improvisiert wird.
Anschauliches Beispiel
Ein Nutzungsszenario, ohne Kundendaten und ohne zugeschriebene Geschäftsergebnisse.
Jemand ruft um 23:40 die Nummer des Unternehmens an, außerhalb der Zeiten des Empfangs.
Asterisk wendet die Nachtplanregel an (zum Beispiel 22:00 → 06:00) und ordnet nach Priorität zu: der SIP-Diversion-Header, dann die Kallina-Nummer, dann die Ersatzregel. Der Nachtagent antwortet über den in der Konfiguration gewählten Anbieter, klärt das Anliegen und ruft die Werkzeuge auf, die er verwenden darf.
Der Anruf bleibt im Verlauf mit Transkript, Audioaufzeichnung, Dauer und nach Anbieter aufgeschlüsselten Kosten. Was die Rolle des Agenten übersteigt, wird gestoppt und weitergegeben, statt improvisiert zu werden.
Ce este necesar:Numărul conectat pe trunkul SIP al Asterisk-ului nostru, apelurile ieșite permise de operator dacă se dorește și sunat înapoi, plus un agent cu prompt, bază de cunoștințe aprobată și limite scrise.
Möglichkeiten der Zusammenarbeit
Sprachunterstützung auf freigegebenen Informationen, mit Übergabe an eine Mitarbeiterin und klaren Regeln zu Aufzeichnung und Aufbewahrung der Gespräche.
Wir definieren einen Pilotbetrieb rund um einen realen Prozess: Nutzer, Daten, Integrationen, Kosten und Abnahmekriterien. Die Ausweitung folgt nach der Auswertung des Ergebnisses.
Wir legen die Anforderungen an Barrierefreiheit, Hosting, Datenschutz und Interoperabilität fest. Jede Verbindung zu Diensten von AGE — Agenția de Guvernare Electronică, der moldauischen E-Government-Agentur — oder von STISC, dem Serviciul Tehnologia Informației și Securitate Cibernetică, dem staatlichen IT- und Cybersicherheitsdienst, erfordert die Prüfung von Berechtigung, Zugängen und Freigaben.
Das sind Anpassungsszenarien, keine Aussagen über bestehende Verträge oder Partnerschaften. Die vorgeschlagenen Funktionen werden im Arbeitsumfang des Projekts bestätigt.
Discută un pilotUn asistent conectat la informațiile afacerii tale, în canalele în care îți scriu clienții.
PlatformăGrai este direcția noastră de cercetare pentru sinteză vocală și modele adaptate limbilor folosite aici.
Cercetare & dezvoltareMegaforms explorează colectarea de răspunsuri prin formulare conversaționale, inclusiv răspunsuri vocale și transcriere.
Dezvoltare & demonstrațiiErzählen Sie uns von Ihrem Prozess. Gemeinsam legen wir fest, was sich zu bauen lohnt, was wir anbinden können und wie wir das Ergebnis prüfen.