sccp_manager/views/server.info.php
2020-05-04 16:29:45 +03:00

521 lines
20 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
$test_ami = 0;
$test_any = 0;
$driver = $this->FreePBX->Core->getAllDriversInfo();
$core = $this->srvinterface->getSCCPVersion();
$ast_realtime = $this->srvinterface->sccp_realtime_status();
$ast_realm = (empty($ast_realtime['sccp']) ? '' : 'sccp');
foreach ($ast_realtime as $key => $value) {
if (empty($ast_realm)) {
if ($value['status'] == 'OK') {
$ast_realm = $key;
}
}
}
$conf_realtime = $this->extconfigs->validate_RealTime($ast_realm);
$db_Schema = $this->dbinterface->validate();
$mysql_info = $this->dbinterface->get_db_sysvalues();
$compatible = $this->srvinterface->get_compatible_sccp();
$info = array();
$info['srvinterface'] = $this->srvinterface->info();
$info['extconfigs'] = $this->extconfigs->info();
$info['dbinterface'] = $this->dbinterface->info();
$info['aminterface'] = $this->aminterface->info();
$info['XML'] = $this->xmlinterface->info();
$info['sccp_class'] = $driver['sccp'];
$info['Core_sccp'] = array('Version' => $core['Version'], 'about' => 'Sccp ver.' . $core['Version'] . ' r' . $core['vCode'] . ' Revision :' . $core['RevisionNum'] . ' Hash :' . $core['RevisionHash']);
$info['Asterisk'] = array('Version' => FreePBX::Config()->get('ASTVERSION'), 'about' => 'Asterisk.');
if (!empty($this->sccpvalues['SccpDBmodel'])) {
$info['DB Model'] = array('Version' => $this->sccpvalues['SccpDBmodel']['data'], 'about' => 'SCCP DB Configure');
}
if (!empty($this->sccpvalues['tftp_rewrite'])) {
if ($this->sccpvalues['tftp_rewrite']['data'] == 'pro') {
$info['Provision_SCCP'] = array('Version' => 'base', 'about' => 'Provision Sccp enabled');
} else {
$info['TFTP_Rewrite'] = array('Version' => 'base', 'about' => 'Rewrite Supported');
}
}
$info['Сompatible'] = array('Version' => $compatible, 'about' => 'Ok');
if (!empty($this->sccpvalues['SccpDBmodel'])) {
if ($compatible > $this->sccpvalues['SccpDBmodel']['data']) {
$info['Сompatible']['about'] = '<div class="alert signature alert-danger"> Reinstall SCCP manager required</div>';
}
}
if ($db_Schema == 0) {
$info['DB_Schema'] = array('Version' => 'Error', 'about' => '<div class="alert signature alert-danger"> ERROR DB Version </div>');
} else {
$info['DB_Schema'] = array('Version' => $db_Schema, 'about' => (($compatible == $db_Schema ) ? 'Ok' : 'Incompatible Version'));
}
if (empty($ast_realtime)) {
$info['RealTime'] = array('Version' => 'Error', 'about' => '<div class="alert signature alert-danger"> No found Real Time connections</div>');
} else {
$rt_info = '';
$rt_sccp = 'Failed';
foreach ($ast_realtime as $key => $value) {
if ($key == $ast_realm) {
if ($value['status'] == 'OK') {
$rt_sccp = 'TEST OK';
$rt_info .= 'SCCP Connections found';
} else {
$rt_sccp = 'SCCP ERROR';
$rt_info .= '<div class="alert signature alert-danger"> Error : ' . $value['message'] . '</div>';
}
} elseif ($value['status'] == 'ERROR') {
$rt_info .= '<div> Found error in realtime sectoin [' . $key . '] : ' . $value['message'] . '</div>';
}
}
$info['RealTime'] = array('Version' => $rt_sccp, 'about' => $rt_info);
}
if (empty($conf_realtime)) {
$info['ConfigsRealTime'] = array('Version' => 'Error', 'about' => '<div class="alert signature alert-danger"> No found Real Time Configs</div>');
} else {
$rt_info = '';
foreach ($conf_realtime as $key => $value) {
if (($value != 'OK') && ($key != 'extconfigfile')) {
$rt_info .= '<div> Found error in section ' . $key . ' :' . $value . '</div>';
}
}
if (!empty($rt_info)) {
$info['ConfigsRealTime'] = array('Version' => 'Error', 'about' => $rt_info);
}
}
// $mysql_info
if ($mysql_info['Value'] <= '2000') {
$this->info_warning['MySql'] = array('Increase Mysql Group Concat Max. Length', 'Step 1: Go to mysql path <br> nano /etc/my.cnf',
'Step 2: And add the following line below [mysqld] as shown below <br> [mysqld] <br>group_concat_max_len = 4096 or more',
'Step 3: Save and restart <br> systemctl restart mariadb.service<br> Or <br> service mysqld restart');
}
// Check Time Zone comatable
$conf_tz = $this->sccpvalues['ntp_timezone']['data'];
$cisco_tz = $this->extconfigs->getextConfig('sccp_timezone', $conf_tz);
if ($cisco_tz['offset'] == 0) {
if (!empty($conf_tz)) {
$tmp_dt = new DateTime(null, new DateTimeZone($conf_tz));
$tmp_ofset = $tmp_dt->getOffset();
if (($cisco_tz['offset'] != ($tmp_ofset / 60) )) {
$this->info_warning['NTP'] = array('The selected NTP time zone is not supported by cisco devices.', 'We will use the Greenwich Time zone');
}
}
}
global $amp_conf;
if ($test_any == 1) {
# Output option list, HTML.
$timezone_identifiers = DateTimeZone::listIdentifiers();
$timezone_abbreviations = DateTimeZone::listAbbreviations();
$a = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC);
$Ts_set = $a[200];
// ************************************************************************************
print_r("<br> Help Info:<br><pre>");
print_r("<br>");
//print_r(array_column($timezone_abbreviations, 'timezone_id'));
print_r($Ts_set);
$tz_tmp = array();
foreach ($timezone_abbreviations as $subArray) {
$dddd = array_search($Ts_set, array_column($subArray, 'timezone_id'));
if (!empty($dddd)) {
$tz_tmp[] = $subArray[$dddd];
}
}
if (empty($tz_tmp)) {
print_r('erroe');
}
if (count($tz_tmp)==1) {
$time_set = $tz_tmp[0];
} else {
$tmp_dt = new DateTime(null, new DateTimeZone($Ts_set));
$tmp_ofset = $tmp_dt->getOffset();
foreach ($tz_tmp as $subArray) {
if ($subArray['offset'] == $tmp_ofset) {
$time_set = $subArray;
}
}
}
print_r("<br>");
//print_r($time_set);
print_r($this->sccpvalues['ntp_timezone']);
//print_r($tz_tmp);
print_r("<br>");
print_r("<br>");
print_r("<br>");
//print_r($timezone_abbreviations);
//print_r($timezone_identifiers);
//print_r($timezone);
//print_r($transitions);
print_r("<br>");
print_r("</pre>");
// print_r("DIRECT START");
// print_r($this->sccpvalues['ccm_address']);
//print_r($this->get_php_classes('\\FreePBX\\modules'));
// print_r(get_declared_classes());
// $a = $this->aminterface->_config;
// print_r($a);
// print_r($this->aminterface->info());
//print_r(get_declared_classes());
// print_r($this->aminterface->open());
// $time_start = microtime_float();
// $this->aminterface->open();
// $time_connect = microtime_float();
// print_r($this->aminterface->send(new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowSoftkeySetsAction()));
// $a = new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowSoftkeySetsAction();
// $a = new \FreePBX\modules\Sccp_manager\aminterface\ExtensionStateListAction();
// $a = new \FreePBX\modules\Sccp_manager\aminterface\SCCPShowDeviceAction('SEP00070E36555C');
// $a = new \FreePBX\modules\Sccp_manager\aminterface\SCCPDeviceRestartAction('SEP00070E36555C');
// $a = new \FreePBX\modules\Sccp_manager\aminterface\ReloadAction('chan_sccp');
//$a = new \FreePBX\modules\Sccp_manager\aminterface\CommandAction('core show hints');
/*
$time_start = microtime_float();
print_r($this->srvinterface->t_get_ami_data());
$time_get_dl = microtime_float()-$time_start;
print_r('<br> Delta :'); print_r($time_get_dl);
$time_start = microtime_float();
$tmp_data = $this->aminterface->sccp_get_active_device(); print_r($tmp_data);
$time_get_dl = microtime_float()-$time_start;
print_r('<br> Delta :'); print_r($time_get_dl);
die();
/*
*/
// $a = new \FreePBX\modules\Sccp_manager\aminterface\CommandAction('realtime mysql status');
// $a = new \FreePBX\modules\Sccp_manager\aminterface\SCCPConfigMetaDataAction();
// $response = $this->aminterface->send($a);
//
// $response = $this->aminterface->getRealTimeStatus();
// $time_get_a = microtime_float();
// print_r($response);
// $tmp_data = $this->aminterface->core_sccp_reload();
// print_r($tmp_data);
// print_r($response -> getResult());
// $events = $response->getEvents();
// $events = $response->Events2Array();
//
// print_r($events);
// print_r('--- RESULT A -----------------');
// $b = $this->oldinterface->sccp_realtime_status();
// print_r($b);
// $b = $this->srvinterface->sccp_realtime_status();
// print_r($response->getMessage());
// print_r($a);
// $events = $response ->getTableNames();
// $events = $response->getEvents();
// print_r($events);
// $b = $response->Table2Array($events[0]);
// $b = $response->getResult();
// $b = $response->getResult();
// print_r($b);
// $time_get_ra = microtime_float();
/*
*/
// $tmp_data = $this->aminterface->sccp_get_active_device();
// print_r($tmp_data);
}
/* Test Ok
*
*
*
*
*/
if ($test_ami == 1) {
$time_ami = 0;
$time_old = 0;
$test_info = array();
$tmp_test_name = 'get_version';
print_r('<br>-------------- OLD: ' . $tmp_test_name . '---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->oldinterface->get_compatible_sccp();
print_r($tmp_data);
$tmp_data = $this->oldinterface->getSCCPVersion();
print_r($tmp_data);
$tmp_data = $this->oldinterface->getChanSCCPVersion();
print_r($tmp_data);
$tmp_data = $this->oldinterface->sccp_realtime_status();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['old'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
$time_get_start = $time_get_dl;
print_r('<br>-------------- AMI: ' . $tmp_test_name . ' ---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->srvinterface->get_compatible_sccp();
print_r($tmp_data);
print_r('<br>Not Use<br>');
$tmp_data = $this->srvinterface->getChanSCCPVersion();
print_r($tmp_data);
$tmp_data = $this->srvinterface->sccp_realtime_status();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['ami'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
$tmp_test_name = 'getdevice_info';
print_r('<br>-------------- OLD: ' . $tmp_test_name . '---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->oldinterface->sccp_getdevice_info('SEP00070E36555C');
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['old'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
print_r('<br>-------------- AMI: ' . $tmp_test_name . ' ---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->srvinterface->sccp_getdevice_info('SEP00070E36555C');
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['ami'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
$tmp_test_name = 'get_active_device';
print_r('<br>-------------- OLD: ' . $tmp_test_name . '---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->oldinterface->sccp_get_active_device();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['old'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
print_r('<br>-------------- AMI: ' . $tmp_test_name . ' ---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->aminterface->sccp_get_active_device();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['ami'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
$tmp_test_name = 'sccp_list_keysets';
print_r('<br>-------------- OLD: ' . $tmp_test_name . '---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->oldinterface->sccp_list_keysets();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['old'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
print_r('<br>-------------- AMI: ' . $tmp_test_name . ' ---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->aminterface->sccp_list_keysets();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['ami'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
$tmp_test_name = 'list_all_hints';
print_r('<br>-------------- OLD: ' . $tmp_test_name . '---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->oldinterface->sccp_list_all_hints();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['old'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
print_r('<br>-------------- AMI: ' . $tmp_test_name . ' ---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->aminterface->core_list_all_hints();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['ami'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
$tmp_test_name = 'sccp_list_hints';
print_r('<br>-------------- OLD: ' . $tmp_test_name . '---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->oldinterface->sccp_list_hints();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['old'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
print_r('<br>-------------- AMI: ' . $tmp_test_name . ' ---------------------------<br>');
$time_get_start = microtime_float();
$tmp_data = $this->aminterface->core_list_hints();
print_r($tmp_data);
$time_get_dl = microtime_float();
$test_info[$tmp_test_name]['ami'] = $time_get_dl - $time_get_start;
print_r('<br> Delta :');
print_r($time_get_dl - $time_get_start);
print_r('<br>--- Stat -----------------<br>');
print_r('<div class="fpbx-container container-fluid"><div class="row"><div class="container"> <div class="table-responsive"><table class="table"><thead><tr><th>Function</th><th>Old Time</th><th> Ami Time</th></tr></thead><tbody>');
$time_ami = 0;
$time_old = 0;
foreach ($test_info as $key => $value) {
print_r('<tr><td>' . $key . '</td><td>' . $value['old'] . '</td><td>' . $value['ami'] . '</td></tr>');
$time_ami += $value['ami'];
$time_old += $value['old'];
}
print_r('</tbody></table></div></div></div></div>');
print_r('<br>Ami Response :');
print_r($time_ami);
print_r('<br>PBX Response :');
print_r($time_old);
print_r('<br>--- Stat -----------------<br>');
}
/*
*/
// $events = $response->getEvents();
// print_r($events);
//$b = $response->Table2Array($events[0]);
//$b = $response->getResult();
// print_r('--- RESULT 2 -----------------<br>');
//print_r($events);
// print_r($b);
// $ser = serialize($response);
// print_r($ser);
// $result2 = unserialize($ser);
// print_r($result2);
/* $events = $result2->getEvents();
$this->assertEquals($result2->getMessage(), 'Channels will follow');
$this->assertEquals($events[0]->getName(), 'CoreShowChannelsComplete');
$this->assertEquals($events[0]->getListItems(), 0);
*/
// print_r('--- RESULT 3 -----------------');
// print_r($a);
// print_r('--- С RESULT -----------------');
// print_r($this->aminterface::SCCPShowDevicesAction());
//
// print_r($this->aminterface->close());
//
//
//print_r($this->dbinterface->HWextension_db_SccpTableData('SccpExtension'));
// print_r($this->srvinterface->getеtestChanSCC());
// $test_data = $this->srvinterface-> astman_GetRaw('ExtensionStateList');
// print_r($test_data);
// print_r($this->srvinterface-> core_list_all_exten());
// print_r($this->getHintInformation());
// print_r($this->aminterface->open());
// print_r($this->aminterface-> core_list_all_exten('exten'));
// print_r($this->aminterface->Sok_param['total']);
// print_r($this->srvinterface->t_get_meta_data());
// print_r($this->sccp_metainfo);
print(" ");
/* */
// ************************************************************************************
// $lang_arr = $this->extconfigs->getextConfig('sccp_lang','sk_SK');
// print_r('<br>');
// print_r(timezone_identifiers_list());
// print_r('<br>');
//print_r($this->dbinterface->info());
if (!empty($this->info_warning)) {
?>
<div class="fpbx-container container-fluid">
<div class="row">
<div class="container">
<h2 style="border:2px solid Tomato;color:Tomato;" >Sccp Manager Warning</h2>
<div class="table-responsive">
<br> There are Warning in the SCCP Module:<br><pre>
<?php
foreach ($this->info_warning as $key => $value) {
echo '<h3>' . $key . '</h3>';
if (is_array($value)) {
echo '<li>' . _(implode('</li><li>', $value)) . '</li>';
} else {
echo '<li>' . _($value) . '</li>';
}
echo '<br>';
}
?>
</pre>
<br><h4 style="border:2px solid Tomato;color:Green;" > Check these problems before continuing to work.</h4> <br>
</div>
</div>
</div>
</div>
<br>
<?php
}
if (!empty($this->class_error)) {
?>
<div class="fpbx-container container-fluid">
<div class="row">
<div class="container">
<h2 style="border:2px solid Tomato;color:Tomato;" >Diagnostic information about SCCP Manager errors</h2>
<div class="table-responsive">
<br> There is an error in the :<br><pre>
<?php print_r($this->class_error); ?>
</pre>
<br> Correct these problems before continuing to work. <br>
<br><h3 style="border:2px solid Tomato;color:Green;" > Open 'SCCP Connectivity' -> Server Config' to change global settings</h3> <br>
</div>
</div>
</div>
</div>
<br>
<?php } ?>
<div class="fpbx-container container-fluid">
<div class="row">
<div class="container">
<h2>Sccp Manager V.<?php print_r($this->sccp_manager_ver); ?> Info </h2>
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Module</th>
<th>Version</th>
<th>Info</th>
</tr>
</thead>
<tbody>
<?php
foreach ($info as $key => $value) {
echo '<tr><td>' . $key . '</td><td>' . $value['Version'] . '</td><td>' . $value['about'] . '</td></tr>';
}
?>
</tbody>
</table>
</div>
<a class="btn btn-default" href="ajax.php?module=sccp_manager&command=backupsettings"><i class="fa fa-plane">&nbsp;</i><?php echo _("BackUp Config") ?></a>
</div>
</div>
</div>
<?php echo $this->showGroup('sccp_info', 0); ?>