Work on the new call forward.

This commit is contained in:
Mark Crane 2012-12-16 07:39:03 +00:00
parent 2fa1608037
commit 211279e1f7
2 changed files with 31 additions and 198 deletions

View File

@ -98,8 +98,10 @@ else {
$outbound_caller_id_name = $row["outbound_caller_id_name"];
$outbound_caller_id_number = $row["outbound_caller_id_number"];
$do_not_disturb = $row["do_not_disturb"];
$call_forward_all = $row["call_forward_all"];
$call_forward_busy = $row["call_forward_busy"];
$forward_all_destination = $row["forward_all_destination"];
$forward_all_enabled = $row["forward_all_enabled"];
$forward_busy_destination = $row["forward_busy_destination"];
$forward_busy_enabled = $row["forward_busy_enabled"];
$follow_me_uuid = $row["follow_me_uuid"];
break; //limit to 1 row
}
@ -113,8 +115,8 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
//get http post variables and set them to php variables
if (count($_POST)>0) {
$call_forward_enabled = check_str($_POST["call_forward_enabled"]);
$call_forward_number = check_str($_POST["call_forward_number"]);
$forward_all_enabled = check_str($_POST["forward_all_enabled"]);
$forward_all_destination = check_str($_POST["forward_all_destination"]);
$follow_me_enabled = check_str($_POST["follow_me_enabled"]);
$destination_data_1 = check_str($_POST["destination_data_1"]);
@ -139,8 +141,8 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$dnd_enabled = check_str($_POST["dnd_enabled"]);
if (strlen($call_forward_number) > 0) {
$call_forward_number = preg_replace("~[^0-9]~", "",$call_forward_number);
if (strlen($forward_all_destination) > 0) {
$forward_all_destination = preg_replace("~[^0-9]~", "",$forward_all_destination);
}
if (strlen($destination_data_1) > 0) {
$destination_data_1 = preg_replace("~[^0-9]~", "",$destination_data_1);
@ -160,8 +162,8 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
}
//check for all required data
//if (strlen($call_forward_enabled) == 0) { $msg .= "Please provide: Call Forward<br>\n"; }
//if (strlen($call_forward_number) == 0) { $msg .= "Please provide: Number<br>\n"; }
//if (strlen($forward_all_enabled) == 0) { $msg .= "Please provide: Call Forward<br>\n"; }
//if (strlen($forward_all_destination) == 0) { $msg .= "Please provide: 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"; }
@ -211,31 +213,14 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
if (permission_exists('call_forward')) {
$call_forward = new call_forward;
$call_forward->domain_uuid = $_SESSION['domain_uuid'];
$call_forward->db_type = $db_type;
$call_forward->extension = $extension;
$call_forward->call_forward_number = $call_forward_number;
$call_forward->call_forward_enabled = $call_forward_enabled;
if ($call_forward_enabled == "true") {
if ($call_forward_action == "add") {
$call_forward->call_forward_uuid = uuid();
$call_forward->call_forward_add();
}
}
if ($call_forward_action == "update") {
$call_forward->call_forward_uuid = $call_forward_uuid;
$call_forward->call_forward_update();
}
$call_forward->extension_uuid = $extension_uuid;
$call_forward->forward_all_destination = $forward_all_destination;
$call_forward->forward_all_enabled = $forward_all_enabled;
$call_forward->update();
unset($call_forward);
//synchronize the xml config
save_hunt_group_xml();
//synchronize the xml config
save_dialplan_xml();
}
//follow me config
if (permission_exists('follow_me')) {
$follow_me = new follow_me;
$follow_me->domain_uuid = $_SESSION['domain_uuid'];
@ -289,9 +274,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$follow_me->set();
}
unset($follow_me);
//synchronize the xml config
save_dialplan_xml();
}
//do not disturb (dnd) config
@ -338,7 +320,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$result2 = $prep_statement_2->fetchAll(PDO::FETCH_NAMED);
$x = 1;
foreach ($result2 as &$row2) {
//$call_forward_number = $row2["destination_data"];
if ($x == 1) {
$destination_data_1 = $row2["follow_me_destination"];
$destination_delay_1 = $row2["follow_me_delay"];
@ -376,7 +357,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$dnd_enabled = $do_not_disturb;
}
//prepare the autocomplete
echo "<script src=\"/includes/jquery/jquery-1.8.3.js\"></script>\n";
echo "<script src=\"/includes/jquery/jquery-ui-1.9.2.min.js\"></script>\n";
@ -450,17 +430,17 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
$on_click .= "document.getElementById('follow_me_disabled').checked=true;";
$on_click .= "document.getElementById('dnd_enabled').checked=false;";
$on_click .= "document.getElementById('dnd_disabled').checked=true;";
if ($call_forward_enabled == "true") {
echo " <input type='radio' name='call_forward_enabled' id='call_forward_enabled' onclick=\"$on_click\" value='true' checked='checked'/> ".$text['label-enabled']." \n";
if ($forward_all_enabled == "true") {
echo " <input type='radio' name='forward_all_enabled' id='forward_all_enabled' onclick=\"$on_click\" value='true' checked='checked'/> ".$text['label-enabled']." \n";
}
else {
echo " <input type='radio' name='call_forward_enabled' id='call_forward_enabled' onclick=\"$on_click\" value='true' /> ".$text['label-enable']." \n";
echo " <input type='radio' name='forward_all_enabled' id='forward_all_enabled' onclick=\"$on_click\" value='true' /> ".$text['label-enable']." \n";
}
if ($call_forward_enabled == "false" || $call_forward_enabled == "") {
echo " <input type='radio' name='call_forward_enabled' id='call_forward_disabled' onclick=\"\" value='false' checked='checked' /> ".$text['label-disabled']." \n";
if ($forward_all_enabled == "false" || $forward_all_enabled == "") {
echo " <input type='radio' name='forward_all_enabled' id='forward_all_disabled' onclick=\"\" value='false' checked='checked' /> ".$text['label-disabled']." \n";
}
else {
echo " <input type='radio' name='call_forward_enabled' id='call_forward_disabled' onclick=\"\" value='false' /> ".$text['label-disable']." \n";
echo " <input type='radio' name='forward_all_enabled' id='forward_all_disabled' onclick=\"\" value='false' /> ".$text['label-disable']." \n";
}
unset($on_click);
echo "<br />\n";
@ -474,7 +454,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " ".$text['label-number'].":\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='call_forward_number' maxlength='255' value=\"$call_forward_number\">\n";
echo " <input class='formfld' type='text' name='forward_all_destination' maxlength='255' value=\"$forward_all_destination\">\n";
echo "<br />\n";
//echo "Enter the call forward number.\n";
echo "</td>\n";
@ -491,7 +471,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <strong>".$text['label-follow-me'].":</strong>\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
$on_click = "document.getElementById('call_forward_enabled').checked=true;";
$on_click = "document.getElementById('forward_all_enabled').checked=true;";
$on_click .= "document.getElementById('call_forward_disabled').checked=true;";
$on_click .= "document.getElementById('dnd_enabled').checked=false;";
$on_click .= "document.getElementById('dnd_disabled').checked=true;";
@ -601,7 +581,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
echo " <strong>".$text['label-dnd'].":</strong>\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
$on_click = "document.getElementById('call_forward_enabled').checked=true;";
$on_click = "document.getElementById('forward_all_enabled').checked=true;";
$on_click .= "document.getElementById('call_forward_disabled').checked=true;";
$on_click .= "document.getElementById('follow_me_enabled').checked=true;";
$on_click .= "document.getElementById('follow_me_disabled').checked=true;";

View File

@ -28,168 +28,21 @@ include "root.php";
//define the call_forward class
class call_forward {
public $domain_uuid;
public $db_type;
public $call_forward_uuid;
public $extension;
public $call_forward_enabled;
public $call_forward_number;
public $extension_uuid;
public $forward_all_destination;
public $forward_all_enabled;
public function call_forward_add() {
public function update() {
global $db;
$hunt_group_extension = $this->extension;
$huntgroup_name = 'call_forward_'.$this->extension;
$hunt_group_type = 'call_forward';
$hunt_group_context = $_SESSION['context'];
$hunt_group_timeout_destination = $this->extension;
$hunt_group_timeout_type = 'voicemail';
$hunt_group_ring_back = 'us-ring';
$hunt_group_cid_name_prefix = '';
$hunt_group_pin = '';
$huntgroup_caller_announce = 'false';
$hunt_group_user_list = '';
$hunt_group_enabled = $this->call_forward_enabled;
$hunt_group_description = 'call forward '.$this->extension;
$sql = "insert into v_hunt_groups ";
$sql .= "(";
$sql .= "domain_uuid, ";
$sql .= "hunt_group_uuid, ";
$sql .= "hunt_group_extension, ";
$sql .= "hunt_group_name, ";
$sql .= "hunt_group_type, ";
$sql .= "hunt_group_context, ";
$sql .= "hunt_group_timeout, ";
$sql .= "hunt_group_timeout_destination, ";
$sql .= "hunt_group_timeout_type, ";
$sql .= "hunt_group_ringback, ";
$sql .= "hunt_group_cid_name_prefix, ";
$sql .= "hunt_group_pin, ";
$sql .= "hunt_group_call_prompt, ";
$sql .= "hunt_group_caller_announce, ";
$sql .= "hunt_group_user_list, ";
$sql .= "hunt_group_enabled, ";
$sql .= "hunt_group_description ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'$this->domain_uuid', ";
$sql .= "'".$this->call_forward_uuid."', ";
$sql .= "'$hunt_group_extension', ";
$sql .= "'$huntgroup_name', ";
$sql .= "'$hunt_group_type', ";
$sql .= "'$hunt_group_context', ";
$sql .= "'$hunt_group_timeout', ";
$sql .= "'$hunt_group_timeout_destination', ";
$sql .= "'$hunt_group_timeout_type', ";
$sql .= "'$hunt_group_ring_back', ";
$sql .= "'$hunt_group_cid_name_prefix', ";
$sql .= "'$hunt_group_pin', ";
$sql .= "'$hunt_group_call_prompt', ";
$sql .= "'$huntgroup_caller_announce', ";
$sql .= "'$hunt_group_user_list', ";
$sql .= "'$hunt_group_enabled', ";
$sql .= "'$hunt_group_description' ";
$sql .= ")";
if ($v_debug) {
echo "add: ".$sql."<br />";
}
$db->exec(check_sql($sql));
unset($sql);
$this->call_forward_destination();
}
public function call_forward_update() {
global $db;
$hunt_group_extension = $this->extension;
$huntgroup_name = 'call_forward_'.$this->extension;
$hunt_group_type = 'call_forward';
$hunt_group_context = $_SESSION['context'];
$hunt_group_timeout_destination = $this->extension;
$hunt_group_timeout_type = 'voicemail';
$hunt_group_ring_back = 'us-ring';
$hunt_group_cid_name_prefix = '';
$hunt_group_pin = '';
$huntgroup_caller_announce = 'false';
$hunt_group_user_list = '';
$hunt_group_enabled = $this->call_forward_enabled;
$hunt_group_description = 'call forward '.$this->extension;
$sql = "update v_hunt_groups set ";
$sql .= "hunt_group_extension = '$hunt_group_extension', ";
$sql .= "hunt_group_name = '$huntgroup_name', ";
$sql .= "hunt_group_type = '$hunt_group_type', ";
$sql .= "hunt_group_context = '$hunt_group_context', ";
$sql .= "hunt_group_timeout = '$hunt_group_timeout', ";
$sql .= "hunt_group_timeout_destination = '$hunt_group_timeout_destination', ";
$sql .= "hunt_group_timeout_type = '$hunt_group_timeout_type', ";
$sql .= "hunt_group_ringback = '$hunt_group_ring_back', ";
$sql .= "hunt_group_cid_name_prefix = '$hunt_group_cid_name_prefix', ";
$sql .= "hunt_group_pin = '$hunt_group_pin', ";
$sql .= "hunt_group_call_prompt = '$hunt_group_call_prompt', ";
$sql .= "hunt_group_caller_announce = '$huntgroup_caller_announce', ";
$sql .= "hunt_group_user_list = '$hunt_group_user_list', ";
$sql .= "hunt_group_enabled = '$hunt_group_enabled', ";
$sql .= "hunt_group_description = '$hunt_group_description' ";
$sql = "update v_extensions set ";
$sql .= "forward_all_destination = '$this->forward_all_destination', ";
$sql .= "forward_all_enabled = '$this->forward_all_enabled' ";
$sql .= "where domain_uuid = '$this->domain_uuid' ";
$sql .= "and hunt_group_uuid = '$this->call_forward_uuid' ";
$sql .= "and extension_uuid = '$this->extension_uuid' ";
$db->exec(check_sql($sql));
unset($sql);
$this->call_forward_destination();
} //end function
public function call_forward_destination() {
global $db;
//delete related v_hunt_group_destinations
$sql = "delete from v_hunt_group_destinations where hunt_group_uuid = '$this->call_forward_uuid' ";
$db->exec(check_sql($sql));
//check whether the number is an extension or external number
if (strlen($this->call_forward_number) > 7) {
$destination_type = 'sip uri';
$destination_profile = '';
}
else {
$destination_type = 'extension';
$destination_profile = 'internal';
}
//prepare the variables
$destination_data = $this->call_forward_number;
$destination_timeout = '';
$destination_order = '1';
$destination_enabled = 'true';
$destination_description = 'call forward';
//add the hunt group destination
if ($this->call_forward_uuid) {
$sql = "insert into v_hunt_group_destinations ";
$sql .= "(";
$sql .= "hunt_group_destination_uuid, ";
$sql .= "domain_uuid, ";
$sql .= "hunt_group_uuid, ";
$sql .= "destination_data, ";
$sql .= "destination_type, ";
$sql .= "destination_profile, ";
$sql .= "destination_timeout, ";
$sql .= "destination_order, ";
$sql .= "destination_enabled, ";
$sql .= "destination_description ";
$sql .= ") ";
$sql .= "values ";
$sql .= "(";
$sql .= "'".uuid()."', ";
$sql .= "'$this->domain_uuid', ";
$sql .= "'$this->call_forward_uuid', ";
$sql .= "'$destination_data', ";
$sql .= "'$destination_type', ";
$sql .= "'$destination_profile', ";
$sql .= "'$destination_timeout', ";
$sql .= "'$destination_order', ";
$sql .= "'$destination_enabled', ";
$sql .= "'$destination_description' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
}
} //end function
}
?>