Portions created by the Initial Developer are Copyright (C) 2008-2019 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('call_active_view')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //get the HTTP values and set as variables $show = trim($_REQUEST["show"]); if ($show != "all") { $show = ''; } //include theme config for button images include_once("themes/".$_SESSION['domain']['template']['name']."/config.php"); //set the command $switch_cmd = 'show channels as json'; //create the event socket connection $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); //send the event socket command and get the array if ($fp) { $json = trim(event_socket_request($fp, 'api '.$switch_cmd)); $results = json_decode($json, "true"); } //build a new array with domain_name $rows = array(); if (isset($results["rows"])) { foreach ($results["rows"] as &$row) { //get the domain if (strlen($row['context']) > 0 && $row['context'] != "public" && $row['context'] != "default") { if (substr_count($row['context'], '@') > 0) { $context_array = explode('@', $row['context']); $row['domain_name'] = $context_array[1]; } else { $row['domain_name'] = $row['context']; } } else if (substr_count($row['presence_id'], '@') > 0) { $presence_id_array = explode('@', $row['presence_id']); $row['domain_name'] = $presence_id_array[1]; } //add the row to the array if (($show == 'all' && permission_exists('call_active_all'))) { $rows[] = $row; } else { if ($row['domain_name'] == $_SESSION['domain_name']) { $rows[] = $row; } } } unset($results); } $num_rows = @sizeof($rows); //if the connnection is available then run it and return the results if (!$fp) { $msg = "
".$text['confirm-socket']."
"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
".$text['label-message']."
$msg
\n"; echo "
\n"; } else { //create token $object = new token; $token = $object->create('/app/calls_active/calls_active_inc.php'); //show content echo "
\n"; echo "
".$text['title']." (".$num_rows.")
\n"; echo "
\n"; echo " ".button::create(['type'=>'button','title'=>$text['label-refresh_pause'],'icon'=>'sync-alt fa-spin','onclick'=>'refresh_stop()']).""; if (permission_exists('call_active_hangup') && $rows) { echo button::create(['type'=>'button','label'=>$text['label-hangup'],'icon'=>'phone-slash','id'=>'btn_delete','onclick'=>"refresh_stop(); modal_open('modal-hangup','btn_hangup');"]); } if (permission_exists('call_active_all')) { if ($show == "all") { echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'link'=>'calls_active.php','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']); } else { echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'calls_active.php?show=all','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']); } } echo "
\n"; echo "
\n"; echo "
\n"; if (permission_exists('call_active_hangup') && $rows) { echo modal::create(['id'=>'modal-hangup','type'=>'general','message'=>$text['confirm-hangups'],'actions'=>button::create(['type'=>'button','label'=>$text['label-hangup'],'icon'=>'check','id'=>'btn_hangup','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('hangup'); list_form_submit('form_list');"])]); } echo $text['description']."\n"; echo "

\n"; //show the results echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; if (permission_exists('call_active_hangup')) { echo " \n"; } echo " \n"; echo " \n"; if ($show == 'all') { echo " \n"; } echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; if (permission_exists('call_active_hangup')) { echo " \n"; } echo "\n"; if (is_array($rows)) { $x = 0; foreach ($rows as &$row) { //set the php variables foreach ($row as $key => $value) { $$key = $value; } //get the sip profile $name_array = explode("/", $name); $sip_profile = $name_array[1]; $sip_uri = $name_array[2]; //get the number $temp_array = explode("@", $sip_uri); $tmp_number = $temp_array[0]; $tmp_number = str_replace("sip:", "", $tmp_number); //remove the '+' because it breaks the call recording $cid_num = str_replace("+", "", $cid_num); //replace gateway uuid with name if (is_array($_SESSION['gateways']) && sizeof($_SESSION['gateways']) > 0) { foreach ($_SESSION['gateways'] as $gateway_uuid => $gateway_name) { $application_data = str_replace($gateway_uuid, $gateway_name, $application_data); } } // reduce too long app data if(strlen($application_data) > 512) { $application_data = substr($application_data, 0, 512) . '...'; } //send the html echo "\n"; if (permission_exists('call_active_hangup')) { echo " \n"; } echo " \n"; echo " \n"; if ($show == 'all') { echo " \n"; } echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; if (permission_exists('call_active_hangup')) { echo " \n"; } echo "\n"; //increment counter $x++; } unset($rows); } echo "
\n"; echo " \n"; echo " ".$text['label-profile']."".$text['label-created']."".$text['label-domain']."".$text['label-number']."".$text['label-cid-name']."".$text['label-cid-number']."".$text['label-destination']."".$text['label-app']."".$text['label-codec']."".$text['label-secure']." 
\n"; echo " \n"; echo " \n"; echo " ".escape($sip_profile)." ".escape($created)." ".escape($domain_name)." ".escape($tmp_number)." ".escape($cid_name)." ".escape($cid_num)." ".escape($dest)." ".(strlen($application) > 0 ? escape($application).":".escape($application_data) : null)." ".escape($read_codec).":".escape($read_rate)." / ".escape($write_codec).":".escape($write_rate)." ".escape($secure)." "; echo button::create(['type'=>'button','title'=>$text['label-hangup'],'icon'=>'phone-slash','onclick'=>"if (confirm('".$text['confirm-hangup']."')) { list_self_check('checkbox_".$x."'); list_action_set('hangup'); list_form_submit('form_list'); } else { this.blur(); return false; }",'onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']); echo "
\n"; echo "\n"; echo "
\n"; } ?>