From de2cb971130641c3564f00fc1776a73c1af5f6cb Mon Sep 17 00:00:00 2001 From: Matthew Vale Date: Wed, 2 Dec 2015 14:05:21 +0000 Subject: [PATCH] Bugfix batch --- core/install/install_first_time.php | 14 ++- .../resources/classes/detect_switch.php | 2 +- .../resources/classes/global_settings.php | 55 +++++++---- .../resources/classes/install_fusionpbx.php | 99 ++++++++++--------- .../resources/classes/install_switch.php | 41 ++++---- 5 files changed, 115 insertions(+), 96 deletions(-) diff --git a/core/install/install_first_time.php b/core/install/install_first_time.php index ba6a567c36..5a772e023e 100644 --- a/core/install/install_first_time.php +++ b/core/install/install_first_time.php @@ -295,12 +295,10 @@ if(!$install_step) { $install_step = 'select_language'; } #set_error_handler("error_handler"); try { require_once "resources/classes/global_settings.php"; - $settings = new global_settings($detect_switch, $domain_name); - if($settings = null){ - throw new Exception("Error global_settings came back with null"); - } + $global_settings = new global_settings($detect_switch, $domain_name); + if(is_null($global_settings)){ throw new Exception("Error global_settings came back with null"); } require_once "resources/classes/install_fusionpbx.php"; - $system = new install_fusionpbx($settings); + $system = new install_fusionpbx($global_settings); $system->admin_username = $admin_username; $system->admin_password = $admin_password; $system->default_country = $install_default_country; @@ -308,7 +306,7 @@ if(!$install_step) { $install_step = 'select_language'; } $system->template_name = $install_template_name; require_once "resources/classes/install_switch.php"; - $switch = new install_switch($settings); + $switch = new install_switch($global_settings); //$switch->debug = true; //$system->debug = true; $system->install(); @@ -320,7 +318,7 @@ if(!$install_step) { $install_step = 'select_language'; } echo "

Failed to install
" . $e->getMessage() . "

\n"; try { require_once "resources/classes/install_fusionpbx.php"; - $system = new install_fusionpbx($domain_name, $domain_uuid, $detect_switch); + $system = new install_fusionpbx($global_settings); $system->remove_config(); }catch(Exception $e){ echo "

Failed to remove config: " . $e->getMessage() . "

