Envía POST /api/v1/voice/calls/{id}/control mientras una llamada está en curso. El worker que ejecuta la llamada recoge el comando en unos 2 segundos; la API responde 202. Si no se puede contactar con el worker que ejecuta la llamada, la API responde 503 (code call_unreachable) y el comando no se ejecuta.
type | Qué ocurre |
|---|---|
say | El agente dice text al terminar su frase actual, o de inmediato con "interrupt": true |
note | Se le dice al agente text (sin pronunciarlo) y lo tiene en cuenta desde su siguiente respuesta; la transcripción lo anota |
end | El agente dice text si se da y luego cuelga; una llamada telefónica sin text se cuelga de inmediato |
El ended_reason de la llamada es entonces api_ended. La página de la llamada en el panel tiene los mismos controles.
POST /api/v1/voice/calls/{id}/listen (opcionalmente { "channels": 2 }) devuelve una listen_url que puedes abrir en los dos minutos siguientes. Es un WebSocket: primero un mensaje JSON {"type":"start","sampleRate":8000,"channels":1,"encoding":"pcm_s16le"}, y después tramas binarias de PCM de 16 bits little-endian con lo que oye quien llama (ambas voces mezcladas; con channels: 2, quien llama a la izquierda y el agente a la derecha). Se cierra cuando termina la llamada. El audio llega directamente del worker que ejecuta la llamada, sin pasar por el plano de control de EvaSay; el botón Escuchar de la página de la llamada del panel usa la misma dirección.