Update ivr_menu.php

Update the ivr_menu class to use the orm class this simplifies and reduces the size of the code.
This commit is contained in:
FusionPBX
2016-07-14 01:13:02 -06:00
committed by GitHub
parent 34ae1fbe64
commit 752a55d9b7

View File

@@ -158,203 +158,49 @@ include "root.php";
return $database->find();
}
public function add() {
//create the database object
$database = new database;
if ($this->db) {
$database->db = $this->db;
public function save($array) {
//action add or update
if (strlen($this->ivr_menu_uuid) == 0) {
$action = "add";
}
//add the ivr menu
if (strlen($this->ivr_menu_extension) > 0) {
//set the ivr menu uuid
if (strlen($this->ivr_menu_uuid) == 0) {
$this->ivr_menu_uuid = uuid();
}
//ensure the dialplan_uuid has a uuid
if (strlen($this->dialplan_uuid) == 0) {
$this->dialplan_uuid = uuid();
}
//add the ivr menu
$database->table = "v_ivr_menus";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['ivr_menu_extension'] = $this->ivr_menu_extension;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['ivr_menu_uuid'] = $this->ivr_menu_uuid;
$database->fields['ivr_menu_name'] = $this->ivr_menu_name;
$database->fields['ivr_menu_greet_long'] = $this->ivr_menu_greet_long;
$database->fields['ivr_menu_greet_short'] = $this->ivr_menu_greet_short;
$database->fields['ivr_menu_invalid_sound'] = $this->ivr_menu_invalid_sound;
$database->fields['ivr_menu_exit_sound'] = $this->ivr_menu_exit_sound;
$database->fields['ivr_menu_confirm_macro'] = $this->ivr_menu_confirm_macro;
$database->fields['ivr_menu_confirm_key'] = $this->ivr_menu_confirm_key;
$database->fields['ivr_menu_tts_engine'] = $this->ivr_menu_tts_engine;
$database->fields['ivr_menu_tts_voice'] = $this->ivr_menu_tts_voice;
$database->fields['ivr_menu_confirm_attempts'] = $this->ivr_menu_confirm_attempts;
$database->fields['ivr_menu_timeout'] = $this->ivr_menu_timeout;
$database->fields['ivr_menu_exit_app'] = $this->ivr_menu_exit_app;
$database->fields['ivr_menu_exit_data'] = $this->ivr_menu_exit_data;
$database->fields['ivr_menu_inter_digit_timeout'] = $this->ivr_menu_inter_digit_timeout;
$database->fields['ivr_menu_max_failures'] = $this->ivr_menu_max_failures;
$database->fields['ivr_menu_max_timeouts'] = $this->ivr_menu_max_timeouts;
$database->fields['ivr_menu_max_timeouts'] = $this->ivr_menu_max_timeouts;
$database->fields['ivr_menu_digit_len'] = $this->ivr_menu_digit_len;
$database->fields['ivr_menu_digit_len'] = $this->ivr_menu_digit_len;
$database->fields['ivr_menu_direct_dial'] = $this->ivr_menu_direct_dial;
$database->fields['ivr_menu_ringback'] = $this->ivr_menu_ringback;
$database->fields['ivr_menu_cid_prefix'] = $this->ivr_menu_cid_prefix;
$database->fields['ivr_menu_enabled'] = $this->ivr_menu_enabled;
$database->fields['ivr_menu_description'] = $this->ivr_menu_description;
$database->add();
}
//add the ivr menu option
if (strlen($this->ivr_menu_option_action) > 0) {
$database = new database;
$database->table = "v_ivr_menu_options";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['ivr_menu_uuid'] = $this->ivr_menu_uuid;
$database->fields['ivr_menu_option_uuid'] = $this->ivr_menu_option_uuid;
$database->fields['ivr_menu_option_digits'] = $this->ivr_menu_option_digits;
$database->fields['ivr_menu_option_action'] = $this->ivr_menu_option_action;
$database->fields['ivr_menu_option_param'] = $this->ivr_menu_option_param;
$database->fields['ivr_menu_option_order'] = $this->ivr_menu_option_order;
$database->fields['ivr_menu_option_description'] = $this->ivr_menu_option_description;
$database->add();
else {
$action = "update";
}
//update the dialplan
$this->dialplan();
}
$this->dialplan($array);
$array['dialplan_uuid'] = $this->dialplan_uuid;
public function update() {
//save the ivr_menus
$orm = new orm;
$orm->name('ivr_menus');
if (strlen($this->ivr_menu_uuid) > 0) {
$orm->uuid($this->ivr_menu_uuid);
}
$orm->save($array);
//create the database object
$database = new database;
if ($this->db) {
$database->db = $this->db;
//set the add message
if ($action == "add" && permission_exists('ivr_menu_add')) {
$_SESSION['message'] = $text['message-add'];
}
//get the dialplan uuid
$database->table = "v_ivr_menus";
$database->where[0]['name'] = 'domain_uuid';
$database->where[0]['value'] = $this->domain_uuid;
$database->where[0]['operator'] = '=';
$database->where[1]['name'] = 'ivr_menu_uuid';
$database->where[1]['value'] = $this->ivr_menu_uuid;
$database->where[1]['operator'] = '=';
$result = $database->find();
foreach($result as $row) {
$this->dialplan_uuid = $row['dialplan_uuid'];
//set the update message
if ($action == "update" && permission_exists('ivr_menu_edit')) {
$_SESSION['message'] = $text['message-update'];
}
//if the extension number is empty and the dialplan exists then delete the dialplan
if (strlen($this->ivr_menu_extension) == 0) {
if (strlen($this->dialplan_uuid) > 0) {
//delete dialplan entry
$database = new database;
$database->table = "v_dialplan_details";
$database->where[0]['name'] = 'domain_uuid';
$database->where[0]['value'] = $this->domain_uuid;
$database->where[0]['operator'] = '=';
$database->where[1]['name'] = 'dialplan_uuid';
$database->where[1]['value'] = $this->dialplan_uuid;
$database->where[1]['operator'] = '=';
$database->delete();
//delete the child dialplan information
$database = new database;
$database->table = "v_dialplans";
$database->where[0]['name'] = 'domain_uuid';
$database->where[0]['value'] = $this->domain_uuid;
$database->where[0]['operator'] = '=';
$database->where[1]['name'] = 'dialplan_uuid';
$database->where[1]['value'] = $this->dialplan_uuid;
$database->where[1]['operator'] = '=';
$database->delete();
//update the table to remove the dialplan_uuid
$this->dialplan_uuid = '';
}
}
//update the ivr menu
if (strlen($this->ivr_menu_extension) > 0) {
if (strlen($this->dialplan_uuid) == 0) {
$this->dialplan_uuid = uuid();
}
$database = new database;
$database->table = "v_ivr_menus";
$database->fields['ivr_menu_uuid'] = $this->ivr_menu_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['ivr_menu_name'] = $this->ivr_menu_name;
$database->fields['ivr_menu_extension'] = $this->ivr_menu_extension;
$database->fields['ivr_menu_greet_long'] = $this->ivr_menu_greet_long;
$database->fields['ivr_menu_greet_short'] = $this->ivr_menu_greet_short;
$database->fields['ivr_menu_invalid_sound'] = $this->ivr_menu_invalid_sound;
$database->fields['ivr_menu_exit_sound'] = $this->ivr_menu_exit_sound;
$database->fields['ivr_menu_confirm_macro'] = $this->ivr_menu_confirm_macro;
$database->fields['ivr_menu_confirm_key'] = $this->ivr_menu_confirm_key;
$database->fields['ivr_menu_tts_engine'] = $this->ivr_menu_tts_engine;
$database->fields['ivr_menu_tts_voice'] = $this->ivr_menu_tts_voice;
$database->fields['ivr_menu_confirm_attempts'] = $this->ivr_menu_confirm_attempts;
$database->fields['ivr_menu_timeout'] = $this->ivr_menu_timeout;
$database->fields['ivr_menu_exit_app'] = $this->ivr_menu_exit_app;
$database->fields['ivr_menu_exit_data'] = $this->ivr_menu_exit_data;
$database->fields['ivr_menu_inter_digit_timeout'] = $this->ivr_menu_inter_digit_timeout;
$database->fields['ivr_menu_max_failures'] = $this->ivr_menu_max_failures;
$database->fields['ivr_menu_max_timeouts'] = $this->ivr_menu_max_timeouts;
$database->fields['ivr_menu_max_timeouts'] = $this->ivr_menu_max_timeouts;
$database->fields['ivr_menu_digit_len'] = $this->ivr_menu_digit_len;
$database->fields['ivr_menu_digit_len'] = $this->ivr_menu_digit_len;
$database->fields['ivr_menu_direct_dial'] = $this->ivr_menu_direct_dial;
$database->fields['ivr_menu_ringback'] = $this->ivr_menu_ringback;
$database->fields['ivr_menu_cid_prefix'] = $this->ivr_menu_cid_prefix;
$database->fields['ivr_menu_enabled'] = $this->ivr_menu_enabled;
$database->fields['ivr_menu_description'] = $this->ivr_menu_description;
$database->where[0]['name'] = 'domain_uuid';
$database->where[0]['value'] = $this->domain_uuid;
$database->where[0]['operator'] = '=';
$database->where[1]['name'] = 'ivr_menu_uuid';
$database->where[1]['value'] = $this->ivr_menu_uuid;
$database->where[1]['operator'] = '=';
$database->update();
}
//update the ivr menu option
if (strlen($this->ivr_menu_option_action) > 0) {
$database = new database;
$database->table = "v_ivr_menu_options";
$database->fields['ivr_menu_option_digits'] = $this->ivr_menu_option_digits;
$database->fields['ivr_menu_option_action'] = $this->ivr_menu_option_action;
$database->fields['ivr_menu_option_param'] = $this->ivr_menu_option_param;
$database->fields['ivr_menu_option_order'] = $this->ivr_menu_option_order;
$database->fields['ivr_menu_option_description'] = $this->ivr_menu_option_description;
$database->where[0]['name'] = 'domain_uuid';
$database->where[0]['value'] = $this->domain_uuid;
$database->where[0]['operator'] = '=';
$database->where[1]['name'] = 'ivr_menu_uuid';
$database->where[1]['value'] = $this->ivr_menu_uuid;
$database->where[1]['operator'] = '=';
$database->where[2]['name'] = 'ivr_menu_option_uuid';
$database->where[2]['value'] = $this->ivr_menu_option_uuid;
$database->where[2]['operator'] = '=';
$database->update();
}
//update the dialplan
$this->dialplan();
//return the result
return $orm->message;
}
function delete() {
//create the database object
$database = new database;
if ($this->db) {
$database->db = $this->db;
}
//start the transaction
//$count = $database->db->exec("BEGIN;");
@@ -437,183 +283,190 @@ include "root.php";
}
}
public function dialplan() {
//create the database object
public function dialplan($field) {
//set global variables
global $db;
//action add or update
if (strlen($field['dialplan_uuid']) == 0) {
$field['dialplan_uuid'] = uuid();
$action = "add";
}
else {
$action = "update";
}
//delete child data
if ($action == "update") {
$sql = "delete from v_dialplan_details ";
$sql .= "where dialplan_uuid = '".$field["dialplan_uuid"]."'; ";
$db->query($sql);
unset($sql);
}
//get dialplan details from the database
if ($action == "update") {
$sql = "select * from v_dialplan_details ";
$sql .= "where dialplan_uuid = '".$field["dialplan_uuid"]."' ";
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$dialplan_details = $prep_statement->fetchAll(PDO::FETCH_NAMED);
}
unset($sql, $prep_statement, $row);
}
//get the array from the database
/*
$database = new database;
if ($this->db) {
$database->db = $this->db;
}
if ($this->db) { $database->db = $this->db; }
$database->table = "v_ivr_menu_details";
$database->where[0]['name'] = 'ivr_menu_uuid';
$database->where[0]['value'] = $field["ivr_menu_uuid"];
$database->where[0]['operator'] = '=';
$ivr_menu_details = $database->find();
*/
//check to see if the dialplan entry exists
$dialplan = new dialplan;
$dialplan->domain_uuid = $_SESSION["domain_uuid"];
$dialplan->dialplan_uuid = $this->dialplan_uuid;
$dialplan_exists = $dialplan->dialplan_exists();
//add the details array
$x=0;
$details[$x]['dialplan_detail_tag'] = 'condition'; //condition, action, antiaction
$details[$x]['dialplan_detail_type'] = 'destination_number';
$details[$x]['dialplan_detail_data'] = '^'.$field['ivr_menu_extension'].'$';
$details[$x]['dialplan_detail_order'] = '005';
//if the dialplan entry does not exist then add it
if (!$dialplan_exists) {
$database = new database;
$database->table = "v_dialplans";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_name'] = $this->ivr_menu_name;
$database->fields['dialplan_order'] = '333';
$database->fields['dialplan_context'] = $_SESSION['context'];
$database->fields['dialplan_enabled'] = $this->ivr_menu_enabled;
$database->fields['dialplan_description'] = $this->ivr_menu_description;
$database->fields['app_uuid'] = $this->app_uuid;
$database->add();
}
$x++;
$details[$x]['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$details[$x]['dialplan_detail_type'] = 'answer';
$details[$x]['dialplan_detail_data'] = '';
$details[$x]['dialplan_detail_order'] = '010';
//if the dialplan entry exists then update it
if ($dialplan_exists && strlen($this->ivr_menu_extension) > 0) {
//update the dialplan
$database = new database;
$database->table = "v_dialplans";
$database->fields['dialplan_name'] = $this->ivr_menu_name;
$database->fields['dialplan_order'] = '333';
$database->fields['dialplan_context'] = $_SESSION['context'];
$database->fields['dialplan_enabled'] = $this->ivr_menu_enabled;
$database->fields['dialplan_description'] = $this->ivr_menu_description;
$database->fields['app_uuid'] = $this->app_uuid;
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->where[0]['name'] = 'domain_uuid';
$database->where[0]['value'] = $this->domain_uuid;
$database->where[0]['operator'] = '=';
$database->where[1]['name'] = 'dialplan_uuid';
$database->where[1]['value'] = $this->dialplan_uuid;
$database->where[1]['operator'] = '=';
$database->update();
$x++;
$details[$x]['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$details[$x]['dialplan_detail_type'] = 'sleep';
$details[$x]['dialplan_detail_data'] = '1000';
$details[$x]['dialplan_detail_order'] = '015';
//delete the old dialplan details to prepare for new details
$database = new database;
$database->table = "v_dialplan_details";
$database->where[0]['name'] = 'domain_uuid';
$database->where[0]['value'] = $this->domain_uuid;
$database->where[0]['operator'] = '=';
$database->where[1]['name'] = 'dialplan_uuid';
$database->where[1]['value'] = $this->dialplan_uuid;
$database->where[1]['operator'] = '=';
$database->delete();
}
$x++;
$details[$x]['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$details[$x]['dialplan_detail_type'] = 'set';
$details[$x]['dialplan_detail_data'] = 'hangup_after_bridge=true';
$details[$x]['dialplan_detail_order'] = '020';
//add the dialplan details
$detail_data = '^'.$this->ivr_menu_extension.'$';
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'condition'; //condition, action, antiaction
$database->fields['dialplan_detail_type'] = 'destination_number';
$database->fields['dialplan_detail_data'] = $detail_data;
$database->fields['dialplan_detail_order'] = '005';
$database->add();
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$database->fields['dialplan_detail_type'] = 'answer';
$database->fields['dialplan_detail_data'] = '';
$database->fields['dialplan_detail_order'] = '010';
$database->add();
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$database->fields['dialplan_detail_type'] = 'sleep';
$database->fields['dialplan_detail_data'] = '1000';
$database->fields['dialplan_detail_order'] = '015';
$database->add();
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$database->fields['dialplan_detail_type'] = 'set';
$database->fields['dialplan_detail_data'] = 'hangup_after_bridge=true';
$database->fields['dialplan_detail_order'] = '020';
$database->add();
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$database->fields['dialplan_detail_type'] = 'set';
if ($this->ivr_menu_ringback == "music" || $this->ivr_menu_ringback == "") {
$database->fields['dialplan_detail_data'] = 'ringback=${hold_music}';
$x++;
$details[$x]['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$details[$x]['dialplan_detail_type'] = 'set';
if ($field['ivr_menu_ringback'] == "music" || $field['ivr_menu_ringback'] == "") {
$details[$x]['dialplan_detail_data'] = 'ringback=${hold_music}';
}
else {
$database->fields['dialplan_detail_data'] = 'ringback='.$this->ivr_menu_ringback;
$details[$x]['dialplan_detail_data'] = 'ringback='.$field['ivr_menu_ringback'];
}
$database->fields['dialplan_detail_order'] = '025';
$database->add();
$details[$x]['dialplan_detail_order'] = '025';
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$database->fields['dialplan_detail_type'] = 'set';
if ($this->ivr_menu_ringback == "music" || $this->ivr_menu_ringback == "") {
$database->fields['dialplan_detail_data'] = 'transfer_ringback=${hold_music}';
$x++;
$details[$x]['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$details[$x]['dialplan_detail_type'] = 'set';
if ($field['ivr_menu_ringback'] == "music" || $field['ivr_menu_ringback'] == "") {
$details[$x]['dialplan_detail_data'] = 'transfer_ringback=${hold_music}';
}
else {
$database->fields['dialplan_detail_data'] = 'transfer_ringback='.$this->ivr_menu_ringback;
$details[$x]['dialplan_detail_data'] = 'transfer_ringback='.$field['ivr_menu_ringback'];
}
$database->fields['dialplan_detail_order'] = '030';
$database->add();
$details[$x]['dialplan_detail_order'] = '030';
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$database->fields['dialplan_detail_type'] = 'set';
$database->fields['dialplan_detail_data'] = 'ivr_menu_uuid='.$this->ivr_menu_uuid;
$database->fields['dialplan_detail_order'] = '035';
$database->add();
$x++;
$details[$x]['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$details[$x]['dialplan_detail_type'] = 'set';
$details[$x]['dialplan_detail_data'] = 'ivr_menu_uuid='.$this->ivr_menu_uuid;
$details[$x]['dialplan_detail_order'] = '035';
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$x++;
$details[$x]['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
if ($_SESSION['ivr menu']['application']['text'] == "lua") {
$database->fields['dialplan_detail_type'] = 'lua';
$database->fields['dialplan_detail_data'] = 'ivr_menu.lua';
$details[$x]['dialplan_detail_type'] = 'lua';
$details[$x]['dialplan_detail_data'] = 'ivr_menu.lua';
}
else {
$database->fields['dialplan_detail_type'] = 'ivr';
$database->fields['dialplan_detail_data'] = $this->ivr_menu_uuid;
$details[$x]['dialplan_detail_type'] = 'ivr';
$details[$x]['dialplan_detail_data'] = $this->ivr_menu_uuid;
}
$database->fields['dialplan_detail_order'] = '040';
$database->add();
$details[$x]['dialplan_detail_order'] = '040';
if (strlen($this->ivr_menu_exit_app) > 0) {
$database->table = "v_dialplan_details";
$database->fields['domain_uuid'] = $this->domain_uuid;
$database->fields['dialplan_uuid'] = $this->dialplan_uuid;
$database->fields['dialplan_detail_uuid'] = uuid();
$database->fields['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$database->fields['dialplan_detail_type'] = $this->ivr_menu_exit_app;
$database->fields['dialplan_detail_data'] = $this->ivr_menu_exit_data;
$database->fields['dialplan_detail_order'] = '045';
$database->add();
if (strlen($field['ivr_menu_exit_app']) > 0) {
$x++;
$details[$x]['dialplan_detail_tag'] = 'action'; //condition, action, antiaction
$details[$x]['dialplan_detail_type'] = $field['ivr_menu_exit_app'];
$details[$x]['dialplan_detail_data'] = $field['ivr_menu_exit_data'];
$details[$x]['dialplan_detail_order'] = '045';
$x++;
}
//build the array
$array['domain_uuid'] = $field['domain_uuid'];
$array['dialplan_uuid'] = $field['dialplan_uuid'];
$array['dialplan_name'] = $field['ivr_menu_name'];
$array['dialplan_order'] = '333';
$array['dialplan_context'] = $_SESSION['context'];
$array['dialplan_enabled'] = $field['ivr_menu_enabled'];
$array['dialplan_description'] = $field['ivr_menu_description'];
$array['app_uuid'] = $this->app_uuid;
$x=0;
foreach ($details as $row) {
//find the matching uuid
/*
foreach ($dialplan_details as $database) {
if ($database['dialplan_detail_tag'] == $row['dialplan_detail_tag']
&& $database['dialplan_detail_type'] == $row['dialplan_detail_type']
&& $database['dialplan_detail_data'] == $row['dialplan_detail_data']) {
$array['dialplan_details'][$x]['dialplan_detail_uuid'] = $database['dialplan_detail_uuid'];
}
}
*/
//add to the array
$array['dialplan_details'][$x]['domain_uuid'] = $field['domain_uuid'];
$array['dialplan_details'][$x]['dialplan_uuid'] = $field['dialplan_uuid'];
$array['dialplan_details'][$x]['dialplan_detail_tag'] = $row['dialplan_detail_tag'];
$array['dialplan_details'][$x]['dialplan_detail_type'] = $row['dialplan_detail_type'];
$array['dialplan_details'][$x]['dialplan_detail_data'] = $row['dialplan_detail_data'];
$array['dialplan_details'][$x]['dialplan_detail_order'] = $row['dialplan_detail_order'];
//increment the row
$x++;
}
//debug
//echo "<pre>\n";
//print_r($dialplan_details);
//print_r($array);
//echo "</pre>\n";
//exit;
//save the dialplan
$orm = new orm;
$orm->name('dialplans');
$orm->save($array);
$response = $orm->message;
if (strlen($response['uuid']) > 0) {
$this->dialplan_uuid = $response['uuid'];
}
//debug
//echo "<pre>\n";
//print_r($response);
//echo "</pre>\n";
//exit;
//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:".$_SESSION["context"]."@".$_SESSION['domain_name'];
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
}
//$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
//if ($fp) {
// $switch_cmd .= "memcache delete dialplan:".$_SESSION["context"]."@".$_SESSION['domain_name'];
// $switch_result = event_socket_request($fp, 'api '.$switch_cmd);
//}
}
function get_xml(){
@@ -779,4 +632,4 @@ include "root.php";
}
?>
?>