mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Unbridge the RTP streams at the correct place
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
17
main/rtp.c
17
main/rtp.c
@@ -159,7 +159,7 @@ struct ast_rtp {
|
||||
int rtp_lookup_code_cache_code;
|
||||
int rtp_lookup_code_cache_result;
|
||||
struct ast_rtcp *rtcp;
|
||||
struct ast_rtp *bridged; /*!< Who we are Packet briged to */
|
||||
struct ast_rtp *bridged; /*!< Who we are Packet bridged to */
|
||||
};
|
||||
|
||||
/* Forward declarations */
|
||||
@@ -2967,13 +2967,6 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast
|
||||
*rc = who;
|
||||
if (option_debug)
|
||||
ast_log(LOG_DEBUG, "Oooh, got a %s\n", fr ? "digit" : "hangup");
|
||||
/* Break out of the bridge */
|
||||
p0->bridged = NULL;
|
||||
p1->bridged = NULL;
|
||||
if (vp0) {
|
||||
vp0->bridged = NULL;
|
||||
vp1->bridged = NULL;
|
||||
}
|
||||
res = AST_BRIDGE_COMPLETE;
|
||||
break;
|
||||
} else if ((fr->frametype == AST_FRAME_CONTROL) && !(flags & AST_BRIDGE_IGNORE_SIGS)) {
|
||||
@@ -3021,6 +3014,14 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast
|
||||
if (p1_callback)
|
||||
p1_callback = p2p_callback_disable(c1, p1, &p1_fds[0], &p1_iod[0]);
|
||||
|
||||
/* Break out of the direct bridge */
|
||||
p0->bridged = NULL;
|
||||
p1->bridged = NULL;
|
||||
if (vp0) {
|
||||
vp0->bridged = NULL;
|
||||
vp1->bridged = NULL;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user