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');
$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);