function __construct($global_settings)
 {
     if (is_null($global_settings)) {
         require_once "resources/classes/global_settings.php";
         $global_settings = new 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;
     if (is_dir("/etc/fusionpbx")) {
         $this->config_php = "/etc/fusionpbx/config.php";
     } elseif (is_dir("/usr/local/etc/fusionpbx")) {
         $this->config_php = "/usr/local/etc/fusionpbx/config.php";
     } elseif (is_dir($_SERVER['DOCUMENT_ROOT'] . PROJECT_PATH . "/resources")) {
         $this->config_php = $_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/resources/config.php";
     } else {
         $this->config_php = $_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/resources/config.php";
     }
     $this->config_php = normalize_path_to_os($this->config_php);
 }
Exemple #2
0
 function recursive_delete($dir)
 {
     $dst = normalize_path_to_os($dst);
     //$this->write_debug("del /S /F /Q \"$dir\"");
     exec("del /S /F /Q \"{$dir}\"");
     clearstatcache();
 }
 public function create_config_lua()
 {
     //define the database connection as global
     global $db;
     //send progress
     $this->write_progress("\tCreating " . $this->config_lua);
     //set the directories
     $path = dirname($this->config_lua);
     $parent_dir = basename($path);
     if ($parent_dir == 'resources' and !file_exists($path)) {
         $this->write_progress("\t... creating missing '{$path}'");
         if (!mkdir($path, 0755, true)) {
             throw new Exception("Failed to create the missing resources directory '{$path}'");
         }
     }
     //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) {
         $prep_statement->execute();
         $row = $prep_statement->fetch(PDO::FETCH_ASSOC);
         unset($prep_statement);
         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';
         }
     }
     //config.lua
     $fout = fopen($this->config_lua, "w");
     if (!$fout) {
         throw new Exception("Failed to open '" . $this->config_lua . "' for writing");
     }
     $tmp = "\n";
     $tmp .= "--set the variables\n";
     if (strlen($this->global_settings->switch_sounds_dir()) > 0) {
         $tmp .= normalize_path_to_os("\tsounds_dir = [[" . $this->global_settings->switch_sounds_dir() . "]];\n");
     }
     if (strlen($this->global_settings->switch_phrases_vdir()) > 0) {
         $tmp .= normalize_path_to_os("\tphrases_dir = [[" . $this->global_settings->switch_phrases_vdir() . "]];\n");
     }
     if (strlen($this->global_settings->switch_db_dir()) > 0) {
         $tmp .= normalize_path_to_os("\tdatabase_dir = [[" . $this->global_settings->switch_db_dir() . "]];\n");
     }
     if (strlen($this->global_settings->switch_recordings_dir()) > 0) {
         $tmp .= normalize_path_to_os("\trecordings_dir = [[" . $this->global_settings->switch_recordings_dir() . "]];\n");
     }
     if (strlen($this->global_settings->switch_storage_dir()) > 0) {
         $tmp .= normalize_path_to_os("\tstorage_dir = [[" . $this->global_settings->switch_storage_dir() . "]];\n");
     }
     if (strlen($this->global_settings->switch_voicemail_vdir()) > 0) {
         $tmp .= normalize_path_to_os("\tvoicemail_dir = [[" . $this->global_settings->switch_voicemail_vdir() . "]];\n");
     }
     if (strlen($this->global_settings->switch_script_dir()) > 0) {
         $tmp .= normalize_path_to_os("\tscripts_dir = [[" . $this->global_settings->switch_script_dir() . "]];\n");
     }
     $tmp .= normalize_path_to_os("\tphp_dir = [[" . PHP_BINDIR . "]];\n");
     if (substr(strtoupper(PHP_OS), 0, 3) == "WIN") {
         $tmp .= "\tphp_bin = \"php.exe\";\n";
     } else {
         $tmp .= "\tphp_bin = \"php\";\n";
     }
     $tmp .= normalize_path_to_os("\tdocument_root = [[" . $_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "]];\n");
     $tmp .= "\n";
     if (strlen($this->global_settings->db_type()) > 0 || strlen($dsn_name) > 0) {
         $tmp .= "--database information\n";
         $tmp .= "\tdatabase = {}\n";
         $tmp .= "\tdatabase[\"type\"] = \"" . $this->global_settings->db_type() . "\";\n";
         $tmp .= "\tdatabase[\"name\"] = \"" . $this->global_settings->db_name() . "\";\n";
         $tmp .= normalize_path_to_os("\tdatabase[\"path\"] = [[" . $this->global_settings->db_path() . "]];\n");
         if (strlen($dsn_name) > 0) {
             $tmp .= "\tdatabase[\"system\"] = \"odbc://" . $dsn_name . ":" . $dsn_username . ":" . $dsn_password . "\";\n";
             $tmp .= "\tdatabase[\"switch\"] = \"odbc://freeswitch:" . $dsn_username . ":" . $dsn_password . "\";\n";
         } elseif ($this->global_settings->db_type() == "pgsql") {
             $db_host = $this->global_settings->db_host();
             if ($db_host == 'localhost') {
                 $db_host = '127.0.0.1';
             }
             // lua cannot resolve localhost
             if (filter_var($db_host, FILTER_VALIDATE_IP)) {
                 $host_type = "hostaddr";
             } else {
                 $host_type = "host";
             }
             $tmp .= "\tdatabase[\"system\"] = \"pgsql://" . $host_type . "=" . $db_host . " port=" . $this->global_settings->db_port() . " dbname=" . $this->global_settings->db_name() . " user="******" password="******" options='' application_name='" . $this->global_settings->db_name() . "'\";\n";
             $tmp .= "\tdatabase[\"switch\"] = \"pgsql://" . $host_type . "=" . $db_host . " port=" . $this->global_settings->db_port() . " dbname=freeswitch user="******" password="******" options='' application_name='freeswitch'\";\n";
         } elseif ($this->global_settings->db_type() == "sqlite") {
             $tmp .= "\tdatabase[\"system\"] = \"sqlite://" . $this->global_settings->db_path() . "/" . $this->global_settings->db_name() . "\";\n";
             $tmp .= "\tdatabase[\"switch\"] = \"sqlite://" . $_SESSION['switch']['db']['dir'] . "\";\n";
         } elseif ($this->global_settings->db_type() == "mysql") {
             $tmp .= "\tdatabase[\"system\"] = \"\";\n";
             $tmp .= "\tdatabase[\"switch\"] = \"\";\n";
         }
         $tmp .= "\n";
     }
     $tmp .= "--set defaults\n";
     $tmp .= "\texpire = {}\n";
     $tmp .= "\texpire[\"directory\"] = \"3600\";\n";
     $tmp .= "\texpire[\"dialplan\"] = \"3600\";\n";
     $tmp .= "\texpire[\"languages\"] = \"3600\";\n";
     $tmp .= "\texpire[\"sofia.conf\"] = \"3600\";\n";
     $tmp .= "\texpire[\"acl.conf\"] = \"3600\";\n";
     $tmp .= "\n";
     $tmp .= "--set xml_handler\n";
     $tmp .= "\txml_handler = {}\n";
     $tmp .= "\txml_handler[\"fs_path\"] = false;\n";
     $tmp .= "\n";
     $tmp .= "--set the debug options\n";
     $tmp .= "\tdebug[\"params\"] = false;\n";
     $tmp .= "\tdebug[\"sql\"] = false;\n";
     $tmp .= "\tdebug[\"xml_request\"] = false;\n";
     $tmp .= "\tdebug[\"xml_string\"] = false;\n";
     $tmp .= "\tdebug[\"cache\"] = false;\n";
     $tmp .= "\n";
     $tmp .= "--additional info\n";
     $tmp .= "\tdomain_count = " . $this->global_settings->domain_count() . ";\n";
     $tmp .= normalize_path_to_os("\ttemp_dir = [[" . $this->global_settings->switch_temp_dir() . "]];\n");
     if (isset($_SESSION['domain']['dial_string']['text'])) {
         $tmp .= "\tdial_string = \"" . $_SESSION['domain']['dial_string']['text'] . "\";\n";
     }
     $tmp .= "\n";
     $tmp .= "--include local.lua\n";
     $tmp .= "\trequire(\"resources.functions.file_exists\");\n";
     $tmp .= "\tif (file_exists(\"/etc/fusionpbx/local.lua\")) then\n";
     $tmp .= "\t\tdofile(\"/etc/fusionpbx/local.lua\");\n";
     $tmp .= "\telseif (file_exists(\"/usr/local/etc/fusionpbx/local.lua\")) then\n";
     $tmp .= "\t\tdofile(\"/usr/local/etc/fusionpbx/local.lua\");\n";
     $tmp .= "\telseif (file_exists(scripts_dir..\"/resources/local.lua\")) then\n";
     $tmp .= "\t\trequire(\"resources.local\");\n";
     $tmp .= "\tend\n";
     fwrite($fout, $tmp);
     unset($tmp);
     fclose($fout);
 }
