aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2006-09-01 17:54:22 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2006-09-01 17:54:22 +0000
commit99355c0ba46364c365629eaba70c0ef86227222a (patch)
treed3fe4ddb989ebc789fa0dcef20266cb9abde6e03 /main
parentfff8a4e8f2ec72df731b6419c6a8b5e5a960bd2b (diff)
If we are doing video and we can't reinvite, then resort to generic bridging instead of Packet2Packet since video isn't supported there yet. (reported by PCadach in #asterisk-bugs)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@41718 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/rtp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/main/rtp.c b/main/rtp.c
index b62ed1480..4656be908 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -3070,7 +3070,13 @@ enum ast_bridge_result ast_rtp_bridge(struct ast_channel *c0, struct ast_channel
audio_p1_res = pr1->get_rtp_info(c1, &p1);
video_p1_res = pr1->get_vrtp_info ? pr1->get_vrtp_info(c1, &vp1) : AST_RTP_GET_FAILED;
- /* Check if bridge is still possible (In SIP canreinvite=no stops this, like NAT) */
+ /* If we are carrying video, and both sides are not reinviting... then fail the native bridge */
+ if (video_p0_res != AST_RTP_GET_FAILED && (audio_p0_res != AST_RTP_TRY_NATIVE || video_p0_res != AST_RTP_TRY_NATIVE))
+ audio_p0_res = AST_RTP_GET_FAILED;
+ if (video_p1_res != AST_RTP_GET_FAILED && (audio_p1_res != AST_RTP_TRY_NATIVE || video_p1_res != AST_RTP_TRY_NATIVE))
+ audio_p1_res = AST_RTP_GET_FAILED;
+
+ /* Check if a bridge is possible (partial/native) */
if (audio_p0_res == AST_RTP_GET_FAILED || audio_p1_res == AST_RTP_GET_FAILED) {
/* Somebody doesn't want to play... */
ast_channel_unlock(c0);