Wykorzystując możliwości, które stwarza usługa IVR API - nowość stworzyliśmy bardzo łatwo aplikację, której zadaniem jest wykonanie odpowiednich działań w zależności od numeru osoby dzwoniącej.
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.
Algorytm działania aplikacji jest następujący:
Poniżej znajduje się pełen kod PHP tej aplikacji.
<? // włączamy logowanie błędów do pliku; należy odpowiednio samemu ustawić poprawną ścieżkę ini_set('log_errors', 'error_log'); ini_set('error_log', '/tmp/plik-z-logami-php'); ini_set('log_errors', 'On'); ini_set('display_errors', 'Off'); ini_set('error_reporting', E_ALL); // adres e-mail, na który będziemy wysyłać komunikaty błędów define('ADMINISTRATOR_EMAIL', 'adres@email'); function _error($text) { header('HTTP/1.0 500 Blad\n'); echo $text; } // jeśli PHP ma włączone magic_quotes, to musimy wyłuskać oryginalną wartość parametru $_POST["request"] if (get_magic_quotes_gpc()) $_POST["request"] = stripslashes($_POST["request"]); $request = (array) json_decode($_POST["request"]); // jeśli nie otrzymaliśmy poprawnego zapytania - kończymy działanie if (!$request) { die("Blad - request jest pusty"); } if ($request["Error"]) { mail(ADMINISTRATOR_EMAIL, '', var_export($request, TRUE)); exit(0); } $response = array(); if (!array_key_exists("Event", $request)) { _error("Blad - brak zdarzenia" . var_export($request, TRUE)); } if (preg_match('/^(0|\+48|)6161234567$/', $request["FromNumber"])) { $response["Action"] = array("Type" => "CallExternalNumber", "Destination" => "501234567", "Options" => "PlayCallStatus,Timeout=10"); } else { if ($request["ChannelStatus"] == "Ringing") $response["Action"] = array("Type" => "DontAnswer"); else $response["Action"] = array("Type" => "Hangup"); } // przechowywanie danych sesji pomiędzy wywołaniami $response["Session"] = (array) $request["Session"]; 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]