diff --git a/app/basic_operator_panel/resources/content.php b/app/basic_operator_panel/resources/content.php index 782b00cfc3..c96268f2ac 100644 --- a/app/basic_operator_panel/resources/content.php +++ b/app/basic_operator_panel/resources/content.php @@ -25,67 +25,111 @@ */ //includes - include "root.php"; - require_once "resources/require.php"; - require_once "resources/check_auth.php"; +include "root.php"; +require_once "resources/require.php"; +require_once "resources/check_auth.php"; //check permissions - if (permission_exists('operator_panel_view')) { - //access granted - } - else { - echo "access denied"; - exit; - } +if (permission_exists('operator_panel_view')) { + //access granted +} +else { + echo "access denied"; + exit; +} //add multi-lingual support - $language = new text; - $text = $language->get(null,'app/basic_operator_panel'); +$language = new text; +$text = $language->get(null,'app/basic_operator_panel'); //get the call activity - $operator_panel = new basic_operator_panel; - $activity = $operator_panel->call_activity(); - if (is_array($activity)) { - foreach ($activity as $extension => $fields) { - if (substr_count($fields['call_group'], ',')) { - $tmp = explode(',', $fields['call_group']); - if (is_array($tmp)) foreach ($tmp as $tmp_index => $tmp_value) { - if (trim($tmp_value) == '') { unset($tmp[$tmp_index]); } - else { $groups[] = $tmp_value; } - } - } - else if ($fields['call_group'] != '') { - $groups[] = $fields['call_group']; +$operator_panel = new basic_operator_panel; +$activity = $operator_panel->call_activity(); +if (is_array($activity)) { + foreach ($activity as $extension => $fields) { + if (substr_count($fields['call_group'], ',')) { + $tmp = explode(',', $fields['call_group']); + if (is_array($tmp)) foreach ($tmp as $tmp_index => $tmp_value) { + if (trim($tmp_value) == '') { unset($tmp[$tmp_index]); } + else { $groups[] = $tmp_value; } } } + else if ($fields['call_group'] != '') { + $groups[] = $fields['call_group']; + } } - if (is_array($groups)) { - $groups = array_unique($groups); - sort($groups); +} +if (is_array($groups)) { + $groups = array_unique($groups); + sort($groups); +} + +//get the valet info +$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); +if ($fp) { + $valet_info = event_socket_request($fp, 'api valet_info park@'.$_SESSION['domain_name']); + + //get an array of the valet call uuid and park numbers + if (isset($valet_info)) { + preg_match_all('/(.*?)<\/extension>/s', $valet_info, $valet_matches, PREG_SET_ORDER); + //view_array($valet_matches, false); + } + //view_array($valet_matches, false); + + //unset($_SESSION['valet']); + foreach($valet_matches as $row) { + if (!isset($_SESSION['valet']['uuid']['caller_id_name'])) { + $_SESSION['valet'][$row[1]]['caller_id_name'] = event_socket_request($fp, 'api uuid_getvar '.$row[1].' caller_id_name'); + } + if (!isset($_SESSION['valet']['uuid']['caller_id_number'])) { + $_SESSION['valet'][$row[1]]['caller_id_number'] = event_socket_request($fp, 'api uuid_getvar '.$row[1].' caller_id_number'); + } } -//prevent warnings - if (!is_array($_SESSION['user']['extensions'])) { - $_SESSION['user']['extensions'] = array(); + //unset the array + //view_array($_SESSION['valet']); + + //reformat the array and add the caller ID name and numbers + $x = 0; + foreach($valet_matches as $row) { + $valet_array[$x]['uuid'] = $row[1]; + $valet_array[$x]['extension'] = $row[2]; + if (isset($_SESSION['valet'][$row[1]]['caller_id_name'])) { + $valet_array[$x]['caller_id_name'] = $_SESSION['valet'][$row[1]]['caller_id_name']; + } + if (isset($_SESSION['valet'][$row[1]]['caller_id_number'])) { + $valet_array[$x]['caller_id_number'] = $_SESSION['valet'][$row[1]]['caller_id_number']; + } + $x++; } + //view_array($valet, false); + +} + +//prevent warnings +if (!is_array($_SESSION['user']['extensions'])) { + $_SESSION['user']['extensions'] = array(); +} //get registrations -- All SIP profiles $obj = new registrations; - $registrations = $obj->get("all"); +$registrations = $obj->get("all"); +//set the onhover paush refresh $onhover_pause_refresh = " onmouseover='refresh_stop();' onmouseout='refresh_start();'"; -echo ""; -echo " "; -echo " "; -echo " \n"; +echo " \n"; +echo "
"; -echo " ".$text['title-operator_panel'].""; -echo " "; +echo "\n"; +echo " \n"; +echo " \n"; +echo " "; -echo " "; -echo " "; -echo "
\n"; +echo " ".$text['title-operator_panel']."\n"; +echo " \n"; if (permission_exists("user_setting_edit") && sizeof($_SESSION['user']['extensions']) > 0) { $status_options[1]['status'] = "Available"; $status_options[1]['label'] = $text['label-status_available']; $status_options[1]['style'] = "op_btn_status_available"; + if (permission_exists('operator_panel_on_demand')) { $status_options[2]['status'] = "Available (On Demand)"; $status_options[2]['label'] = $text['label-status_on_demand']; @@ -94,9 +138,11 @@ if (permission_exists("user_setting_edit") && sizeof($_SESSION['user']['extensio $status_options[3]['status'] = "On Break"; $status_options[3]['label'] = $text['label-status_on_break']; $status_options[3]['style'] = "op_btn_status_on_break"; + $status_options[4]['status'] = "Do Not Disturb"; $status_options[4]['label'] = $text['label-status_do_not_disturb']; $status_options[4]['style'] = "op_btn_status_do_not_disturb"; + $status_options[5]['status'] = "Logged Out"; $status_options[5]['label'] = $text['label-status_logged_out']; $status_options[5]['style'] = "op_btn_status_logged_out"; @@ -106,19 +152,19 @@ if (permission_exists("user_setting_edit") && sizeof($_SESSION['user']['extensio } } -echo " "; -echo " "; -echo " "; -echo " "; +echo " \n"; +echo " \n"; +echo " \n"; +echo "
"; -echo " \"".$text['label-refresh_pause']."\""; -echo " \n"; +echo " \n"; +echo " \n"; +echo " \n"; if (permission_exists('operator_panel_eavesdrop')) { - echo " "; + echo " \n"; } if (is_array($groups) && @sizeof($groups) > 0) { - echo " "; + echo " \n"; } -echo " "; -echo " "; -echo "
\n"; +echo " \"".$text['label-refresh_pause']."\"\n"; +echo " "; + echo " \n"; if (sizeof($_SESSION['user']['extensions']) > 1) { - echo " "; - echo " "; + echo " \n"; + echo " \n"; echo " \n"; } else if (sizeof($_SESSION['user']['extensions']) == 1) { - echo " "; + echo " \n"; } - echo " "; - echo " "; + echo " \n"; + echo " \n"; if (sizeof($groups) > 5) { //show select box echo " "; + echo " \n"; if (is_array($groups)) foreach ($groups as $group) { - echo " "; + echo " \n"; } } - echo " "; -echo " "; -echo " "; +echo " \n"; +echo " \n"; +echo " \n"; echo " \n"; echo " \n"; -echo " "; -echo "
"; +echo " \n"; +echo "
\n"; -echo "
"; -echo "
"; +echo "
\n"; +echo "
\n"; //define the arrays to ensure no errors are omitted below with the sizeof operators $user_extensions = array(); @@ -374,44 +420,44 @@ if (is_array($activity)) { //build the list of extensions $block .= "
"; // DRAG TO - $block .= ""; - $block .= " "; - $block .= " "; - $block .= " \n"; + $block .= " \n"; + $block .= "
"; - $block .= " "; // DRAG FROM - $block .= ""; - $block .= ""; - $block .= " "; + $block .= "\n"; + $block .= " \n"; + $block .= " \n"; + $block .= " "; - $block .= " "; - $block .= "
\n"; + $block .= " \n"; // DRAG FROM + $block .= "\n"; + $block .= "\n"; + $block .= " \n"; if ($dir_icon != '') { - $block .= " \"".$text['label-call_direction']."\""; + $block .= " \"".$text['label-call_direction']."\"\n"; } - $block .= "
\n"; if ($ext_state != '') { - $block .= " "; - $block .= "
"; - $block .= " ".escape($ext['call_length'])."
"; - $block .= " "; + $block .= " \n"; + $block .= "
\n"; + $block .= " ".escape($ext['call_length'])."
\n"; + $block .= " \n"; //record if (permission_exists('operator_panel_record') && $ext_state == 'active') { $call_identifier_record = $ext['call_uuid']; $rec_file = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".date("Y")."/".date("M")."/".date("d")."/".escape($call_identifier_record).".wav"; if (file_exists($rec_file)) { - $block .= ""; + $block .= "\n"; } else { - $block .= ""; + $block .= "\n"; } } //eavesdrop if (permission_exists('operator_panel_eavesdrop') && $ext_state == 'active' && sizeof($_SESSION['user']['extensions']) > 0 && !in_array($extension, $_SESSION['user']['extensions'])) { - $block .= ""; + $block .= "\n"; } //hangup if (permission_exists('operator_panel_hangup') || in_array($extension, $_SESSION['user']['extensions'])) { @@ -424,56 +470,56 @@ if (is_array($activity)) { else { $call_identifier_hangup_uuid = $call_identifier; } - $block .= ""; + $block .= "\n"; } - $block .= ""; + $block .= "\n"; //transfer if (in_array($extension, $_SESSION['user']['extensions']) && $ext_state == 'active') { - $block .= ""; + $block .= "\n"; } - $block .= "
"; + $block .= "
\n"; if (permission_exists('operator_panel_call_details')) { - $block .= " ".escape($call_name)."
".escape($call_number)."
"; + $block .= " ".escape($call_name)."
".escape($call_number)."
\n"; } - $block .= "
"; + $block .= " \n"; //transfer if (in_array($extension, $_SESSION['user']['extensions']) && $ext_state == 'active') { $call_identifier_transfer = $ext['variable_bridge_uuid']; - $block .= "
"; - $block .= " "; + $block .= " \n"; + $block .= " \n"; $block .= "
\n"; } } else { //call if (in_array($extension, $_SESSION['user']['extensions'])) { - $block .= " "; - $block .= "
"; - $block .= " "; + $block .= " \n"; + $block .= " \n"; + $block .= " \n"; $block .= "
\n"; } } - $block .= "
"; + $block .= "
\n"; if (if_group("superadmin") && isset($_GET['debug'])) { - $block .= ""; - $block .= "From ID
    ".escape($extension)."
