Dialplan Fix for Feature Key Sync Race

This is a dialplan approach to fix the feature key sync loop/race with yealink phones. This aproach may also need to be extended to the Call Forward dialplans as well. It limits the number of simultaneous calls for a particular user to change their DND/Forwarding status to a single call at a time. This prevents the infinite loops that the yealinks can get into if the user presses the DND button too quickly with feature key sync enabled.

I am also reverting the lua fix because it was not reliable and can still easily allow the loop to occur.
This commit is contained in:
demonspork
2021-04-06 15:35:40 -05:00
parent 075dbc74c2
commit d53bac7f55
2 changed files with 4 additions and 5 deletions

View File

@@ -94,7 +94,6 @@ function feature_event_notify.dnd(user, host, sip_profiles, do_not_disturb)
event:addHeader("Feature-Event", "DoNotDisturbEvent")
event:addHeader("doNotDisturbOn", do_not_disturb)
--freeswitch.consoleLog("notice","[events] " .. event:serialize("xml") .. "\n");
freeswitch.msleep(200);
event:fire()
end
end
@@ -111,7 +110,6 @@ function feature_event_notify.forward_immediate(user, host, sip_profiles, forwar
event:addHeader("forward_immediate_enabled", forward_immediate_enabled)
event:addHeader("forward_immediate", forward_immediate_destination);
freeswitch.consoleLog("notice","[events] " .. event:serialize("xml") .. "\n");
freeswitch.msleep(200);
event:fire()
end
end
@@ -127,7 +125,6 @@ function feature_event_notify.forward_busy(user, host, sip_profiles, forward_bus
event:addHeader("Feature-Event", "ForwardingEvent")
event:addHeader("forward_busy", forward_busy_destination)
event:addHeader("forward_busy_enabled", forward_busy_enabled)
freeswitch.msleep(200);
event:fire()
end
end
@@ -144,7 +141,6 @@ function feature_event_notify.forward_no_answer(user, host, sip_profiles, forwar
event:addHeader("forward_no_answer", forward_no_answer_destination)
event:addHeader("forward_no_answer_enabled", forward_no_answer_enabled)
event:addHeader("ringCount", ring_count)
freeswitch.msleep(200);
event:fire()
end
end
@@ -168,7 +164,6 @@ function feature_event_notify.init(user, host, sip_profiles, forward_immediate_e
event:addHeader("ringCount", ring_count)
event:addHeader("Feature-Event", "DoNotDisturbEvent")
event:addHeader("doNotDisturbOn", do_not_disturb)
freeswitch.msleep(200);
event:fire()
end
end