diff --git a/includes/install/scripts/voicemail.lua b/includes/install/scripts/voicemail.lua
index 902d342c74..6d6d639f80 100644
--- a/includes/install/scripts/voicemail.lua
+++ b/includes/install/scripts/voicemail.lua
@@ -89,7 +89,9 @@
--set the voicemail_dir
voicemail_dir = base_dir.."/storage/voicemail/default/"..domain_name;
- --freeswitch.consoleLog("notice", "[voicemail] voicemail_dir: " .. voicemail_dir .. "\n");
+ if (debug["info"]) then
+ freeswitch.consoleLog("notice", "[voicemail] voicemail_dir: " .. voicemail_dir .. "\n");
+ end
--check if a file exists
function file_exists(name)
@@ -129,7 +131,9 @@
--do nothing
else
voicemail_id = get_voicemail_id();
- --freeswitch.consoleLog("notice", "[voicemail] voicemail id: " .. voicemail_id .. "\n");
+ if (debug["info"]) then
+ freeswitch.consoleLog("notice", "[voicemail] voicemail id: " .. voicemail_id .. "\n");
+ end
end
--get the voicemail settings from the database
@@ -578,7 +582,9 @@
--start epoch
start_epoch = os.time();
- freeswitch.consoleLog("notice", "[voicemail] start epoch: " .. start_epoch .. "\n");
+ if (debug["info"]) then
+ freeswitch.consoleLog("notice", "[voicemail] start epoch: " .. start_epoch .. "\n");
+ end
--save the recording
-- syntax is session:recordFile(file_name, max_len_secs, silence_threshold, silence_secs)
@@ -591,15 +597,21 @@
--stop epoch
stop_epoch = os.time();
- freeswitch.consoleLog("notice", "[voicemail] start epoch: " .. stop_epoch .. "\n");
+ if (debug["info"]) then
+ freeswitch.consoleLog("notice", "[voicemail] start epoch: " .. stop_epoch .. "\n");
+ end
--calculate the message length
message_length = stop_epoch - start_epoch;
message_length_formatted = format_seconds(message_length);
- freeswitch.consoleLog("notice", "[voicemail] message length: " .. message_length .. "\n");
+ if (debug["info"]) then
+ freeswitch.consoleLog("notice", "[voicemail] message length: " .. message_length .. "\n");
+ end
--if the recording is below the minmal length then re-record the message
- if (message_length < 4) then
+ if (message_length > 2) then
+ --continue
+ else
if (session:ready()) then
--your recording is below the minimal acceptable length, please try again
macro(session, "too_small", 100);
@@ -659,52 +671,52 @@
--define a function to send email
function send_email(uuid)
- if (session:ready()) then
- --get voicemail message details
- sql = [[SELECT * FROM v_voicemail_messages
- WHERE domain_uuid = ']] .. domain_uuid ..[['
- AND voicemail_message_uuid = ']] .. uuid ..[[']]
- if (debug["sql"]) then
- freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n");
- end
- status = dbh:query(sql, function(row)
- --get the values from the database
- --uuid = row["voicemail_message_uuid"];
- --created_epoch = row["created_epoch"];
- caller_id_name = row["caller_id_name"];
- caller_id_number = row["caller_id_number"];
- message_length = row["message_length"];
- --message_status = row["message_status"];
- --message_priority = row["message_priority"];
- end);
+ --get voicemail message details
+ sql = [[SELECT * FROM v_voicemail_messages
+ WHERE domain_uuid = ']] .. domain_uuid ..[['
+ AND voicemail_message_uuid = ']] .. uuid ..[[']]
+ if (debug["sql"]) then
+ freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n");
+ end
+ status = dbh:query(sql, function(row)
+ --get the values from the database
+ --uuid = row["voicemail_message_uuid"];
+ --created_epoch = row["created_epoch"];
+ caller_id_name = row["caller_id_name"];
+ caller_id_number = row["caller_id_number"];
+ message_length = row["message_length"];
+ --message_status = row["message_status"];
+ --message_priority = row["message_priority"];
+ end);
- --calculate the message length
- message_length_formatted = format_seconds(message_length);
+ --calculate the message length
+ message_length_formatted = format_seconds(message_length);
+ if (debug["info"]) then
freeswitch.consoleLog("notice", "[voicemail] message length: " .. message_length .. "\n");
+ end
- --send the email
- message = [[
- Message From "]]..caller_id_name..[[" ]]..caller_id_number..[[
-
- Created: ]]..os.date("%A, %d %b %Y %I:%M %p", start_epoch)..[[
- Duration: ]]..message_length_formatted..[[
- Account: ]]..voicemail_id..[[@]]..domain_name..[[
- ]];
- if (voicemail_attach_file == "true") then
- freeswitch.email("",
+ --send the email
+ message = [[
+ Message From "]]..caller_id_name..[[" ]]..caller_id_number..[[
+
+ Created: ]]..os.date("%A, %d %b %Y %I:%M %p", start_epoch)..[[
+ Duration: ]]..message_length_formatted..[[
+ Account: ]]..voicemail_id..[[@]]..domain_name..[[
+ ]];
+ if (voicemail_attach_file == "true") then
+ freeswitch.email("",
+ "",
+ "To: "..voicemail_mail_to.."\nFrom: "..voicemail_mail_to.."\nSubject: Voicemail from "..caller_id_name.." <"..caller_id_number.."> "..message_length_formatted,
+ message,
+ voicemail_dir.."/"..voicemail_id.."/msg_"..uuid..".wav"
+ );
+ else
+ freeswitch.email("",
"",
"To: "..voicemail_mail_to.."\nFrom: "..voicemail_mail_to.."\nSubject: Voicemail from "..caller_id_name.." <"..caller_id_number.."> "..message_length_formatted,
- message,
- voicemail_dir.."/"..voicemail_id.."/msg_"..uuid..".wav"
- );
- else
- freeswitch.email("",
- "",
- "To: "..voicemail_mail_to.."\nFrom: "..voicemail_mail_to.."\nSubject: Voicemail from "..caller_id_name.." <"..caller_id_number.."> "..message_length_formatted,
- message
- );
- end
- end
+ message
+ );
+ end
end
--define a function to forward a message to an extension
@@ -806,7 +818,7 @@
end
--send the email with the voicemail recording attached
- if (string.len(forward_voicemail_mail_to) > 3) then
+ if (string.len(forward_voicemail_mail_to) > 2) then
send_email(uuid);
end
end
@@ -828,48 +840,54 @@
record_message();
--save the message to the voicemail messages
- local sql = {}
- table.insert(sql, "INSERT INTO v_voicemail_messages ");
- table.insert(sql, "(");
- table.insert(sql, "voicemail_message_uuid, ");
- table.insert(sql, "domain_uuid, ");
- table.insert(sql, "voicemail_uuid, ");
- table.insert(sql, "created_epoch, ");
- table.insert(sql, "caller_id_name, ");
- table.insert(sql, "caller_id_number, ");
- table.insert(sql, "message_length ");
- --table.insert(sql, "message_status, ");
- --table.insert(sql, "message_priority, ");
- table.insert(sql, ") ");
- table.insert(sql, "VALUES ");
- table.insert(sql, "( ");
- table.insert(sql, "'".. uuid .."', ");
- table.insert(sql, "'".. domain_uuid .."', ");
- table.insert(sql, "'".. voicemail_uuid .."', ");
- table.insert(sql, "'".. start_epoch .."', ");
- table.insert(sql, "'".. caller_id_name .."', ");
- table.insert(sql, "'".. caller_id_number .."', ");
- table.insert(sql, "'".. message_length .."' ");
- --table.insert(sql, "'".. message_status .."', ");
- --table.insert(sql, "'".. message_priority .."' ");
- table.insert(sql, ") ");
- if (voicemail_local_after_email == "true") then
- sql = table.concat(sql, "\n");
+ if (message_length > 2) then
+ local sql = {}
+ table.insert(sql, "INSERT INTO v_voicemail_messages ");
+ table.insert(sql, "(");
+ table.insert(sql, "voicemail_message_uuid, ");
+ table.insert(sql, "domain_uuid, ");
+ table.insert(sql, "voicemail_uuid, ");
+ table.insert(sql, "created_epoch, ");
+ table.insert(sql, "caller_id_name, ");
+ table.insert(sql, "caller_id_number, ");
+ table.insert(sql, "message_length ");
+ --table.insert(sql, "message_status, ");
+ --table.insert(sql, "message_priority, ");
+ table.insert(sql, ") ");
+ table.insert(sql, "VALUES ");
+ table.insert(sql, "( ");
+ table.insert(sql, "'".. uuid .."', ");
+ table.insert(sql, "'".. domain_uuid .."', ");
+ table.insert(sql, "'".. voicemail_uuid .."', ");
+ table.insert(sql, "'".. start_epoch .."', ");
+ table.insert(sql, "'".. caller_id_name .."', ");
+ table.insert(sql, "'".. caller_id_number .."', ");
+ table.insert(sql, "'".. message_length .."' ");
+ --table.insert(sql, "'".. message_status .."', ");
+ --table.insert(sql, "'".. message_priority .."' ");
+ table.insert(sql, ") ");
+ if (voicemail_local_after_email == "true") then
+ sql = table.concat(sql, "\n");
+ end
+ if (debug["sql"]) then
+ freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n");
+ end
+ dbh:query(sql);
end
- if (debug["sql"]) then
- freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n");
- end
- dbh:query(sql);
--set the message waiting event
- local event = freeswitch.Event("message_waiting");
- event:addHeader("MWI-Messages-Waiting", "yes");
- event:addHeader("MWI-Message-Account", "sip:"..voicemail_id.."@"..domain_name);
- event:fire();
+ if (message_length > 2) then
+ local event = freeswitch.Event("message_waiting");
+ event:addHeader("MWI-Messages-Waiting", "yes");
+ event:addHeader("MWI-Message-Account", "sip:"..voicemail_id.."@"..domain_name);
+ event:fire();
+ end
--send the email with the voicemail recording attached
- if (string.len(voicemail_mail_to) > 3) then
- send_email(uuid);
+ if (message_length > 2) then
+ if (string.len(voicemail_mail_to) > 3) then
+ send_email(uuid);
+ end
end
--local after email is false so delete the recording file
@@ -1129,7 +1147,9 @@ function menu_messages (message_status)
message_number = message_number + 1;
--listen to the message
if (session:ready()) then
- freeswitch.consoleLog("notice", message_number.." "..string.lower(row["voicemail_message_uuid"]).." "..row["created_epoch"]);
+ if (debug["info"]) then
+ freeswitch.consoleLog("notice", message_number.." "..string.lower(row["voicemail_message_uuid"]).." "..row["created_epoch"]);
+ end
listen_to_recording(message_number, string.lower(row["voicemail_message_uuid"]), row["created_epoch"], row["caller_id_name"], row["caller_id_number"]);
end
end);