Index: main/rtp_engine.c =================================================================== --- main/rtp_engine.c (revision 308199) +++ main/rtp_engine.c (working copy) @@ -1075,6 +1075,7 @@ cs[0] = c0; cs[1] = c1; cs[2] = NULL; + ast_log(LOG_WARNING, "Channels c0->'%s' c1->'%s' in remote_bridge_loop\n", c0->name, c1->name); for (;;) { /* Check if anything changed */ if ((c0->tech_pvt != pvt0) || @@ -1082,6 +1083,7 @@ (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"); + ast_log(LOG_WARNING, "Oooh, something is weird, backing out\n"); res = AST_BRIDGE_RETRY; break; } @@ -1270,11 +1272,20 @@ cs[1] = cs[2]; } - if (glue0->update_peer(c0, NULL, NULL, NULL, 0, 0)) { - ast_log(LOG_WARNING, "Channel '%s' failed to break RTP bridge\n", c0->name); + if (c0->tech_pvt != pvt0) { + ast_log(LOG_WARNING, "Channel c0->'%s' changed, in bridge with c1->'%s'\n", c0->name, c1->name); + } else { + if (glue0->update_peer(c0, NULL, NULL, NULL, 0, 0)) { + ast_log(LOG_WARNING, "Channel '%s' failed to break RTP bridge\n", c0->name); + } } - if (glue1->update_peer(c1, NULL, NULL, NULL, 0, 0)) { - ast_log(LOG_WARNING, "Channel '%s' failed to break RTP bridge\n", c1->name); + + if (c1->tech_pvt != pvt1) { + ast_log(LOG_WARNING, "Channel c1->'%s' changed, in bridge with c0->'%s'\n", c1->name, c0->name); + } else { + if (glue1->update_peer(c1, NULL, NULL, NULL, 0, 0)) { + ast_log(LOG_WARNING, "Channel '%s' failed to break RTP bridge\n", c1->name); + } } instance0->bridged = NULL;