Lua → VBScript
This function returns true if the current script user has an unconditional redirection to a user configured, where the current call already has been (in his call routing).
Please see the Introduction chapter for some usage instructions.
------------------------------------------------------------------ -- IsRedirectionLoopConfigured -- -- Checks if the undonditional redirection target of the script user is -- already in the PreviousScripts list, i.e. the call was previously already in that user's call routing. -- -- Parameter: -- -- Return: -- boolean ------------------------------------------------------------------ function IsRedirectionLoopConfigured() PBXScript.OutputTrace ("-------------> IsRedirectionLoopConfigured") local bReturn = false if PBXUser.UnconditionalRedirect() then local sRedirectToUser = GetUserNameFromExtension(PBXUser.UnconditionalRedirectNumber()) local tScripts = nil tScripts = PBXScript.PreviousScripts() if (tScripts ~= nil) then for i = 1, #tScripts do PBXScript.OutputTrace ("PreviousScript.username = " .. tScripts[i].username) if (tScripts[i].username == sRedirectToUser) then PBXScript.OutputTrace ("Found redirection target in the PreviousScripts list. So this is most likely a loop!") bReturn = true end end end end PBXScript.OutputTrace ("bReturn = " .. tostring(bReturn)) PBXScript.OutputTrace ("<------------- IsRedirectionLoopConfigured") return bReturn end
This function makes use of the function GetUserNameFromExtension() to get the username of the destination the current script user has an unconditional redirection configured to. Afterwards it uses the Server Script API function PBXScript.PreviousScripts() to search the username in the list of previous call routing scripts.
Once this function returns true the idea is to disabled the unconditional redirection to prevent a loop.
if IsRedirectionLoopConfigured() then PBXUser.UnconditionalRedirect(false) end
There is another function IsLoopConfigured() available, following another approach to identify an existing call loop.
Please take a look into the How to avoid loops topic for more details.
This function was converted from VBScript into Lua from the initially posted version in this forum topic.
By Tom Wellige
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now