Call Control: Minor form layout mods, add Default Setting to control Follow Me Destination count and default Timeout value, integrate ORM.

This commit is contained in:
reliberate
2016-10-05 01:19:05 -06:00
parent 69bb29592c
commit ed50859364
5 changed files with 624 additions and 652 deletions
+321 -487
View File
@@ -24,16 +24,20 @@
Mark J Crane <markjcrane@fusionpbx.com>
Luis Daniel Lucio Quiroz <dlucio@okay.com.mx>
*/
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
if (permission_exists('follow_me') || permission_exists('call_forward') || permission_exists('do_not_disturb')) {
//access granted
}
else {
echo "access denied";
exit;
}
//includes
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
//check permissions
if (permission_exists('follow_me') || permission_exists('call_forward') || permission_exists('do_not_disturb')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
@@ -45,12 +49,7 @@ else {
echo " <select class='formfld' style='width: 55px;' name='$select_name'>\n";
$i = 0;
while($i <= 100) {
if ($select_value == $i) {
echo " <option value='$i' selected='selected'>$i</option>\n";
}
else {
echo " <option value='$i'>$i</option>\n";
}
echo " <option value='".$i."' ".(($select_value == $i) ? "selected='selected'" : null).">".$i."</option>\n";
$i = $i + 5;
}
echo "</select>\n";
@@ -113,243 +112,163 @@ else {
}
unset ($prep_statement);
if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//process post vars
if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//get http post variables and set them to php variables
if (count($_POST)>0) {
$forward_all_enabled = check_str($_POST["forward_all_enabled"]);
$forward_all_destination = check_str($_POST["forward_all_destination"]);
$forward_busy_enabled = check_str($_POST["forward_busy_enabled"]);
$forward_busy_destination = check_str($_POST["forward_busy_destination"]);
$forward_no_answer_enabled = check_str($_POST["forward_no_answer_enabled"]);
$forward_no_answer_destination = check_str($_POST["forward_no_answer_destination"]);
$forward_user_not_registered_destination = check_str($_POST["forward_user_not_registered_destination"]);
$forward_user_not_registered_enabled = check_str($_POST["forward_user_not_registered_enabled"]);
$forward_caller_id_uuid = check_str($_POST["forward_caller_id_uuid"]);
$cid_name_prefix = check_str($_POST["cid_name_prefix"]);
$cid_number_prefix = check_str($_POST["cid_number_prefix"]);
$follow_me_enabled = check_str($_POST["follow_me_enabled"]);
$follow_me_caller_id_uuid = check_str($_POST["follow_me_caller_id_uuid"]);
$follow_me_ignore_busy = check_str($_POST["follow_me_ignore_busy"]);
//get http post variables and set them to php variables
if (count($_POST)>0) {
$forward_all_enabled = check_str($_POST["forward_all_enabled"]);
$forward_all_destination = check_str($_POST["forward_all_destination"]);
$forward_busy_enabled = check_str($_POST["forward_busy_enabled"]);
$forward_busy_destination = check_str($_POST["forward_busy_destination"]);
$forward_no_answer_enabled = check_str($_POST["forward_no_answer_enabled"]);
$forward_no_answer_destination = check_str($_POST["forward_no_answer_destination"]);
$forward_user_not_registered_enabled = check_str($_POST["forward_user_not_registered_enabled"]);
$forward_user_not_registered_destination = check_str($_POST["forward_user_not_registered_destination"]);
$destination_data_1 = check_str($_POST["destination_data_1"]);
$destination_delay_1 = check_str($_POST["destination_delay_1"]);
$destination_prompt_1 = check_str($_POST["destination_prompt_1"]);
$destination_timeout_1 = check_str($_POST["destination_timeout_1"]);
$destination_data_2 = check_str($_POST["destination_data_2"]);
$destination_delay_2 = check_str($_POST["destination_delay_2"]);
$destination_prompt_2 = check_str($_POST["destination_prompt_2"]);
$destination_timeout_2 = check_str($_POST["destination_timeout_2"]);
$destination_data_3 = check_str($_POST["destination_data_3"]);
$destination_delay_3 = check_str($_POST["destination_delay_3"]);
$destination_prompt_3 = check_str($_POST["destination_prompt_3"]);
$destination_timeout_3 = check_str($_POST["destination_timeout_3"]);
$destination_data_4 = check_str($_POST["destination_data_4"]);
$destination_delay_4 = check_str($_POST["destination_delay_4"]);
$destination_prompt_4 = check_str($_POST["destination_prompt_4"]);
$destination_timeout_4 = check_str($_POST["destination_timeout_4"]);
$destination_data_5 = check_str($_POST["destination_data_5"]);
$destination_delay_5 = check_str($_POST["destination_delay_5"]);
$destination_prompt_5 = check_str($_POST["destination_prompt_5"]);
$destination_timeout_5 = check_str($_POST["destination_timeout_5"]);
$dnd_enabled = check_str($_POST["dnd_enabled"]);
if (strlen($forward_all_destination) > 0) {
// $forward_all_destination = preg_replace("~[^0-9]~", "",$forward_all_destination);
}
if (strlen($forward_busy_destination) > 0) {
// $forward_busy_destination = preg_replace("~[^0-9*]~", "",$forward_busy_destination);
}
if (strlen($forward_no_answer_destination) > 0) {
// $forward_no_answer_destination = preg_replace("~[^0-9*]~", "",$forward_no_answer_destination);
}
if (strlen($destination_data_1) > 0) {
// $destination_data_1 = preg_replace("~[^0-9]~", "",$destination_data_1);
}
if (strlen($destination_data_2) > 0) {
// $destination_data_2 = preg_replace("~[^0-9]~", "",$destination_data_2);
}
if (strlen($destination_data_3) > 0) {
// $destination_data_3 = preg_replace("~[^0-9]~", "",$destination_data_3);
}
if (strlen($destination_data_4) > 0) {
// $destination_data_4 = preg_replace("~[^0-9]~", "",$destination_data_4);
}
if (strlen($destination_data_5) > 0) {
// $destination_data_5 = preg_replace("~[^0-9]~", "",$destination_data_5);
}
}
//check for all required data
//if (strlen($forward_all_enabled) == 0) { $msg .= "Please provide: Call Forward<br>\n"; }
//if (strlen($forward_all_destination) == 0) { $msg .= "Please provide: Forward Number<br>\n"; }
//if (strlen($forward_busy_enabled) == 0) { $msg .= "Please provide: On Busy<br>\n"; }
//if (strlen($forward_busy_destination) == 0) { $msg .= "Please provide: Busy Number<br>\n"; }
//if (strlen($forward_no_answer_enabled) == 0) { $msg .= "Please provide: no_answer<br>\n"; }
//if (strlen($forward_no_answer_destination) == 0) { $msg .= "Please provide: no_answer Number<br>\n"; }
//if (strlen($follow_me_enabled) == 0) { $msg .= "Please provide: Follow Me<br>\n"; }
//if (strlen($destination_data_1) == 0) { $msg .= "Please provide: 1st Number<br>\n"; }
//if (strlen($destination_timeout_1) == 0) { $msg .= "Please provide: sec<br>\n"; }
//if (strlen($destination_data_2) == 0) { $msg .= "Please provide: 2nd Number<br>\n"; }
//if (strlen($destination_timeout_2) == 0) { $msg .= "Please provide: sec<br>\n"; }
//if (strlen($destination_data_3) == 0) { $msg .= "Please provide: 3rd Number<br>\n"; }
//if (strlen($destination_timeout_3) == 0) { $msg .= "Please provide: sec<br>\n"; }
//if (strlen($destination_data_4) == 0) { $msg .= "Please provide: 4th Number<br>\n"; }
//if (strlen($destination_timeout_4) == 0) { $msg .= "Please provide: sec<br>\n"; }
//if (strlen($destination_data_5) == 0) { $msg .= "Please provide: 5th Number<br>\n"; }
//if (strlen($destination_timeout_5) == 0) { $msg .= "Please provide: sec<br>\n"; }
//if (strlen($destination_data_6) == 0) { $msg .= "Please provide: 6th Number<br>\n"; }
//if (strlen($destination_timeout_6) == 0) { $msg .= "Please provide: sec<br>\n"; }
//if (strlen($destination_data_7) == 0) { $msg .= "Please provide: 7th Number<br>\n"; }
//if (strlen($destination_timeout_7) == 0) { $msg .= "Please provide: sec<br>\n"; }
if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
require_once "resources/persist_form_var.php";
echo "<div align='center'>\n";
echo "<table><tr><td>\n";
echo $msg."<br />";
echo "</td></tr></table>\n";
persistformvar($_POST);
echo "</div>\n";
require_once "resources/footer.php";
return;
$forward_caller_id_uuid = check_str($_POST["forward_caller_id_uuid"]);
$cid_name_prefix = check_str($_POST["cid_name_prefix"]);
$cid_number_prefix = check_str($_POST["cid_number_prefix"]);
$follow_me_enabled = check_str($_POST["follow_me_enabled"]);
$follow_me_caller_id_uuid = check_str($_POST["follow_me_caller_id_uuid"]);
$follow_me_ignore_busy = check_str($_POST["follow_me_ignore_busy"]);
$n = 0;
foreach ($_POST["destinations"] as $field) {
$destinations[$n]['uuid'] = check_str($field['uuid']);
$destinations[$n]['destination'] = check_str($field['destination']);
$destinations[$n]['delay'] = check_str($field['delay']);
$destinations[$n]['prompt'] = check_str($field['prompt']);
$destinations[$n]['timeout'] = check_str($field['timeout']);
$n++;
}
$dnd_enabled = check_str($_POST["dnd_enabled"]);
}
//set the default action to add
$call_forward_action = "add";
//check for all required data
if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
require_once "resources/persist_form_var.php";
echo "<div align='center'>\n";
echo "<table><tr><td>\n";
echo $msg."<br />";
echo "</td></tr></table>\n";
persistformvar($_POST);
echo "</div>\n";
require_once "resources/footer.php";
return;
}
//determine if this is an add or an update
if (strlen($follow_me_uuid) == 0) {
$follow_me_action = "add";
}
else {
$follow_me_action = "update";
}
//include the classes
include "resources/classes/call_forward.php";
include "resources/classes/follow_me.php";
include "resources/classes/do_not_disturb.php";
//include the classes
include "resources/classes/call_forward.php";
include "resources/classes/follow_me.php";
include "resources/classes/do_not_disturb.php";
//call forward config
if (permission_exists('call_forward')) {
$extensions['domain_uuid'] = $_SESSION['domain_uuid'];
$extensions['extension_uuid'] = $extension_uuid;
$extensions['forward_all_enabled'] = $forward_all_enabled;
$extensions['forward_all_destination'] = $forward_all_destination;
$extensions['forward_busy_enabled'] = $forward_busy_enabled;
$extensions['forward_busy_destination'] = $forward_busy_destination;
$extensions['forward_no_answer_enabled'] = $forward_no_answer_enabled;
$extensions['forward_no_answer_destination'] = $forward_no_answer_destination;
$extensions['forward_user_not_registered_enabled'] = $forward_user_not_registered_enabled;
$extensions['forward_user_not_registered_destination'] = $forward_user_not_registered_destination;
$extensions['forward_caller_id_uuid'] = $forward_caller_id_uuid;
}
//call forward config
if (permission_exists('call_forward')) {
$call_forward = new call_forward;
$call_forward->domain_uuid = $_SESSION['domain_uuid'];
$call_forward->domain_name = $_SESSION['domain_name'];
$call_forward->extension_uuid = $extension_uuid;
$call_forward->accountcode = $accountcode;
$call_forward->forward_all_destination = $forward_all_destination;
$call_forward->forward_all_enabled = $forward_all_enabled;
$call_forward->forward_caller_id_uuid = $forward_caller_id_uuid;
//$call_forward->set();
//unset($call_forward);
}
//do not disturb (dnd) config
if (permission_exists('do_not_disturb')) {
$extensions['domain_uuid'] = $_SESSION['domain_uuid'];
$extensions['extension_uuid'] = $extension_uuid;
$extensions['do_not_disturb'] = $dnd_enabled;
}
//do not disturb (dnd) config
if (permission_exists('do_not_disturb')) {
$dnd = new do_not_disturb;
$dnd->domain_uuid = $_SESSION['domain_uuid'];
$dnd->domain_name = $_SESSION['domain_name'];
$dnd->extension_uuid = $extension_uuid;
$dnd->enabled = $dnd_enabled;
//$dnd->set();
//$dnd->user_status();
//unset($dnd);
}
//follow me config
if (permission_exists('follow_me')) {
//build the follow me array
if ($follow_me_uuid == '') {
$follow_me_uuid = uuid();
$extensions['domain_uuid'] = $_SESSION['domain_uuid'];
$extensions['extension_uuid'] = $extension_uuid;
$extensions['follow_me_uuid'] = $follow_me_uuid;
}
//if follow me is enabled then process it last
if ($follow_me_enabled == "true") {
//call forward
$call_forward->set();
unset($call_forward);
//dnd
$dnd->set();
$dnd->user_status();
unset($dnd);
}
$follow_me['domain_uuid'] = $_SESSION['domain_uuid'];
$follow_me['follow_me_uuid'] = $follow_me_uuid;
$follow_me['cid_name_prefix'] = $cid_name_prefix;
$follow_me['cid_number_prefix'] = $cid_number_prefix;
$follow_me['follow_me_caller_id_uuid'] = $follow_me_caller_id_uuid;
$follow_me['follow_me_ignore_busy'] = $follow_me_ignore_busy;
//follow me config
if (permission_exists('follow_me')) {
$follow_me = new follow_me;
$follow_me->domain_uuid = $_SESSION['domain_uuid'];
$follow_me->domain_name = $_SESSION['domain_name'];
$follow_me->extension_uuid = $extension_uuid;
$follow_me->db_type = $db_type;
$follow_me->cid_name_prefix = $cid_name_prefix;
$follow_me->cid_number_prefix = $cid_number_prefix;
$follow_me->follow_me_enabled = $follow_me_enabled;
$follow_me->follow_me_caller_id_uuid = $follow_me_caller_id_uuid;
$follow_me->follow_me_ignore_busy = $follow_me_ignore_busy;
$d = 0;
$destination_found = false;
foreach ($destinations as $field) {
if ($field['destination'] != '') {
$follow_me['follow_me_destinations'][$d]['domain_uuid'] = $_SESSION['domain_uuid'];
$follow_me['follow_me_destinations'][$d]['follow_me_uuid'] = $follow_me_uuid;
$follow_me['follow_me_destinations'][$d]['follow_me_destination_uuid'] = $field['uuid'];
$follow_me['follow_me_destinations'][$d]['follow_me_destination'] = $field['destination'];
$follow_me['follow_me_destinations'][$d]['follow_me_delay'] = $field['delay'];
$follow_me['follow_me_destinations'][$d]['follow_me_prompt'] = $field['prompt'];
$follow_me['follow_me_destinations'][$d]['follow_me_timeout'] = $field['timeout'];
$follow_me['follow_me_destinations'][$d]['follow_me_order'] = $d;
$destination_found = true;
$d++;
}
else {
$follow_me_delete_uuids[] = $field['uuid'];
}
}
$follow_me->destination_data_1 = $destination_data_1;
$follow_me->destination_type_1 = $destination_type_1;
$follow_me->destination_delay_1 = $destination_delay_1;
$follow_me->destination_prompt_1 = $destination_prompt_1;
$follow_me->destination_timeout_1 = $destination_timeout_1;
$follow_me['follow_me_enabled'] = ($destination_found) ? $follow_me_enabled : 'false';
}
$follow_me->destination_data_2 = $destination_data_2;
$follow_me->destination_type_2 = $destination_type_2;
$follow_me->destination_delay_2 = $destination_delay_2;
$follow_me->destination_prompt_2 = $destination_prompt_2;
$follow_me->destination_timeout_2 = $destination_timeout_2;
//prepare the array
if (is_array($extensions) && sizeof($extensions) > 0) {
$array['extensions'][] = $extensions;
}
if (is_array($follow_me) && sizeof($follow_me) > 0) {
$array['follow_me'][] = $follow_me;
}
$follow_me->destination_data_3 = $destination_data_3;
$follow_me->destination_type_3 = $destination_type_3;
$follow_me->destination_delay_3 = $destination_delay_3;
$follow_me->destination_prompt_3 = $destination_prompt_3;
$follow_me->destination_timeout_3 = $destination_timeout_3;
//save the data
$orm = new orm;
$orm->app_name = 'call_routing';
$orm->app_uuid = '19806921-e8ed-dcff-b325-dd3e5da4959d';
$orm->save($array);
//$message = $orm->message;
$follow_me->destination_data_4 = $destination_data_4;
$follow_me->destination_type_4 = $destination_type_4;
$follow_me->destination_delay_4 = $destination_delay_4;
$follow_me->destination_prompt_4 = $destination_prompt_4;
$follow_me->destination_timeout_4 = $destination_timeout_4;
$follow_me->destination_data_5 = $destination_data_5;
$follow_me->destination_type_5 = $destination_type_5;
$follow_me->destination_delay_5 = $destination_delay_5;
$follow_me->destination_prompt_5 = $destination_prompt_5;
$follow_me->destination_timeout_5 = $destination_timeout_5;
if ($follow_me_action == "add") {
$follow_me_uuid = uuid();
$sql = "update v_extensions set ";
$sql .= "follow_me_uuid = '$follow_me_uuid' ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and extension_uuid = '$extension_uuid' ";
//delete empty destination records
if (is_array($follow_me_delete_uuids) && sizeof($follow_me_delete_uuids) > 0) {
$sql = "delete from v_follow_me_destinations where follow_me_destination_uuid in ('".implode("','", $follow_me_delete_uuids)."') ";
$db->exec(check_sql($sql));
unset($sql);
}
$follow_me->follow_me_uuid = $follow_me_uuid;
$follow_me->add();
$follow_me->set();
//call forward config
if (permission_exists('call_forward')) {
$call_forward = new call_forward;
$call_forward->domain_uuid = $_SESSION['domain_uuid'];
$call_forward->domain_name = $_SESSION['domain_name'];
$call_forward->extension_uuid = $extension_uuid;
$call_forward->forward_all_destination = $forward_all_destination;
$call_forward->forward_all_enabled = $forward_all_enabled;
$call_forward->forward_caller_id_uuid = $forward_caller_id_uuid;
}
if ($follow_me_action == "update") {
$follow_me->follow_me_uuid = $follow_me_uuid;
$follow_me->update();
$follow_me->set();
}
unset($follow_me);
}
//if dnd or call forward are enabled process it last
if ($follow_me_enabled != "true") {
if ($forward_all_enabled == "true") {
//dnd
$dnd->set();
$dnd->user_status();
unset($dnd);
//call forward
$call_forward->set();
unset($call_forward);
//do not disturb (dnd) config
if (permission_exists('do_not_disturb')) {
$dnd = new do_not_disturb;
$dnd->domain_uuid = $_SESSION['domain_uuid'];
$dnd->domain_name = $_SESSION['domain_name'];
$dnd->extension_uuid = $extension_uuid;
$dnd->extension = $extension;
$dnd->enabled = $dnd_enabled;
}
else{
//if follow me is enabled then process call forward and dnd first
if ($follow_me_enabled == "true") {
//call forward
$call_forward->set();
unset($call_forward);
@@ -358,43 +277,63 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$dnd->user_status();
unset($dnd);
}
}
//synchronize configuration
if (is_readable($_SESSION['switch']['extensions']['dir'])) {
require_once "app/extensions/resources/classes/extension.php";
$ext = new extension;
$ext->xml();
unset($ext);
}
//follow me config and process
if (permission_exists('follow_me')) {
$follow_me = new follow_me;
$follow_me->domain_uuid = $_SESSION['domain_uuid'];
$follow_me->extension_uuid = $extension_uuid;
$follow_me->follow_me_uuid = $follow_me_uuid;
$follow_me->follow_me_ignore_busy = $follow_me_ignore_busy;
$follow_me->follow_me_caller_id_uuid = $follow_me_caller_id_uuid;
$follow_me->follow_me_enabled = $follow_me_enabled;
$follow_me->set();
unset($follow_me);
}
// Forward on busy and no_answer is stored in table and will be used by lua scripts
$sql = "update v_extensions set ";
$sql .= "forward_busy_destination = '".$forward_busy_destination."', ";
$sql .= "forward_busy_enabled = '".$forward_busy_enabled."', ";
$sql .= "forward_no_answer_destination = '".$forward_no_answer_destination."', ";
$sql .= "forward_no_answer_enabled = '".$forward_no_answer_enabled."', ";
$sql .= "forward_user_not_registered_destination = '".$forward_user_not_registered_destination."', ";
$sql .= "forward_user_not_registered_enabled = '".$forward_user_not_registered_enabled."', ";
$sql .= "forward_caller_id_uuid = ".(($forward_caller_id_uuid != '') ? "'".$forward_caller_id_uuid."' " : "null ");
$sql .= "where domain_uuid = '".$domain_uuid."' ";
$sql .= "and extension_uuid = '".$extension_uuid."'";
$db->exec(check_sql($sql));
unset($sql);
//if dnd or call forward are enabled process them last
if ($follow_me_enabled != "true") {
if ($forward_all_enabled == "true") {
//dnd
$dnd->set();
$dnd->user_status();
unset($dnd);
//call forward
$call_forward->set();
unset($call_forward);
}
else{
//call forward
$call_forward->set();
unset($call_forward);
//dnd
$dnd->set();
$dnd->user_status();
unset($dnd);
}
}
//clear the cache
$cache = new cache;
$cache->delete("directory:".$extension."@".$_SESSION['domain_name']);
if(strlen($number_alias) > 0){
$cache->delete("directory:".$number_alias."@".$_SESSION['domain_name']);
}
//synchronize configuration
if (is_readable($_SESSION['switch']['extensions']['dir'])) {
require_once "app/extensions/resources/classes/extension.php";
$ext = new extension;
$ext->xml();
unset($ext);
}
//redirect the user
$_SESSION["message"] = $text['confirm-update'];
header("Location: ".$_REQUEST['return_url']);
return;
//clear the cache
$cache = new cache;
$cache->delete("directory:".$extension."@".$_SESSION['domain_name']);
if(strlen($number_alias) > 0){
$cache->delete("directory:".$number_alias."@".$_SESSION['domain_name']);
}
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
//redirect the user
$_SESSION["message"] = $text['confirm-update'];
header("Location: ".$_REQUEST['return_url']);
return;
}
//show the header
require_once "resources/header.php";
@@ -402,8 +341,8 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//pre-populate the form
if ($follow_me_uuid != '') {
$sql = "select * from v_follow_me ";
$sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= "and follow_me_uuid = '$follow_me_uuid' ";
$sql .= "where domain_uuid = '".$domain_uuid."' ";
$sql .= "and follow_me_uuid = '".$follow_me_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
@@ -415,44 +354,17 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$follow_me_ignore_busy = $row["follow_me_ignore_busy"];
$sql = "select * from v_follow_me_destinations ";
$sql .= "where follow_me_uuid = '$follow_me_uuid' ";
$sql .= "where follow_me_uuid = '".$follow_me_uuid."' ";
$sql .= "order by follow_me_order asc ";
$prep_statement_2 = $db->prepare(check_sql($sql));
$prep_statement_2->execute();
$result2 = $prep_statement_2->fetchAll(PDO::FETCH_NAMED);
$x = 1;
foreach ($result2 as &$row2) {
if ($x == 1) {
$destination_data_1 = $row2["follow_me_destination"];
$destination_delay_1 = $row2["follow_me_delay"];
$destination_prompt_1 = $row2["follow_me_prompt"];
$destination_timeout_1 = $row2["follow_me_timeout"];
}
if ($x == 2) {
$destination_data_2 = $row2["follow_me_destination"];
$destination_delay_2 = $row2["follow_me_delay"];
$destination_prompt_2 = $row2["follow_me_prompt"];
$destination_timeout_2 = $row2["follow_me_timeout"];
}
if ($x == 3) {
$destination_data_3 = $row2["follow_me_destination"];
$destination_delay_3 = $row2["follow_me_delay"];
$destination_prompt_3 = $row2["follow_me_prompt"];
$destination_timeout_3 = $row2["follow_me_timeout"];
}
if ($x == 4) {
$destination_data_4 = $row2["follow_me_destination"];
$destination_delay_4 = $row2["follow_me_delay"];
$destination_prompt_4 = $row2["follow_me_prompt"];
$destination_timeout_4 = $row2["follow_me_timeout"];
}
if ($x == 5) {
$destination_data_5 = $row2["follow_me_destination"];
$destination_delay_5 = $row2["follow_me_delay"];
$destination_prompt_5 = $row2["follow_me_prompt"];
$destination_timeout_5 = $row2["follow_me_timeout"];
}
$x++;
foreach ($result2 as $x => &$row2) {
$destinations[$x]['uuid'] = $row2["follow_me_destination_uuid"];
$destinations[$x]['destination'] = $row2["follow_me_destination"];
$destinations[$x]['delay'] = $row2["follow_me_delay"];
$destinations[$x]['prompt'] = $row2["follow_me_prompt"];
$destinations[$x]['timeout'] = $row2["follow_me_timeout"];
}
unset ($prep_statement_2);
}
@@ -487,21 +399,11 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
}
}
echo " ];\n";
echo " \$(\"#destination_data_1\").autocomplete({\n";
echo " source: extensions\n";
echo " });\n";
echo " \$(\"#destination_data_2\").autocomplete({\n";
echo " source: extensions\n";
echo " });\n";
echo " \$(\"#destination_data_3\").autocomplete({\n";
echo " source: extensions\n";
echo " });\n";
echo " \$(\"#destination_data_4\").autocomplete({\n";
echo " source: extensions\n";
echo " });\n";
echo " \$(\"#destination_data_5\").autocomplete({\n";
echo " source: extensions\n";
echo " });\n";
for ($n = 0; $n <= ((($_SESSION['follow_me']['max_destinations']['numeric'] != '') ? $_SESSION['follow_me']['max_destinations']['numeric'] : 5) - 1); $n++) {
echo " \$(\"#destination_".$n."\").autocomplete({\n";
echo " source: extensions\n";
echo " });\n";
}
echo "});\n";
echo "</script>\n";
@@ -521,7 +423,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "</tr>\n";
echo "<tr>\n";
echo "<td align='left' colspan='2'>\n";
echo " ".$text['description']." $extension.<br /><br />\n";
echo " ".$text['description']." <strong>".$extension."</strong><br /><br />\n";
echo "</td>\n";
echo "</tr>\n";
@@ -539,34 +441,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
unset($on_click);
echo "&nbsp;&nbsp;&nbsp;";
echo " <input class='formfld' type='text' name='forward_all_destination' id='forward_all_destination' maxlength='255' placeholder=\"".$text['label-destination']."\" value=\"".$forward_all_destination."\">\n";
if (permission_exists('follow_me_cid_set')) {
echo "&nbsp;&nbsp;&nbsp;";
$sql_forward = "select destination_uuid, destination_number, destination_description, destination_caller_id_number, destination_caller_id_name from v_destinations where domain_uuid = '$domain_uuid' and destination_type = 'inbound' order by destination_number asc ";
$prep_statement_forward = $db->prepare(check_sql($sql_forward));
$prep_statement_forward->execute();
$result_forward = $prep_statement_forward->fetchAll(PDO::FETCH_ASSOC);
if (count($result_forward) > 0) {
echo "<select name='forward_caller_id_uuid' id='forward_caller_id_uuid' class='formfld' >\n";
echo " <option value=''>".$text['label-select-cid-number']."</option>\n";
echo " <option value='' disabled='disabled'></option>\n";
foreach ($result_forward as &$row_forward) {
$selected = $row_forward["destination_uuid"] == $forward_caller_id_uuid ? "selected='selected' " : '';
$caller_id_number = $row_forward['destination_caller_id_number'];
if(strlen($caller_id_number) == 0){
$caller_id_number = $row_forward['destination_number'];
}
$caller_id_name = $row_forward['destination_caller_id_name'];
if(strlen($caller_id_name) == 0){
$caller_id_name = $row_forward['destination_description'];
}
echo "<option value='".$row_forward["destination_uuid"]."' ".$selected.">".format_phone($caller_id_number)." : ".$caller_id_name."</option>\n";
}
echo "</select>\n";
}
unset ($sql_forward, $prep_statement_forward, $result_forward, $row_forward);
}
echo " <br />".$text['description-call_forward']."\n";
echo "</td>\n";
echo "</tr>\n";
@@ -582,7 +457,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
unset($on_click);
echo "&nbsp;&nbsp;&nbsp;";
echo " <input class='formfld' type='text' name='forward_busy_destination' id='forward_busy_destination' maxlength='255' placeholder=\"".$text['label-destination']."\" value=\"".$forward_busy_destination."\">\n";
echo " <br />".$text['description-on-busy'].".\n";
echo " <br />".$text['description-on-busy']."\n";
echo "</td>\n";
echo "</tr>\n";
@@ -598,7 +473,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
unset($on_click);
echo "&nbsp;&nbsp;&nbsp;";
echo " <input class='formfld' type='text' name='forward_no_answer_destination' id='forward_no_answer_destination' maxlength='255' placeholder=\"".$text['label-destination']."\" value=\"".$forward_no_answer_destination."\">\n";
echo " <br />".$text['description-no_answer'].".\n";
echo " <br />".$text['description-no_answer']."\n";
echo "</td>\n";
echo "</tr>\n";
@@ -613,10 +488,43 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
unset($on_click);
echo "&nbsp;&nbsp;&nbsp;";
echo " <input class='formfld' type='text' name='forward_user_not_registered_destination' id='forward_user_not_registered_destination' maxlength='255' placeholder=\"".$text['label-destination']."\" value=\"".$forward_user_not_registered_destination."\">\n";
echo " <br />".$text['description-not_registered'].".\n";
echo " <br />".$text['description-not_registered']."\n";
echo "</td>\n";
echo "</tr>\n";
if (permission_exists('follow_me_cid_set')) {
$sql_forward = "select destination_uuid, destination_number, destination_description, destination_caller_id_number, destination_caller_id_name from v_destinations where domain_uuid = '$domain_uuid' and destination_type = 'inbound' order by destination_number asc ";
$prep_statement_forward = $db->prepare(check_sql($sql_forward));
$prep_statement_forward->execute();
$result_forward = $prep_statement_forward->fetchAll(PDO::FETCH_ASSOC);
if (count($result_forward) > 0) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>";
echo $text['label-cid-number'];
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select name='forward_caller_id_uuid' id='forward_caller_id_uuid' class='formfld' >\n";
echo " <option value=''></option>\n";
foreach ($result_forward as &$row_forward) {
$selected = $row_forward["destination_uuid"] == $forward_caller_id_uuid ? "selected='selected' " : '';
$caller_id_number = $row_forward['destination_caller_id_number'];
if(strlen($caller_id_number) == 0){
$caller_id_number = $row_forward['destination_number'];
}
$caller_id_name = $row_forward['destination_caller_id_name'];
if(strlen($caller_id_name) == 0){
$caller_id_name = $row_forward['destination_description'];
}
echo " <option value='".$row_forward["destination_uuid"]."' ".$selected.">".format_phone($caller_id_number)." : ".$caller_id_name."</option>\n";
}
echo " </select><br />\n";
echo $text['description-cid-number']."\n";
echo "</td>\n";
echo "</tr>\n";
}
unset ($sql_forward, $prep_statement_forward, $result_forward, $row_forward);
}
echo "<tr><td colspan='2'><br /></td></tr>\n";
echo "<tr>\n";
@@ -632,37 +540,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <label for='follow_me_disabled'><input type='radio' name='follow_me_enabled' id='follow_me_disabled' onclick=\"$('#tr_follow_me_settings').slideUp('fast');\" value='false' ".(($follow_me_enabled == "false" || $follow_me_enabled == "") ? "checked='checked'" : null)." /> ".$text['label-disabled']."</label> \n";
echo " <label for='follow_me_enabled'><input type='radio' name='follow_me_enabled' id='follow_me_enabled' onclick=\"$('#tr_follow_me_settings').slideDown('fast'); ".$on_click."\" value='true' ".(($follow_me_enabled == "true") ? "checked='checked'" : null)."/> ".$text['label-enabled']."</label> \n";
unset($on_click);
if (permission_exists('follow_me_cid_set')) {
echo "&nbsp;&nbsp;&nbsp;";
$sql_follow_me = "select destination_uuid, destination_number, destination_description, destination_caller_id_number, destination_caller_id_name from v_destinations where domain_uuid = '$domain_uuid' and destination_type = 'inbound' order by destination_number asc ";
$prep_statement_follow_me = $db->prepare(check_sql($sql_follow_me));
$prep_statement_follow_me->execute();
$result_follow_me = $prep_statement_follow_me->fetchAll(PDO::FETCH_ASSOC);
if (count($result_follow_me) > 0) {
echo "<select name='follow_me_caller_id_uuid' id='follow_me_caller_id_uuid' class='formfld' >\n";
echo " <option value=''>".$text['label-select-cid-number']."</option>\n";
echo " <option value='' disabled='disabled'></option>\n";
foreach ($result_follow_me as &$row_follow_me) {
$selected = $row_follow_me["destination_uuid"] == $follow_me_caller_id_uuid ? "selected='selected'" : '';
$caller_id_number = $row_follow_me['destination_caller_id_number'];
if(strlen($caller_id_number) == 0){
$caller_id_number = $row_follow_me['destination_number'];
}
$caller_id_name = $row_follow_me['destination_caller_id_name'];
if(strlen($caller_id_name) == 0){
$caller_id_name = $row_follow_me['destination_description'];
}
echo "<option value='".$row_follow_me["destination_uuid"]."' ".$selected.">".format_phone($caller_id_number)." : ".$caller_id_name."</option>\n";
}
echo "</select>\n";
}
unset ($sql_follow_me, $prep_statement_follow_me, $result_follow_me, $row_follow_me);
}
echo " <br /><br />\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
@@ -687,105 +564,28 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
}
echo " </tr>\n";
// 1st destination
echo " <tr>\n";
echo " <td><input class='formfld' style='min-width: 135px;' type='text' name='destination_data_1' id='destination_data_1' maxlength='255' value=\"".$destination_data_1."\"></td>\n";
echo " <td>\n";
destination_select('destination_delay_1', $destination_delay_1, '0');
echo " </td>\n";
echo " <td>\n";
destination_select('destination_timeout_1', $destination_timeout_1, '30');
echo " </td>\n";
if (permission_exists('follow_me_prompt')) {
echo " <td>\n";
echo " <select class='formfld' style='width: 90px;' name='destination_prompt_1'>\n";
echo " <option value=''></option>\n";
echo " <option value='1' ".(($destination_prompt_1)?"selected='selected'":null).">".$text['label-destination_prompt_confirm']."</option>\n";
//echo " <option value='2'>".$text['label-destination_prompt_announce]."</option>\n";
echo " </select>\n";
echo " </td>\n";
//output destinations
for ($n = 0; $n <= ((($_SESSION['follow_me']['max_destinations']['numeric'] != '') ? $_SESSION['follow_me']['max_destinations']['numeric'] : 5) - 1); $n++) {
echo " <input type='hidden' name='destinations[".$n."][uuid]' value='".(($destinations[$n]['uuid'] != '') ? $destinations[$n]['uuid'] : uuid())."'>\n";
echo " <tr>\n";
echo " <td><input class='formfld' style='min-width: 135px;' type='text' name='destinations[".$n."][destination]' id='destination_".$n."' maxlength='255' value=\"".$destinations[$n]['destination']."\"></td>\n";
echo " <td>\n";
destination_select('destinations['.$n.'][delay]', $destinations[$n]['delay'], '0');
echo " </td>\n";
echo " <td>\n";
destination_select('destinations['.$n.'][timeout]', $destinations[$n]['timeout'], (($_SESSION['follow_me']['timeout']['numeric'] != '') ? $_SESSION['follow_me']['timeout']['numeric'] : 30));
echo " </td>\n";
if (permission_exists('follow_me_prompt')) {
echo " <td>\n";
echo " <select class='formfld' style='width: 90px;' name='destinations[".$n."][prompt]'>\n";
echo " <option value=''></option>\n";
echo " <option value='1' ".(($destinations[$n]['prompt'])?"selected='selected'":null).">".$text['label-destination_prompt_confirm']."</option>\n";
//echo " <option value='2'>".$text['label-destination_prompt_announce]."</option>\n";
echo " </select>\n";
echo " </td>\n";
}
echo " </tr>\n";
}
echo " </tr>\n";
// 2nd destination
echo " <tr>\n";
echo " <td><input class='formfld' style='min-width: 135px;' type='text' name='destination_data_2' id='destination_data_2' maxlength='255' value=\"".$destination_data_2."\"></td>\n";
echo " <td>\n";
destination_select('destination_delay_2', $destination_delay_2, '0');
echo " </td>\n";
echo " <td>\n";
destination_select('destination_timeout_2', $destination_timeout_2, '30');
echo " </td>\n";
if (permission_exists('follow_me_prompt')) {
echo " <td>\n";
echo " <select class='formfld' style='width: 90px;' name='destination_prompt_2'>\n";
echo " <option value=''></option>\n";
echo " <option value='1' ".(($destination_prompt_2)?"selected='selected'":null).">".$text['label-destination_prompt_confirm']."</option>\n";
//echo " <option value='2'>".$text['label-destination_prompt_announce]."</option>\n";
echo " </select>\n";
echo " </td>\n";
}
echo " </tr>\n";
// 3rd destination
echo " <tr>\n";
echo " <td><input class='formfld' style='min-width: 135px;' type='text' name='destination_data_3' id='destination_data_3' maxlength='255' value=\"".$destination_data_3."\"></td>\n";
echo " <td>\n";
destination_select('destination_delay_3', $destination_delay_3, '0');
echo " </td>\n";
echo " <td>\n";
destination_select('destination_timeout_3', $destination_timeout_3, '30');
echo " </td>\n";
if (permission_exists('follow_me_prompt')) {
echo " <td>\n";
echo " <select class='formfld' style='width: 90px;' name='destination_prompt_3'>\n";
echo " <option value=''></option>\n";
echo " <option value='1' ".(($destination_prompt_3)?"selected='selected'":null).">".$text['label-destination_prompt_confirm']."</option>\n";
//echo " <option value='2'>".$text['label-destination_prompt_announce]."</option>\n";
echo " </select>\n";
echo " </td>\n";
}
echo " </tr>\n";
// 4th destination
echo " <tr>\n";
echo " <td><input class='formfld' style='min-width: 135px;' type='text' name='destination_data_4' id='destination_data_4' maxlength='255' value=\"".$destination_data_4."\"></td>\n";
echo " <td>\n";
destination_select('destination_delay_4', $destination_delay_4, '0');
echo " </td>\n";
echo " <td>\n";
destination_select('destination_timeout_4', $destination_timeout_4, '30');
echo " </td>\n";
if (permission_exists('follow_me_prompt')) {
echo " <td>\n";
echo " <select class='formfld' style='width: 90px;' name='destination_prompt_4'>\n";
echo " <option value=''></option>\n";
echo " <option value='1' ".(($destination_prompt_4)?"selected='selected'":null).">".$text['label-destination_prompt_confirm']."</option>\n";
//echo " <option value='2'>".$text['label-destination_prompt_announce]."</option>\n";
echo " </select>\n";
echo " </td>\n";
}
echo " </tr>\n";
// 5th destination
echo " <tr>\n";
echo " <td><input class='formfld' style='min-width: 135px;' type='text' name='destination_data_5' id='destination_data_5' maxlength='255' value=\"".$destination_data_5."\"></td>\n";
echo " <td>\n";
destination_select('destination_delay_5', $destination_delay_5, '0');
echo " </td>\n";
echo " <td>\n";
destination_select('destination_timeout_5', $destination_timeout_5, '30');
echo " </td>\n";
if (permission_exists('follow_me_prompt')) {
echo " <td>\n";
echo " <select class='formfld' style='width: 90px;' name='destination_prompt_5'>\n";
echo " <option value=''></option>\n";
echo " <option value='1' ".(($destination_prompt_5)?"selected='selected'":null).">".$text['label-destination_prompt_confirm']."</option>\n";
//echo " <option value='2'>".$text['label-destination_prompt_announce]."</option>\n";
echo " </select>\n";
echo " </td>\n";
}
echo " </tr>\n";
echo " </table>\n";
echo "</td>\n";
@@ -794,18 +594,52 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
if (permission_exists('follow_me_ignore_busy')) {
echo " <tr>\n";
echo " <td class='vncell' valign='top' align='left' nowrap='nowrap'>";
echo $text['label-ignore-busy'];
echo $text['label-ignore_busy'];
echo " </td>\n";
echo " <td class='vtable' align='left'>\n";
echo " <label for='follow_me_ignore_busy_false'><input type='radio' name='follow_me_ignore_busy' id='follow_me_ignore_busy_false' value='false' onclick=\"\" ".(($follow_me_ignore_busy == "false" || $follow_me_ignore_busy == "") ? "checked='checked'" : null)." /> ".$text['label-disabled']."</label> \n";
echo " <label for='follow_me_ignore_busy_true'><input type='radio' name='follow_me_ignore_busy' id='follow_me_ignore_busy_true' value='true' onclick=\"$on_click\" ".(($follow_me_ignore_busy == "true") ? "checked='checked'" : null)." /> ".$text['label-enabled']."</label> \n";
echo " <br />\n";
echo $text['description-ignore-busy']." \n";
//echo " <br> Interrupt call if one of destination are busy\n";
echo $text['description-ignore_busy']."\n";
echo " </td>\n";
echo " </tr>\n";
}
if (permission_exists('follow_me_cid_set')) {
$sql_follow_me = "select destination_uuid, destination_number, destination_description, destination_caller_id_number, destination_caller_id_name from v_destinations where domain_uuid = '$domain_uuid' and destination_type = 'inbound' order by destination_number asc ";
$prep_statement_follow_me = $db->prepare(check_sql($sql_follow_me));
$prep_statement_follow_me->execute();
$result_follow_me = $prep_statement_follow_me->fetchAll(PDO::FETCH_ASSOC);
if (count($result_follow_me) > 0) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>";
echo $text['label-cid-number'];
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select name='follow_me_caller_id_uuid' id='follow_me_caller_id_uuid' class='formfld' >\n";
echo " <option value=''></option>\n";
foreach ($result_follow_me as &$row_follow_me) {
$selected = $row_follow_me["destination_uuid"] == $follow_me_caller_id_uuid ? "selected='selected'" : '';
$caller_id_number = $row_follow_me['destination_caller_id_number'];
if(strlen($caller_id_number) == 0){
$caller_id_number = $row_follow_me['destination_number'];
}
$caller_id_name = $row_follow_me['destination_caller_id_name'];
if(strlen($caller_id_name) == 0){
$caller_id_name = $row_follow_me['destination_description'];
}
echo " <option value='".$row_follow_me["destination_uuid"]."' ".$selected.">".format_phone($caller_id_number)." : ".$caller_id_name."</option>\n";
}
echo " </select><br />\n";
echo $text['description-cid-number']."\n";
echo "</td>\n";
echo "</tr>\n";
}
unset ($sql_follow_me, $prep_statement_follow_me, $result_follow_me, $row_follow_me);
}
if (permission_exists('follow_me_cid_name_prefix')) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
@@ -814,7 +648,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='cid_name_prefix' maxlength='255' value='$cid_name_prefix'>\n";
echo "<br />\n";
echo $text['description-cid-name-prefix']." \n";
echo $text['description-cid-name-prefix']."\n";
echo "</td>\n";
echo "</tr>\n";
}
@@ -827,7 +661,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='cid_number_prefix' maxlength='255' value='$cid_number_prefix'>\n";
echo "<br />\n";
echo $text['description-cid-number-prefix']." \n";
echo $text['description-cid-number-prefix']."\n";
echo "</td>\n";
echo "</tr>\n";
}
@@ -854,14 +688,14 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <tr>\n";
echo " <td colspan='2' align='right'>\n";
if ($action == "update") {
echo " <input type='hidden' name='id' value='$extension_uuid'>\n";
echo " <input type='hidden' name='id' value='".$extension_uuid."'>\n";
}
echo " <br>";
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
echo " <br />";
echo " <input type='submit' class='btn' value='".$text['button-save']."'>\n";
echo " </td>\n";
echo " </tr>";
echo "</table>";
echo "<br><br>";
echo "<br /><br />";
echo "</form>";
//include the footer