<div>So the background is that we run a call-center with a lot of detailed tracking of the stages of calls for better monitoring of Rep&#39;s performance. Later I hope to shift that to the event socket where it ought to be, but for now, it&#39;s done inline in the dialplan using JS, often run asynchronously, so as to not hold up the call while making a database insert.</div>

<div><br></div><div>We handle lots of different scenarios including inbound calls going to queues, attended transfer of calls, and several other things. Some of these are not implemented in the best manner due to the combination of 3 factors:</div>

<div>- inexperience with telephony (a lot of the code was done 2 years ago, with bits upgraded since then. I had used asterisk for a couple of months before that, and come from a webapp development background)</div><div>
- lack of documentation for FS (most things are covered briefly, but many things are only covered briefly)</div>
<div>- lack of time to work on implementing things properly (telephony is an important part of our business, but other areas have needed development more.)</div><div><br></div><div>The steps happening in our dialplan:</div>

<div><br></div><div>1) Website: database insert for the call, with status set to initialised</div><div>2) Website runs this command via ESL:</div><div>api originate {callId=$callId,personId=$_PERSONID,agentExtn=$fromNum,language=en-us,Outbound=Yes}user/$fromNum@$freeswitchDomain $toNumClean</div>

<div>(This dial&#39;s the rep&#39;s extn, then once they pick up it starts the bridge to the external number.)</div><div>3) This hits the end of the attached dialplan (StaffeySwitchboard) which runs a JS file</div><div>4) MainMenuCallsIn.js: sets some variables, and in this case sets ${destinationNumber} then transfers to &quot;outbound_call XML outbound_call&quot; which then runs another JS file:</div>

<div>5) OutboundCall.js: does a manual version of LCR, by looking at the phonenumber prefix and choosing a gateway and setting the variable ${dial_string}, then the dialplan transfers to &quot;ConnectBLeg XML DecideWhetherToCall&quot;</div>

<div>6) That dialplan does several things:</div><div>   a) Runs BridgeBefore.js - in this scenario the only thing it really does is set api_hangup_hook</div><div>   b) Runs api_Call_Stage_Update_SP.js in background (non-blocking so it doesn&#39;t delay the call connection), which updates the database&#39;s call-status to pickup delay (ringing / early-media )</div>

<div>   c) Exports some variables to the b-leg and start recording</div><div>   d) Sets api_Call_Stage_Update_SP.js to run when the call is connected to update the database call-status to spoke-to (call connected / answered)</div>

<div>   e) Bridge to ${dial_string}</div><div>   f)  End recording and run BridgeEnded.js to set the database call-status </div><div>   g) In other scenarios another action might be needed after a call finishes, but in this case it doesn&#39;t do anything.</div>

<div><br></div><div>I&#39;ve attached the JS files for steps 4 and 5, but not any of the ones in (6), as they&#39;re all pretty small and simple.</div><div><br></div><div>Feel free to let me know anything you think I ought to change, I&#39;m happy to get any feedback you&#39;re willing to give. Though really I&#39;m most interested in solving this problem with calls getting hungup after 5 minutes.</div>

<div><br clear="all">Cheers,<br>Fraser<br><br><br>
<br><br><div class="gmail_quote">On 15 February 2012 03:39, Oz Mortimer <span dir="ltr">&lt;<a href="mailto:oz@o-tec.tv">oz@o-tec.tv</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div lang="EN-GB" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Hi Fraser,<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Your console output in pastbin isn’t complete so of limited use. I’d really need to see you dialplan xml along with possibly your js – feel free to pm me. You dialplan seems overly complicated too, you should be able to all of that within a single js application.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>

<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> <a 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" target="_blank">freeswitch-users-bounces@lists.freeswitch.org</a>] <b>On Behalf Of </b>Fraser Redmond<br>

<b>Sent:</b> 14 February 2012 21:26<br><b>To:</b> FreeSWITCH Users Help</span></p><div class="im"><br><b>Subject:</b> Re: [Freeswitch-users] Calls ending after around 5min<u></u><u></u></div><p></p></div><p class="MsoNormal">

