diff --git a/app/calls/resources/classes/call_forward.php b/app/calls/resources/classes/call_forward.php
index d5d42b1156..099eaaa8de 100644
--- a/app/calls/resources/classes/call_forward.php
+++ b/app/calls/resources/classes/call_forward.php
@@ -46,17 +46,15 @@ include "root.php";
public $outbound_caller_id_number;
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 (is_array($result)) foreach ($result as &$row) {
+ $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->number_alias = $row["number_alias"];
$this->accountcode = $row["accountcode"];
@@ -64,31 +62,34 @@ include "root.php";
$this->outbound_caller_id_name = $row["outbound_caller_id_name"];
$this->outbound_caller_id_number = $row["outbound_caller_id_number"];
}
- unset ($prep_statement);
+ unset($sql, $parameters, $row);
- //update the extension
- $sql = "update v_extensions set ";
- if (strlen($this->forward_all_destination) == 0) {
- $sql .= "forward_all_destination = null, ";
- }
- else {
- $sql .= "forward_all_destination = '$this->forward_all_destination', ";
- }
+ //build extension update array
+ $array['extensions'][0]['extension_uuid'] = $this->extension_uuid;
+ $array['extensions'][0]['forward_all_destination'] = strlen($this->forward_all_destination) != 0 ? $this->forward_all_destination : null;
if (strlen($this->forward_all_destination) == 0 || $this->forward_all_enabled == "false") {
- $sql .= "dial_string = null, ";
- $sql .= "forward_all_enabled = 'false' ";
+ $array['extensions'][0]['dial_string'] = null;
+ $array['extensions'][0]['forward_all_enabled'] = 'false';
}
else {
- $sql .= "dial_string = '".check_str($this->dial_string)."', ";
- $sql .= "forward_all_enabled = 'true' ";
+ $array['extensions'][0]['dial_string'] = $this->dial_string;
+ $array['extensions'][0]['forward_all_enabled'] = 'true';
}
- $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);
+
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('extension_add', 'temp');
+
+ //execute update
+ $database = new database;
+ $database->app_name = 'calls';
+ $database->app_uuid = '19806921-e8ed-dcff-b325-dd3e5da4959d';
+ $database->save($array);
+ unset($array);
+
+ //grant temporary permissions
+ $p = new permissions;
+ $p->delete('extension_add', 'temp');
//delete extension from the cache
$cache = new cache;
@@ -97,7 +98,7 @@ include "root.php";
$cache->delete("directory:".$this->number_alias."@".$this->domain_name);
}
- } //function
- } //class
+ }
+ }
-?>
+?>
\ No newline at end of file
diff --git a/app/calls/resources/classes/do_not_disturb.php b/app/calls/resources/classes/do_not_disturb.php
index 7712a81198..2149f8e1ad 100644
--- a/app/calls/resources/classes/do_not_disturb.php
+++ b/app/calls/resources/classes/do_not_disturb.php
@@ -37,9 +37,6 @@ include "root.php";
//update the user_status
public function user_status() {
- //set the global variable
- global $db;
-
//update the status
if ($this->enabled == "true") {
//update the call center status
@@ -53,36 +50,39 @@ include "root.php";
//update the database user_status
$user_status = "Do Not Disturb";
$sql = "update v_users set ";
- $sql .= "user_status = '$user_status' ";
- $sql .= "where domain_uuid = '".$this->domain_uuid."' ";
- $sql .= "and username = '".$_SESSION['username']."' ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
+ $sql .= "user_status = :user_status ";
+ $sql .= "where domain_uuid = :domain_uuid ";
+ $sql .= "and username = :username ";
+ $parameters['user_status'] = "Do Not Disturb";
+ $parameters['domain_uuid'] = $this->domain_uuid;
+ $parameters['username'] = $_SESSION['username'];
+ $database = new database;
+ $database->execute($sql);
}
}
public function set() {
- //set the global variable
- global $db;
-
//determine whether to update the dial string
- $sql = "select extension_uuid, extension, number_alias from v_extensions ";
- $sql .= "where domain_uuid = '".$this->domain_uuid."' ";
- if (strlen($this->extension_uuid) > 0) {
- $sql .= "and extension_uuid = '".$this->extension_uuid."' ";
+ $sql = "select extension_uuid, extension, number_alias ";
+ $sql .= "from v_extensions ";
+ $sql .= "where domain_uuid = :domain_uuid ";
+ if (is_uuid($this->extension_uuid)) {
+ $sql .= "and extension_uuid = :extension_uuid ";
+ $parameters['extension_uuid'] = $this->extension_uuid;
}
else {
- $sql .= "and extension = '".$this->extension."' ";
+ $sql .= "and extension = :extension ";
+ $parameters['extension'] = $this->extension;
}
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- if (is_array($result)) foreach ($result as &$row) {
- if (strlen($this->extension_uuid) == 0) {
+ $parameters['domain_uuid'] = $this->domain_uuid;
+ $database = new database;
+ $row = $database->select($sql, $parameters, 'row');
+ if (is_array($row) && @sizeof($row) != 0) {
+ if (is_uuid($this->extension_uuid)) {
$this->extension_uuid = $row["extension_uuid"];
}
if (strlen($this->extension) == 0) {
- if(strlen($row["number_alias"]) == 0) {
+ if (strlen($row["number_alias"]) == 0) {
$this->extension = $row["extension"];
}
else {
@@ -90,31 +90,30 @@ include "root.php";
}
}
}
- unset ($prep_statement);
+ unset($sql, $parameters, $row);
//set the dial string
- if ($this->enabled == "true") {
- $this->dial_string = "error/user_busy";
- }
- else {
- $this->dial_string = '';
- }
+ $this->dial_string = $this->enabled == "true" ? "error/user_busy" : '';
- //update the extension
- $sql = "update v_extensions set ";
- $sql .= "dial_string = '".$this->dial_string."', ";
- //$sql .= "dial_domain = '".$this->domain_name."', ";
- $sql .= "do_not_disturb = '".$this->enabled."' ";
- $sql .= "where domain_uuid = '".$this->domain_uuid."' ";
- $sql .= "and extension_uuid = '".$this->extension_uuid."' ";
- if ($this->debug) {
- echo $sql."
";
- }
+ //build extension update array
+ $array['extensions'][0]['extension_uuid'] = $this->extension_uuid;
+ $array['extensions'][0]['dial_string'] = $this->dial_string;
+ $array['extensions'][0]['do_not_disturb'] = $this->enabled;
- $db->exec(check_sql($sql));
- unset($sql);
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('extension_edit', 'temp');
- } //function
- } //class
+ //execute update
+ $database = new database;
+ $database->app_name = 'calls';
+ $database->app_uuid = '19806921-e8ed-dcff-b325-dd3e5da4959d';
+ $database->save($array);
+ unset($array);
+
+ //revoke temporary permissions
+ $p->delete('extension_edit', 'temp');
+ }
+ }
?>
\ No newline at end of file
diff --git a/app/calls/resources/classes/follow_me.php b/app/calls/resources/classes/follow_me.php
index b26ea3c529..71eaf166f0 100644
--- a/app/calls/resources/classes/follow_me.php
+++ b/app/calls/resources/classes/follow_me.php
@@ -81,173 +81,162 @@ include "root.php";
public $destination_order = 1;
public function add() {
- //set the global variable
- global $db;
- //add a new follow me
- $sql = "insert into v_follow_me ";
- $sql .= "(";
- $sql .= "domain_uuid, ";
- $sql .= "follow_me_uuid, ";
- $sql .= "cid_name_prefix, ";
+ //build follow me insert 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]['cid_name_prefix'] = $this->cid_name_prefix;
if (strlen($this->cid_number_prefix) > 0) {
- $sql .= "cid_number_prefix, ";
+ $array['follow_me'][0]['cid_number_prefix'] = $this->cid_number_prefix;
}
- $sql .= "follow_me_caller_id_uuid, ";
- $sql .= "follow_me_enabled, ";
- $sql .= "follow_me_ignore_busy ";
- $sql .= ")";
- $sql .= "values ";
- $sql .= "(";
- $sql .= "'$this->domain_uuid', ";
- $sql .= "'$this->follow_me_uuid', ";
- $sql .= "'$this->cid_name_prefix', ";
- if (strlen($this->cid_number_prefix) > 0) {
- $sql .= "'$this->cid_number_prefix', ";
- }
- if (strlen($this->follow_me_caller_id_uuid) > 0) {
- $sql .= "'$this->follow_me_caller_id_uuid', ";
- }
- else {
- $sql .= 'null, ';
- }
- $sql .= "'$this->follow_me_enabled', ";
- $sql .= "'$this->follow_me_ignore_busy' ";
- $sql .= ")";
- if ($v_debug) {
- echo $sql."
";
- }
- $db->exec(check_sql($sql));
- unset($sql);
+ $array['follow_me'][0]['follow_me_caller_id_uuid'] = is_uuid($this->follow_me_caller_id_uuid) ? $this->follow_me_caller_id_uuid : null;
+ $array['follow_me'][0]['follow_me_enabled'] = $this->follow_me_enabled;
+ $array['follow_me'][0]['follow_me_ignore_busy'] = $this->follow_me_ignore_busy;
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('follow_me_add', 'temp');
+ //execute insert
+ $database = new database;
+ $database->app_name = 'calls';
+ $database->app_uuid = '19806921-e8ed-dcff-b325-dd3e5da4959d';
+ $database->save($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('follow_me_add', 'temp');
+
$this->follow_me_destinations();
- } //end function
+
+ }
public function update() {
- //set the global variable
- global $db;
- //update follow me table
- $sql = "update v_follow_me set ";
- $sql .= "follow_me_enabled = '$this->follow_me_enabled', ";
- $sql .= "follow_me_ignore_busy = '$this->follow_me_ignore_busy', ";
- $sql .= "cid_name_prefix = '$this->cid_name_prefix', ";
- if (strlen($this->follow_me_caller_id_uuid) > 0) {
- $sql .= "follow_me_caller_id_uuid = '$this->follow_me_caller_id_uuid', ";
- }
- else {
- $sql .= "follow_me_caller_id_uuid = null, ";
- }
- $sql .= "cid_number_prefix = '$this->cid_number_prefix' ";
- $sql .= "where domain_uuid = '$this->domain_uuid' ";
- $sql .= "and follow_me_uuid = '$this->follow_me_uuid' ";
- $db->exec(check_sql($sql));
- unset($sql);
+
+ //build follow me update array
+ $array['follow_me'][0]['follow_me_uuid'] = $this->follow_me_uuid;
+ $array['follow_me'][0]['cid_name_prefix'] = $this->cid_name_prefix;
+ $array['follow_me'][0]['cid_number_prefix'] = $this->cid_number_prefix;
+ $array['follow_me'][0]['follow_me_caller_id_uuid'] = is_uuid($this->follow_me_caller_id_uuid) ? $this->follow_me_caller_id_uuid : null;
+ $array['follow_me'][0]['follow_me_enabled'] = $this->follow_me_enabled;
+ $array['follow_me'][0]['follow_me_ignore_busy'] = $this->follow_me_ignore_busy;
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('follow_me_add', 'temp');
+ //execute update
+ $database = new database;
+ $database->app_name = 'calls';
+ $database->app_uuid = '19806921-e8ed-dcff-b325-dd3e5da4959d';
+ $database->save($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('follow_me_add', 'temp');
+
$this->follow_me_destinations();
- } //end function
+
+ }
public function follow_me_destinations() {
- //set the global variable
- global $db;
-
- //prepare insert statement
- $stmt = $db->prepare(
- "insert into v_follow_me_destinations("
- . "follow_me_destination_uuid,"
- . "domain_uuid,"
- . "follow_me_uuid,"
- . "follow_me_destination,"
- . "follow_me_timeout,"
- . "follow_me_delay,"
- . "follow_me_prompt,"
- . "follow_me_order"
- . ") values(?,?,?,?,?,?,?,?)"
- );
//delete related follow me destinations
- $sql = "delete from v_follow_me_destinations where follow_me_uuid = '$this->follow_me_uuid' ";
- $db->exec(check_sql($sql));
+ $array['follow_me_destinations'][0]['follow_me_uuid'] = $this->follow_me_uuid;
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('follow_me_destination_delete', 'temp');
+ //execute delete
+ $database = new database;
+ $database->app_name = 'calls';
+ $database->app_uuid = '19806921-e8ed-dcff-b325-dd3e5da4959d';
+ $database->delete($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('follow_me_destination_delete', 'temp');
- //insert the follow me destinations
+ //build follow me destinations insert array
+ $x = 0;
if (strlen($this->destination_data_1) > 0) {
- $stmt->execute(array(
- uuid(),
- $this->domain_uuid,
- $this->follow_me_uuid,
- $this->destination_data_1,
- $this->destination_timeout_1,
- $this->destination_delay_1,
- $this->destination_prompt_1,
- '1'
- ));
+ $array['follow_me_destinations'][$x]['follow_me_destination_uuid'] = uuid();
+ $array['follow_me_destinations'][$x]['domain_uuid'] = $this->domain_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_uuid'] = $this->follow_me_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_destination'] = $this->destination_data_1;
+ $array['follow_me_destinations'][$x]['follow_me_timeout'] = $this->destination_timeout_1;
+ $array['follow_me_destinations'][$x]['follow_me_delay'] = $this->destination_delay_1;
+ $array['follow_me_destinations'][$x]['follow_me_prompt'] = $this->destination_prompt_1;
+ $array['follow_me_destinations'][$x]['follow_me_order'] = '1';
$this->destination_order++;
+ $x++;
}
if (strlen($this->destination_data_2) > 0) {
- $stmt->execute(array(
- uuid(),
- $this->domain_uuid,
- $this->follow_me_uuid,
- $this->destination_data_2,
- $this->destination_timeout_2,
- $this->destination_delay_2,
- $this->destination_prompt_2,
- '2'
- ));
+ $array['follow_me_destinations'][$x]['follow_me_destination_uuid'] = uuid();
+ $array['follow_me_destinations'][$x]['domain_uuid'] = $this->domain_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_uuid'] = $this->follow_me_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_destination'] = $this->destination_data_2;
+ $array['follow_me_destinations'][$x]['follow_me_timeout'] = $this->destination_timeout_2;
+ $array['follow_me_destinations'][$x]['follow_me_delay'] = $this->destination_delay_2;
+ $array['follow_me_destinations'][$x]['follow_me_prompt'] = $this->destination_prompt_2;
+ $array['follow_me_destinations'][$x]['follow_me_order'] = '2';
$this->destination_order++;
+ $x++;
}
if (strlen($this->destination_data_3) > 0) {
- $stmt->execute(array(
- uuid(),
- $this->domain_uuid,
- $this->follow_me_uuid,
- $this->destination_data_3,
- $this->destination_timeout_3,
- $this->destination_delay_3,
- $this->destination_prompt_3,
- '3'
- ));
+ $array['follow_me_destinations'][$x]['follow_me_destination_uuid'] = uuid();
+ $array['follow_me_destinations'][$x]['domain_uuid'] = $this->domain_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_uuid'] = $this->follow_me_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_destination'] = $this->destination_data_3;
+ $array['follow_me_destinations'][$x]['follow_me_timeout'] = $this->destination_timeout_3;
+ $array['follow_me_destinations'][$x]['follow_me_delay'] = $this->destination_delay_3;
+ $array['follow_me_destinations'][$x]['follow_me_prompt'] = $this->destination_prompt_3;
+ $array['follow_me_destinations'][$x]['follow_me_order'] = '3';
$this->destination_order++;
+ $x++;
}
if (strlen($this->destination_data_4) > 0) {
- $stmt->execute(array(
- uuid(),
- $this->domain_uuid,
- $this->follow_me_uuid,
- $this->destination_data_4,
- $this->destination_timeout_4,
- $this->destination_delay_4,
- $this->destination_prompt_4,
- '4'
- ));
+ $array['follow_me_destinations'][$x]['follow_me_destination_uuid'] = uuid();
+ $array['follow_me_destinations'][$x]['domain_uuid'] = $this->domain_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_uuid'] = $this->follow_me_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_destination'] = $this->destination_data_4;
+ $array['follow_me_destinations'][$x]['follow_me_timeout'] = $this->destination_timeout_4;
+ $array['follow_me_destinations'][$x]['follow_me_delay'] = $this->destination_delay_4;
+ $array['follow_me_destinations'][$x]['follow_me_prompt'] = $this->destination_prompt_4;
+ $array['follow_me_destinations'][$x]['follow_me_order'] = '4';
$this->destination_order++;
+ $x++;
}
if (strlen($this->destination_data_5) > 0) {
- $stmt->execute(array(
- uuid(),
- $this->domain_uuid,
- $this->follow_me_uuid,
- $this->destination_data_5,
- $this->destination_timeout_5,
- $this->destination_delay_5,
- $this->destination_prompt_5,
- '5'
- ));
+ $array['follow_me_destinations'][$x]['follow_me_destination_uuid'] = uuid();
+ $array['follow_me_destinations'][$x]['domain_uuid'] = $this->domain_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_uuid'] = $this->follow_me_uuid;
+ $array['follow_me_destinations'][$x]['follow_me_destination'] = $this->destination_data_5;
+ $array['follow_me_destinations'][$x]['follow_me_timeout'] = $this->destination_timeout_5;
+ $array['follow_me_destinations'][$x]['follow_me_delay'] = $this->destination_delay_5;
+ $array['follow_me_destinations'][$x]['follow_me_prompt'] = $this->destination_prompt_5;
+ $array['follow_me_destinations'][$x]['follow_me_order'] = '5';
$this->destination_order++;
+ $x++;
}
- unset($stmt);
- } //function
+ if (is_array($array) && @sizeof($array) != 0) {
+ //grant temporary permissions
+ $p = new permissions;
+ $p->add('follow_me_destination_add', 'temp');
+ //execute insert
+ $database = new database;
+ $database->app_name = 'calls';
+ $database->app_uuid = '19806921-e8ed-dcff-b325-dd3e5da4959d';
+ $database->save($array);
+ unset($array);
+ //revoke temporary permissions
+ $p->delete('follow_me_destination_add', 'temp');
+ }
+ }
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 (is_array($result)) foreach ($result as &$row) {
+ $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"];
@@ -255,33 +244,34 @@ include "root.php";
$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.* from v_follow_me as f, v_domains as d ";
- $sql .= "where f.domain_uuid = '".$this->domain_uuid."' ";
- $sql .= "and f.follow_me_uuid = '".$this->follow_me_uuid."' ";
+ $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 ";
- $prep_statement = $db->prepare(check_sql($sql));
- $prep_statement->execute();
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- if (is_array($result)) {
- foreach ($result as &$row) {
- $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"];
- }
+ $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 ($prep_statement);
+ unset($sql, $parameters, $row);
//set the extension dial string
$sql = "select * from v_follow_me_destinations ";
- $sql .= "where follow_me_uuid = '".$this->follow_me_uuid."' ";
+ $sql .= "where follow_me_uuid = :follow_me_uuid ";
$sql .= "order by follow_me_order asc ";
- $prep_statement_2 = $db->prepare(check_sql($sql));
- $prep_statement_2->execute();
- $result = $prep_statement_2->fetchAll(PDO::FETCH_NAMED);
+ $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}";
@@ -289,177 +279,189 @@ include "root.php";
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 = '$this->domain_uuid' ";
+ $sql_caller .= "where domain_uuid = :domain_uuid ";
$sql_caller .= "and destination_type = 'inbound' ";
- $sql_caller .= "and destination_uuid = '$this->follow_me_caller_id_uuid'";
- $prep_statement_caller = $db->prepare($sql_caller);
- if ($prep_statement_caller) {
- $prep_statement_caller->execute();
- $row_caller = $prep_statement_caller->fetch(PDO::FETCH_ASSOC);
+ $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){
+ 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){
+ 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)) 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 = '".$this->domain_uuid."' ";
- $sql .= "and (extension = '".$row["follow_me_destination"]."' ";
- $sql .= "or number_alias = '".$row["follow_me_destination"]."') ";
- $field = $db->query($sql)->fetch(PDO::FETCH_ASSOC);
- 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)."''";
+ if (is_array($result) && @sizeof($result) != 0) {
+ foreach ($result as &$row) {
+ if ($x > 0) {
+ $dial_string .= ",";
}
- $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];
- }
- elseif ($_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";
- }
- elseif ($_SESSION['domain']['bridge']['text'] == "lcr") {
- $dial_string .= "[".implode(",", $variables)."]lcr/".$_SESSION['lcr']['profile']['text']."/".$this->domain_name."/".$row["follow_me_destination"];
+ //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 {
- //$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";
+ $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 {
- $dial_string .= $row["follow_me_destination"];
+ 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++;
}
- $x++;
}
//$dial_string = str_replace(",]", "]", $dial_string);
$this->dial_string = "{ignore_early_media=true}".$dial_string;
@@ -470,11 +472,10 @@ include "root.php";
$sql = "select extension_uuid from v_extensions ";
$sql .= "where follow_me_uuid = :follow_me_uuid ";
$database = new database;
- $result = $database->execute($sql, $parameters);
- $message = $database->message;
+ $result = $database->select($sql, $parameters);
$extension_uuid = $result[0]['extension_uuid'];
- //add the dialplan permission
+ //grant temporary permissions
$p = new permissions;
$p->add("follow_me_edit", 'temp');
$p->add("extension_edit", 'temp');
@@ -502,7 +503,6 @@ include "root.php";
$database->app_name = 'follow_me';
$database->app_uuid = '19806921-e8ed-dcff-b325-dd3e5da4959d';
$database->save($array);
- $dialplan_response = $database->message;
//remove the temporary permission
$p->delete("follow_me_edit", 'temp');
@@ -510,4 +510,4 @@ include "root.php";
} //function
} //class
-?>
+?>
\ No newline at end of file
diff --git a/app/music_on_hold/resources/classes/switch_music_on_hold.php b/app/music_on_hold/resources/classes/switch_music_on_hold.php
index 2a0101f842..6a3215148d 100644
--- a/app/music_on_hold/resources/classes/switch_music_on_hold.php
+++ b/app/music_on_hold/resources/classes/switch_music_on_hold.php
@@ -32,15 +32,8 @@ include "root.php";
public $domain_uuid;
private $xml;
- private $db;
public function __construct() {
- if (!$this->db) {
- require_once "resources/classes/database.php";
- $database = new database;
- $database->connect();
- $this->db = $database->db;
- }
$this->domain_uuid = $_SESSION['domain_uuid'];
}
@@ -93,19 +86,20 @@ include "root.php";
//streams
if (is_dir($_SERVER["PROJECT_ROOT"].'/app/streams')) {
$sql = "select * from v_streams ";
- $sql .= "where (domain_uuid = '".$this->domain_uuid."' or domain_uuid is null) ";
+ $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) ";
$sql .= "and stream_enabled = 'true' ";
$sql .= "order by stream_name asc ";
- $prep_statement = $this->db->prepare(check_sql($sql));
- $prep_statement->execute();
- $streams = $prep_statement->fetchAll(PDO::FETCH_NAMED);
- if (sizeof($streams) > 0) {
+ $parameters['domain_uuid'] = $_SESSION['domain_uuid']
+ $database = new database;
+ $streams = $database->select($sql, $parameters, 'all');
+ if (is_array($streams) && @sizeof($streams) != 0) {
$select .= " \n";
}
+ unset($sql, $parameters, $streams, $row);
}
//add additional options
if (sizeof($options) > 0) {
@@ -125,14 +119,16 @@ include "root.php";
//get moh records, build array
$sql = "select ";
- $sql .= "d.domain_name, m.* ";
+ $sql .= "d.domain_name, ";
+ $sql .= "m.* ";
$sql .= "from v_music_on_hold as m ";
- $sql .= "left join v_domains as d ON d.domain_uuid = m.domain_uuid ";
- $sql .= "where (m.domain_uuid = '".$this->domain_uuid."' or m.domain_uuid is null) ";
+ $sql .= "left join v_domains as d on d.domain_uuid = m.domain_uuid ";
+ $sql .= "where (m.domain_uuid = :domain_uuid or m.domain_uuid is null) ";
$sql .= "order by m.domain_uuid desc, music_on_hold_name asc, music_on_hold_rate asc ";
- $prep_statement = $this->db->prepare(check_sql($sql));
- $prep_statement->execute();
- return $prep_statement->fetchAll(PDO::FETCH_NAMED);
+ $parameters['domain_uuid'] = $_SESSION['domain_uuid']
+ $database = new database;
+ return $database->select($sql, $parameters, 'all');
+ unset($sql, $parameters);
}
public function reload() {
@@ -226,4 +222,4 @@ include "root.php";
//$moh->xml();
//$moh->save();
-?>
+?>
\ No newline at end of file