Portions created by the Initial Developer are Copyright (C) 2016-2018 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes require_once "root.php"; require_once "resources/require.php"; //check permissions require_once "resources/check_auth.php"; if (permission_exists('sip_profile_add') || permission_exists('sip_profile_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //action add or update if (isset($_REQUEST["id"])) { $action = "update"; $sip_profile_uuid = check_str($_REQUEST["id"]); } else { $action = "add"; } //get http post variables and set them to php variables if (is_array($_POST)) { $sip_profile_uuid = check_str($_POST["sip_profile_uuid"]); $sip_profile_name = check_str($_POST["sip_profile_name"]); $sip_profile_hostname = check_str($_POST["sip_profile_hostname"]); $sip_profile_enabled = check_str($_POST["sip_profile_enabled"]); $sip_profile_description = check_str($_POST["sip_profile_description"]); } //process the user data and save it to the database if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //get the uuid from the POST if ($action == "update") { $sip_profile_uuid = check_str($_POST["sip_profile_uuid"]); } //check for all required data $msg = ''; if (strlen($sip_profile_uuid) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_uuid']."
\n"; } if (strlen($sip_profile_name) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_name']."
\n"; } //if (strlen($sip_profile_hostname) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_hostname']."
\n"; } if (strlen($sip_profile_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_enabled']."
\n"; } if (strlen($sip_profile_description) == 0) { $msg .= $text['message-required']." ".$text['label-sip_profile_description']."
\n"; } if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { require_once "resources/header.php"; require_once "resources/persist_form_var.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "resources/footer.php"; return; } //cleanup the array $x = 0; foreach ($_POST["sip_profile_domains"] as $row) { //unset the empty row if (strlen($_POST["sip_profile_domains"][$x]["sip_profile_domain_name"]) == 0) { unset($_POST["sip_profile_domains"][$x]); } if (strlen($_POST["sip_profile_domains"][$x]["sip_profile_domain_alias"]) == 0) { unset($_POST["sip_profile_domains"][$x]); } if (strlen($_POST["sip_profile_domains"][$x]["sip_profile_domain_parse"]) == 0) { unset($_POST["sip_profile_domains"][$x]); } //increment the row $x++; } //cleanup the array $x = 0; foreach ($_POST["sip_profile_settings"] as $row) { //unset the empty row if (strlen($_POST["sip_profile_settings"][$x]["sip_profile_setting_name"]) == 0) { unset($_POST["sip_profile_settings"][$x]); } //if (strlen($_POST["sip_profile_settings"][$x]["sip_profile_setting_value"]) == 0) { // unset($_POST["sip_profile_settings"][$x]); //} if (strlen($_POST["sip_profile_settings"][$x]["sip_profile_setting_enabled"]) == 0) { unset($_POST["sip_profile_settings"][$x]); } //increment the row $x++; } //add the sip_profile_uuid if (strlen($_POST["sip_profile_uuid"]) == 0) { $sip_profile_uuid = uuid(); $_POST["sip_profile_uuid"] = $sip_profile_uuid; } //prepare the array $array['sip_profiles'][] = $_POST; //save to the data $database = new database; $database->app_name = 'sip_profiles'; $database->app_uuid = null; if (strlen($sip_profile_uuid) > 0) { $database->uuid($sip_profile_uuid); } $database->save($array); $message = $database->message; //debug info //echo "
";
			//print_r($message);
			//echo "
