mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-30 09:03:49 +00:00
Add. Allow use call_flow_subscribe.lua with feature codes without flow+ prefix. (#2609)
This commit allows create call flow extension with some feature code (e.g. `*401`) Then on the phone you can configure BLF like `flow+*401` and use `call_flow_subscribe` to track current status of this call flow. BLF like `*401` will also works but only if use `call_flow_monitor` script. Also it is possible dial `flow+*401` as well as `*401` to toggle call flow state.
This commit is contained in:
committed by
FusionPBX
parent
7015209e54
commit
d43cb9e700
@@ -163,6 +163,10 @@
|
||||
$destination_extension = str_replace("+", "\+", $destination_extension);
|
||||
|
||||
$destination_feature = $call_flow_feature_code;
|
||||
// Allows dial feature code as `flow+<feature_code>`
|
||||
if (substr($destination_feature, 0, 5) != 'flow+') {
|
||||
$destination_feature = '(?:flow+)?' . $destination_feature;
|
||||
}
|
||||
$destination_feature = str_replace("*", "\*", $destination_feature);
|
||||
$destination_feature = str_replace("+", "\+", $destination_feature);
|
||||
|
||||
|
||||
@@ -207,6 +207,12 @@ if (session:ready()) then
|
||||
call_flow_feature_code.."@"..domain_name,
|
||||
call_flow_uuid
|
||||
);
|
||||
if string.find(call_flow_feature_code, 'flow+', nil, true) ~= 1 then
|
||||
presence_in.turn_lamp( toggle == "false",
|
||||
'flow+'..call_flow_feature_code.."@"..domain_name,
|
||||
call_flow_uuid
|
||||
);
|
||||
end
|
||||
|
||||
--active label
|
||||
local active_flow_label = (toggle == "true") and call_flow_label or call_flow_alternate_label
|
||||
|
||||
@@ -10,15 +10,19 @@ local find_call_flow do
|
||||
|
||||
local find_call_flow_sql = [[select t1.call_flow_uuid, t1.call_flow_status
|
||||
from v_call_flows t1 inner join v_domains t2 on t1.domain_uuid = t2.domain_uuid
|
||||
where t2.domain_name = :domain_name and t1.call_flow_feature_code = :feature_code
|
||||
where t2.domain_name = :domain_name and (t1.call_flow_feature_code = :feature_code
|
||||
or t1.call_flow_feature_code = :short_feature_code)
|
||||
]]
|
||||
|
||||
function find_call_flow(user)
|
||||
local ext, domain_name = split_first(user, '@', true)
|
||||
local _, short = split_first(ext, '+', true)
|
||||
if not domain_name then return end
|
||||
local dbh = Database.new('system')
|
||||
if not dbh then return end
|
||||
local row = dbh:first_row(find_call_flow_sql, {domain_name = domain_name, feature_code = ext})
|
||||
local row = dbh:first_row(find_call_flow_sql, {
|
||||
domain_name = domain_name, feature_code = ext, short_feature_code = short
|
||||
})
|
||||
dbh:release()
|
||||
if not row then return end
|
||||
return row.call_flow_uuid, row.call_flow_status
|
||||
@@ -27,6 +31,7 @@ end
|
||||
end
|
||||
|
||||
local find_dnd do
|
||||
|
||||
local find_dnd_sql = [[select t1.do_not_disturb
|
||||
from v_extensions t1 inner join v_domains t2 on t1.domain_uuid = t2.domain_uuid
|
||||
where t2.domain_name = :domain_name and (t1.extension = :extension or t1.number_alias=:extension)]]
|
||||
|
||||
Reference in New Issue
Block a user