Update Defaults and correct site defaults to comply with new enum values
Legacy values for site defaults in sccpsettings are now converted to be compliant with current enums, or reset to system defaults (cleared)
This commit is contained in:
parent
0b03d58c09
commit
a40c110efe
|
@ -569,8 +569,6 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
|||
$this->dbinterface->write('sccpuser', $save_settings, 'replace', 'name');
|
||||
$this->dbinterface->write('sccpbuttons', $save_buttons, 'delete', '', $name_dev); //standardise to delete
|
||||
return $save_buttons;
|
||||
// Why is there a second return here???????
|
||||
return $save_settings;
|
||||
}
|
||||
|
||||
public function getCodecs($type, $showDefaults = false) {
|
||||
|
|
|
@ -1148,18 +1148,18 @@ and open the template in the editor. Base Version before all crash :-)
|
|||
<item type="IS" id="8">
|
||||
<name>echocancel</name>
|
||||
<label>Echo Cancel</label>
|
||||
<default>off</default>
|
||||
<default>yes</default>
|
||||
<button value="yes">Yes</button>
|
||||
<button value="no">No</button>
|
||||
<help>Echo Cancel: Echo Cancellation (On or Off).</help>
|
||||
<help>Echo Cancel: Echo Cancellation (Yes or No).</help>
|
||||
</item>
|
||||
<item type="IS" id="9">
|
||||
<name>silencesuppression</name>
|
||||
<label>Silence Suppression</label>
|
||||
<default>off</default>
|
||||
<default>no</default>
|
||||
<button value="yes">Yes</button>
|
||||
<button value="no">No</button>
|
||||
<help>Silence Suppression: Slience Suppression on the phone.</help>
|
||||
<help>Silence Suppression: Silence Suppression on the phone.</help>
|
||||
</item>
|
||||
<item type="SLM" id="6">
|
||||
<label>Music On Hold Class</label>
|
||||
|
@ -2060,15 +2060,15 @@ and open the template in the editor. Base Version before all crash :-)
|
|||
<item type="IS" id="8">
|
||||
<name>echocancel</name>
|
||||
<label>Echo Cancel</label>
|
||||
<default>off</default>
|
||||
<default>yes</default>
|
||||
<button value="yes">Yes</button>
|
||||
<button value="no">No</button>
|
||||
<help>Echo Cancel: Echo Cancellation (On or Off).</help>
|
||||
<help>Echo Cancel: Echo Cancellation (Yes or No).</help>
|
||||
</item>
|
||||
<item type="IS" id="5" seq="0">
|
||||
<name>dnd</name>
|
||||
<label>DND</label>
|
||||
<default>Reject</default>
|
||||
<default>reject</default>
|
||||
<button value="off">Off</button>
|
||||
<button value="reject">Reject</button>
|
||||
<button value="silent">Silent</button>
|
||||
|
@ -2081,7 +2081,7 @@ and open the template in the editor. Base Version before all crash :-)
|
|||
<item type="IS" id="9">
|
||||
<name>silencesuppression</name>
|
||||
<label>Silence Suppression</label>
|
||||
<default>off</default>
|
||||
<default>no</default>
|
||||
<button value="yes">Yes</button>
|
||||
<button value="no">No</button>
|
||||
<help>Silence Suppression: Silence Suppression on the phone.</help>
|
||||
|
|
64
install.php
64
install.php
|
@ -113,14 +113,14 @@ function Get_DB_config($sccp_compatible)
|
|||
'permit' => array('create' => 'VARCHAR(100) NULL DEFAULT NULL', 'modify' => "VARCHAR(100)"),
|
||||
'backgroundImage' => array('create' => 'VARCHAR(255) NULL DEFAULT NULL', 'modify' => "VARCHAR(255)"),
|
||||
'ringtone' => array('create' => 'VARCHAR(255) NULL DEFAULT NULL', 'modify' => "VARCHAR(255)"),
|
||||
'transfer' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no')"),
|
||||
'transfer' => array('create' => "enum('no','yes') NOT NULL default 'no'", 'modify' => "enum('no','yes')"),
|
||||
'cfwdall' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no')"),
|
||||
'cfwdbusy' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no')"),
|
||||
'cfwdnoanswer' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no')"),
|
||||
'park' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
|
||||
'directrtp' => array('create' => "enum('no','yes') NOT NULL default 'no'", 'modify' => "enum('no','yes')"),
|
||||
'dndFeature' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
|
||||
'earlyrtp' => array('create' => "ENUM('yes','no') NOT NULL default 'no'", 'modify' => "ENUM('yes','no')"),
|
||||
'dndFeature' => array('create' => "enum('off','on') NOT NULL default 'off'", 'modify' => "enum('off','on')"),
|
||||
'earlyrtp' => array('create' => "ENUM('yes','no') NOT NULL default 'yes'", 'modify' => "ENUM('yes','no')"),
|
||||
'monitor' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
|
||||
'audio_tos' => array('create' => "VARCHAR(11) NOT NULL default '0xB8'",'modify' => "0xB8"),
|
||||
'audio_cos' => array('create' => "VARCHAR(11) NOT NULL default '0x6'",'modify' => "0x6"),
|
||||
|
@ -160,7 +160,7 @@ function Get_DB_config($sccp_compatible)
|
|||
'audio_cos' => array('drop' => "yes"),
|
||||
'video_tos' => array('drop' => "yes"),
|
||||
'video_cos' => array('drop' => "yes"),
|
||||
'videomode' => array('create' => "enum('user','auto','off') NOT NULL default 'auto'", 'modify' => "enum('user','auto','off')"),
|
||||
'videomode' => array('create' => "enum('auto','user','off') NOT NULL default 'auto'", 'modify' => "enum('auto','user','off')"),
|
||||
'incominglimit' => array('create' => "INT(11) DEFAULT '6'", 'modify' => 'INT(11)', 'def_modify' => "6"),
|
||||
'transfer' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no')"),
|
||||
'vmnum' => array('def_modify' => "*97"),
|
||||
|
@ -169,15 +169,15 @@ function Get_DB_config($sccp_compatible)
|
|||
'allow' => array('create' => "VARCHAR(255) NULL DEFAULT NULL"),
|
||||
'id' => array('create' => 'MEDIUMINT(9) NOT NULL AUTO_INCREMENT, ADD UNIQUE(id);', 'modify' => "MEDIUMINT(9)", 'index' => 'id'),
|
||||
'echocancel' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no')"),
|
||||
'silencesuppression' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no')"),
|
||||
'dnd' => array('create' => "enum('off','reject','silent','user') NOT NULL default 'reject'", 'modify' => "enum('off','reject','silent','user')", 'def_modify' => "reject")
|
||||
'silencesuppression' => array('create' => "enum('no','yes') NOT NULL default 'no'", 'modify' => "enum('no','yes')"),
|
||||
'dnd' => array('create' => "enum('reject','off','silent','user') NOT NULL default 'reject'", 'modify' => "enum('reject','off','silent','user')", 'def_modify' => "reject")
|
||||
),
|
||||
'sccpuser' => array(
|
||||
'name' => array('create' => "VARCHAR(20) NOT NULL", 'modify' => "VARCHAR(20)" ),
|
||||
'pin' => array('create' => "VARCHAR(7) NOT NULL", 'modify' => "VARCHAR(7)" ),
|
||||
'password' => array('create' => "VARCHAR(7) NOT NULL", 'modify' => "VARCHAR(7)" ),
|
||||
'description' => array('create' => "VARCHAR(45) NOT NULL", 'modify' => "VARCHAR(45)" ),
|
||||
'roaminglogin' => array('create' => "ENUM('on','off','multi') NOT NULL DEFAULT 'off'", 'modify' => "ENUM('on','off','multi')" ),
|
||||
'roaminglogin' => array('create' => "ENUM('off','on','multi') NOT NULL DEFAULT 'off'", 'modify' => "ENUM('on','off','multi')" ),
|
||||
'auto_logout' => array('create' => "ENUM('on','off') NOT NULL DEFAULT 'off'", 'modify' => "ENUM('on','off')" ),
|
||||
'homedevice' => array('create' => "VARCHAR(20) NOT NULL", 'modify' => "VARCHAR(20)" ),
|
||||
'devicegroup' => array('create' => "VARCHAR(7) NOT NULL", 'modify' => "VARCHAR(7)" ),
|
||||
|
@ -326,10 +326,6 @@ function Get_DB_config($sccp_compatible)
|
|||
}
|
||||
return $db_config_v4;
|
||||
}
|
||||
|
||||
// New values to add (these are currently unused)
|
||||
|
||||
|
||||
}
|
||||
|
||||
function CheckSCCPManagerDBVersion()
|
||||
|
@ -416,7 +412,7 @@ function InstallDB_updateSchema($db_config)
|
|||
} else {
|
||||
if (!empty($tab_modif[$fld_id]['def_modify'])) {
|
||||
// if a default has been modified, use it here and unset
|
||||
$sql_modify .= "MODIFY COLUMN {$fld_id} {$tab_modif[$fld_id]['modify']} DEFAULT {$tab_modif[$fld_id]['def_modify']}, ";
|
||||
$sql_modify .= "MODIFY COLUMN {$fld_id} {$tab_modif[$fld_id]['modify']} DEFAULT '{$tab_modif[$fld_id]['def_modify']}', ";
|
||||
// def_modify has been used so unset
|
||||
unset($tab_modif[$fld_id]['def_modify']);
|
||||
} else if (!empty($tab_modif[$fld_id]['create'])) {
|
||||
|
@ -436,7 +432,7 @@ function InstallDB_updateSchema($db_config)
|
|||
// Defaults have not changed so unset
|
||||
unset($tab_modif[$fld_id]['def_modify']);
|
||||
} else {
|
||||
$sql_modify .= "ALTER COLUMN {$row_fld} SET DEFAULT '{$tab_modif[$fld_id]['def_modify']}', ";
|
||||
$sql_modify .= "ALTER COLUMN {$fld_id} SET DEFAULT '{$tab_modif[$fld_id]['def_modify']}', ";
|
||||
$count_modify ++;
|
||||
}
|
||||
}
|
||||
|
@ -1136,6 +1132,48 @@ function cleanUpSccpSettings() {
|
|||
unset($sysConfiguration[$key]);
|
||||
}
|
||||
unset($sysConfiguration['Options']);
|
||||
|
||||
// Update enums in sccpsettings - values have changed over versions so need to update values in db that are not compliant
|
||||
outn("<li>" . _("Updating invalid enums in sccpsettings") . "</li>");
|
||||
$rowsToTest = array();
|
||||
$tablesToDescribe = array('sccpline', 'sccpdevice');
|
||||
foreach ($tablesToDescribe as $theTable) {
|
||||
$stmt = $db->prepare("DESCRIBE {$theTable}");
|
||||
$stmt->execute();
|
||||
$tableDesc = $stmt->fetchAll(\PDO::FETCH_ASSOC|\PDO::FETCH_UNIQUE);
|
||||
foreach ($tableDesc as $key => $valArr) {
|
||||
if (strpos($valArr['Type'], 'enum') !== 0) {
|
||||
continue;
|
||||
}
|
||||
$rowsToTest[$key] = explode(',',rtrim(str_replace('enum(', '',$valArr['Type']), ')'));
|
||||
}
|
||||
}
|
||||
$count = 0;
|
||||
foreach ($rowsToTest as $key => $valArr) {
|
||||
if (empty($settingsFromDb[$key]['data'])) {
|
||||
continue;
|
||||
}
|
||||
if (in_array("'{$settingsFromDb[$key]['data']}'", $valArr, true)) {
|
||||
continue;
|
||||
}
|
||||
// clear site setting so that will return to system defaults.
|
||||
// Try to convert based on change from on/off to yes/no.
|
||||
if (in_array($settingsFromDb[$key]['data'], array('on','off'), true)) {
|
||||
if (in_array("'yes'", $valArr, true)) {
|
||||
$settingsFromDb[$key]['data'] = ($settingsFromDb[$key]['data'] = 'on') ? 'yes' : 'no';
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// Test for case
|
||||
if (in_array("'" . strtolower($settingsFromDb[$key]['data']) . "'", $valArr, true)) {
|
||||
$settingsFromDb[$key]['data'] = strtolower($settingsFromDb[$key]['data']);
|
||||
continue;
|
||||
}
|
||||
// No easy choices so reset to system default
|
||||
$settingsFromDb[$key]['data'] = '';
|
||||
$count++;
|
||||
}
|
||||
|
||||
// Write settings back to db
|
||||
$sql = "TRUNCATE sccpsettings";
|
||||
$results = $db->query($sql);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<module>
|
||||
<rawname>sccp_manager</rawname>
|
||||
<name>SCCP Manager</name>
|
||||
<version>14.3.0.7</version>
|
||||
<version>14.3.0.8</version>
|
||||
<type>setup</type>
|
||||
<category>SCCP Connectivity</category>
|
||||
<publisher>Steve Lad, Alex GP</publisher>
|
||||
|
|
Loading…
Reference in a new issue