Invia POST /api/v1/voice/calls/{id}/control mentre una chiamata è in corso. Il worker che esegue la chiamata riceve il comando entro circa 2 secondi; l'API risponde 202. Se il worker che esegue la chiamata non è raggiungibile, l'API risponde 503 (code call_unreachable) e il comando non viene eseguito.
type | Che cosa succede |
|---|---|
say | L'agente dice text dopo la frase in corso, oppure subito con "interrupt": true |
note | All'agente viene detto text (senza pronunciarlo) e ne tiene conto dalla risposta successiva; la trascrizione lo annota |
end | L'agente dice text se indicato, poi riaggancia; una chiamata telefonica senza text viene riagganciata subito |
L'ended_reason della chiamata è allora api_ended. La pagina della chiamata nella dashboard ha gli stessi controlli.
POST /api/v1/voice/calls/{id}/listen (facoltativamente { "channels": 2 }) restituisce una listen_url che puoi aprire entro due minuti. È un WebSocket: prima un messaggio JSON {"type":"start","sampleRate":8000,"channels":1,"encoding":"pcm_s16le"}, poi frame binari di PCM a 16 bit little-endian con ciò che sente chi chiama (le due voci mescolate; con channels: 2, chi chiama a sinistra e l'agente a destra). Si chiude quando la chiamata termina. L'audio arriva direttamente dal worker che esegue la chiamata, senza passare dal piano di controllo di EvaSay; il pulsante Ascolta della pagina della chiamata nella dashboard usa lo stesso indirizzo.