Portions created by the Initial Developer are Copyright (C) 2008-2012 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; require_once "resources/paging.php"; require_once "resources/classes/logging.php"; if (permission_exists('dialplan_add') || permission_exists('inbound_route_add') || permission_exists('outbound_route_add') || permission_exists('fifo_add') || permission_exists('time_condition_add')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support require_once "app_languages.php"; foreach($text as $key => $value) { $text[$key] = $value[$_SESSION['domain']['language']['code']]; } //logger $log = new Logging(); //set the http get/post variable(s) to a php variable if (isset($_REQUEST["id"])) { $dialplan_uuid = check_str($_REQUEST["id"]); $log->log("debug", "isset id."); $log->log("debug", $dialplan_uuid); } //get the dialplan data $dialplan_uuid = $_GET["id"]; $sql = "select * from v_dialplans "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "and dialplan_uuid = '$dialplan_uuid' "; $log->log("debug", check_sql($sql)); $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $log->log("debug", $result); foreach ($result as &$row) { $database_dialplan_uuid = $row["dialplan_uuid"]; $app_uuid = $row["app_uuid"]; $dialplan_name = $row["dialplan_name"]; $dialplan_order = $row["dialplan_order"]; $dialplan_continue = $row["dialplan_continue"]; $dialplan_context = $row["dialplan_context"]; $dialplan_enabled = $row["dialplan_enabled"]; $dialplan_description = "copy: ".$row["dialplan_description"]; break; //limit to 1 row } unset ($prep_statement); //copy the dialplan $dialplan_uuid = uuid(); $sql = "insert into v_dialplans "; $sql .= "("; $sql .= "domain_uuid, "; $sql .= "dialplan_uuid, "; $sql .= "app_uuid, "; $sql .= "dialplan_name, "; $sql .= "dialplan_order, "; $sql .= "dialplan_continue, "; $sql .= "dialplan_context, "; $sql .= "dialplan_enabled, "; $sql .= "dialplan_description "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".$_SESSION['domain_uuid']."', "; $sql .= "'$dialplan_uuid', "; $sql .= "'$app_uuid', "; $sql .= "'".$dialplan_name."-copy', "; $sql .= "'$dialplan_order', "; $sql .= "'$dialplan_continue', "; $sql .= "'$dialplan_context', "; $sql .= "'$dialplan_enabled', "; $sql .= "'$dialplan_description' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //get the the dialplan details $sql = "select * from v_dialplan_details "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "and dialplan_uuid = '$database_dialplan_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $dialplan_detail_tag = $row["dialplan_detail_tag"]; $dialplan_detail_order = $row["dialplan_detail_order"]; $dialplan_detail_type = $row["dialplan_detail_type"]; $dialplan_detail_data = $row["dialplan_detail_data"]; //copy the dialplan details $dialplan_detail_uuid = uuid(); $sql = "insert into v_dialplan_details "; $sql .= "("; $sql .= "domain_uuid, "; $sql .= "dialplan_uuid, "; $sql .= "dialplan_detail_uuid, "; $sql .= "dialplan_detail_tag, "; $sql .= "dialplan_detail_order, "; $sql .= "dialplan_detail_type, "; $sql .= "dialplan_detail_data "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".$_SESSION['domain_uuid']."', "; $sql .= "'".check_str($dialplan_uuid)."', "; $sql .= "'".check_str($dialplan_detail_uuid)."', "; $sql .= "'".check_str($dialplan_detail_tag)."', "; $sql .= "'".check_str($dialplan_detail_order)."', "; $sql .= "'".check_str($dialplan_detail_type)."', "; $sql .= "'".check_str($dialplan_detail_data)."' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); } unset ($prep_statement); //synchronize the xml config save_dialplan_xml(); //delete the dialplan context from memcache $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); if ($fp) { $switch_cmd = "memcache delete dialplan:".$dialplan_context; $switch_result = event_socket_request($fp, 'api '.$switch_cmd); } $_SESSION["message"] = $text['message-copy']; switch ($app_uuid) { case "c03b422e-13a8-bd1b-e42b-b6b9b4d27ce4": //inbound routes case "8c914ec3-9fc0-8ab5-4cda-6c9288bdc9a3": //outbound routes case "4b821450-926b-175a-af93-a03c441818b1": //time conditions $redirect_url = PROJECT_PATH."/app/dialplan/dialplans.php?app_uuid=".$app_uuid; break; default: $redirect_url = PROJECT_PATH."/app/dialplan/dialplans.php"; } header("Location: ".$redirect_url); return; ?>