Voximplant
Strömma Voximplant-samtal till ElevenAgents från ett VoxEngine-scenario via Media Streams.
Voximplant-integrationen är tillgänglig i begränsad omfattning och aktiveras per arbetsyta. Kontakta din representant på ElevenLabs innan du dirigerar kundtrafik.
Översikt
Voximplant-integrationen kopplar ett samtal i ett VoxEngine-scenario direkt till en agent i ElevenAgents via en WebSocket med Voximplant Media Streams. Voximplant ansvarar för telefonin: det ringer upp eller besvarar samtalet och avgör vad som händer efteråt. ElevenAgents ansvarar för samtalet. Ingen SIP-trunk eller mellanprogramvara krävs.
Inkommande och utgående samtal fungerar på samma sätt: när samtalet har kopplats upp öppnar scenariot en WebSocket per samtal till ElevenLabs. När samtalet avslutas skickar ElevenLabs en enda beslutshändelse till scenariot som anger om uppringaren ska kopplas till en människa, samtalet ska avslutas eller samtalet ska hanteras som en timeout.
Så fungerar integrationen
- Ditt VoxEngine-scenario besvarar ett inkommande samtal eller ringer upp ett utgående.
- Scenariot öppnar en WebSocket till ElevenLabs-slutpunkten för din agent och autentiserar med en ElevenLabs API-nyckel som bearer-token.
- Scenariot startar medieströmmen med
call.sendMediaTo()och skickar med eventuellacustomParameters. ElevenLabs omvandlar varje parameter till en dynamisk variabel och svarar med ett egetstart. - Voximplant och ElevenLabs utbyter 16-bitars linjärt PCM-ljud vid 8 kHz i
media-meddelanden. - När samtalet avslutas skickar ElevenLabs resten av agentens sista fras, en
elevenlabs-decision-anpassad händelse och ettstop-meddelande. Scenariot stänger sedan WebSocket-anslutningen och agerar utifrån beslutet.
Krav
Innan du börjar behöver du ha:
- Ett Voximplant-konto med en applikation, ett telefonnummer eller utgående samtal samt behörighet att redigera scenarier.
- En ElevenLabs-arbetsyta där Voximplant-integrationen är aktiverad.
- En ElevenLabs-agent och en dedikerad API-nyckel.
Konfigurera ElevenLabs
Skapa eller välj en agent
Skapa agenten i ElevenAgents. Ge den ett första meddelande om den ska tala så snart samtalet kopplas upp. Ljudformat ställs in av integrationen, så agentens konfigurerade format används inte för Voximplant-samtal.
Aktivera Avsluta samtal
Under Agent → Tools → System tools aktiverar du End call så att agenten kan avsluta samtalet. Skälet som agenten anger när den avslutar samtalet skickas till ditt scenario med beslutet.
Lägg till en Voximplant-överföringsregel (valfritt)
För att låta agenten koppla uppringaren till en människa ger du den systemverktyget Transfer to number med en
överföringsregel vars leverantörskonfiguration är voximplant. Regeln har ingen destination: samtalet
avslutas med beslutet transfer-to-agent och ditt scenario dirigerar uppringaren. Överföringsregler
konfigureras via API:t. Lägg till verktyget med en PATCH på agenten:
Skicka agentens fullständiga built_in_tools-objekt, inklusive verktyg som den redan har, till exempel end_call.
Alternativet som agenten skickar tillbaka är den fasta token voximplant, så en Voximplant-regel per verktyg
räcker. Telefonnummer och SIP-URI:er som konfigurerats för andra leverantörer erbjuds inte i Voximplant-
samtal.
Överföringsregler är en API-hanterad inställning. Konfigurera och uppdatera verktyget Transfer to number för en agent som använder dem via API:t enligt ovan; instrumentpanelens verktygsredigerare fungerar med överföringslistan per nummer.
Skapa en dedikerad API-nyckel
Skapa en API-nyckel i samma arbetsyta som agenten och begränsa den till ElevenAgents. För att endast acceptera
anslutningar från Voximplant begränsar du nyckelns tillåtna IP-adresser till Voximplants medieservrar,
som Voximplant listar på
https://api.voximplant.com/getMediaResources?with_mediaservers.
Notera WebSocket-URL:en
Scenariot ansluter till en URL som innehåller ditt agent-ID:
För att låsa en gren av agenten lägger du till ?branch_id=<branch_id>.
Om ditt ElevenLabs-konto finns i en isolerad dataresidensmiljö ersätter du <region> med din
regionskod. Se dataresidens för tillgängliga
regioner.
Konfigurera Voximplant
Skapa en applikation
I Voximplant-kontrollpanelen öppnar du Applications
och klickar på Create application. Ge den ett namn, till exempel elevenlabs-agent, och klicka på
Create.

