[asterisk-bugs] [Asterisk 0016862]: [regression] One-legged Transfer (INVITE / Replaces) not working anymore

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Feb 19 13:54:40 CST 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=16862 
====================================================================== 
Reported By:                pwalker
Assigned To:                dvossel
====================================================================== 
Project:                    Asterisk
Issue ID:                   16862
Category:                   Channels/chan_sip/Transfers
Reproducibility:            always
Severity:                   block
Priority:                   normal
Status:                     assigned
Asterisk Version:           SVN 
JIRA:                       SWP-939 
Regression:                 Yes 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-02-18 07:57 CST
Last Modified:              2010-02-19 13:54 CST
====================================================================== 
Summary:                    [regression] One-legged Transfer (INVITE / Replaces)
not working anymore
Description: 
It seems that the "One legged Transfer" (INVITE with replaces: header) is
not working anymore in newer Versions of the 1.4 Branch.
The function has been working up to Asterisk 1.4.26.3, but doesn't
starting from 1.4.27.1 (including latest stable 1.4.29 and 1.4.30-rc2).
(With exactely the same configuration.)

Scenario:
- 10013 ("Test3") calls 10012  ("Test2")
- 10014 ("Test4") tries to pick up the call
Result:
- On phone 10012, the call is ended
- 10013 seems to answer / pick up the call, but there's no connection (no
audio)
- 10014 keeps playing the Ring-back Tone

======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0015151 [patch] Deadlock On One-legged Transfer...
====================================================================== 

---------------------------------------------------------------------- 
 (0118299) pwalker (reporter) - 2010-02-19 13:54
 https://issues.asterisk.org/view.php?id=16862#c118299 
---------------------------------------------------------------------- 
Quick fix to get one legged transfers working:
In channels/chan_sip.c - handle_invite_replaces(), bring back in some of
the lines which were removed in SVN Revision 219303 (
http://svnview.digium.com/svn/asterisk?revision=219303&view=revision )
- at the end of the function, where stuff is being unlocked (approx. @
Line 14452) add the line
 ast_channel_unlock(p->owner);	/* Unlock new owner */
(btw: is "ast_channel_unlock(c);" really correct there?)
- a bit more up in the function, after "Invite/Replaces: preparing to
masquerade ..." (approx. Line 14414), add
 /* Unlock PVT */		
 ast_mutex_unlock(&p->refer->refer_call->lock);

WARNING: This might break other things, e.g. especially attended /
semi-attended transfers!!! But the one-legger / Pick Up works with no Locks
left. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-02-19 13:54 pwalker        Note Added: 0118299                          
======================================================================




More information about the asterisk-bugs mailing list