From 5b3f849b4abdbe4575048cdaff43409f3867ccd3 Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Sat, 6 Mar 2021 09:43:31 -0700 Subject: [PATCH] Remove forward_caller_id_uuid field and minor code cleanup. Minor code cleanup improve indentation, trailing spaces and add some line feeds. --- .../scripts/app/feature_event/index.lua | 174 +++++++----------- 1 file changed, 71 insertions(+), 103 deletions(-) diff --git a/app/scripts/resources/scripts/app/feature_event/index.lua b/app/scripts/resources/scripts/app/feature_event/index.lua index d0d38d3930..a8aa898f60 100644 --- a/app/scripts/resources/scripts/app/feature_event/index.lua +++ b/app/scripts/resources/scripts/app/feature_event/index.lua @@ -16,7 +16,7 @@ -- -- The Initial Developer of the Original Code is -- Mark J Crane --- Copyright (C) 2013 - 2014 +-- Copyright (C) 2013 - 2021 -- the Initial Developer. All Rights Reserved. -- -- Contributor(s): @@ -72,11 +72,11 @@ end --get the events - --if (user == nil) then + --if (user == nil) then --serialize the data for the console --freeswitch.consoleLog("notice","[events] " .. event:serialize("xml") .. "\n"); --freeswitch.consoleLog("notice","[evnts] " .. event:serialize("json") .. "\n"); - + --get the event variables user = event:getHeader("user"); host = event:getHeader("host"); @@ -87,7 +87,7 @@ action_name = event:getHeader("Action-Name"); action_value = event:getHeader("Action-Value") ring_count = event:getHeader("ringCount") - + --send to the log --freeswitch.consoleLog("notice","[events] user: " .. user .. "\n"); --freeswitch.consoleLog("notice","[events] host: " .. host .. "\n"); @@ -96,7 +96,7 @@ --if (action_name ~= nil) then freeswitch.consoleLog("notice","[events] action_name: " .. action_name .. "\n"); end --if (action_value ~= nil) then freeswitch.consoleLog("notice","[events] action_value: " .. action_value .. "\n"); end --end - + --get the domain uuid from the host local sql = "select * from v_domains "; sql = sql .. "where domain_name = :domain_name "; @@ -112,19 +112,20 @@ if (user ~= nil and domain_name ~= nil) then do_not_disturb, forward_all_enabled, forward_all_destination, forward_busy_enabled, forward_busy_destination, forward_no_answer_enabled, forward_no_answer_destination, call_timeout = notify.get_db_values(user, domain_name) end - + --get sip profile if (user ~= nil and host ~= nil) then sip_profile = notify.get_profile(user, host); end - + --DND - + --DND enabled if (feature_action == "SetDoNotDisturb" and feature_enabled == "true" and sip_profile ~= nil) then --set a variable dial_string = "error/user_busy"; do_not_disturb = "true"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = :do_not_disturb, "; @@ -152,16 +153,16 @@ dbh:query(sql, params); end end - + --send notify to the phone notify.dnd(user, host, sip_profile, do_not_disturb); - end --DND disabled if (feature_action == "SetDoNotDisturb" and feature_enabled == "false" and sip_profile ~= nil ) then --set a variable do_not_disturb = "false"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = :do_not_disturb, "; @@ -177,11 +178,11 @@ --send notify to the phone notify.dnd(user, host, sip_profile, do_not_disturb); - + end --Call Forward - + --Call Formward All enabled if (feature_action == "SetCallForward" and feature_enabled == "true" and action_name == "forward_immediate" and sip_profile ~= nil) then --set a variable @@ -189,48 +190,11 @@ forward_all_enabled = "true"; forward_immediate_destination = action_value; forward_immediate_enabled = "true"; - - --get the caller_id for outbound call - local forward_caller_id = "" - if not empty(forward_caller_id_uuid) then - local sql = "select destination_number, destination_description,".. - "destination_caller_id_number, destination_caller_id_name " .. - "from v_destinations where domain_uuid = :domain_uuid and " .. - "destination_type = 'inbound' and destination_uuid = :destination_uuid"; - local params = {domain_uuid = domain_uuid; destination_uuid = forward_caller_id_uuid} - if (debug["sql"]) then - freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); - end - local row = dbh:first_row(sql, params) - if row then - local caller_id_number = row.destination_caller_id_number - if empty(caller_id_number) then - caller_id_number = row.destination_number - end - - local caller_id_name = row.destination_caller_id_name - if empty(caller_id_name) then - caller_id_name = row.destination_description - end - - if not empty(caller_id_number) then - forward_caller_id = forward_caller_id .. - ",outbound_caller_id_number=" .. caller_id_number .. - ",origination_caller_id_number=" .. caller_id_number - end - - if not empty(caller_id_name) then - forward_caller_id = forward_caller_id .. - ",outbound_caller_id_name=" .. caller_id_name .. - ",origination_caller_id_name=" .. caller_id_name - end - end - end - + --set the dial string if feature_enabled == "true" then local destination_extension, destination_number_alias - + --used for number_alias to get the correct user local sql = "select extension, number_alias from v_extensions "; sql = sql .. "where domain_uuid = :domain_uuid "; @@ -244,47 +208,46 @@ destination_extension = row.extension; destination_number_alias = row.number_alias or ''; end); - + if (destination_user ~= nil) then cmd = "user_exists id ".. destination_user .." "..domain_name; else cmd = "user_exists id ".. forward_all_destination .." "..domain_name; end local user_exists = trim(api:executeString(cmd)); - end - - --update the extension - sql = "update v_extensions set "; - sql = sql .. "do_not_disturb = 'false', "; - sql = sql .. "forward_all_enabled = 'true', "; - sql = sql .. "forward_all_destination = :forward_all_destination, "; - sql = sql .. "dial_string = null "; - sql = sql .. "where domain_uuid = :domain_uuid "; - sql = sql .. "and extension_uuid = :extension_uuid "; - local params = {domain_uuid = domain_uuid, extension_uuid = extension_uuid, forward_all_destination = forward_all_destination}; - if (debug["sql"]) then - freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); - end - dbh:query(sql, params); - - --update follow me - if (follow_me_uuid ~= nil) then - if (string.len(follow_me_uuid) > 0) then - local sql = "update v_follow_me set "; - sql = sql .. "follow_me_enabled = 'false' "; - sql = sql .. "where domain_uuid = :domain_uuid "; - sql = sql .. "and follow_me_uuid = :follow_me_uuid "; - local params = {domain_uuid = domain_uuid, follow_me_uuid = follow_me_uuid}; - if (debug["sql"]) then - freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); - end - dbh:query(sql, params); + + --update the extension + sql = "update v_extensions set "; + sql = sql .. "do_not_disturb = 'false', "; + sql = sql .. "forward_all_enabled = 'true', "; + sql = sql .. "forward_all_destination = :forward_all_destination, "; + sql = sql .. "dial_string = null "; + sql = sql .. "where domain_uuid = :domain_uuid "; + sql = sql .. "and extension_uuid = :extension_uuid "; + local params = {domain_uuid = domain_uuid, extension_uuid = extension_uuid, forward_all_destination = forward_all_destination}; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); + end + dbh:query(sql, params); + + --update follow me + if (follow_me_uuid ~= nil) then + if (string.len(follow_me_uuid) > 0) then + local sql = "update v_follow_me set "; + sql = sql .. "follow_me_enabled = 'false' "; + sql = sql .. "where domain_uuid = :domain_uuid "; + sql = sql .. "and follow_me_uuid = :follow_me_uuid "; + local params = {domain_uuid = domain_uuid, follow_me_uuid = follow_me_uuid}; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); end + dbh:query(sql, params); end - - --send notify to the phone - notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); + end + + --send notify to the phone + notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); end --Call Formward All disable @@ -294,6 +257,7 @@ forward_all_enabled = "false"; forward_immediate_enabled = "false"; forward_immediate_destination = action_value; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -311,19 +275,20 @@ freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); end dbh:query(sql, params); - - --send notify to the phone - if (forward_immediate_destination == nil) then - forward_immediate_destination = " "; - end - notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); + + --send notify to the phone + if (forward_immediate_destination == nil) then + forward_immediate_destination = " "; + end + notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); end - + --Call Formward BUSY enable if (feature_action == "SetCallForward" and feature_enabled == "true" and action_name == "forward_busy" and sip_profile ~= nil) then --set a variable forward_busy_destination = action_value; forward_busy_enabled = "true"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -336,16 +301,17 @@ freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); end dbh:query(sql, params); - + --send notify to the phone notify.forward_busy(user, host, sip_profile, forward_busy_enabled, forward_busy_destination); end - + --Call Formward BUSY disable if (feature_action == "SetCallForward" and feature_enabled == "false" and action_name == "forward_busy" and sip_profile ~= nil) then --set a variable forward_busy_destination = action_value; forward_busy_enabled = "false"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -362,7 +328,7 @@ freeswitch.consoleLog("notice", "[feature_event] "..sql.."; params:" .. json.encode(params) .. "\n"); end dbh:query(sql, params); - + --send notify to the phone notify.forward_busy(user, host, sip_profile, forward_busy_enabled, forward_busy_destination); end @@ -373,6 +339,7 @@ forward_no_answer_destination = action_value; forward_no_answer_enabled = "true"; call_timeout = ring_count * 6; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -390,12 +357,13 @@ --send notify to the phone notify.forward_no_answer(user, host, sip_profile, forward_no_answer_enabled, forward_no_answer_destination, ring_count); end - + --Call Formward NO ANSWER disable if (feature_action == "SetCallForward" and feature_enabled == "false" and action_name == "forward_no_answer" and sip_profile ~= nil) then --set a variable forward_no_answer_destination = action_value; forward_no_answer_enabled = "false"; + --update the extension sql = "update v_extensions set "; sql = sql .. "do_not_disturb = 'false', "; @@ -420,19 +388,19 @@ --No feature event (phone boots): Send all values if (feature_enabled == nil) then --Do Not Disturb - --notify.dnd(user, host, sip_profile, do_not_disturb); + --notify.dnd(user, host, sip_profile, do_not_disturb); --Forward all - forward_immediate_enabled = forward_all_enabled; - forward_immediate_destination = forward_all_destination; - --notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); + forward_immediate_enabled = forward_all_enabled; + forward_immediate_destination = forward_all_destination; + --notify.forward_immediate(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination); --Forward busy - --notify.forward_busy(user, host, sip_profile, forward_busy_enabled, forward_busy_destination); + --notify.forward_busy(user, host, sip_profile, forward_busy_enabled, forward_busy_destination); --Forward No Answer - ring_count = math.ceil (call_timeout / 6); - --notify.forward_no_answer(user, host, sip_profile, forward_no_answer_enabled, forward_no_answer_destination, ring_count); + ring_count = math.ceil (call_timeout / 6); + --notify.forward_no_answer(user, host, sip_profile, forward_no_answer_enabled, forward_no_answer_destination, ring_count); notify.init(user, host, sip_profile, @@ -445,9 +413,9 @@ ring_count, do_not_disturb); end - + -- feature_event_notify.init(user, host, sip_profile, forward_immediate_enabled, forward_immediate_destination, forward_busy_enabled, forward_busy_destination, forward_no_answer_enabled, forward_no_answer_destination, ring_count, do_not_disturb) - + --clear the cache if (feature_enabled ~= nil) then cache.del("directory:"..user.."@"..host)