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"; if (permission_exists('dialplan_add')) { //access granted } else { echo "access denied"; exit; } require_once "includes/header.php"; require_once "includes/paging.php"; $order_by = $_GET["order_by"]; $order = $_GET["order"]; //POST to PHP variables if (count($_POST)>0) { $dialplan_name = check_str($_POST["dialplan_name"]); $dialplan_order = check_str($_POST["dialplan_order"]); $condition_field_1 = check_str($_POST["condition_field_1"]); $condition_expression_1 = check_str($_POST["condition_expression_1"]); $condition_field_2 = check_str($_POST["condition_field_2"]); $condition_expression_2 = check_str($_POST["condition_expression_2"]); $action_1 = check_str($_POST["action_1"]); //$action_1 = "transfer:1001 XML default"; $action_1_array = explode(":", $action_1); $action_application_1 = array_shift($action_1_array); $action_data_1 = join(':', $action_1_array); $action_2 = check_str($_POST["action_2"]); //$action_2 = "transfer:1001 XML default"; $action_2_array = explode(":", $action_2); $action_application_2 = array_shift($action_2_array); $action_data_2 = join(':', $action_2_array); //$action_application_1 = check_str($_POST["action_application_1"]); //$action_data_1 = check_str($_POST["action_data_1"]); //$action_application_2 = check_str($_POST["action_application_2"]); //$action_data_2 = check_str($_POST["action_data_2"]); $dialplan_enabled = check_str($_POST["dialplan_enabled"]); $dialplan_description = check_str($_POST["dialplan_description"]); if (strlen($dialplan_enabled) == 0) { $dialplan_enabled = "true"; } //set default to enabled } if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { //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($condition_field_1) == 0) { $msg .= "Please provide: Condition Field
\n"; } if (strlen($condition_expression_1) == 0) { $msg .= "Please provide: Condition Expression
\n"; } if (strlen($action_application_1) == 0) { $msg .= "Please provide: Action Application
\n"; } //if (strlen($dialplan_enabled) == 0) { $msg .= "Please provide: Enabled True or False
\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; } //remove the invalid characters from the extension name $dialplan_name = str_replace(" ", "_", $dialplan_name); $dialplan_name = str_replace("/", "", $dialplan_name); //start the atomic transaction $db->exec("BEGIN;"); //returns affected rows //add the main dialplan include entry $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 .= "'742714e5-8cdf-32fd-462c-cbe7e3d655db', "; $sql .= "'$dialplan_name', "; $sql .= "'$dialplan_order', "; $sql .= "'false', "; $sql .= "'".$_SESSION['context']."', "; $sql .= "'$dialplan_enabled', "; $sql .= "'$dialplan_description' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //add condition 1 $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_type, "; $sql .= "dialplan_detail_data, "; $sql .= "dialplan_detail_order "; $sql .= ") "; $sql .= "values "; $sql .= "("; $sql .= "'$domain_uuid', "; $sql .= "'$dialplan_uuid', "; $sql .= "'$dialplan_detail_uuid', "; $sql .= "'condition', "; $sql .= "'$condition_field_1', "; $sql .= "'$condition_expression_1', "; $sql .= "'1' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //add condition 2 if (strlen($condition_field_2) > 0) { $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_type, "; $sql .= "dialplan_detail_data, "; $sql .= "dialplan_detail_order "; $sql .= ") "; $sql .= "values "; $sql .= "("; $sql .= "'$domain_uuid', "; $sql .= "'$dialplan_uuid', "; $sql .= "'$dialplan_detail_uuid', "; $sql .= "'condition', "; $sql .= "'$condition_field_2', "; $sql .= "'$condition_expression_2', "; $sql .= "'2' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); } //add action 1 $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_type, "; $sql .= "dialplan_detail_data, "; $sql .= "dialplan_detail_order "; $sql .= ") "; $sql .= "values "; $sql .= "("; $sql .= "'$domain_uuid', "; $sql .= "'$dialplan_uuid', "; $sql .= "'$dialplan_detail_uuid', "; $sql .= "'action', "; $sql .= "'$action_application_1', "; $sql .= "'$action_data_1', "; $sql .= "'3' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //add action 2 if (strlen($action_application_2) > 0) { $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_type, "; $sql .= "dialplan_detail_data, "; $sql .= "dialplan_detail_order "; $sql .= ") "; $sql .= "values "; $sql .= "("; $sql .= "'$domain_uuid', "; $sql .= "'$dialplan_uuid', "; $sql .= "'$dialplan_detail_uuid', "; $sql .= "'action', "; $sql .= "'$action_application_2', "; $sql .= "'$action_data_2', "; $sql .= "'4' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); } //commit the atomic transaction $count = $db->exec("COMMIT;"); //returns affected rows //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; } //end if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) ?> "; 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 "
\n"; echo "
"; echo "
\n"; echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
Dialplan\n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo " \n"; echo " The dialplan is used to setup call destinations based on conditions and context.\n"; echo " You can use the dialplan to send calls to gateways, auto attendants, external numbers,\n"; echo " to scripts, or any destination.\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 " Name:\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 this is false. default: false\n"; //echo "
\n"; echo " Condition 1:\n"; echo "\n"; ?> \n"; echo "
Field:\n"; echo " \n"; echo " \n"; echo "
\n"; echo "
  Expression:\n"; echo " \n"; echo "
\n"; echo "
\n"; echo "
\n"; echo " Condition 2:\n"; echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo " Field:\n"; echo " \n"; ?> \n"; echo " \n"; if (strlen($condition_field_2) > 0) { 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 "   Expression:\n"; echo " \n"; echo " \n"; echo "
\n"; echo "
\n"; echo "
\n"; echo " Action 1:\n"; echo "\n"; //switch_select_destination(select_type, select_label, select_name, select_value, select_style, action); switch_select_destination("dialplan", "", "action_1", $action_1, "width: 60%;", ""); /* echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
Application: \n"; echo "
\n"; echo "
\n"; echo "   Data: \n"; echo " \n"; echo " \n"; echo "
\n"; echo "
\n"; */ echo "
\n"; echo " Action 2:\n"; echo "\n"; //switch_select_destination(select_type, select_label, select_name, select_value, select_style, action); switch_select_destination("dialplan", "", "action_2", $action_2, "width: 60%;", ""); /* echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
Application: \n"; echo "
\n"; echo "
\n"; echo "   Data: \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 " 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"; echo "
\n"; if ($action == "update") { echo " \n"; } echo " \n"; echo "
"; echo ""; echo ""; echo "\n"; echo ""; echo ""; echo ""; echo "

"; require_once "includes/footer.php"; ?>