diff --git a/app/call_centers/call_center_agent_status.php b/app/call_centers/call_center_agent_status.php index d75ebc2624..52e1536b7a 100644 --- a/app/call_centers/call_center_agent_status.php +++ b/app/call_centers/call_center_agent_status.php @@ -120,8 +120,31 @@ $response = event_socket_request($fp, $cmd); } usleep(200); - } + + //set the blf status + //get the agents from the database + $sql = "select agent_name from v_call_center_agents "; + $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "and call_center_agent_uuid = '".$row['agent_uuid']."' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $agent_name = $prep_statement->fetchAll(PDO::FETCH_NAMED); + if ($row['agent_status'] == 'Available') { + $answer_state = 'confirmed'; + } + else { + $answer_state = 'terminated'; + } + + $call_center_notify = new call_center_notify; + $call_center_notify->domain_name = $_SESSION['domain_name']; + $call_center_notify->agent_name = $agent_name[0]['agent_name']; + $call_center_notify->answer_state = $answer_state; + $call_center_notify->agent_uuid = $row['agent_uuid']; + $call_center_notify->send_call_center_notify(); + unset($call_center_notify); + } } } } diff --git a/app/conference_centers/resources/classes/call_center_notify.php b/app/conference_centers/resources/classes/call_center_notify.php new file mode 100644 index 0000000000..7a3b54aeb5 --- /dev/null +++ b/app/conference_centers/resources/classes/call_center_notify.php @@ -0,0 +1,63 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2017 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane + KonradSC +*/ +include "root.php"; + +//define the blf_notify class + class call_center_notify { + + public $debug; + public $domain_name; + public $agent_name; + public $answer_state; + public $agent_uuid; + + + //feature_event method + public function send_call_center_notify() { + + $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + if ($fp) { + //send the event + $event = "sendevent PRESENCE_IN\n"; + $event .= "proto: agent\n"; + $event .= "event_type: presence\n"; + $event .= "alt_event_type: dialog\n"; + $event .= "Presence-Call-Direction: outbound\n"; + $event .= "state: Active (1 waiting)\n"; + $event .= "from: agent+".$this->agent_name."@".$this->domain_name."\n"; + $event .= "login: agent+".$this->agent_name."@".$this->domain_name."\n"; + $event .= "unique-id: ".$this->agent_uuid."\n"; + $event .= "answer-state: ".$this->answer_state."\n"; + event_socket_request($fp, $event); + //echo $event."
"; + fclose($fp); + } + } //function + + } //class + +?> diff --git a/app/dialplans/resources/switch/conf/dialplan/200_agent_status.xml b/app/dialplans/resources/switch/conf/dialplan/200_agent_status.xml index c911ba32ea..d4de5065be 100644 --- a/app/dialplans/resources/switch/conf/dialplan/200_agent_status.xml +++ b/app/dialplans/resources/switch/conf/dialplan/200_agent_status.xml @@ -1,8 +1,11 @@ - + + + + - \ No newline at end of file +