Send og motta lyden fra en samtale fra ditt eget program, for eksempel ditt eget telefonsystem eller din app. Start samtalen:
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 i svaret har et engangstoken og kan åpnes innen 15 minutter. encoding er pcm_s16le (16-biters little-endian PCM med en sample_rate på 8000, 16000 eller 24000) eller mulaw (8 kHz μ-law). Lyden går begge veier som binære rammer i det formatet, helst på 20 ms hver. Tekstrammer er JSON:
| Retning | Meldinger |
|---|---|
| Du → EvaSay | {"type":"dtmf","digits":"12#"} tastetrykk; {"type":"end"} legger på; {"type":"text","text":"…"} ord innringeren skrev ("input":"button" for et tappet svar); {"type":"context","text":"…","key":"cart"} det appen din melder (agenten svarer ikke på det); {"type":"typing"} kunden skriver (send den omtrent én gang i sekundet mens de skriver; agenten venter 2 s med å snakke); {"type":"tool_result","id":"…","result":{…}} (eller "error") svaret fra en sidefunksjon |
| EvaSay → deg | start (med callId); clear (innringeren avbrøt: kast agentens lyd som ikke er spilt av ennå); transcript (role, text, final og input for skrevne ord); user_started_speaking, user_stopped_speaking, agent_started_speaking, agent_stopped_speaking; cards (cards, quick_replies); tool (id, name, arguments: kjør en av sidefunksjonene dine); notice (code: too_fast eller limit for skrevne ord); ended (med reason, deretter lukkes socketen) |
Agenten hilser så snart du kobler til. user_id og page_tools (sidefunksjonene appen din svarer på, se nedenfor) kan legges til i forespørselen. Samtaler faktureres per minutt som alle andre, med de samme samtalepostene, den samme analysen og de samme webhookene.