Fix ring group lua script so that if each extension is not registered and never has been that it still goes to the timeout destination.

This commit is contained in:
Mark Crane
2013-09-11 02:12:18 +00:00
parent ea4e824fd5
commit ca0b5a60b9
@@ -292,22 +292,27 @@
originate_prompt = "false"; originate_prompt = "false";
end end
--originate each destination --originate each destination
dial_string = "{ignore_early_media=true,origination_caller_id_name="..origination_caller_id_name..",origination_caller_id_number="..origination_caller_id_number.."}"..dial_string; if (dial_string ~= nil) then
cmd = ""; dial_string = "{ignore_early_media=true,origination_caller_id_name="..origination_caller_id_name..",origination_caller_id_number="..origination_caller_id_number.."}"..dial_string;
if (tonumber(destination_delay) > 0) then cmd = "";
cmd = "sched_api +"..destination_delay.." "..new_uuid.." "; if (tonumber(destination_delay) > 0) then
end cmd = "sched_api +"..destination_delay.." "..new_uuid.." ";
cmd = cmd .. "bgapi originate "..dial_string.." '&lua('"..scripts_dir.."/app/ring_groups/resources/scripts/confirm.lua' "..uuid.." "..originate_prompt..")'"; end
--freeswitch.consoleLog("notice", "[ring group] cmd: " .. cmd .. "\n"); cmd = cmd .. "bgapi originate "..dial_string.." '&lua('"..scripts_dir.."/app/ring_groups/resources/scripts/confirm.lua' "..uuid.." "..originate_prompt..")'";
result = trim(api:executeString(cmd)); --freeswitch.consoleLog("notice", "[ring group] cmd: " .. cmd .. "\n");
result = trim(api:executeString(cmd));
end
else else
--use a delimiter between dialstrings --use a delimiter between dialstrings
if (x == 0) then if (dial_string ~= nil) then
app_data = "{ignore_early_media=true,origination_caller_id_name="..origination_caller_id_name..",origination_caller_id_number="..origination_caller_id_number.."}"..dial_string; if (x == 0) then
else app_data = "{ignore_early_media=true,origination_caller_id_name="..origination_caller_id_name..",origination_caller_id_number="..origination_caller_id_number.."}"..dial_string;
app_data = app_data .. delimiter .. dial_string; else
end app_data = app_data .. delimiter .. dial_string;
--freeswitch.consoleLog("notice", "[ring group] app_data: " .. app_data .. "\n"); end
--freeswitch.consoleLog("notice", "[ring group] app_data: " .. app_data .. "\n");
end
end end
--increment the value of x --increment the value of x
@@ -354,13 +359,12 @@
result = api:executeString(cmd); result = api:executeString(cmd);
else else
--no prompt --no prompt
if (app_data) then if (app_data ~= nil) then
session:execute("bridge", app_data); session:execute("bridge", app_data);
end if (session:getVariable("originate_disposition") == "ALLOTTED_TIMEOUT" or session:getVariable("originate_disposition") == "NO_ANSWER" or session:getVariable("originate_disposition") == "ORIGINATOR_CANCEL") then
if (session:getVariable("originate_disposition") == "ALLOTTED_TIMEOUT" or session:getVariable("originate_disposition") == "NO_ANSWER") then session:execute(ring_group_timeout_app, ring_group_timeout_data);
if (ring_group_timeout_app == "voicemail") then
session:answer();
end end
else
session:execute(ring_group_timeout_app, ring_group_timeout_data); session:execute(ring_group_timeout_app, ring_group_timeout_data);
end end
end end