diff --git a/conf/sccpgeneral.xml.v433 b/conf/sccpgeneral.xml.v433
index 2ba1daa..b5244b7 100644
--- a/conf/sccpgeneral.xml.v433
+++ b/conf/sccpgeneral.xml.v433
@@ -434,7 +434,7 @@ and open the template in the editor. Base Version before all crash :-)
cfwdall
-
+
off
@@ -442,7 +442,7 @@ and open the template in the editor. Base Version before all crash :-)
cfwdbusy
-
+
off
Call Forward
@@ -450,7 +450,7 @@ and open the template in the editor. Base Version before all crash :-)
cfwdnoanswer
-
+
off
@@ -458,15 +458,16 @@ and open the template in the editor. Base Version before all crash :-)
dndFeature
-
+
onDo Not Disturb. Default is Off
+
transfer
-
+
@@ -589,7 +590,7 @@ and open the template in the editor. Base Version before all crash :-)
videocapability
- off
+ on
@@ -758,16 +759,6 @@ and open the template in the editor. Base Version before all crash :-)
-
-
-
- dev_secureservicesURL
-
-
-
-
-
-
@@ -778,16 +769,6 @@ and open the template in the editor. Base Version before all crash :-)
The above is simply a dummy authentication page. It literally contains one word: AUTHORIZED (it receives UserId, Password, and devicename in the url - if you truly wish to implement special auth)
-
-
-
- dev_secureauthenticationURL
-
-
-
-
-
-
@@ -797,15 +778,6 @@ and open the template in the editor. Base Version before all crash :-)
-
-
-
- dev_secureinformationURL
-
-
-
-
-
@@ -815,15 +787,6 @@ and open the template in the editor. Base Version before all crash :-)
-
-
-
- dev_securemessagesURL
-
-
-
-
-
@@ -833,15 +796,6 @@ and open the template in the editor. Base Version before all crash :-)
This is the URL for a CiscoIPPhoneMenu which gets appended to the end of the Missed/Received/Placed calls. I don't use it (I find it makes more sense to put my phone book under services)
-
-
-
- dev_securedirectoryURL
-
-
-
-
-
@@ -852,17 +806,6 @@ and open the template in the editor. Base Version before all crash :-)
URL of CiscoIPPhoneImage. Requires a non-zero setting in idleTimeout.
-
-
-
- dev_secureidleURL
-
-
-
-
-
-
-
@@ -885,6 +828,63 @@ and open the template in the editor. Base Version before all crash :-)
+
+
+
+ dev_secureservicesURL
+
+
+
+
+
+
+
+
+
+ dev_secureauthenticationURL
+
+
+
+
+
+
+
+
+
+ dev_secureinformationURL
+
+
+
+
+
+
+
+
+ dev_securemessagesURL
+
+
+
+
+
+
+
+
+ dev_securedirectoryURL
+
+
+
+
+
+
+
+
+ dev_secureidleURL
+
+
+
+
+
+
@@ -1207,6 +1207,7 @@ and open the template in the editor. Base Version before all crash :-)
Support the use of regular-expression-based filename remapping
+
createlangdir
@@ -1493,8 +1495,8 @@ and open the template in the editor. Base Version before all crash :-)
parkon
-
-
+
+
Take a look to the compile how-to. Park stuff is not compiled by default.
@@ -1563,8 +1565,8 @@ and open the template in the editor. Base Version before all crash :-)
mwioncallon
-
-
+
+
Set the MWI on call.
@@ -1728,7 +1730,7 @@ and open the template in the editor. Base Version before all crash :-)
This option allow devices to do direct RTP sessions (default Off)
-->
-
+ earlyrtp
diff --git a/install.php b/install.php
index 82e5a97..7de5689 100644
--- a/install.php
+++ b/install.php
@@ -94,54 +94,49 @@ function Get_DB_config($sccp_compatible)
'pickupmodeanswer' => array('drop' => "yes"),
'disallow' => array('drop' => "yes"),
'callhistory_answered_elsewhere' => array('create' => "enum('Ignore','Missed Calls','Received Calls', 'Placed Calls') NOT NULL default 'Ignore'",
- 'modify' => "enum('Ignore','Missed Calls','Received Calls','Placed Calls')"),
- 'hwlang' => array('rename' => "_hwlang"),
- '_hwlang' => array('create' => 'VARCHAR(12) NULL DEFAULT NULL'),
- '_loginname' => array('create' => 'VARCHAR(20) NULL DEFAULT NULL AFTER `_hwlang`'),
- '_profileid' => array('create' => "INT(11) NOT NULL DEFAULT '0' AFTER `_loginname`"),
- '_dialrules' => array('create' => "VARCHAR(255) NULL DEFAULT NULL AFTER `_profileid`"),
- 'useRedialMenu' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no')"),
+ 'modify' => "enum('Ignore','Missed Calls','Received Calls','Placed Calls') NOT NULL"),
+ 'useRedialMenu' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no') NOT NULL"),
'dtmfmode' => array('drop' => "yes"),
'force_dtmfmode' => array('create' => "ENUM('auto','rfc2833','skinny') NOT NULL default 'auto'",
- 'modify' => "ENUM('auto','rfc2833','skinny')"),
+ 'modify' => "ENUM('auto','rfc2833','skinny') NOT NULL"),
'deny' => array('create' => 'VARCHAR(100) NULL DEFAULT NULL', 'modify' => "VARCHAR(100)"),
'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('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('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"),
- 'video_tos' => array('create' => "VARCHAR(11) NOT NULL default '0x88'",'modify' => "0x88"),
- 'video_cos' => array('create' => "VARCHAR(11) NOT NULL default '0x5'",'modify' => "0x5"),
+ 'transfer' => array('create' => "enum('no','yes') NOT NULL default 'no'", 'modify' => "enum('no','yes') NOT NULL"),
+ 'cfwdall' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no') NOT NULL"),
+ 'cfwdbusy' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no') NOT NULL"),
+ 'cfwdnoanswer' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no') NOT NULL"),
+ 'park' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off') NOT NULL"),
+ 'directrtp' => array('create' => "enum('no','yes') NOT NULL default 'no'", 'modify' => "enum('no','yes') NOT NULL"),
+ 'dndFeature' => array('create' => "enum('off','on') NOT NULL default 'off'", 'modify' => "enum('off','on') NOT NULL"),
+ 'earlyrtp' => array('create' => "ENUM('yes','no') NOT NULL default 'yes'", 'modify' => "ENUM('yes','no') NOT NULL"),
+ 'monitor' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'audio_tos' => array('create' => "VARCHAR(11) NOT NULL default '0xB8'", 'modify' => "VARCHAR(11)"),
+ 'audio_cos' => array('create' => "VARCHAR(11) NOT NULL default '0x6'", 'modify' => "VARCHAR(11)"),
+ 'video_tos' => array('create' => "VARCHAR(11) NOT NULL default '0x88'", 'modify' => "VARCHAR(11)"),
+ 'video_cos' => array('create' => "VARCHAR(11) NOT NULL default '0x5'", 'modify' => "VARCHAR(11)"),
'trustphoneip' => array('drop' => "yes"),
- 'transfer_on_hangup' => array('create' => "enum('yes','no') NOT NULL DEFAULT 'no'", 'modify' => "enum('yes','no')"),
+ 'transfer_on_hangup' => array('create' => "enum('yes','no') NOT NULL DEFAULT 'no'", 'modify' => "enum('yes','no') NOT NULL"),
'phonecodepage' => array('create' => 'VARCHAR(50) NULL DEFAULT NULL', 'modify' => "VARCHAR(50)"),
'mwilamp' => array('create' => "enum('on','off','wink','flash','blink') NOT NULL default 'on'",
- 'modify' => "enum('on','off','wink','flash','blink')"),
- 'mwioncall' => array('create' => "enum('no','yes') NOT NULL default 'yes'",'modify' => "enum('no','yes')"),
- 'private' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no')"),
- 'privacy' => array('create' => "enum('full','on','off') NOT NULL default 'full'", 'modify' => "enum('full','on','off')"),
- 'nat' => array('create' => "enum('on','off','auto') NOT NULL default 'off'", 'modify' => "enum('on','off','auto')"),
- 'conf_allow' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
- 'conf_play_part_announce' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
- 'conf_mute_on_entry' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'conf_show_conflist' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
+ 'modify' => "enum('on','off','wink','flash','blink') NOT NULL"),
+ 'mwioncall' => array('create' => "enum('no','yes') NOT NULL default 'yes'",'modify' => "enum('no','yes') NOT NULL"),
+ 'private' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no') NOT NULL"),
+ 'privacy' => array('create' => "enum('full','on','off') NOT NULL default 'full'", 'modify' => "enum('full','on','off') NOT NULL"),
+ 'nat' => array('create' => "enum('on','off','auto') NOT NULL default 'off'", 'modify' => "enum('on','off','auto') NOT NULL"),
+ 'conf_allow' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off') NOT NULL"),
+ 'conf_play_part_announce' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off') NOT NULL"),
+ 'conf_mute_on_entry' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'conf_show_conflist' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off') NOT NULL"),
'type' => array('create' => 'VARCHAR(15) NULL DEFAULT NULL', 'modify' => "VARCHAR(15)"),
'imageversion' => array('create' => 'VARCHAR(31) NULL DEFAULT NULL', 'modify' => "VARCHAR(31)"),
'softkeyset' => array('def_modify' => "softkeyset")
),
'sccpline' => array(
- 'directed_pickup' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no')"),
+ 'directed_pickup' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no') NOT NULL"),
'directed_pickup_context' => array('create' => "VARCHAR(100) NULL DEFAULT NULL"),
- 'pickup_modeanswer' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no')"),
+ 'pickup_modeanswer' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no') NOT NULL"),
'namedcallgroup' => array('create' => "VARCHAR(255) NULL DEFAULT NULL AFTER `setvar`", 'modify' => "VARCHAR(100)"),
'namedpickupgroup' => array('create' => "VARCHAR(255) NULL DEFAULT NULL AFTER `namedcallgroup`", 'modify' => "VARCHAR(100)"),
'adhocNumber' => array('create' => "VARCHAR(45) NULL DEFAULT NULL AFTER `namedpickupgroup`"),
@@ -155,31 +150,31 @@ 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('auto','user','off') NOT NULL default 'auto'", 'modify' => "enum('auto','user','off')"),
+ 'videomode' => array('create' => "enum('auto','user','off') NOT NULL default 'auto'", 'modify' => "enum('auto','user','off') NOT NULL"),
'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')"),
+ 'transfer' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no') NOT NULL"),
'vmnum' => array('def_modify' => "*97"),
'musicclass' => array('def_modify' => "default"),
'disallow' => array('create' => "VARCHAR(255) NULL DEFAULT 'all'", 'modify' => 'VARCHAR(255)'),
'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('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")
+ 'echocancel' => array('create' => "enum('yes','no') NOT NULL default 'yes'", 'modify' => "enum('yes','no') NOT NULL"),
+ 'silencesuppression' => array('create' => "enum('no','yes') NOT NULL default 'no'", 'modify' => "enum('no','yes') NOT NULL"),
+ 'dnd' => array('create' => "enum('reject','off','silent','user') NOT NULL default 'reject'", 'modify' => "enum('reject','off','silent','user') NOT NULL", '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('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')" ),
+ 'roaminglogin' => array('create' => "ENUM('off','on','multi') NOT NULL DEFAULT 'off'", 'modify' => "ENUM('on','off','multi') NOT NULL" ),
+ 'auto_logout' => array('create' => "ENUM('on','off') NOT NULL DEFAULT 'off'", 'modify' => "ENUM('on','off') NOT NULL" ),
'homedevice' => array('create' => "VARCHAR(20) NOT NULL", 'modify' => "VARCHAR(20)" ),
'devicegroup' => array('create' => "VARCHAR(7) NOT NULL", 'modify' => "VARCHAR(7)" ),
),
'sccpbuttonconfig' => array(
'reftype' => array('create' => "enum('sccpdevice', 'sipdevice', 'sccpuser') NOT NULL default 'sccpdevice'",
- 'modify' => "enum('sccpdevice', 'sipdevice', 'sccpuser')" ),
+ 'modify' => "enum('sccpdevice', 'sipdevice', 'sccpuser') NOT NULL" ),
)
);
// Hardware Mobile. Can switch Software to Hardware
@@ -191,7 +186,7 @@ function Get_DB_config($sccp_compatible)
'pickupexten' => array('drop' => "yes"),
'directed_pickup' => array('drop' => "yes"),
'cfwdnoanswer' => array('create' => "enum('yes','no') NULL default 'yes'", 'modify' => "enum('yes','no')"),
- 'park' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off')"),
+ 'park' => array('create' => "enum('on','off') NULL default 'on'", 'modify' => "enum('on','off') NOT NULL"),
'monitor' => array('create' => "enum('on','off') NULL default NULL", 'modify' => "enum('on','off')"),
'_description' => array('rename' => "description"),
'_loginname' => array('drop' => "yes"),
@@ -218,17 +213,17 @@ function Get_DB_config($sccp_compatible)
'displayontime' => array('create' => "VARCHAR(20) NULL default null", 'modify' => "VARCHAR(20)"),
'displayonduration' => array('create' => "VARCHAR(20) NULL default null", 'modify' => "VARCHAR(20)"),
'displayidletimeout' => array('create' => "VARCHAR(20) NULL default null", 'modify' => "VARCHAR(20)"),
- 'settingsaccess' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'videocapability' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'webaccess' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'webadmin' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'pcport' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
- 'spantopcport' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off')"),
- 'voicevlanaccess' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'enablecdpswport' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'enablecdppcport' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'enablelldpswport' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'enablelldppcport' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
+ 'settingsaccess' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'videocapability' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'webaccess' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'webadmin' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'pcport' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off') NOT NULL"),
+ 'spantopcport' => array('create' => "enum('on','off') NOT NULL default 'on'", 'modify' => "enum('on','off') NOT NULL"),
+ 'voicevlanaccess' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'enablecdpswport' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'enablecdppcport' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'enablelldpswport' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'enablelldppcport' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
'firstdigittimeout' => array('create' => "VARCHAR(20) NULL default null", 'modify' => "VARCHAR(20)"),
'digittimeout' => array('create' => "VARCHAR(20) NULL default null", 'modify' => "VARCHAR(20)"),
'cfwdnoanswer_timeout' => array('create' => "VARCHAR(20) NULL default null", 'modify' => "VARCHAR(20)"),
@@ -238,7 +233,7 @@ function Get_DB_config($sccp_compatible)
'transfer_tone' => array('create' => "VARCHAR(20) NULL default null", 'modify' => "VARCHAR(20)"),
'callwaiting_tone' => array('create' => "VARCHAR(20) NULL default null", 'modify' => "VARCHAR(20)"),
'callanswerorder' => array('create' => "enum('oldestfirst','latestfirst') NOT NULL default 'latestfirst'",
- 'modify' => "enum('oldestfirst','latestfirst')"),
+ 'modify' => "enum('oldestfirst','latestfirst') NOT NULL"),
'sccp_tos' => array('create' => "VARCHAR(11) NOT NULL default '0x68'", 'modify' => "VARCHAR(11)"),
'sccp_cos' => array('create' => "VARCHAR(11) NOT NULL default '0x4'", 'modify' => "VARCHAR(11)"),
'dev_sshPassword' => array('create' => "VARCHAR(25) NOT NULL default 'cisco'"),
@@ -248,67 +243,25 @@ function Get_DB_config($sccp_compatible)
'profileid' => array('create' => "INT(11) NOT NULL DEFAULT '0'"),
'dialrules' => array('create' => "VARCHAR(255) NULL DEFAULT NULL"),
'description' => array('create' => "VARCHAR(45) NULL DEFAULT NULL"),
- '_hwlang' => array ('drop' => 'yes'),
'devlang' => array('create' => "VARCHAR(50) NULL default NULL", 'modify' => "VARCHAR(50)"),
'netlang' => array('create' => "VARCHAR(50) NULL default NULL", 'modify' => "VARCHAR(50)"),
- '_devlang' => array('rename' => "devlang"),
- '_netlang' => array('rename' => "netlang"),
- '_logserver' => array('rename' => 'logserver'),
- '_daysdisplaynotactive' => array('rename' => 'daysdisplaynotactive'),
- '_displayontime' => array('rename' => 'displayontime'),
- '_displayonduration' => array('rename' => 'displayonduration'),
- '_displayidletimeout' => array('rename' => 'displayidletimeout'),
- '_settingsaccess' => array('rename' => 'settingsaccess'),
- '_videocapability' => array('rename' => 'videocapability'),
- '_webaccess' => array('rename' => 'webaccess'),
- '_webadmin' => array('rename' => 'webadmin'),
- '_pcport' => array('rename' => 'pcport'),
- '_spantopcport' => array('rename' => 'spantopcport'),
- '_voicevlanaccess' => array('rename' => 'voicevlanaccess'),
- '_enablecdpswport' => array('rename' => 'enablecdpswport'),
- '_enablecdppcport' => array('rename' => 'enablecdppcport'),
- '_enablelldpswport' => array('rename' => 'enablelldpswport'),
- '_enablelldppcport' => array('rename' => 'enablelldppcport'),
- '_firstdigittimeout' => array('rename' => 'firstdigittimeout'),
- '_digittimeout' => array('rename' => 'digittimeout'),
- '_cfwdnoanswer_timeout' => array('rename' => 'cfwdnoanswer_timeout'),
- '_autoanswer_ring_time' => array('rename' => 'autoanswer_ring_time'),
- '_autoanswer_tone' => array('rename' => 'autoanswer_tone'),
- '_remotehangup_tone' => array('rename' => 'remotehangup_tone'),
- '_transfer_tone' => array('rename' => 'transfer_tone'),
- '_callwaiting_tone' => array('rename' => 'callwaiting_tone'),
- '_callanswerorder' => array('rename' => 'callanswerorder'),
- '_sccp_tos' => array('rename' => 'sccp_tos'),
- '_sccp_cos' => array('rename' => 'sccp_cos'),
- '_dev_sshPassword' => array('rename' => 'dev_sshPassword'),
- '_dev_sshUserId' => array('rename' => 'dev_sshUserId'),
- '_phonepersonalization' => array('rename' => '_phonepersonalization'),
- '_loginname' => array('rename' => 'loginname'),
- '_profileid' => array('rename' => 'profileid'),
- '_dialrules' => array('rename' => 'dialrules'),
- '_description' => array('rename' => 'description'),
- 'keepalive' => array('create' => "INT(11) DEFAULT '60'", 'modify' => 'INT(11)', 'def_modify' => "60")
+ 'keepalive' => array('create' => "INT(11) DEFAULT '60'", 'modify' => 'INT(11)', 'def_modify' => "60"),
+ 'park' => array('create' => "enum('yes','no') NULL default 'yes'", 'modify' => "enum('yes','no') NOT NULL")
),
'sccpline' => array(
'regcontext' => array('create' => "VARCHAR(20) NULL default 'sccpregistration'", 'modify' => "VARCHAR(20)"),
- 'transfer_on_hangup' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'autoselectline_enabled' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'autocall_select' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'backgroundImageAccess' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off')"),
- 'callLogBlfEnabled' => array('create' => "enum('3','2') NOT NULL default '2'", 'modify' => "enum('3','2')"),
- '_regcontext' => array('rename' => 'regcontext'),
- '_transfer_on_hangup' => array('rename' => 'transfer_on_hangup'),
- '_autoselectline_enabled' => array('rename' => 'autoselectline_enabled'),
- '_autocall_select' => array('rename' => 'autocall_select'),
- '_backgroundImageAccess' => array('rename' => 'backgroundImageAccess'),
- '_callLogBlfEnabled' => array('rename' => 'callLogBlfEnabled')
+ 'transfer_on_hangup' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'autoselectline_enabled' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'autocall_select' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'backgroundImageAccess' => array('create' => "enum('on','off') NOT NULL default 'off'", 'modify' => "enum('on','off') NOT NULL"),
+ 'callLogBlfEnabled' => array('create' => "enum('3','2') NOT NULL default '2'", 'modify' => "enum('3','2') NOT NULL"),
),
'sccpsettings' => array(
'systemdefault' => array('create' => "VARCHAR(255) NULL default ''")
),
'sccpdevmodel' => array(
- 'fwfound' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no')"),
- 'templatefound' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no')")
+ 'fwfound' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no') NOT NULL"),
+ 'templatefound' => array('create' => "enum('yes','no') NOT NULL default 'no'", 'modify' => "enum('yes','no') NOT NULL")
)
);
@@ -475,11 +428,14 @@ function InstallDB_updateSchema($db_config)
$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'])) {
- // use create attributes
+ // use create attributes. This is dangerous as will overwrite defaults - drop this
+ // and require specific def_modify if really want to change defaults
$sql_modify .= "MODIFY COLUMN {$fld_id} {$tab_modif[$fld_id]['create']}, ";
+ */
} else {
- // No default to modify so leave unchanged
+ // No default to modify so leave default unchanged
$sql_modify .= "MODIFY COLUMN {$fld_id} {$tab_modif[$fld_id]['modify']}, ";
}
$count_modify ++;
@@ -532,6 +488,7 @@ function InstallDB_updateSchema($db_config)
}
}
// only case left to handle is create as all others handled above
+ // This should never be used - creates should be handled by doctrine or will have dataloss on subsequent installs.
foreach ($tab_modif as $row_fld => $row_data) {
if (!empty($row_data['create'])) {
$sql_create .= "ADD COLUMN {$row_fld} {$row_data['create']}, ";
@@ -679,7 +636,6 @@ function InstallDB_updateSchema($db_config)
"('8961', 'CISCO', 1, 1, '', 'loadInformation540', 0, '')",
"('Iphone', 'APPLE', 0, 1, '', 'loadInformation562', 0, '')",
"('Android', 'ANDROID', 0, 1, '', 'loadInformation575', 0, '')",
-
"('VXC 6215', 'CISCO', 1, 1, '', 'loadInformation634', 0, '')",
"('Analog', 'CISCO', 1, 1, '', 'loadInformation30027', 0, '')",
"('ISDN', 'CISCO', 1, 1, '', 'loadInformation30028', 0, '')",
@@ -696,9 +652,9 @@ function InstallDB_updateSchema($db_config)
"('VGC Phone', 'CISCO', 1, 1, '', 'loadInformation10', 0, NULL)",
"('7911-sip', 'CISCO-SIP', 1, 1, 'SIP11.9-2-1S', 'loadInformation307', 1, 'SEP0000000000.cnf.xml_791x_sip_template')",
"('9951-sip', 'CISCO-SIP', 1, 5, 'sip9951.9-2-2SR1-9', 'loadinformation537', 1, 'SEP0000000000.cnf.xml_99xx_sip_template')",
- "('VGC Virtual', 'CISCO', 1, 1, '', 'loadInformation11', 0, NULL)");
+ "('VGC Virtual', 'CISCO', 1, 1, '', 'loadInformation11', 0, NULL)"
+ );
- dbug(count($devModelArr));
$test = $db->prepare("SELECT count(*) AS modelCount from sccpdevmodel");
$test->execute();
if ($test->fetchAll()[0]['modelCount'] == count($devModelArr)) {
@@ -1133,7 +1089,6 @@ function cleanUpSccpSettings() {
$stmt = $db->prepare("SELECT keyword, sccpsettings.* FROM sccpsettings");
$stmt->execute();
$settingsFromDb = $stmt->fetchAll(\PDO::FETCH_ASSOC|\PDO::FETCH_UNIQUE);
-
// See if a previous version was installed
outn("
" . _("Checking for previous version of Sccp_manager.") . "
");
if (!isset($settingsFromDb['sccp_compatible']['data'])) {
@@ -1141,20 +1096,6 @@ function cleanUpSccpSettings() {
} else {
outn(_("Found DB Schema : {$settingsFromDb['sccp_compatible']['data']}"));
}
- // Check that required settings are initialised and update db and $settingsFromDb if not
- /*
- foreach ($extconfigs->getExtConfig('sccpDefaults') as $key => $value) {
- if (empty($settingsFromDb[$key])) {
- $settingsFromDb[$key] = array('keyword' => $key, 'data' => $value, 'type' => 0, 'seq' => 0);
-
- $sql = "REPLACE INTO sccpsettings (keyword, data, seq, type) VALUES ('{$key}', '{$value}', 0, 0)";
- $results = $db->query($sql);
- if (DB::IsError($results)) {
- die_freepbx(_("Error updating sccpsettings: $key"));
- }
- }
- }
- */
// Clean up sccpsettings to remove legacy values.
$xml_vars = $amp_conf['AMPWEBROOT'] . "/admin/modules/sccp_manager/conf/sccpgeneral.xml.v{$sccp_compatible}";
$thisInstaller->xml_data = simplexml_load_file($xml_vars);
@@ -1169,7 +1110,6 @@ function cleanUpSccpSettings() {
}
$settingsFromDb = array_merge($settingsFromDb, array_diff_key($thisInstaller->sccpvalues, $settingsFromDb));
unset($thisInstaller->sccpvalues);
-
// get chan-sccp defaults
foreach (array('general','device','line') as $section) {
@@ -1269,7 +1209,6 @@ function cleanUpSccpSettings() {
$settingsFromDb[$key]['data'] = '';
$count++;
}
-
// Write settings back to db
$sql = "TRUNCATE sccpsettings";
$results = $db->query($sql);
@@ -1285,6 +1224,23 @@ function cleanUpSccpSettings() {
)";
$results = $db->query($sql);
}
+ //Have saved settings, now need to reset db defaults which have possible been mangled by Doctrine
+ // TODO: This needs to be integrated better with InstallDB_updateSchema
+ foreach (['sccpdevice', 'sccpline'] as $table) {
+ $sql_modify = '';
+ $stmt = $db->prepare("DESCRIBE {$table}");
+ $stmt->execute();
+ $db_result = $stmt->fetchAll(\PDO::FETCH_ASSOC|\PDO::FETCH_UNIQUE);
+ foreach ($db_result as $key => $value) {
+ if (!empty($settingsFromDb[$key]['data'])) {
+ $sql_modify .= "ALTER COLUMN ${key} SET DEFAULT '{$settingsFromDb[$key]['data']}', ";
+ }
+ }
+ $sql_modify = rtrim($sql_modify, ', ');
+ $stmt = $db->prepare("ALTER TABLE {$table} ${sql_modify}");
+ $stmt->execute();
+ }
+
// Need to load any existing sccp.conf so that retain softkeys section if exists.
$sccp_conf_init = $thisInstaller->initialiseConfInit();
// Now correct sccp.conf to replace any illegal settings passing $sccp_conf_init
diff --git a/module.xml b/module.xml
index da70e33..7b8b485 100644
--- a/module.xml
+++ b/module.xml
@@ -83,9 +83,9 @@
-
+
-
+
@@ -112,37 +112,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/sccpManClasses/dbinterface.class.php b/sccpManClasses/dbinterface.class.php
index 71a0106..2a8d890 100644
--- a/sccpManClasses/dbinterface.class.php
+++ b/sccpManClasses/dbinterface.class.php
@@ -440,6 +440,7 @@ class dbinterface
$sth->execute();
return $sth->fetchAll()[$element];
}
+
public function getNamedGroup($callGroup) {
//$sql = "SELECT {$callGroup} FROM sccpline GROUP BY {$callGroup}";
$sth = $this->db->prepare("SELECT {$callGroup} FROM sccpline GROUP BY {$callGroup}");
diff --git a/sccpManClasses/formcreate.class.php b/sccpManClasses/formcreate.class.php
index 6f6a9c4..dd9d357 100644
--- a/sccpManClasses/formcreate.class.php
+++ b/sccpManClasses/formcreate.class.php
@@ -386,7 +386,7 @@ class formcreate
}
if (!empty($sccp_defaults[$res_n]['systemdefault'])) {
// There is a system default, so add button to customise or reset
- // the closing } is after the code to include the button at line ~438
+ // the closing } is after the code to include the button at line ~427
//-- Start include of defaults button --
echo "
";
diff --git a/sccpManTraits/ajaxHelper.php b/sccpManTraits/ajaxHelper.php
index 5c13fa7..94c072a 100644
--- a/sccpManTraits/ajaxHelper.php
+++ b/sccpManTraits/ajaxHelper.php
@@ -279,6 +279,7 @@ trait ajaxHelper {
}
function saveServerSettings($request, $validateonly = false) {
+ dbug($request);
$hdr_prefix = 'sccp_';
$hdr_arprefix = 'sccp-ar_';
$save_settings = array();
@@ -371,6 +372,8 @@ trait ajaxHelper {
// Value unchanged so ignore
} else {
$dbSaveArray[$key] = array('table' => $tableName, 'field' => $key, 'Default' => $value);
+ // Save these settings to sccpsettings as backup - Doctrine overwrites defaults in installer.
+ $save_settings[$key]= ['keyword' => $key, 'seq' => 98, 'type' => 2, 'data' => $value, 'systemdefault' => ''];
}
// If have matched on device, cannot match on line
continue 2;
@@ -546,19 +549,12 @@ trait ajaxHelper {
}
break;
case 'phonecodepage':
- // phonecodepage depends on 2 variables - language and phone type (uses java or not).
- // Non java phones use ISO8859-1 or CP1251 (Cyrillic); java phones use UTF-8. See @dkgroot.
- // Below list is not definitive or necessarily accurate - needs to be maintained.
- $nonJavaPhones = array(
- '6901', '6911', '6921', '6945', '7902', '7905', '7910', '7911', '7912', '7914', '7915', '7916', '7920', '7925', '7926', '7931', '7935', '7936', '7937', '7940', '7960'
- );
// TODO: May be other exceptions so use switch. Historically this is the only one handled
// phonecodepage depends on 2 variables - language and phone type (uses java or not).
// Non java phones use ISO8859-1 or CP1251 (Cyrillic); java phones use UTF-8. See @dkgroot.
// Below list is not definitive or necessarily accurate - needs to be maintained.
- $nonJavaPhones = array(
- '6901', '6911', '6921', '6945', '7902', '7905', '7910', '7911', '7912', '7914', '7915', '7916', '7920', '7925', '7926', '7931', '7935', '7936', '7937', '7940', '7960'
- );
+ $nonJavaPhones = array( '7902', '7905', '7912', '7935', '7940', '7960');
+
if (!empty($get_settings["{$hdr_prefix}devlang"])) {
switch ($get_settings["{$hdr_prefix}devlang"]) {
case 'Russian_Russian_Federation':
@@ -586,28 +582,6 @@ trait ajaxHelper {
case 'permit':
case 'deny';
$this->convertArrayToCsv($netValue);
-
- /*
- // Now have an array of settings each with keys net and Mask
- // TODO: This needs to be optimised
- //foreach ($valueArr as $netValue) {
- if (isset($netValue['inherit'])) {
- $save_settings['deny'] = 'NONE';
- continue 2;
- }
- if (isset($netValue['internal'])) {
- $output[] = 'internal';
- continue 2;
- }
- if (empty($netValue['net'])) {
- // empty net so ignored
- continue 2;
- }
- $netValue['mask'] = (empty($netValue['mask'])) ? "255.255.255.0" : $netValue['mask'];
- $output[]= implode('/', $netValue);
- //}
- */
-
break;
case 'setvar':
$output[] = implode(';', $netValue);
@@ -621,12 +595,14 @@ trait ajaxHelper {
// Now only have normal prefix
if (!empty($get_settings["{$hdr_prefix}{$key}"])) {
$value = $get_settings["{$hdr_prefix}{$key}"];
+ //dbug($key . " " . $value);
}
}
if (!empty($value)) {
$save_settings[$key] = $value;
}
}
+ dbug($save_settings);
// Save this device.
$this->dbinterface->write('sccpdevice', $save_settings, 'replace');
// Retrieve the phone buttons from $_REQUEST ($get_settings) and write back to
diff --git a/sccpManTraits/bmoFunctions.php b/sccpManTraits/bmoFunctions.php
index 70c8d62..f347940 100644
--- a/sccpManTraits/bmoFunctions.php
+++ b/sccpManTraits/bmoFunctions.php
@@ -62,6 +62,7 @@ trait bmoFunctions {
// Have a device that is connected but is not currently in the database
// This device must have connected via hotline or config in sccp.conf.
// Pass parameters to addDevice so that can be added to db.
+ // TODO: Should use LoadInformationId as a key as this is unique $dev_data['SCCP_Vendor']['model_id'] (numeric)
foreach ($activeDevices as $dev_ids) {
$id_name = $dev_ids['name'];
$dev_data = $this->aminterface->sccp_getdevice_info($id_name);
diff --git a/sccpManTraits/helperFunctions.php b/sccpManTraits/helperFunctions.php
index 5beb1ba..616f1f1 100644
--- a/sccpManTraits/helperFunctions.php
+++ b/sccpManTraits/helperFunctions.php
@@ -455,6 +455,7 @@ trait helperfunctions {
} else {
$datav = (string) $child->value;
}
+ dbug($child->name);
if (empty($this->sccpvalues[(string) $child->name])) {
$this->sccpvalues[(string) $child->name] = array('keyword' => (string) $child->name, 'data' => $datav, 'type' => '2', 'seq' => $seq, 'systemdefault' => '');
}
@@ -473,6 +474,7 @@ trait helperfunctions {
}
}
}
+ dbug($this->sccpvalues['earlyrtp']);
}
public function getSipConfig() {