diff --git a/app/conferences/conference_edit.php b/app/conferences/conference_edit.php index 52b20f44fa..36d86909b6 100644 --- a/app/conferences/conference_edit.php +++ b/app/conferences/conference_edit.php @@ -52,7 +52,7 @@ } //get http post variables and set them to php variables - if (count($_POST)>0) { + if (count($_POST) > 0) { $dialplan_uuid = $_POST["dialplan_uuid"]; $conference_name = $_POST["conference_name"]; $conference_extension = $_POST["conference_extension"]; @@ -65,7 +65,6 @@ //sanitize the conference name $conference_name = preg_replace("/[^A-Za-z0-9\- ]/", "", $conference_name); - $conference_name = str_replace(" ", "-", $conference_name); } //delete the user from the v_conference_users @@ -120,16 +119,17 @@ //send a message message::add($text['confirm-add']); - header("Location: conference_edit.php?id=".$conference_uuid); + header("Location: conference_edit.php?id=".urlencode($conference_uuid)); exit; } //process http post variables if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { - if ($action == "update") { - $conference_uuid = $_POST["conference_uuid"]; - } + //get the conference id + if ($action == "update") { + $conference_uuid = $_POST["conference_uuid"]; + } //check for all required data $msg = ''; @@ -157,157 +157,65 @@ //add or update the database if ($_POST["persistformvar"] != "true") { - if ($action == "add") { - //prepare the uuids - $conference_uuid = uuid(); - $dialplan_uuid = uuid(); - //add the conference - $array['conferences'][0]['domain_uuid'] = $domain_uuid; - $array['conferences'][0]['conference_uuid'] = $conference_uuid; - $array['conferences'][0]['dialplan_uuid'] = $dialplan_uuid; - $array['conferences'][0]['conference_name'] = $conference_name; - $array['conferences'][0]['conference_extension'] = $conference_extension; - $array['conferences'][0]['conference_pin_number'] = $conference_pin_number; - $array['conferences'][0]['conference_profile'] = $conference_profile; - $array['conferences'][0]['conference_flags'] = $conference_flags; - $array['conferences'][0]['conference_order'] = $conference_order; - $array['conferences'][0]['conference_description'] = $conference_description; - $array['conferences'][0]['conference_enabled'] = $conference_enabled; - $database = new database; - $database->app_name = 'conferences'; - $database->app_uuid = 'b81412e8-7253-91f4-e48e-42fc2c9a38d9'; - $database->save($array); - $response = $database->message; - unset($array); + //update the conference extension + $array['conferences'][0]['domain_uuid'] = $domain_uuid; + $array['conferences'][0]['conference_uuid'] = $conference_uuid; + $array['conferences'][0]['dialplan_uuid'] = $dialplan_uuid; + $array['conferences'][0]['conference_name'] = $conference_name; + $array['conferences'][0]['conference_extension'] = $conference_extension; + $array['conferences'][0]['conference_pin_number'] = $conference_pin_number; + $array['conferences'][0]['conference_profile'] = $conference_profile; + $array['conferences'][0]['conference_flags'] = $conference_flags; + $array['conferences'][0]['conference_order'] = $conference_order; + $array['conferences'][0]['conference_description'] = $conference_description; + $array['conferences'][0]['conference_enabled'] = $conference_enabled; - //create the dialplan entry - $dialplan_name = $conference_name; - $dialplan_order ='333'; - $dialplan_context = $_SESSION['context']; - $dialplan_enabled = 'true'; - $dialplan_description = $conference_description; - $app_uuid = 'b81412e8-7253-91f4-e48e-42fc2c9a38d9'; - dialplan_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_name, $dialplan_order, $dialplan_context, $dialplan_enabled, $dialplan_description, $app_uuid); + //build the xml + $dialplan_xml = "\n"; + $dialplan_xml .= " \n"; + $dialplan_xml .= " \n"; + $dialplan_xml .= " \n"; + $dialplan_xml .= " \n"; + $dialplan_xml .= "\n"; - // - $dialplan_detail_tag = 'condition'; //condition, action, antiaction - $dialplan_detail_type = 'destination_number'; - $dialplan_detail_data = '^(conf\+)?'.$conference_extension.'$'; - $dialplan_detail_order = '000'; - $dialplan_detail_group = '2'; - dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data); + //update the conference dialplan + $array['dialplans'][0]['dialplan_uuid'] = $dialplan_uuid; + $array['dialplans'][0]['domain_uuid'] = $_SESSION['domain_uuid']; + $array['dialplans'][0]['dialplan_name'] = $conference_name; + $array['dialplans'][0]['dialplan_number'] = $conference_extension; + $array['dialplans'][0]['dialplan_xml'] = $dialplan_xml; + if (strlen($dialplan_order) > 0) { + $array['dialplans'][0]['dialplan_order'] = '333'; + } + $array['dialplans'][0]['dialplan_context'] = $_SESSION['context']; + $array['dialplans'][0]['dialplan_enabled'] = 'true'; + $array['dialplans'][0]['dialplan_description'] = $conference_description; - // - $dialplan_detail_tag = 'action'; //condition, action, antiaction - $dialplan_detail_type = 'answer'; - $dialplan_detail_data = ''; - $dialplan_detail_order = '010'; - $dialplan_detail_group = '2'; - dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data); + $p = new permissions; + $p->add('dialplan_edit', 'temp'); - // - $dialplan_detail_tag = 'action'; //condition, action, antiaction - $dialplan_detail_type = 'conference'; - $pin_number = ''; if (strlen($conference_pin_number) > 0) { $pin_number = "+".$conference_pin_number; } - $flags = ''; if (strlen($conference_flags) > 0) { $flags = "+flags{".$conference_flags."}"; } - $dialplan_detail_data = $conference_name.'@'.$_SESSION['domain_name']."@".$conference_profile.$pin_number.$flags; - $dialplan_detail_order = '020'; - $dialplan_detail_group = '2'; - dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data); + $database = new database; + $database->app_name = 'conferences'; + $database->app_uuid = 'b81412e8-7253-91f4-e48e-42fc2c9a38d9'; + $database->save($array); + $response = $database->message; + unset($array); - //add the message - message::add($text['confirm-add']); - } //if ($action == "add") + $p->delete('dialplan_edit', 'temp'); - if ($action == "update") { - //update the conference extension - $array['conferences'][0]['domain_uuid'] = $domain_uuid; - $array['conferences'][0]['conference_uuid'] = $conference_uuid; - $array['conferences'][0]['dialplan_uuid'] = $dialplan_uuid; - $array['conferences'][0]['conference_name'] = $conference_name; - $array['conferences'][0]['conference_extension'] = $conference_extension; - $array['conferences'][0]['conference_pin_number'] = $conference_pin_number; - $array['conferences'][0]['conference_profile'] = $conference_profile; - $array['conferences'][0]['conference_flags'] = $conference_flags; - $array['conferences'][0]['conference_order'] = $conference_order; - $array['conferences'][0]['conference_description'] = $conference_description; - $array['conferences'][0]['conference_enabled'] = $conference_enabled; + //delete the dialplan details + $sql = "delete from v_dialplan_details "; + $sql .= "where dialplan_uuid = :dialplan_uuid "; + //$sql .= "and domain_uuid = :domain_uuid "; + //$parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['dialplan_uuid'] = $dialplan_uuid; + $database = new database; + $database->execute($sql, $parameters); + unset($sql, $parameters); - $database = new database; - $database->app_name = 'conferences'; - $database->app_uuid = 'b81412e8-7253-91f4-e48e-42fc2c9a38d9'; - $database->save($array); - $response = $database->message; - unset($array); - - //update the conference dialplan - $array['dialplans'][0]['dialplan_uuid'] = $dialplan_uuid; - $array['dialplans'][0]['domain_uuid'] = $_SESSION['domain_uuid']; - $array['dialplans'][0]['dialplan_name'] = $conference_name; - if (strlen($dialplan_order) > 0) { - $array['dialplans'][0]['dialplan_order'] = '333'; - } - $array['dialplans'][0]['dialplan_context'] = $_SESSION['context']; - $array['dialplans'][0]['dialplan_enabled'] = 'true'; - $array['dialplans'][0]['dialplan_description'] = $conference_description; - - $p = new permissions; - $p->add('dialplan_edit', 'temp'); - - $database = new database; - $database->app_name = 'conferences'; - $database->app_uuid = 'b81412e8-7253-91f4-e48e-42fc2c9a38d9'; - $database->save($array); - $response = $database->message; - unset($array); - - $p->delete('dialplan_edit', 'temp'); - - //update dialplan detail condition - $sql = "update v_dialplan_details set "; - $sql .= "dialplan_detail_data = :dialplan_detail_data "; - $sql .= "where domain_uuid = :domain_uuid "; - $sql .= "and dialplan_detail_tag = 'condition' "; - $sql .= "and dialplan_detail_type = 'destination_number' "; - $sql .= "and dialplan_uuid = :dialplan_uuid "; - $parameters['dialplan_detail_data'] = '^'.$conference_extension.'$'; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $parameters['dialplan_uuid'] = $dialplan_uuid; - $database = new database; - $database->execute($sql, $parameters); - unset($sql, $parameters); - - //update dialplan detail action - $pin_number = strlen($conference_pin_number) > 0 ? '+'.$conference_pin_number : null; - $flags = strlen($conference_flags) > 0 ? '+flags{'.$conference_flags.'}' : null; - $dialplan_detail_data = $conference_uuid.'@'.$_SESSION['domain_name']."@".$conference_profile.$pin_number.$flags; - $sql = "update v_dialplan_details set "; - $sql .= "dialplan_detail_data = :dialplan_detail_data "; - $sql .= "where domain_uuid = :domain_uuid "; - $sql .= "and dialplan_detail_tag = 'action' "; - $sql .= "and dialplan_detail_type = 'conference' "; - $sql .= "and dialplan_uuid = :dialplan_uuid "; - $parameters['dialplan_detail_data'] = $dialplan_detail_data; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $parameters['dialplan_uuid'] = $dialplan_uuid; - $database = new database; - $database->execute($sql, $parameters); - unset($sql, $parameters); - - //add the message - message::add($text['confirm-update']); - } //if ($action == "update") - - //update the dialplan xml - $dialplans = new dialplan; - $dialplans->source = "details"; - $dialplans->destination = "database"; - $dialplans->uuid = $dialplan_uuid; - $dialplans->xml(); - - //save the xml - save_dialplan_xml(); + //add the message + message::add($text['confirm-update']); //apply settings reminder $_SESSION["reload_xml"] = true; @@ -318,7 +226,7 @@ //redirect the browser header("Location: conferences.php"); - return; + exit; } //if ($_POST["persistformvar"] != "true") } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)