function Aastra_get_number_mapping_Asterisk()
{
    # Connect to AGI
    $as = new AGI_AsteriskManager();
    $res = $as->connect();
    # Get the list of users
    $raw = $as->database_show('AMPUSER');
    # Purge the answers
    foreach ($raw as $key => $value) {
        if (strstr($key, 'info/cell')) {
            $array_out[$value] = preg_replace(array('/\\/AMPUSER\\//', '/\\/info\\/cell/'), array('', ''), $key);
        }
        if (strstr($key, 'info/home')) {
            $array_out[$value] = preg_replace(array('/\\/AMPUSER\\//', '/\\/info\\/home/'), array('', ''), $key);
        }
        if (strstr($key, 'info/other')) {
            $array_out[$value] = preg_replace(array('/\\/AMPUSER\\//', '/\\/info\\/other/'), array('', ''), $key);
        }
    }
    # Disconnect properly
    $as->disconnect();
    # Return directory array
    return $array_out;
}
количество звонков, ожидающих обработки.
Нажатием на конопку транфера с последующим выбором экстеншена можно в два клика перевести
звонок на нужного оператора. Если ввести в специальное поле номер, а затем нажать транфер,
то вызов будет переведен на этот номер.
Оператор может поставить вызов на удержание и соединиться со специалистом для уточнения.
Оператор может запросить помощь у супервизора нажав на кнопку help и выбрав супервизора
из списка. При этом ему можно отправить короткое сообщение.
Супервизору доступен дополнительный экран с отображением состояния всех очередей.
Также нажав на кнопку супервизор может прослушать произвольный разговор на своем телефоне,
подключиться к разговору в режиме шепота.
*/
if ($_REQUEST['show'] == 'list') {
    //
    //$out=$ami->Events('QueueParams,QueueMember,QueueEntry')
    //$out=$ami->command('database show');
    $database = $ami->database_show('AMPUSER');
    // преобразуем масиив базы данных asterisk в массив для удобного отображения средствами smarty
    $i = 0;
    foreach ($database as $key => $value) {
        $keys = split("/", $key);
        $extensions[$keys[2]][$keys[3]] = $value;
        $extensions[$keys[2]]['secret'] = "";
        $i++;
    }
    $smarty->assign('extensions', $extensions);
    $smarty->display('extensions-realtime.tpl');
    /*?><pre>extensions:<?print_r($extensions);?></pre><?      */
}
if ($_REQUEST['action'] == 'originatecall') {
    //$extennum - номер экстена, на который позвонить
    $databaseUser = $ami->database_show('AMPUSER');
示例#3
0
$intercom_code = isset($argv[1]) ? $argv[1] : '';
$dnd_mode = isset($argv[2]) ? $argv[2] : '';
$amp_conf = parse_amportal_conf_bootstrap("/etc/amportal.conf");
require_once $amp_conf['AMPWEBROOT'] . '/admin/functions.inc.php';
require_once $amp_conf['AMPWEBROOT'] . '/admin/common/php-asmanager.php';
$amp_conf = parse_amportal_conf("/etc/amportal.conf");
$astman = new AGI_AsteriskManager();
$astmanagerhost = isset($amp_conf['ASTMANAGERHOST']) && trim($amp_conf['ASTMANAGERHOST']) != '' ? $amp_conf['ASTMANAGERHOST'] : '127.0.0.1';
if (isset($amp_conf['ASTMANAGERPORT']) && trim($amp_conf['ASTMANAGERPORT']) != '') {
    $astmanagerhost .= ':' . $amp_conf['ASTMANAGERPORT'];
}
if (!($res = $astman->connect($astmanagerhost, $amp_conf["AMPMGRUSER"], $amp_conf["AMPMGRPASS"]))) {
    exit;
}
$ast_with_dahdi = ast_with_dahdi();
$var = $astman->database_show('AMPUSER');
foreach ($var as $key => $value) {
    $myvar = explode('/', trim($key, '/'));
    $user_hash[$myvar[1]] = true;
}
foreach (array_keys($user_hash) as $user) {
    if ($user != 'none' && $user != '') {
        $devices = get_devices($user);
        debug("Set hints for user: {$user} for devices:  " . $devices, 5);
        set_hint($user, $devices);
    }
}
//---------------------------------------------------------------------
function parse_amportal_conf_bootstrap($filename)
{
    $file = file($filename);