diff --git a/main/rtp.c b/main/rtp.c index 9237d8963619ed25b3452785f6395d9819baae7b..43a49830ff805d06cd880b683c9934fc9cedf4b7 100644 --- a/main/rtp.c +++ b/main/rtp.c @@ -3070,6 +3070,7 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast (c0->masq || c0->masqr || c1->masq || c1->masqr)) { if (option_debug > 2) ast_log(LOG_DEBUG, "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))) ast_frfree(fr); if ((c1->masq || c1->masqr) && (fr = ast_read(c1)))