Portions created by the Initial Developer are Copyright (C) 2017 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('call_center_queue_view')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get($_SESSION['domain']['language']['code'], 'app/call_centers'); //includes and title require_once "resources/header.php"; $document['title'] = $text['title-call_center_queues']; require_once "resources/paging.php"; //get http variables and set as php variables $order_by = $_GET["order_by"]; $order = $_GET["order"]; //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) { foreach($_POST['agents'] as $row) { if (strlen($row['agent_status']) > 0) { //echo "
\n";
				//print_r($row);
				//echo "
\n"; //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 agent status to available and assign the agent to the queue with the tier if ($row['agent_status'] == 'Available') { //set the call center status //$cmd = "api callcenter_config agent set status ".$row['agent_name']."@".$_SESSION['domain_name']." '".$row['agent_status']."'"; //$response = event_socket_request($fp, $cmd); //assign the agent to the queue $cmd = "api callcenter_config tier add ".$row['queue_name']."@".$_SESSION['domain_name']." ".$row['agent_name']."@".$_SESSION['domain_name']." 1 1"; $response = event_socket_request($fp, $cmd); } //un-assign the agent from the queue if ($row['agent_status'] == 'Logged Out') { $cmd = "api callcenter_config tier del ".$row['queue_name']."@".$_SESSION['domain_name']." ".$row['agent_name']."@".$_SESSION['domain_name']; $response = event_socket_request($fp, $cmd); } //echo $cmd."\n"; usleep(200); } } } } //get the agent list from event socket $switch_cmd = 'callcenter_config tier list'; $event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd)); $call_center_tiers = csv_to_named_array($event_socket_str, '|'); //echo "
\n";
	//print_r($call_center_tiers);
	//echo "
\n"; //get the call center queues from the database $sql = "select * from v_call_center_queues "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "order by queue_name asc "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $call_center_queues = $prep_statement->fetchAll(PDO::FETCH_NAMED); unset ($prep_statement, $sql); //get the agents from the database $sql = "select * from v_call_center_agents "; $sql .= "where user_uuid = '".$_SESSION['user_uuid']."' "; $sql .= "and domain_uuid = '$domain_uuid' "; //$sql .= "ORDER BY agent_name ASC "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $agent = $prep_statement->fetch(PDO::FETCH_NAMED); //echo "
\n";
	//print_r($agent);
	//echo "
\n"; //update the queue status $x = 0; foreach ($call_center_queues as $queue) { $call_center_queues[$x]['queue_status'] = 'Logged Out'; foreach ($call_center_tiers as $tier) { if ($queue['queue_name'] .'@'. $_SESSION['domain_name'] == $tier['queue'] && $agent['agent_name'] .'@'. $_SESSION['domain_name'] == $tier['agent']) { $call_center_queues[$x]['queue_status'] = 'Available'; } } $x++; } //echo "
\n";
	//print_r($call_center_queues);
	//echo "
\n"; //set the row styles $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; //show the content echo "
\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; //echo "\n"; //echo " \n"; //echo "\n"; echo "
".$text['header-call_center_queues']."\n"; echo "

".$text['label-agent']."

".$agent['agent_name']."\n"; echo "
\n"; //echo $text['description-call_center_queues']."

\n"; //echo "
\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; if (count($call_center_queues) > 0) { $x = 0; foreach($call_center_queues as $row) { echo "\n"; echo " \n"; echo " \n"; echo " \n"; //echo " \n"; echo "\n"; $x++; if ($c==0) { $c=1; } else { $c=0; } } //end foreach unset($sql, $result, $row_count); } //end if results echo "\n"; echo "\n"; echo "\n"; echo "
".$text['label-queue_name']."".$text['label-status']."".$text['label-options']."
\n"; echo " ".$row['queue_name']."\n"; echo " \n"; if ($row['queue_status'] == "Available") { echo $text['option-available']; } if ($row['queue_status'] == "Logged Out") { echo $text['option-logged_out']; } echo " "; echo " \n"; echo " \n"; echo " \n"; //echo "   \n"; echo "   \n"; echo "   \n"; //echo "   \n"; //echo " \n"; echo " ".$row[queue_description]." 
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
 \n"; echo "
\n"; echo " \n"; echo "
\n"; echo "
"; echo "

"; echo "
\n"; ?>