tSIP: command line script
tSIP 0.1.75.7 added capability of executing script passed from command line. Previously there was only an option to write/rewrite script to disk and trigger its execution by "pressing" from command line programmable button that had this script assigned.
Example command line:
tsip.exe /tsip=SCRIPT="QueuePush('dialingQueue', 4444)"
While length of script passed through command line is limited and writing Lua in single line is problematic, this greatly increases flexibility for integration with other application - command line is just easiest way of communication. "Click to call" mechanism is used - if application finds its previous instance it passes parameters to it and quits, otherwise it continues and executes script after startup.
Command line above pushes phone number (4444) to queue named dialingQueue. This queue may be consumed by e.g. "on timer script":
local CALL_TIME_LIMIT = 6 -- seconds
local callTimeVarName = "callTime"
local callState = GetCallState()
--print("Call state: " .. callState .. "\n")
if callState ~= 0 then
local count, isSet = GetVariable(callTimeVarName)
if (isSet == 0) then
print("Unexpected! Call time var not set!\n")
count = 0
else
count = tonumber(count)
end
if count > CALL_TIME_LIMIT then
Hangup()
else
count = count + 1
SetVariable(callTimeVarName, count)
end
return
end
local target, isValid = QueuePop("dialingQueue")
if isValid == 1 then
print(string.format("Calling to queued [%s]\n", target))
SetVariable(callTimeVarName, "0")
Call(target)
end
This particular script fetches number from queue and calls to it if there is no active call at the moment. Regardless of call status call time is limited to 6 (CALL_TIME_LIMIT) seconds.
Back to howto list