Senden Sie POST /api/v1/voice/calls/{id}/control, während ein Anruf läuft. Der Worker, der den Anruf ausführt, übernimmt den Befehl innerhalb von etwa 2 Sekunden; die API antwortet 202. Ist der Worker, der den Anruf ausführt, nicht erreichbar, antwortet die API 503 (code call_unreachable), und der Befehl wird nicht ausgeführt.
type | Was passiert |
|---|---|
say | Der Agent sagt text nach seinem aktuellen Satz, oder sofort mit "interrupt": true |
note | Dem Agent wird text mitgeteilt (nicht gesprochen), und er berücksichtigt es ab seiner nächsten Antwort; das Transkript vermerkt es |
end | Der Agent sagt text, falls angegeben, und legt dann auf; ein Telefonanruf ohne text wird sofort beendet |
Der ended_reason des Anrufs ist dann api_ended. Die Anrufseite im Dashboard hat dieselben Steuerungen.
POST /api/v1/voice/calls/{id}/listen (optional { "channels": 2 }) liefert eine listen_url, die Sie innerhalb von zwei Minuten öffnen können. Es ist ein WebSocket: zuerst eine JSON-Nachricht {"type":"start","sampleRate":8000,"channels":1,"encoding":"pcm_s16le"}, dann Binärframes mit 16-Bit-Little-Endian-PCM mit dem, was der Anrufer hört (beide Stimmen gemischt; mit channels: 2 der Anrufer links und der Agent rechts). Er schließt, wenn der Anruf endet. Das Audio kommt direkt vom Worker, der den Anruf ausführt, nicht über die Steuerungsebene von EvaSay; der Mithören-Button auf der Anrufseite des Dashboards nutzt dieselbe Adresse.