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 "includes/require.php"; require_once "includes/checkauth.php"; require_once "includes/paging.php"; if (permission_exists('fifo_add') || permission_exists('fifo_edit')) { //access granted } else { echo "access denied"; exit; } //set the action to an add or an update if (isset($_REQUEST["id"])) { $action = "update"; $dialplan_uuid = check_str($_REQUEST["id"]); } else { $action = "add"; } //get http values and set them as variables if (count($_POST)>0) { //$domain_uuid = check_str($_POST["domain_uuid"]); $dialplan_name = check_str($_POST["dialplan_name"]); $dialplan_order = check_str($_POST["dialplan_order"]); $dialplan_continue = check_str($_POST["dialplan_continue"]); $dialplan_context = check_str($_POST["dialplan_context"]); $dialplan_enabled = check_str($_POST["dialplan_enabled"]); $dialplan_description = check_str($_POST["dialplan_description"]); } if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { $msg = ''; if ($action == "update") { $dialplan_uuid = check_str($_POST["dialplan_uuid"]); } //check for all required data if (strlen($domain_uuid) == 0) { $msg .= "Please provide: domain_uuid
\n"; } if (strlen($dialplan_name) == 0) { $msg .= "Please provide: Extension Name
\n"; } if (strlen($dialplan_order) == 0) { $msg .= "Please provide: Order
\n"; } //if (strlen($dialplan_context) == 0) { $msg .= "Please provide: Context
\n"; } if (strlen($dialplan_enabled) == 0) { $msg .= "Please provide: Enabled
\n"; } //if (strlen($dialplan_description) == 0) { $msg .= "Please provide: Description
\n"; } if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { require_once "includes/header.php"; require_once "includes/persistformvar.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "includes/footer.php"; return; } //set the default dialplan_continue to false if (strlen($dialplan_continue) == 0) { $dialplan_continue = 'false'; } //add or update the database if ($_POST["persistformvar"] != "true") { if ($action == "add" && permission_exists('fifo_add')) { $dialplan_context = $_SESSION['context']; $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 .= "'$domain_uuid', "; $sql .= "'$dialplan_uuid', "; $sql .= "'16589224-c876-aeb3-f59f-523a1c0801f7', "; $sql .= "'$dialplan_name', "; $sql .= "'$dialplan_order', "; $sql .= "'$dialplan_continue', "; $sql .= "'$dialplan_context', "; $sql .= "'$dialplan_enabled', "; $sql .= "'$dialplan_description' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //synchronize the xml config save_dialplan_xml(); require_once "includes/header.php"; echo "\n"; echo "
\n"; echo "Add Complete\n"; echo "
\n"; require_once "includes/footer.php"; return; } //if ($action == "add") if ($action == "update" && permission_exists('fifo_edit')) { $sql = "update v_dialplans set "; $sql .= "domain_uuid = '$domain_uuid', "; $sql .= "dialplan_name = '$dialplan_name', "; $sql .= "dialplan_order = '$dialplan_order', "; $sql .= "dialplan_continue = '$dialplan_continue', "; $sql .= "dialplan_context = '$dialplan_context', "; $sql .= "dialplan_enabled = '$dialplan_enabled', "; $sql .= "dialplan_description = '$dialplan_description' "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and dialplan_uuid = '$dialplan_uuid'"; $db->exec(check_sql($sql)); unset($sql); //synchronize the xml config save_dialplan_xml(); require_once "includes/header.php"; echo "\n"; echo "
\n"; echo "Update Complete\n"; echo "
\n"; require_once "includes/footer.php"; return; } //if ($action == "update") } //if ($_POST["persistformvar"] != "true") } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) //pre-populate the form if (count($_GET)>0 && $_POST["persistformvar"] != "true") { $dialplan_uuid = $_GET["id"]; $sql = ""; $sql .= "select * from v_dialplans "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and dialplan_uuid = '$dialplan_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $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 = $row["dialplan_description"]; break; //limit to 1 row } unset ($prep_statement); } //show the header require_once "includes/header.php"; //show the content echo "
"; echo "\n"; echo "\n"; echo " "; echo " "; echo "
\n"; echo "
"; echo "
\n"; echo "
\n"; echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "

\n"; echo " Queues
\n"; echo "
\n"; echo "

\n"; echo " Queues are used to setup waiting lines for callers. Also known as FIFO Queues.\n"; echo "