<u></u> <u></u></p><p class="MsoNormal">I thought that too, and had done a text-search my code for sched_hangup, and there&#39;s no mention of it anywhere.<u></u><u></u></p><div><div class="h5"><div><p class="MsoNormal">
<u></u> <u></u></p>
</div><div><p class="MsoNormal">Is there anything else that would set it based on other variables being set? The closest things I have is I&#39;m setting api_hangup_hook to run some javascript when the call is hung up, and hangup_after_bridge=false<u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">My dialplan is fairly complicated (several js files get run to do database logging, business logic, etc.) So the console output is probably more helpful:<u></u><u></u></p>

</div><div><p class="MsoNormal"><a href="http://pastebin.freeswitch.org/18385" target="_blank">http://pastebin.freeswitch.org/18385</a> <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><br clear="all">

Cheers,<br>Fraser<br><br><br><br><u></u><u></u></p><div><p class="MsoNormal">On 14 February 2012 15:41, Michael Collins &lt;<a href="mailto:msc@freeswitch.org" target="_blank">msc@freeswitch.org</a>&gt; wrote:<u></u><u></u></p>

<p class="MsoNormal">Like omortimer says it looks suspicious. I&#39;d pastebin your dialplan and the console log of a single call coming in (or going out) and let&#39;s see if you&#39;ve got a sched_hangup in there somewhere.<span style="color:#888888"><br>

<br><span>-MC</span></span><u></u><u></u></p><div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p><div><p class="MsoNormal">On Tue, Feb 14, 2012 at 12:26 PM, Fraser Redmond &lt;<a href="mailto:fraserredmond@gmail.com" target="_blank">fraserredmond@gmail.com</a>&gt; wrote:<u></u><u></u></p>

<p class="MsoNormal">I&#39;ve done a test call, and got a pcap of it, along with a sip debug. (I can email you files if you are willing to take a look.)<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div>

<div><p class="MsoNormal">There&#39;s no sip traffic until it gets to the log lines I pasted before, which is followed by the server sending a BYE to the gateway and client.<u></u><u></u></p></div><div><p class="MsoNormal">

<u></u> <u></u></p></div><div><p class="MsoNormal">I did a google search on &quot;nat timeout&quot;, but the only thing relevant seemed to be the rtp-timeout and session-timeout which I mentioned before.<u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I really think there&#39;s a setting somewhere telling it to hangup. The logs have things like this as the call is being hung up (but before the BYE&#39;s are sent) which seem suspicious<u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">&gt; Added task 4 switch_ivr_schedule_hangup (uuid) to run at 1329249352<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p>

</div><div><p class="MsoNormal">&gt; ending bridge by request from read function<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><br clear="all">Cheers,<br>Fraser<br><br><br><br><u></u><u></u></p>

<div><p class="MsoNormal">On 14 February 2012 14:08, Michael Collins &lt;<a href="mailto:msc@freeswitch.org" target="_blank">msc@freeswitch.org</a>&gt; wrote:<u></u><u></u></p><p class="MsoNormal" style="margin-bottom:12.0pt">

I would get pcaps of the calls that drop at 5 minutes, including media. If you need suggestions on how to collect pcaps then check out this page:<br><br><a href="http://wiki.freeswitch.org/wiki/Packet_Capture" target="_blank">http://wiki.freeswitch.org/wiki/Packet_Capture</a><br>

<br>Lots of tools at your disposal! Don&#39;t forget that Wireshark has a really nice interface for exploring SIP calls and RTP streams.<br><br>-MC<u></u><u></u></p><div><div><div><p class="MsoNormal">On Tue, Feb 14, 2012 at 10:16 AM, Fraser Redmond &lt;<a href="mailto:fraserredmond@gmail.com" target="_blank">fraserredmond@gmail.com</a>&gt; wrote:<u></u><u></u></p>

</div></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm"><div><div><p class="MsoNormal">I&#39;ve got calls that are getting disconnected after 5 minutes (.<u></u><u></u></p>

<div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">There&#39;s some calls that don&#39;t, and we don&#39;t have many calls that last that long (which is why we hadn&#39;t noticed until now.)<u></u><u></u></p>

<div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I&#39;ve had a look through the documentation, and the only thing I saw that looked likely was the rtp-timeouts which I changed to this without any change:<br>

    &lt;param name=&quot;rtp-timeout-sec&quot; value=&quot;1800&quot;/&gt;<u></u><u></u></p><div><p class="MsoNormal">    &lt;param name=&quot;rtp-hold-timeout-sec&quot; value=&quot;1800&quot;/&gt;<u></u><u></u></p></div>

