[asterisk-bugs] [Asterisk 0018837]: [patch] Deadlock with attended transfer of SIP call

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Feb 21 03:37:42 CST 2011


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=18837 
====================================================================== 
Reported By:                alecdavis
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   18837
Category:                   Core/RTP
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     ready for testing
Asterisk Version:           1.8.2.3 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2011-02-17 19:25 CST
Last Modified:              2011-02-21 03:37 CST
====================================================================== 
Summary:                    [patch] Deadlock with attended transfer of SIP call
Description: 
3 SIP phones.

A calls B, and B answers on line 1.
B puts A on hold by selecting line2.
B calls C, and C answers.
B initiates transfer of line1 to line2, phone uses REFER.


======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
has duplicate       0018468 SIP crash on transfer
has duplicate       0018734 Combination dtmfmode=info, directmedia=...
====================================================================== 

---------------------------------------------------------------------- 
 (0132221) Irontec (reporter) - 2011-02-21 03:37
 https://issues.asterisk.org/view.php?id=18837#c132221 
---------------------------------------------------------------------- 
We only use SIP channels (gateways, providers...) but I understand that the
 patch (rtp_engine.c) will be like: 

--- main/rtp_engine.c	(revision 306862)
+++ main/rtp_engine.c	(working copy)
@@ -1202,10 +1202,15 @@
 		cs[1] = cs[2];
 	}
 
-	if (glue0->update_peer(c0, NULL, NULL, NULL, 0, 0)) {
+	if (ast_test_flag(c0, AST_FLAG_ZOMBIE)) {
+		ast_debug(1, "Channel '%s' Zombie cleardown from bridge\n", c0->name);
+	else if (glue0 != ast_rtp_instance_get_glue(c0->tech->type)) {
+	        ast_log(LOG_WARNING, "Channel c0->'%s' technology changed, in
bridge with c1->'%s'\n", c0->name, c1->name);
+	} else if (glue0->update_peer(c0, NULL, NULL, NULL, 0, 0)) {
 		ast_log(LOG_WARNING, "Channel '%s' failed to break RTP bridge\n",
c0->name);
 	}
-	if (glue1->update_peer(c1, NULL, NULL, NULL, 0, 0)) {
+
+	if (ast_test_flag(c1, AST_FLAG_ZOMBIE)) {
+		ast_debug(1, "Channel '%s' Zombie cleardown from bridge\n", c1->name);
+	} else if (glue1->update_peer(c1, NULL, NULL, NULL, 0, 0)) {
 		ast_log(LOG_WARNING, "Channel '%s' failed to break RTP bridge\n",
c1->name);
 	}


It's OK??? 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-02-21 03:37 Irontec        Note Added: 0132221                          
======================================================================




More information about the asterisk-bugs mailing list