[Freeswitch-users] Retrieving hangupCause from b-leg in mod_lua
Benoit Raymond
benoit.raymond at amiconcept.com
Thu Jan 24 00:41:29 MSK 2013
Hi Avi,
The originate_disposition variable does indeed report the status of the
b-leg regardless of the bridge to have connected or not. The
bridge_hangup_cause is no longer reported (I use FS 1.3.13) but rather
last_bridge_hangup_cause is reported only of the bridge completed so if the
originator cancel the call, this variable wont be there.
Having said that, I executed the info application after the bridge so I
could see all the variables and parameters returned. There is a DIALSTATUS
variable that matches the originate_disposition but its value is a bit
different than what originate_disposition returns.
I havent finalize my script yet but looking at yours, it looks quite clean
to me.
Cheers,
Benoit Raymond
AMI Concept Inc.
Business VoIP Solutions / Web Design
Phone: (450) 553-1231
<http://www.amiconcept.com/> http://www.amiconcept.com
De : freeswitch-users-bounces at lists.freeswitch.org
[mailto:freeswitch-users-bounces at lists.freeswitch.org] De la part de Avi
Marcus
Envoyé : 23 janvier 2013 02:17
À : FreeSWITCH Users Help
Objet : Re: [Freeswitch-users] Retrieving hangupCause from b-leg in mod_lua
Try:
cause = session:getVariable("originate_disposition")
cause2=session:getVariable("bridge_hangup_cause")
I'm not exactly sure what gets into which variable... But I think I needed
both because sometimes "user_busy" was only in the second one. I'm not 100%
sure...
Here's my production error script here: https://gist.github.com/4602781
(if the user accessed via a the calling card IVR, it passes them back to the
menu. Otherwise, it hangs up on them. Remove or keep as appropriate.)
Please share your results if you are able to make it cleaner.
-Avi Marcus
BestFone
On Wed, Jan 23, 2013 at 5:18 AM, Benoit Raymond
<benoit.raymond at amiconcept.com> wrote:
Hello,
Is there a way in lua to figure out why the b-leg hung up? I have an inbound
call that I need to bridge so when lua is invoked, there is a session
created for the inbound call and then I use session:execute(bridge, the
b-leg path) and either the call is bridged or call_timeout kicks in. I need
to continue my script based on the hangup cause whether the b-leg produced a
NO_ANSWER, USER_BUSY or any other condition. The session:hangupCause is of
no use since my session is still active.
I found the variable bridge_hangup_cause on the wiki but it returns nil if
I do session:getVariable(bridge_hangup_cause).
I am using 1.3.13
Thanks much.
Benoit Raymond
AMI Concept Inc.
Business VoIP Solutions / Web Design
Phone: (450) 553-1231 <tel:(450)%20553-1231>
http://www.amiconcept.com <http://www.amiconcept.com/>
_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org
http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
</>
Official FreeSWITCH Sites
http://www.freeswitch.org <http://www.freeswitch.org/>
http://wiki.freeswitch.org <http://wiki.freeswitch.org/>
http://www.cluecon.com <http://www.cluecon.com/>
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 <http://www.freeswitch.org/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20130123/05d5da8a/attachment-0001.html
Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users
mailing list