From 693c06f8a3d668289ef0178647ef67c6a24d664c Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Sat, 16 Sep 2017 11:19:59 -0300 Subject: 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 --- channels/chan_iax2.c | 1 + 1 file changed, 1 insertion(+) (limited to 'channels/chan_iax2.c') 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: -- cgit v1.2.3