שלחו וקבלו את השמע של שיחה מהתוכנה שלכם, למשל מערכת הטלפוניה או האפליקציה שלכם. התחילו את השיחה:
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 }'
ה-websocket_url בתשובה נושא אסימון חד-פעמי וניתן לפתוח אותו תוך 15 דקות. encoding הוא pcm_s16le (PCM ב-16 סיביות little-endian עם sample_rate של 8000, 16000 או 24000) או mulaw (μ-law ב-8 קילוהרץ). השמע עובר בשני הכיוונים כמסגרות בינאריות בפורמט הזה, רצוי של 20 מילישניות כל אחת. מסגרות טקסט הן JSON:
| כיוון | הודעות |
|---|---|
| אתם ← EvaSay | {"type":"dtmf","digits":"12#"} לחיצות מקשים; {"type":"end"} מנתק; {"type":"text","text":"…"} מילים שהמתקשר הקליד ("input":"button" לתשובה שנלחצה); {"type":"context","text":"…","key":"cart"} מה שהאפליקציה שלכם מדווחת (הסוכן לא עונה על כך); {"type":"typing"} הלקוח מקליד (שלחו בערך פעם בשנייה בזמן ההקלדה; הסוכן לא מדבר במשך 2 שניות); {"type":"tool_result","id":"…","result":{…}} (או "error") תשובה של פונקציית דף |
| EvaSay ← אתם | start (עם callId); clear (המתקשר קטע: השליכו שמע של הסוכן שעדיין לא הושמע); transcript (role, text, final, ו-input למילים מוקלדות); user_started_speaking, user_stopped_speaking, agent_started_speaking, agent_stopped_speaking; cards (cards, quick_replies); tool (id, name, arguments: הריצו אחת מפונקציות הדף שלכם); notice (code: too_fast או limit למילים מוקלדות); ended (עם reason, ואז השקע נסגר) |
הסוכן מברך ברגע שאתם מתחברים. אפשר להוסיף לבקשה user_id ו-page_tools (פונקציות הדף שהאפליקציה שלכם עונה עליהן, ראו להלן). שיחות מחויבות לפי דקה כמו כל שיחה אחרת, עם אותן רשומות שיחה, ניתוח ו-Webhooks.