Portions created by the Initial Developer are Copyright (C) 2017-2019 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'); //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) { //agent set status if ($fp) { // update the database $array['call_center_agents'][0]['call_center_agent_uuid'] = $row['id']; $array['call_center_agents'][0]['domain_uuid'] = $_SESSION['user']['domain_uuid']; $array['call_center_agents'][0]['agent_status'] = $row['agent_status']; $database = new database; $database->app_name = 'call_centers_dashboard'; $database->app_uuid = '95788e50-9500-079e-2807-fd530b0ea370'; $database->save($array); //set the call center status $cmd = "api callcenter_config agent set status ".$row['id']." '".$row['agent_status']."'"; $response = event_socket_request($fp, $cmd); //set the agent status to available and assign the agent to the queue with the tier if ($row['agent_status'] == 'Available') { //assign the agent to the queue $cmd = "api callcenter_config tier add ".$row['queue_extension']."@".$_SESSION['domain_name']." ".$row['id']." 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_extension']."@".$_SESSION['domain_name']." ".$row['id']; $response = event_socket_request($fp, $cmd); } usleep(200); unset($parameters); } } } //redirect header('Location: '.PROJECT_PATH.'/core/dashboard/'); exit; } //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, '|'); //get the call center queues from the database $sql = "select * from v_call_center_queues "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "order by queue_extension asc "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $database = new database; $call_center_queues = $database->select($sql, $parameters, 'all'); $num_rows = !is_array($call_center_queues) ? 0 : @sizeof($call_center_queues); unset($sql, $parameters); //get the agents from the database $sql = "select * from v_call_center_agents "; $sql .= "where user_uuid = :user_uuid "; $sql .= "and domain_uuid = :domain_uuid"; $parameters['user_uuid'] = $_SESSION['user_uuid']; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $database = new database; $agents = $database->select($sql, $parameters, 'all'); if (count($agents) > 0) { $agent = $agents[0]; } unset($sql, $parameters); //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_extension'] .'@'. $_SESSION['user']['domain_name'] == $tier['queue'] && $agent['call_center_agent_uuid'] == $tier['agent']) { $call_center_queues[$x]['queue_status'] = $agent['agent_status']; } } $x++; } //includes the header require_once "resources/header.php"; //radio button cycle script echo "\n"; //show the content echo "
\n"; echo "
".$text['header-call_center_queues'].($agent['agent_name'] != '' ? "    Agent: ".$agent['agent_name']."" : "")."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'collapse'=>false,'onclick'=>"list_form_submit('form_list_call_center_agent_dashboard');"]); echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; // echo " \n"; echo "\n"; if (is_array($call_center_queues) && @sizeof($call_center_queues) != 0) { $x = 0; foreach ($call_center_queues as $row) { $onclick = "onclick=\"cycle('agents[".$x."][agent_status]');\""; echo "\n"; echo " \n"; // echo " \n"; echo " \n"; echo "\n"; $x++; } unset($call_center_queues); } echo "
".$text['label-queue_name']."".$text['label-status']."".$text['label-options']."
".escape($row['queue_name']).""; // if ($row['queue_status'] == "Available") { // echo $text['option-available']; // } // if ($row['queue_status'] == "Logged Out") { // echo $text['option-logged_out']; // } // echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo "
\n"; echo "\n"; echo "
\n"; ?>