fusionpbx/resources/install/scripts/resources/functions/blf.lua

47 lines
1.3 KiB
Lua

local presence_in = require "resources.functions.presence_in"
local function blf(enabled, proto, id, domain)
local user = string.format('%s+%s@%s', proto, id, domain)
presence_in.turn_lamp(enabled, user)
end
local function dnd(enabled, extension, number_alias, domain)
blf(enabled, 'dnd', extension, domain)
if number_alias and #number_alias > 0 then
blf(enabled, 'dnd', number_alias, domain)
end
end
local function forward(enabled, extension, number_alias, number, domain)
if number then
extension = extension .. '/' .. number
if number_alias and #number_alias > 0 then
number_alias = number_alias .. '/' .. number
end
end
blf(enabled, 'forward', extension, domain)
if number_alias and #number_alias > 0 then
blf(enabled, 'forward', number_alias, domain)
end
end
local function forward_toggle(enabled, extension, number_alias, old_number, new_number, domain)
-- turn off previews BLF number
if old_number and #old_number > 0 and old_number ~= new_number then
forward(false, extension, number_alias, old_number, domain)
end
-- set common BLF status
forward(enabled, extension, number_alias, nil, domain)
-- set destination specifc status
if new_number and #new_number > 0 then
forward(enabled, extension, number_alias, new_number, domain)
end
end
return {
dnd = dnd;
forward = forward_toggle;
}