From 44e41f52d46bbef2f0d2f79601680e213e369713 Mon Sep 17 00:00:00 2001 From: frytimo Date: Wed, 20 Aug 2025 18:13:43 -0300 Subject: [PATCH] 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 --- .../resources/functions/play_greeting.lua | 3 ++ .../voicemail_greetings.php | 44 ++++++------------- 2 files changed, 17 insertions(+), 30 deletions(-) diff --git a/app/switch/resources/scripts/app/voicemail/resources/functions/play_greeting.lua b/app/switch/resources/scripts/app/voicemail/resources/functions/play_greeting.lua index d70ab4cce2..fafb08de3f 100644 --- a/app/switch/resources/scripts/app/voicemail/resources/functions/play_greeting.lua +++ b/app/switch/resources/scripts/app/voicemail/resources/functions/play_greeting.lua @@ -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 diff --git a/app/voicemail_greetings/voicemail_greetings.php b/app/voicemail_greetings/voicemail_greetings.php index 847fc54f2a..6c88ef901f 100644 --- a/app/voicemail_greetings/voicemail_greetings.php +++ b/app/voicemail_greetings/voicemail_greetings.php @@ -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); } - -?> -