From d1be79cce2e337da1a4e4e43744b772bc51871f6 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Fri, 17 Sep 2004 20:08:40 +0000
Subject: [PATCH] If singlepath=yes, don't send multiple RTP streams during
 transfer

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_mgcp.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index e068c74a99..171b72297d 100755
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -3,9 +3,9 @@
  *
  * Implementation of Media Gateway Control Protocol
  * 
- * Copyright (C) 1999, Mark Spencer
+ * Copyright (C) 1999-2004, Digium, Inc.
  *
- * Mark Spencer <markster@linux-support.net>
+ * Mark Spencer <markster@digium.com>
  *
  * This program is free software, distributed under the terms of
  * the GNU General Public License
@@ -1137,8 +1137,10 @@ static int mgcp_write(struct ast_channel *ast, struct ast_frame *frame)
 	}
 	if (sub) {
 		ast_mutex_lock(&sub->lock);
-		if (sub->rtp) {
-			res =  ast_rtp_write(sub->rtp, frame);
+		if ((sub->parent->sub == sub) || !sub->parent->singlepath) {
+			if (sub->rtp) {
+				res =  ast_rtp_write(sub->rtp, frame);
+			}
 		}
 		ast_mutex_unlock(&sub->lock);
 	}
@@ -3674,6 +3676,7 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
                     e->callreturn = callreturn;
                     e->cancallforward = cancallforward;
                     e->canreinvite = canreinvite;
+                    e->singlepath = singlepath;
                     e->callwaiting = callwaiting;
             		e->slowsequence = slowsequence;
                     e->transfer = transfer;
-- 
GitLab