Update the voicemail script and add the ability to send an email on demand for the voicemail message and then add ability to forward the message to another extension.

This commit is contained in:
Mark Crane
2013-01-03 14:05:45 +00:00
parent d1456dcb29
commit e3458daa71
+244 -99
View File
@@ -112,13 +112,13 @@
--get the voicemail id --get the voicemail id
function get_voicemail_id() function get_voicemail_id()
voicemail_id = macro(session, "voicemail_id", 5000, ''); id = macro(session, "voicemail_id", 5000, '');
if (string.len(voicemail_id) == 0) then if (string.len(id) == 0) then
if (session:ready()) then if (session:ready()) then
voicemail_id = get_voicemail_id(); id = get_voicemail_id();
end end
else else
return voicemail_id; return id;
end end
end end
@@ -152,7 +152,7 @@
--compare the password from the database with the password provided by the user --compare the password from the database with the password provided by the user
if (voicemail_password ~= password) then if (voicemail_password ~= password) then
--incorrect password --incorrect password
macro(session, "password_not_valid", 2000, ''); macro(session, "password_not_valid", 1000, '');
if (session:ready()) then if (session:ready()) then
check_password(voicemail_id); check_password(voicemail_id);
end end
@@ -443,31 +443,35 @@
table.insert(actions, {app="playAndGetDigits",data="digits/5.wav"}); table.insert(actions, {app="playAndGetDigits",data="digits/5.wav"});
end end
--To forward this message press 8 --To forward this message press 8
if (name == "forward_message") then if (name == "to_forward_message") then
actions = {} actions = {}
table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-zzz.wav"}); table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-to_forward.wav"});
table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-press.wav"}); table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-press.wav"});
table.insert(actions, {app="playAndGetDigits",data="digits/8.wav"}); table.insert(actions, {app="playAndGetDigits",data="digits/8.wav"});
end end
--To add an introduction to this message press 1 --Please enter the extension to forward this message to followed by #
--if (name == "add_prefix_to_message") then if (name == "forward_enter_extension") then
-- actions = {} actions = {}
-- table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-zzz.wav"}); table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-forward_enter_ext.wav"});
-- table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-press.wav"}); table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-followed_by_pound.wav"});
-- table.insert(actions, {app="playAndGetDigits",data="digits/1.wav"}); end
--end --To forward this recording to your email press 9
--To send this message now press 2 if (name == "forward_to_email") then
--if (name == "send_message") then actions = {}
-- actions = {} table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-forward_to_email.wav"});
-- table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-zzz.wav"}); table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-press.wav"});
-- table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-press.wav"}); table.insert(actions, {app="playAndGetDigits",data="digits/9.wav"});
-- table.insert(actions, {app="playAndGetDigits",data="digits/2.wav"}); end
--end --Emailed
--please enter the extension to send this message to followed by # if (name == "emailed") then
--if (name == "send_message_to_extension") then actions = {}
-- actions = {} table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-emailed.wav"});
-- table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-zzz.wav"}); end
--end --Please enter the extension to send this message to followed by #
--if (name == "send_message_to_extension") then
-- actions = {}
-- table.insert(actions, {app="playAndGetDigits",data="voicemail/vm-zzz.wav"});
--end
--Message saved --Message saved
if (name == "message_saved") then if (name == "message_saved") then
actions = {} actions = {}
@@ -559,7 +563,7 @@
--save the recording --save the recording
function record_message() function record_message()
--record your message at the tone press any key or stop talking to end the recording --record your message at the tone press any key or stop talking to end the recording
result = macro(session, "record_message", 200); result = macro(session, "record_message", 100);
--start epoch --start epoch
start_epoch = os.time(); start_epoch = os.time();
@@ -587,7 +591,7 @@
if (message_length < 4) then if (message_length < 4) then
if (session:ready()) then if (session:ready()) then
--your recording is below the minimal acceptable length, please try again --your recording is below the minimal acceptable length, please try again
macro(session, "too_small", 200); macro(session, "too_small", 100);
--record your message at the tone --record your message at the tone
record_message(); record_message();
end end
@@ -603,11 +607,11 @@
dtmf_digits = ''; dtmf_digits = '';
--to listen to the recording press 1 --to listen to the recording press 1
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "to_listen_to_recording", 200, ''); dtmf_digits = macro(session, "to_listen_to_recording", 100, '');
end end
--to save the recording press 2 --to save the recording press 2
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "to_save_recording", 200, ''); dtmf_digits = macro(session, "to_save_recording", 100, '');
end end
--to re-record press 3 --to re-record press 3
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
@@ -621,8 +625,8 @@
record_menu(); record_menu();
elseif (dtmf_digits == "2") then elseif (dtmf_digits == "2") then
--save the message --save the message
macro(session, "message_saved", 200, ''); macro(session, "message_saved", 100, '');
macro(session, "goodbye", 200, ''); macro(session, "goodbye", 100, '');
--hangup the call --hangup the call
session:hangup(); session:hangup();
elseif (dtmf_digits == "3") then elseif (dtmf_digits == "3") then
@@ -630,7 +634,7 @@
record_message(); record_message();
elseif (dtmf_digits == "*") then elseif (dtmf_digits == "*") then
--hangup --hangup
macro(session, "goodbye", 200, ''); macro(session, "goodbye", 100, '');
session:hangup(); session:hangup();
else else
if (session:ready()) then if (session:ready()) then
@@ -639,6 +643,157 @@
end end
end end
--define a function to send email
function send_email(uuid)
--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);
freeswitch.consoleLog("notice", "[voicemail] message length: " .. message_length .. "\n");
--send the email
message = [[<font face=arial>
<b>Message From "]]..caller_id_name..[[" <A HREF="tel:]]..caller_id_number..[[">]]..caller_id_number..[[</A></b><br>
<hr noshade size=1>
Created: ]]..os.date("%A, %d %b %Y %I:%M %p", start_epoch)..[[<br>
Duration: ]]..message_length_formatted..[[<br>
Account: ]]..voicemail_id..[[@]]..domain_name..[[<br>
</font>]];
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
);
end
end
--define a function to forward a message to an extension
function forward_to_extension(uuid)
--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
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);
--request the forward_voicemail_id
forward_voicemail_id = macro(session, "forward_enter_extension", 7000, '');
if (string.len(forward_voicemail_id) == 0) then
forward_voicemail_id = macro(session, "forward_enter_extension", 7000, '');
end
if (string.len(forward_voicemail_id) == 0) then
forward_voicemail_id = macro(session, "forward_enter_extension", 7000, '');
end
--get the voicemail settings using the voicemail_uuid
sql = [[SELECT * FROM v_voicemails
WHERE domain_uuid = ']] .. domain_uuid ..[['
AND voicemail_id = ']] .. forward_voicemail_id ..[['
AND voicemail_enabled = 'true' ]];
if (debug["sql"]) then
freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n");
end
status = dbh:query(sql, function(row)
forward_voicemail_uuid = string.lower(row["voicemail_uuid"]);
forward_voicemail_mail_to = row["voicemail_mail_to"];
forward_voicemail_attach_file = row["voicemail_attach_file"];
forward_voicemail_local_after_email = row["voicemail_local_after_email"];
end);
--set default values
if (string.len(forward_voicemail_attach_file) == 0) then
forward_voicemail_attach_file = "true";
end
if (string.len(forward_voicemail_local_after_email) == 0) then
forward_voicemail_local_after_email = "true";
end
--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, "'".. forward_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, ") ");
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);
--set the message waiting event
local event = freeswitch.Event("message_waiting");
event:addHeader("MWI-Messages-Waiting", "yes");
event:addHeader("MWI-Message-Account", "sip:"..forward_voicemail_id.."@"..domain_name);
event:fire();
--local after email is true so copy the recording file
if (voicemail_local_after_email == "true") then
os.execute("mkdir -p " .. voicemail_dir.."/"..forward_voicemail_id);
os.execute("cp "..voicemail_dir.."/"..voicemail_id.."/msg_"..uuid..".wav "..voicemail_dir.."/"..forward_voicemail_id.."/msg_"..uuid..".wav");
end
--send the email with the voicemail recording attached
if (string.len(forward_voicemail_mail_to) > 3) then
send_email(uuid);
end
end
--leave a voicemail --leave a voicemail
if (voicemail_action == "save") then if (voicemail_action == "save") then
@@ -648,43 +803,12 @@
session:streamFile(voicemail_dir.."/"..voicemail_id.."/greeting_"..greeting_id..".wav"); session:streamFile(voicemail_dir.."/"..voicemail_id.."/greeting_"..greeting_id..".wav");
else else
--if there is no greeting then play digits of the voicemail_id --if there is no greeting then play digits of the voicemail_id
result = macro(session, "person_not_available_record_message", 200); result = macro(session, "person_not_available_record_message", 100);
end end
--save the recording --save the recording
record_message(); record_message();
--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();
--send the email with the voicemail recording attached
if (string.len(voicemail_mail_to) > 3) then
message = [[<font face=arial>
<b>Message From "]]..caller_id_name..[[" <A HREF="tel:]]..caller_id_number..[[">]]..caller_id_number..[[</A></b><br>
<hr noshade size=1>
Created: ]]..os.date("%A, %d %b %Y %I:%M %p", start_epoch)..[[<br>
Duration: ]]..message_length_formatted..[[<br>
Account: ]]..voicemail_id..[[@]]..domain_name..[[<br>
</font>]];
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
);
end
end
--save the message to the voicemail messages --save the message to the voicemail messages
local sql = {} local sql = {}
table.insert(sql, "INSERT INTO v_voicemail_messages "); table.insert(sql, "INSERT INTO v_voicemail_messages ");
@@ -719,6 +843,17 @@
end end
dbh:query(sql); 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();
--send the email with the voicemail recording attached
if (string.len(voicemail_mail_to) > 3) then
send_email(uuid);
end
--local after email is false so delete the recording file --local after email is false so delete the recording file
if (voicemail_local_after_email == "false") then if (voicemail_local_after_email == "false") then
os.remove(voicemail_dir.."/"..voicemail_id.."/msg_"..uuid..".wav"); os.remove(voicemail_dir.."/"..voicemail_id.."/msg_"..uuid..".wav");
@@ -737,7 +872,7 @@ function main_menu ()
status = dbh:query(sql, function(row) status = dbh:query(sql, function(row)
new_messages = row["new_messages"]; new_messages = row["new_messages"];
end); end);
dtmf_digits = macro(session, "new_messages", 200, new_messages); dtmf_digits = macro(session, "new_messages", 100, new_messages);
--saved voicemail count --saved voicemail count
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
sql = [[SELECT count(*) as saved_messages FROM v_voicemail_messages sql = [[SELECT count(*) as saved_messages FROM v_voicemail_messages
@@ -750,19 +885,19 @@ function main_menu ()
status = dbh:query(sql, function(row) status = dbh:query(sql, function(row)
saved_messages = row["saved_messages"]; saved_messages = row["saved_messages"];
end); end);
dtmf_digits = macro(session, "saved_messages", 200, saved_messages); dtmf_digits = macro(session, "saved_messages", 100, saved_messages);
end end
--to listen to new message --to listen to new message
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "listen_to_new_messages", 200, ''); dtmf_digits = macro(session, "listen_to_new_messages", 100, '');
end end
--to listen to saved message --to listen to saved message
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "listen_to_saved_messages", 200, ''); dtmf_digits = macro(session, "listen_to_saved_messages", 100, '');
end end
--for advanced options --for advanced options
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "advanced", 200, ''); dtmf_digits = macro(session, "advanced", 100, '');
end end
--to exit press # --to exit press #
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
@@ -778,7 +913,7 @@ function main_menu ()
elseif (dtmf_digits == "0") then elseif (dtmf_digits == "0") then
session:transfer("0", "XML", context); session:transfer("0", "XML", context);
elseif (dtmf_digits == "*") then elseif (dtmf_digits == "*") then
macro(session, "goodbye", 200, ''); macro(session, "goodbye", 100, '');
session:hangup(); session:hangup();
else else
if (session:ready()) then if (session:ready()) then
@@ -793,7 +928,7 @@ function listen_to_recording (message_number, uuid, created_epoch, caller_id_nam
api = freeswitch.API(); api = freeswitch.API();
reply = api:executeString("uuid_display "..session:get_uuid().." "..caller_id_number); reply = api:executeString("uuid_display "..session:get_uuid().." "..caller_id_number);
--say the message number --say the message number
dtmf_digits = macro(session, "message_number", 200, ''); dtmf_digits = macro(session, "message_number", 100, '');
--say the number --say the number
session:say(message_number, "en", "NUMBER", "pronounced"); session:say(message_number, "en", "NUMBER", "pronounced");
--say the message date --say the message date
@@ -804,45 +939,55 @@ function listen_to_recording (message_number, uuid, created_epoch, caller_id_nam
end end
--to listen to the recording press 1 --to listen to the recording press 1
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "listen_to_recording", 200, ''); dtmf_digits = macro(session, "listen_to_recording", 100, '');
end end
--to save the recording press 2 --to save the recording press 2
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "save_recording", 200, ''); dtmf_digits = macro(session, "save_recording", 100, '');
end
--to delete the recording press 7
if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "delete_recording", 200, '');
end end
--to return the call now press 5 --to return the call now press 5
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "return_call", 200, ''); dtmf_digits = macro(session, "return_call", 100, '');
end
--to delete the recording press 7
if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "delete_recording", 100, '');
end
--to forward this message press 8
if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "to_forward_message", 100, '');
end
--to forward this recording to your email press 9
if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "forward_to_email", 100, '');
end end
--wait for more digits --wait for more digits
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = session:getDigits(max_digits, "#", 3000); dtmf_digits = session:getDigits(max_digits, "#", 3000);
end end
--to forward this message press 8
--to add an introduction to this message press 1
--to send this message now 2
--please enter the extension to send this message to followed by #
--process the dtmf --process the dtmf
if (dtmf_digits == "1") then if (dtmf_digits == "1") then
listen_to_recording(message_number, uuid, created_epoch, caller_id_name, caller_id_number); listen_to_recording(message_number, uuid, created_epoch, caller_id_name, caller_id_number);
elseif (dtmf_digits == "2") then elseif (dtmf_digits == "2") then
message_saved(uuid); message_saved(uuid);
macro(session, "message_saved", 200, ''); macro(session, "message_saved", 100, '');
elseif (dtmf_digits == "7") then
delete_recording(uuid);
elseif (dtmf_digits == "5") then elseif (dtmf_digits == "5") then
return_call(caller_id_number); return_call(caller_id_number);
elseif (dtmf_digits == "7") then
delete_recording(uuid);
elseif (dtmf_digits == "8") then
forward_to_extension(uuid);
macro(session, "message_saved", 100, '');
elseif (dtmf_digits == "9") then
send_email(uuid);
macro(session, "emailed", 100);
elseif (dtmf_digits == "*") then elseif (dtmf_digits == "*") then
main_menu(); main_menu();
elseif (dtmf_digits == "0") then elseif (dtmf_digits == "0") then
session:transfer("0", "XML", context); session:transfer("0", "XML", context);
else else
message_saved(uuid); message_saved(uuid);
macro(session, "message_saved", 200, ''); macro(session, "message_saved", 100, '');
end end
end end
@@ -887,7 +1032,7 @@ end
end end
dbh:query(sql); dbh:query(sql);
--message deleted --message deleted
macro(session, "message_deleted", 200, ''); macro(session, "message_deleted", 100, '');
--check the message waiting status --check the message waiting status
message_waiting(); message_waiting();
end end
@@ -919,7 +1064,7 @@ function menu_messages (message_status)
max_timeout = 2000; max_timeout = 2000;
min_digits = 1; min_digits = 1;
max_digits = 1; max_digits = 1;
tries =1; tries = 1;
timeout = 2000; timeout = 2000;
--set the message number --set the message number
message_number = 0; message_number = 0;
@@ -985,18 +1130,18 @@ end
function advanced () function advanced ()
--To record a greeting press 1 --To record a greeting press 1
dtmf_digits = macro(session, "to_record_greeting", 200, ''); dtmf_digits = macro(session, "to_record_greeting", 100, '');
--To choose greeting press 2 --To choose greeting press 2
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "choose_greeting", 200, ''); dtmf_digits = macro(session, "choose_greeting", 100, '');
end end
--To record your name 3 --To record your name 3
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "to_record_name", 200, ''); dtmf_digits = macro(session, "to_record_name", 100, '');
end end
--To change your password press 6 --To change your password press 6
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
dtmf_digits = macro(session, "change_password", 200, ''); dtmf_digits = macro(session, "change_password", 100, '');
end end
--For the main menu press 0 --For the main menu press 0
if (string.len(dtmf_digits) == 0) then if (string.len(dtmf_digits) == 0) then
@@ -1041,7 +1186,7 @@ function record_greeting()
or greeting_id == "9") then or greeting_id == "9") then
--record your greeting at the tone press any key or stop talking to end the recording --record your greeting at the tone press any key or stop talking to end the recording
macro(session, "record_greeting", 200, ''); macro(session, "record_greeting", 100, '');
--record the greeting --record the greeting
max_len_seconds = 30; max_len_seconds = 30;
@@ -1056,7 +1201,7 @@ function record_greeting()
advanced(); advanced();
else else
--invalid greeting_id --invalid greeting_id
greeting_id = macro(session, "choose_greeting_fail", 200, ''); greeting_id = macro(session, "choose_greeting_fail", 100, '');
--send back to choose the greeting --send back to choose the greeting
if (session:ready()) then if (session:ready()) then
@@ -1104,13 +1249,13 @@ function choose_greeting()
session:streamFile(voicemail_dir.."/"..voicemail_id.."/greeting_"..greeting_id..".wav"); session:streamFile(voicemail_dir.."/"..voicemail_id.."/greeting_"..greeting_id..".wav");
--greeting selected --greeting selected
macro(session, "greeting_selected", 200, greeting_id); macro(session, "greeting_selected", 100, greeting_id);
--advanced menu --advanced menu
advanced(); advanced();
else else
--invalid greeting_id --invalid greeting_id
greeting_id = macro(session, "choose_greeting_fail", 200, ''); greeting_id = macro(session, "choose_greeting_fail", 100, '');
--send back to choose the greeting --send back to choose the greeting
if (session:ready()) then if (session:ready()) then
@@ -1124,7 +1269,7 @@ end
function record_name() function record_name()
--play the name record --play the name record
macro(session, "record_name", 200, ''); macro(session, "record_name", 100, '');
--save the recording --save the recording
-- syntax is session:recordFile(file_name, max_len_secs, silence_threshold, silence_secs) -- syntax is session:recordFile(file_name, max_len_secs, silence_threshold, silence_secs)
@@ -1139,7 +1284,7 @@ function record_name()
session:streamFile(voicemail_dir.."/"..voicemail_id.."/recorded_name.wav"); session:streamFile(voicemail_dir.."/"..voicemail_id.."/recorded_name.wav");
--message saved --message saved
macro(session, "message_saved", 200, ''); macro(session, "message_saved", 100, '');
--advanced menu --advanced menu
advanced(); advanced();