"; //exit; //get the hostname $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); if ($fp) { $switch_cmd = "switchname"; $sip_profile_hostname = event_socket_request($fp, 'api '.$switch_cmd); } //clear the cache $cache = new cache; $cache->delete("configuration:sofia.conf:".$sip_profile_hostname); //save the sip profile xml save_sip_profile_xml(); //apply settings reminder $_SESSION["reload_xml"] = true; //redirect the user if (isset($action)) { if ($action == "add") { message::add($text['message-add']); } if ($action == "update") { message::add($text['message-update']); } header('Location: sip_profile_edit.php?id='.escape($sip_profile_uuid)); return; } } //(is_array($_POST) && strlen($_POST["persistformvar"]) == 0) //pre-populate the form if (is_array($_GET) && $_POST["persistformvar"] != "true") { $sip_profile_uuid = check_str($_GET["id"]); $sql = "select * from v_sip_profiles "; $sql .= "where sip_profile_uuid = '$sip_profile_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $sip_profiles = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($sip_profiles as $key => $row) { $sip_profiles[$key] = array_map("escape", $row); } foreach ($sip_profiles as $row) { $sip_profile_name = $row["sip_profile_name"]; $sip_profile_hostname = $row["sip_profile_hostname"]; $sip_profile_enabled = $row["sip_profile_enabled"]; $sip_profile_description = $row["sip_profile_description"]; } unset ($prep_statement); } //get the child data $sql = "select * from v_sip_profile_settings "; $sql .= "where sip_profile_uuid = '".$sip_profile_uuid."' "; $sql .= "order by sip_profile_setting_name "; $prep_statement = $db->prepare($sql); $prep_statement->execute(); $sip_profile_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($sip_profile_settings as $key => $row) { $sip_profile_settings[$key] = array_map("escape", $row); } //add an empty row $x = count($sip_profile_settings); $sip_profile_settings[$x]['sip_profile_setting_uuid'] = uuid(); $sip_profile_settings[$x]['sip_profile_uuid'] = $sip_profile_uuid; $sip_profile_settings[$x]['sip_profile_setting_name'] = ''; $sip_profile_settings[$x]['sip_profile_setting_value'] = ''; $sip_profile_settings[$x]['sip_profile_setting_enabled'] = ''; $sip_profile_settings[$x]['sip_profile_setting_description'] = ''; //get the child data $sql = "select * from v_sip_profile_domains "; $sql .= "where sip_profile_uuid = '".$sip_profile_uuid."' "; $prep_statement = $db->prepare($sql); $prep_statement->execute(); $sip_profile_domains = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($sip_profile_domains as $key => $row) { $sip_profile_domains[$key] = array_map("escape", $row); } //add an empty row $x = count($sip_profile_domains); $sip_profile_domains[$x]['sip_profile_domain_uuid'] = uuid(); $sip_profile_domains[$x]['sip_profile_uuid'] = $sip_profile_uuid; $sip_profile_domains[$x]['sip_profile_domain_name'] = ''; $sip_profile_domains[$x]['sip_profile_domain_alias'] = ''; $sip_profile_domains[$x]['sip_profile_domain_parse'] = ''; //show the header require_once "resources/header.php"; //label to form input echo "\n"; //show the content echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " "; echo "
".$text['title-sip_profile']."

\n"; echo " "; echo " \n"; echo " "; echo "
\n"; echo " ".$text['label-sip_profile_name']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-sip_profile_name']."\n"; echo "
\n"; echo " ".$text['title-sip_profile_domains']."\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; $x = 0; foreach($sip_profile_domains as $row) { echo " \n"; if (strlen($row["sip_profile_domain_uuid"]) > 0) { $sip_profile_domain_uuid = $row["sip_profile_domain_uuid"]; } if (strlen($row["sip_profile_uuid"]) > 0) { $sip_profile_uuid = $row["sip_profile_uuid"]; } echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; $x++; } echo "
 ".$text['label-sip_profile_domain_name']."".$text['label-sip_profile_domain_alias']."".$text['label-sip_profile_domain_parse']."
\n"; echo "   \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; if (strlen($row["sip_profile_domain_name"]) > 0) { echo " \n"; } echo "
\n"; echo "
\n"; echo " ".$text['label-sip_profile_settings']."\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; $x = 0; foreach($sip_profile_settings as $row) { echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; $x++; } echo "
 ".$text['label-sip_profile_setting_name']."".$text['label-sip_profile_setting_value']."".$text['label-sip_profile_setting_enabled']."".$text['label-sip_profile_setting_description']."
\n"; echo "   \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; if (strlen($row["sip_profile_setting_name"]) > 0) { echo " \n"; } echo "
\n"; echo "
\n"; echo " ".$text['label-sip_profile_hostname']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-sip_profile_hostname']."\n"; echo "
\n"; echo " ".$text['label-sip_profile_enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-sip_profile_enabled']."\n"; echo "
\n"; echo " ".$text['label-sip_profile_description']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-sip_profile_description']."\n"; echo "
\n"; if ($action == "update") { echo " \n"; } echo " \n"; echo "
"; echo "
"; echo "

"; //include the footer require_once "resources/footer.php"; ?>