SpeechCall sporočila
SpeechCall je vrsta sporočila z interaktivnim glasovnim odzivom (IVR), ki omogoča avtomatizirane glasovne klice z možnostmi menija in interakcijami DTMF (dvotonsko večfrekvenčno).
Pregled
SpeechCall podjetjem omogoča:
- Opravljajte avtomatizirane glasovne klice strankam
- Predvajanje uvodnih zvočnih sporočil
- Predstavite interaktivne možnosti menija
- Obravnava odzive na pritisk tipk DTMF (0-9, *, #)
- Določite vedenje po meri za neveljavne/časovne omejitve vnosov
- Sproži webhooke s telesi in glavami po meri na podlagi uporabniških izbir
- Dinamično upravljanje pretoka klicev (krmarjenje med meniji)
Primeri uporabe
- Ankete strank - Zberite povratne informacije prek menijskih možnosti telefona
- Opomniki za sestanke - Potrdite ali prestavite termin z glasovno interakcijo
- Sledenje naročilom - Zagotavljanje posodobitev stanja naročil
- Interaktivna obvestila - Posredujte pomembne informacije z možnostmi ukrepanja
- Glasovno preverjanje - Večfaktorska avtentikacija prek glasovnih klicev
Oblika zahteve
Osnovna struktura
{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_XXXXX",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
},
"headers": {
"test-header": "test"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "gotoMenu",
"menu": "1"
}
]
}
}
]
}
]
}
Opis parametra
| Parameter | Vrsta | Zahtevano | Opis |
|---|---|---|---|
od | niz | Da | Identifikator pošiljatelja (alfa ime ali ID) |
do | niz | Da | Telefonska številka prejemnika v mednarodni obliki |
besedilo | niz | Da | Besedilna vrednost, običajno “ivr” za SpeechCall |
tip | niz | Da | Mora biti "speechcall" |
meni | niz | Da | Niz konfiguracij menija za klic |
Konfiguracija menija
Vsak menijski objekt vsebuje:
| Parameter | Vrsta | Zahtevano | Opis |
|---|---|---|---|
introUrl | niz | Da | URL ali identifikator uvodne zvočne datoteke |
idleTimeoutMsec | celo število | Ne | Časovna omejitev v milisekundah za čakanje na pritisk tipke (npr. 10000). Če se uporabnik ne odzove, se izvedejo dejanja, konfigurirana pod tipko wrong |
dtmfActions | predmet | Da | Zemljevid DTMF ključev do dejanj |
Dejanja DTMF
Objekt dtmfActions preslika ključe DTMF ali posebne pogoje v nize dejanj:
| Ključ DTMF | Opis |
|---|---|
d0 | Pritisnite 0 |
d1 | Pritisnite 1 |
d2 | Pritisnite 2 |
| … | … |
d9 | Pritisnite 9 |
d* | Pritisnite * |
d# | Pritisnite # |
narobe | Sproži, ko je pritisnjena neveljavna tipka ali ko je dosežen idleTimeoutMsec brez kakršnega koli vnosa |
Vsak ključ/pogoj DTMF se preslika v niz dejanj, ki bodo izvedena v zaporedju.
Podprta dejanja
| Akcija | Parametri | Opis |
|---|---|---|
webhook | url (niz, obvezno)telo (predmet, neobvezno)glave (predmet, neobvezno) | Pošlje zahtevo HTTP POST v formatu JSON na navedeni URL. Objekt body bo ugnezden pod polje action v zahtevi webhook. Glave po meri so vključene kot glave HTTP. |
odloži | Brez | Konča klic |
gotoMenu | meni (niz ali celo število) | Krmari klic v drug meni v matriki menu z uporabo njegovega indeksa na osnovi 0 (npr. "1") |
Podrobno vedenje dejanj
Dejanje spletnega trnka (‘webhook’)
Dejanje webhook pošlje zahtevo HTTP POST na vaš URL povratnega klica z metapodatki o klicu in neobveznimi podatki po meri:
– Če je na voljo telo, se njegovi pari ključ-vrednost pošljejo znotraj polja dejanje telesa tovora.
- Če so na voljo
glave, so poslane kot glave HTTP po meri v zahtevi.
Dejanje prekinitve (‘hangup’)
Dejanje odloži takoj prekine aktivni klic. Po dejanju »odloži« ne bodo obdelana nobena nadaljnja dejanja v zaporedju ali menijih.
Pojdi na dejanje menija (gotoMenu)
Dejanje gotoMenu preusmeri tok klica na drugo strukturo menija znotraj polja menu. Potrebuje en sam parameter menu, ki določa indeks ciljnega menija na osnovi 0 (npr. "1" za prehod v drugi meni ali "0" za ponovni zagon prvega menija).
Obravnava nedejavnosti in napak (‘napačno’)
Napačen ključ znotraj dtmfActions je poseben upravljalnik padca. Svoj niz zaporedij dejanj izvaja v dveh scenarijih:
- Neveljaven vnos: Klicatelj pritisne tipko DTMF, ki ni definirana v
dtmfActions(na primer, pritisne3, vendar meni definira samod1ind2). - Idle Timeout: Klicatelj ne pritisne nobene tipke v času, ki ga določa
idleTimeoutMsec.
Če wrong ni definiran in klicatelj pritisne neveljavno tipko ali poteče, bo potek klica privzeto prekinil. Definiranje wrong vam omogoča ustvarjanje zančnih menijev (npr. vrnitev v isti meni z "action": "gotoMenu", "menu": "0") ali preusmeritev uporabnika v meni pomoči.
Webhook oblika dostave
Ko se sproži dejanje webhook, sistem pošlje zahtevo HTTP POST na konfiguriran url z Content-Type: application/json.
Glave zahtev Webhook
Če je dejanje konfigurirano s parametrom headers, so ti pari ključ-vrednost vključeni kot glave HTTP v zahtevo.
Telo zahteve Webhook
Tovor JSON, poslan na vaš URL webhook, ima naslednjo strukturo:
{
"from": "0443914272",
"to": "50001",
"mid": "7748021",
"action": {
"confirm": true
}
}
| Polje | Vrsta | Opis |
|---|---|---|
od | niz | Telefonska številka kličočega / ID pošiljatelja |
do | niz | Telefonska številka prejemnika |
sredina | niz | ID sporočila |
akcija | predmet | Objekt JSON po meri, definiran v polju telo dejanja |
Celoten primer
Preprost IVR s časovno omejitvijo in preverjanjem vnosa
{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}
Kompleksen IVR z več meniji in usmerjanjem DTMF
Ta primer prikazuje, kako definirati več menijev in krmariti med njimi z dejanjem gotoMenu, ko uporabnik vnese neveljaven ključ ali ko poteče čas klica. Prikazuje tudi telesa po meri in glave HTTP po meri, poslane s sprožilci webhook.
{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_XXXXX",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
},
"headers": {
"test-header": "test"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "gotoMenu",
"menu": "1"
}
]
}
},
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}
Oblika odgovora
Uspešen odziv
{
"messages": [
{
"messageId": "unique-message-id",
"recipient": "+380XXXXXXXXX",
"status": "sent"
}
]
}
Obravnava napak
| Stanje HTTP | Opis |
|---|---|
| 200 | Zahteva uspešna |
| 400 | Neveljavna oblika zahteve |
| 401 | Preverjanje ni uspelo |
| 429 | Omejitev stopnje presežena |
| 500 | Notranja napaka strežnika |
Primer 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_XXXXX",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
},
"headers": {
"test-header": "test"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "gotoMenu",
"menu": "1"
}
]
}
},
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}'
Najboljše prakse
- Zvočne datoteke – zagotovite, da so uvodni URL-ji dostopni in da so zvočne datoteke v podprtih formatih
- Zanesljivost spletnega trnka - Oblikujte spletne trnke tako, da se hitro odzovejo (v 2 sekundah)
- Možnosti DTMF - Omejite možnosti menija na 4-6 možnosti za boljšo uporabniško izkušnjo
- Obravnava časovne omejitve - Uporabite
idleTimeoutMsec, da določite meje nedejavnosti po meri (npr. 10000 ms) in konfigurirajte eleganten nadomestni način podnapačnotipko DTMF (na primer ponavljanje menija ali prekinitev) - Multi-Menu Call Flow - previdno uporabljajte
gotoMenu, da preprečite neskončne zanke pri usmerjanju uporabnikov nazaj v prejšnje menije - Nadomestna strategija - Uporabite nadomestna sporočila za uporabnike, ki ne odgovorijo ali prekinejo povezavo
Sorodne teme
– Pošlji sporočilo – Splošni vodnik za pošiljanje sporočil – Flash Call – Preprosti klici za glasovno preverjanje
- Preveri stanje - Sledite stanju dostave sporočila – Vrste sporočil – Pregled vseh podprtih vrst sporočil