Destinations - Import/Export: Include Conditions and Actions.

This commit is contained in:
fusionate 2023-07-31 23:27:45 +00:00
parent ac6d9e5c45
commit 2c298113f6
No known key found for this signature in database
2 changed files with 25 additions and 11 deletions

View File

@ -64,6 +64,8 @@
$available_columns[] = 'destination_type_voice'; $available_columns[] = 'destination_type_voice';
$available_columns[] = 'destination_type_fax'; $available_columns[] = 'destination_type_fax';
$available_columns[] = 'destination_type_text'; $available_columns[] = 'destination_type_text';
$available_columns[] = 'destination_conditions';
$available_columns[] = 'destination_actions';
$available_columns[] = 'destination_app'; $available_columns[] = 'destination_app';
$available_columns[] = 'destination_data'; $available_columns[] = 'destination_data';
$available_columns[] = 'destination_alternate_app'; $available_columns[] = 'destination_alternate_app';

View File

@ -217,9 +217,19 @@
foreach ($array['destinations'] as $row) { foreach ($array['destinations'] as $row) {
//build the array //build the array
$actions[0]['destination_app'] = $row['destination_app']; if (!empty($row['destination_actions']) && is_json($row['destination_actions'])) {
$actions[0]['destination_data'] = $row['destination_data']; $destination_actions = $row['destination_actions']; // use json actions
$destination_actions = json_encode($actions); $temp = json_decode($row['destination_actions'], true);
$row['destination_app'] = $temp[array_key_last($temp)]['destination_app'];
$row['destination_data'] = $temp[array_key_last($temp)]['destination_data'];
unset($temp);
}
else if (!empty($row['destination_app']) && !empty($row['destination_data'])) {
$actions[0]['destination_app'] = $row['destination_app'];
$actions[0]['destination_data'] = $row['destination_data'];
$destination_actions = json_encode($actions);
unset($actions);
}
//get the values //get the values
$destination_number = $row['destination_number']; $destination_number = $row['destination_number'];
@ -241,6 +251,8 @@
//add the additional fields //add the additional fields
$dialplan_uuid = uuid(); $dialplan_uuid = uuid();
$array["destinations"][$row_id]['destination_actions'] = $destination_actions; $array["destinations"][$row_id]['destination_actions'] = $destination_actions;
$array["destinations"][$row_id]['destination_app'] = $destination_app;
$array["destinations"][$row_id]['destination_data'] = $destination_data;
$array["destinations"][$row_id]['destination_type'] = $destination_type; $array["destinations"][$row_id]['destination_type'] = $destination_type;
$array["destinations"][$row_id]['destination_record'] = $destination_record; $array["destinations"][$row_id]['destination_record'] = $destination_record;
$array["destinations"][$row_id]['destination_context'] = $destination_context; $array["destinations"][$row_id]['destination_context'] = $destination_context;
@ -274,14 +286,14 @@
//authorized specific dialplan_detail_type that are safe, sanitize all other values //authorized specific dialplan_detail_type that are safe, sanitize all other values
switch ($dialplan_detail_type) { switch ($dialplan_detail_type) {
case 'destination_number': case 'destination_number':
break; break;
case '${sip_to_user}': case '${sip_to_user}':
break; break;
case '${sip_req_user}': case '${sip_req_user}':
break; break;
default: default:
$dialplan_detail_type = xml::sanitize($dialplan_detail_type); $dialplan_detail_type = xml::sanitize($dialplan_detail_type);
} }
//build the xml dialplan //build the xml dialplan