Μηνύματα ομιλίας
Το SpeechCall είναι ένας τύπος μηνύματος διαδραστικής φωνητικής απόκρισης (IVR) που σας επιτρέπει να πραγματοποιείτε αυτοματοποιημένες φωνητικές κλήσεις με επιλογές μενού και αλληλεπιδράσεις DTMF (διπλής συχνότητας πολλαπλών συχνοτήτων).
Επισκόπηση
Το SpeechCall επιτρέπει στις επιχειρήσεις να: - Πραγματοποιήστε αυτοματοποιημένες φωνητικές κλήσεις σε πελάτες - Αναπαραγωγή εισαγωγικών ηχητικών μηνυμάτων - Παρουσίαση διαδραστικών επιλογών μενού - Χειριστείτε τις απαντήσεις πατήματος DTMF (0-9, *, #) - Καθορίστε προσαρμοσμένη συμπεριφορά για μη έγκυρες εισόδους/χρονικό όριο - Ενεργοποίηση webhook με προσαρμοσμένα σώματα και κεφαλίδες με βάση τις επιλογές των χρηστών - Διαχειριστείτε τη ροή κλήσεων δυναμικά (πλοήγηση μεταξύ των μενού)
Περιπτώσεις χρήσης
- Έρευνες πελατών - Συλλέξτε σχόλια μέσω επιλογών μενού τηλεφώνου
- Υπενθυμίσεις ραντεβού - Επιβεβαίωση ή επαναπρογραμματισμός με φωνητική αλληλεπίδραση
- Παρακολούθηση παραγγελιών - Παρέχετε ενημερώσεις κατάστασης παραγγελίας
- Διαδραστικές ειδοποιήσεις - Παρέχετε σημαντικές πληροφορίες με επιλογές δράσης
- Φωνητική επαλήθευση - Έλεγχος ταυτότητας πολλαπλών παραγόντων μέσω φωνητικών κλήσεων
Μορφή αιτήματος
Βασική Δομή
{
"messages": [
{
"from": "BazarCOM",
"to": "+380936670003",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://api.example.com/callback/option1",
"body": {
"confirm": true
},
"headers": {
"X-Custom-Header": "value"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://api.example.com/callback/option2",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}
Περιγραφή παραμέτρου
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
| «από» | χορδή | Ναι | Αναγνωριστικό αποστολέα (άλφα όνομα ή αναγνωριστικό) |
| «προς» | χορδή | Ναι | Αριθμός τηλεφώνου παραλήπτη σε διεθνή μορφή |
κείμενο |
χορδή | Ναι | Τιμή κειμένου, συνήθως "ivr" για SpeechCall |
| «τύπος» | χορδή | Ναι | Πρέπει να είναι ""speechcall"" |
| «μενού» | συστοιχία | Ναι | Σειρά διαμορφώσεων μενού για την κλήση |
Διαμόρφωση μενού
Κάθε αντικείμενο μενού περιέχει:
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
introUrl |
χορδή | Ναι | URL ή αναγνωριστικό του εισαγωγικού αρχείου ήχου |
idleTimeoutMsec |
ακέραιος | Όχι | Λήξη χρονικού ορίου σε χιλιοστά του δευτερολέπτου για να περιμένετε ένα πάτημα πλήκτρων (π.χ. 10000). Εάν ο χρήστης δεν ανταποκριθεί, οι ενέργειες που έχουν ρυθμιστεί κάτω από το κλειδί "λάθος" θα εκτελεστούν |
dtmfActions |
αντικείμενο | Ναι | Χάρτης των κλειδιών DTMF για ενέργειες |
Ενέργειες DTMF
Το αντικείμενο dtmfActions αντιστοιχίζει κλειδιά DTMF ή ειδικές συνθήκες σε πίνακες ενεργειών:
| Κλειδί DTMF | Περιγραφή |
|---|---|
d0 |
Πατήστε 0 |
d1 |
Πατήστε 1 |
d2 |
Πατήστε 2 |
| ... | ... |
d9 |
Πατήστε 9 |
d* |
Πατήστε * |
d# |
Πατήστε # |
| "λάθος" | Ενεργοποιείται όταν πατιέται ένα μη έγκυρο πλήκτρο ή όταν επιτυγχάνεται «idleTimeoutMsec» χωρίς καμία εισαγωγή |
Κάθε κλειδί/συνθήκη DTMF αντιστοιχίζεται σε μια σειρά ενεργειών που θα εκτελεστούν με τη σειρά.
Υποστηριζόμενες ενέργειες
| Δράση | Παράμετροι | Περιγραφή |
|---|---|---|
webhook |
url (συμβολοσειρά, απαιτείται)body (αντικείμενο, προαιρετικό)κεφαλίδες (αντικείμενο, προαιρετικό) |
Στέλνει ένα αίτημα HTTP POST σε μορφή JSON στην καθορισμένη διεύθυνση URL. Το αντικείμενο "body" θα είναι ένθετο κάτω από το πεδίο "action" στο αίτημα webhook. Οι προσαρμοσμένες κεφαλίδες περιλαμβάνονται ως κεφαλίδες HTTP. |
hangup |
Κανένα | Τερματίζει την κλήση |
gotoMenu |
μενού (συμβολοσειρά ή ακέραιος αριθμός) |
Πλοηγεί την κλήση σε άλλο μενού στον πίνακα "μενού" χρησιμοποιώντας το ευρετήριό του που βασίζεται στο 0 (π.χ. "1") |
Μορφή παράδοσης Webhook
Όταν ενεργοποιείται η ενέργεια "webhook", το σύστημα στέλνει ένα αίτημα HTTP POST στη διαμορφωμένη "url" με "Content-Type: application/json".
Κεφαλίδες αιτήματος Webhook
Εάν η ενέργεια έχει διαμορφωθεί με την παράμετρο «κεφαλίδες», αυτά τα ζεύγη κλειδιών-τιμών περιλαμβάνονται ως κεφαλίδες HTTP στο αίτημα.
Σώμα αιτήματος Webhook
Το ωφέλιμο φορτίο JSON που αποστέλλεται στη διεύθυνση URL του webhook σας έχει την ακόλουθη δομή:
| Πεδίο | Τύπος | Περιγραφή |
|---|---|---|
| «από» | χορδή | Αριθμός τηλεφώνου καλούντος / Αναγνωριστικό αποστολέα |
| «προς» | χορδή | Αριθμός τηλεφώνου παραλήπτη |
| «μέσα» | χορδή | Αναγνωριστικό μηνύματος |
| «δράση» | αντικείμενο | Το προσαρμοσμένο αντικείμενο JSON που ορίζεται στο πεδίο «body» της ενέργειας |
Πλήρες παράδειγμα
Απλό IVR με Timeout & Input Validation
{
"messages": [
{
"from": "BazarCOM",
"to": "+380936670003",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://api.example.com/callback/option1",
"body": {
"confirm": true
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://api.example.com/callback/option2",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}
Σύνθετο IVR με πολλαπλά μενού και δρομολόγηση DTMF
Αυτό το παράδειγμα δείχνει πώς να ορίσετε πολλά μενού και να πλοηγηθείτε μεταξύ τους χρησιμοποιώντας την ενέργεια "gotoMenu" όταν ο χρήστης εισάγει ένα μη έγκυρο κλειδί ή όταν λήξει το χρονικό διάστημα της κλήσης. Εμφανίζει επίσης προσαρμοσμένα σώματα και προσαρμοσμένες κεφαλίδες HTTP που αποστέλλονται με τους κανόνες ετικέτας webhook.
{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "http://api.smsbat.local/gatereq/temp/hook",
"body": {
"confirm": true
},
"headers": {
"test-header": "test"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "http://api.smsbat.local/gatereq/temp/hook",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "gotoMenu",
"menu": "1"
}
]
}
},
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "http://localhost/1"
}
],
"d2": [
{
"action": "webhook",
"url": "http://localhost/1"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}
Μορφή απόκρισης
Απόκριση επιτυχίας
{
"messages": [
{
"messageId": "unique-message-id",
"recipient": "+380936670003",
"status": "sent"
}
]
}
Χειρισμός σφαλμάτων
| Κατάσταση HTTP | Περιγραφή |
|---|---|
| 200 | Το αίτημα επιτυχής |
| 400 | Μη έγκυρη μορφή αιτήματος |
| 401 | Ο έλεγχος ταυτότητας απέτυχε |
| 429 | Υπέρβαση ορίου ποσοστού |
| 500 | Εσωτερικό σφάλμα διακομιστή |
cURL Παράδειγμα
curl -X POST https://restapi.smsbat.com/bat/messagelist \
-u "username:password" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "http://api.smsbat.local/gatereq/temp/hook",
"body": {
"confirm": true
},
"headers": {
"test-header": "test"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "http://api.smsbat.local/gatereq/temp/hook",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "gotoMenu",
"menu": "1"
}
]
}
},
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "http://localhost/1"
}
],
"d2": [
{
"action": "webhook",
"url": "http://localhost/1"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}'
Βέλτιστες πρακτικές
- Αρχεία ήχου - Βεβαιωθείτε ότι οι εισαγωγικές διευθύνσεις URL είναι προσβάσιμες και τα αρχεία ήχου είναι σε υποστηριζόμενες μορφές
- Αξιοπιστία Webhook - Σχεδιάστε webhook για γρήγορη απόκριση (εντός 2 δευτερολέπτων)
- Επιλογές DTMF - Περιορίστε τις επιλογές μενού σε 4-6 επιλογές για καλύτερη εμπειρία χρήστη
- Χειρισμός χρονικού ορίου - Χρησιμοποιήστε το "idleTimeoutMsec" για να καθορίσετε προσαρμοσμένα όρια αδράνειας (π.χ. 10000 ms) και διαμορφώστε μια χαριτωμένη εναλλακτική κάτω από το "λάθος" πλήκτρο DTMF (όπως επανάληψη του μενού ή κλείσιμο)
- Ροή κλήσης πολλαπλών μενού - Χρησιμοποιήστε προσεκτικά το "gotoMenu" για να αποτρέψετε άπειρους βρόχους κατά τη δρομολόγηση των χρηστών πίσω στα προηγούμενα μενού
- Στρατηγική επιστροφής - Χρησιμοποιήστε εναλλακτικά μηνύματα για χρήστες που δεν απαντούν ή αποσυνδέονται
Σχετικά θέματα
- Αποστολή μηνύματος - Γενικός οδηγός αποστολής μηνυμάτων
- Flash Call - Απλές κλήσεις φωνητικής επαλήθευσης
- Έλεγχος κατάστασης - Παρακολούθηση της κατάστασης παράδοσης μηνυμάτων
- Τύποι μηνυμάτων - Επισκόπηση όλων των υποστηριζόμενων τύπων μηνυμάτων