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": "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"
}
]
}
}
]
}
]
}
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") |
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:
| 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": "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"
}
]
}
}
]
}
]
}
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_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"
}
]
}
}
]
}
]
}
Oblika odgovora
Uspešen odziv
{
"messages": [
{
"messageId": "unique-message-id",
"recipient": "+380936670003",
"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_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"
}
]
}
}
]
}
]
}'
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