Ring groups extensions range (#6824)
Now you can use hyphen to set range for extensions in destinations list of ring group. Example Destination: 2010-2030
This commit is contained in:
parent
90946bbc07
commit
2bbce23ff2
|
|
@ -215,6 +215,14 @@
|
|||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "";
|
||||
$y++;
|
||||
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "88297698-339d-4971-8019-3f7095ec1f33";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_category'] = "ring_group";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "destination_range_enabled";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_name'] = "boolean";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "true";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable or disable the feature to add a range of extensions.";
|
||||
|
||||
//schema details
|
||||
$y=0;
|
||||
|
|
|
|||
|
|
@ -381,7 +381,46 @@
|
|||
else {
|
||||
$ring_group_destination_uuid = uuid();
|
||||
}
|
||||
if (!empty($row['destination_number'])) {
|
||||
if (!empty($row['destination_number']) && $_SESSION['ring_group']['destination_range_enabled']['boolean']) {
|
||||
// check the range
|
||||
$output_array = array();
|
||||
preg_match('/[0-9]{1,}-[0-9]{1,}/', $row['destination_number'], $output_array);
|
||||
}
|
||||
if (is_uuid($ring_group_uuid) && count($output_array) > 0) {
|
||||
$ranges = explode('-', $row['destination_number']);
|
||||
$range_first_extension = $ranges[0];
|
||||
$range_second_extension = $ranges[1];
|
||||
if ($range_first_extension <= $range_second_extension) {
|
||||
// select range extension for ring group destintaions
|
||||
$sql = "select DISTINCT ext.extension, ext.extension_uuid from v_extensions as ext ";
|
||||
$sql .= "where ext.domain_uuid = :domain_uuid ";
|
||||
$sql .= "and CAST(coalesce(ext.extension, '0') AS integer) >= :range_first_extension and CAST(coalesce(ext.extension, '0') AS integer) <= :range_second_extension ";
|
||||
$sql .= "and ext.extension NOT IN ";
|
||||
$sql .= "(select DISTINCT asd.destination_number as exten from v_ring_group_destinations as asd ";
|
||||
$sql .= "where asd.ring_group_uuid = :ring_group_uuid ";
|
||||
$sql .= "and asd.domain_uuid = :domain_uuid) ";
|
||||
$sql .= "order by ext.extension asc ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['ring_group_uuid'] = $ring_group_uuid;
|
||||
$parameters['range_first_extension'] = $range_first_extension;
|
||||
$parameters['range_second_extension'] = $range_second_extension;
|
||||
$database = new database;
|
||||
$extensions = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters, $database);
|
||||
// echo var_dump($extensions);
|
||||
foreach ($extensions as $extension) {
|
||||
$array["ring_groups"][0]["ring_group_destinations"][$y]["ring_group_uuid"] = $ring_group_uuid;
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["ring_group_destination_uuid"] = uuid();
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["destination_number"] = $extension['extension'];
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["destination_delay"] = $row['destination_delay'];
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["destination_timeout"] = $row['destination_timeout'];
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["destination_prompt"] = $row['destination_prompt'];
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["destination_enabled"] = $row['destination_enabled'] ?? 'false';
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["domain_uuid"] = $domain_uuid;
|
||||
$y++;
|
||||
}
|
||||
}
|
||||
} elseif (!empty($row['destination_number']) > 0) {
|
||||
$array["ring_groups"][0]["ring_group_destinations"][$y]["ring_group_uuid"] = $ring_group_uuid;
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["ring_group_destination_uuid"] = $ring_group_destination_uuid;
|
||||
$array['ring_groups'][0]["ring_group_destinations"][$y]["destination_number"] = $row['destination_number'];
|
||||
|
|
@ -392,6 +431,7 @@
|
|||
$array['ring_groups'][0]["ring_group_destinations"][$y]["domain_uuid"] = $domain_uuid;
|
||||
}
|
||||
$y++;
|
||||
unset($output_array, $range_first_extension, $range_second_extension);
|
||||
}
|
||||
|
||||
//build the xml dialplan
|
||||
|
|
|
|||
Loading…
Reference in New Issue