diff --git a/includes/install/scripts/page.lua b/includes/install/scripts/page.lua index f12aade889..aacf9c03ae 100644 --- a/includes/install/scripts/page.lua +++ b/includes/install/scripts/page.lua @@ -54,6 +54,7 @@ if ( session:ready() ) then caller_id_number = session:getVariable("caller_id_number"); extension_table = explode(",",extension_list); sip_from_user = session:getVariable("sip_from_user"); + mute = session:getVariable("mute"); --set the sounds path for the language, dialect and voice default_language = session:getVariable("default_language"); @@ -77,6 +78,17 @@ if ( session:ready() ) then caller_id_number = effective_caller_id_number; end + --set conference flags + if (mute) then + if (mute == "false") then + flags = "flags{}"; + else + flags = "flags{mute}"; + end + else + flags = "flags{mute}"; + end + --if the pin number is provided then require it if (pin_number) then min_digits = string.len(pin_number); @@ -91,6 +103,7 @@ if ( session:ready() ) then end end + destination_count = 0; api = freeswitch.API(); for index,value in pairs(extension_table) do if (string.find(value, "-") == nill) then @@ -109,8 +122,9 @@ if ( session:ready() ) then --this extension is the caller that initated the page else --originate the call - cmd_string = "bgapi originate {sip_auto_answer=true,hangup_after_bridge=false,origination_caller_id_name='"..caller_id_name.."',origination_caller_id_number="..caller_id_number.."}user/"..extension.."@"..domain_name.." conference:page-"..destination_number.."@page+flags{mute} inline"; + cmd_string = "bgapi originate {sip_auto_answer=true,hangup_after_bridge=false,origination_caller_id_name='"..caller_id_name.."',origination_caller_id_number="..caller_id_number.."}user/"..extension.."@"..domain_name.." conference:page-"..destination_number.."@page+"..flags.." inline"; api:executeString(cmd_string); + destination_count = destination_count + 1; end --freeswitch.consoleLog("NOTICE", "cmd_string "..cmd_string.."\n"); else @@ -123,8 +137,9 @@ if ( session:ready() ) then --this extension is the caller that initated the page else --originate the call - cmd_string = "bgapi originate {sip_auto_answer=true,hangup_after_bridge=false,origination_caller_id_name='"..caller_id_name.."',origination_caller_id_number="..caller_id_number.."}user/"..extension.."@"..domain_name.." conference:page-"..destination_number.."@page+flags{mute} inline"; + cmd_string = "bgapi originate {sip_auto_answer=true,hangup_after_bridge=false,origination_caller_id_name='"..caller_id_name.."',origination_caller_id_number="..caller_id_number.."}user/"..extension.."@"..domain_name.." conference:page-"..destination_number.."@page+"..flags.." inline"; api:executeString(cmd_string); + destination_count = destination_count + 1; end end end @@ -133,6 +148,10 @@ if ( session:ready() ) then end --send main call to the conference room - session:execute("conference", "page-"..destination_number.."@page+flags{endconf}"); + if (destination_count > 0) then + session:execute("conference", "page-"..destination_number.."@page+flags{endconf}"); + else + session:execute("playback", "tone_stream://%(500,500,480,620);loops=3"); + end end \ No newline at end of file