<div><p class="MsoNormal">(changed in internal and external profiles)<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Here&#39;s the log output for when the call ends:<u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><p class="MsoNormal">9d39d866-5732-11e1-b1a8-05fc5f64fa97 2012-02-14 17:42:58.340991 [DEBUG] switch_core_session.c:1009 Send signal sofia/internal/<a href="http://sip:12605@99.237.220.56:3907" target="_blank">sip:12605@99.237.220.56:3907</a> [BREAK]<u></u><u></u></p>

</div><div><p class="MsoNormal">2012-02-14 17:42:58.340991 [DEBUG] switch_scheduler.c:214 Added task 4 switch_ivr_schedule_hangup (9d39d866-5732-11e1-b1a8-05fc5f64fa97) to run at 1329241378<u></u><u></u></p></div><div><p class="MsoNormal">

9d39d866-5732-11e1-b1a8-05fc5f64fa97 2012-02-14 17:42:58.361011 [DEBUG] switch_core_session.c:726 Send signal sofia/internal/<a href="http://sip:12605@99.237.220.56:3907" target="_blank">sip:12605@99.237.220.56:3907</a> [BREAK]<u></u><u></u></p>

</div><div><p class="MsoNormal">9d39d866-5732-11e1-b1a8-05fc5f64fa97 2012-02-14 17:42:58.521032 [DEBUG] switch_ivr.c:589 sofia/internal/<a href="http://sip:12605@99.237.220.56:3907" target="_blank">sip:12605@99.237.220.56:3907</a> Command Execute respond(603)<u></u><u></u></p>

</div><div><p class="MsoNormal">9d39d866-5732-11e1-b1a8-05fc5f64fa97 EXECUTE sofia/internal/<a href="http://sip:12605@99.237.220.56:3907" target="_blank">sip:12605@99.237.220.56:3907</a> respond(603)<u></u><u></u></p></div>

<div><p class="MsoNormal">9d39d866-5732-11e1-b1a8-05fc5f64fa97 2012-02-14 17:42:58.521032 [DEBUG] mod_sofia.c:2363 Responding with 603 [Decline]<u></u><u></u></p></div><div><p class="MsoNormal"><br>Any other settings I should be looking at?<u></u><u></u></p>

</div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Cheers,<br>Fraser<br><br><u></u><u></u></p></div></div></div><p class="MsoNormal"><u></u> <u></u></p></div>

</div><p class="MsoNormal" style="margin-bottom:12.0pt">_________________________________________________________________________<br>Professional FreeSWITCH Consulting Services:<br><a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>

<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br><br>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br><a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>

<br>Official FreeSWITCH Sites<br><a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br><a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br><a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>

<br>FreeSWITCH-users mailing list<br><a 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" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>

UNSUBSCRIBE:<a 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" target="_blank">http://www.freeswitch.org</a><u></u><u></u></p>

</blockquote></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br><br>_________________________________________________________________________<br>Professional FreeSWITCH Consulting Services:<br><a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>

<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br><br>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br><a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>

<br>Official FreeSWITCH Sites<br><a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br><a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br><a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>

<br>FreeSWITCH-users mailing list<br><a 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" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>

UNSUBSCRIBE:<a 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" target="_blank">http://www.freeswitch.org</a><u></u><u></u></p>

</div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>_________________________________________________________________________<br>Professional FreeSWITCH Consulting Services:<br>

<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br><a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br><br>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>

<a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br><br>Official FreeSWITCH Sites<br><a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br><a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>

<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br><br>FreeSWITCH-users mailing list<br><a 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" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>UNSUBSCRIBE:<a 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" target="_blank">http://www.freeswitch.org</a><u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>_________________________________________________________________________<br>

Professional FreeSWITCH Consulting Services:<br><a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br><a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>

<br>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br><a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br><br>Official FreeSWITCH Sites<br><a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>

<a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br><a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br><br>FreeSWITCH-users mailing list<br><a 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" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>UNSUBSCRIBE:<a 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" target="_blank">http://www.freeswitch.org</a><u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div></div><br>_________________________________________________________________________<br>


Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
<a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a 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" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br></div>