[asterisk-bugs] [Asterisk 0010337]: 1.2 version of : 0008943: inUse counter not decremented after hanging up a call which is on hold

noreply at bugs.digium.com noreply at bugs.digium.com
Tue Jul 31 20:24:21 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=10337 
====================================================================== 
Reported By:                cyber_monk
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   10337
Category:                   Channels/chan_sip/Transfers
Reproducibility:            always
Severity:                   block
Priority:                   normal
Status:                     new
Asterisk Version:            1.2.23  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             07-30-2007 20:39 CDT
Last Modified:              07-31-2007 20:24 CDT
====================================================================== 
Summary:                    1.2 version of : 0008943: inUse counter not
decremented after hanging up a call which is on hold
Description: 
Issue 0008943 affecting asterisk 1.4 also happens in asterisk 1.2 starting
with release 1.2.16. 1.2.15 does not exhibit the block. 

When a sip call is put on hold the peer inuse count increments and never
gets decremented for the peer that placed the call on hold. Subsequently
any extensions that place calls on hold very quickly become unuseable !

This was discovered by a site that uses attended transfers heavily.


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

---------------------------------------------------------------------- 
 cyber_monk - 07-31-07 20:24  
---------------------------------------------------------------------- 
I was poking in debug to see what was happening and had three possibilites
:-

1) double dec causing overrun
2) dec getting missed cause of hold
3) bitwise contamination is flags

Thanks thats gets me closer. So The fix for Issue 0008943 affecting
asterisk 1.4 would solve this too. If we mark the call as OUTBOUND at
initiation and then use that marker to decide which stucture (user/peer) to
dec on destruction of the channel we should always get it right. Okay will
target that now as I get time but still can't help thinking there must be a
more fluid way of tracking the INBOUND/OUTBOUND switch after hold.

Also if I understand this correctly does that mean with a call-limit=1
where a user can only take one incoming (and make one outgoing) call
simultaneously, that attended transfers are not possible. Maybe the sip
protocol doesn't allow this but should we not have the INBOUND and OUTBOUND
revent back to as the were after HOLD is recovered ?

Anyway lets get call-limit working as per docs again with HOLD fixed. 

Cheers. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
07-31-07 20:24  cyber_monk     Note Added: 0068176                          
======================================================================




More information about the asterisk-bugs mailing list