From 4c40809071cfabfe02ad6e7bb539731ae52f849b Mon Sep 17 00:00:00 2001
From: steve-lad <72376554+steve-lad@users.noreply.github.com>
Date: Wed, 16 Jun 2021 09:22:43 +0200
Subject: [PATCH] Update installer for new db version
Define new sccpdevice fields
Remove obsolete code
Remove duplicate code
---
install.php | 153 +++++++++++++++++++---------------------------------
1 file changed, 56 insertions(+), 97 deletions(-)
diff --git a/install.php b/install.php
index 6f73ae7..341dacc 100644
--- a/install.php
+++ b/install.php
@@ -1,4 +1,4 @@
- array('drop' => "yes"),
'pickupmodeanswer' => array('drop' => "yes"),
'disallow' => 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')"),
-
'description' => array('rename' => "_description"),
'hwlang' => array('rename' => "_hwlang"),
'_hwlang' => array('create' => 'varchar(12) NULL DEFAULT NULL'),
@@ -214,13 +207,40 @@ function Get_DB_config($sccp_compatible)
'name' => array('create' => "varchar(45) NOT NULL", 'modify' => "VARCHAR(45)" ),
)
);
+ $db_config_V5 = array(
+ 'sccpdevice' => array(
+ 'logserver' => array('create' => "varchar(100) NULL default null", 'modify' => "VARCHAR(20)"),
+ 'daysdisplaynotactive' => array('create' => "varchar(20) NULL default null", 'modify' => "VARCHAR(20)"),
+ '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') NULL default 'off'", 'modify' => "enum('on','off')"),
+ 'enablecdppcport' => array('create' => "enum('on','off') NULL default 'off'", 'modify' => "enum('on','off')"),
+ 'enablelldpswport' => array('create' => "enum('on','off') NULL default 'off'", 'modify' => "enum('on','off')"),
+ 'enablelldppcport' => array('create' => "enum('on','off') NULL default 'off'", 'modify' => "enum('on','off')")
+ )
+ );
if ($sccp_compatible >= 433) {
if ($mobile_hw == '1') {
return $db_config_v4M;
}
+ if ($sccp_compatible > 433) {
+ $db_config_v4['sccpdevice'] = array_merge($db_config_v4['sccpdevice'],$db_config_v5['sccpdevice']);
+ }
return $db_config_v4;
}
+
+ // New values to add (these are currently unused)
+
+
}
function CheckSCCPManagerDBTables($table_req)
@@ -553,17 +573,6 @@ function InstallDB_fillsccpdevmodel()
return true;
}
-function InstallDB_updateSccpDevice()
-{
- global $db;
- outn("
" . _("Update sccpdevice") . "");
- $sql = "UPDATE `sccpdevice` set audio_tos='0xB8',audio_cos='6',video_tos='0x88',video_cos='5' where audio_tos=NULL or audio_tos='';";
- $check = $db->query($sql);
- if (DB::IsError($check)) {
- die_freepbx("Can not REPLACE defaults into sccpdevice table\n");
- }
-}
-
function InstallDB_createButtonConfigTrigger()
{
global $db;
@@ -596,7 +605,6 @@ function InstallDB_createButtonConfigTrigger()
die_freepbx("Can not modify sccpdevice table\n");
}
outn("" . _("(Re)Create trigger Ok") . "");
-// outn("" . $sql . "");
return true;
}
function InstallDB_updateDBVer($sccp_compatible)
@@ -616,91 +624,42 @@ function InstallDB_CreateSccpDeviceConfigView($sccp_compatible)
global $db;
outn("" . _("(Re)Create sccpdeviceconfig view") . "");
$sql = "";
- if ($sccp_compatible < 431) {
- $sql = "CREATE OR REPLACE
+ $sql = "DROP VIEW IF EXISTS sccpdeviceconfig;
+ DROP VIEW IF EXISTS sccpuserconfig;";
+ /// global $hw_mobil;
+ // From logserver to end only applies to db ver > 433
+
+ global $mobile_hw;
+ if ($mobile_hw == '1') {
+ $sql .= "CREATE OR REPLACE
ALGORITHM = MERGE
VIEW sccpdeviceconfig AS
- SELECT GROUP_CONCAT( CONCAT_WS( ',', buttonconfig.type, buttonconfig.name, buttonconfig.options )
- ORDER BY instance ASC
- SEPARATOR ';' ) AS button,
- sccpdevice.type AS type,
- sccpdevice.addon AS addon,
- sccpdevice.description AS description,
- sccpdevice.tzoffset AS tzoffset,
- sccpdevice.transfer AS transfer,
- sccpdevice.cfwdall AS cfwdall,
- sccpdevice.cfwdbusy AS cfwdbusy,
- sccpdevice.imageversion AS imageversion,
- sccpdevice.deny AS deny,
- sccpdevice.permit AS permit,
- sccpdevice.dndFeature AS dndFeature,
- sccpdevice.directrtp AS directrtp,
- sccpdevice.earlyrtp AS earlyrtp,
- sccpdevice.mwilamp AS mwilamp,
- sccpdevice.mwioncall AS mwioncall,
- sccpdevice.pickupexten AS pickupexten,
- sccpdevice.pickupcontext AS pickupcontext,
- sccpdevice.pickupmodeanswer AS pickupmodeanswer,
- sccpdevice.private AS private,
- sccpdevice.privacy AS privacy,
- sccpdevice.nat AS nat,
- sccpdevice.softkeyset AS softkeyset,
- sccpdevice.audio_tos AS audio_tos,
- sccpdevice.audio_cos AS audio_cos,
- sccpdevice.video_tos AS video_tos,
- sccpdevice.video_cos AS video_cos,
- sccpdevice.conf_allow AS conf_allow,
- sccpdevice.conf_play_general_announce AS conf_play_general_announce,
- sccpdevice.conf_play_part_announce AS conf_play_part_announce,
- sccpdevice.conf_mute_on_entry AS conf_mute_on_entry,
- sccpdevice.conf_music_on_hold_class AS conf_music_on_hold_class,
- sccpdevice.conf_show_conflist AS conf_show_conflist,
- sccpdevice.setvar AS setvar,
- sccpdevice.disallow AS disallow,
- sccpdevice.allow AS allow,
- sccpdevice.backgroundImage AS backgroundImage,
- sccpdevice.ringtone AS ringtone,
- sccpdevice.name AS name
+ SELECT GROUP_CONCAT( CONCAT_WS( ',', sccpbuttonconfig.buttontype, sccpbuttonconfig.name, sccpbuttonconfig.options )
+ ORDER BY instance ASC SEPARATOR ';' ) AS sccpbutton, sccpdevice.*
FROM sccpdevice
- LEFT JOIN sccpbuttonconfig buttonconfig ON ( buttonconfig.device = sccpdevice.name )
- GROUP BY sccpdevice.name;";
+ LEFT JOIN sccpbuttonconfig ON (sccpbuttonconfig.reftype = 'sccpdevice' AND sccpbuttonconfig.ref = sccpdevice.name )
+ GROUP BY sccpdevice.name; ";
+ $sql .= "CREATE OR REPLACE ALGORITHM = MERGE VIEW sccpuserconfig AS
+ SELECT GROUP_CONCAT( CONCAT_WS( ',', sccpbuttonconfig.buttontype, sccpbuttonconfig.name, sccpbuttonconfig.options )
+ ORDER BY instance ASC SEPARATOR ';' ) AS button, sccpuser.*
+ FROM sccpuser
+ LEFT JOIN sccpbuttonconfig ON ( sccpbuttonconfig.reftype = 'sccpuser' AND sccpbuttonconfig.ref = sccpuser.id)
+ GROUP BY sccpuser.name; ";
} else {
- $sql = "DROP VIEW IF EXISTS sccpdeviceconfig;
- DROP VIEW IF EXISTS sccpuserconfig;";
- /// global $hw_mobil;
-
- global $mobile_hw;
- if ($mobile_hw == '1') {
- $sql .= "CREATE OR REPLACE
- ALGORITHM = MERGE
- VIEW sccpdeviceconfig AS
- SELECT GROUP_CONCAT( CONCAT_WS( ',', sccpbuttonconfig.buttontype, sccpbuttonconfig.name, sccpbuttonconfig.options )
- ORDER BY instance ASC SEPARATOR ';' ) AS sccpbutton, sccpdevice.*
- FROM sccpdevice
- LEFT JOIN sccpbuttonconfig ON (sccpbuttonconfig.reftype = 'sccpdevice' AND sccpbuttonconfig.ref = sccpdevice.name )
- GROUP BY sccpdevice.name; ";
- $sql .= "CREATE OR REPLACE ALGORITHM = MERGE VIEW sccpuserconfig AS
- SELECT GROUP_CONCAT( CONCAT_WS( ',', sccpbuttonconfig.buttontype, sccpbuttonconfig.name, sccpbuttonconfig.options )
- ORDER BY instance ASC SEPARATOR ';' ) AS button, sccpuser.*
- FROM sccpuser
- LEFT JOIN sccpbuttonconfig ON ( sccpbuttonconfig.reftype = 'sccpuser' AND sccpbuttonconfig.ref = sccpuser.id)
- GROUP BY sccpuser.name; ";
- } else {
- $sql .= "CREATE OR REPLACE
- ALGORITHM = MERGE
- VIEW sccpdeviceconfig AS
+ $sql .= "CREATE OR REPLACE
+ ALGORITHM = MERGE
+ VIEW sccpdeviceconfig AS
SELECT case sccpdevice._profileid
- when 0 then
- (select GROUP_CONCAT(CONCAT_WS( ',', defbutton.buttontype, defbutton.name, defbutton.options ) SEPARATOR ';') from sccpbuttonconfig as defbutton where defbutton.ref = sccpdevice.name ORDER BY defbutton.instance )
- when 1 then
- (select GROUP_CONCAT(CONCAT_WS( ',', userbutton.buttontype, userbutton.name, userbutton.options ) SEPARATOR ';') from sccpbuttonconfig as userbutton where userbutton.ref = sccpdevice._loginname ORDER BY userbutton.instance )
- when 2 then
- (select GROUP_CONCAT(CONCAT_WS( ',', homebutton.buttontype, homebutton.name, homebutton.options ) SEPARATOR ';') from sccpbuttonconfig as homebutton where homebutton.ref = sccpuser.homedevice ORDER BY homebutton.instance )
- end as button, if(sccpdevice._profileid = 0, sccpdevice._description, sccpuser.description) as description, sccpdevice.*
+ when 0 then
+ (select GROUP_CONCAT(CONCAT_WS( ',', defbutton.buttontype, defbutton.name, defbutton.options ) SEPARATOR ';') from sccpbuttonconfig as defbutton where defbutton.ref = sccpdevice.name ORDER BY defbutton.instance )
+ when 1 then
+ (select GROUP_CONCAT(CONCAT_WS( ',', userbutton.buttontype, userbutton.name, userbutton.options ) SEPARATOR ';') from sccpbuttonconfig as userbutton where userbutton.ref = sccpdevice._loginname ORDER BY userbutton.instance )
+ when 2 then
+ (select GROUP_CONCAT(CONCAT_WS( ',', homebutton.buttontype, homebutton.name, homebutton.options ) SEPARATOR ';') from sccpbuttonconfig as homebutton where homebutton.ref = sccpuser.homedevice ORDER BY homebutton.instance )
+ end as button, if(sccpdevice._profileid = 0, sccpdevice._description, sccpuser.description) as description, sccpdevice.*
FROM sccpdevice
LEFT JOIN sccpuser sccpuser ON ( sccpuser.name = sccpdevice._loginname )
GROUP BY sccpdevice.name;";
- }
}
$results = $db->query($sql);
if (DB::IsError($results)) {