Tato malá webová aplikace slouží jako ochrana před spamem přes IVR menu řízené webem na Odoriku.
Po přepojení na nastavené IVR menu řízené webem se ozve výzva k zadání n náhodně vygenerovaných číslic číslic (paramter "length"). V případě, že volající zadá číslice správně, vykoná se příkaz předaný jako "success", v opačném případě se vykoná příkaz předaný jako "failure".
- Po přepojení na nastavné IVR menu řízené webem Odorik zašle požadavek zahrnující ID hovoru na URL aplikace, tedy soubor index.php.
- Ten ověří přítomnost parametrů zadaných uživatelem a Odorikem, vygeneruje číselný kód a uloží jej společně s hashovaným ID hovoru do souboru data.json.
- Následně Odoriku příkaže přehrání úvodní hlášky požadující po volajícím zadání číslic, přehrání vygenerovaných číslic a nakonec vyžádá zadání DTMF znaků podle počtu generovaných číslic.
- Jakmile volající zadá DTMF znaky, Odorik je předá společně s dalšími informacemi na URL souboru verify.php.
- Ten v souboru data.json vyhledá kód dle hashovaného ID, odebere jej ze souboru a porovná jej se zadanými DTMF znaky.
- V případě úspěchu vrací Odoriku příkaz předaný jako "success", v opačném případě vrací příkaz předaný jako "failure".
V administraci vašeho Odorik účtu vytvořte nové IVR menu řízené webem. Jako URL zadejte buďto produkční adresu této aplikace: https://odorikas.jakubharabis.cz a nebo adresu na místo, kde aplikaci hostujete sami. Doplňte ji o GET parametry dle tabulky níže.
S paramtery nastavenými na obrázku tak bude po volajícím požadováno zadání 2 náhodných číslic, po úspěšném zadání se vykoná příkaz dial:*082
a po neúspěšném zadání příkaz hangup
. URL z obrázku: https://odorikas.jakubharabis.cz?length=2&success=dial_*082&failure=hangup
.
V URL se nachází 3 povinné GET parametry a 1 nepovinný.
Název | Význam | Povinný |
---|---|---|
length | Počet generovaných cifer | Ano |
success | Příkaz, který se vykoná po zadání správných cifer. | Ano |
failure | Příkaz, který se vykoná po zadání špatných cifer. | Ano |
no_prompt | Pokud je zadán, nepřehraje se úvodní hláška, jen číslice. | Ne |
Dvojtečku v příkazu nahraďte podtržítkem. Více info o příkazech: Odorik wiki.
Aplikaci je možno spustit na libovolném webovém hostingu podporujícím PHP. Je žádoucí, nicméně ne nutné, aby zvenčí byla přístupná pouze složka public. (Druhou možností je pomocí souboru .htaccess zakázat zvenčí přístup k souboru data.json)
Jak bylo zmíněno výše, je možno využít aplikaci hostovanou mnou na adrese https://odorikas.jakubharabis.cz. Je zabezpečena tak, aby soubor data.json, který obsahuje informace o generovaném kódu nebyl veřejně přístupný.
Soubor data.json obsahuje dvě informace: hashované ID hovoru a generovaný kód. Díky tomu, že je ID hovoru hashované může aplikace rozpoznat, že se jedná o tentýž hovor, nicméně není možno z uložených dat zjistit z jakého telefonního čísla hovor přichází. Pokud navíc volající nezavěsí před přepojením na výzvu zadání číslic, bude před vykonáním příkazu success jeho záznam odstraněn.