From f912c9e69fc775341b528606b4c5c3dd30a9e92e Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Fri, 1 Sep 2006 18:57:10 +0000
Subject: [PATCH] Unbridge the RTP streams at the correct place

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/rtp.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/main/rtp.c b/main/rtp.c
index 4656be9088..dcdd745a0e 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -159,7 +159,7 @@ struct ast_rtp {
 	int rtp_lookup_code_cache_code;
 	int rtp_lookup_code_cache_result;
 	struct ast_rtcp *rtcp;
-	struct ast_rtp *bridged;        /*!< Who we are Packet briged to */
+	struct ast_rtp *bridged;        /*!< Who we are Packet bridged to */
 };
 
 /* Forward declarations */
@@ -2967,13 +2967,6 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast
 			*rc = who;
 			if (option_debug)
 				ast_log(LOG_DEBUG, "Oooh, got a %s\n", fr ? "digit" : "hangup");
-			/* Break out of the bridge */
-			p0->bridged = NULL;
-			p1->bridged = NULL;
-			if (vp0) {
-				vp0->bridged = NULL;
-				vp1->bridged = NULL;
-			}
 			res = AST_BRIDGE_COMPLETE;
 			break;
 		} else if ((fr->frametype == AST_FRAME_CONTROL) && !(flags & AST_BRIDGE_IGNORE_SIGS)) {
@@ -3021,6 +3014,14 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast
 	if (p1_callback)
 		p1_callback = p2p_callback_disable(c1, p1, &p1_fds[0], &p1_iod[0]);
 
+	/* Break out of the direct bridge */
+	p0->bridged = NULL;
+	p1->bridged = NULL;
+	if (vp0) {
+		vp0->bridged = NULL;
+		vp1->bridged = NULL;
+	}
+
 	return res;
 }
 
-- 
GitLab