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
@@ -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
}
?>