Lähetä ja vastaanota puhelun ääni omasta ohjelmastasi, esimerkiksi omasta puhelinjärjestelmästäsi tai sovelluksestasi. Aloita puhelu:
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 }'
Vastauksen websocket_url sisältää kertakäyttöisen tunnisteen, ja sen voi avata 15 minuutin kuluessa. encoding on pcm_s16le (16-bittinen little-endian PCM, sample_rate 8000, 16000 tai 24000) tai mulaw (8 kHz:n μ-law). Ääni kulkee molempiin suuntiin binäärikehyksinä tässä muodossa, mieluiten 20 ms:n kehyksinä. Tekstikehykset ovat JSON-muotoisia:
| Suunta | Viestit |
|---|---|
| Sinä → EvaSay | {"type":"dtmf","digits":"12#"} näppäinpainallukset; {"type":"end"} katkaisee; {"type":"text","text":"…"} soittajan kirjoittamat sanat ("input":"button" napautetulle vastaukselle); {"type":"context","text":"…","key":"cart"} mitä sovelluksesi raportoi (agentti ei vastaa siihen); {"type":"typing"} asiakas kirjoittaa (lähetä noin kerran sekunnissa kirjoittamisen aikana; agentti odottaa 2 s ennen puhumista); {"type":"tool_result","id":"…","result":{…}} (tai "error") sivufunktion vastaus |
| EvaSay → sinä | start (kentän callId kanssa); clear (soittaja keskeytti: hylkää agentin vielä toistamaton ääni); transcript (role, text, final ja input kirjoitetuille sanoille); user_started_speaking, user_stopped_speaking, agent_started_speaking, agent_stopped_speaking; cards (cards, quick_replies); tool (id, name, arguments: suorita yksi sivufunktioistasi); notice (code: too_fast tai limit kirjoitetuille sanoille); ended (kentän reason kanssa, sitten socket sulkeutuu) |
Agentti tervehtii heti, kun yhdistät. Pyyntöön voi lisätä user_id- ja page_tools-kentät (sivufunktiot, joihin sovelluksesi vastaa, ks. alla). Puhelut laskutetaan minuuteittain kuten kaikki muutkin, samoilla puhelutiedoilla, analyysillä ja webhookeilla.