Στείλτε και λάβετε τον ήχο μιας κλήσης από το δικό σας πρόγραμμα, για παράδειγμα το δικό σας τηλεφωνικό σύστημα ή εφαρμογή. Ξεκινήστε την κλήση:
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 στην απάντηση φέρει ένα token μίας χρήσης και μπορεί να ανοιχτεί μέσα σε 15 λεπτά. Το encoding είναι pcm_s16le (PCM 16 bit little-endian με sample_rate 8000, 16000 ή 24000) ή mulaw (μ-law 8 kHz). Ο ήχος κινείται προς τις δύο κατευθύνσεις ως δυαδικά πλαίσια σε αυτή τη μορφή, ιδανικά των 20 ms το καθένα. Τα πλαίσια κειμένου είναι 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, και μετά το socket κλείνει) |
Ο πράκτορας χαιρετά μόλις συνδεθείτε. Στο αίτημα μπορούν να προστεθούν user_id και page_tools (οι συναρτήσεις σελίδας στις οποίες απαντά η εφαρμογή σας, βλ. παρακάτω). Οι κλήσεις χρεώνονται ανά λεπτό όπως όλες οι άλλες, με τα ίδια αρχεία κλήσεων, την ίδια ανάλυση και τα ίδια webhooks.