VBScript → Lua SwxWare v13.27
A call routing script can run on a user or a group context.
Differ context
If the script is running in a user context the PBXUser interface is available while the PBXGroup interface is not. If it is running on a group context the PBXGroup interface is available while the PBXUser interface is not.
If your script is used in both contexts (user and group) and needs to make use of PBXUser/PBXGroup functionality, you need to check in which context (type) it is running in to only use PBXUser or PBXGroup functionality accordingly.
You can either use the PBXScript.Type property:
' check for a user call routing if PBXScript.Type = PBXScriptTypeUser then ... end if ' check for a group call routing if PBXScript.Type = PBXScriptTypeGroup then ... end if
or one of two global variables:
' check for a user call routing
if g_bIsUserContext then
...
end if
' check for a group call routing
if g_bIsGroupContext then
...
end if
Conditions
Not all offered conditions on the first pages in the Rule Assistant or the within the GSE condition blocks make sense in a group context as a group doesn't have that feature. Here are the differences:
Category / Block | Condition | User Context | Group Context |
Situations / Situation | … if my status is set to "Away" | + | - (returns false) |
Situations / Situation | … if my status is set to "Do not disturb" | + | - (returns false) |
Situations / Situation | … if the Calender say "I am out of the office" | + | - (returns false) |
Situations / Situation | … if the Calender say "I am busy" | + | - (returns false) |
GSE build-in funtions
Not all GSE build-in functions make sense in a group context as a group doesn't have that feature. Here are the differences:
GSE guild-in function | User Context | Group Context |
IpPbx.Away | + | - (returns false) |
IpPbx.DoNotDisturb | + | - (returns false) |
IpPbx.UserFreeStatusText | + | - (returns empty string) |
IsAway | + | - (returns false) |
IsDoNotDisturb | + | - (returns false) |
IsOutlookBusy | + | - (returns false) |
IsOutOfOffice | + | - (returns false) |
PIN | + | - (returns empty string) |
By Tom Wellige