Упрощаем жизнь колл-центру

Данная механика предназначена для предварительного оповещения пользователя голосом о состоянии его счета, возможном недостатке средств, замороженности 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]);
}
 
?>

а вот тут, как это все использовать в контексте редактора маршрутов

askoziaintro.txt · Последние изменения: 2018/07/23 02:30 — nightfly
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki