Voicemail: Default/Domain Settings to control CID Number and Date & Time playback/order.

This commit is contained in:
fusionate 2023-01-27 22:17:51 +00:00
parent c4b8c7add1
commit 107b8a48f2
No known key found for this signature in database
8 changed files with 120 additions and 18 deletions

View File

@ -99,7 +99,7 @@
if (effective_caller_id_name ~= nil) then
caller_id_name = effective_caller_id_name;
end
--set default values
if (string.sub(caller_id_number, 1, 1) == "/") then
caller_id_number = string.sub(caller_id_number, 2, -1);
@ -113,12 +113,6 @@
if (not vm_message_ext) then
vm_message_ext = 'wav';
end
if (not vm_say_caller_id_number) then
vm_say_caller_id_number = "true";
end
if (not vm_say_date_time) then
vm_say_date_time = "true";
end
--set the sounds path for the language, dialect and voice
default_language = session:getVariable("default_language");
@ -188,6 +182,26 @@
end
end
if (not vm_say_caller_id_number) then
if (settings['voicemail']['message_caller_id_number'] ~= nil) then
if (settings['voicemail']['message_caller_id_number']['text'] ~= nil) then
vm_say_caller_id_number = settings['voicemail']['message_caller_id_number']['text'];
end
end
else
vm_say_caller_id_number = "before";
end
if (not vm_say_date_time) then
if (settings['voicemail']['message_date_time'] ~= nil) then
if (settings['voicemail']['message_date_time']['text'] ~= nil) then
vm_say_date_time = settings['voicemail']['message_date_time']['text'];
end
end
else
vm_say_date_time = "before";
end
remote_access = '';
if (settings['voicemail']['remote_access'] ~= nil) then
if (settings['voicemail']['remote_access']['boolean'] ~= nil) then
@ -400,7 +414,7 @@
--send to the main menu
timeouts = 0;
if (voicemail_tutorial == "true") then
if (voicemail_tutorial == "true") then
tutorial("intro");
else
main_menu();
@ -479,7 +493,7 @@
--freeswitch.consoleLog("notice", "[voicemail][destinations] SQL:" .. sql .. "; params:" .. json.encode(params) .. "\n");
destinations = {};
x = 1;
dbh:query(sql, params, function(row)
destinations[x] = row;
x = x + 1;
@ -487,12 +501,12 @@
table.insert(destinations, {domain_uuid=domain_uuid,voicemail_destination_uuid=voicemail_uuid,voicemail_uuid=voicemail_uuid,voicemail_uuid_copy=voicemail_uuid});
--show the storage type
freeswitch.consoleLog("notice", "[voicemail] ".. storage_type .. "\n");
count = 0
for k,v in pairs(destinations) do
count = count + 1
end
--loop through the voicemail destinations
y = 1;
for key,row in pairs(destinations) do

View File

@ -56,7 +56,8 @@
session:ready() and
caller_id_number ~= nil and (
vm_say_caller_id_number == nil or
vm_say_caller_id_number == "true"
vm_say_caller_id_number == "true" or
vm_say_caller_id_number == "before"
)) then
session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/voicemail/vm-from.wav");
session:say(caller_id_number, default_language, "name_spelled", "iterated");
@ -67,7 +68,8 @@
session:ready() and
string.len(dtmf_digits) == 0 and (
vm_say_date_time == nil or
vm_say_date_time == "true"
vm_say_date_time == "true" or
vm_say_date_time == "before"
)) then
if (current_time_zone ~= nil) then
session:execute("set", "timezone="..current_time_zone.."");
@ -117,7 +119,7 @@
if (mime_type == 'audio/mpeg') then
vm_message_ext = 'mp3';
end
--rename the file
os.execute('mv '..message_location..' '..message_location..'.'..vm_message_ext);
end);
@ -197,8 +199,10 @@
session:ready() and
caller_id_number ~= nil and
vm_say_caller_id_number ~= nil and
vm_say_caller_id_number == "last"
) then
(
vm_say_caller_id_number == "last" or
vm_say_caller_id_number == "after"
)) then
session:streamFile(sounds_dir.."/"..default_language.."/"..default_dialect.."/"..default_voice.."/voicemail/vm-from.wav");
session:say(caller_id_number, default_language, "name_spelled", "iterated");
end
@ -208,8 +212,10 @@
session:ready() and
string.len(dtmf_digits) == 0 and
vm_say_date_time ~= nil and
vm_say_date_time == "last"
) then
(
vm_say_date_time == "last" or
vm_say_date_time == "after"
)) then
if (current_time_zone ~= nil) then
session:execute("set", "timezone="..current_time_zone.."");
end

View File

@ -173,6 +173,22 @@
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Define which storage type (base_64 stores in the database).";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "14df4ba8-122d-4d2e-8a2e-6fda33c13f74";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "voicemail";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "message_caller_id_number";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "before";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Controls automatic playback of the Caller ID Number: Before (default) or After message playback, or False (disabled).";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "17b33693-f684-4003-9488-52e55e31a476";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "voicemail";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "message_date_time";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "before";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Controls automatic playback of the Date & Time: Before (default) or After message playback, or False (disabled).";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "690a36a8-b6d3-47ea-8780-1af609c1966c";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "voicemail";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "message_max_length";

View File

