Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації щодо оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

askoziaintro

Це стара версія документу!


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

Данная механика предназначена для предварительного оповещения пользователя голосом о состоянии его счета, возможном недостатке средств, замороженности 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.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1