[Freeswitch-users] How to check call state in lua script?
Michael Collins
msc at freeswitch.org
Thu Jan 27 04:05:26 MSK 2011
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 at 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 at 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 at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20110126/e3564707/attachment.html
More information about the FreeSWITCH-users
mailing list