Add presence support for ring groups

This commit is contained in:
agree
2021-04-27 11:55:19 -04:00
parent 69e892e790
commit 00526b4334
2 changed files with 16 additions and 0 deletions

View File

@@ -47,6 +47,7 @@
require "resources.functions.file_exists";
require "resources.functions.channel_utils"
require "resources.functions.format_ringback"
require "resources.functions.send_presence";
--- include libs
local route_to_bridge = require "resources.functions.route_to_bridge"
@@ -978,6 +979,9 @@
freeswitch.consoleLog("NOTICE", "[ring group] app_data: "..app_data.."\n");
-- log.noticef("bridge begin: originate_disposition:%s answered:%s ready:%s bridged:%s", session:getVariable("originate_disposition"), session:answered() and "true" or "false", session:ready() and "true" or "false", session:bridged() and "true" or "false")
if (ring_group_strategy ~= "rollover") then
if (session:getVariable("ring_group_send_presence") == "true") then
send_presence(uuid, ring_group_extension.."@"..domain_name, "early");
end
session:execute("bridge", app_data);
end
-- log.noticef("bridge done: originate_disposition:%s answered:%s ready:%s bridged:%s", session:getVariable("originate_disposition"), session:answered() and "true" or "false", session:ready() and "true" or "false", session:bridged() and "true" or "false")

View File

@@ -0,0 +1,12 @@
function send_presence(uuid, from, state, direction)
local event = freeswitch.Event('PRESENCE_IN');
event:addHeader('Unique-ID', uuid);
event:addHeader('proto', "any");
event:addHeader('from', from);
event:addHeader('login', from);
event:addHeader('event_type', "presence");
event:addHeader('alt_event_type', "dialog");
event:addHeader('Presence-Call-Direction', direction or 'outbound');
event:addHeader('answer-state', state);
event:fire();
end