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,6 +292,7 @@
originate_prompt = "false"; originate_prompt = "false";
end end
--originate each destination --originate each destination
if (dial_string ~= nil) then
dial_string = "{ignore_early_media=true,origination_caller_id_name="..origination_caller_id_name..",origination_caller_id_number="..origination_caller_id_number.."}"..dial_string; dial_string = "{ignore_early_media=true,origination_caller_id_name="..origination_caller_id_name..",origination_caller_id_number="..origination_caller_id_number.."}"..dial_string;
cmd = ""; cmd = "";
if (tonumber(destination_delay) > 0) then if (tonumber(destination_delay) > 0) then
@@ -300,8 +301,11 @@
cmd = cmd .. "bgapi originate "..dial_string.." '&lua('"..scripts_dir.."/app/ring_groups/resources/scripts/confirm.lua' "..uuid.." "..originate_prompt..")'"; cmd = cmd .. "bgapi originate "..dial_string.." '&lua('"..scripts_dir.."/app/ring_groups/resources/scripts/confirm.lua' "..uuid.." "..originate_prompt..")'";
--freeswitch.consoleLog("notice", "[ring group] cmd: " .. cmd .. "\n"); --freeswitch.consoleLog("notice", "[ring group] cmd: " .. cmd .. "\n");
result = trim(api:executeString(cmd)); result = trim(api:executeString(cmd));
end
else else
--use a delimiter between dialstrings --use a delimiter between dialstrings
if (dial_string ~= nil) then
if (x == 0) then if (x == 0) 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; app_data = "{ignore_early_media=true,origination_caller_id_name="..origination_caller_id_name..",origination_caller_id_number="..origination_caller_id_number.."}"..dial_string;
else else
@@ -309,6 +313,7 @@
end end
--freeswitch.consoleLog("notice", "[ring group] app_data: " .. app_data .. "\n"); --freeswitch.consoleLog("notice", "[ring group] app_data: " .. app_data .. "\n");
end end
end
--increment the value of x --increment the value of x
x = x + 1; x = x + 1;
@@ -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);
if (session:getVariable("originate_disposition") == "ALLOTTED_TIMEOUT" or session:getVariable("originate_disposition") == "NO_ANSWER" or session:getVariable("originate_disposition") == "ORIGINATOR_CANCEL") then
session:execute(ring_group_timeout_app, ring_group_timeout_data);
end end
if (session:getVariable("originate_disposition") == "ALLOTTED_TIMEOUT" or session:getVariable("originate_disposition") == "NO_ANSWER") then else
if (ring_group_timeout_app == "voicemail") then
session:answer();
end
session:execute(ring_group_timeout_app, ring_group_timeout_data); session:execute(ring_group_timeout_app, ring_group_timeout_data);
end end
end end