diff --git a/Sccp_manager.class.php b/Sccp_manager.class.php index 3a2fd47..686b332 100644 --- a/Sccp_manager.class.php +++ b/Sccp_manager.class.php @@ -383,7 +383,6 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO { function getPhoneButtons($get_settings, $ref_id = '', $ref_type = 'sccpdevice') { // get Model Buttons info - dbug($get_settings); $res = array(); $def_feature = array('parkinglot' => array('name' => 'P.slot', 'value' => 'default'), 'devstate' => array('name' => 'Coffee', 'value' => 'coffee'), @@ -494,7 +493,6 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO { } } } - dbug($res); return $res; } diff --git a/install.php b/install.php index be1ea80..16d5f1a 100644 --- a/install.php +++ b/install.php @@ -63,8 +63,8 @@ InstallDB_updateSchema($db_config); cleanUpSccpSettings(); InstallDB_createButtonConfigTrigger(); -InstallDB_CreateSccpDeviceConfigView($sccp_compatible); -createViewSccplineconfig(); +InstallDbCreateViews($sccp_compatible); +installDbPopulateSccpline(); InstallDB_updateDBVer($sccp_compatible); if ($chanSCCPWarning) { outn("
"); @@ -323,7 +323,6 @@ function Get_DB_config($sccp_compatible) $db_config_v4['sccpdevice'] = array_merge($db_config_v4['sccpdevice'],$db_config_v5['sccpdevice']); $db_config_v4['sccpline'] = array_merge($db_config_v4['sccpline'],$db_config_v5['sccpline']); $db_config_v4['sccpsettings'] = $db_config_v5['sccpsettings']; - dbug($db_config_v4['sccpdevice']); } return $db_config_v4; } @@ -497,7 +496,6 @@ function InstallDB_updateSchema($db_config) if (!empty($sql_rename)) { outn("
  • " . _("Renaming table columns ") . $tabl_name ."
  • "); $sql_rename = "ALTER TABLE {$tabl_name} " . substr($sql_rename, 0, -2); - dbug($sql_rename); try { $check = $db->query($sql_rename); } catch (\Exception $e) { @@ -697,7 +695,7 @@ function InstallDB_updateDBVer($sccp_compatible) return true; } -function InstallDB_CreateSccpDeviceConfigView($sccp_compatible) +function InstallDbCreateViews($sccp_compatible) { global $db; outn("
  • " . _("(Re)Create sccpdeviceconfig view") . "
  • "); @@ -746,16 +744,12 @@ function InstallDB_CreateSccpDeviceConfigView($sccp_compatible) LEFT JOIN sccpuser sccpuser ON ( sccpuser.name = sccpdevice.loginname ) GROUP BY sccpdevice.name;"; } - - $results = $db->query($sql); - if (DB::IsError($results)) { + $stmt = $db->prepare($sql); + $stmt->execute(); + if (DB::IsError($stmt)) { die_freepbx(sprintf(_("Error updating sccpdeviceconfig view. Command was: %s; error was: %s "), $sql, $results->getMessage())); } - return true; -} -function createViewSccplineconfig() { - global $db; outn("
  • " . _("(Re)Create sccplineconfig view") . "
  • "); $sql = "DROP VIEW IF EXISTS sccplineconfig; @@ -769,13 +763,44 @@ function createViewSccplineconfig() { sccpline.directed_pickup, sccpline.directed_pickup_context, sccpline.pickup_modeanswer, sccpline.amaflags, sccpline.dnd, sccpline.setvar, sccpline.namedcallgroup, sccpline.namedpickupgroup, sccpline.phonecodepage, sccpline.videomode FROM sccpline"; - $results = $db->query($sql); - if (DB::IsError($results)) { + $stmt = $db->prepare($sql); + $stmt->execute(); + if (DB::IsError($stmt)) { die_freepbx(sprintf(_("Error updating sccplineconfig view. Command was: %s; error was: %s "), $sql, $results->getMessage())); } return true; } +function installDbPopulateSccpline() { + // Lines in Sccp_manager are devices in FreePbx. Need to ensure that these two tables are synchronised on install + global $db; + $freePbxExts = array (); + $sccpExts =array(); + $sql = "SELECT id AS name, user AS accountcode, description AS label FROM devices WHERE tech='sccp'"; + $stmt = $db->prepare($sql); + $stmt->execute(); + $freePbxExts = $stmt->fetchAll(\PDO::FETCH_ASSOC|\PDO::FETCH_UNIQUE); + + $sql = "SELECT name, accountcode, label FROM sccpline"; + $stmt = $db->prepare($sql); + $stmt->execute(); + $sccpExts = $stmt->fetchAll(\PDO::FETCH_ASSOC|\PDO::FETCH_UNIQUE); + $linesToCreate = array_diff_assoc($freePbxExts, $sccpExts); + + foreach ($linesToCreate as $key => $valArr) { + $stmt = $db->prepare("INSERT into sccpline (name, accountcode, description, label) VALUES (:name, :accountcode, :description, :label)"); + $stmt->bindParam(':name',$key,\PDO::PARAM_STR); + $description = "{$valArr['label']} <{$key}>"; + $stmt->bindParam(':accountcode',$valArr['accountcode'],\PDO::PARAM_STR); + $stmt->bindParam(':description',$description,\PDO::PARAM_STR); + $stmt->bindParam(':label',$valArr['label'],\PDO::PARAM_STR); + $stmt->execute(); + if (DB::IsError($stmt)) { + die_freepbx(sprintf(_("Error inserting into sccpline. Command was: %s; error was: %s "), $stmt, $stmt->getMessage())); + } + } +} + function createBackUpConfig() { global $amp_conf; @@ -1047,10 +1072,6 @@ function cleanUpSccpSettings() { } } */ - // TODO: It seems that DOCUMENT ROOT is not always set so maybe should switch to AMPWEBROOT. - // need to declare amp_conf global each time. - //global $amp_conf; - //dbug($amp_conf['AMPWEBROOT']); // 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); diff --git a/module.xml b/module.xml index 8e060ab..bdd0e5a 100644 --- a/module.xml +++ b/module.xml @@ -1,7 +1,7 @@ sccp_manager SCCP Manager - 14.3.0.5 + 14.3.0.6 setup SCCP Connectivity Steve Lad, Alex GP diff --git a/sccpManClasses/Sccp.class.php.v433 b/sccpManClasses/Sccp.class.php.v433 index 4cf7d9f..f5d2517 100644 --- a/sccpManClasses/Sccp.class.php.v433 +++ b/sccpManClasses/Sccp.class.php.v433 @@ -111,7 +111,6 @@ class Sccp extends \FreePBX\modules\Core\Driver { public function addDevice($id, $settings) { // This is actually save line and is used by add and edit. - dbug($settings); $add_fld = array ("name"=>'label',"outboundcid"=>'cid_num',"langcode"=>'language',"extdisplay"=>'description','devinfo_mailbox'=>'mailbox'); $settings['cid_num']['value'] = ''; $settings['cid_name']['value'] = ''; diff --git a/sccpManTraits/ajaxHelper.php b/sccpManTraits/ajaxHelper.php index eee0b42..4c37482 100644 --- a/sccpManTraits/ajaxHelper.php +++ b/sccpManTraits/ajaxHelper.php @@ -400,7 +400,6 @@ trait ajaxHelper { } function handleSubmit($request, $validateonly = false) { - dbug($request); $hdr_prefix = 'sccp_'; $hdr_arprefix = 'sccp-ar_'; $save_settings = array(); @@ -690,7 +689,6 @@ trait ajaxHelper { } function saveSccpDevice($get_settings, $validateonly = false) { - dbug($get_settings); $hdr_prefix = 'sccp_hw_'; $hdr_arprefix = 'sccp_hw-ar_'; $hdr_vendPrefix = 'sccp_hw_vendorconfig';