From 69e892e7901d936e51e7a7a418e2b600f6892adf Mon Sep 17 00:00:00 2001 From: agree Date: Thu, 22 Apr 2021 18:51:25 -0400 Subject: [PATCH] [callcenter] Add ability for callcenter presence * Freeswitch requires callcenters to have queue_name@domain for presence to work --- app/call_center_active/call_center_active_inc.php | 6 +++--- app/call_centers/call_center_queue_edit.php | 10 +++++----- app/call_centers/cmd.php | 2 +- app/call_centers/resources/classes/call_center.php | 2 +- .../scripts/configuration/callcenter.conf.lua | 4 ++-- app/xml_cdr/resources/classes/xml_cdr.php | 9 ++++++++- 6 files changed, 20 insertions(+), 13 deletions(-) diff --git a/app/call_center_active/call_center_active_inc.php b/app/call_center_active/call_center_active_inc.php index 5af2f4a6a4..a25fa73113 100644 --- a/app/call_center_active/call_center_active_inc.php +++ b/app/call_center_active/call_center_active_inc.php @@ -116,7 +116,7 @@ //send the event socket command and get the response //callcenter_config queue list tiers [queue_name] | - $switch_command = 'callcenter_config queue list tiers '.$queue_uuid; + $switch_command = 'callcenter_config queue list tiers '.$queue_uuid."@".$_SESSION["domain_name"]; $event_socket_str = trim(event_socket_request($fp, 'api '.$switch_command)); $result = str_to_named_array($event_socket_str, '|'); @@ -138,7 +138,7 @@ //send the event socket command and get the response //callcenter_config queue list agents [queue_name] [status] | - $switch_command = 'callcenter_config queue list agents '.$queue_uuid; + $switch_command = 'callcenter_config queue list agents '.$queue_uuid."@".$_SESSION["domain_name"]; $event_socket_str = trim(event_socket_request($fp, 'api '.$switch_command)); $agent_result = str_to_named_array($event_socket_str, '|'); @@ -287,7 +287,7 @@ //send the event socket command and get the response //callcenter_config queue list members [queue_name] if (is_uuid($queue_uuid)) { - $switch_command = 'callcenter_config queue list members '.$queue_uuid; + $switch_command = 'callcenter_config queue list members '.$queue_uuid."@".$_SESSION["domain_name"]; $event_socket_str = trim(event_socket_request($fp, 'api '.$switch_command)); $result = str_to_named_array($event_socket_str, '|'); if (!is_array($result)) { unset($result); } diff --git a/app/call_centers/call_center_queue_edit.php b/app/call_centers/call_center_queue_edit.php index 622f5cc86d..ed2c7e5567 100644 --- a/app/call_centers/call_center_queue_edit.php +++ b/app/call_centers/call_center_queue_edit.php @@ -142,7 +142,7 @@ if ($fp) { //callcenter_config tier del [queue_name] [agent_name] if (is_uuid($call_center_queue_uuid) && is_uuid($call_center_agent_uuid)) { - $cmd = "api callcenter_config tier del ".$call_center_queue_uuid." ".$call_center_agent_uuid; + $cmd = "api callcenter_config tier del ".$call_center_queue_uuid."@".$_SESSION['domain_name']." ".$call_center_agent_uuid; $response = event_socket_request($fp, $cmd); } } @@ -347,7 +347,7 @@ if (strlen($queue_cc_exit_keys) > 0) { $dialplan_xml .= " \n"; } - $dialplan_xml .= " \n"; + $dialplan_xml .= " \n"; if ($destination->valid($queue_timeout_app.':'.$queue_timeout_data)) { $dialplan_xml .= " \n"; } @@ -430,19 +430,19 @@ */ //add the agent if (is_uuid($call_center_queue_uuid) && is_uuid($call_center_agent_uuid) && is_numeric($tier_level) && is_numeric($tier_position)) { - $cmd = "api callcenter_config tier add ".$call_center_queue_uuid." ".$call_center_agent_uuid." ".$tier_level." ".$tier_position; + $cmd = "api callcenter_config tier add ".$call_center_queue_uuid."@".$_SESSION["domain_name"]." ".$call_center_agent_uuid." ".$tier_level." ".$tier_position; $response = event_socket_request($fp, $cmd); } usleep(200); //agent set level if (is_uuid($call_center_queue_uuid) && is_uuid($call_center_agent_uuid) && is_numeric($tier_level)) { - $cmd = "api callcenter_config tier set level ".$call_center_queue_uuid." ".$call_center_agent_uuid." ".$tier_level; + $cmd = "api callcenter_config tier set level ".$call_center_queue_uuid."@".$_SESSION["domain_name"]." ".$call_center_agent_uuid." ".$tier_level; $response = event_socket_request($fp, $cmd); } usleep(200); //agent set position if (is_uuid($call_center_queue_uuid) && is_uuid($call_center_agent_uuid) && is_numeric($tier_position)) { - $cmd = "api callcenter_config tier set position ".$call_center_queue_uuid." ".$call_center_agent_uuid." ".$tier_position; + $cmd = "api callcenter_config tier set position ".$call_center_queue_uuid."@".$_SESSION["domain_name"]." ".$tier_position; $response = event_socket_request($fp, $cmd); } usleep(200); diff --git a/app/call_centers/cmd.php b/app/call_centers/cmd.php index 3ba5c52541..ec00bdd729 100644 --- a/app/call_centers/cmd.php +++ b/app/call_centers/cmd.php @@ -67,7 +67,7 @@ if ($fp) { $response = event_socket_request($fp, 'api reloadxml'); if (isset($cmd) && isset($queue)) { - $response = event_socket_request($fp, 'api callcenter_config queue '.$cmd. ' '.$queue); + $response = event_socket_request($fp, 'api callcenter_config queue '.$cmd. ' '.$queue."@".$_SESSION["domain_name"]); } fclose($fp); } diff --git a/app/call_centers/resources/classes/call_center.php b/app/call_centers/resources/classes/call_center.php index 53b08e0065..169d289172 100644 --- a/app/call_centers/resources/classes/call_center.php +++ b/app/call_centers/resources/classes/call_center.php @@ -352,7 +352,7 @@ //delete the queue in the switch if ($fp) { foreach ($uuids as $uuid) { - $cmd = "api callcenter_config queue unload ".$uuid; + $cmd = "api callcenter_config queue unload ".$uuid."@".$_SESSION["domin_name"]; $response = event_socket_request($fp, $cmd); } } diff --git a/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/callcenter.conf.lua b/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/callcenter.conf.lua index 8d747bd7c4..b6efb21000 100644 --- a/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/callcenter.conf.lua +++ b/app/scripts/resources/scripts/app/xml_handler/resources/scripts/configuration/callcenter.conf.lua @@ -101,7 +101,7 @@ queue_name = queue_name:gsub(" ", "-"); --start the xml - table.insert(xml, [[ ]]); + table.insert(xml, [[ ]]); table.insert(xml, [[ ]]); --set ringback queue_ringback = format_ringback(queue_moh_sound); @@ -272,7 +272,7 @@ --build the xml table.insert(xml, [[ array[$key]['cc_side'] = urldecode($xml->variables->cc_side); $this->array[$key]['cc_member_uuid'] = urldecode($xml->variables->cc_member_uuid); $this->array[$key]['cc_queue_joined_epoch'] = urldecode($xml->variables->cc_queue_joined_epoch); - $this->array[$key]['cc_queue'] = urldecode($xml->variables->cc_queue); + //remove the @domain from the queue name + $cc_queue = urldecode($xml->variables->cc_queue); + if (strpos($cc_queue, "@")) { + $this->array[$key]['cc_queue'] = substr($cc_queue, 0, strpos($cc_queue, "@")); + } + else { + $this->array[$key]['cc_queue'] = $cc_queue; + } $this->array[$key]['cc_member_session_uuid'] = urldecode($xml->variables->cc_member_session_uuid); $this->array[$key]['cc_agent_uuid'] = urldecode($xml->variables->cc_agent_uuid); $this->array[$key]['cc_agent'] = urldecode($xml->variables->cc_agent);