Plz get that jira opened! :)<br>-MC<br><br>On Friday, August 31, 2012, Phillip Boles &lt;<a href="mailto:freeswitch-users@vocalspace.com">freeswitch-users@vocalspace.com</a>&gt; wrote:<br>&gt; Anthony,<br>&gt; adding switch_core_session_soft_unlock(session); below switch_core_session_rwunlock(session);<br>
&gt;<br>&gt; moves the call state from CS_SOFT_EXEC to CS_HANGUP but the channel still persists waiting on external entities. I am calling mod_shout to play an audio on the channel earlier in the session.<br>&gt; I dont know if that helps.<br>
&gt; Thanks!<br>&gt; Phillip<br>&gt; On Aug 31, 2012, at 4:16 PM, Phillip Boles wrote:<br>&gt;<br>&gt; Sorry Yes using the latest.<br>&gt;<br>&gt; Using commit a8ce9ac29f3ba000bf42ab2286be04cc7bf9f509<br>&gt; Author: Anthony Minessale &lt;<a href="mailto:anthm@freeswitch.org">anthm@freeswitch.org</a>&gt;<br>
&gt; Date:   Thu Aug 30 17:17:15 2012 -0500<br>&gt;<br>&gt; Changes made switch_cpp.cpp starting at Line 1000<br>&gt; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, &quot;Calling CoreSession::destroy\n&quot;);<br>
&gt;        if (session) {<br>&gt;        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, &quot;We still have valid session\n&quot;);<br>&gt;<br>&gt;                if (!channel) {<br>&gt;                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, &quot;Channel is undefined! Trying to get it!\n&quot;);<br>
&gt;<br>&gt;                        channel = switch_core_session_get_channel(session);<br>&gt;                }<br>&gt;<br>&gt;                if (channel) {<br>&gt;                        switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,<br>
&gt;                                                          &quot;%s destroy/unlink session from object\n&quot;, switch_channel_get_name(channel));<br>&gt;                        switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,<br>
&gt;                                                          &quot;%s destroy/unlink uuid\n&quot;, switch_channel_get_uuid(channel));<br>&gt;                        switch_channel_set_private(channel, &quot;CoreSession&quot;, NULL);<br>
&gt;                        if (switch_channel_up(channel) &amp;&amp; switch_test_flag(this, S_HUP) &amp;&amp; !switch_channel_test_flag(channel, CF_TRANSFER)) {<br>&gt;                                switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);<br>
&gt;                        }<br>&gt;                } else {<br>&gt;                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, &quot;Channel is undefined! We Failed to get it!\n&quot;);<br>&gt;                }<br>
&gt;<br>&gt; [CRIT] switch_cpp.cpp:1000 Calling CoreSession::destroy<br>&gt; [CRIT] switch_cpp.cpp:1002 We still have valid session<br>&gt; [DEBUG] switch_cpp.cpp:1011 sofia/external/12146635351 destroy/unlink session from object<br>
&gt; [DEBUG] switch_cpp.cpp:1013 83451093-e04f-49c1-9f55-5dd966bc4ba9 destroy/unlink uuid<br>&gt; [DEBUG] switch_core_state_machine.c:92 sofia/external/XXXXXXXXXX Standard REPORTING, cause: NORMAL_CLEARING<br>&gt; [DEBUG] switch_core_state_machine.c:703 (sofia/external/XXXXXXXXXX ) State REPORTING going to sleep<br>
&gt; [DEBUG] switch_core_state_machine.c:423 (sofia/external/XXXXXXXXXX ) State Change CS_REPORTING -&gt; CS_DESTROY<br>&gt; [DEBUG] switch_core_session.c:1210 Send signal sofia/external/XXXXXXXXXX  [BREAK]<br>&gt; [DEBUG] switch_core_session.c:1415 Session 2 (sofia/external/XXXXXXXXXX ) Locked, Waiting on external entities<br>
&gt;<br>&gt;<br>&gt;<br>&gt; channel remains hung<br>&gt;<br>&gt; P<br>&gt;<br>&gt; On Aug 31, 2012, at 12:26 PM, Anthony Minessale wrote:<br>&gt;<br>&gt; 1) You did not answer the question if you are on latest GIT HEAD.  If<br>
&gt;<br>&gt; you are on anything else update...<br>&gt;<br>&gt; 2) Add some debugging to switch_cpp.cpp about line 1000<br>&gt;<br>&gt; use lines like this to follow the code paths when you call destroy<br>&gt;<br>&gt; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, &quot;BLAH\n&quot;);<br>
&gt;<br>&gt; The part I am concerned with is when you call destroy you dont see the<br>&gt;<br>&gt; log line you should:<br>&gt;<br>&gt; switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,<br>&gt;<br>
&gt;                             &quot;%s destroy/unlink session from<br>&gt;<br>&gt; object\n&quot;, switch_channel_get_name(channel));<br>&gt;<br>&gt; This makes me wonder if you are some older version...<br>&gt;<br>&gt;<br>
&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; On Fri, Aug 31, 2012 at 11:57 AM, Phillip Boles<br>&gt;<br>&gt; &lt;<a href="mailto:freeswitch-users@vocalspace.com">freeswitch-users@vocalspace.com</a>&gt; wrote:<br>&gt;<br>&gt; var session =  ManagedSession.OriginateHandleHangup(s, dialString, ts, (y)<br>
&gt;<br>&gt; =<br><br>-- <br>Michael S Collins<br>Twitter: @mercutioviz<br><a href="http://www.FreeSWITCH.org" target="_blank">http://www.FreeSWITCH.org</a><br><a href="http://www.ClueCon.com" target="_blank">http://www.ClueCon.com</a><br>
<a href="http://www.OSTAG.org" target="_blank">http://www.OSTAG.org</a><br><br><br>