Copyright (C) 2010 - 2014 All Rights Reserved. Contributor(s): Mark J Crane Luis Daniel Lucio Quiroz */ include "root.php"; //define the call_forward class class call_forward { public $debug; public $domain_uuid; public $domain_name; public $extension_uuid; private $extension; public $forward_all_destination; public $forward_all_enabled; private $dial_string; public $accountcode; public function set() { //set the global variable global $db; //determine whether to update the dial string $sql = "select * from v_extensions "; $sql .= "where domain_uuid = '".$this->domain_uuid."' "; $sql .= "and extension_uuid = '".$this->extension_uuid."' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); if (count($result) > 0) { foreach ($result as &$row) { $this->extension = $row["extension"]; $this->accountcode = $row["accountcode"]; } } unset ($prep_statement); //set the dial string if ($this->forward_all_enabled == "true") { $dial_string = "{presence_id=".$this->forward_all_destination."@".$_SESSION['domain_name'].",instant_ringback=true"; if (strlen($this->accountcode) > 0) { $dial_string .= ",accountcode=".$this->accountcode; } $dial_string .= "}"; if (extension_exists($this->forward_all_destination)) { $dial_string .= "user/".$this->forward_all_destination."@".$_SESSION['domain_name']; } else { $bridge = outbound_route_to_bridge ($_SESSION['domain_uuid'], $this->forward_all_destination); //if (strlen($bridge[0]) > 0) { // $dial_string .= $bridge[0]; //} //else { $dial_string .= "loopback/".$this->forward_all_destination; //} } $this->dial_string = $dial_string; } else { $this->dial_string = ''; } //update the extension $sql = "update v_extensions set "; $sql .= "forward_all_destination = '$this->forward_all_destination', "; $sql .= "dial_string = '".$this->dial_string."', "; $sql .= "forward_all_enabled = '$this->forward_all_enabled' "; $sql .= "where domain_uuid = '$this->domain_uuid' "; $sql .= "and extension_uuid = '$this->extension_uuid' "; if ($this->debug) { echo $sql; } $db->exec(check_sql($sql)); unset($sql); //delete extension from memcache $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); if ($fp) { $switch_cmd = "memcache delete directory:".$this->extension."@".$this->domain_name; $switch_result = event_socket_request($fp, 'api '.$switch_cmd); } } //function } //class ?>