From bf8247d332aec6ff306fc5d439d57d28fa6c98c2 Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Sat, 21 Feb 2015 20:33:23 +0000 Subject: [PATCH] Add additional protection to prevent intercepting calls that have already been answered. --- resources/install/scripts/intercept.lua | 22 ++++++++++--------- resources/install/scripts/intercept_group.lua | 20 +++++++++-------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/resources/install/scripts/intercept.lua b/resources/install/scripts/intercept.lua index a5e1333194..419813c0cc 100644 --- a/resources/install/scripts/intercept.lua +++ b/resources/install/scripts/intercept.lua @@ -149,16 +149,18 @@ end --intercept a call that is ringing if (uuid) then - if (hostname == call_hostname) then - session:execute("intercept", uuid); - else - session:execute("export", "sip_h_X-intercept_uuid="..uuid); - session:execute("export", "sip_h_X-domain_uuid="..domain_uuid); - session:execute("export", "sip_h_X-domain_name="..domain_name); - session:execute("export", "sip_h_X-callee_num="..callee_num); - port = freeswitch.getGlobalVariable(sofia_profile_name.."_sip_port"); - session:execute("bridge", "sofia/"..sofia_profile_name.."/**@"..call_hostname..":"..port); - freeswitch.consoleLog("NOTICE", "Send call to other host.... \n"); + if (session:getVariable("billmsec") == nil) then + if (hostname == call_hostname) then + session:execute("intercept", uuid); + else + session:execute("export", "sip_h_X-intercept_uuid="..uuid); + session:execute("export", "sip_h_X-domain_uuid="..domain_uuid); + session:execute("export", "sip_h_X-domain_name="..domain_name); + session:execute("export", "sip_h_X-callee_num="..callee_num); + port = freeswitch.getGlobalVariable(sofia_profile_name.."_sip_port"); + session:execute("bridge", "sofia/"..sofia_profile_name.."/**@"..call_hostname..":"..port); + freeswitch.consoleLog("NOTICE", "Send call to other host.... \n"); + end end end diff --git a/resources/install/scripts/intercept_group.lua b/resources/install/scripts/intercept_group.lua index aac8b9df06..be4836011a 100644 --- a/resources/install/scripts/intercept_group.lua +++ b/resources/install/scripts/intercept_group.lua @@ -194,15 +194,17 @@ --intercept a call that is ringing if (uuid ~= nil) then - if (hostname == call_hostname) then - session:execute("intercept", uuid); - else - session:execute("export", "sip_h_X-intercept_uuid="..uuid); - session:execute("export", "sip_h_X-domain_uuid="..domain_uuid); - session:execute("export", "sip_h_X-domain_name="..domain_name); - port = freeswitch.getGlobalVariable(sofia_profile_name.."_sip_port"); - session:execute("bridge", "sofia/"..sofia_profile_name.."/*8@"..call_hostname..":"..port); - freeswitch.consoleLog("NOTICE", "Send call to other host.... \n"); + if (session:getVariable("billmsec") == nil) then + if (hostname == call_hostname) then + session:execute("intercept", uuid); + else + session:execute("export", "sip_h_X-intercept_uuid="..uuid); + session:execute("export", "sip_h_X-domain_uuid="..domain_uuid); + session:execute("export", "sip_h_X-domain_name="..domain_name); + port = freeswitch.getGlobalVariable(sofia_profile_name.."_sip_port"); + session:execute("bridge", "sofia/"..sofia_profile_name.."/*8@"..call_hostname..":"..port); + freeswitch.consoleLog("NOTICE", "Send call to other host.... \n"); + end end end