mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-30 09:03:49 +00:00
Voicemail Greetings: Database class integration.
This commit is contained in:
@@ -30,37 +30,52 @@ if ($domains_processed == 1) {
|
||||
$sql .= "set greeting_filename = greeting_name ";
|
||||
$sql .= "where greeting_filename is null ";
|
||||
$sql .= "or greeting_filename = '' ";
|
||||
$db->exec(check_sql($sql));
|
||||
$database = new database;
|
||||
$database->execute($sql);
|
||||
unset($sql);
|
||||
|
||||
//populate greeting id number if empty
|
||||
$sql = "select voicemail_greeting_uuid, greeting_filename ";
|
||||
$sql .= "from v_voicemail_greetings ";
|
||||
$sql .= "where greeting_id is null ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$voicemail_greeting_uuid = $row['voicemail_greeting_uuid'];
|
||||
$greeting_id = preg_replace('{\D}', '', $row['greeting_filename']);
|
||||
$sqlu = "update v_voicemail_greetings ";
|
||||
$sqlu .= "set greeting_id = ".$greeting_id." ";
|
||||
$sqlu .= "where voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
|
||||
$db->exec(check_sql($sqlu));
|
||||
unset($sqlu, $voicemail_greeting_uuid, $greeting_id);
|
||||
$database = new database;
|
||||
$result = $database->select($sql, null, 'all');
|
||||
if (is_array($result) && @sizeof($result) != 0) {
|
||||
foreach ($result as $x => &$row) {
|
||||
$voicemail_greeting_uuid = $row['voicemail_greeting_uuid'];
|
||||
$greeting_id = preg_replace('{\D}', '', $row['greeting_filename']);
|
||||
//build update array
|
||||
$array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$array['voicemail_greetings'][$x]['greeting_id'] = $greeting_id;
|
||||
unset($voicemail_greeting_uuid, $greeting_id);
|
||||
}
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p->add('voicemail_greeting_edit', 'temp');
|
||||
//execute update
|
||||
$database = new database;
|
||||
$database->app_name = 'voicemail_greetings';
|
||||
$database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
|
||||
$database->save($array);
|
||||
unset($array);
|
||||
//revoke temporary permissions
|
||||
$p->delete('voicemail_greeting_edit', 'temp');
|
||||
}
|
||||
}
|
||||
unset ($sql, $prep_statement);
|
||||
unset($sql, $result, $x, $row);
|
||||
|
||||
//if base64, populate from existing greeting files, then remove
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
|
||||
//get greetings without base64 in db
|
||||
$sql = "select voicemail_greeting_uuid, domain_uuid, voicemail_id, greeting_filename ";
|
||||
$sql .= "from v_voicemail_greetings where greeting_base64 is null or greeting_base64 = '' ";
|
||||
$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) {
|
||||
$sql .= "from v_voicemail_greetings ";
|
||||
$sql .= "where greeting_base64 is null ";
|
||||
$sql .= "or greeting_base64 = '' ";
|
||||
$database = new database;
|
||||
$result = $database->select($sql, null, 'all');
|
||||
if (is_array($result) && @sizeof($result) != 0) {
|
||||
foreach ($result as $x => &$row) {
|
||||
$voicemail_greeting_uuid = $row['voicemail_greeting_uuid'];
|
||||
$greeting_domain_uuid = $row['domain_uuid'];
|
||||
$voicemail_id = $row['voicemail_id'];
|
||||
@@ -69,31 +84,40 @@ if ($domains_processed == 1) {
|
||||
$greeting_directory = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$greeting_domain_uuid]['domain_name'].'/'.$voicemail_id;
|
||||
//encode greeting file (if exists)
|
||||
if (file_exists($greeting_directory.'/'.$greeting_filename)) {
|
||||
$greeting_base64 = base64_encode(file_get_contents($greeting_directory.'/'.$greeting_filename));
|
||||
//update greeting record with base64
|
||||
$sql = "update v_voicemail_greetings set ";
|
||||
$sql .= "greeting_base64 = '".$greeting_base64."' ";
|
||||
$sql .= "where domain_uuid = '".$greeting_domain_uuid."' ";
|
||||
$sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
|
||||
$db->exec(check_sql($sql));
|
||||
unset($sql);
|
||||
//build update array
|
||||
$array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$array['voicemail_greetings'][$x]['greeting_base64'] = base64_encode(file_get_contents($greeting_directory.'/'.$greeting_filename));
|
||||
//remove local greeting file
|
||||
@unlink($greeting_directory.'/'.$greeting_filename);
|
||||
}
|
||||
}
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p->add('voicemail_greeting_edit', 'temp');
|
||||
//execute update
|
||||
$database = new database;
|
||||
$database->app_name = 'voicemail_greetings';
|
||||
$database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
|
||||
$database->save($array);
|
||||
unset($array);
|
||||
//revoke temporary permissions
|
||||
$p->delete('voicemail_greeting_edit', 'temp');
|
||||
}
|
||||
}
|
||||
unset($sql, $prep_statement, $result, $row);
|
||||
unset($sql, $result, $row);
|
||||
}
|
||||
|
||||
//if not base64, decode to local files, remove base64 data from db
|
||||
else if ($_SESSION['voicemail']['storage_type']['text'] != 'base64') {
|
||||
//get greetings with base64 in db
|
||||
$sql = "select voicemail_greeting_uuid, domain_uuid, voicemail_id, greeting_filename, greeting_base64 ";
|
||||
$sql .= "from v_voicemail_greetings where greeting_base64 is not null ";
|
||||
$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) {
|
||||
$sql .= "from v_voicemail_greetings ";
|
||||
$sql .= "where greeting_base64 is not null ";
|
||||
$database = new database;
|
||||
$result = $database->select($sql, null, 'all');
|
||||
if (is_array($result) && @sizeof($result) != 0) {
|
||||
foreach ($result as $x => &$row) {
|
||||
$voicemail_greeting_uuid = $row['voicemail_greeting_uuid'];
|
||||
$greeting_domain_uuid = $row['domain_uuid'];
|
||||
$voicemail_id = $row['voicemail_id'];
|
||||
@@ -102,21 +126,28 @@ if ($domains_processed == 1) {
|
||||
//set greeting directory
|
||||
$greeting_directory = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$greeting_domain_uuid]['domain_name'].'/'.$voicemail_id;
|
||||
//remove local file, if any
|
||||
if (file_exists($greeting_directory.'/'.$greeting_filename)) {
|
||||
@unlink($greeting_directory.'/'.$greeting_filename);
|
||||
}
|
||||
@unlink($greeting_directory.'/'.$greeting_filename);
|
||||
//build update array
|
||||
$array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$array['voicemail_greetings'][$x]['greeting_base64'] = null;
|
||||
//decode base64, save to local file
|
||||
$greeting_decoded = base64_decode($greeting_base64);
|
||||
file_put_contents($greeting_directory.'/'.$greeting_filename, $greeting_decoded);
|
||||
$sql = "update v_voicemail_greetings ";
|
||||
$sql .= "set greeting_base64 = null ";
|
||||
$sql .= "where domain_uuid = '".$greeting_domain_uuid."' ";
|
||||
$sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
|
||||
$db->exec(check_sql($sql));
|
||||
unset($sql);
|
||||
file_put_contents($greeting_directory.'/'.$greeting_filename, base64_decode($greeting_base64));
|
||||
}
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p->add('voicemail_greeting_edit', 'temp');
|
||||
//execute update
|
||||
$database = new database;
|
||||
$database->app_name = 'voicemail_greetings';
|
||||
$database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
|
||||
$database->save($array);
|
||||
unset($array);
|
||||
//revoke temporary permissions
|
||||
$p->delete('voicemail_greeting_edit', 'temp');
|
||||
}
|
||||
}
|
||||
unset($sql, $prep_statement, $result, $row);
|
||||
unset($sql, $result, $row);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,46 +38,48 @@ else {
|
||||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
||||
if (count($_GET) > 0) {
|
||||
$voicemail_greeting_uuid = check_str($_GET["id"]);
|
||||
$voicemail_id = check_str($_GET["voicemail_id"]);
|
||||
}
|
||||
//get ids
|
||||
$voicemail_greeting_uuid = $_GET["id"];
|
||||
$voicemail_id = $_GET["voicemail_id"];
|
||||
|
||||
if (strlen($voicemail_greeting_uuid) > 0) {
|
||||
if (is_uuid($voicemail_greeting_uuid) && $voicemail_id != '') {
|
||||
//get the greeting filename
|
||||
$sql = "select greeting_filename from v_voicemail_greetings ";
|
||||
$sql .= "where voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
|
||||
$sql .= "and domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_id = '".$voicemail_id."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$greeting_filename = $row["greeting_filename"];
|
||||
break; //limit to 1 row
|
||||
}
|
||||
unset ($prep_statement);
|
||||
$sql = "select greeting_filename ";
|
||||
$sql .= "from v_voicemail_greetings ";
|
||||
$sql .= "where voicemail_greeting_uuid = :voicemail_greeting_uuid ";
|
||||
$sql .= "and domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_id = :voicemail_id ";
|
||||
$parameters['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_id'] = $voicemail_id;
|
||||
$database = new database;
|
||||
$greeting_filename = $database->select($sql, $parameters, 'column');
|
||||
unset($prep_statement);
|
||||
|
||||
//delete recording from the database
|
||||
$sql = "delete from v_voicemail_greetings ";
|
||||
$sql .= "where voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
|
||||
$sql .= "and domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_id = '".$voicemail_id."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
unset($sql);
|
||||
//build delete array
|
||||
$array['voicemail_greetings'][0]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$array['voicemail_greetings'][0]['domain_uuid'] = $domain_uuid;
|
||||
$array['voicemail_greetings'][0]['voicemail_id'] = $voicemail_id;
|
||||
|
||||
//execute delete
|
||||
$database = new database;
|
||||
$database->app_name = 'voicemail_greetings';
|
||||
$database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
|
||||
$database->delete($array);
|
||||
unset($array);
|
||||
|
||||
//set the greeting directory
|
||||
$v_greeting_dir = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$domain_uuid]['domain_name'].'/'.$voicemail_id;
|
||||
|
||||
//delete the recording file
|
||||
if (file_exists($v_greeting_dir."/".$greeting_filename)) {
|
||||
@unlink($v_greeting_dir."/".$greeting_filename);
|
||||
}
|
||||
@unlink($v_greeting_dir."/".$greeting_filename);
|
||||
|
||||
//set message
|
||||
message::add($text['message-delete']);
|
||||
}
|
||||
|
||||
//redirect the user
|
||||
message::add($text['message-delete']);
|
||||
//redirect
|
||||
header("Location: voicemail_greetings.php?id=".$voicemail_id);
|
||||
return;
|
||||
exit;
|
||||
|
||||
?>
|
||||
@@ -43,15 +43,15 @@
|
||||
$text = $language->get();
|
||||
|
||||
//get greeting id
|
||||
if (isset($_REQUEST["id"])) {
|
||||
$voicemail_greeting_uuid = check_str($_REQUEST["id"]);
|
||||
if (is_uuid($_REQUEST["id"])) {
|
||||
$voicemail_greeting_uuid = $_REQUEST["id"];
|
||||
}
|
||||
|
||||
//get the form value and set to php variables
|
||||
$voicemail_id = check_str($_REQUEST["voicemail_id"]);
|
||||
$voicemail_id = $_REQUEST["voicemail_id"];
|
||||
if (count($_POST) > 0) {
|
||||
$greeting_name = check_str($_POST["greeting_name"]);
|
||||
$greeting_description = check_str($_POST["greeting_description"]);
|
||||
$greeting_name = $_POST["greeting_name"];
|
||||
$greeting_description = $_POST["greeting_description"];
|
||||
|
||||
//clean the name
|
||||
$greeting_name = str_replace("'", "", $greeting_name);
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
|
||||
//get greeting uuid to edit
|
||||
$voicemail_greeting_uuid = check_str($_POST["voicemail_greeting_uuid"]);
|
||||
$voicemail_greeting_uuid = $_POST["voicemail_greeting_uuid"];
|
||||
|
||||
//check for all required data
|
||||
$msg = '';
|
||||
@@ -78,40 +78,40 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
|
||||
}
|
||||
|
||||
//update the database
|
||||
if ($_POST["persistformvar"] != "true") {
|
||||
if (permission_exists('voicemail_greeting_edit')) {
|
||||
//update the database with the new data
|
||||
$sql = "update v_voicemail_greetings set ";
|
||||
$sql .= "greeting_name = '".$greeting_name."', ";
|
||||
$sql .= "greeting_description = '".$greeting_description."' ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
|
||||
$db->exec(check_sql($sql));
|
||||
unset($sql);
|
||||
|
||||
//redirect the user
|
||||
message::add($text['message-update']);
|
||||
header("Location: voicemail_greetings.php?id=".$voicemail_id);
|
||||
return;
|
||||
} //if (permission_exists('voicemail_greeting_edit')) {
|
||||
} //if ($_POST["persistformvar"] != "true")
|
||||
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
|
||||
if ($_POST["persistformvar"] != "true" && permission_exists('voicemail_greeting_edit')) {
|
||||
//build update array
|
||||
$array['voicemail_greetings'][0]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$array['voicemail_greetings'][0]['greeting_name'] = $greeting_name;
|
||||
$array['voicemail_greetings'][0]['greeting_description'] = $greeting_description;
|
||||
//execute update
|
||||
$database = new database;
|
||||
$database->app_name = 'voicemail_greetings';
|
||||
$database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
|
||||
$database->save($array);
|
||||
unset($array);
|
||||
//set message
|
||||
message::add($text['message-update']);
|
||||
//redirect
|
||||
header("Location: voicemail_greetings.php?id=".$voicemail_id);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
//pre-populate the form
|
||||
if (count($_GET) > 0 && $_POST["persistformvar"] != "true") {
|
||||
$voicemail_greeting_uuid = check_str($_GET["id"]);
|
||||
$voicemail_greeting_uuid = $_GET["id"];
|
||||
$sql = "select * from v_voicemail_greetings ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_greeting_uuid = :voicemail_greeting_uuid ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$database = new database;
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
if (is_array($row) && @sizeof($row) != 0) {
|
||||
$greeting_name = $row["greeting_name"];
|
||||
$greeting_description = $row["greeting_description"];
|
||||
break; //limit to 1 row
|
||||
}
|
||||
unset ($prep_statement);
|
||||
unset($sql, $parameters, $row);
|
||||
}
|
||||
|
||||
//show the header
|
||||
@@ -171,4 +171,4 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
|
||||
//include the footer
|
||||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
?>
|
||||
@@ -45,9 +45,9 @@
|
||||
ini_set(max_execution_time,7200);
|
||||
|
||||
//get the http get values and set them as php variables
|
||||
$voicemail_id = check_str($_REQUEST["id"]);
|
||||
$order_by = check_str($_GET["order_by"]);
|
||||
$order = check_str($_GET["order"]);
|
||||
$voicemail_id = $_REQUEST["id"];
|
||||
$order_by = $_GET["order_by"];
|
||||
$order = $_GET["order"];
|
||||
|
||||
//set the back button url
|
||||
$_SESSION['back'][$_SERVER['PHP_SELF']] = ($_GET['back'] != '') ? urldecode($_GET['back']) : $_SESSION['back'][$_SERVER['PHP_SELF']];
|
||||
@@ -71,15 +71,13 @@
|
||||
|
||||
//get currently selected greeting
|
||||
$sql = "select greeting_id from v_voicemails ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_id = '".$voicemail_id."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
if ($prep_statement) {
|
||||
$prep_statement->execute();
|
||||
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
|
||||
$selected_greeting_id = $row['greeting_id'];
|
||||
}
|
||||
unset($prep_statement, $row);
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_id = :voicemail_id ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_id'] = $voicemail_id;
|
||||
$database = new database;
|
||||
$selected_greeting_id = $database->select($sql, $parameters, 'column');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//define greeting directory
|
||||
$v_greeting_dir = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$domain_uuid]['domain_name'].'/'.$voicemail_id;
|
||||
@@ -87,28 +85,26 @@
|
||||
//download the greeting
|
||||
if ($_GET['a'] == "download" && (permission_exists('voicemail_greeting_play') || permission_exists('voicemail_greeting_download'))) {
|
||||
session_cache_limiter('public');
|
||||
if ($_GET['type'] = "rec") {
|
||||
$voicemail_greeting_uuid = check_str($_GET['uuid']);
|
||||
if ($_GET['type'] == "rec") {
|
||||
$voicemail_greeting_uuid = $_GET['uuid'];
|
||||
//get voicemail greeting details from db
|
||||
$sql = "select greeting_filename, greeting_base64, greeting_id from v_voicemail_greetings ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_greeting_uuid = '".$voicemail_greeting_uuid."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
||||
if (count($result) > 0) {
|
||||
foreach($result as &$row) {
|
||||
$greeting_filename = $row['greeting_filename'];
|
||||
$greeting_id = $row['greeting_id'];
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64' && $row['greeting_base64'] != '') {
|
||||
$greeting_decoded = base64_decode($row['greeting_base64']);
|
||||
file_put_contents($v_greeting_dir.'/'.$greeting_filename, $greeting_decoded);
|
||||
}
|
||||
break;
|
||||
$sql = "select greeting_filename, greeting_base64, greeting_id ";
|
||||
$sql .= "from v_voicemail_greetings ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_greeting_uuid = :voicemail_greeting_uuid ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$database = new database;
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
if (is_array($row) && @sizeof($row) != 0) {
|
||||
$greeting_filename = $row['greeting_filename'];
|
||||
$greeting_id = $row['greeting_id'];
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64' && $row['greeting_base64'] != '') {
|
||||
$greeting_decoded = base64_decode($row['greeting_base64']);
|
||||
file_put_contents($v_greeting_dir.'/'.$greeting_filename, $greeting_decoded);
|
||||
}
|
||||
}
|
||||
unset ($sql, $prep_statement, $result, $greeting_decoded);
|
||||
|
||||
unset($sql, $row, $greeting_decoded);
|
||||
if (file_exists($v_greeting_dir.'/'.$greeting_filename)) {
|
||||
$fd = fopen($v_greeting_dir.'/'.$greeting_filename, "rb");
|
||||
if ($_GET['t'] == "bin") {
|
||||
@@ -129,7 +125,7 @@
|
||||
header('Content-Disposition: attachment; filename="'.$greeting_filename.'"');
|
||||
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
|
||||
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
|
||||
header("Content-Length: " . filesize($v_greeting_dir.'/'.$greeting_filename));
|
||||
header("Content-Length: ".filesize($v_greeting_dir.'/'.$greeting_filename));
|
||||
ob_clean();
|
||||
fpassthru($fd);
|
||||
}
|
||||
@@ -151,50 +147,58 @@
|
||||
//get the file extension
|
||||
$file_ext = substr($_FILES['file']['name'], -4);
|
||||
|
||||
//find the next available
|
||||
for ($i = 1; $i < 10; $i++) {
|
||||
|
||||
//exit the loop if the file extension is invalid
|
||||
if ($file_ext != '.wav' && $file_ext != '.mp3') {
|
||||
break;
|
||||
}
|
||||
//check file extension
|
||||
if ($file_ext == '.wav' || $file_ext != '.mp3') {
|
||||
|
||||
//set the file name
|
||||
$file_name = 'greeting_'.$i.$file_ext;
|
||||
//find the next available
|
||||
for ($i = 1; $i < 10; $i++) {
|
||||
|
||||
//check the database
|
||||
if (is_uuid($domain_uuid) && is_numeric($voicemail_id) ) {
|
||||
$sql = "select voicemail_greeting_uuid from v_voicemail_greetings ";
|
||||
$sql .= "where domain_uuid = '".check_str($domain_uuid)."' ";
|
||||
$sql .= "and voicemail_id = '".($voicemail_id)."' ";
|
||||
$sql .= "and greeting_filename = '".check_str($file_name)."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
if (count($result) == 0 && !file_exists($v_greeting_dir.'/'.$file_name)) {
|
||||
//move the uploaded greeting
|
||||
event_socket_mkdir($v_greeting_dir);
|
||||
if ($file_ext == '.wav' || $file_ext == '.mp3') {
|
||||
move_uploaded_file($_FILES['file']['tmp_name'], $v_greeting_dir.'/'.$file_name);
|
||||
}
|
||||
//set newly uploaded greeting as active greeting for voicemail box
|
||||
$sql = "update v_voicemails ";
|
||||
$sql .= "set greeting_id = '".$i."' ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_id = '".$voicemail_id."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
unset($prep_statement);
|
||||
//set the file name
|
||||
$file_name = 'greeting_'.$i.$file_ext;
|
||||
|
||||
message::add($text['message-uploaded'].": ".$_FILES['file']['name']);
|
||||
break;
|
||||
//check the database
|
||||
if (is_uuid($domain_uuid) && is_numeric($voicemail_id) ) {
|
||||
$sql = "select count(*) from v_voicemail_greetings ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_id = :voicemail_id ";
|
||||
$sql .= "and greeting_filename = :greeting_filename ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_id'] = $voicemail_id;
|
||||
$parameters['greeting_filename'] = $file_name;
|
||||
$database = new database;
|
||||
$num_rows = $database->select($sql, $parameters, 'column');
|
||||
unset($sql, $parameters);
|
||||
|
||||
if ($num_rows == 0 && !file_exists($v_greeting_dir.'/'.$file_name)) {
|
||||
//move the uploaded greeting
|
||||
event_socket_mkdir($v_greeting_dir);
|
||||
if ($file_ext == '.wav' || $file_ext == '.mp3') {
|
||||
move_uploaded_file($_FILES['file']['tmp_name'], $v_greeting_dir.'/'.$file_name);
|
||||
}
|
||||
//set newly uploaded greeting as active greeting for voicemail box
|
||||
$sql = "update v_voicemails ";
|
||||
$sql .= "set greeting_id = :greeting_id ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_id = :voicemail_id ";
|
||||
$parameters['greeting_id'] = $i;
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_id'] = $voicemail_id;
|
||||
$database = new database;
|
||||
$database->execute($sql, $parameters);
|
||||
unset($sql, $parameters);
|
||||
//set message
|
||||
message::add($text['message-uploaded'].": ".$_FILES['file']['name']);
|
||||
//found available id, exit;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
unset($num_rows);
|
||||
}
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
unset ($prep_statement);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//set the file name to be inserted as the greeting description
|
||||
$greeting_description = base64_encode($_FILES['file']['name']);
|
||||
@@ -215,103 +219,111 @@
|
||||
//set the greeting
|
||||
if ($_REQUEST['action'] == "set") {
|
||||
//save the greeting_id to a variable
|
||||
$greeting_id = check_str($_REQUEST['greeting_id']);
|
||||
$greeting_id = $_REQUEST['greeting_id'];
|
||||
|
||||
//set the greeting_id
|
||||
$sql = "update v_voicemails ";
|
||||
$sql .= "set greeting_id = '".$greeting_id."' ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_id = '".$voicemail_id."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
unset($prep_statement);
|
||||
|
||||
message::add($text['message-greeting_selected']);
|
||||
header("Location: voicemail_greetings.php?id=".$voicemail_id."&order_by=".$order_by."&order=".$order);
|
||||
exit;
|
||||
$sql .= "set greeting_id = :greeting_id ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_id = :voicemail_id ";
|
||||
$parameters['greeting_id'] = $greeting_id;
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_id'] = $voicemail_id;
|
||||
$database = new database;
|
||||
$database->execute($sql, $parameters);
|
||||
unset($sql, $parameters);
|
||||
//set message
|
||||
message::add($text['message-greeting_selected']);
|
||||
//redirect
|
||||
header("Location: voicemail_greetings.php?id=".$voicemail_id."&order_by=".$order_by."&order=".$order);
|
||||
exit;
|
||||
}
|
||||
|
||||
//get existing greetings
|
||||
$sql = "select voicemail_greeting_uuid, greeting_filename, greeting_base64 from v_voicemail_greetings ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' and voicemail_id = '".$voicemail_id."' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$array_greetings[$row['voicemail_greeting_uuid']] = $row['greeting_filename'];
|
||||
$array_base64_exists[$row['voicemail_greeting_uuid']] = ($row['greeting_base64'] != '') ? true : false;
|
||||
//if not base64, convert back to local files and remove base64 from db
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] != 'base64' && $row['greeting_base64'] != '') {
|
||||
if (file_exists($v_greeting_dir.'/'.$row['greeting_filename'])) {
|
||||
@unlink($v_greeting_dir.'/'.$row['greeting_filename']);
|
||||
$sql = "select voicemail_greeting_uuid, greeting_filename, greeting_base64 ";
|
||||
$sql .= "from v_voicemail_greetings ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_id = :voicemail_id ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_id'] = $voicemail_id;
|
||||
$database = new database;
|
||||
$result = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
if (is_array($result) && @sizeof($result) != 0) {
|
||||
foreach ($result as $x => &$row) {
|
||||
$array_greetings[$row['voicemail_greeting_uuid']] = $row['greeting_filename'];
|
||||
$array_base64_exists[$row['voicemail_greeting_uuid']] = ($row['greeting_base64'] != '') ? true : false;
|
||||
//if not base64, convert back to local files and remove base64 from db
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] != 'base64' && $row['greeting_base64'] != '') {
|
||||
if (file_exists($v_greeting_dir.'/'.$row['greeting_filename'])) {
|
||||
@unlink($v_greeting_dir.'/'.$row['greeting_filename']);
|
||||
}
|
||||
$greeting_decoded = base64_decode($row['greeting_base64']);
|
||||
file_put_contents($v_greeting_dir.'/'.$row['greeting_filename'], $greeting_decoded);
|
||||
//build array
|
||||
$array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $row['voicemail_greeting_uuid'];
|
||||
$array['voicemail_greetings'][$x]['greeting_base64'] = null;
|
||||
}
|
||||
$greeting_decoded = base64_decode($row['greeting_base64']);
|
||||
file_put_contents($v_greeting_dir.'/'.$row['greeting_filename'], $greeting_decoded);
|
||||
$sql = "update v_voicemail_greetings ";
|
||||
$sql .= "set greeting_base64 = null ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_greeting_uuid = '".$row['voicemail_greeting_uuid']."' ";
|
||||
$db->exec(check_sql($sql));
|
||||
unset($sql);
|
||||
}
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p->add('voicemail_greeting_edit', 'temp');
|
||||
//execute update
|
||||
$database = new database;
|
||||
$database->app_name = 'voicemail_greetings';
|
||||
$database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
|
||||
$database->save($array);
|
||||
unset($array);
|
||||
//revoke temporary permissions
|
||||
$p->delete('voicemail_greeting_edit', 'temp');
|
||||
}
|
||||
}
|
||||
unset ($prep_statement);
|
||||
unset($result, $row);
|
||||
|
||||
//add greetings to the database
|
||||
if (is_dir($v_greeting_dir.'/')) {
|
||||
if ($dh = opendir($v_greeting_dir.'/')) {
|
||||
$x = 0;
|
||||
//prepare for temporary permissions
|
||||
$p = new permissions;
|
||||
while (($file = readdir($dh)) !== false) {
|
||||
if (filetype($v_greeting_dir."/".$file) == "file" && substr($file, 0, 8) == "greeting" && substr($file, 10, 4) != ".tmp") {
|
||||
$greeting_number = preg_replace('{\D}', '', $file);
|
||||
if (!in_array($file, $array_greetings)) {
|
||||
//file not found, add to database
|
||||
$greeting_name = $text['label-greeting'].' '.$greeting_number;
|
||||
$greeting_description = base64_decode($_GET['gd']);
|
||||
$voicemail_greeting_uuid = uuid();
|
||||
$sql = "insert into v_voicemail_greetings ";
|
||||
$sql .= "( ";
|
||||
$sql .= "voicemail_greeting_uuid, ";
|
||||
$sql .= "domain_uuid, ";
|
||||
$sql .= "voicemail_id, ";
|
||||
$sql .= "greeting_name, ";
|
||||
$sql .= "greeting_filename, ";
|
||||
$sql .= "greeting_description, ";
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
|
||||
$sql .= "greeting_base64, ";
|
||||
}
|
||||
$sql .= "greeting_id ";
|
||||
$sql .= ") ";
|
||||
$sql .= "values ";
|
||||
$sql .= "(";
|
||||
$sql .= "'".$voicemail_greeting_uuid."', ";
|
||||
$sql .= "'".$domain_uuid."', ";
|
||||
$sql .= "'".$voicemail_id."', ";
|
||||
$sql .= "'".$greeting_name."', ";
|
||||
$sql .= "'".$file."', ";
|
||||
$sql .= "'".$greeting_description."', ";
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
|
||||
$greeting_base64 = base64_encode(file_get_contents($v_greeting_dir.'/'.$file));
|
||||
$sql .= "'".$greeting_base64."', ";
|
||||
}
|
||||
$sql .= $greeting_number." ";
|
||||
$sql .= ")";
|
||||
$db->exec(check_sql($sql));
|
||||
unset($sql);
|
||||
$greeting_name = $text['label-greeting'].' '.$greeting_number;
|
||||
$greeting_description = base64_decode($_GET['gd']);
|
||||
$voicemail_greeting_uuid = uuid();
|
||||
//build insert array
|
||||
$array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $voicemail_greeting_uuid;
|
||||
$array['voicemail_greetings'][$x]['domain_uuid'] = $domain_uuid;
|
||||
$array['voicemail_greetings'][$x]['voicemail_id'] = $voicemail_id;
|
||||
$array['voicemail_greetings'][$x]['greeting_name'] = $greeting_name;
|
||||
$array['voicemail_greetings'][$x]['greeting_filename'] = $file;
|
||||
$array['voicemail_greetings'][$x]['greeting_description'] = $greeting_description;
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
|
||||
$array['voicemail_greetings'][$x]['greeting_base64'] = base64_encode(file_get_contents($v_greeting_dir.'/'.$file));
|
||||
}
|
||||
$array['voicemail_greetings'][$x]['greeting_id'] = $greeting_number;
|
||||
$x++;
|
||||
//grant temporary permissions
|
||||
$p->add('voicemail_greeting_add', 'temp');
|
||||
}
|
||||
else {
|
||||
//file found, check if base64 present
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
|
||||
$found_greeting_uuid = array_search($file, $array_greetings);
|
||||
if (!$array_base64_exists[$found_greeting_uuid]) {
|
||||
$greeting_base64 = base64_encode(file_get_contents($v_greeting_dir.'/'.$file));
|
||||
$sql = "update v_voicemail_greetings set ";
|
||||
$sql .= "greeting_base64 = '".$greeting_base64."' ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_greeting_uuid = '".$found_greeting_uuid."' ";
|
||||
$db->exec(check_sql($sql));
|
||||
unset($sql);
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') {
|
||||
$found_greeting_uuid = array_search($file, $array_greetings);
|
||||
if (!$array_base64_exists[$found_greeting_uuid]) {
|
||||
//build update array
|
||||
$array['voicemail_greetings'][$x]['voicemail_greeting_uuid'] = $found_greeting_uuid;
|
||||
$array['voicemail_greetings'][$x]['greeting_base64'] = base64_encode(file_get_contents($v_greeting_dir.'/'.$file));
|
||||
$x++;
|
||||
//grant temporary permissions
|
||||
$p->add('voicemail_greeting_edit', 'temp');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if base64, remove local file (unless currently selected greeting)
|
||||
@@ -321,21 +333,33 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
} //while
|
||||
}
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//execute inserts/updates
|
||||
$database = new database;
|
||||
$database->app_name = 'voicemail_greetings';
|
||||
$database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
|
||||
$database->save($array);
|
||||
unset($array);
|
||||
//revoke temporary permissions
|
||||
$p->delete('voicemail_greeting_add', 'temp');
|
||||
$p->delete('voicemail_greeting_edit', 'temp');
|
||||
}
|
||||
|
||||
closedir($dh);
|
||||
} //if
|
||||
} //if
|
||||
}
|
||||
}
|
||||
|
||||
//get the greetings list
|
||||
$sql = "select * from v_voicemail_greetings ";
|
||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
||||
$sql .= "and voicemail_id = '".$voicemail_id."' ";
|
||||
$sql .= "order by ".$order_by." ".$order." ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$greetings = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
$greeting_count = count($result);
|
||||
unset ($prep_statement, $sql);
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and voicemail_id = :voicemail_id ";
|
||||
$sql .= order_by($order_by, $order);
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['voicemail_id'] = $voicemail_id;
|
||||
$database = new database;
|
||||
$greetings = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//set the row styles
|
||||
$c = 0;
|
||||
@@ -405,7 +429,7 @@
|
||||
if ($_SESSION['voicemail']['storage_type']['text'] == 'base64') { $colspan = $colspan - 2; }
|
||||
if (!(permission_exists('voicemail_greeting_edit') || permission_exists('voicemail_greeting_delete'))) { $colspan = $colspan - 1; }
|
||||
|
||||
if (is_array($greetings)) {
|
||||
if (is_array($greetings) && @sizeof($greetings) != 0) {
|
||||
foreach($greetings as $row) {
|
||||
//playback progress bar
|
||||
if (permission_exists('voicemail_greeting_play')) {
|
||||
@@ -456,13 +480,13 @@
|
||||
echo "</tr>\n";
|
||||
|
||||
$c = ($c) ? 0 : 1;
|
||||
} //end foreach
|
||||
unset($sql, $result, $row_count);
|
||||
} //end if results
|
||||
}
|
||||
}
|
||||
unset($result, $row);
|
||||
echo "</table>\n";
|
||||
echo "<br /><br /><br />\n";
|
||||
|
||||
//include the footer
|
||||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
?>
|
||||
Reference in New Issue
Block a user