Get all chan-sccp settings
Prior only included general section - now get from all sections Get all settings fields even if empty or SccpClass will raise an exception
This commit is contained in:
parent
3a1a89fdb8
commit
c209932eb5
35
install.php
35
install.php
|
@ -1085,12 +1085,20 @@ function cleanUpSccpSettings() {
|
|||
|
||||
// get chan-sccp defaults
|
||||
|
||||
$sysConfiguration = $aminterface->getSCCPConfigMetaData('general');
|
||||
|
||||
foreach ($sysConfiguration['Options'] as $key => $valueArray) {
|
||||
if ($valueArray['Flags'][0] == 'Obsolete' || $valueArray['Flags'][0] == 'Deprecated') {
|
||||
continue;
|
||||
foreach (array('general','line', 'device') as $section) {
|
||||
$sysConfig = $aminterface->getSCCPConfigMetaData($section);
|
||||
foreach ($sysConfig['Options'] as $valueArray) {
|
||||
if ($valueArray['Flags'][0] == 'Obsolete' || $valueArray['Flags'][0] == 'Deprecated') {
|
||||
continue;
|
||||
}
|
||||
if (isset($sysConfiguration[$valueArray['Name']])) {
|
||||
continue;
|
||||
}
|
||||
$sysConfiguration[$valueArray['Name']] = $valueArray;
|
||||
}
|
||||
}
|
||||
unset($sysConfig);
|
||||
foreach ($sysConfiguration as $key => $valueArray) {
|
||||
|
||||
// 2 special cases deny|permit & disallow|allow where need to parse on |.
|
||||
$newKeyword = explode("|", $valueArray['Name'], 2);
|
||||
|
@ -1110,19 +1118,18 @@ function cleanUpSccpSettings() {
|
|||
}
|
||||
$i++;
|
||||
}
|
||||
if (array_key_exists($valueArray['Name'],$settingsFromDb)){
|
||||
unset($settingsFromDb[$valueArray['Name']]);
|
||||
if (array_key_exists($key, $settingsFromDb)){
|
||||
unset($settingsFromDb[$key]);
|
||||
}
|
||||
} else {
|
||||
($sysConfiguration[$valueArray['Name']]['DefaultValue'] == '(null)') ? '' : $sysConfiguration[$valueArray['Name']]['DefaultValue'];
|
||||
$sysConfiguration[$valueArray['Name']] = $valueArray;
|
||||
if (array_key_exists($valueArray['Name'],$settingsFromDb)) {
|
||||
if (!empty($sysConfiguration[$valueArray['Name']]['DefaultValue'])) {
|
||||
($sysConfiguration[$key]['DefaultValue'] == '(null)') ? '' : $sysConfiguration[$key]['DefaultValue'];
|
||||
if (array_key_exists($key,$settingsFromDb)) {
|
||||
if (!empty($sysConfiguration[$key2]['DefaultValue'])) {
|
||||
// Preserve sequence and type
|
||||
$settingsFromDb[$valueArray['Name']]['systemdefault'] = $sysConfiguration[$valueArray['Name']]['DefaultValue'];
|
||||
$settingsFromDb[$key]['systemdefault'] = $sysConfiguration[$key]['DefaultValue'];
|
||||
}
|
||||
} else {
|
||||
$settingsFromDb[$valueArray['Name']] = array('keyword' => $valueArray['Name'], 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $sysConfiguration[$valueArray['Name']]['DefaultValue']);
|
||||
$settingsFromDb[$key] = array('keyword' => $key, 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $sysConfiguration[$key]['DefaultValue']);
|
||||
}
|
||||
}
|
||||
// Override certain chan-sccp defaults as they are based on a non-FreePbx system
|
||||
|
@ -1131,7 +1138,7 @@ function cleanUpSccpSettings() {
|
|||
|
||||
unset($sysConfiguration[$key]);
|
||||
}
|
||||
unset($sysConfiguration['Options']);
|
||||
unset($sysConfiguration);
|
||||
|
||||
// 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>");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<module>
|
||||
<rawname>sccp_manager</rawname>
|
||||
<name>SCCP Manager</name>
|
||||
<version>14.3.0.8</version>
|
||||
<version>14.3.0.9</version>
|
||||
<type>setup</type>
|
||||
<category>SCCP Connectivity</category>
|
||||
<publisher>Steve Lad, Alex GP</publisher>
|
||||
|
|
|
@ -78,7 +78,7 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
|||
$this->freepbx = $parent_class;
|
||||
$this->database = $parent_class->Database();
|
||||
// Get system defaults [systemdefault] and sitedefaults [data] from sccpsettings.
|
||||
$stmt = $this->database->prepare("SELECT * FROM sccpsettings WHERE systemdefault !=''");
|
||||
$stmt = $this->database->prepare("SELECT * FROM sccpsettings");
|
||||
$stmt->execute();
|
||||
$raw_settings = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
foreach ($raw_settings as $key => $valueArray) {
|
||||
|
@ -218,6 +218,7 @@ class Sccp extends \FreePBX\modules\Core\Driver {
|
|||
public function getDefaultDeviceSettings($id, $displayname, &$flag) {
|
||||
// FreePBX required method
|
||||
$settings = array();
|
||||
dbug($this->line_defaults);
|
||||
$settingsFields = array('mailbox', 'incominglimit', 'context', 'directed_pickup_context', 'callgroup', 'pickupgroup', 'namedcallgroup',
|
||||
'namedpickupgroup', 'adhocNumber', 'secondary_dialtone_digits', 'secondary_dialtone_tone', 'directed_pickup', 'pickup_modeanswer',
|
||||
'transfer', 'echocancel', 'dnd', 'silencesuppression', 'musicclass', 'pin', 'allow', 'disallow');
|
||||
|
|
Loading…
Reference in a new issue