Пример #1
0
}
$add_custom = '			<tr>
				<td class="bar-search" align="left" bgcolor="#777777">
					<font face="verdana" size="1" color="#ffffff"><b>&nbsp;&nbsp;' . __('Поиск') . '</b></font>
				</td>
				<td align="left" bgcolor="#eeeeee">
				<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#eeeeee"><tr>
				<td class="bar-search" align="left">
				&nbsp;&nbsp;&nbsp;&nbsp;' . __('По телефону') . ': <input type="text" NAME="callerid" value="' . $callerid . '">
				&nbsp;&nbsp;&nbsp;' . __('По имени клиента') . ': <input type="text" NAME="clientname" value="' . $clientname . '">
				&nbsp;&nbsp;&nbsp;' . __('Выбор оператора или группы') . ':
				<select name="sipusr">
				    <OPTION value="">' . __('Все') . '</option>
';
$queues = values("SELECT * FROM " . $conf_realtime_db . ".queues WHERE 1 ORDER BY name");
$input_lines = get_params_array(0, 'input_lines');
for ($i = 0; $i < count($queues); $i++) {
    for ($n = 0; $n < count($input_lines); $n++) {
        $ar = explode(':', $input_lines[$n]);
        if ($queues[$i]["name"] == $ar[2]) {
            $links[] = array($ar[1], $ar[0]);
        }
    }
}
for ($i = 0; $i < count($links); $i++) {
    if ($sipusr == $links[$i][0]) {
        $sel = ' selected';
    } else {
        $sel = '';
    }
    $add_custom .= '<OPTION value="' . $links[$i][0] . '"' . $sel . '>' . __($links[$i][1]) . '</option>
Пример #2
0
}
if (!isset($sort)) {
    $sort = 'calldate';
}
if (!in_array($sort, array('calldate', 'src', 'dst', 'duration', 'billsec', 'disposition'))) {
    $sort = 'calldate';
}
if ($sort == "calldate") {
    $sort = 'calldate DESC';
}
$aLinkParams = 'index.php?module=' . $sModule . '&page=' . $page . '&sort=calldate&link=1';
//////////***************************************************///////////////
list($cdr_restr, $cs_restr) = get_filters("periods,dates,status,directions,serchbynumber,perpage");
// GET FILTERS AND THEM RESULT
if ($posted == 1) {
    if ($usr_restrictions = get_params_array(0, "cdr_restrictions")) {
        $usr_restr = ' AND (' . $usr_restrictions[0] . ')';
    } else {
        $usr_restr = '';
    }
    //echo '123'.$cdr_restr . $usr_restr .'456';
    $duration_select = values("SELECT COUNT(*) AS c, SUM(duration) AS dur, SUM(billsec) AS bill, AVG(duration) AS avgdur, AVG(billsec) AS avgbill FROM " . $conf_cdr_db . ".cdr WHERE" . $cdr_restr . $usr_restr . " ORDER BY " . $sort);
    if (count($duration_select) > 0) {
        $dur_sec = $duration_select[0]['dur'];
        $avg_dur = $duration_select[0]['avgdur'];
        $bill_sec = $duration_select[0]['bill'];
        $avg_bill = $duration_select[0]['avgbill'];
        $cal_num = $duration_select[0]['c'];
    } else {
        $dur_sec = 0;
        $avg_dur = 0;
Пример #3
0
function queue_operators_stat($current_queue = '%')
{
    $cur_date = Date("Y-m-d");
    $opers = values("SELECT * FROM `" . conf_cdr_db . "`.`QueueMember` WHERE Queue LIKE '" . $current_queue . "' GROUP BY Name ORDER BY Name");
    $opts = array('incoming_count', 'incoming_duration', 'incoming_avg_duration', 'outgoing_calls', 'outgoing_duration', 'outgoing_calls_answered', 'picked_count', 'maxhold', 'current_status', 'status_time', 'status_info');
    $hiden_agents = get_params_array('monitor', 'hidden_agents');
    for ($i = 0; $i < count($opers); $i++) {
        for ($n = 0; $n < count($opts); $n++) {
            if (!in_array($opers[$i]['Name'], $hiden_agents)) {
                $a[$opers[$i]['Name']][$opts[$n]] = 0;
            }
        }
    }
    for ($i = 0; $i < count($opers); $i++) {
        if ($opers[$i]['Paused'] == 0) {
            $a[$opers[$i]['Name']]['current_status'] = $opers[$i]['Status'];
        } else {
            $a[$opers[$i]['Name']]['current_status'] = 9;
        }
    }
    $shown_agents = array_keys($a);
    $incoming = values("SELECT agent, COUNT(*) AS incoming_count, SUM(callduration) AS incoming_duration, AVG(callduration) AS incoming_avg_duration, MAX(holdtime) AS maxhold FROM " . conf_realtime_db . ".call_status WHERE timestamp BETWEEN '" . $cur_date . " 00:00:00' AND '" . $cur_date . " 23:59:59' AND queue LIKE '" . $current_queue . "' GROUP BY agent ORDER BY agent");
    $picked = values("SELECT agent, COUNT(*) AS picked_count FROM " . conf_realtime_db . ".call_status WHERE timestamp BETWEEN '" . $cur_date . " 00:00:00' AND '" . $cur_date . " 23:59:59' AND queue LIKE '" . $current_queue . "' AND (status='COMPLETEAGENT' OR status='COMPLETECALLER' OR status='CONNECT') GROUP BY agent ORDER BY agent");
    $servicelevel = values("SELECT agent, COUNT(*) AS picked_in20s_count FROM `" . conf_realtime_db . "`.`call_status` WHERE `queue` LIKE '" . $current_queue . "' AND holdtime<=20 AND `timestamp` BETWEEN '" . $cur_date . " 00:00:00' AND '" . $cur_date . " 23:59:59' GROUP BY agent ORDER BY agent");
    $agents_query = '';
    for ($i = 0; $i < count($shown_agents); $i++) {
        $agents_query .= " OR src='" . $shown_agents[$i] . "'";
    }
    if ($agents_query == '') {
        $agents_query = 0;
    } else {
        $agents_query = substr($agents_query, 4);
    }
    $out_calls = values("SELECT src AS agent, COUNT(*) AS outgoing_calls, SUM(duration) AS outgoing_duration FROM `cdr` WHERE (" . $agents_query . ") AND calldate BETWEEN '" . $cur_date . " 00:00:00' AND '" . $cur_date . " 23:59:59' GROUP BY src");
    $out_calls_answered = values("SELECT src AS agent, COUNT(*) AS outgoing_calls_answered FROM `cdr` WHERE (" . $agents_query . ") AND calldate BETWEEN '" . $cur_date . " 00:00:00' AND '" . $cur_date . " 23:59:59' AND disposition='ANSWERED' GROUP BY src");
    for ($i = 0; $i < count($incoming); $i++) {
        $a[$incoming[$i]['agent']]['incoming_count'] = $incoming[$i]['incoming_count'];
        $a[$incoming[$i]['agent']]['incoming_duration'] = $incoming[$i]['incoming_duration'];
        $a[$incoming[$i]['agent']]['incoming_avg_duration'] = round($incoming[$i]['incoming_avg_duration']);
        $a[$incoming[$i]['agent']]['maxhold'] = $incoming[$i]['maxhold'];
    }
    for ($i = 0; $i < count($picked); $i++) {
        $a[$picked[$i]['agent']]['picked_count'] = $picked[$i]['picked_count'];
    }
    for ($i = 0; $i < count($servicelevel); $i++) {
        $a[$servicelevel[$i]['agent']]['picked_in20s_count'] = $servicelevel[$i]['picked_in20s_count'];
    }
    for ($i = 0; $i < count($out_calls); $i++) {
        $a[$out_calls[$i]['agent']]['outgoing_calls'] = $out_calls[$i]['outgoing_calls'];
        $a[$out_calls[$i]['agent']]['outgoing_duration'] = $out_calls[$i]['outgoing_duration'];
    }
    for ($i = 0; $i < count($out_calls_answered); $i++) {
        $a[$out_calls_answered[$i]['agent']]['outgoing_calls_answered'] = $out_calls_answered[$i]['outgoing_calls_answered'];
    }
    return $a;
}