From 102d368aac61efcd1ecdbc6953d5bed8ea71484b Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Sat, 13 Apr 2013 07:34:31 +0000 Subject: [PATCH] Fixed the following issue 396: ring_group.lua aborts when ring group is empty. --- includes/install/scripts/ring_group.lua | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/includes/install/scripts/ring_group.lua b/includes/install/scripts/ring_group.lua index ead66f5e75..4d7f472a2d 100644 --- a/includes/install/scripts/ring_group.lua +++ b/includes/install/scripts/ring_group.lua @@ -96,15 +96,15 @@ if (x == 0) then app_data = ""; --{originate_timeout="..ring_group_timeout_sec.."}"; - app_data = app_data .. "[leg_timeout="..extension_timeout..",leg_delay_start="..extension_delay..",origination_caller_id_name="..origination_caller_id_name.."]user/" .. row.extension .. "@" .. domain_name; + app_data = app_data .. "[sip_invite_domain="..domain_name..",leg_timeout="..extension_timeout..",leg_delay_start="..extension_delay..",origination_caller_id_name="..origination_caller_id_name.."]user/" .. row.extension .. "@" .. domain_name; else - app_data = app_data .. delimiter .. "[leg_timeout="..extension_timeout..",leg_delay_start="..extension_delay..",origination_caller_id_name="..origination_caller_id_name.."]user/" .. row.extension .. "@" .. domain_name; + app_data = app_data .. delimiter .. "[sip_invite_domain="..domain_name..",leg_timeout="..extension_timeout..",leg_delay_start="..extension_delay..",origination_caller_id_name="..origination_caller_id_name.."]user/" .. row.extension .. "@" .. domain_name; end x = x + 1; end); --app_data - --freeswitch.consoleLog("notice", "Debug:\n" .. app_data .. "\n"); + --freeswitch.consoleLog("notice", "[ring group] app_data: " .. app_data .. "\n"); --session actions if (session:ready()) then @@ -115,7 +115,19 @@ session:execute("bind_meta_app", "2 ab s record_session::"..recordings_dir.."}/archive/"..os.date("%Y").."/"..os.date("%m").."/"..os.date("%d").."}/"..uuid..".wav"); session:execute("bind_meta_app", "3 ab s execute_extension::cf XML features"); session:execute("bind_meta_app", "4 ab s execute_extension::att_xfer XML features"); - session:execute("bridge", app_data); + if (app_data) then + session:execute("bridge", app_data); + else + --get the timeout app and data + sql = [[SELECT ring_group_timeout_app, ring_group_timeout_data FROM v_ring_groups + where ring_group_uuid = ']]..ring_group_uuid..[[' + and ring_group_enabled = 'true' ]]; + --freeswitch.consoleLog("notice", "SQL:" .. sql .. "\n"); + dbh:query(sql, function(row) + ring_group_timeout_app = row.ring_group_timeout_app; + ring_group_timeout_data = row.ring_group_timeout_data; + end); + end if (session:getVariable("originate_disposition") ~= "SUCCESS") then session:execute(ring_group_timeout_app, ring_group_timeout_data); end