Fix uploaded greetings to use next id for wav,mp3,ogg (#7464)

* Fix uploaded greetings to use the next ID for wav,mp3,ogg

* Update voicemail_greetings.php
This commit is contained in:
frytimo
2025-08-20 18:13:43 -03:00
committed by GitHub
parent f26aee738d
commit 44e41f52d4
2 changed files with 17 additions and 30 deletions

View File

@@ -104,6 +104,9 @@
if (file_exists(voicemail_dir.."/"..voicemail_id.."/greeting_"..greeting_id..".mp3")) then
greeting_ext = "mp3";
end
if (file_exists(voicemail_dir.."/"..voicemail_id.."/greeting_"..greeting_id..".ogg")) then
greeting_ext = "ogg";
end
dtmf_digits = session:playAndGetDigits(0, max_digits, tries, timeout, "#", voicemail_dir.."/"..voicemail_id.."/greeting_"..greeting_id.."."..greeting_ext, "",".*", max_timeout);
--session:execute("playback",voicemail_dir.."/"..voicemail_id.."/greeting_"..greeting_id..".wav");
end

View File

@@ -41,8 +41,7 @@
$language = new text;
$text = $language->get();
//add the settings object
$settings = new settings(["domain_uuid" => $_SESSION['domain_uuid'], "user_uuid" => $_SESSION['user_uuid']]);
//check for speech app
$speech_enabled = $settings->get('speech', 'enabled');
//set the defaults
@@ -76,9 +75,9 @@
$sql = "select greeting_id from v_voicemails ";
$sql .= "where domain_uuid = :domain_uuid ";
$sql .= "and voicemail_id = :voicemail_id ";
$parameters = [];
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['voicemail_id'] = $voicemail_id;
$database = new database;
$selected_greeting_id = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
@@ -96,9 +95,9 @@
$sql .= "from v_voicemail_greetings ";
$sql .= "where domain_uuid = :domain_uuid ";
$sql .= "and voicemail_greeting_uuid = :voicemail_greeting_uuid ";
$parameters = [];
$parameters['domain_uuid'] = $_SESSION['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'];
@@ -165,44 +164,33 @@
}
//get the file extension
$file_ext = $file_ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$file_ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$file_name = $_FILES['file']['name'];
//check file extension
if ($file_ext == 'wav' || $file_ext == 'mp3') {
if ($file_ext == 'wav' || $file_ext == 'mp3' || $file_ext == 'ogg') {
//find the next available
for ($i = 1; $i < 10; $i++) {
//set the file name
$file_name = 'greeting_'.$i.'.'.$file_ext;
//get the next greeting id starting at 1
$greeting_id = count(glob($greeting_dir . '/greeting_*.*')) + 1;
//set the greeting id
if (!file_exists($greeting_dir.'/'.$file_name)) {
//set the greeting id
$greeting_id = $i;
//end the loop
break;
}
}
//set the greeting file name
$greeting_file_name = "greeting_{$greeting_id}.{$file_ext}";
//move the uploaded greeting
if (!empty($greeting_dir) && !file_exists($greeting_dir)) {
mkdir($greeting_dir, 0770, false);
}
if ($file_ext == 'wav' || $file_ext == 'mp3') {
move_uploaded_file($_FILES['file']['tmp_name'], $greeting_dir.'/'.$file_name);
}
move_uploaded_file($_FILES['file']['tmp_name'], $greeting_dir.'/'.$greeting_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 = [];
$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);
@@ -213,7 +201,7 @@
$array['voicemail_greetings'][$x]['voicemail_id'] = $voicemail_id;
$array['voicemail_greetings'][$x]['greeting_id'] = $greeting_id;
$array['voicemail_greetings'][$x]['greeting_name'] = $text['label-greeting'].' '.$greeting_id;
$array['voicemail_greetings'][$x]['greeting_filename'] = $file_name;
$array['voicemail_greetings'][$x]['greeting_filename'] = $greeting_file_name;
$array['voicemail_greetings'][$x]['greeting_description'] = '';
if (!empty($_SESSION['voicemail']['storage_type']['text']) && $_SESSION['voicemail']['storage_type']['text'] == 'base64') {
$array['voicemail_greetings'][$x]['greeting_base64'] = base64_encode(file_get_contents($greeting_dir.'/'.$file_name));
@@ -228,7 +216,6 @@
$p->add('voicemail_greeting_edit', 'temp');
//execute inserts/updates
$database = new database;
$database->app_name = 'voicemail_greetings';
$database->app_uuid = 'e4b4fbee-9e4d-8e46-3810-91ba663db0c2';
$database->save($array);
@@ -272,10 +259,10 @@
$sql .= "set greeting_id = :greeting_id ";
$sql .= "where domain_uuid = :domain_uuid ";
$sql .= "and voicemail_id = :voicemail_id ";
$parameters = [];
$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);
@@ -321,9 +308,9 @@
$sql .= "where domain_uuid = :domain_uuid ";
$sql .= "and voicemail_id = :voicemail_id ";
$sql .= order_by($order_by, $order);
$parameters = [];
$parameters['domain_uuid'] = $domain_uuid;
$parameters['voicemail_id'] = $voicemail_id;
$database = new database;
$greetings = $database->select($sql, $parameters, 'all');
$num_rows = is_array($greetings) ? @sizeof($greetings) : 0;
unset($sql, $parameters);
@@ -607,6 +594,3 @@
fclose($fp);
}
?>