Stuur POST /api/v1/voice/calls/{id}/control terwijl een gesprek bezig is. De worker die het gesprek verwerkt, pikt het commando binnen ongeveer 2 seconden op; de API antwoordt 202. Is de worker die het gesprek verwerkt niet bereikbaar, dan antwoordt de API 503 (code call_unreachable) en wordt het commando niet uitgevoerd.
type | Wat er gebeurt |
|---|---|
say | De agent zegt text na zijn huidige zin, of meteen met "interrupt": true |
note | De agent krijgt text te horen (niet uitgesproken) en houdt er vanaf zijn volgende antwoord rekening mee; het transcript noteert het |
end | De agent zegt text indien opgegeven en hangt dan op; een telefoongesprek zonder text wordt direct opgehangen |
De ended_reason van het gesprek is dan api_ended. De gesprekspagina in het dashboard heeft dezelfde bediening.
POST /api/v1/voice/calls/{id}/listen (eventueel { "channels": 2 }) geeft een listen_url die je binnen twee minuten kunt openen. Het is een WebSocket: eerst een JSON-bericht {"type":"start","sampleRate":8000,"channels":1,"encoding":"pcm_s16le"}, daarna binaire frames met 16-bits little-endian PCM met wat de beller hoort (beide stemmen gemengd; met channels: 2 de beller links en de agent rechts). Hij sluit zodra het gesprek eindigt. De audio komt rechtstreeks van de worker die het gesprek verwerkt, niet via het besturingsvlak van EvaSay; de knop Luisteren op de gesprekspagina van het dashboard gebruikt hetzelfde adres.