"; - $block .= "uuid
    ".escape($ext['uuid'])."
"; - $block .= "call_uuid
    ".escape($ext['call_uuid'])."
"; - $block .= "variable_bridge_uuid
    ".escape($ext['variable_bridge_uuid'])."
"; - $block .= "direction
    ".escape($ext['direction'])."
"; - $block .= "variable_call_direction
    ".escape($ext['variable_call_direction'])."
"; - $block .= "state
    ".escape($ext['state'])."
"; - $block .= "cid_num
    ".escape($ext['cid_num'])."
"; - $block .= "dest
    ".escape($ext['dest'])."
"; - $block .= "context
    ".escape($ext['context'])."
"; - $block .= "presence_id
    ".escape($ext['presence_id'])."
"; - $block .= "callstate
    ".escape($ext['callstate'])."
"; - $block .= "
"; + $block .= "\n"; + $block .= "From ID
    ".escape($extension)."
\n"; + $block .= "uuid
    ".escape($ext['uuid'])."
\n"; + $block .= "call_uuid
    ".escape($ext['call_uuid'])."
\n"; + $block .= "variable_bridge_uuid
    ".escape($ext['variable_bridge_uuid'])."
\n"; + $block .= "direction
    ".escape($ext['direction'])."
\n"; + $block .= "variable_call_direction
    ".escape($ext['variable_call_direction'])."
