Спрощуємо життя кол-центру

Ця механіка призначена для попереднього сповіщення користувача голосом про стан його рахунку, можливу нестачу коштів, замороженості etc, перед/замість передання його дзвінка до кол-центру.

……

Тут має бути довга і сумна розповідь, про створення AGI додатка і як знайти його реальний ідентифікатор.

…….

<?php
 
/**
 * Config section
 */
//Ubilling serial number
$ubillingSerial = 'UBxxxxxxxxxxxxxxxxxxx';
//Full Ubilling URL for API connection
$ubillingApiUrl = 'http://ourisp.com/billing/';
 
//user state => file_name to playback
$userStates = array(
    '2' => 'nomoney',
    '3' => 'frozen'
);
/**
 * End of config section
 */
 
/**
 * Returns some channel variable value
 *
 * @param object $agi
 * @param string $_varName
 *
 * @return string
 */
function GetVarChannnel($agi, $_varName) {
    $v = $agi->get_variable($_varName);
    if (!$v['result'] == 0) {
        $agi->verbose($_varName . ' ---> ' . $v['data'], 10);
        return $v['data'];
    } else {
        $agi->verbose($_varName . ' not set', 10);
        return "";
    }
}
 
require('phpagi.php');
$agi = new AGI();
 
//answering incoming call
$agi->answer();
//getting incoming number
$number = GetVarChannnel($agi, "CALLERID(num)");
//getting user state from billing API
$url = $ubillingApiUrl . '?module=remoteapi&key=' . $ubillingSerial . '&action=askozianum&param=' . $number;
$user = file_get_contents($url);
$user = trim($user);
//play some file according to recieved user state
if (isset($userStates[$user])) {
    $agi->exec('Playback', $userStates[$user]);
}
 
?>

а ось тут, як це все використовувати в контексті редактора маршрутів