diff --git a/Sccp_manager.class.php b/Sccp_manager.class.php
index 686b332..fa54d43 100644
--- a/Sccp_manager.class.php
+++ b/Sccp_manager.class.php
@@ -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) {
diff --git a/conf/sccpgeneral.xml.v433 b/conf/sccpgeneral.xml.v433
index 8685df0..1350a3c 100644
--- a/conf/sccpgeneral.xml.v433
+++ b/conf/sccpgeneral.xml.v433
@@ -1148,18 +1148,18 @@ and open the template in the editor. Base Version before all crash :-)
-
echocancel
- off
+ yes
- Echo Cancel: Echo Cancellation (On or Off).
+ Echo Cancel: Echo Cancellation (Yes or No).
-
silencesuppression
- off
+ no
- Silence Suppression: Slience Suppression on the phone.
+ Silence Suppression: Silence Suppression on the phone.
-
@@ -2060,15 +2060,15 @@ and open the template in the editor. Base Version before all crash :-)
-
echocancel
- off
+ yes
- Echo Cancel: Echo Cancellation (On or Off).
+ Echo Cancel: Echo Cancellation (Yes or No).
-
dnd
- Reject
+ reject
@@ -2081,7 +2081,7 @@ and open the template in the editor. Base Version before all crash :-)
-
silencesuppression
- off
+ no
Silence Suppression: Silence Suppression on the phone.
diff --git a/install.php b/install.php
index 16d5f1a..b7f7a11 100644
--- a/install.php
+++ b/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("" . _("Updating invalid enums in sccpsettings") . "");
+ $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);
diff --git a/module.xml b/module.xml
index 7376219..1184b9a 100644
--- a/module.xml
+++ b/module.xml
@@ -1,7 +1,7 @@
sccp_manager
SCCP Manager
- 14.3.0.7
+ 14.3.0.8
setup
SCCP Connectivity
Steve Lad, Alex GP