Re: [Freeswitch-users] how to access session variables after hangup???
Pass them as arguments to your luarun hangup hook. And what about variables are not available before the call setup (like uuid), only during the call progress or after the hangup??? I would need to access the originate_disposition variable...
'luarun hangup.lua ${originate_disposition}' 2010-03-14 18:25:08.122511 [CRIT] switch_channel.c:759 Invalid data (${api_hangup_hook} contains a variable) any other hint???
---------- Forwarded message ---------- From: Brian West <brian@freeswitch.org> To: freeswitch-users@lists.freeswitch.org Date: Sun, 14 Mar 2010 13:00:10 -0500 Subject: Re: [Freeswitch-users] how to access session variables after hangup??? Pass them as arguments to your luarun hangup hook.
/b
On Mar 14, 2010, at 12:40 PM, rentmycoder rentmycoder wrote:
Hi guys, Freeswitch rocks! except the documentation:( I'm not able to figure out how to access session variables after hangup... I try to dial out on a gateway and detect it the called party hangs up before bridge...
bgapi originate {ignore_early_media=true,continue_on_fail=true,bypass_media=false,hangup_after_bridge=true,originate_timeout=10,api_hangup_hook='luarun hangup.lua ${uuid}'}sofia/gateway/phoneno &park()
I cannot access the variables using: 1. script arguments: 'luarun hangup.lua ${uuid}'} 2010-03-14 18:25:08.122511 [CRIT] switch_channel.c:759 Invalid data (${api_hangup_hook} contains a variable)
2. session:getVariable("originate_disposition") 2010-03-14 18:31:37.042756 [ERR] mod_lua.cpp:182 hangup.lua:2: attempt to call global 'getVar' (a nil value)
3. params:getHeader("variable_sip_req_uri") 2010-03-14 18:36:19.973939 [ERR] mod_lua.cpp:182 hangup.lua:3: attempt to index global 'params' (a nil value)
I have asked this before on the dev list too, but Anthony didn't gave me a clean answer here: http://lists.freeswitch.org/pipermail/freeswitch-dev/2009-July/002491.html
"In the script you can access the data from the env event which is automatically created for you and it contains all the channel variables from that departed channel."
Ok, but how?????
Please help...
Hi this is a little example from my perl code that do that: array random_be contains randomized IP addresses of next hops. there also hash: my %hunt_error=( NO_USER_RESPONSE => 1, NETWORK_OUT_OF_ORDER => 1, DESTINATION_OUT_OF_ORDER => 1, SYSTEM_SHUTDOWN => 1, ); If error is defined in this array we hunt else drop call. I assume that these errors are internally generated from this FS instance or comes first remote hop. So I need to hunt over next hop. But if error comes from last server I drop call and do not hunt over rest of my SIP servers. for (my $i=0;$i <= scalar(@random_be) ; $i++) { my $dst_gw = shift(@random_be); print "GW:[$dst_gw]\n"; $bridge = "sofia/internal_out/$called\@$dst_gw"; $session->execute('bridge',"$bridge"); $berror = $session->getVariable("originate_disposition"); if (defined($berror)){ fprint("\tBridge Error - Check continue or not\n"); if (!defined($hunt_error{$berror})){ fprint("\t HANGUP - ERROR NOT DEFINED"); $session->execute('export','continue_on_fail=false'); $session->hangup(); return (1); } } else { last; } ; ### NO originate_disposition so successful bridge } Suppose this will help. Not in Lua but idea is the same. Cheers 2010/3/14 rentmycoder rentmycoder <rentmycoder@gmail.com>
Pass them as arguments to your luarun hangup hook. And what about variables are not available before the call setup (like uuid), only during the call progress or after the hangup??? I would need to access the originate_disposition variable...
'luarun hangup.lua ${originate_disposition}' 2010-03-14 18:25:08.122511 [CRIT] switch_channel.c:759 Invalid data (${api_hangup_hook} contains a variable) any other hint???
---------- Forwarded message ---------- From: Brian West <brian@freeswitch.org> To: freeswitch-users@lists.freeswitch.org Date: Sun, 14 Mar 2010 13:00:10 -0500 Subject: Re: [Freeswitch-users] how to access session variables after hangup??? Pass them as arguments to your luarun hangup hook.
/b
On Mar 14, 2010, at 12:40 PM, rentmycoder rentmycoder wrote:
Hi guys, Freeswitch rocks! except the documentation:( I'm not able to figure out how to access session variables after hangup... I try to dial out on a gateway and detect it the called party hangs up before bridge...
bgapi originate
{ignore_early_media=true,continue_on_fail=true,bypass_media=false,hangup_after_bridge=true,originate_timeout=10,api_hangup_hook='luarun
hangup.lua ${uuid}'}sofia/gateway/phoneno &park()
I cannot access the variables using: 1. script arguments: 'luarun hangup.lua ${uuid}'} 2010-03-14 18:25:08.122511 [CRIT] switch_channel.c:759 Invalid data (${api_hangup_hook} contains a variable)
2. session:getVariable("originate_disposition") 2010-03-14 18:31:37.042756 [ERR] mod_lua.cpp:182 hangup.lua:2: attempt to call global 'getVar' (a nil value)
3. params:getHeader("variable_sip_req_uri") 2010-03-14 18:36:19.973939 [ERR] mod_lua.cpp:182 hangup.lua:3: attempt to index global 'params' (a nil value)
I have asked this before on the dev list too, but Anthony didn't gave me a clean answer here:
http://lists.freeswitch.org/pipermail/freeswitch-dev/2009-July/002491.html
"In the script you can access the data from the env event which is automatically created for you and it contains all the channel variables from that departed channel."
Ok, but how?????
Please help...
_______________________________________________ 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
On Sun, Mar 14, 2010 at 1:01 PM, rentmycoder rentmycoder < rentmycoder@gmail.com> wrote:
Pass them as arguments to your luarun hangup hook. And what about variables are not available before the call setup (like uuid), only during the call progress or after the hangup??? I would need to access the originate_disposition variable...
'luarun hangup.lua ${originate_disposition}' 2010-03-14 18:25:08.122511 [CRIT] switch_channel.c:759 Invalid data (${api_hangup_hook} contains a variable) any other hint???
Use the magic env object, which is an event object with all the chan vars for the channel that just hung up. More info here: http://wiki.freeswitch.org/wiki/Lua#Special_Case:_env_object -MC
participants (3)
-
ivdreg ivdreg
-
Michael Collins
-
rentmycoder rentmycoder