diff --git a/app/calls/resources/classes/follow_me.php b/app/calls/resources/classes/follow_me.php index dd821d9081..08e2b8d737 100644 --- a/app/calls/resources/classes/follow_me.php +++ b/app/calls/resources/classes/follow_me.php @@ -228,245 +228,6 @@ include "root.php"; public function set() { - //determine whether to update the dial string - $sql = "select * from v_extensions "; - $sql .= "where domain_uuid = :domain_uuid "; - $sql .= "and extension_uuid = :extension_uuid "; - $parameters['domain_uuid'] = $this->domain_uuid; - $parameters['extension_uuid'] = $this->extension_uuid; - $database = new database; - $row = $database->select($sql, $parameters, 'row'); - if (is_array($row) && @sizeof($row) != 0) { - $this->extension = $row["extension"]; - $this->accountcode = $row["accountcode"]; - $this->toll_allow = $row["toll_allow"]; - $this->number_alias = $row["number_alias"]; - $this->outbound_caller_id_name = $row["outbound_caller_id_name"]; - $this->outbound_caller_id_number = $row["outbound_caller_id_number"]; - } - unset($sql, $parameters, $row); - - //determine whether to update the dial string - $sql = "select d.domain_name, f.* "; - $sql .= "from v_follow_me as f, v_domains as d "; - $sql .= "where f.domain_uuid = :domain_uuid "; - $sql .= "and f.follow_me_uuid = :follow_me_uuid "; - $sql .= "and d.domain_uuid = f.domain_uuid "; - $parameters['domain_uuid'] = $this->domain_uuid; - $parameters['follow_me_uuid'] = $this->follow_me_uuid; - $database = new database; - $row = $database->select($sql, $parameters, 'row'); - if (is_array($row) && @sizeof($row) != 0) { - $follow_me_uuid = $row["follow_me_uuid"]; - $this->domain_name = $row["domain_name"]; - $this->follow_me_enabled = $row["follow_me_enabled"]; - $this->cid_name_prefix = $row["cid_name_prefix"]; - $this->cid_number_prefix = $row["cid_number_prefix"]; - } - unset($sql, $parameters, $row); - - //set the extension dial string - $sql = "select * from v_follow_me_destinations "; - $sql .= "where follow_me_uuid = :follow_me_uuid "; - $sql .= "order by follow_me_order asc "; - $parameters['follow_me_uuid'] = $this->follow_me_uuid; - $database = new database; - $result = $database->select($sql, $parameters, 'all'); - - /* - $dial_string_caller_id_name = "\${effective_caller_id_name}"; - $dial_string_caller_id_number = "\${effective_caller_id_number}"; - if (strlen($this->follow_me_caller_id_uuid) > 0) { - $sql_caller = "select destination_number, destination_description, destination_caller_id_number, destination_caller_id_name "; - $sql_caller .= "from v_destinations "; - $sql_caller .= "where domain_uuid = :domain_uuid "; - $sql_caller .= "and destination_type = 'inbound' "; - $sql_caller .= "and destination_uuid = :destination_uuid "; - $parameters['domain_uuid'] = $this->domain_uuid; - $parameters['destination_uuid'] = $this->follow_me_caller_id_uuid; - $database = new database; - $row_caller = $database->select($sql_caller, $parameters, 'row'); - if (is_array($row_caller) && @sizeof($row_caller) != 0) { - $caller_id_number = $row_caller['destination_caller_id_number']; - if (strlen($caller_id_number) == 0){ - $caller_id_number = $row_caller['destination_number']; - } - $caller_id_name = $row_caller['destination_caller_id_name']; - if (strlen($caller_id_name) == 0){ - $caller_id_name = $row_caller['destination_description']; - } - } - unset($sql_caller, $parameters, $row_caller); - } - */ - - $x = 0; - if (is_array($result) && @sizeof($result) != 0) { - foreach ($result as &$row) { - if ($x > 0) { - $dial_string .= ","; - } - - //determine if the destination is a local sip user - $sql = "select extension, number_alias from v_extensions "; - $sql .= "where domain_uuid = :domain_uuid "; - $sql .= "and ( "; - $sql .= "extension = :extension "; - $sql .= "or number_alias = :number_alias "; - $sql .= ") "; - $parameters['domain_uuid'] = $this->domain_uuid; - $parameters['extension'] = $row["follow_me_destination"]; - $parameters['number_alias'] = $row["follow_me_destination"]; - $database = new database; - $field = $database->select($sql, $parameters, 'row'); - if (isset($field['extension'])) { - if (is_numeric($field['extension'])) { - $presence_id = $field['extension']; - } - else { - $presence_id = $field['number_alias']; - } - $variables[] = "presence_id=".$presence_id."@".$this->domain_name; - if ($row["follow_me_prompt"] == "1") { - $variables[] = "group_confirm_key=exec"; - $variables[] = "group_confirm_file=lua confirm.lua"; - $variables[] = "confirm=true"; - } - if ($this->follow_me_ignore_busy != 'true') { - $variables[] = "fail_on_single_reject=USER_BUSY"; - } - //accountcode - if (strlen($this->accountcode) == 0) { - $variables[] = "sip_h_X-accountcode=\${accountcode}"; - } - else { - $variables[] = "sip_h_X-accountcode=".$this->accountcode; - $variables[] = "accountcode=".$this->accountcode; - } - //toll allow - if ($this->toll_allow != '') { - $variables[] = "toll_allow=''".str_replace(",", "\,", $this->toll_allow)."''"; - } - - $variables[] = "instant_ringback=true"; - $variables[] = "ignore_early_media=true"; - $variables[] = "domain_uuid=".$this->domain_uuid; - $variables[] = "sip_invite_domain=".$this->domain_name; - $variables[] = "domain_name=".$this->domain_name; - $variables[] = "domain=".$this->domain_name; - $variables[] = "extension_uuid=".$this->extension_uuid; - $variables[] = "leg_delay_start=".$row["follow_me_delay"]; - $variables[] = "originate_delay_start=".$row["follow_me_delay"]; - $variables[] = "leg_timeout=".$row["follow_me_timeout"]; - - $dial_string .= "[".implode(",", $variables)."]\${sofia_contact(*/".$row["follow_me_destination"]."@".$this->domain_name.")}"; - //$dial_string .= "[".implode(",", $variables)."]user/".$row["follow_me_destination"]."@".$this->domain_name; - //$dial_string .= "loopback/export:".implode("\,export:", $variables)."\,transfer:".$row["follow_me_destination"]."/".$this->domain_name."/inline"; - unset($variables); - } - else { - if (is_numeric($this->extension)) { - $presence_id = $this->extension; - } - else { - $presence_id = $this->number_alias; - } - $variables[] = "presence_id=".$presence_id."@".$this->domain_name; - - //set the caller id - if ($_SESSION['follow_me']['outbound_caller_id']['boolean'] == "true") { - if (strlen($this->outbound_caller_id_name) > 0) { - $variables[] = "origination_caller_id_name=".$this->cid_name_prefix.$this->outbound_caller_id_name; - $variables[] = "effective_caller_id_name=".$this->cid_name_prefix.$this->outbound_caller_id_name; - } - if (strlen($this->outbound_caller_id_number) > 0) { - $variables[] = "origination_caller_id_number=".$this->cid_number_prefix.$this->outbound_caller_id_number; - $variables[] = "effective_caller_id_number=".$this->cid_number_prefix.$this->outbound_caller_id_number; - } - } - else { - if ($_SESSION['domain']['bridge']['text'] == "loopback") { - //set the outbound caller id number if the caller id number is a user - //$variables[] = "origination_caller_id_number=\${cond(\${from_user_exists} == true ? ".$this->outbound_caller_id_number." : \${origination_caller_id_number})}"; - $variables[] = "effective_caller_id_number=\${cond(\${from_user_exists} == true ? ".$this->outbound_caller_id_number." : \${effective_caller_id_number})}"; - //$variables[] = "origination_caller_id_name=\${cond(\${from_user_exists} == true ? ".$this->outbound_caller_id_name." : \${origination_caller_id_name})}"; - $variables[] = "effective_caller_id_name=\${cond(\${from_user_exists} == true ? ".$this->outbound_caller_id_name." : \${effective_caller_id_name})}"; - } - else { - //$variables[] .="origination_caller_id_number=\${cond(\${from_user_exists} == true ? \${outbound_caller_id_number} : )}"; - $variables[] .="effective_caller_id_number=\${cond(\${from_user_exists} == true ? \${outbound_caller_id_number} : )}"; - //$variables[] .="origination_caller_id_name=\${cond(\${from_user_exists} == true ? \${outbound_caller_id_name} : )}"; - $variables[] .="effective_caller_id_name=\${cond(\${from_user_exists} == true ? \${outbound_caller_id_name} : )}"; - } - } - - //accountcode - if (strlen($this->accountcode) == 0) { - $variables[] = "sip_h_X-accountcode=\${accountcode}"; - } - else { - $variables[] = "sip_h_X-accountcode=".$this->accountcode; - $variables[] = "accountcode=".$this->accountcode; - } - - //toll allow - if ($this->toll_allow != '') { - $variables[] = "toll_allow=''".str_replace(",", "\,", $this->toll_allow)."''"; - } - - if ($this->follow_me_ignore_busy != 'true') { - $variables[] = "fail_on_single_reject=USER_BUSY"; - } - - if ($row["follow_me_prompt"] == "1") { - $variables[] = "group_confirm_key=exec"; - $variables[] = "group_confirm_file=lua confirm.lua"; - $variables[] = "confirm=true"; - } - - $variables[] = "instant_ringback=true"; - $variables[] = "ignore_early_media=true"; - $variables[] = "domain_uuid=".$this->domain_uuid; - $variables[] = "sip_invite_domain=".$this->domain_name; - $variables[] = "domain_name=".$this->domain_name; - //$variables[] = "domain=".$this->domain_name; - $variables[] = "extension_uuid=".$this->extension_uuid; - $variables[] = "leg_delay_start=".$row["follow_me_delay"]; - $variables[] = "originate_delay_start=".$row["follow_me_delay"]; - $variables[] = "sleep=".($row["follow_me_delay"] * 1000); - $variables[] = "leg_timeout=".$row["follow_me_timeout"]; - if (is_numeric($row["follow_me_destination"])) { - if ($_SESSION['domain']['bridge']['text'] == "outbound" || $_SESSION['domain']['bridge']['text'] == "bridge") { - $bridge = outbound_route_to_bridge ($this->domain_uuid, $row["follow_me_destination"]); - $dial_string .= "[".implode(",", $variables)."]".$bridge[0]; - } - else if ($_SESSION['domain']['bridge']['text'] == "loopback") { - $variables[] = "is_follow_me_loopback=true"; - $sleep_time = "sleep:".($row["follow_me_delay"] * 1000); - //$dial_string .= "loopback/".$row["follow_me_destination"]."/".$this->domain_name; - $dial_string .= "loopback/".$sleep_time."\,export:".implode("\,export:", $variables)."\,transfer:".$row["follow_me_destination"]."/".$this->domain_name."/inline"; - } - else if ($_SESSION['domain']['bridge']['text'] == "lcr") { - $dial_string .= "[".implode(",", $variables)."]lcr/".$_SESSION['lcr']['profile']['text']."/".$this->domain_name."/".$row["follow_me_destination"]; - } - else { - //$dial_string .= "loopback/".$row["follow_me_destination"]."/".$this->domain_name; - $sleep_time = "sleep:".($row["follow_me_delay"] * 1000); - $dial_string .= "loopback/".$sleep_time."\,export:".implode("\,export:", $variables)."\,transfer:".$row["follow_me_destination"]."/".$this->domain_name."/inline"; - } - } - else { - $dial_string .= $row["follow_me_destination"]; - } - } - unset($sql, $parameters, $field); - $x++; - } - } - //$dial_string = str_replace(",]", "]", $dial_string); - $this->dial_string = "{ignore_early_media=true}".$dial_string; - unset($variables); - //get the extension_uuid $parameters['follow_me_uuid'] = $this->follow_me_uuid; $sql = "select extension_uuid from v_extensions "; @@ -483,19 +244,13 @@ include "root.php"; //add follow me to the array $array['follow_me'][0]["follow_me_uuid"] = $this->follow_me_uuid; $array['follow_me'][0]["domain_uuid"] = $this->domain_uuid; - $array['follow_me'][0]["dial_string"] = $this->dial_string; - - //is follow me enabled - $dial_string = ''; - if ($this->follow_me_enabled == "true") { - $dial_string = $this->dial_string; - } + $array['follow_me'][0]["dial_string"] = ''; //add extensions to the array $array['extensions'][0]["extension_uuid"] = $extension_uuid; $array['extensions'][0]["dial_domain"] = $this->domain_name; $array['extensions'][0]["dial_string"] = ''; - $array['extensions'][0]["follow_me_destinations"] = $dial_string; + $array['extensions'][0]["follow_me_destinations"] = ''; $array['extensions'][0]["follow_me_enabled"] = $this->follow_me_enabled; //save the destination @@ -507,6 +262,7 @@ include "root.php"; //remove the temporary permission $p->delete("follow_me_edit", 'temp'); $p->delete("extension_edit", 'temp'); + } //function } //class