Poruke govornog poziva
SpeechCall je vrsta poruke interaktivnog glasovnog odgovora (IVR) koja vam omogućava da obavljate automatske glasovne pozive sa opcijama menija i DTMF (dual-tone multi-frequency) interakcijama.
Pregled
SpeechCall omogućava preduzećima da:
- Upućujte automatske glasovne pozive klijentima
- Pustite uvodne audio poruke
- Predstavite interaktivne opcije menija
- Rukovanje DTMF odgovorima na pritisak tipke (0-9, *, #)
- Definirajte prilagođeno ponašanje za nevažeće unose/istek
- Aktivirajte webhookove s prilagođenim tijelima i zaglavljima na osnovu odabira korisnika
- Dinamički upravljajte protokom poziva (navigacija između menija)
Slučajevi upotrebe
- Ankete kupaca - Prikupite povratne informacije putem opcija menija telefona
- Podsjetnici za sastanke - Potvrdite ili pomjerite termin glasovnom interakcijom
- Praćenje narudžbi - Pružanje ažuriranja statusa narudžbe
- Interaktivna obavještenja - Isporučite važne informacije s opcijama akcije
- Verifikacija glasa - Višefaktorska autentikacija putem glasovnih poziva
Format zahtjeva
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
| Parametar | Vrsta | Obavezno | Opis |
|---|---|---|---|
od | string | Da | Identifikator pošiljaoca (alfa ime ili ID) |
to | string | Da | Telefonski broj primaoca u međunarodnom formatu |
tekst | string | Da | Vrijednost teksta, obično “ivr” za SpeechCall |
tip | string | Da | Mora biti "speechcall" |
menu | niz | Da | Niz konfiguracija menija za poziv |
Konfiguracija menija
Svaki objekat menija sadrži:
| Parametar | Vrsta | Obavezno | Opis |
|---|---|---|---|
introUrl | string | Da | URL ili identifikator uvodne audio datoteke |
idleTimeoutMsec | cijeli broj | Ne | Vremensko ograničenje u milisekundama za čekanje na pritisak na tipku (npr. 10000). Ako korisnik ne odgovori, akcije konfigurirane pod pogrešnim ključem će se izvršiti |
dtmfActions | objekt | Da | Mapa DTMF ključeva za radnje |
DTMF akcije
Objekt dtmfActions mapira DTMF ključeve ili posebne uvjete u nizove akcija:
| DTMF ključ | Opis |
|---|---|
d0 | Pritisnite 0 |
d1 | Pritisnite 1 |
d2 | Pritisnite 2 |
| … | … |
d9 | Pritisnite 9 |
d* | Pritisnite * |
d# | Pritisnite # |
pogrešno | Pokreće se kada se pritisne nevažeći ključ ili kada se postigne idleTimeoutMsec bez ikakvog unosa |
Svaki DTMF ključ/uslov preslikava se na niz akcija koje će se izvršavati u nizu.
Podržane akcije
| Akcija | Parametri | Opis |
|---|---|---|
webhook | url (string, obavezan)body (objekat, opciono)headers (objekat, opciono) | Šalje HTTP POST zahtjev u JSON formatu na navedeni URL. Objekt body će biti ugniježđen ispod polja action u webhook zahtjevu. Prilagođena zaglavlja su uključena kao HTTP zaglavlja. |
prekid | Ništa | Završava poziv |
gotoMenu | meni (niz ili cijeli broj) | Prebacuje poziv na drugi meni u nizu menu koristeći indeks baziran na 0 (npr. "1") |
Detailed Action Behavior
Webhook Akcija (webhook)
Akcija webhook šalje HTTP POST zahtjev na vaš URL povratnog poziva s metapodacima poziva i opcijskim prilagođenim podacima:
- Ako je dostavljeno
tijelo, njegovi parovi ključ-vrijednost se šalju unutar poljaakcijatijela korisnog opterećenja. - Ako su
zaglavljanavedena, ona se šalju kao prilagođena HTTP zaglavlja u zahtjevu.
Akcija prekida (prekid)
Akcija prekid odmah prekida aktivni poziv. Nijedna daljnja radnja u nizu ili izbornicima neće biti obrađena nakon akcije prekidanja.
Idite na radnju menija (gotoMenu)
Akcija gotoMenu preusmjerava tok poziva na drugu strukturu menija unutar menu niza. Potreban je jedan parametar meni koji specificira indeks ciljnog menija zasnovan na 0 (npr. "1" za odlazak na drugi meni, ili "0" za ponovno pokretanje prvog menija).
Neaktivnost i rukovanje greškama (pogrešno)
Pogrešan ključ unutar dtmfActions je poseban rukovatelj propusta. On izvršava svoj niz akcija u dva scenarija:
- Nevažeći unos: Pozivalac pritisne DTMF taster koji nije definisan u
dtmfActions(na primer, oni pritisnu3, ali meni definiše samod1id2). - Idle Timeout: Pozivatelj ne pritisne nijednu tipku unutar trajanja određenog
idleTimeoutMsec.
Ako pogrešno nije definirano i pozivalac pritisne nevažeći taster ili istekne, tok poziva će po defaultu prekinuti vezu. Definiranje pogrešnog omogućava vam da napravite menije petlje (npr. vraćanje na isti meni sa "action": "gotoMenu", "menu": "0") ili preusmjeravanje korisnika na meni pomoći.
Format isporuke Webhook-a
Kada se pokrene akcija webhook, sistem šalje HTTP POST zahtjev na konfigurirani url sa Content-Type: application/json.
Zaglavlja zahtjeva Webhook-a
Ako je akcija konfigurirana s parametrom `headers’, ti parovi ključ/vrijednost su uključeni kao HTTP zaglavlja u zahtjev.
Webhook zahtjev tijelo
JSON korisni učitavanje poslano na vaš webhook URL ima sljedeću strukturu:
{
"from": "0443914272",
"to": "50001",
"mid": "7748021",
"action": {
"confirm": true
}
}
| Polje | Vrsta | Opis |
|---|---|---|
od | string | Broj telefona pozivaoca / ID pošiljaoca |
to | string | Broj telefona primaoca |
sredina | string | ID poruke |
akcija | objekt | Prilagođeni JSON objekt definiran u polju body akcije |
Kompletan primjer
Jednostavan IVR sa Timeout & Input Validation
{
"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"
}
]
}
}
]
}
]
}
Kompleksni IVR sa više menija i DTMF rutiranjem
Ovaj primjer pokazuje kako definirati više menija i kretati se između njih koristeći akciju gotoMenu kada korisnik unese nevažeći ključ ili kada poziv istekne. Takođe prikazuje prilagođena tijela i prilagođena HTTP zaglavlja poslana sa okidačima webhook-a.
{
"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"
}
]
}
}
]
}
]
}
Format odgovora
Uspješan odgovor
{
"messages": [
{
"messageId": "unique-message-id",
"recipient": "+380XXXXXXXXX",
"status": "sent"
}
]
}
Rukovanje greškama
| HTTP status | Opis |
|---|---|
| 200 | Zahtjev uspješan |
| 400 | Nevažeći format zahtjeva |
| 401 | Autentifikacija nije uspjela |
| 429 | Ograničenje stope je premašeno |
| 500 | Interna greška servera |
cURL primjer
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"
}
]
}
}
]
}
]
}'
Najbolje prakse
- Audio fajlovi - Osigurajte da su uvodni URL-ovi dostupni i audio datoteke u podržanim formatima
- Webhook pouzdanost - Dizajnirajte webhookove da brzo reaguju (unutar 2 sekunde)
- DTMF opcije - Ograničite opcije menija na 4-6 izbora za bolje korisničko iskustvo
- Rukovanje timeoutom - Koristite
idleTimeoutMsecda odredite prilagođena ograničenja neaktivnosti (npr. 10000 ms) i konfigurirajte graciozan rezervni korak ispodpogrešnogDTMF ključa (kao što je ponavljanje menija ili spuštanje slušalice) - Tok poziva sa više menija - Pažljivo koristite
gotoMenukako biste spriječili beskonačne petlje prilikom usmjeravanja korisnika nazad na prethodne menije - Zamjenska strategija - Koristite zamjenske poruke za korisnike koji ne odgovaraju ili prekinu vezu
Povezane teme
- Pošalji poruku - Opći vodič za slanje poruka
- Flash poziv - Jednostavni glasovni pozivi za potvrdu
- Provjeri status - Pratite status isporuke poruke
- Vrste poruka - Pregled svih podržanih tipova poruka