@ -699,6 +699,13 @@
echo " <option value='false' ".(($default_setting_value == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
}
elseif ($category == "voicemail" && ($subcategory == "message_caller_id_number" || $subcategory == "message_date_time") && $name == "text" ) {
echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
echo " <option value='before'>".$text['label-before']."</option>\n";
echo " <option value='after' ".(($default_setting_value == "after") ? "selected='selected'" : null).">".$text['label-after']."</option>\n";
echo " <option value='false' ".(($default_setting_value == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
}
elseif ($category == "recordings" && $subcategory == "storage_type" && $name == "text" ) {
echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
echo " <option value='file'>".$text['label-file']."</option>\n";

View File

@ -500,6 +500,9 @@
else if ($category == 'destinations' && $subcategory == 'select_mode' && $name == 'text') {
echo " ".$text['label-'.$row['default_setting_value']]."\n";
}
else if ($category == 'voicemail' && ($subcategory == 'message_caller_id_number' || $subcategory == 'message_date_time') && $name == 'text') {
echo " ".$text['label-'.$row['default_setting_value']]."\n";
}
else if ($row['default_setting_value'] == 'true' || $row['default_setting_value'] == 'false') {
echo " ".$text['label-'.$row['default_setting_value']]."\n";
}

View File

@ -738,6 +738,13 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
echo " <option value='false' ".(($row['domain_setting_value'] == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
}
elseif ($category == "voicemail" && ($subcategory == "message_caller_id_number" || $subcategory == "message_date_time") && $name == "text" ) {
echo " <select class='formfld' id='domain_setting_value' name='domain_setting_value'>\n";
echo " <option value='before'>".$text['label-before']."</option>\n";
echo " <option value='after' ".(($row['domain_setting_value'] == "after") ? "selected='selected'" : null).">".$text['label-after']."</option>\n";
echo " <option value='false' ".(($row['domain_setting_value'] == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
echo " </select>\n";
}
elseif ($category == "recordings" && $subcategory == "storage_type" && $name == "text" ) {
echo " <select class='formfld' id='domain_setting_value' name='domain_setting_value'>\n";
echo " <option value='file'>".$text['label-file']."</option>\n";

View File

@ -355,6 +355,9 @@
else if ($category == 'destinations' && $subcategory == 'select_mode' && $name == 'text') {
echo " ".$text['label-'.$row['domain_setting_value']]."\n";
}
else if ($category == 'voicemail' && ($subcategory == 'message_caller_id_number' || $subcategory == 'message_date_time') && $name == 'text') {
echo " ".$text['label-'.$row['domain_setting_value']]."\n";
}
else if ($row['domain_setting_value'] == 'true' || $row['domain_setting_value'] == 'false') {
echo " ".$text['label-'.$row['domain_setting_value']]."\n";
}

View File

@ -2823,6 +2823,52 @@ $text['label-false']['sv-se'] = "Falsk";
$text['label-false']['uk-ua'] = "помилковий";
$text['label-false']['tr-tr'] = "Yanlış";
$text['label-before']['en-us'] = "Before";
$text['label-before']['en-gb'] = "Before";
$text['label-before']['ar-eg'] = "قبل";
$text['label-before']['de-at'] = "Vor"; //copied from de-de
$text['label-before']['de-ch'] = "Vor"; //copied from de-de
$text['label-before']['de-de'] = "Vor";
$text['label-before']['el-gr'] = "Πριν";
$text['label-before']['es-cl'] = "Antes";
$text['label-before']['es-mx'] = "Antes"; //copied from es-cl
$text['label-before']['fr-ca'] = "Avant"; //copied from fr-fr
$text['label-before']['fr-fr'] = "Avant";
$text['label-before']['he-il'] = "לפני";
$text['label-before']['it-it'] = "Prima di";
$text['label-before']['nl-nl'] = "Voordat";
$text['label-before']['pl-pl'] = "Przed";
$text['label-before']['pt-br'] = "Antes de";
$text['label-before']['pt-pt'] = "Antes de";
$text['label-before']['ro-ro'] = "Inainte de";
$text['label-before']['ru-ru'] = "До";
$text['label-before']['sv-se'] = "Innan";
$text['label-before']['uk-ua'] = "До";
$text['label-before']['tr-tr'] = "Önceki";
$text['label-after']['en-us'] = "After";
$text['label-after']['en-gb'] = "After";
$text['label-after']['ar-eg'] = "بعد، بعدما";
$text['label-after']['de-at'] = "Nach"; //copied from de-de
$text['label-after']['de-ch'] = "Nach"; //copied from de-de
$text['label-after']['de-de'] = "Nach";
$text['label-after']['el-gr'] = "Μετά";
$text['label-after']['es-cl'] = "Después";
$text['label-after']['es-mx'] = "Después"; //copied from es-cl
$text['label-after']['fr-ca'] = "Après"; //copied from fr-fr
$text['label-after']['fr-fr'] = "Après";
$text['label-after']['he-il'] = "לאחר";
$text['label-after']['it-it'] = "A seguito di";
$text['label-after']['nl-nl'] = "Na";
$text['label-after']['pl-pl'] = "Po";
$text['label-after']['pt-br'] = "Depois de";
$text['label-after']['pt-pt'] = "Depois de";
$text['label-after']['ro-ro'] = "După";
$text['label-after']['ru-ru'] = "После";
$text['label-after']['sv-se'] = "Efter";
$text['label-after']['uk-ua'] = "Після";
$text['label-after']['tr-tr'] = "Sonrasında";
$text['label-enable']['en-us'] = "Enable";
$text['label-enable']['en-gb'] = "Enable";
$text['label-enable']['ar-eg'] = "";