Loosing control when bridging calls using Lua
Hi All, I am struggling with some code, I have (based on the wiki examples) the following piece of lua code: session:setHangupHook("HangUpDialAbort") legA = session legB = freeswitch.Session("sofia/external/{MYDESTINATION}@{MYEXTERNALGATEWAY}") dispoB = "None" while(legA:ready() and legB:ready() and dispoB ~= "ANSWER") do if ( not legA:ready() ) then freeswitch.consoleLog("NOTICE","It appears that leg_a disconnected...\n") else dispoB = legB:getVariable("endpoint_disposition") end end if ( legA:ready() and legB:ready() ) then freeswitch.bridge(legA,legB) while(legA:ready() and legB:ready()) do freeswitch.consoleLog("NOTICE","We´re in the loop!\n") end else freeswitch.consoleLog("NOTICE","It appears that " .. dialA .. " or " .. dialB .. " disconnected...\n") end Question 1: It seems freeswitch.bridge() is a blocking function, Is there a way to use it in a non-blocking way? (so it will reach my while loop checking for legA and B to be ready) I need control of my code while the two legs are bridged. Question 2: session:setHangupHook("HangUpDialAbort") How can I pass session object to my hangup hook? I need to abort the dial attempt in my hangup hook when legA disconnects. Or are there other (better) ways of doing this? Question3: Is it possible to set different hangup hooks for different session (legs)? (would need that when question 2 leads to a 'no-go' ...) Thanks for your help, Michael Lutz
participants (1)
-
Michael Lutz