\n"; echo "
"; 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 "
\n"; echo " Name:\n"; echo "\n"; echo " \n"; echo "
\n"; echo "\n"; echo "
\n"; echo " Order:\n"; echo "\n"; echo " \n"; //echo " \n"; echo "
\n"; echo "\n"; echo "
\n"; //echo " Context:\n"; //echo "\n"; //echo " \n"; //echo "
\n"; //echo "\n"; //echo "
\n"; echo " Continue:\n"; echo "\n"; echo " \n"; echo "
\n"; echo "Extension Continue in most cases is false.\n"; echo "
\n"; echo " Enabled:\n"; echo "\n"; echo " \n"; echo "
\n"; echo "\n"; echo "
\n"; echo " Description:\n"; echo "\n"; echo " \n"; echo "
\n"; echo "\n"; echo "
\n"; if ($action == "update") { echo " \n"; } echo " \n"; echo "
"; echo ""; echo "
"; echo "
"; //v_dialplan_details if ($action == "update" && permission_exists('fifo_edit')) { echo "
"; echo "\n"; echo "\n"; echo " "; echo ""; echo "
\n"; echo "
"; echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo "

Conditions and Actions
\n"; echo "
\n"; echo " The following conditions, actions and anti-actions are used in the dialplan to direct \n"; echo " call flow. Each is processed in order until you reach the action dialplan_detail_tag which tells what action to perform. \n"; echo " You are not limited to only one condition or action dialplan_detail_tag for a given extension.\n"; echo "

"; echo "
\n"; $sql = ""; $sql .= " select * from v_dialplan_details "; $sql .= " where domain_uuid = '$domain_uuid' "; $sql .= " and dialplan_uuid = '$dialplan_uuid' "; $sql .= " and dialplan_detail_tag = 'condition' "; $sql .= " order by dialplan_detail_order asc"; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $result_count = count($result); unset ($prep_statement, $sql); $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; if ($result_count > 0) { foreach($result as $row) { echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; if ($c==0) { $c=1; } else { $c=0; } } //end foreach unset($sql, $result, $row_count); } //end if results //v_dialplan_details dialplan_detail_tag: action $sql = ""; $sql .= " select * from v_dialplan_details "; $sql .= " where domain_uuid = '$domain_uuid' "; $sql .= " and dialplan_uuid = '$dialplan_uuid' "; $sql .= " and dialplan_detail_tag = 'action' "; $sql .= " order by dialplan_detail_order asc"; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $result_count = count($result); unset ($prep_statement, $sql); if ($result_count > 0) { foreach($result as $row) { echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; if ($c==0) { $c=1; } else { $c=0; } } //end foreach unset($sql, $result, $row_count); } //end if results //v_dialplan_details dialplan_detail_tag: anti-action $sql = ""; $sql .= " select * from v_dialplan_details "; $sql .= " where domain_uuid = '$domain_uuid' "; $sql .= " and dialplan_uuid = '$dialplan_uuid' "; $sql .= " and dialplan_detail_tag = 'anti-action' "; $sql .= " order by dialplan_detail_order asc"; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $result_count = count($result); unset ($prep_statement, $sql); if ($result_count == 0) { //no results } else { //received results foreach($result as $row) { echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; if ($c==0) { $c=1; } else { $c=0; } } //end foreach unset($sql, $result, $row_count); } //end if results echo "\n"; echo "\n"; echo "\n"; echo "
TagTypeDataOrder\n"; if (permission_exists('fifo_add')) { echo " $v_link_label_add\n"; } echo "
  ".$row[dialplan_detail_tag]."  ".$row[dialplan_detail_type]."  ".$row[dialplan_detail_data]."  ".$row[dialplan_detail_order]."\n"; if (permission_exists('fifo_edit')) { echo " $v_link_label_edit\n"; } if (permission_exists('fifo_delete')) { echo " $v_link_label_delete\n"; } echo "
  ".$row[dialplan_detail_tag]."  ".$row[dialplan_detail_type]."  ".$row[dialplan_detail_data]."  ".$row[dialplan_detail_order]."\n"; if (permission_exists('fifo_edit')) { echo " $v_link_label_edit\n"; } if (permission_exists('fifo_delete')) { echo " $v_link_label_delete\n"; } echo "
  ".$row[dialplan_detail_tag]."  ".$row[dialplan_detail_type]."  ".$row[dialplan_detail_data]."  ".$row[dialplan_detail_order]."\n"; if (permission_exists('fifo_edit')) { echo " $v_link_label_edit\n"; } if (permission_exists('fifo_delete')) { echo " $v_link_label_delete\n"; } echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
 $paging_controls\n"; if (permission_exists('fifo_add')) { echo " $v_link_label_add\n"; } echo "
\n"; echo "
"; echo "
"; echo "

"; echo "

"; echo "
"; echo "
"; echo "

"; } //end if update //show the footer require_once "includes/footer.php"; ?>