Make sure * is escaped for call flows in the dialplan. Also make sure the dialplan destination number is updated for changes to the extension number and for the feature code.

This commit is contained in:
Mark Crane 2012-09-20 08:58:04 +00:00
parent d875cb085d
commit 54e2f194de
1 changed files with 123 additions and 128 deletions

View File

@ -195,147 +195,142 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
if ($action == "add" || $action == "update") { if ($action == "add" || $action == "update") {
//if the dialplan entry does not exist then add it //if the dialplan entry does not exist then add it
$sql = "select count(*) as num_rows from v_dialplans "; $sql = "delete from v_dialplans ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and dialplan_uuid = '".$dialplan_uuid."' "; $sql .= "and dialplan_uuid = '".$dialplan_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql)); $db->query(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($row['num_rows'] == 0) {
//create the dialplan entry for fax
$dialplan_name = $call_flow_name;
$dialplan_order ='333';
$dialplan_context = $call_flow_context;
$dialplan_enabled = 'true';
$dialplan_description = $call_flow_description;
$app_uuid = 'b1b70f85-6b42-429b-8c5a-60c8b02b7d14';
dialplan_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_name, $dialplan_order, $dialplan_context, $dialplan_enabled, $dialplan_description, $app_uuid);
//dialplan group 1 //add the dialplan entry
require_once "includes/classes/switch_dialplan.php"; $dialplan_name = $call_flow_name;
$dialplan_order ='333';
$dialplan_context = $call_flow_context;
$dialplan_enabled = 'true';
$dialplan_description = $call_flow_description;
$app_uuid = 'b1b70f85-6b42-429b-8c5a-60c8b02b7d14';
dialplan_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_name, $dialplan_order, $dialplan_context, $dialplan_enabled, $dialplan_description, $app_uuid);
//<condition destination_number="300" break="on-true"/> //dialplan group 1
$dialplan = new dialplan; require_once "includes/classes/switch_dialplan.php";
$dialplan->domain_uuid = $domain_uuid;
$dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_tag = 'condition'; //condition, action, antiaction
$dialplan->dialplan_detail_type = 'destination_number';
$dialplan->dialplan_detail_data = '^'.str_replace('*', '\*', $call_flow_feature_code).'$';
$dialplan->dialplan_detail_break = 'on-true';
//$dialplan->dialplan_detail_inline = '';
$dialplan->dialplan_detail_group = '1';
$dialplan->dialplan_detail_order = '000';
$dialplan->dialplan_detail_add();
unset($dialplan);
//<action application="set" data="call_flow_uuid="/> //<condition destination_number="300" break="on-true"/>
$dialplan = new dialplan; $dialplan = new dialplan;
$dialplan->domain_uuid = $domain_uuid; $dialplan->domain_uuid = $domain_uuid;
$dialplan->dialplan_uuid = $dialplan_uuid; $dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction $dialplan->dialplan_detail_tag = 'condition'; //condition, action, antiaction
$dialplan->dialplan_detail_type = 'set'; $dialplan->dialplan_detail_type = 'destination_number';
$dialplan->dialplan_detail_data = 'call_flow_uuid='.$call_flow_uuid; $dialplan->dialplan_detail_data = '^'.str_replace('*', '\*', $call_flow_feature_code).'$';
//$dialplan->dialplan_detail_break = ''; $dialplan->dialplan_detail_break = 'on-true';
//$dialplan->dialplan_detail_inline = ''; //$dialplan->dialplan_detail_inline = '';
$dialplan->dialplan_detail_group = '1'; $dialplan->dialplan_detail_group = '1';
$dialplan->dialplan_detail_order = '010'; $dialplan->dialplan_detail_order = '000';
$dialplan->dialplan_detail_add(); $dialplan->dialplan_detail_add();
unset($dialplan); unset($dialplan);
//<action application="set" data="feature_code=true"/> //<action application="set" data="call_flow_uuid="/>
$dialplan = new dialplan; $dialplan = new dialplan;
$dialplan->domain_uuid = $domain_uuid; $dialplan->domain_uuid = $domain_uuid;
$dialplan->dialplan_uuid = $dialplan_uuid; $dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction $dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction
$dialplan->dialplan_detail_type = 'set'; $dialplan->dialplan_detail_type = 'set';
$dialplan->dialplan_detail_data = 'feature_code=true'; $dialplan->dialplan_detail_data = 'call_flow_uuid='.$call_flow_uuid;
//$dialplan->dialplan_detail_break = ''; //$dialplan->dialplan_detail_break = '';
//$dialplan->dialplan_detail_inline = ''; //$dialplan->dialplan_detail_inline = '';
$dialplan->dialplan_detail_group = '1'; $dialplan->dialplan_detail_group = '1';
$dialplan->dialplan_detail_order = '020'; $dialplan->dialplan_detail_order = '010';
$dialplan->dialplan_detail_add(); $dialplan->dialplan_detail_add();
unset($dialplan); unset($dialplan);
//<action application="lua" data="call_flow.lua"/> //<action application="set" data="feature_code=true"/>
$dialplan = new dialplan; $dialplan = new dialplan;
$dialplan->domain_uuid = $domain_uuid; $dialplan->domain_uuid = $domain_uuid;
$dialplan->dialplan_uuid = $dialplan_uuid; $dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction $dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction
$dialplan->dialplan_detail_type = 'lua'; $dialplan->dialplan_detail_type = 'set';
$dialplan->dialplan_detail_data = 'call_flow.lua'; $dialplan->dialplan_detail_data = 'feature_code=true';
//$dialplan->dialplan_detail_break = ''; //$dialplan->dialplan_detail_break = '';
//$dialplan->dialplan_detail_inline = ''; //$dialplan->dialplan_detail_inline = '';
$dialplan->dialplan_detail_group = '1'; $dialplan->dialplan_detail_group = '1';
$dialplan->dialplan_detail_order = '030'; $dialplan->dialplan_detail_order = '020';
$dialplan->dialplan_detail_add(); $dialplan->dialplan_detail_add();
unset($dialplan); unset($dialplan);
//dialplan group 2 //<action application="lua" data="call_flow.lua"/>
//<condition destination_number="301"/> $dialplan = new dialplan;
$dialplan = new dialplan; $dialplan->domain_uuid = $domain_uuid;
$dialplan->domain_uuid = $domain_uuid; $dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_uuid = $dialplan_uuid; $dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction
$dialplan->dialplan_detail_tag = 'condition'; //condition, action, antiaction $dialplan->dialplan_detail_type = 'lua';
$dialplan->dialplan_detail_type = 'destination_number'; $dialplan->dialplan_detail_data = 'call_flow.lua';
$dialplan->dialplan_detail_data = '^'.$call_flow_extension.'$'; //$dialplan->dialplan_detail_break = '';
//$dialplan->dialplan_detail_break = ''; //$dialplan->dialplan_detail_inline = '';
//$dialplan->dialplan_detail_inline = ''; $dialplan->dialplan_detail_group = '1';
$dialplan->dialplan_detail_group = '2'; $dialplan->dialplan_detail_order = '030';
$dialplan->dialplan_detail_order = '000'; $dialplan->dialplan_detail_add();
$dialplan->dialplan_detail_add(); unset($dialplan);
unset($dialplan);
//<action application="set" data="call_flow_uuid="/> //dialplan group 2
$dialplan = new dialplan; //<condition destination_number="301"/>
$dialplan->domain_uuid = $domain_uuid; $dialplan = new dialplan;
$dialplan->dialplan_uuid = $dialplan_uuid; $dialplan->domain_uuid = $domain_uuid;
$dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction $dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_type = 'set'; $dialplan->dialplan_detail_tag = 'condition'; //condition, action, antiaction
$dialplan->dialplan_detail_data = 'call_flow_uuid='.$call_flow_uuid; $dialplan->dialplan_detail_type = 'destination_number';
//$dialplan->dialplan_detail_break = ''; $dialplan->dialplan_detail_data = '^'.str_replace('*', '\*', $call_flow_extension).'$';
//$dialplan->dialplan_detail_inline = ''; //$dialplan->dialplan_detail_break = '';
$dialplan->dialplan_detail_group = '2'; //$dialplan->dialplan_detail_inline = '';
$dialplan->dialplan_detail_order = '010'; $dialplan->dialplan_detail_group = '2';
$dialplan->dialplan_detail_add(); $dialplan->dialplan_detail_order = '000';
unset($dialplan); $dialplan->dialplan_detail_add();
unset($dialplan);
//<action application="set" data="ringback=${us-ring}"/> //<action application="set" data="call_flow_uuid="/>
//$dialplan = new dialplan; $dialplan = new dialplan;
//$dialplan->domain_uuid = $domain_uuid; $dialplan->domain_uuid = $domain_uuid;
//$dialplan->dialplan_uuid = $dialplan_uuid; $dialplan->dialplan_uuid = $dialplan_uuid;
//$dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction $dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction
//$dialplan->dialplan_detail_type = 'set'; $dialplan->dialplan_detail_type = 'set';
//$dialplan->dialplan_detail_data = 'ringback=${us-ring}'; $dialplan->dialplan_detail_data = 'call_flow_uuid='.$call_flow_uuid;
//$dialplan->dialplan_detail_break = ''; //$dialplan->dialplan_detail_break = '';
//$dialplan->dialplan_detail_inline = ''; //$dialplan->dialplan_detail_inline = '';
//$dialplan->dialplan_detail_group = '2'; $dialplan->dialplan_detail_group = '2';
//$dialplan->dialplan_detail_order = '020'; $dialplan->dialplan_detail_order = '010';
//$dialplan->dialplan_detail_add(); $dialplan->dialplan_detail_add();
//unset($dialplan); unset($dialplan);
//<action application="lua" data="call_flow.lua"/> //<action application="set" data="ringback=${us-ring}"/>
$dialplan = new dialplan; //$dialplan = new dialplan;
$dialplan->domain_uuid = $domain_uuid; //$dialplan->domain_uuid = $domain_uuid;
$dialplan->dialplan_uuid = $dialplan_uuid; //$dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction //$dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction
$dialplan->dialplan_detail_type = 'lua'; //$dialplan->dialplan_detail_type = 'set';
//$dialplan->dialplan_detail_data = $call_flow_extension . ' LUA call_flow.lua'; //$dialplan->dialplan_detail_data = 'ringback=${us-ring}';
$dialplan->dialplan_detail_data = 'call_flow.lua'; //$dialplan->dialplan_detail_break = '';
//$dialplan->dialplan_detail_break = ''; //$dialplan->dialplan_detail_inline = '';
//$dialplan->dialplan_detail_inline = ''; //$dialplan->dialplan_detail_group = '2';
$dialplan->dialplan_detail_group = '2'; //$dialplan->dialplan_detail_order = '020';
$dialplan->dialplan_detail_order = '030'; //$dialplan->dialplan_detail_add();
$dialplan->dialplan_detail_add(); //unset($dialplan);
unset($dialplan);
//save the xml //<action application="lua" data="call_flow.lua"/>
save_dialplan_xml(); $dialplan = new dialplan;
$dialplan->domain_uuid = $domain_uuid;
$dialplan->dialplan_uuid = $dialplan_uuid;
$dialplan->dialplan_detail_tag = 'action'; //condition, action, antiaction
$dialplan->dialplan_detail_type = 'lua';
//$dialplan->dialplan_detail_data = $call_flow_extension . ' LUA call_flow.lua';
$dialplan->dialplan_detail_data = 'call_flow.lua';
//$dialplan->dialplan_detail_break = '';
//$dialplan->dialplan_detail_inline = '';
$dialplan->dialplan_detail_group = '2';
$dialplan->dialplan_detail_order = '030';
$dialplan->dialplan_detail_add();
unset($dialplan);
//apply settings reminder //save the xml
$_SESSION["reload_xml"] = true; save_dialplan_xml();
}
} //apply settings reminder
$_SESSION["reload_xml"] = true;
//redirect the browser //redirect the browser
require_once "includes/header.php"; require_once "includes/header.php";