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]