get($_SESSION['domain']['language']['code'], 'core/user_settings'); //system status echo "
\n"; $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; //get the CPU details if (stristr(PHP_OS, 'BSD') || stristr(PHP_OS, 'Linux')) { $result = shell_exec('ps -A -o pcpu'); $percent_cpu = 0; foreach (explode("\n", $result) as $value) { if (is_numeric($value)) { $percent_cpu = $percent_cpu + $value; } } if (stristr(PHP_OS, 'BSD')) { $result = shell_exec("dmesg | grep -i --max-count 1 CPUs | sed 's/[^0-9]*//g'"); $cpu_cores = trim($result); } if (stristr(PHP_OS, 'Linux')) { $result = @trim(shell_exec("grep -P '^processor' /proc/cpuinfo")); $cpu_cores = count(explode("\n", $result)); } if ($cpu_cores > 1) { $percent_cpu = $percent_cpu / $cpu_cores; } $percent_cpu = round($percent_cpu, 2); //uptime $result = shell_exec('uptime'); $load_average = sys_getloadavg(); } //get memory details $memory_details = get_memory_details(); //disk usage if (PHP_OS == 'FreeBSD' || PHP_OS == 'Linux') { $tmp = shell_exec("df / 2>&1"); $tmp = explode("\n", $tmp); $tmp = preg_replace('!\s+!', ' ', $tmp[1]); // multiple > single space $tmp = explode(' ', $tmp); foreach ($tmp as $stat) { if (substr_count($stat, '%') > 0) { $percent_disk_usage = rtrim($stat,'%'); break; } } } //show the results echo "
\n"; echo " ".$text['label-system_status']."\n"; if ($dashboard_chart_type == "doughnut") { ?>
".round($percent_disk_usage)."%"; } if (!isset($dashboard_chart_type) || $dashboard_chart_type == "progress_bar") { //cpu usage if ($dashboard_row_span > 1) { echo " ".$text['label-processor_usage']."\n"; echo "
\n"; echo "
get('theme', 'dashboard_cpu_usage_chart_main_color') ?? '#03c04a').";'>".($percent_cpu > 100 ? 100 : round($percent_cpu))."%
\n"; echo "
\n"; echo "
 
\n"; } //disk usage if ($dashboard_row_span >= 1) { echo " ".$text['label-disk_usage']."\n"; echo "
\n"; echo "
get('theme', 'dashboard_disk_usage_chart_main_color') ?? '#03c04a').";'>".round($percent_disk_usage)."%
\n"; echo "
\n"; echo "
 
\n"; } //percent memory if ($dashboard_row_span > 1) { echo " ".$text['label-memory_usage']."\n"; echo "
\n"; echo "
get('theme', 'dashboard_disk_usage_chart_main_color') ?? '#03c04a').";'>".round($memory_details['memory_percent'])."%
\n"; echo "
\n"; } } echo "
\n"; if ($dashboard_details_state != 'disabled') { echo "
"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; //pbx version echo "\n"; echo "\n"; echo "\n"; echo "\n"; $c = ($c) ? 0 : 1; //os uptime if (stristr(PHP_OS, 'Linux')) { $prefix = 'up '; $linux_uptime = shell_exec('uptime -p'); $uptime = substr($linux_uptime, strlen($prefix)); if (!empty($uptime)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; $c = ($c) ? 0 : 1; } } //memory usage (for available memory, use "free | awk 'FNR == 3 {print $4/($3+$4)*100}'" instead) if (stristr(PHP_OS, 'Linux')) { $free = shell_exec("/usr/bin/which free"); $awk = shell_exec("/usr/bin/which awk"); $percent_memory = round((float)shell_exec(escapeshellcmd($free." | ".$awk." 'FNR == 3 {print $3/($3+$4)*100}'")), 1); if (!empty($percent_memory)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; $c = ($c) ? 0 : 1; } } //memory available if (stristr(PHP_OS, 'Linux')) { $result = trim(shell_exec('free -hw | grep \'Mem:\' | cut -d\' \' -f 55-64')); if (!empty($result)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; $c = ($c) ? 0 : 1; } } //disk usage if (stristr(PHP_OS, 'Linux')) { //calculated above if (!empty($percent_disk_usage)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; $c = ($c) ? 0 : 1; } } //db connections switch ($db_type) { case 'pgsql': $sql = "select count(*) from pg_stat_activity"; break; case 'mysql': $sql = "show status where `variable_name` = 'Threads_connected'"; break; default: unset($sql); if (!empty($db_path) && !empty($dbfilename)) { $tmp = shell_exec("lsof ".realpath($db_path).'/'.$dbfilename); $tmp = explode("\n", $tmp); $connections = sizeof($tmp) - 1; } } if (!empty($sql)) { if (!isset($database)) { $database = new database; } $connections = $database->select($sql, null, 'column'); unset($sql); } if (!empty($connections)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; $c = ($c) ? 0 : 1; } //channel count if ($esl == null) { $esl = event_socket::create(); } if ($esl->is_connected()) { $tmp = event_socket::api('status'); $matches = Array(); preg_match("/(\d+)\s+session\(s\)\s+\-\speak/", $tmp, $matches); $channels = !empty($matches[1]) ? $matches[1] : 0; $tr_link = "href='".PROJECT_PATH."/app/calls_active/calls_active.php'"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $c = ($c) ? 0 : 1; } echo "
".$text['label-item']."".$text['label-value']."
".$text['label-channels']."".$channels."
\n"; echo "
"; //$n++; echo ""; } echo "
\n"; ?>