tSIP: showing window on BLF change
Lua "on BLF (dialog-info) change" script showing application window when contact(s) state changed to early or confirmed.
Function ApplicationShow() used here was added in tSIP 0.3.1.2.
local execSourceType = GetExecSourceType() -- 7 = BLF state change if execSourceType ~= 7 then print("Unexpected context for BLF state script!\n") return end local contactId = GetExecSourceId() -- contact id in this context local number, state = GetBlfState(contactId) --[[ for state value: enum dialog_info_status { DIALOG_INFO_UNKNOWN = 0, ///< not subscribed / subscription failed DIALOG_INFO_TERMINATED, DIALOG_INFO_EARLY, DIALOG_INFO_CONFIRMED }; If contactId is out of range (e.g. there is no subscription) then value = -1 is returned. This is unexpected in script running on event though. ]] -- number might be used to limit contacts for which action is executed -- print(string.format("on_blf_state: number %s state = %d\n", number, state)) if state == 2 or state == 3 then -- early + confirmed states -- let's limit frequency local currentTime = os.time() print ("currentTime: " .. currentTime .. "\n") local variableName = "OnBlfStatePlaTime" local prevTime, prevTimeIsSet = GetVariable(variableName) if prevTimeIsSet ~= 0 then print(string.format("prevTime = %s\n", prevTime)) prevTime = tonumber(prevTime) if currentTime - prevTime < 2 then -- skip action print("Skipping show - 2 seconds not passed\n") return else print(string.format("delta = %d\n", currentTime - prevTime)) end else print("prevTime not set\n") end SetVariable(variableName, currentTime) ApplicationShow(false) -- show without grabbing focus end
Back to howto list.