Add destination_numbers array and use a foreach.
This commit is contained in:
parent
f6f2f1c77f
commit
0445361ad1
|
|
@ -80,6 +80,7 @@
|
|||
|
||||
//get http post variables and set them to php variables
|
||||
if (count($_POST) > 0) {
|
||||
|
||||
//set the variables
|
||||
$dialplan_uuid = $_POST["dialplan_uuid"];
|
||||
$domain_uuid = $_POST["domain_uuid"];
|
||||
|
|
@ -114,14 +115,14 @@
|
|||
$destination_carrier = $_POST["destination_carrier"];
|
||||
|
||||
//get the destination app and data
|
||||
$destination_array = explode(":", $_POST["destination_action"], 2);
|
||||
$destination_app = $destination_array[0];
|
||||
$destination_data = $destination_array[1];
|
||||
$destination_action_array = explode(":", $_POST["destination_action"], 2);
|
||||
$destination_app = $destination_action_array[0];
|
||||
$destination_data = $destination_action_array[1];
|
||||
|
||||
//get the alternate destination app and data
|
||||
$destination_alternate_array = explode(":", $_POST["destination_alternate_action"], 2);
|
||||
$destination_alternate_app = $destination_alternate_array[0];
|
||||
$destination_alternate_data = $destination_alternate_array[1];
|
||||
$destination_alternate_action_array = explode(":", $_POST["destination_alternate_action"], 2);
|
||||
$destination_alternate_app = $destination_alternate_action_array[0];
|
||||
$destination_alternate_data = $destination_alternate_action_array[1];
|
||||
}
|
||||
|
||||
//process the http post
|
||||
|
|
@ -133,14 +134,6 @@
|
|||
$destination->domain_uuid = $domain_uuid;
|
||||
}
|
||||
|
||||
//get the uuid
|
||||
if ($action == "update" && is_uuid($_POST["destination_uuid"])) {
|
||||
$destination_uuid = $_POST["destination_uuid"];
|
||||
}
|
||||
else {
|
||||
$destination_uuid = uuid();
|
||||
}
|
||||
|
||||
//set the default context
|
||||
if ($destination_type =="inbound" && strlen($destination_context) == 0) {
|
||||
$destination_context = 'public';
|
||||
|
|
@ -194,6 +187,7 @@
|
|||
|
||||
//save the inbound destination and add the dialplan for the inbound route
|
||||
if ($destination_type == 'inbound' || $destination_type == 'local') {
|
||||
|
||||
//get the array
|
||||
$dialplan_details = $_POST["dialplan_details"];
|
||||
|
||||
|
|
@ -232,14 +226,27 @@
|
|||
unset($sql, $parameters, $row);
|
||||
}
|
||||
|
||||
//if the user doesn't have the correct permission then
|
||||
//override destination_number and destination_context values
|
||||
//get the uuid
|
||||
if ($action == "update" && is_uuid($_POST["destination_uuid"])) {
|
||||
$destination_uuid = $_POST["destination_uuid"];
|
||||
}
|
||||
|
||||
//get the destination row values
|
||||
if ($action == 'update' && is_uuid($destination_uuid)) {
|
||||
$sql = "select * from v_destinations ";
|
||||
$sql .= "where destination_uuid = :destination_uuid ";
|
||||
$parameters['destination_uuid'] = $destination_uuid;
|
||||
$database = new database;
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
}
|
||||
|
||||
//get the dialplan_uuid from the database
|
||||
if (is_array($row) && @sizeof($row) != 0) {
|
||||
$dialplan_uuid = $row["dialplan_uuid"];
|
||||
}
|
||||
|
||||
//if the user doesn't have the correct permission then
|
||||
//override destination_number and destination_context values
|
||||
if (is_array($row) && @sizeof($row) != 0) {
|
||||
if (!permission_exists('destination_trunk_prefix')) {
|
||||
$destination_trunk_prefix = $row["destination_trunk_prefix"];
|
||||
|
|
@ -259,7 +266,37 @@
|
|||
}
|
||||
}
|
||||
unset($sql, $parameters, $row);
|
||||
|
||||
//build the destination_numbers array
|
||||
$array = explode('-', $destination_number);
|
||||
$array = array_map('trim', $array);
|
||||
if (count($array) == 2 && is_numeric($array[0]) && is_numeric($array[1])) {
|
||||
$destination_numbers = range($array[0], $array[1]);
|
||||
$destination_number_range = true;
|
||||
}
|
||||
elseif (stristr($destination_number, 'n') || stristr($destination_number, 'x') || stristr($destination_number, 'z')) {
|
||||
//n = 2-9, x = 0-9, z = 1-9
|
||||
$destination_start = $destination_number;
|
||||
$destination_end = $destination_number;
|
||||
$destination_start = str_ireplace("n", "2", $destination_start);
|
||||
$destination_end = str_ireplace("n", "9", $destination_end);
|
||||
$destination_start = str_ireplace("x", "0", $destination_start);
|
||||
$destination_end = str_ireplace("x", "9", $destination_end);
|
||||
$destination_start = str_ireplace("z", "1", $destination_start);
|
||||
$destination_end = str_ireplace("z", "9", $destination_end);
|
||||
$destination_numbers = range($destination_start, $destination_end);
|
||||
$destination_number_range = true;
|
||||
}
|
||||
else {
|
||||
//$destination_numbers[] = $destination_number;
|
||||
$destination_numbers = $array;
|
||||
$destination_number_range = false;
|
||||
}
|
||||
unset($array);
|
||||
|
||||
//add the destinations and asscociated dialplans
|
||||
$x = 0;
|
||||
foreach($destination_numbers as $destination_number) {
|
||||
|
||||
//convert the number to a regular expression
|
||||
if (isset($destination_prefix) && strlen($destination_prefix) > 0) {
|
||||
|
|
@ -279,12 +316,21 @@
|
|||
unset($destination_numbers);
|
||||
|
||||
//if empty then get new uuid
|
||||
if (!is_uuid($destination_uuid)) {
|
||||
$destination_uuid = uuid();
|
||||
}
|
||||
if (!is_uuid($dialplan_uuid)) {
|
||||
$dialplan_uuid = uuid();
|
||||
}
|
||||
|
||||
//if the destination range is true then set a new uuid for each iteration of the loop
|
||||
if ($destination_number_range) {
|
||||
$destination_uuid = uuid();
|
||||
$dialplan_uuid = uuid();
|
||||
}
|
||||
|
||||
//set the dialplan_uuid
|
||||
$array['destinations'][0]["dialplan_uuid"] = $dialplan_uuid;
|
||||
$array['destinations'][$x]["dialplan_uuid"] = $dialplan_uuid;
|
||||
|
||||
//build the dialplan array
|
||||
if ($destination_type == "inbound") {
|
||||
|
|
@ -663,59 +709,61 @@
|
|||
}
|
||||
|
||||
//build the destination array
|
||||
$array['destinations'][0]["domain_uuid"] = $domain_uuid;
|
||||
$array['destinations'][0]["destination_uuid"] = $destination_uuid;
|
||||
$array['destinations'][0]["dialplan_uuid"] = $dialplan_uuid;
|
||||
$array['destinations'][0]["fax_uuid"] = $fax_uuid;
|
||||
$array['destinations'][$x]["domain_uuid"] = $domain_uuid;
|
||||
$array['destinations'][$x]["destination_uuid"] = $destination_uuid;
|
||||
$array['destinations'][$x]["dialplan_uuid"] = $dialplan_uuid;
|
||||
$array['destinations'][$x]["fax_uuid"] = $fax_uuid;
|
||||
if (permission_exists('provider_edit')) {
|
||||
$array['destinations'][0]["provider_uuid"] = $provider_uuid;
|
||||
$array['destinations'][$x]["provider_uuid"] = $provider_uuid;
|
||||
}
|
||||
if (permission_exists('user_edit')) {
|
||||
$array['destinations'][0]["user_uuid"] = $user_uuid;
|
||||
$array['destinations'][$x]["user_uuid"] = $user_uuid;
|
||||
}
|
||||
$array['destinations'][0]["destination_type"] = $destination_type;
|
||||
$array['destinations'][$x]["destination_type"] = $destination_type;
|
||||
if (permission_exists('destination_condition_field')) {
|
||||
$array['destinations'][0]["destination_condition_field"] = $destination_condition_field;
|
||||
$array['destinations'][$x]["destination_condition_field"] = $destination_condition_field;
|
||||
}
|
||||
if (permission_exists('destination_number')) {
|
||||
$array['destinations'][0]["destination_number"] = $destination_number;
|
||||
$array['destinations'][0]["destination_number_regex"] = $destination_number_regex;
|
||||
$array['destinations'][0]["destination_prefix"] = $destination_prefix;
|
||||
$array['destinations'][$x]["destination_number"] = $destination_number;
|
||||
$array['destinations'][$x]["destination_number_regex"] = $destination_number_regex;
|
||||
$array['destinations'][$x]["destination_prefix"] = $destination_prefix;
|
||||
}
|
||||
if (permission_exists('destination_trunk_prefix')) {
|
||||
$array['destinations'][0]["destination_trunk_prefix"] = $destination_trunk_prefix;
|
||||
$array['destinations'][$x]["destination_trunk_prefix"] = $destination_trunk_prefix;
|
||||
}
|
||||
if (permission_exists('destination_area_code')) {
|
||||
$array['destinations'][0]["destination_area_code"] = $destination_area_code;
|
||||
$array['destinations'][$x]["destination_area_code"] = $destination_area_code;
|
||||
}
|
||||
$array['destinations'][0]["destination_caller_id_name"] = $destination_caller_id_name;
|
||||
$array['destinations'][0]["destination_caller_id_number"] = $destination_caller_id_number;
|
||||
$array['destinations'][0]["destination_cid_name_prefix"] = $destination_cid_name_prefix;
|
||||
$array['destinations'][0]["destination_context"] = $destination_context;
|
||||
$array['destinations'][0]["destination_hold_music"] = $destination_hold_music;
|
||||
$array['destinations'][0]["destination_record"] = $destination_record;
|
||||
$array['destinations'][0]["destination_accountcode"] = $destination_accountcode;
|
||||
$array['destinations'][0]["destination_type_voice"] = $destination_type_voice ? 1 : null;
|
||||
$array['destinations'][0]["destination_type_fax"] = $destination_type_fax ? 1 : null;
|
||||
$array['destinations'][0]["destination_type_text"] = $destination_type_text ? 1 : null;
|
||||
$array['destinations'][$x]["destination_caller_id_name"] = $destination_caller_id_name;
|
||||
$array['destinations'][$x]["destination_caller_id_number"] = $destination_caller_id_number;
|
||||
$array['destinations'][$x]["destination_cid_name_prefix"] = $destination_cid_name_prefix;
|
||||
$array['destinations'][$x]["destination_context"] = $destination_context;
|
||||
$array['destinations'][$x]["destination_hold_music"] = $destination_hold_music;
|
||||
$array['destinations'][$x]["destination_record"] = $destination_record;
|
||||
$array['destinations'][$x]["destination_accountcode"] = $destination_accountcode;
|
||||
$array['destinations'][$x]["destination_type_voice"] = $destination_type_voice ? 1 : null;
|
||||
$array['destinations'][$x]["destination_type_fax"] = $destination_type_fax ? 1 : null;
|
||||
$array['destinations'][$x]["destination_type_text"] = $destination_type_text ? 1 : null;
|
||||
if (permission_exists('destination_emergency')){
|
||||
$array['destinations'][0]["destination_type_emergency"] = $destination_type_emergency ? 1 : null;
|
||||
$array['destinations'][$x]["destination_type_emergency"] = $destination_type_emergency ? 1 : null;
|
||||
}
|
||||
if ($destination->valid($destination_app.':'.$destination_data)) {
|
||||
$array['destinations'][0]["destination_app"] = $destination_app;
|
||||
$array['destinations'][0]["destination_data"] = $destination_data;
|
||||
$array['destinations'][$x]["destination_app"] = $destination_app;
|
||||
$array['destinations'][$x]["destination_data"] = $destination_data;
|
||||
}
|
||||
if ($destination->valid($destination_alternate_app.':'.$destination_alternate_data)) {
|
||||
$array['destinations'][0]["destination_alternate_app"] = $destination_alternate_app;
|
||||
$array['destinations'][0]["destination_alternate_data"] = $destination_alternate_data;
|
||||
$array['destinations'][$x]["destination_alternate_app"] = $destination_alternate_app;
|
||||
$array['destinations'][$x]["destination_alternate_data"] = $destination_alternate_data;
|
||||
}
|
||||
$array['destinations'][0]["destination_order"] = $destination_order;
|
||||
$array['destinations'][0]["destination_enabled"] = $destination_enabled;
|
||||
$array['destinations'][0]["destination_description"] = $destination_description;
|
||||
$array['destinations'][$x]["destination_order"] = $destination_order;
|
||||
$array['destinations'][$x]["destination_enabled"] = $destination_enabled;
|
||||
$array['destinations'][$x]["destination_description"] = $destination_description;
|
||||
$x++;
|
||||
|
||||
//prepare the array
|
||||
$array['dialplans'][] = $dialplan;
|
||||
unset($dialplan);
|
||||
} //foreach($destination_numbers as $destination_number)
|
||||
|
||||
//add the dialplan permission
|
||||
$p = new permissions;
|
||||
|
|
@ -728,9 +776,6 @@
|
|||
$database = new database;
|
||||
$database->app_name = 'destinations';
|
||||
$database->app_uuid = '5ec89622-b19c-3559-64f0-afde802ab139';
|
||||
if (isset($dialplan["dialplan_uuid"])) {
|
||||
$database->uuid($dialplan["dialplan_uuid"]);
|
||||
}
|
||||
$database->save($array);
|
||||
$dialplan_response = $database->message;
|
||||
|
||||
|
|
@ -741,11 +786,12 @@
|
|||
$p->delete("dialplan_detail_edit", 'temp');
|
||||
|
||||
//update the dialplan xml
|
||||
if ($_SESSION['destinations']['dialplan_details']['boolean'] == "true") {
|
||||
$dialplans = new dialplan;
|
||||
$dialplans->source = "details";
|
||||
$dialplans->destination = "database";
|
||||
$dialplans->uuid = $dialplan_uuid;
|
||||
$dialplans->xml();
|
||||
}
|
||||
|
||||
//clear the cache
|
||||
$cache = new cache;
|
||||
|
|
@ -762,14 +808,15 @@
|
|||
if ($destination_type == 'outbound') {
|
||||
|
||||
//prepare the array
|
||||
$array['destinations'][0]["destination_uuid"] = $destination_uuid;
|
||||
$array['destinations'][0]["domain_uuid"] = $domain_uuid;
|
||||
$array['destinations'][0]["destination_type"] = $destination_type;
|
||||
$array['destinations'][0]["destination_number"] = $destination_number;
|
||||
$array['destinations'][0]["destination_prefix"] = $destination_prefix;
|
||||
$array['destinations'][0]["destination_context"] = $destination_context;
|
||||
$array['destinations'][0]["destination_enabled"] = $destination_enabled;
|
||||
$array['destinations'][0]["destination_description"] = $destination_description;
|
||||
$x = 0;
|
||||
$array['destinations'][$x]["destination_uuid"] = $destination_uuid;
|
||||
$array['destinations'][$x]["domain_uuid"] = $domain_uuid;
|
||||
$array['destinations'][$x]["destination_type"] = $destination_type;
|
||||
$array['destinations'][$x]["destination_number"] = $destination_number;
|
||||
$array['destinations'][$x]["destination_prefix"] = $destination_prefix;
|
||||
$array['destinations'][$x]["destination_context"] = $destination_context;
|
||||
$array['destinations'][$x]["destination_enabled"] = $destination_enabled;
|
||||
$array['destinations'][$x]["destination_description"] = $destination_description;
|
||||
|
||||
//save the destination
|
||||
$database = new database;
|
||||
|
|
|
|||
Loading…
Reference in New Issue