<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Times New Roman; font-size: 12pt; color: #000000'>So If I call session.recordFile which blocks in code until the user hangs up, and can't make periodic calls to session.ready,&nbsp; is the hangup hook not realiable in this scenario?&nbsp; <br><br><hr id="zwchr"><b>From: </b>"Anthony Minessale" &lt;anthony.minessale@gmail.com&gt;<br><b>To: </b>"FreeSWITCH Users Help" &lt;freeswitch-users@lists.freeswitch.org&gt;<br><b>Sent: </b>Thursday, July 22, 2010 10:30:48 AM<br><b>Subject: </b>Re: [Freeswitch-users] Unstable hangup hook in javascript<br><br>You must make periodic calls to session.ready() or some other freeswitch api functions to trigger the hangup hook.<div>The hangup hook in scripts must be executed by your call's thread, if another thread does the hangup on your channel, it queues in the internal object that it needs to call the hanguphook method. &nbsp;This is triggered by doing anything new in your script. &nbsp;So if your channel is blocking on something while its being hungup, it will eventually pick up on it when it exits the blocking call and runs one of many methods that have a check for if it has to run the hangup hook. &nbsp;Manually calling hangup is a bad example, because you know you are hanging up so there is no real need to trigger the hanguphook but if you want to ensure it does you have to call session.ready() one last time.</div>
<div><br></div><div>If you are writing a critical application, consider C. &nbsp;It's much more robust when it comes to this type of problem because it supports threading. Or consider ESL external scripts where you can run async operations and get events etc.</div>
<div><br></div><div><br></div><div><br></div><div><br><br><div class="gmail_quote">On Thu, Jul 22, 2010 at 10:55 AM, Chris Fowler <span dir="ltr">&lt;chris@fowler.cc&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" mce_style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">









<div lang="EN-US">

<div>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" mce_style="font-size:11.0pt;color:#1F497D">Did this topic get resolved?&nbsp; We’re seeing the same occasional
problem using LUA scripts where on occasion the hangup hook doesn’t get
called.</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" mce_style="font-size:11.0pt;color:#1F497D">&nbsp;</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" mce_style="font-size:11.0pt;color:#1F497D">Our app for this is the 24x7 emergency paging system for our customers
– so we’d like to resolve!</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" mce_style="font-size:11.0pt;color:#1F497D">&nbsp;</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" mce_style="font-size:11.0pt;color:#1F497D">This in on our production system (which is very stable) –
hence the out of date build: FreeSWITCH Version 1.0.trunk (16535).</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" mce_style="font-size:11.0pt;color:#1F497D">&nbsp;</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" mce_style="font-size:11.0pt;color:#1F497D">Thanks, Chris.</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" mce_style="font-size:11.0pt;color:#1F497D">&nbsp;</span></p>

<div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; padding: 3pt 0in 0in;" mce_style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p class="MsoNormal"><b><span style="font-size: 10pt;" mce_style="font-size:10.0pt">From:</span></b><span style="font-size: 10pt;" mce_style="font-size:10.0pt">
<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org" mce_href="mailto:freeswitch-users-bounces@lists.freeswitch.org" target="_blank">freeswitch-users-bounces@lists.freeswitch.org</a>
[mailto:<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org" mce_href="mailto:freeswitch-users-bounces@lists.freeswitch.org" target="_blank">freeswitch-users-bounces@lists.freeswitch.org</a>] <b>On Behalf Of </b>xuyan
yang<br>
<b>Sent:</b> Sunday, July 11, 2010 08:08<br>
<b>To:</b> <a href="mailto:freeswitch-users@lists.freeswitch.org" mce_href="mailto:freeswitch-users@lists.freeswitch.org" target="_blank">freeswitch-users@lists.freeswitch.org</a><br>
<b>Subject:</b> [Freeswitch-users] Unstable hangup hook in javascript</span></p>

</div><div><div></div><div class="h5">

<p class="MsoNormal"><br></p>

<div>

<p class="MsoNormal">Hi,</p>

</div>

<div>

<p class="MsoNormal"><br></p>

</div>

<div>

<p class="MsoNormal">I have tested the hangup hook function using the following
javascript. During the speech in the call I hangup the call to see the result.
Sometimes hangup function works, but sometimes it did not. The chance of fail
is about 1 out of 10. I am running windows XP, FS git version cloned and
compiled at end of Jun. Does anyone meet the same problem? Or do I make some
mistake in the script? Thanks.</p>

</div>

<div>

<p class="MsoNormal"><br></p>

</div>

<div>

<p class="MsoNormal"><br></p>

</div>

<div>

<p class="MsoNormal">////test.js</p>

</div>

<div>

<p class="MsoNormal">function on_hangup(session, how){</p>

</div>

<div>

<p class="MsoNormal"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>console_log("notice","hangup!!!!!!!!!!!!!\n");</p>

</div>

<div>

<p class="MsoNormal">}</p>

</div>

<div>

<p class="MsoNormal"><br></p>

</div>

<div>

<p class="MsoNormal">&nbsp;session = new
Session("sofia/gateway/12voip-out/*********");</p>

</div>

<div>

<p class="MsoNormal"><br></p>

</div>

<div>

<p class="MsoNormal">session.waitForAnswer();</p>

</div>

<div>

<p class="MsoNormal">session.execute("set","continue_on_fail=true");</p>

</div>

<div>

<p class="MsoNormal">var res=session.setHangupHook(on_hangup);</p>

</div>

<div>

<p class="MsoNormal">console_log("notice","res:"+res+"\n");</p>

</div>

<div>

<p class="MsoNormal">session.execute("speak", "This is an example
of flite text to speech engine. We can test the work of hanguphook.");</p>

</div>

<div>

<p class="MsoNormal">session.execute("speak","you are calling from
" + session.caller_id_num + " You are calling " +
session.destination );</p>

</div>

<div>

<p class="MsoNormal">session.hangup();</p>

</div>

<div>

<p class="MsoNormal"><br></p>

</div>

</div></div></div>

</div>


<br>_______________________________________________<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" mce_href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" mce_href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" mce_href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" mce_href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/" mce_href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/" mce_href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
Twitter: <a href="http://twitter.com/FreeSWITCH_wire" mce_href="http://twitter.com/FreeSWITCH_wire" target="_blank">http://twitter.com/FreeSWITCH_wire</a><br><br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com" mce_href="mailto:MSN%3Aanthony_minessale@hotmail.com" target="_blank">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com" mce_href="mailto:PAYPAL%3Aanthony.minessale@gmail.com" target="_blank">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net" mce_href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org" mce_href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a><br><a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" mce_href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" target="_blank">googletalk:conf+888@conference.freeswitch.org</a><br>
pstn:+19193869900<br>
</div>
<br>_______________________________________________<br>FreeSWITCH-users mailing list<br>FreeSWITCH-users@lists.freeswitch.org<br>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users<br>UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users<br>http://www.freeswitch.org</div></body></html>