Thank you Michael, it works!

Stephen

On Thu, Jan 27, 2011 at 2:05 AM, Michael Collins <msc@freeswitch.org> wrote:
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



_______________________________________________
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