\n"; + $block .= "state
    ".escape($ext['state'])."
\n"; + $block .= "cid_num
    ".escape($ext['cid_num'])."
\n"; + $block .= "dest
    ".escape($ext['dest'])."
\n"; + $block .= "context
    ".escape($ext['context'])."
\n"; + $block .= "presence_id
    ".escape($ext['presence_id'])."
\n"; + $block .= "callstate
    ".escape($ext['callstate'])."
\n"; + $block .= "
\n"; } - $block .= "
"; + $block .= "\n"; if (in_array($extension, $_SESSION['user']['extensions'])) { $user_extensions[] = $block; @@ -486,42 +532,133 @@ if (is_array($activity)) { } if (sizeof($user_extensions) > 0) { - echo "
"; - if (is_array($user_extensions)) foreach ($user_extensions as $ext_block) { - echo $ext_block; + echo "
\n"; + if (is_array($user_extensions)) { + foreach ($user_extensions as $ext_block) { + echo $ext_block; + } } - echo "

"; + + foreach($valet_array as $row) { + $extension = $row['extension']; + $ext_state = 'active'; + $style = "op_ext op_valet_park_active"; + $draggable = false; + + //build the list of park extensions + $valet_block .= "
\n"; // DRAG TO + $valet_block .= "\n"; + $valet_block .= " \n"; + $valet_block .= " \n"; + $valet_block .= " \n"; + $valet_block .= " \n"; + $valet_block .= "
\n"; + $valet_block .= " "; // DRAG FROM + $valet_block .= "\n"; + $valet_block .= "\n"; + $valet_block .= " \n"; + if ($dir_icon != '') { + $valet_block .= " \"".$text['label-call_direction']."\"\n"; + } + $valet_block .= "
\n"; + //if ($ext_state != '') { + $valet_block .= " \n"; + $valet_block .= "
\n"; + $valet_block .= " ".escape($ext['call_length'])."
\n"; + $valet_block .= " \n"; + + $call_identifier_record = $ext['call_uuid']; + + $valet_block .= "\n"; + //transfer + //if (in_array($extension, $_SESSION['user']['extensions']) && $ext_state == 'active') { + // $valet_block .= ""; + //} + $valet_block .= "
\n"; + if (permission_exists('operator_panel_call_details')) { + $valet_block .= " ".escape($row['caller_id_name'])."
".escape($row['caller_id_number'])."
\n"; + } + $valet_block .= "
\n"; + //transfer + //if (in_array($extension, $_SESSION['user']['extensions']) && $ext_state == 'active') { + $call_identifier_transfer = $ext['variable_bridge_uuid']; + $valet_block .= "
\n"; + $valet_block .= " \n"; + $valet_block .= "
\n"; + //} + //} + //else { + // //call + // if (in_array($extension, $_SESSION['user']['extensions'])) { + // $valet_block .= " "; + // $valet_block .= "
"; + // $valet_block .= " "; + // $valet_block .= "
\n"; + // } + //} + $valet_block .= "
\n"; + + if (if_group("superadmin") && isset($_GET['debug'])) { + $valet_block .= "\n"; + $valet_block .= "From ID
    ".escape($extension)."
