summaryrefslogtreecommitdiff
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2017-09-16 11:19:59 -0300
committerJoshua Colp <jcolp@digium.com>2017-09-21 12:20:02 -0500
commitf2985e310663b67ccc948515efeae500bdf94a0c (patch)
tree311acb73d162a6611503b0e859b4576f7b6426d8 /channels/chan_iax2.c
parent5ff46578aa20921cf3649809a9be9b7231acc507 (diff)
bridge: Change participant SFU streams when source streams change.
Some endpoints do not like a stream being reused for a new media stream. The frame/jitterbuffer can rely on underlying attributes of the media stream in order to order the packets. When a new stream takes its place without any notice the buffer can get confused and the media ends up getting dropped. This change uses the SSRC change to determine that a new source is reusing an existing stream and then bridge_softmix renegotiates each participant such that they see a new media stream. This causes the frame/jitterbuffer to start fresh and work as expected. ASTERISK-27277 Change-Id: I30ccbdba16ca073d7f31e0e59ab778c153afae07
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r--channels/chan_iax2.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 490c4cea5..04aa228bf 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -1433,6 +1433,7 @@ static int iax2_is_control_frame_allowed(int subtype)
/* Intended only for internal stream topology manipulation. */
case AST_CONTROL_STREAM_TOPOLOGY_CHANGED:
/* Intended only for internal stream topology change notification. */
+ case AST_CONTROL_STREAM_TOPOLOGY_SOURCE_CHANGED:
case AST_CONTROL_STREAM_STOP:
case AST_CONTROL_STREAM_SUSPEND:
case AST_CONTROL_STREAM_RESTART: