Στείλτε POST /api/v1/voice/calls/{id}/control ενώ μια κλήση βρίσκεται σε εξέλιξη. Ο worker που εκτελεί την κλήση παίρνει την εντολή μέσα σε περίπου 2 δευτερόλεπτα· το API απαντά 202. Αν ο worker που εκτελεί την κλήση δεν είναι προσβάσιμος, το API απαντά 503 (code call_unreachable) και η εντολή δεν εκτελείται.
type | Τι συμβαίνει |
|---|---|
say | Ο πράκτορας λέει το text μετά την τρέχουσα πρότασή του, ή αμέσως με "interrupt": true |
note | Ο πράκτορας ενημερώνεται για το text (δεν εκφωνείται) και το λαμβάνει υπόψη από την επόμενη απάντησή του· η απομαγνητοφώνηση το σημειώνει |
end | Ο πράκτορας λέει το text αν δοθεί και μετά κλείνει· μια τηλεφωνική κλήση χωρίς text κλείνει αμέσως |
Το ended_reason της κλήσης είναι τότε api_ended. Η σελίδα της κλήσης στον πίνακα ελέγχου έχει τους ίδιους χειρισμούς.
Το POST /api/v1/voice/calls/{id}/listen (προαιρετικά { "channels": 2 }) επιστρέφει ένα listen_url που μπορείτε να ανοίξετε μέσα σε δύο λεπτά. Είναι WebSocket: πρώτα ένα μήνυμα JSON {"type":"start","sampleRate":8000,"channels":1,"encoding":"pcm_s16le"}, έπειτα δυαδικά πλαίσια PCM 16 bit little-endian με ό,τι ακούει ο καλών (και οι δύο φωνές αναμεμειγμένες· με channels: 2, ο καλών αριστερά και ο πράκτορας δεξιά). Κλείνει όταν τελειώσει η κλήση. Ο ήχος έρχεται απευθείας από τον worker που εκτελεί την κλήση, όχι μέσω του επιπέδου ελέγχου της EvaSay· το κουμπί Ακρόαση στη σελίδα κλήσης του πίνακα ελέγχου χρησιμοποιεί την ίδια διεύθυνση.