Μετάβαση στο περιεχόμενο

Μηνύματα ομιλίας

Το 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 σας έχει την ακόλουθη δομή:

{
  "from": "0443914272",
  "to": "50001",
  "mid": "7748021",
  "action": {
    "confirm": true
  }
}
Πεδίο Τύπος Περιγραφή
«από» χορδή Αριθμός τηλεφώνου καλούντος / Αναγνωριστικό αποστολέα
«προς» χορδή Αριθμός τηλεφώνου παραλήπτη
«μέσα» χορδή Αναγνωριστικό μηνύματος
«δράση» αντικείμενο Το προσαρμοσμένο αντικείμενο 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"
                }
              ]
            }
          }
        ]
      }
    ]
  }'

Βέλτιστες πρακτικές

  1. Αρχεία ήχου - Βεβαιωθείτε ότι οι εισαγωγικές διευθύνσεις URL είναι προσβάσιμες και τα αρχεία ήχου είναι σε υποστηριζόμενες μορφές
  2. Αξιοπιστία Webhook - Σχεδιάστε webhook για γρήγορη απόκριση (εντός 2 δευτερολέπτων)
  3. Επιλογές DTMF - Περιορίστε τις επιλογές μενού σε 4-6 επιλογές για καλύτερη εμπειρία χρήστη
  4. Χειρισμός χρονικού ορίου - Χρησιμοποιήστε το "idleTimeoutMsec" για να καθορίσετε προσαρμοσμένα όρια αδράνειας (π.χ. 10000 ms) και διαμορφώστε μια χαριτωμένη εναλλακτική κάτω από το "λάθος" πλήκτρο DTMF (όπως επανάληψη του μενού ή κλείσιμο)
  5. Ροή κλήσης πολλαπλών μενού - Χρησιμοποιήστε προσεκτικά το "gotoMenu" για να αποτρέψετε άπειρους βρόχους κατά τη δρομολόγηση των χρηστών πίσω στα προηγούμενα μενού
  6. Στρατηγική επιστροφής - Χρησιμοποιήστε εναλλακτικά μηνύματα για χρήστες που δεν απαντούν ή αποσυνδέονται

Σχετικά θέματα