Update install.php

Check realtime configuration
Impose correct version
This commit is contained in:
steve-lad 2021-06-06 11:00:00 +02:00
parent d7ebf7d0ec
commit e97dc89a49

View file

@ -69,14 +69,9 @@ if ($chanSCCPWarning) {
outn("<br>"); outn("<br>");
outn("<font color='red'>Error: installed version of chan-sccp is not compatible. Please upgrade chan-sccp</font>"); outn("<font color='red'>Error: installed version of chan-sccp is not compatible. Please upgrade chan-sccp</font>");
} }
if (!$sccp_db_ver) { Setup_RealTime();
Setup_RealTime(); outn("<br>");
outn("<br>"); outn("Install Complete !");
outn("Install Complete !");
} else {
outn("<br>");
outn("Update Complete !");
}
outn("<br>"); outn("<br>");
// Functions follow // Functions follow
@ -771,78 +766,83 @@ function RenameConfig()
function Setup_RealTime() function Setup_RealTime()
{ {
outn("<li>" . _("Checking realtime configuration ...") . "</li>");
global $amp_conf; global $amp_conf;
outn("<li>" . _("Pre config RealTime") . "</li>");
$cnf_int = \FreePBX::Config(); $cnf_int = \FreePBX::Config();
$cnf_wr = \FreePBX::WriteConfig(); $cnf_wr = \FreePBX::WriteConfig();
$cnf_read = \FreePBX::LoadConfig(); $cnf_read = \FreePBX::LoadConfig();
$backup_ext = array('_custom.conf', '_additional.conf','.conf');
$def_config = array('sccpdevice' => 'mysql,asterisk,sccpdeviceconfig', 'sccpline' => ' mysql,asterisk,sccpline');
$def_bd_config = array('dbhost' => $amp_conf['AMPDBHOST'], 'dbname' => $amp_conf['AMPDBNAME'],
'dbuser' => $amp_conf['AMPDBUSER'], 'dbpass' => $amp_conf['AMPDBPASS'],
'dbport' => '3306', 'dbsock' => '/var/lib/mysql/mysql.sock','dbcharset'=>'utf8');
$def_bd_sec = 'asterisk';
// Define required default settings based on FreePBX and system settings
$dir = $cnf_int->get('ASTETCDIR'); $dir = $cnf_int->get('ASTETCDIR');
$res_conf_sql = ini_get('pdo_mysql.default_socket'); $sys_mysql_socket = ini_get('pdo_mysql.default_socket');
$res_conf = ''; $def_bd_config = array('dbhost' => $amp_conf['AMPDBHOST'],
'dbname' => $amp_conf['AMPDBNAME'],
'dbuser' => $amp_conf['AMPDBUSER'],
'dbpass' => $amp_conf['AMPDBPASS'],
'dbport' => '3306',
'dbsock' => '/var/lib/mysql/mysql.sock',
'dbcharset'=>'utf8'
);
if (!empty($sys_mysql_socket)) {
if (file_exists($sys_mysql_socket)) {
$def_bd_config['dbsock'] = $sys_mysql_socket;
}
}
$def_bd_section = $amp_conf['AMPDBNAME'];
$def_ext_config = array('sccpdevice' => "mysql,{$def_bd_section},sccpdeviceconfig",'sccpline' => "mysql,{$def_bd_section},sccpline");
// Check extconfig file for correct connector values
$ext_conf = ''; $ext_conf = '';
$ext_conf_file = 'extconfig.conf'; $ext_conf_file = 'extconfig.conf';
$backup_ext = array('_custom.conf', '_additional.conf','.conf');
foreach ($backup_ext as $value) { foreach ($backup_ext as $value) {
if (file_exists($dir . '/extconfig' . $value)) { if (file_exists($dir . '/extconfig' . $value)) {
// Last possibility is normal file extconfig.conf
$ext_conf_file = 'extconfig' . $value; $ext_conf_file = 'extconfig' . $value;
$ext_conf = $cnf_read->getConfig($ext_conf_file); $ext_conf = $cnf_read->getConfig($ext_conf_file);
break; break;
} }
} }
if (!empty($res_conf_sql)) {
if (file_exists($res_conf_sql)) {
$def_bd_config['dbsock'] = $res_conf_sql;
}
}
if (!empty($ext_conf)) { if (!empty($ext_conf)) {
$tmp = array(); $currentExtSettings = array();
if (!empty($ext_conf['settings']['sccpdevice'])) { $writeExtSettings = $ext_conf;
$tmp = explode(',', $ext_conf['settings']['sccpdevice']); if (empty($ext_conf['settings']['sccpdevice']) || ($ext_conf['settings']['sccpdevice'] !== $def_ext_config['sccpdevice'])) {
$def_config['sccpdevice'] = $ext_conf['settings']['sccpdevice']; // Have error in sccpdevice so need to correct
$writeExtSettings['settings']['sccpdevice'] = $def_ext_config['sccpdevice'];
} }
if (!empty($ext_conf['settings']['sccpline'])) { if (empty($ext_conf['settings']['sccpline']) || ($ext_conf['settings']['sccpline'] !== $def_ext_config['sccpline'])) {
if (empty($tmp)) { // Have error in sccpline so need to correct
$tmp = explode(',', $ext_conf['settings']['sccpline']); $writeExtSettings['settings']['sccpline'] = $def_ext_config['sccpline'];
$tmp[2] = 'sccpdevice';
$def_config['sccpdevice'] = implode(',', $tmp);
} }
$def_config['sccpline'] = $ext_conf['settings']['sccpline']; if (!empty($writeExtSettings)) {
} outn("<li>" . _("Updating extconfig file ...") . "</li>");
if (!empty($tmp)) { $cnf_wr->writeConfig($ext_conf_file, $writeExtSettings);
$def_bd_sec = $tmp[1];
} }
} }
$ext_conf['settings']['sccpdevice'] = $def_config['sccpdevice'];
$ext_conf['settings']['sccpline'] = $def_config['sccpline'];
// Check database settings
$res_conf = '';
if (file_exists($dir . '/res_mysql.conf')) { if (file_exists($dir . '/res_mysql.conf')) {
$res_conf = $cnf_read->getConfig('res_mysql.conf'); $res_conf = $cnf_read->getConfig('res_mysql.conf');
if (empty($res_conf[$def_bd_sec])) { if (empty($res_conf[$def_bd_section])) {
$res_conf[$def_bd_sec] = $def_bd_config; $res_conf[$def_bd_section] = $def_bd_config;
$cnf_wr->writeConfig('res_mysql.conf', $res_conf);
outn("<li>" . _("Updating res_mysql.conf file ...") . "</li>");
} }
$cnf_wr->writeConfig('res_mysql.conf', $res_conf, false);
} }
if (file_exists($dir . '/res_config_mysql.conf')) { if (file_exists($dir . '/res_config_mysql.conf')) {
$res_conf = $cnf_read->getConfig('res_config_mysql.conf'); $res_conf = $cnf_read->getConfig('res_config_mysql.conf');
if (empty($res_conf[$def_bd_sec])) { if (empty($res_conf[$def_bd_section])) {
$res_conf[$def_bd_sec] = $def_bd_config; $res_conf[$def_bd_section] = $def_bd_config;
$cnf_wr->writeConfig('res_config_mysql.conf', $res_conf);
outn("<li>" . _("Updating res_config_mysql.conf file ...") . "</li>");
} }
$cnf_wr->writeConfig('res_config_mysql.conf', $res_conf, false);
} }
if (empty($res_conf)) { if (empty($res_conf)) {
$res_conf[$def_bd_sec] = $def_bd_config; $res_conf[$def_bd_section] = $def_bd_config;
// $res_conf['general']['dbsock'] = $def_bd_config['dbsock'];
$cnf_wr->writeConfig('res_config_mysql.conf', $res_conf, false); $cnf_wr->writeConfig('res_config_mysql.conf', $res_conf, false);
} }
$cnf_wr->writeConfig($ext_conf_file, $ext_conf, false);
} }
?> ?>