Wykorzystując możliwości, które stwarza usługa IVR API - nowość stworzyliśmy bardzo łatwo zegarynkę - aplikację, której zadaniem jest podanie przez telefon aktualnej daty i godziny.
Aplikacja została stworzona w PHP, ale można użyć innego języka. Dane są przesyłane przez metodę POST protokołu HTTP. Parametry opisujące zapytanie znajdują się w polu „request“ i są one opakowane do formatu JSON.
Zegarynka dostępna jest pod numerem 616222612. Algorytm działania aplikacji jest następujący:
Poniżej znajduje się pełen kod PHP zegarynki.
<? ini_set('log_errors', 'error_log'); ini_set('error_log', '/tmp/php-error.log'); ini_set('log_errors', 'On'); ini_set('display_errors', 'Off'); ini_set('error_reporting', E_ALL); // stany aplikacji define('STATE_CONNECTED', 1); define('STATE_PLAYED_POWITANIE', 2); define('STATE_PLAYED_TIME', 3); // zapowiedzi - przypisanie nazw zapowiedzi do // odpowiednich plików ustawionych w ipfon24 define('POWITANIE', 0); define('POZEGNANIE', 1); // adres, na ktory beda wysylane powiadomienia define('ADMINISTRATOR_EMAIL', 'admin@admin.pl'); // sciezka do pliku logu define('LOG_FILENAME', '/tmp/app-log.txt'); function _log($text) { $mail_text = date('Y-m-d H:i:s ') . $text . "\n"; $f = fopen(LOG_FILENAME, "a+"); fwrite($f, $mail_text); fclose($f); } _log("Polaczony"); if (get_magic_quotes_gpc()) $_POST["request"] = stripslashes($_POST["request"]); _log("Zawartosc zapytania: " . $_POST["request"]); $request = (array) json_decode($_POST["request"]); $session = (array) $request["Session"]; _log(var_export($request, TRUE)); // w przypadku, gdy otrzymujemy komunikat o bledzie wysylamy // na e-mail powiadomienie i konczymy prace if (array_key_exists("Error", $request)) { mail(ADMINISTRATOR_EMAIL, "Blad aplikacji", var_export($request, TRUE)); } _log("Zawartosc sesji na poczatku: " . var_export($session, TRUE)); $response = array(); if (!$session["state"]) $session["state"] = STATE_CONNECTED; _log("Stan: " . $session["state"]); $event = (array) $request["Event"]; _log("Event: " . var_export($event, TRUE)); switch ($session["state"]) { case STATE_CONNECTED: $response["Action"] = array("Type" => "Play", "Prompt" => POWITANIE); $session["state"] = STATE_PLAYED_POWITANIE; break; case STATE_PLAYED_POWITANIE: $response["Action"] = array('Type' => 'SayDate', 'Format' => 'AHM', 'Timestamp' => time()); $session["state"] = STATE_PLAYED_TIME; break; case STATE_PLAYED_TIME: $response["Action"] = array("Type" => "Play", "Prompt" => POZEGNANIE); $session["state"] = STATE_GOODBYE; break; default: $response["Action"] = array('Type' => 'Hangup'); _log("Nieznany stan?: " . $session["state"]); break; } _log("session: " . var_export($session, TRUE)); $response["Session"] = $session; _log("response: " . var_export($response, TRUE)); echo json_encode($response); ?>
ipfon - wszystkie prawa zastrzeżone
projekt: difronte
Ten serwis wykorzystuje pliki cookies. Zapoznaj się z naszą Polityką Prywatności.
[Zamknij i nie pokazuj więcej tego komunikatu]