aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xchannels/chan_mgcp.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index e068c74a9..171b72297 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;