\n"; @@ -330,7 +328,7 @@ if(!$install_step) { $install_step = 'select_language'; } restore_error_handler(); if($install_ok){ echo "\n"; - header("Location: ".PROJECT_PATH."/logout.php"); + #header("Location: ".PROJECT_PATH."/logout.php"); $_SESSION['message'] = 'Install complete'; }else{ echo "
\n"; diff --git a/core/install/resources/classes/detect_switch.php b/core/install/resources/classes/detect_switch.php index dc46069d7b..4245d5bc61 100644 --- a/core/install/resources/classes/detect_switch.php +++ b/core/install/resources/classes/detect_switch.php @@ -141,7 +141,7 @@ require_once "resources/classes/EventSocket.php"; $this->_voicemail_vdir = normalize_path($this->_storage_dir . DIRECTORY_SEPARATOR . "voicemail"); $this->_phrases_vdir = normalize_path($this->_conf_dir . DIRECTORY_SEPARATOR . "lang"); $this->_extensions_vdir = normalize_path($this->_conf_dir . DIRECTORY_SEPARATOR . "directory"); - $this->_sip_profiles_vdir = normalize_path(($this->_conf_dir . DIRECTORY_SEPARATOR . "sip_profiles"); + $this->_sip_profiles_vdir = normalize_path($this->_conf_dir . DIRECTORY_SEPARATOR . "sip_profiles"); $this->_dialplan_vdir = normalize_path($this->_conf_dir . DIRECTORY_SEPARATOR . "dialplan"); $this->_backup_vdir = normalize_path(sys_get_temp_dir()); } diff --git a/core/install/resources/classes/global_settings.php b/core/install/resources/classes/global_settings.php index 24f4e89ecc..76612ed539 100644 --- a/core/install/resources/classes/global_settings.php +++ b/core/install/resources/classes/global_settings.php @@ -30,8 +30,8 @@ require_once "root.php"; class global_settings { // cached data - protected $_dirs; - protected $_vdirs; + protected $_switch_dirs; + protected $_switch_vdirs; public function get_switch_dirs() { return $this->_switch_dirs; } public function get_switch_vdirs() { return $this->_switch_vdirs; } @@ -116,25 +116,39 @@ require_once "root.php"; public function db_create_password() {return $this->_db_create_password; } //misc information + protected $_domain_uuid; + protected $_domain_name; protected $_domain_count; + public function domain_uuid() {return $this->_domain_uuid; } + public function domain_name() {return $this->_domain_name; } public function domain_count() {return $this->_domain_count; } + public function set_domain_uuid($domain_uuid) { + $e = new Exception(); + $trace = $e->getTrace(); + if($trace[1]['function'] != 'create_domain'){ + throw new Exception('Only create_domain is allowed to update the domain_uuid'); + } + $this->_domain_uuid = $domain_uuid; + } - public function __construct($detect_switch, $domain_name, $domain_uuid) { + public function __construct($detect_switch = null, $domain_name = null, $domain_uuid = null) { $this->_switch_dirs = preg_grep ('/^switch_.*_dir$/', get_class_methods('global_settings') ); sort( $this->_switch_dirs ); $this->_switch_vdirs = preg_grep ('/^switch_.*_vdir$/', get_class_methods('global_settings') ); sort( $this->_switch_vdirs ); - - if($detect_switch == null){ + if(is_null($detect_switch)){ //take settings from session + if(!isset($_SESSION['switch'])){ + throw new Exception("No detect_switch was passed to me but \$_SESSION['switch'] is empty!"); + } foreach ($this->_switch_dirs as $dir){ $session_var; - preg_match( '^switch_.*_dir$', $dir, $session_var); + preg_match( '/^switch_.*_dir$/', $dir, $session_var); $this->$dir = $_SESSION['switch'][$session_var[0]]['dir']; } foreach ($this->_switch_vdirs as $vdir){ $session_var; - preg_match( '^switch_.*_vdir$', $vdir, $session_var); + preg_match( '/^switch_.*_vdir$/', $vdir, $session_var); $this->$vdir = $_SESSION['switch'][$session_var[0]]['dir']; } $this->switch_event_host = $_SESSION['event_socket_ip_address']; @@ -142,8 +156,8 @@ require_once "root.php"; $this->switch_event_password = $_SESSION['event_socket_password']; // domain info - $this->domain_name = $_SESSION['domain_name']; - $this->domain_uuid = $_SESSION['domain_uuid']; + $this->_domain_name = $_SESSION['domain_name']; + $this->_domain_uuid = $_SESSION['domain_uuid']; // collect misc info $this->domain_count = count($_SESSION["domains"]); @@ -163,26 +177,33 @@ require_once "root.php"; }else{ //copy from detect_switch - foreach($detect_switch->switch_dirs() as $dir){ - $t_dir = "_$dir"; + foreach($detect_switch->get_dirs() as $dir){ + $t_dir = "_switch_$dir"; $this->$t_dir = $detect_switch->$dir(); } - foreach($detect_switch->switch_vdirs() as $vdir){ - $t_vdir = "_$vdir"; + foreach($detect_switch->get_vdirs() as $vdir){ + $t_vdir = "_switch_$vdir"; $this->$t_vdir = $detect_switch->$vdir(); } //copy from _POST foreach($_POST as $key=>$value){ if(substr($key,0,3) == "db_"){ - $this->$key = $value; + $o_key = "_$key"; + $this->$o_key = $value; } } + if($this->_db_create and strlen($this->_db_create_username) == 0) + { + $this->_db_create_username = $this->_db_username; + $this->_db_create_password = $this->_db_password; + } + if (strlen($this->_db_port) == 0) { $this->_db_port = "5432"; } // domain info - if($domain_uuid == null){ $domain_uuid = uuid(); } - $this->domain_name = $domain_name; - $this->domain_uuid = $domain_uuid; + if(strlen($domain_uuid) == 0){ $domain_uuid = uuid(); } + $this->_domain_name = $domain_name; + $this->_domain_uuid = $domain_uuid; //collect misc info $this->_domain_count = 1; //assumed to be one diff --git a/core/install/resources/classes/install_fusionpbx.php b/core/install/resources/classes/install_fusionpbx.php index ab096ca715..b6c2dbb6bd 100644 --- a/core/install/resources/classes/install_fusionpbx.php +++ b/core/install/resources/classes/install_fusionpbx.php @@ -34,7 +34,7 @@ include "root.php"; protected $menu_uuid = 'b4750c3f-2a86-b00d-b7d0-345c14eca286'; protected $dbh; - public function domain_uuid() { return $this->_domain_uuid; } + public function domain_uuid() { return $this->global_settings->domain_uuid(); } public $debug = false; @@ -46,10 +46,10 @@ include "root.php"; public $template_name = 'enhanced'; function __construct($global_settings) { - if($global_settings == null){ + if(is_null($global_settings)){ require_once "resources/classes/global_settings.php"; $global_settings = new global_settings(); - elseif(!is_a($global_settings, 'global_settings')){ + }elseif(!is_a($global_settings, 'global_settings')){ throw new Exception('The parameter $global_settings must be a global_settings object (or a subclass of)'); } $this->global_settings = $global_settings; @@ -81,9 +81,14 @@ include "root.php"; ini_set('max_execution_time',3600); $this->write_progress("Install started for FusionPBX"); $this->create_config_php(); + $this->write_progress("\tExecuting config.php"); + require $this->config_php; + global $db; + $db = $this->dbh; $this->create_database(); $this->create_domain(); $this->create_superuser(); + $this->write_progress("\tRunning requires"); require "resources/require.php"; $this->create_menus(); $this->write_progress("Install complete for FusionPBX"); @@ -135,12 +140,13 @@ include "root.php"; $tmp_config .= "\n"; $tmp_config .= " //mysql: database connection information\n"; if ($this->global_settings->db_type() == "mysql") { - if ($this->global_settings->db_host() == "localhost") { + $db_host = $this->global_settings->db_host(); + if ( $db_host == "localhost") { //if localhost is used it defaults to a Unix Socket which doesn't seem to work. //replace localhost with 127.0.0.1 so that it will connect using TCP - $this->global_settings->db_host() = "127.0.0.1"; + $db_host = "127.0.0.1"; } - $tmp_config .= " \$db_host = '".$this->global_settings->db_host()."';\n"; + $tmp_config .= " \$db_host = '".$db_host."';\n"; $tmp_config .= " \$db_port = '".$this->global_settings->db_port()."';\n"; $tmp_config .= " \$db_name = '".$this->global_settings->db_name()."';\n"; $tmp_config .= " \$db_username = '".$this->global_settings->db_username()."';\n"; @@ -156,7 +162,9 @@ include "root.php"; $tmp_config .= "\n"; $tmp_config .= " //pgsql: database connection information\n"; if ($this->global_settings->db_type() == "pgsql") { - $tmp_config .= " \$db_host = '".$this->global_settings->db_host()."'; //set the host only if the database is not local\n"; + $cmt_out = ''; + if($this->global_settings->db_host() != 'localhost') { $cmt_out = "//"; } + $tmp_config .= " $cmt_out\$db_host = '".$this->global_settings->db_host()."'; //set the host only if the database is not local\n"; $tmp_config .= " \$db_port = '".$this->global_settings->db_port()."';\n"; $tmp_config .= " \$db_name = '".$this->global_settings->db_name()."';\n"; $tmp_config .= " \$db_username = '".$this->global_settings->db_username()."';\n"; @@ -191,16 +199,7 @@ include "root.php"; } protected function create_database() { - require $this->config_php; - global $db; - $db = $this->dbh; - $this->write_progress("\tUsing database as type " . $this->global_settings->db_type()); - if($this->global_settings->db_create() and strlen($this->global_settings->db_create_username()) == 0) - { - $this->global_settings->db_create_username() = $this->global_settings->db_username(); - $this->global_settings->db_create_password() = $this->global_settings->db_password(); - } $function = "create_database_" . $this->global_settings->db_type(); $this->$function(); @@ -288,7 +287,6 @@ include "root.php"; //Attempt to create new PG role and database $this->write_progress("\tCreating database"); try { - if (strlen($this->global_settings->db_port()) == 0) { $this->global_settings->db_port() = "5432"; } if (strlen($this->global_settings->db_host()) > 0) { $this->dbh = new PDO("pgsql:host={$this->global_settings->db_host()} port={$this->global_settings->db_port()} user={$this->global_settings->db_create_username()} password={$this->global_settings->db_create_password()} dbname=template1"); } else { @@ -318,7 +316,6 @@ include "root.php"; $this->write_progress("\tInstalling data to database"); //open database connection with $this->global_settings->db_name() try { - if (strlen($this->global_settings->db_port()) == 0) { $this->global_settings->db_port() = "5432"; } if (strlen($this->global_settings->db_host()) > 0) { $this->dbh = new PDO("pgsql:host={$this->global_settings->db_host()} port={$this->global_settings->db_port()} dbname={$this->global_settings->db_name()} user={$this->global_settings->db_username()} password={$this->global_settings->db_password()}"); } else { @@ -528,12 +525,14 @@ include "root.php"; $sql .= "limit 1"; $this->write_debug($sql); $prep_statement = $this->dbh->prepare(check_sql($sql)); - $prep_statement->execute(); + if($prep_statement->execute() === false){ + throw new Exception("Failed to search for domain: " . join(":", $this->dbh->errorInfo())); + } $result = $prep_statement->fetch(PDO::FETCH_NAMED); unset($sql, $prep_statement); if ($result) { - $this->_domain_uuid = $result['domain_uuid']; - $this->write_progress("... domain exists as '" . $this->_domain_uuid . "'"); + $this->global_settings->set_domain_uuid($result['domain_uuid']); + $this->write_progress("... domain exists as '" . $this->global_settings->domain_uuid() . "'"); if($result['domain_enabled'] != 'true'){ throw new Exception("Domain already exists but is disabled, this is unexpected"); } @@ -547,13 +546,15 @@ include "root.php"; $sql .= ") "; $sql .= "values "; $sql .= "("; - $sql .= "'".$this->_domain_uuid."', "; - $sql .= "'".$this->global_settings->domain_name."', "; - $sql .= "'' "; + $sql .= "'".$this->global_settings->domain_uuid()."', "; + $sql .= "'".$this->global_settings->domain_name()."', "; + $sql .= "'Default Domain' "; $sql .= ");"; $this->write_debug($sql); - $this->dbh->exec(check_sql($sql)); + if($this->dbh->exec(check_sql($sql)) === false){ + throw new Exception("Failed to execute sql statement: " . join(":", $this->dbh->errorInfo())); + } unset($sql); //domain settings @@ -596,73 +597,73 @@ include "root.php"; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->base_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_base_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'base'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->conf_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_conf_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'conf'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->db_dir()(); + $tmp[$x]['value'] = $this->global_settings->switch_db_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'db'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->log_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_log_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'log'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->mod_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_mod_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'mod'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->script_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_script_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'scripts'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->grammar_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_grammar_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'grammar'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->storage_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_storage_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'storage'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->voicemail_vdir(); + $tmp[$x]['value'] = $this->global_settings->switch_voicemail_vdir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'voicemail'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->recordings_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_recordings_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'recordings'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->sounds_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_sounds_dir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'sounds'; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->phrases_vdir(); + $tmp[$x]['value'] = $this->global_settings->switch_phrases_vdir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'phrases'; $tmp[$x]['enabled'] = 'true'; @@ -674,19 +675,19 @@ include "root.php"; $tmp[$x]['enabled'] = 'false'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->extensions_vdir(); + $tmp[$x]['value'] = $this->global_settings->switch_extensions_vdir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'extensions'; $tmp[$x]['enabled'] = 'false'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->sip_profiles_vdir(); + $tmp[$x]['value'] = $this->global_settings->switch_sip_profiles_vdir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'sip_profiles'; $tmp[$x]['enabled'] = 'false'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->dialplan_vdir(); + $tmp[$x]['value'] = $this->global_settings->switch_dialplan_vdir(); $tmp[$x]['category'] = 'switch'; $tmp[$x]['subcategory'] = 'dialplan'; $tmp[$x]['enabled'] = 'false'; @@ -694,7 +695,7 @@ include "root.php"; //server settings $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->temp_dir(); + $tmp[$x]['value'] = $this->global_settings->switch_temp_dir(); $tmp[$x]['category'] = 'server'; $tmp[$x]['subcategory'] = 'temp'; $tmp[$x]['enabled'] = 'true'; @@ -707,7 +708,7 @@ include "root.php"; $tmp[$x]['enabled'] = 'true'; $x++; $tmp[$x]['name'] = 'dir'; - $tmp[$x]['value'] = $this->global_settings->backup_vdir(); + $tmp[$x]['value'] = $this->global_settings->switch_backup_vdir(); $tmp[$x]['category'] = 'server'; $tmp[$x]['subcategory'] = 'backup'; $tmp[$x]['enabled'] = 'true'; @@ -825,7 +826,7 @@ include "root.php"; protected function create_superuser() { $this->write_progress("\tChecking if superuser exists '" . $this->global_settings->domain_name . "'"); $sql = "select * from v_users "; - $sql .= "where domain_uuid = '".$this->_domain_uuid."' "; + $sql .= "where domain_uuid = '".$this->global_settings->domain_uuid()."' "; $sql .= "and username = '".$this->admin_username."' "; $sql .= "limit 1 "; $this->write_debug($sql); @@ -866,7 +867,7 @@ include "root.php"; $sql .= ") "; $sql .= "values "; $sql .= "("; - $sql .= "'".$this->_domain_uuid."', "; + $sql .= "'".$this->global_settings->domain_uuid()."', "; $sql .= "'".$this->admin_uuid."', "; $sql .= "'$contact_uuid', "; $sql .= "'".$this->admin_username."', "; @@ -881,7 +882,7 @@ include "root.php"; } $this->write_progress("\tChecking if superuser contact exists"); $sql = "select count(*) from v_contacts "; - $sql .= "where domain_uuid = '".$this->_domain_uuid."' "; + $sql .= "where domain_uuid = '".$this->global_settings->domain_uuid()."' "; $sql .= "and contact_name_given = '".$this->admin_username."' "; $sql .= "and contact_nickname = '".$this->admin_username."' "; $sql .= "limit 1 "; @@ -900,7 +901,7 @@ include "root.php"; $sql .= ") "; $sql .= "values "; $sql .= "("; - $sql .= "'".$this->_domain_uuid."', "; + $sql .= "'".$this->global_settings->domain_uuid()."', "; $sql .= "'$contact_uuid', "; $sql .= "'user', "; $sql .= "'".$this->admin_username."', "; @@ -911,7 +912,7 @@ include "root.php"; } $this->write_progress("\tChecking if superuser is in the correct group"); $sql = "select count(*) from v_group_users "; - $sql .= "where domain_uuid = '".$this->_domain_uuid."' "; + $sql .= "where domain_uuid = '".$this->global_settings->domain_uuid()."' "; $sql .= "and user_uuid = '".$this->admin_uuid."' "; $sql .= "and group_name = 'superadmin' "; $sql .= "limit 1 "; @@ -931,7 +932,7 @@ include "root.php"; $sql .= "values "; $sql .= "("; $sql .= "'".uuid()."', "; - $sql .= "'".$this->_domain_uuid."', "; + $sql .= "'".$this->global_settings->domain_uuid()."', "; $sql .= "'".$this->admin_uuid."', "; $sql .= "'superadmin' "; $sql .= ");"; @@ -994,7 +995,7 @@ include "root.php"; //set needed session settings $_SESSION["username"] = $this->admin_username; - $_SESSION["domain_uuid"] = $this->_domain_uuid; + $_SESSION["domain_uuid"] = $this->global_settings->domain_uuid(); require $this->config_php; require "resources/require.php"; $_SESSION['event_socket_ip_address'] = $this->global_settings->event_host; diff --git a/core/install/resources/classes/install_switch.php b/core/install/resources/classes/install_switch.php index f9fa1b9ec2..e2cd95dd00 100644 --- a/core/install/resources/classes/install_switch.php +++ b/core/install/resources/classes/install_switch.php @@ -35,10 +35,10 @@ include "root.php"; public $debug = false; function __construct($global_settings) { - if($global_settings == null){ + if(is_null($global_settings)){ require_once "resources/classes/global_settings.php"; $global_settings = new global_settings(); - elseif(!is_a($global_settings, 'global_settings')){ + }elseif(!is_a($global_settings, 'global_settings')){ throw new Exception('The parameter $global_settings must be a global_settings object (or a subclass of)'); } $this->global_settings = $global_settings; @@ -98,8 +98,8 @@ include "root.php"; } } //This looks wrong, essentially if we can't use /bin/cp it manually fils dirs, not correct - $scripts_dir_target = $_SESSION['switch']['scripts']['dir']; - $scripts_dir_source = realpath($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/resources/install/scripts'); + $script_dir_target = $_SESSION['switch']['scripts']['dir']; + $script_dir_source = realpath($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/resources/install/scripts'); foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($src)) as $file_path_source) { if ( substr_count($file_path_source, '/..') == 0 && @@ -197,14 +197,14 @@ include "root.php"; function copy_conf() { $this->write_progress("\tCopying Config"); //make a backup of the config - if (file_exists($this->global_settings->conf_dir())) { - $this->backup_dir($this->global_settings->conf_dir(), 'fusionpbx_switch_config'); - $this->recursive_delete($this->global_settings->conf_dir()); + if (file_exists($this->global_settings->switch_conf_dir())) { + $this->backup_dir($this->global_settings->switch_conf_dir(), 'fusionpbx_switch_config'); + $this->recursive_delete($this->global_settings->switch_conf_dir()); } //make sure the conf directory exists - if (!is_dir($this->global_settings->conf_dir())) { - if (!mkdir($this->global_settings->conf_dir(), 0774, true)) { - throw new Exception("Failed to create the switch conf directory '".$this->global_settings->conf_dir()."'. "); + if (!is_dir($this->global_settings->switch_conf_dir())) { + if (!mkdir($this->global_settings->switch_conf_dir(), 0774, true)) { + throw new Exception("Failed to create the switch conf directory '".$this->global_settings->switch_conf_dir()."'. "); } } //copy resources/templates/conf to the freeswitch conf dir @@ -214,14 +214,14 @@ include "root.php"; else { $src_dir = $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH."/resources/templates/conf"; } - $dst_dir = $this->global_settings->conf_dir(); + $dst_dir = $this->global_settings->switch_conf_dir(); if (is_readable($dst_dir)) { $this->recursive_copy($src_dir, $dst_dir); unset($src_dir, $dst_dir); } - $fax_dir = join( DIRECTORY_SEPARATOR, array($this->global_settings->storage_dir(), 'fax')); + $fax_dir = join( DIRECTORY_SEPARATOR, array($this->global_settings->switch_storage_dir(), 'fax')); if (!is_readable($fax_dir)) { mkdir($fax_dir,0777,true); } - $voicemail_dir = join( DIRECTORY_SEPARATOR, array($this->global_settings->storage_dir(), 'voicemail')); + $voicemail_dir = join( DIRECTORY_SEPARATOR, array($this->global_settings->switch_storage_dir(), 'voicemail')); if (!is_readable($voicemail_dir)) { mkdir($voicemail_dir,0777,true); } //create the dialplan/default.xml for single tenant or dialplan/domain.xml @@ -229,7 +229,7 @@ include "root.php"; $dialplan = new dialplan; $dialplan->domain_uuid = $this->domain_uuid; $dialplan->domain = $this->domain_name; - $dialplan->switch_dialplan_dir = join( DIRECTORY_SEPARATOR, array($this->global_settings->conf_dir(), "/dialplan")); + $dialplan->switch_dialplan_dir = join( DIRECTORY_SEPARATOR, array($this->global_settings->switch_conf_dir(), "/dialplan")); $dialplan->restore_advanced_xml(); if($this->_debug){ print_r($dialplan->result, $message); @@ -243,7 +243,7 @@ include "root.php"; } //write the switch.conf.xml file - if (file_exists($this->global_settings->conf_dir())) { + if (file_exists($this->global_settings->switch_conf_dir())) { switch_conf_xml(); } @@ -251,7 +251,7 @@ include "root.php"; function copy_scripts() { $this->write_progress("\tCopying Scripts"); - $script_dir = $this->global_settings->script_dir(); + $script_dir = $this->global_settings->switch_script_dir(); if(strlen($script_dir) == 0) { throw new Exception("Cannot copy scripts the 'script_dir' is empty"); } @@ -271,7 +271,7 @@ include "root.php"; } chmod($dst_dir, 0774); }else{ - $this->write_progress("\tSkipping scripts, scripts_dir is unset"); + $this->write_progress("\tSkipping scripts, script_dir is unset"); } } @@ -332,8 +332,8 @@ include "root.php"; if (strlen($this->global_settings->switch_voicemail_vdir()) > 0) { $tmp .= normalize_path_to_os(" voicemail_dir = [[".$this->global_settings->switch_voicemail_vdir()."]];\n"); } - if (strlen($this->global_settings->switch_scripts_dir()) > 0) { - $tmp .= normalize_path_to_os(" scripts_dir = [[".$this->global_settings->switch_scripts_dir()."]];\n"); + if (strlen($this->global_settings->switch_script_dir()) > 0) { + $tmp .= normalize_path_to_os(" script_dir = [[".$this->global_settings->switch_script_dir()."]];\n"); } $tmp .= normalize_path_to_os(" php_dir = [[".PHP_BINDIR."]];\n"); if (substr(strtoupper(PHP_OS), 0, 3) == "WIN") { @@ -357,7 +357,6 @@ include "root.php"; $tmp .= " database[\"switch\"] = \"odbc://freeswitch:".$dsn_username.":".$dsn_password."\";\n"; } elseif ($this->global_settings->db_type() == "pgsql") { - if ($this->global_settings->db_host() == "localhost") { $this->global_settings->db_host() = "127.0.0.1"; } $tmp .= " database[\"system\"] = \"pgsql://hostaddr=".$this->global_settings->db_host()." port=".$this->global_settings->db_port()." dbname=".$this->global_settings->db_name()." user=".$this->global_settings->db_username()." password=".$this->global_settings->db_password()." options='' application_name='".$this->global_settings->db_name()."'\";\n"; $tmp .= " database[\"switch\"] = \"pgsql://hostaddr=".$this->global_settings->db_host()." port=".$this->global_settings->db_port()." dbname=freeswitch user=".$this->global_settings->db_username()." password=".$this->global_settings->db_password()." options='' application_name='freeswitch'\";\n"; } @@ -403,7 +402,7 @@ include "root.php"; $tmp .= " dofile(\"/etc/fusionpbx/local.lua\");\n"; $tmp .= " elseif (file_exists(\"/usr/local/etc/fusionpbx/local.lua\")) then\n"; $tmp .= " dofile(\"/usr/local/etc/fusionpbx/local.lua\");\n"; - $tmp .= " elseif (file_exists(scripts_dir..\"/resources/local.lua\")) then\n"; + $tmp .= " elseif (file_exists(script_dir..\"/resources/local.lua\")) then\n"; $tmp .= " require(\"resources.local\");\n"; $tmp .= " end\n"; fwrite($fout, $tmp);