Use the eval API: api = freeswitch.API() my_uuid = session:getVariable('uuid') ... state2 = api:executeString('eval uuid:' .. my_uuid .. ' ${Channel-Call-State}') ... The 'eval' API is useful for getting those "magic" variables that show up when you do the info app or uuid_dump xxx. -MC On Wed, Jan 26, 2011 at 7:31 AM, Stephen Wilde <wstephen80@gmail.com> wrote:
Hi, I have difficult to check the state of an originated session in lua script.
I want to know when the originated session is ringing back or progressing or answered.
I have tried with session:getState() but returns always CS_SOFT_EXECUTE.
My lua test script is called from dialplan with a:
<action application="lua" data="test1.lua"/>
And the "test1.lua" script is:
session2 = freeswitch.Session("sofia/external/xxxxxx@a.b.c.d");
while (session:ready() and session2:ready()) do state2 = session2:getVariable("channel_call_state"); freeswitch.consoleLog("warning", "State2 = " .. state2 .. "\n"); session:execute("sleep", "500"); end
if (session:ready()) then session:hangup(); end
if (session2:ready()) then session2:hangup(); end
This script fails because the session:getVariable("channel_call_state") returns nil.
What is the correct way to know the state of a call?
Stephen
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org