diff --git a/app/call_centers/call_center_agent_status.php b/app/call_centers/call_center_agent_status.php index ea5a99d899..b9251ea1d3 100644 --- a/app/call_centers/call_center_agent_status.php +++ b/app/call_centers/call_center_agent_status.php @@ -80,8 +80,11 @@ $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 = "select q.*, d.domain_name "; + $sql .= "from v_call_center_queues as q, v_domains as d "; + $sql .= "where q.domain_uuid = :domain_uuid "; + $sql .= "and d.domain_uuid = :domain_uuid "; + $sql .= "and q.domain_uuid = d.domain_uuid "; $sql .= "order by queue_name asc "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $database = new database; @@ -93,8 +96,11 @@ $x = 0; if (is_array($call_center_queues)) { foreach ($call_center_queues as $queue) { + //set the queue id + $queue_id = $queue['queue_extension'].'@'.$queue['domain_name']; + //get the queue list from event socket - $switch_cmd = "callcenter_config queue list agents ".$queue['call_center_queue_uuid']; + $switch_cmd = "callcenter_config queue list agents ".$queue_id; $event_socket_str = trim(event_socket_request($fp, 'api '.$switch_cmd)); $queue_list = csv_to_named_array($event_socket_str, '|'); $call_center_queues[$x]['queue_list'] = $queue_list; @@ -158,7 +164,7 @@ //use the http post array to change the status if (is_array($_POST['agents'])) { foreach($_POST['agents'] as $row) { - if (strlen($row['agent_status']) > 0) { + if (isset($row['agent_status'])) { //agent set status if ($fp) { //set the user_status @@ -217,6 +223,17 @@ } //echo $command."\n"; + //get the queue_id + if (isset($row['queue_uuid']) && is_uuid($row['queue_uuid'])) { + if (is_array($call_center_queues)) { + foreach ($call_center_queues as $queue) { + if ($queue['call_center_queue_uuid'] == $row['queue_uuid']) { + $queue_id = $queue['queue_extension'].'@'.$queue['domain_name']; + } + } + } + } + //set the agent status to available and assign the agent to the queue with the tier if (isset($row['queue_uuid']) && $row['agent_status'] == 'Available') { //set the call center status @@ -225,7 +242,7 @@ //assign the agent to the queue if (is_uuid($row['queue_uuid']) && is_uuid($row['agent_uuid'])) { - $command = "api callcenter_config tier add ".$row['queue_uuid']." ".$row['agent_uuid']." 1 1"; + $command = "api callcenter_config tier add ".$queue_id." ".$row['agent_uuid']." 1 1"; //echo $command."
\n"; $response = event_socket_request($fp, $command); } @@ -234,7 +251,7 @@ //un-assign the agent from the queue if (isset($row['queue_uuid']) && $row['agent_status'] == 'Logged Out') { if (is_uuid($row['queue_uuid']) && is_uuid($row['agent_uuid'])) { - $command = "api callcenter_config tier del ".$row['queue_uuid']." ".$row['agent_uuid']; + $command = "api callcenter_config tier del ".$queue_id." ".$row['agent_uuid']; //echo $command."
\n"; $response = event_socket_request($fp, $command); }