Converted uses of ringback to common function

This commit is contained in:
mafoo
2016-01-28 15:47:31 +00:00
parent 5a20dce9ab
commit ef31b4082d
4 changed files with 36 additions and 73 deletions

View File

@@ -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);

View File

@@ -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");

View File

@@ -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);

View File

@@ -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