Thank you Anthony, solved!<div>I have in my code a call to a "switch_core_session_locate" so, as you say, after adding a "switch_core_session_rwunlock" the problem disappear and there are no more "zombie" sessions in my Freeswitch.</div>
<div><br></div><div>Stephen</div><br><div class="gmail_quote">On Fri, Nov 11, 2011 at 12:34 AM, Anthony Minessale <span dir="ltr"><<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">look for something that calls either switch_core_session_locate switch_core_session_get_partner or something that calls switch_core_session_read_lock(session); in all of these cases its necessary to call switch_core_session_rwunlock(session); before letting the session pointer go out of scope.<div>
<br><br><div class="gmail_quote"><div><div class="h5">On Thu, Nov 10, 2011 at 3:17 PM, Stephen Wilde <span dir="ltr"><<a href="mailto:wstephen80@gmail.com" target="_blank">wstephen80@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
I have the necessity to hangup a channel inside a media bug callback in a my custom module.<div><br><div>Currently, what I do is:</div><div><br></div><div><div>static switch_bool_t my_media_callback(switch_media_bug_t *bug, void *user_data, switch_abc_type_t type)</div>
<div>{</div><div> struct my_custom_helper * my_helper = (struct my_custom_helper *) user_data;</div><div><br></div><div> switch (type) {</div></div><div> case SWITCH_ABC_TYPE_READ_REPLACE:</div><div> case SWITCH_ABC_TYPE_WRITE_REPLACE:</div>
<div> {</div><div> switch_frame_t *frame;</div><div><br></div><div> if (sth->read) {</div><div> frame = switch_core_media_bug_get_read_replace_frame(bug);</div><div> } else {</div>
<div> frame = switch_core_media_bug_get_write_replace_frame(bug);</div><div> }</div><div><br></div><div> /*</div><div> ....</div><div> media analysis</div><div> ....</div>
<div> */</div><div><br></div><div> if (to_hangup) {</div><div> switch_channel_t *channel = switch_core_session_get_channel(my_helper->session);</div><div><br></div><div> if (channel) {</div>
<div> switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);</div><div> }</div><div> }</div><div> }</div><div><br></div><div> return SWITCH_TRUE;</div><div>}</div>
<div><br></div><div><br></div><div>The dropped channel is a b-leg, previously bridged with an a-leg (incoming call).</div><div><br></div><div>Probably in my code there is an error because the code works fine and the channel is correctly dropped but inside Freeswitch remain some "zombies" calls.</div>
<div>If I issue a fs_cli "show channels" I see that there are some calls dropped by my module showed in "ACTIVE" state.</div><div>What is wrong with my channel hangup?</div><div><br></div><div>Thanks in advance</div>
<div>Stephen </div>
</div>
<br><br></div></div>
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><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
Twitter: <a 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" target="_blank">MSN:anthony_minessale@hotmail.com</a><br>
GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com" target="_blank">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a 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" target="_blank">sip:888@conference.freeswitch.org</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" target="_blank">googletalk:conf+888@conference.freeswitch.org</a><br>
pstn:<a href="tel:%2B19193869900" value="+19193869900" target="_blank">+19193869900</a><br>
</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>