Voximplant
Leiten Sie Voximplant-Anrufe über Media Streams aus einem VoxEngine-Szenario an ElevenAgents weiter.
Die Voximplant-Integration ist nur eingeschränkt verfügbar und wird pro Workspace aktiviert. Kontaktieren Sie Ihren ElevenLabs-Ansprechpartner, bevor Sie Kundenanrufe weiterleiten.
Überblick
Die Voximplant-Integration verbindet einen Anruf in einem VoxEngine-Szenario über einen WebSocket direkt mit einem Agenten in ElevenAgents und verwendet dazu Voximplant Media Streams. Voximplant verwaltet die Telefonie: Es wählt oder nimmt den Anruf entgegen und entscheidet, was danach geschieht. ElevenAgents verwaltet die Konversation. Es ist kein SIP-Trunk und keine Middleware erforderlich.
Eingehende und ausgehende Anrufe funktionieren gleich: Sobald der Anruf verbunden ist, öffnet das Szenario pro Anruf einen WebSocket zu ElevenLabs. Wenn die Konversation endet, sendet ElevenLabs dem Szenario ein einzelnes Entscheidungsereignis, das angibt, ob der Anrufer an einen Menschen übergeben, aufgelegt oder der Anruf als Timeout behandelt werden soll.
So funktioniert die Integration
- Ihr VoxEngine-Szenario nimmt einen eingehenden Anruf entgegen oder tätigt einen ausgehenden Anruf.
- Das Szenario öffnet einen WebSocket zum ElevenLabs-Endpunkt für Ihren Agenten und authentifiziert sich mit einem ElevenLabs-API-Schlüssel als Bearer-Token.
- Das Szenario startet den Media Stream mit
call.sendMediaTo()und übergibt dabei allecustomParameters. ElevenLabs wandelt jeden Parameter in eine dynamische Variable um und antwortet mit einem eigenenstart. - Voximplant und ElevenLabs tauschen in
media-Nachrichten 16-Bit-lineares PCM-Audio mit 8 kHz aus. - Wenn die Konversation endet, sendet ElevenLabs den Rest der letzten Äußerung des Agenten, ein
benutzerdefiniertes Ereignis
elevenlabs-decisionund einestop-Nachricht. Das Szenario schließt dann den WebSocket und handelt entsprechend der Entscheidung.
Anforderungen
Stellen Sie vor Beginn sicher, dass Sie Folgendes haben:
- Ein Voximplant-Konto mit einer Anwendung, einer Telefonnummer oder ausgehenden Anrufen sowie Berechtigung zum Bearbeiten von Szenarien.
- Einen ElevenLabs-Workspace mit aktivierter Voximplant-Integration.
- Einen ElevenLabs-Agenten und einen dedizierten API-Schlüssel.
ElevenLabs konfigurieren
Agenten erstellen oder auswählen
Erstellen Sie den Agenten in ElevenAgents. Geben Sie ihm eine erste Nachricht, wenn er sprechen soll, sobald der Anruf verbunden ist. Die Audioformate werden von der Integration festgelegt. Die für den Agenten konfigurierten Formate werden für Voximplant-Anrufe nicht verwendet.
Anruf beenden aktivieren
Aktivieren Sie unter Agent → Tools → Systemtools Anruf beenden, damit der Agent die Konversation abschließen kann. Der Grund, den der Agent beim Beenden des Anrufs angibt, wird mit der Entscheidung an Ihr Szenario gesendet.
Voximplant-Weiterleitungsregel hinzufügen (optional)
Damit der Agent den Anrufer an einen Menschen übergeben kann, geben Sie ihm das Systemtool An Nummer weiterleiten mit einer
Weiterleitungsregel, deren Provider-Konfiguration voximplant lautet. Die Regel hat kein Ziel: Die
Konversation endet mit einer transfer-to-agent-Entscheidung, und Ihr Szenario leitet den Anrufer weiter. Weiterleitungsregeln
werden über die API konfiguriert. Fügen Sie das Tool mit einem PATCH für den Agenten hinzu:
Senden Sie das vollständige built_in_tools-Objekt des Agenten, einschließlich bereits vorhandener Tools wie end_call.
Die Option, die der Agent zurückgibt, ist das feste Token voximplant. Daher reicht eine Voximplant-Regel pro Tool aus.
Telefonnummern und SIP-URIs, die für andere Provider konfiguriert sind, werden bei Voximplant-Anrufen nicht angeboten.
Weiterleitungsregeln werden über die API verwaltet. Konfigurieren und aktualisieren Sie das Tool An Nummer weiterleiten eines Agenten, der sie verwendet, wie oben beschrieben über die API; der Tool-Editor im Dashboard arbeitet mit der Weiterleitungsliste pro Nummer.
Dedizierten API-Schlüssel erstellen
Erstellen Sie einen API-Schlüssel im selben Workspace wie der Agent und beschränken Sie seinen Umfang auf ElevenAgents. Um
nur Verbindungen von Voximplant zu akzeptieren, beschränken Sie die zulässigen IP-Adressen des Schlüssels auf die Media-
Server von Voximplant, die Voximplant unter
https://api.voximplant.com/getMediaResources?with_mediaservers auflistet.
WebSocket-URL notieren
Das Szenario verbindet sich mit einer URL, die Ihre Agenten-ID enthält:
Um einen Branch des Agenten festzulegen, fügen Sie ?branch_id=<branch_id> hinzu.
Wenn sich Ihr ElevenLabs-Konto in einer isolierten Datenresidenzumgebung befindet, ersetzen Sie <region> durch Ihren
Regionscode. Verfügbare Regionen finden Sie unter Datenresidenz.
Voximplant einrichten
Anwendung erstellen
Öffnen Sie im Voximplant Control Panel Applications
und klicken Sie auf Create application. Geben Sie einen Namen ein, zum Beispiel elevenlabs-agent, und klicken Sie auf
Create.