\n"; + $valet_block .= "uuid
    ".escape($ext['uuid'])."
\n"; + $valet_block .= "call_uuid
    ".escape($ext['call_uuid'])."
\n"; + $valet_block .= "variable_bridge_uuid
    ".escape($ext['variable_bridge_uuid'])."
\n"; + $valet_block .= "direction
    ".escape($ext['direction'])."
\n"; + $valet_block .= "variable_call_direction
    ".escape($ext['variable_call_direction'])."
\n"; + $valet_block .= "state
    ".escape($ext['state'])."
\n"; + $valet_block .= "cid_num
    ".escape($ext['cid_num'])."
\n"; + $valet_block .= "dest
    ".escape($ext['dest'])."
\n"; + $valet_block .= "context
    ".escape($ext['context'])."
\n"; + $valet_block .= "presence_id
    ".escape($ext['presence_id'])."
\n"; + $valet_block .= "callstate
    ".escape($ext['callstate'])."
\n"; + $valet_block .= "
\n"; + } + $valet_block .= "
\n"; + echo $valet_block; + unset($valet_block); + } + + echo "

\n"; } +//loop throug each group if (sizeof($grouped_extensions) > 0) { - // Ensure alphabetical order + //alphabetical order ksort($grouped_extensions); + + //loop through the groups foreach ($grouped_extensions as $group => $extensions) { - echo "
".ucwords(escape($group))."
"; - echo "

"; - echo "
"; + echo "
".ucwords(escape($group))."
\n"; + echo "

\n"; + echo "
\n"; foreach ($extensions as $ext_block) { echo $ext_block; } - echo "

"; + echo "

\n"; } } +//show the other extensions if (sizeof($other_extensions) > 0) { - echo "
".$text['label-other_extensions']."
"; - echo "

"; - echo "
"; + echo "
".$text['label-other_extensions']."
\n"; + echo "

\n"; + echo "
\n"; foreach ($other_extensions as $ext_block) { echo $ext_block; } - echo "
"; + echo "
\n"; } +//no extensions found if (sizeof($other_extensions) + sizeof($grouped_extensions) < 1) { echo $text['label-no_extensions_found']; } -echo "

"; +echo "

\n"; /* if (if_group("superadmin") && isset($_GET['debug'])) {