diff --git a/install.php b/install.php index 6f73ae7..812467a 100644 --- a/install.php +++ b/install.php @@ -56,11 +56,6 @@ if ($result[0]['IsEmpty']) { outn("Populating sccpdevmodel..."); InstallDB_fillsccpdevmodel(); } -if (!$sccp_db_ver) { - InstallDB_updateSccpDevice(); -} else { - outn("Skip update Device model"); -} InstallDB_createButtonConfigTrigger(); InstallDB_CreateSccpDeviceConfigView($sccp_compatible); @@ -94,17 +89,14 @@ function Get_DB_config($sccp_compatible) 'directed_pickup_modeanswer' => 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'), '_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' => "VARCHAR(5) NULL DEFAULT 'no' AFTER `_dialrules`"), 'dtmfmode' => array('drop' => "yes"), 'force_dtmfmode' => array('create' => "ENUM('auto','rfc2833','skinny') NOT NULL default 'auto'", @@ -553,17 +545,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; @@ -615,93 +596,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 $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)) { die_freepbx(sprintf(_("Error updating sccpdeviceconfig view. Command was: %s; error was: %s "), $sql, $results->getMessage()));