Skicka POST /api/v1/voice/calls/{id}/control medan ett samtal pågår. Den worker som kör samtalet plockar upp kommandot inom ungefär 2 sekunder; API:et svarar 202. Går det inte att nå den worker som kör samtalet svarar API:et 503 (code call_unreachable), och kommandot utförs inte.
type | Vad som händer |
|---|---|
say | Agenten säger text efter sin pågående mening, eller direkt med "interrupt": true |
note | Agenten får veta text (sägs inte) och tar hänsyn till det från sitt nästa svar; utskriften noterar det |
end | Agenten säger text om den anges och lägger sedan på; ett telefonsamtal utan text läggs på direkt |
Samtalets ended_reason är då api_ended. Samtalssidan i panelen har samma kontroller.
POST /api/v1/voice/calls/{id}/listen (valfritt { "channels": 2 }) returnerar en listen_url som du kan öppna inom två minuter. Det är en WebSocket: först ett JSON-meddelande {"type":"start","sampleRate":8000,"channels":1,"encoding":"pcm_s16le"}, sedan binära ramar med 16-bitars little-endian PCM med det uppringaren hör (båda rösterna blandade; med channels: 2 uppringaren till vänster och agenten till höger). Den stängs när samtalet slutar. Ljudet kommer direkt från den worker som kör samtalet, inte via EvaSays kontrollplan; knappen Lyssna på panelens samtalssida använder samma adress.