Spara API-nyckeln som en hemlighet
I applikationen öppnar du Secrets och klickar på Add secret. Ge den namnet ELEVENLABS_API_KEY, klistra in
API-nyckeln som du skapade för agentens arbetsyta i Value och klicka på Add secret.
Scenariot läser den med VoxEngine.getSecretValue(), så nyckeln visas aldrig i scenariokoden.

Skapa scenariot
Öppna Scenarios, klicka på Create scenario, ge det namnet elevenlabs_agent, klistra in koden nedan,
ersätt agent-ID:t i ELEVENLABS_URL och klicka på Save. Det besvarar ett inkommande samtal, strömmar
samtalet till agenten och agerar på beslutet när samtalet avslutas. För ett utgående samtal öppnar du
WebSocket-anslutningen i hanteraren CallEvents.Connected för samtalet du ringde upp.

Dirigera samtal till scenariot
Öppna Routing, klicka på Create rule, ge regeln ett namn och tilldela scenariot elevenlabs_agent.
Standardmönstret .* skickar varje samtal till applikationen via scenariot; begränsa det till ett telefonnummer
om applikationen även hanterar andra samtal. För att dirigera ett telefonnummer kopplar du det till applikationen
under Numbers.

Ring ett testsamtal
Du kan ringa applikationen från webbläsaren utan ett telefonnummer:
-
Öppna Users, klicka på Create user och skapa en användare med ett lösenord.

-
I Routing klickar du på Test tools och sedan på Softphone. Logga in som den användaren, tillåt åtkomst till mikrofonen, ange valfri destination och ring. Agenten svarar med sitt första meddelande.
-
När samtalet avslutas öppnar du Call history. Varje samtal visar en WebSocket-koppling bredvid själva samtalet. Klicka på View log för att se sessionen.

Loggen visar beslutet som ElevenLabs skickade, när WebSocket-anslutningen stängdes och vad scenariot gjorde sedan. I det här exemplet bad uppringaren om en person, så beslutet är
transfer-to-agentmed skälet som agenten angav.
Agera på händelsen elevenlabs-decision, inte på MEDIA_ENDED. Voximplant utlöser MEDIA_ENDED efter
ungefär en sekund utan ljud från ElevenLabs, vilket kan hända mitt i ett samtal.
Dynamiska variabler
Varje nyckel i customParameters blir en dynamisk variabel med samma namn. Värden som inte är
strängar omvandlas till text, till exempel blir true till "true". customParameters kan vara ett
objekt eller en JSON-kodad sträng. Nycklar som börjar med system__ eller integration__ är reserverade och
utelämnas.
Beslutshändelser
När samtalet avslutas skickar ElevenLabs exakt ett beslut före sitt stop-meddelande:
Om scenariot skickar stop eller stänger WebSocket-anslutningen först, till exempel eftersom uppringaren lade på,
skickar ElevenLabs inget beslut.
Ljud
Voximplant och ElevenLabs utbyter 16-bitars mono linjärt PCM vid 8 kHz i båda riktningarna. ElevenLabs synkroniserar agentens ljud nära realtid, så när uppringaren avbryter agenten spelas högst ungefär 0,4 sekunder av det avbrutna svaret fortfarande upp.
Autentiseringsfel
ElevenLabs stänger WebSocket-anslutningen med kod 1008 och anledningen bad auth token när
Authorization-huvudet saknas eller är felaktigt, API-nyckeln är ogiltig eller inte tillåts från den
anslutande IP-adressen, nyckeln tillhör en annan arbetsyta eller nyckelns användare inte kan komma åt en
agent som har autentisering aktiverad.
Begränsningar och funktioner som inte stöds
- Klientverktyg och systemverktyget Play keypad touch tone stöds inte. Transfer to number fungerar endast via en Voximplant-överföringsregel; scenariot avgör vart uppringaren går.
- Konfigurationsåsidosättningar, som ett annat första meddelande, kan inte skickas från scenariot; endast dynamiska variabler kan det.
- Resultat från datainsamling skickas inte till scenariot. Använd webhook efter samtal för dem.