API-Schlüssel als Secret speichern
Öffnen Sie in der Anwendung Secrets und klicken Sie auf Add secret. Nennen Sie es ELEVENLABS_API_KEY, fügen Sie
den API-Schlüssel, den Sie für den Workspace des Agenten erstellt haben, unter Value ein und klicken Sie auf Add secret. Das
Szenario liest ihn mit VoxEngine.getSecretValue(), sodass der Schlüssel nie im Szenariocode erscheint.

Szenario erstellen
Öffnen Sie Scenarios, klicken Sie auf Create scenario, nennen Sie es elevenlabs_agent, fügen Sie den folgenden Code ein,
ersetzen Sie die Agenten-ID in ELEVENLABS_URL und klicken Sie auf Save. Das Szenario nimmt einen eingehenden Anruf entgegen,
streamt ihn an den Agenten und handelt nach der Entscheidung, wenn die Konversation endet. Für einen ausgehenden Anruf öffnen Sie
den WebSocket im Handler CallEvents.Connected des von Ihnen getätigten Anrufs.

Anrufe an das Szenario weiterleiten
Öffnen Sie Routing, klicken Sie auf Create rule, geben Sie ihr einen Namen und weisen Sie das Szenario elevenlabs_agent
zu. Das Standardmuster .* leitet jeden Anruf an die Anwendung über das Szenario weiter;
beschränken Sie es auf eine Telefonnummer, wenn die Anwendung auch andere Anrufe verarbeitet. Um eine Telefonnummer weiterzuleiten,
fügen Sie sie unter Numbers zur Anwendung hinzu.

Testanruf tätigen
Sie können die Anwendung ohne Telefonnummer im Browser anrufen:
-
Öffnen Sie Users, klicken Sie auf Create user und erstellen Sie einen Benutzer mit Passwort.

-
Klicken Sie unter Routing auf Test tools und dann auf Softphone. Melden Sie sich als dieser Benutzer an, erlauben Sie den Mikrofonzugriff, geben Sie ein beliebiges Ziel ein und rufen Sie an. Der Agent antwortet mit seiner ersten Nachricht.
-
Öffnen Sie nach Ende des Anrufs Call history. Jeder Anruf führt neben dem Anruf selbst eine WebSocket-Verbindung auf. Klicken Sie auf View log, um die Sitzung anzuzeigen.

Das Protokoll zeigt die von ElevenLabs gesendete Entscheidung, das Schließen des WebSockets und die anschließende Aktion des Szenarios. In diesem Beispiel bat der Anrufer um eine Person, daher lautet die Entscheidung
transfer-to-agentmit dem vom Agenten angegebenen Grund.
Handeln Sie nach dem Ereignis elevenlabs-decision, nicht nach MEDIA_ENDED. Voximplant löst MEDIA_ENDED nach
etwa einer Sekunde ohne Audio von ElevenLabs aus. Das kann mitten in einer Konversation passieren.
Dynamische Variablen
Jeder Schlüssel in customParameters wird zu einer dynamischen Variable mit demselben Namen. Werte, die keine
Strings sind, werden in Text umgewandelt. Beispielsweise wird aus true der Wert "true". customParameters kann ein
Objekt oder ein JSON-kodierter String sein. Schlüssel, die mit system__ oder integration__ beginnen, sind reserviert und
werden verworfen.
Entscheidungsereignisse
Wenn die Konversation endet, sendet ElevenLabs vor seiner stop-Nachricht genau eine Entscheidung:
Wenn das Szenario zuerst stop sendet oder den WebSocket schließt, beispielsweise weil der Anrufer aufgelegt hat,
sendet ElevenLabs keine Entscheidung.
Audio
Voximplant und ElevenLabs tauschen in beide Richtungen 16-Bit-monaurales lineares PCM mit 8 kHz aus. ElevenLabs gibt das Audio des Agenten nahezu in Echtzeit aus. Wenn der Anrufer den Agenten unterbricht, werden höchstens etwa 0,4 Sekunden der unterbrochenen Antwort weiter abgespielt.
Authentifizierungsfehler
ElevenLabs schließt den WebSocket mit Code 1008 und dem Grund bad auth token, wenn der Header
Authorization fehlt oder fehlerhaft ist, der API-Schlüssel ungültig ist oder nicht von der IP-Adresse der
Verbindung verwendet werden darf, der Schlüssel zu einem anderen Workspace gehört oder der Benutzer des Schlüssels nicht auf einen
Agenten mit aktivierter Authentifizierung zugreifen kann.
Einschränkungen und nicht unterstützte Funktionen
- Client-Tools und das Systemtool Tastenton wiedergeben werden nicht unterstützt. An Nummer weiterleiten funktioniert nur über eine Voximplant-Weiterleitungsregel; das Szenario entscheidet, wohin der Anrufer weitergeleitet wird.
- Konfigurationsüberschreibungen wie eine andere erste Nachricht können nicht aus dem Szenario übergeben werden; nur dynamische Variablen sind möglich.
- Datenerfassungsergebnisse werden nicht an das Szenario gesendet. Verwenden Sie dafür den Post-Call-Webhook.