From ef31b4082dcacf6e18d62310ba552be66976836d Mon Sep 17 00:00:00 2001 From: mafoo Date: Thu, 28 Jan 2016 15:47:31 +0000 Subject: [PATCH] Converted uses of ringback to common function --- .../install/scripts/app/ring_groups/index.lua | 23 +---------- resources/install/scripts/directory.lua | 39 ++++--------------- resources/install/scripts/ivr_menu.lua | 25 ++---------- .../resources/functions/format_ringback.lua | 22 +++++++++++ 4 files changed, 36 insertions(+), 73 deletions(-) create mode 100644 resources/install/scripts/resources/functions/format_ringback.lua diff --git a/resources/install/scripts/app/ring_groups/index.lua b/resources/install/scripts/app/ring_groups/index.lua index bf4d2a193f..dc6ac4eaa6 100644 --- a/resources/install/scripts/app/ring_groups/index.lua +++ b/resources/install/scripts/app/ring_groups/index.lua @@ -39,6 +39,7 @@ local log = require "resources.functions.log".ring_group require "resources.functions.base64"; require "resources.functions.file_exists"; require "resources.functions.channel_utils" + require "resources.functions.format_ringback" --get the variables domain_name = session:getVariable("domain_name"); @@ -321,27 +322,7 @@ local log = require "resources.functions.log".ring_group domain_name = row.domain_name; --set ringback - if (ring_group_ringback == "${uk-ring}") then - ring_group_ringback = "tone_stream://%(400,200,400,450);%(400,2200,400,450);loops=-1"; - end - if (ring_group_ringback == "${us-ring}") then - ring_group_ringback = "tone_stream://%(2000,4000,440.0,480.0);loops=-1"; - end - if (ring_group_ringback == "${pt-ring}") then - ring_group_ringback = "tone_stream://%(1000,5000,400.0,0.0);loops=-1"; - end - if (ring_group_ringback == "${fr-ring}") then - ring_group_ringback = "tone_stream://%(1500,3500,440.0,0.0);loops=-1"; - end - if (ring_group_ringback == "${rs-ring}") then - ring_group_ringback = "tone_stream://%(1000,4000,425.0,0.0);loops=-1"; - end - if (ring_group_ringback == "${it-ring}") then - ring_group_ringback = "tone_stream://%(1000,4000,425.0,0.0);loops=-1"; - end - if (ring_group_ringback == "") then - ring_group_ringback = "local_stream://default"; - end + ring_group_ringback = format_ringback(ring_group_ringback); session:setVariable("ringback", ring_group_ringback); session:setVariable("transfer_ringback", ring_group_ringback); diff --git a/resources/install/scripts/directory.lua b/resources/install/scripts/directory.lua index 7232974912..f0f6ab8ac2 100644 --- a/resources/install/scripts/directory.lua +++ b/resources/install/scripts/directory.lua @@ -40,6 +40,9 @@ require "resources.functions.database_handle"; dbh = database_handle('system'); +--include functions + require "resources.functions.format_ringback" + --settings require "resources.functions.settings"; settings = settings(domain_uuid); @@ -88,40 +91,14 @@ if (not default_dialect) then default_dialect = 'us'; end if (not default_voice) then default_voice = 'callie'; end + --set ringback + directory_ringback = format_ringback(session:getVariable("ringback")); + session:setVariable("ringback", directory_ringback); + session:setVariable("transfer_ringback", directory_ringback); + --set the sounds path for the language, dialect and voice - ringback = session:getVariable("ringback"); - if (ringback) then - ringback = ringback:gsub("$", ""); - ringback = ringback:gsub("{", ""); - ringback = ringback:gsub("}", ""); - end session:setVariable("instant_ringback", "true"); session:setVariable("ignore_early_media", "true"); - if (not ringback) then - session:execute("set", "ringback=local_stream://default"); --set to ringtone - session:execute("set", "transfer_ringback=local_stream://default"); --set to ringtone - elseif (ringback == "uk-ring") then - session:setVariable("ringback", "%(400,200,400,450);%(400,2200,400,450)"); - session:setVariable("transfer_ringback", "%(400,200,400,450);%(400,2200,400,450)"); - elseif (ringback == "us-ring") then - session:setVariable("ringback", "%(2000, 4000, 440.0, 480.0)"); - session:setVariable("transfer_ringback", "%(2000, 4000, 440.0, 480.0)"); - elseif (ringback == "pt-ring") then - session:setVariable("ringback", "%(1000, 5000, 400.0, 0.0)"); - session:setVariable("transfer_ringback", "%(1000, 5000, 400.0, 0.0)"); - elseif (ringback == "fr-ring") then - session:setVariable("ringback", "%(1500, 3500, 440.0, 0.0)"); - session:setVariable("transfer_ringback", "%(1500, 3500, 440.0, 0.0)"); - elseif (ringback == "rs-ring") then - session:setVariable("ringback", "%(1000, 4000, 425.0, 0.0)"); - session:setVariable("transfer_ringback", "%(1000, 4000, 425.0, 0.0)"); - elseif (ringback == "it-ring") then - session:setVariable("ringback", "%(1000, 4000, 425.0, 0.0)"); - session:setVariable("transfer_ringback", "%(1000, 4000, 425.0, 0.0)"); - else - session:execute("set", "ringback=local_stream://default"); --set to ringtone - session:execute("set", "transfer_ringback=local_stream://default"); --set to ringtone - end --define the sounds directory sounds_dir = session:getVariable("sounds_dir"); diff --git a/resources/install/scripts/ivr_menu.lua b/resources/install/scripts/ivr_menu.lua index 24418d531e..6e9bc487c8 100644 --- a/resources/install/scripts/ivr_menu.lua +++ b/resources/install/scripts/ivr_menu.lua @@ -38,6 +38,9 @@ require "resources.functions.database_handle"; dbh = database_handle('system'); +--include functions + require "resources.functions.format_ringback" + --get the variables domain_name = session:getVariable("domain_name"); context = session:getVariable("context"); @@ -135,27 +138,7 @@ end --set ringback - if (ivr_menu_ringback == "${uk-ring}") then - ivr_menu_ringback = "tone_stream://%(400,200,400,450);%(400,2200,400,450);loops=-1"; - end - if (ivr_menu_ringback == "${us-ring}") then - ivr_menu_ringback = "tone_stream://%(2000,4000,440.0,480.0);loops=-1"; - end - if (ivr_menu_ringback == "${pt-ring}") then - ivr_menu_ringback = "tone_stream://%(1000,5000,400.0,0.0);loops=-1"; - end - if (ivr_menu_ringback == "${fr-ring}") then - ivr_menu_ringback = "tone_stream://%(1500,3500,440.0,0.0);loops=-1"; - end - if (ivr_menu_ringback == "${rs-ring}") then - ivr_menu_ringback = "tone_stream://%(1000,4000,425.0,0.0);loops=-1"; - end - if (ivr_menu_ringback == "${it-ring}") then - ivr_menu_ringback = "tone_stream://%(1000,4000,425.0,0.0);loops=-1"; - end - if (ivr_menu_ringback == nil or ivr_menu_ringback == "") then - ivr_menu_ringback = "local_stream://default"; - end + ivr_menu_ringback = format_ringback(ivr_menu_ringback); session:setVariable("ringback", ivr_menu_ringback); session:setVariable("transfer_ringback", ivr_menu_ringback); diff --git a/resources/install/scripts/resources/functions/format_ringback.lua b/resources/install/scripts/resources/functions/format_ringback.lua new file mode 100644 index 0000000000..832a6d625a --- /dev/null +++ b/resources/install/scripts/resources/functions/format_ringback.lua @@ -0,0 +1,22 @@ + +--add the format_ringback function + function format_ringback ( ringback ) + if (ringback == "default_ringback") then + --fetch the default_ringback + ringback = session:getVariable("ringback"); + end + if (ringback:match("%${.*}")) then + ringback = ringback:gsub("%${", ""); + ringback = ringback:gsub("}", ""); + ringback = session:getVariable(ringback); + if (ringback == "") then + --fallback to us-ring + ringback = session:getVariable("us-ring"); + end + --convert to tone_stream + ringback = "tone_stream://" .. ringback .. ";loops=-1"; + elseif (ringback == "") then + ringback = session:getVariable(hold_music); + end + return ringback; + end \ No newline at end of file