diff --git a/app/calls/call_edit.php b/app/calls/call_edit.php index 3b65f122d5..1b97b0def8 100644 --- a/app/calls/call_edit.php +++ b/app/calls/call_edit.php @@ -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
\n"; } - //if (strlen($call_forward_number) == 0) { $msg .= "Please provide: Number
\n"; } + //if (strlen($forward_all_enabled) == 0) { $msg .= "Please provide: Call Forward
\n"; } + //if (strlen($forward_all_destination) == 0) { $msg .= "Please provide: Number
\n"; } //if (strlen($follow_me_enabled) == 0) { $msg .= "Please provide: Follow Me
\n"; } //if (strlen($destination_data_1) == 0) { $msg .= "Please provide: 1st Number
\n"; } //if (strlen($destination_timeout_1) == 0) { $msg .= "Please provide: sec
\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 "\n"; echo "\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 " ".$text['label-enabled']." \n"; + if ($forward_all_enabled == "true") { + echo " ".$text['label-enabled']." \n"; } else { - echo " ".$text['label-enable']." \n"; + echo " ".$text['label-enable']." \n"; } - if ($call_forward_enabled == "false" || $call_forward_enabled == "") { - echo " ".$text['label-disabled']." \n"; + if ($forward_all_enabled == "false" || $forward_all_enabled == "") { + echo " ".$text['label-disabled']." \n"; } else { - echo " ".$text['label-disable']." \n"; + echo " ".$text['label-disable']." \n"; } unset($on_click); echo "
\n"; @@ -474,7 +454,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo " ".$text['label-number'].":\n"; echo "\n"; echo "\n"; - echo " \n"; + echo " \n"; echo "
\n"; //echo "Enter the call forward number.\n"; echo "\n"; @@ -491,7 +471,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo " ".$text['label-follow-me'].":\n"; echo "\n"; echo "\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 " ".$text['label-dnd'].":\n"; echo "\n"; echo "\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;"; diff --git a/app/calls/resources/classes/switch_call_forward.php b/app/calls/resources/classes/switch_call_forward.php index b681c56e9f..3bf00f62c5 100644 --- a/app/calls/resources/classes/switch_call_forward.php +++ b/app/calls/resources/classes/switch_call_forward.php @@ -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."
"; - } - $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 } ?> \ No newline at end of file