Envie POST /api/v1/voice/calls/{id}/control enquanto uma chamada está em andamento. O worker que executa a chamada recebe o comando em cerca de 2 segundos; a API responde 202. Se o worker que executa a chamada não puder ser alcançado, a API responde 503 (code call_unreachable) e o comando não é executado.
type | O que acontece |
|---|---|
say | O agente diz text ao terminar a frase atual, ou imediatamente com "interrupt": true |
note | O agente recebe text (sem falar) e o leva em conta a partir da próxima resposta; a transcrição o registra |
end | O agente diz text, se informado, e desliga; uma chamada telefônica sem text é desligada imediatamente |
O ended_reason da chamada passa então a ser api_ended. A página da chamada no painel tem os mesmos controles.
POST /api/v1/voice/calls/{id}/listen (opcionalmente { "channels": 2 }) retorna uma listen_url que você pode abrir em até dois minutos. É um WebSocket: primeiro uma mensagem JSON {"type":"start","sampleRate":8000,"channels":1,"encoding":"pcm_s16le"}, depois quadros binários de PCM de 16 bits little-endian com o que quem liga ouve (as duas vozes misturadas; com channels: 2, quem liga à esquerda e o agente à direita). Ele se fecha quando a chamada termina. O áudio vem direto do worker que executa a chamada, sem passar pelo plano de controle da EvaSay; o botão Escutar da página da chamada no painel usa o mesmo endereço.