Exemple #4
0
echo "<b>" . $text['header-sys-status'] . "</b>";
echo "<br><br>";
echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo "<tr>\n";
echo "\t<th class='th' colspan='2' align='left'>" . $text['title-sys-info'] . "</th>\n";
echo "</tr>\n";
if (permission_exists('system_view_info')) {
    echo "<tr>\n";
    echo "\t<td width='20%' class=\"vncell\" style='text-align: left;'>\n";
    echo "\t\t" . $text['label-version'] . "\n";
    echo "\t</td>\n";
    echo "\t<td class=\"row_style1\">\n";
    echo "\t\t" . software_version() . "\n";
    echo "\t</td>\n";
    echo "</tr>\n";
    $git_path = normalize_path_to_os($_SERVER['PROJECT_ROOT'] . "/.git");
    if (file_exists($git_path)) {
        $git_exe = 'git';
        if (strtoupper(substr(PHP_OS, 0, 3)) === 'SUN') {
            $git_exe = shell_exec('which git');
        }
        $git_branch = shell_exec($git_exe . ' --git-dir=' . $git_path . ' name-rev --name-only HEAD');
        rtrim($git_branch);
        $git_commit = shell_exec($git_exe . ' --git-dir=' . $git_path . ' rev-parse HEAD');
        rtrim($git_commit);
        $git_origin = shell_exec($git_exe . ' --git-dir=' . $git_path . ' config --get remote.origin.url');
        rtrim($git_commit);
        echo "<tr>\n";
        echo "\t<td width='20%' class=\"vncell\" style='text-align: left;'>\n";
        echo "\t\t" . $text['label-git_info'] . "\n";
        echo "\t</td>\n";
Exemple #5
0
echo "<b>" . $text['header-sys-status'] . "</b>";
echo "<br><br>";
echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo "<tr>\n";
echo "\t<th class='th' colspan='2' align='left'>" . $text['title-sys-info'] . "</th>\n";
echo "</tr>\n";
if (permission_exists('system_view_info')) {
    echo "<tr>\n";
    echo "\t<td width='20%' class=\"vncell\" style='text-align: left;'>\n";
    echo "\t\t" . $text['label-version'] . "\n";
    echo "\t</td>\n";
    echo "\t<td class=\"row_style1\">\n";
    echo "\t\t" . software_version() . "\n";
    echo "\t</td>\n";
    echo "</tr>\n";
    $git_path = normalize_path_to_os($_SERVER["DOCUMENT_ROOT"] . "/.git");
    if (file_exists($git_path)) {
        $git_branch = shell_exec('git --git-dir=' . $git_path . ' name-rev --name-only HEAD');
        rtrim($git_branch);
        $git_commit = shell_exec('git --git-dir=' . $git_path . ' rev-parse HEAD');
        rtrim($git_commit);
        $git_origin = shell_exec('git --git-dir=' . $git_path . ' config --get remote.origin.url');
        rtrim($git_commit);
        echo "<tr>\n";
        echo "\t<td width='20%' class=\"vncell\" style='text-align: left;'>\n";
        echo "\t\t" . $text['label-git_info'] . "\n";
        echo "\t</td>\n";
        echo "\t<td class=\"row_style1\">\n";
        echo "\t\t" . $text['label-git_branch'] . " " . $git_branch . "<br>\n";
        echo "\t\t" . $text['label-git_commit'] . " " . $git_commit . "<br>\n";
        echo "\t\t" . $text['label-git_origin'] . " " . $git_origin . "<br>\n";