[asterisk-bugs] [Asterisk 0010297]: Unload/load support for chan_skinny

noreply at bugs.digium.com noreply at bugs.digium.com
Thu Jul 26 18:39:57 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=10297 
====================================================================== 
Reported By:                DEA
Assigned To:                qwell
====================================================================== 
Project:                    Asterisk
Issue ID:                   10297
Category:                   Channels/chan_skinny
Reproducibility:            N/A
Severity:                   feature
Priority:                   normal
Status:                     assigned
Asterisk Version:            SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 76940 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             07-25-2007 01:40 CDT
Last Modified:              07-26-2007 18:39 CDT
====================================================================== 
Summary:                    Unload/load support for chan_skinny
Description: 
Reload is not working, but unload and load do work.
My reload code is ugly-simple, it calls the unload 
function, then the load function.  I would have thought
if I could manually unload and load that would be enough.


My threading knowledge is more than a bit weak, but the
existing code was 90% there already.  We needed to store
the address of the skinny_session thread launch from within
accept_thread so we could later cancel it.

Interestingly the skinnysession structure had a member to
store the thread address, but it did not appear to be used.

I also move the teardown of the accept thread to a point before
tearing down the sessions (and their threads) to prevent a phone
from trying to re-register and recreating a session thread after
we had processed it.


====================================================================== 

---------------------------------------------------------------------- 
 DEA - 07-26-07 18:39  
---------------------------------------------------------------------- 
OK, the segfault on an orphaned channel was easy to fix, just test for the
existence of d before testing d->registered in skinny_hangup()

Channels can be soft hungup.  If the far end is a channel that has it's
own hangup callback, and that end initiates the hangup, the channel will
be
cleared.

Any tips on how to detect the orphaned channel to allow it to be cleaned
up? 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
07-26-07 18:39  DEA            Note Added: 0067956                          
======================================================================




More information about the asterisk-bugs mailing list