2012-07-17 17:56:32 +02:00
|
|
|
<?php
|
|
|
|
|
/*
|
|
|
|
|
FusionPBX
|
|
|
|
|
Version: MPL 1.1
|
|
|
|
|
|
|
|
|
|
The contents of this file are subject to the Mozilla Public License Version
|
|
|
|
|
1.1 (the "License"); you may not use this file except in compliance with
|
|
|
|
|
the License. You may obtain a copy of the License at
|
|
|
|
|
http://www.mozilla.org/MPL/
|
|
|
|
|
|
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
|
|
|
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
|
|
|
for the specific language governing rights and limitations under the
|
|
|
|
|
License.
|
|
|
|
|
|
|
|
|
|
The Original Code is FusionPBX
|
|
|
|
|
|
|
|
|
|
The Initial Developer of the Original Code is
|
|
|
|
|
Mark J Crane <markjcrane@fusionpbx.com>
|
|
|
|
|
Portions created by the Initial Developer are Copyright (C) 2008-2012
|
|
|
|
|
the Initial Developer. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
Contributor(s):
|
|
|
|
|
Mark J Crane <markjcrane@fusionpbx.com>
|
|
|
|
|
*/
|
|
|
|
|
|
2012-08-14 23:59:45 +02:00
|
|
|
//proccess this only one time
|
|
|
|
|
if ($domains_processed == 1) {
|
2012-10-16 07:47:49 +02:00
|
|
|
|
2012-08-14 23:59:45 +02:00
|
|
|
//set the database driver
|
|
|
|
|
$sql = "select * from v_databases ";
|
|
|
|
|
$sql .= "where database_driver is null ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$database_uuid = $row["database_uuid"];
|
|
|
|
|
$database_type = $row["database_type"];
|
|
|
|
|
$database_type_array = explode(":", $database_type);
|
|
|
|
|
if ($database_type_array[0] == "odbc") {
|
|
|
|
|
$database_driver = $database_type_array[1];
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$database_driver = $database_type_array[0];
|
|
|
|
|
}
|
|
|
|
|
$sql = "update v_databases set ";
|
|
|
|
|
$sql .= "database_driver = '$database_driver' ";
|
|
|
|
|
$sql .= "where database_uuid = '$database_uuid' ";
|
|
|
|
|
$db->exec(check_sql($sql));
|
|
|
|
|
unset($sql);
|
2012-07-17 17:56:32 +02:00
|
|
|
}
|
|
|
|
|
|
2013-04-05 03:03:45 +02:00
|
|
|
//replace the backslash with a forward slash
|
|
|
|
|
$db_path = str_replace("\\", "/", $db_path);
|
|
|
|
|
|
2012-08-14 23:59:45 +02:00
|
|
|
if (strlen($_SESSION['switch']['scripts']['dir']) > 0) {
|
|
|
|
|
//get the odbc information
|
|
|
|
|
$sql = "select count(*) as num_rows from v_databases ";
|
|
|
|
|
$sql .= "where database_driver = 'odbc' ";
|
|
|
|
|
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
|
|
|
|
|
$prep_statement = $db->prepare($sql);
|
|
|
|
|
if ($prep_statement) {
|
2012-07-17 17:56:32 +02:00
|
|
|
$prep_statement->execute();
|
2012-08-14 23:59:45 +02:00
|
|
|
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
|
|
|
|
|
if ($row['num_rows'] > 0) {
|
|
|
|
|
$odbc_num_rows = $row['num_rows'];
|
|
|
|
|
|
|
|
|
|
$sql = "select * from v_databases ";
|
|
|
|
|
$sql .= "where database_driver = 'odbc' ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$dsn_name = $row["database_name"];
|
|
|
|
|
$dsn_username = $row["database_username"];
|
|
|
|
|
$dsn_password = $row["database_password"];
|
|
|
|
|
break; //limit to 1 row
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$odbc_num_rows = '0';
|
2012-07-17 17:56:32 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2012-10-16 07:47:49 +02:00
|
|
|
//get the recordings directory
|
|
|
|
|
if (strlen($_SESSION['switch']['recordings']['dir']) > 0) {
|
|
|
|
|
$sql = "select * from v_default_settings ";
|
|
|
|
|
$sql .= "where default_setting_category = 'switch' ";
|
|
|
|
|
$sql .= "and default_setting_subcategory = 'recordings' ";
|
|
|
|
|
$sql .= "and default_setting_name = 'dir' ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$recordings_dir = $row["default_setting_value"];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2012-08-14 23:59:45 +02:00
|
|
|
//config.lua
|
2013-05-02 04:16:49 +02:00
|
|
|
if (is_dir("/etc/fusionpbx")){
|
|
|
|
|
$config = "/etc/fusionpbx/config.lua";
|
|
|
|
|
} elseif (is_dir("/usr/local/etc/fusionpbx")){
|
|
|
|
|
$config = "/usr/local/etc/fusionpbx/config.lua";
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$config = $_SESSION['switch']['scripts']['dir']."/resources/config.lua";
|
|
|
|
|
}
|
|
|
|
|
$fout = fopen($config,"w");
|
2012-08-14 23:59:45 +02:00
|
|
|
$tmp = "\n";
|
|
|
|
|
$tmp .= "--switch directories\n";
|
|
|
|
|
if (strlen($_SESSION['switch']['sounds']['dir']) > 0) {
|
|
|
|
|
$tmp .= " sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n";
|
|
|
|
|
}
|
2013-03-31 10:18:41 +02:00
|
|
|
if (strlen($_SESSION['switch']['db']['dir']) > 0) {
|
|
|
|
|
$tmp .= " database_dir = \"".$_SESSION['switch']['db']['dir']."\";\n";
|
|
|
|
|
}
|
2012-08-14 23:59:45 +02:00
|
|
|
if (strlen($_SESSION['switch']['recordings']['dir']) > 0) {
|
2012-10-16 07:47:49 +02:00
|
|
|
$tmp .= " recordings_dir = \"".$recordings_dir."\";\n";
|
2012-08-14 23:59:45 +02:00
|
|
|
}
|
2013-09-23 21:37:19 +02:00
|
|
|
if (strlen($_SESSION['switch']['storage']['dir']) > 0) {
|
|
|
|
|
$tmp .= " storage_dir = \"".$_SESSION['switch']['storage']['dir']."\";\n";
|
|
|
|
|
}
|
|
|
|
|
if (strlen($_SESSION['switch']['voicemail']['dir']) > 0) {
|
|
|
|
|
$tmp .= " voicemail_dir = \"".$_SESSION['switch']['voicemail']['dir']."\";\n";
|
|
|
|
|
}
|
2013-03-31 10:18:41 +02:00
|
|
|
$tmp .= "\n";
|
|
|
|
|
$tmp .= "--database information\n";
|
2013-05-02 04:16:49 +02:00
|
|
|
$tmp .= " database = {}\n";
|
2013-03-31 10:18:41 +02:00
|
|
|
$tmp .= " database[\"type\"] = \"".$db_type."\";\n";
|
|
|
|
|
$tmp .= " database[\"name\"] = \"".$db_name."\";\n";
|
|
|
|
|
$tmp .= " database[\"path\"] = \"".$db_path."\";\n";
|
2013-04-05 03:03:45 +02:00
|
|
|
|
2013-03-31 10:18:41 +02:00
|
|
|
if ($db_type == "pgsql") {
|
2013-07-30 01:18:42 +02:00
|
|
|
if ($db_host == "localhost") { $db_host = "127.0.0.1"; }
|
2013-03-31 10:18:41 +02:00
|
|
|
$tmp .= " database[\"system\"] = \"pgsql://hostaddr=".$db_host." port=".$db_port." dbname=".$db_name." user=".$db_username." password=".$db_password." options='-c client_min_messages=NOTICE' application_name='".$db_name."'\";\n";
|
|
|
|
|
$tmp .= " database[\"switch\"] = \"pgsql://hostaddr=".$db_host." port=".$db_port." dbname=freeswitch user=".$db_username." password=".$db_password." options='-c client_min_messages=NOTICE' application_name='freeswitch'\";\n";
|
2012-08-14 23:59:45 +02:00
|
|
|
}
|
2013-03-31 10:18:41 +02:00
|
|
|
elseif ($db_type == "sqlite") {
|
|
|
|
|
$tmp .= " database[\"system\"] = \"sqlite://".$db_path."/".$db_name."\";\n";
|
|
|
|
|
$tmp .= " database[\"switch\"] = \"sqlite://".$_SESSION['switch']['db']['dir']."\";\n";
|
2012-08-14 23:59:45 +02:00
|
|
|
}
|
2013-03-31 10:18:41 +02:00
|
|
|
elseif ($db_type == "mysql") {
|
|
|
|
|
if (strlen($dsn_name) > 0) {
|
2013-04-02 00:05:39 +02:00
|
|
|
$tmp .= " database[\"system\"] = \"odbc://".$dsn_name.":".$dsn_username.":".$dsn_password."\";\n";
|
|
|
|
|
$tmp .= " database[\"switch\"] = \"odbc://freeswitch:".$dsn_username.":".$dsn_password."\";\n";
|
2013-03-31 10:18:41 +02:00
|
|
|
}
|
|
|
|
|
else {
|
2013-04-02 00:05:39 +02:00
|
|
|
$tmp .= " database[\"system\"] = \"\";\n";
|
|
|
|
|
$tmp .= " database[\"switch\"] = \"\";\n";
|
2013-03-31 10:18:41 +02:00
|
|
|
}
|
2012-08-14 23:59:45 +02:00
|
|
|
}
|
2013-03-31 10:18:41 +02:00
|
|
|
|
2012-08-14 23:59:45 +02:00
|
|
|
$tmp .= "\n";
|
|
|
|
|
$tmp .= "--additional info\n";
|
2012-10-16 06:09:27 +02:00
|
|
|
$tmp .= " domain_count = ".count($_SESSION["domains"]).";\n";
|
2013-03-31 10:18:41 +02:00
|
|
|
$tmp .= " temp_dir = \"".$_SESSION['server']['temp']['dir']."\";\n";
|
|
|
|
|
$tmp .= "\n";
|
|
|
|
|
$tmp .= "--include local.lua\n";
|
2013-05-02 04:16:49 +02:00
|
|
|
$tmp .= " dofile(scripts_dir..\"/resources/functions/file_exists.lua\");\n";
|
|
|
|
|
$tmp .= " if (file_exists(\"/etc/fusionpbx/local.lua\")) then\n";
|
|
|
|
|
$tmp .= " dofile(scripts_dir..\"/etc/fusionpbx/local.lua\");\n";
|
|
|
|
|
$tmp .= " elseif (file_exists(\"/usr/local/etc/fusionpbx/local.lua\")) then\n";
|
|
|
|
|
$tmp .= " dofile(scripts_dir..\"/usr/local/etc/fusionpbx/local.lua\");\n";
|
|
|
|
|
$tmp .= " elseif (file_exists(scripts_dir..\"/resources/local.lua\")) then\n";
|
|
|
|
|
$tmp .= " dofile(scripts_dir..\"/resources/local.lua\");\n";
|
|
|
|
|
$tmp .= " end\n";
|
2012-08-14 23:59:45 +02:00
|
|
|
fwrite($fout, $tmp);
|
|
|
|
|
unset($tmp);
|
|
|
|
|
fclose($fout);
|
|
|
|
|
}
|
2012-07-17 17:56:32 +02:00
|
|
|
}
|
|
|
|
|
?>
|