Bir arama sürerken POST /api/v1/voice/calls/{id}/control gönderin. Aramayı yürüten worker komutu yaklaşık 2 saniye içinde alır; API 202 ile yanıt verir. Aramayı yürüten worker'a ulaşılamazsa API 503 (code call_unreachable) ile yanıt verir ve komut uygulanmaz.
type | Ne olur |
|---|---|
say | Ajan, mevcut cümlesinden sonra text değerini söyler; "interrupt": true ise hemen söyler |
note | Ajana text söylenir (sesli okunmaz) ve bir sonraki yanıtından itibaren bunu hesaba katar; döküm bunu not eder |
end | Ajan verilmişse text değerini söyler, sonra telefonu kapatır; text olmayan bir telefon araması hemen kapatılır |
Aramanın ended_reason değeri o zaman api_ended olur. Paneldeki arama sayfasında aynı kontroller vardır.
POST /api/v1/voice/calls/{id}/listen (isteğe bağlı olarak { "channels": 2 }), iki dakika içinde açabileceğiniz bir listen_url döndürür. Bu bir WebSocket'tir: önce {"type":"start","sampleRate":8000,"channels":1,"encoding":"pcm_s16le"} JSON mesajı, ardından arayanın duyduğu şeyi içeren 16 bit little-endian PCM ikili çerçeveleri gelir (iki ses karışık; channels: 2 ile arayan solda, ajan sağda). Arama bittiğinde kapanır. Ses doğrudan aramayı yürüten worker'dan gelir, EvaSay'in kontrol düzleminden geçmez; panelin arama sayfasındaki Dinle düğmesi aynı adresi kullanır.