Bir aramanın sesini kendi programınızdan, örneğin kendi telefon sisteminizden veya uygulamanızdan gönderip alın. Aramayı başlatın:
curl https://evasay.com/api/v1/voice/calls/websocket \
-X POST \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{ "agent_id": "AGENT_ID", "encoding": "pcm_s16le", "sample_rate": 16000 }'
Yanıttaki websocket_url tek kullanımlık bir token taşır ve 15 dakika içinde açılabilir. encoding değeri pcm_s16le (8000, 16000 veya 24000 sample_rate ile 16 bit little-endian PCM) ya da mulaw (8 kHz μ-law) olur. Ses, bu biçimde, tercihen her biri 20 ms olan ikili çerçeveler olarak iki yönde akar. Metin çerçeveleri JSON'dur:
| Yön | Mesajlar |
|---|---|
| Siz → EvaSay | {"type":"dtmf","digits":"12#"} tuş basışları; {"type":"end"} kapatır; {"type":"text","text":"…"} arayanın yazdığı sözcükler (dokunulan bir yanıt için "input":"button"); {"type":"context","text":"…","key":"cart"} uygulamanızın bildirdiği şey (ajan buna yanıt vermez); {"type":"typing"} müşteri yazıyor (yazarken saniyede bir kez kadar gönderin; ajan 2 sn konuşmaz); {"type":"tool_result","id":"…","result":{…}} (veya "error") bir sayfa fonksiyonunun yanıtı |
| EvaSay → siz | start (callId ile); clear (arayan sözünü kesti: ajanın henüz çalınmamış sesini atın); transcript (role, text, final ve yazılan sözcükler için input); user_started_speaking, user_stopped_speaking, agent_started_speaking, agent_stopped_speaking; cards (cards, quick_replies); tool (id, name, arguments: sayfa fonksiyonlarınızdan birini çalıştırın); notice (code: yazılan sözcükler için too_fast veya limit); ended (reason ile, sonra soket kapanır) |
Ajan bağlanır bağlanmaz selam verir. İsteğe user_id ve page_tools (uygulamanızın yanıtladığı sayfa fonksiyonları, aşağıya bakın) eklenebilir. Aramalar diğerleri gibi dakika başına faturalanır; aynı arama kayıtları, analiz ve webhook'larla.