Portions created by the Initial Developer are Copyright (C) 2008-2012 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; if (permission_exists('call_center_agent_view')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //includes and title require_once "resources/header.php"; $document['title'] = $text['title-call_center_agent_status']; require_once "resources/paging.php"; //setup the event socket connection $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); //get the http post values and set them as php variables if (count($_POST) > 0) { //include the dnd php class include PROJECT_PATH."/app/calls/resources/classes/do_not_disturb.php"; foreach($_POST['agents'] as $row) { if (strlen($row['agent_status']) > 0) { //agent set status if ($fp) { //set the user_status $sql = "update v_users set "; $sql .= "user_status = '".$row['agent_status']."' "; $sql .= "where domain_uuid = '".$domain_uuid."' "; $sql .= "and username = '".$row['agent_name']."' "; //echo $sql."\n"; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); //set the call center status if ($row['agent_status'] == "Do Not Disturb") { //set the default dnd action $dnd_action = "add"; //set the call center status to Logged Out $cmd = "api callcenter_config agent set status ".$row['agent_name']."@".$_SESSION['domains'][$domain_uuid]['domain_name']." 'Logged Out'"; } else { $cmd = "api callcenter_config agent set status ".$row['agent_name']."@".$_SESSION['domains'][$domain_uuid]['domain_name']." '".$row['agent_status']."'"; } $response = event_socket_request($fp, $cmd); //echo $cmd."\n"; usleep(200); } //loop through the list of assigned extensions //foreach ($_SESSION['user']['extension'] as &$sub_row) { // //update dnd // $dnd = new do_not_disturb; // //$dnd->debug = false; // $dnd->domain_uuid = $domain_uuid; // $dnd->domain_name = $_SESSION['domain_name']; // $dnd->extension = $sub_row["user"]; // if ($row['status'] == "Do Not Disturb") { // $dnd->enabled = "true"; // } // else { // $dnd->enabled = "false"; // } // $dnd->set(); // unset($dnd); //} //unset ($prep_statement); } } } //get the agents from the database $sql = "select * from v_call_center_agents "; $sql .= "where domain_uuid = '$domain_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $agents = $prep_statement->fetchAll(PDO::FETCH_NAMED); //get the agent list from event socket $switch_cmd = 'callcenter_config agent list'; $event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd)); $call_center_agents = csv_to_named_array($event_socket_str, '|'); //echo "
\n";
	//print_r($call_center_agents);
	//echo "
\n"; //get the agent status from mod_callcenter and update the agent status in the agents array $x = 0; foreach ($agents as $row) { //add the domain name $domain_name = $_SESSION['domains'][$row['domain_uuid']]['domain_name']; $agents[$x]['domain_name'] = $domain_name; //update the agent status foreach ($call_center_agents as $r) { if ($r['name'] == $row[agent_name].'@'.$domain_name) { $agents[$x]['agent_status'] = $r['status']; } } //increment x $x++; } //echo "
\n";
	//print_r($agents);
	//echo "
\n"; //set the status on the user_array by using the extension as the key //foreach ($call_center_agents as $row) { // if (count($_SESSION['domains']) == 1) { // //get the extension status from the call center agent list // preg_match('/user\/(\d{2,7})/', $row['contact'], $matches); // $extension = $matches[1]; // $user_array[$extension]['username'] = $tmp[0]; // if ($user_array[$extension]['user_status'] != "Do Not Disturb") { // $user_array[$extension]['user_status'] = $row['status']; // } // } else { // $tmp = explode('@',$row["name"]); // if ($tmp[1] == $_SESSION['domain_name']) { // //get the extension status from the call center agent list // preg_match('/user\/(\d{2,7})/', $row['contact'], $matches); // $extension = $matches[1]; // $user_array[$extension]['username'] = $tmp[0]; // if ($user_array[$extension]['user_status'] != "Do Not Disturb") { // $user_array[$extension]['user_status'] = $row['status']; // } // } // } //} //show the content echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
".$text['header-call_center_agent_status']."\n"; echo " \n"; echo " \n"; echo "
\n"; echo $text['description-call_center_agent_status']."

\n"; echo "
\n"; $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $x = 0; foreach($agents as $row) { $str = ''; $str .= "\n"; $str .= " \n"; $str .= " \n"; $str .= " \n"; $str .= "\n"; if (count($_SESSION['domains']) > 1) { if ($row['domain_name'] == $_SESSION['domain_name']) { echo $str; if ($c==0) { $c=1; } else { $c=0; } } } else { echo $str; if ($c==0) { $c=1; } else { $c=0; } } $x++; } //end foreach unset($sql, $result, $row_count); echo "\n"; echo "\n"; echo "\n"; echo "
".$text['label-agent']."".$text['label-status']."".$text['label-options']."
".$row['agent_name']." ".$row['agent_status']." "; $str .= " \n"; $str .= " \n"; $str .= " \n"; $str .= " \n"; $str .= " \n"; $str .= " \n"; //$str .= " \n"; $str .= "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
 $paging_controls\n"; echo "
\n"; echo " \n"; echo "
\n"; echo "
"; echo "

"; echo "
\n"; //show the footer require_once "resources/footer.php"; ?>