aboutsummaryrefslogtreecommitdiffstats
path: root/main/rtp.c
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-15 14:57:44 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-15 14:57:44 +0000
commit1816ba3af000df6fc8f93a0e65f45226ac0b705c (patch)
tree318b386838bc490a4d81c8728a323dc1fc209ee6 /main/rtp.c
parentac2e2161334ea33d145dbfe29327073a88cf2b0c (diff)
Merged revisions 85552 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r85552 | file | 2007-10-15 11:55:04 -0300 (Mon, 15 Oct 2007) | 4 lines If Monitor or a spy was added to a P2P or native bridged channel bring the channel back to the generic bridging core so the monitor or spy operations work. (closes issue #10943) Reported by: julianjm ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@85553 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/rtp.c')
-rw-r--r--main/rtp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/main/rtp.c b/main/rtp.c
index 56aabda8d..3c33d820e 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -3226,7 +3226,8 @@ static enum ast_bridge_result bridge_native_loop(struct ast_channel *c0, struct
/* Check if anything changed */
if ((c0->tech_pvt != pvt0) ||
(c1->tech_pvt != pvt1) ||
- (c0->masq || c0->masqr || c1->masq || c1->masqr)) {
+ (c0->masq || c0->masqr || c1->masq || c1->masqr) ||
+ (c0->monitor || c0->audiohooks || c1->monitor || c1->audiohooks)) {
ast_debug(1, "Oooh, something is weird, backing out\n");
if (c0->tech_pvt == pvt0)
if (pr0->set_rtp_peer(c0, NULL, NULL, NULL, 0, 0))
@@ -3520,7 +3521,8 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast
/* Check if anything changed */
if ((c0->tech_pvt != pvt0) ||
(c1->tech_pvt != pvt1) ||
- (c0->masq || c0->masqr || c1->masq || c1->masqr)) {
+ (c0->masq || c0->masqr || c1->masq || c1->masqr) ||
+ (c0->monitor || c0->audiohooks || c1->monitor || c1->audiohooks)) {
ast_debug(3, "p2p-rtp-bridge: Oooh, something is weird, backing out\n");
/* If a masquerade needs to happen we have to try to read in a frame so that it actually happens. Without this we risk being called again and going into a loop */
if ((c0->masq || c0->masqr) && (fr = ast_read(c0)))