diff --git a/daemon/call.c b/daemon/call.c index 20e57edc4..129eb9675 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -1010,6 +1010,8 @@ static void __assign_stream_fds(struct call_media *media, GQueue *intf_sfds) { struct intf_list *il = l->data; struct stream_fd *sfd = g_queue_peek_nth(&il->list, ps->component - 1); + if (!sfd) + sfd = ps->selected_sfd; if (!sfd) { // create a dummy sfd. needed to hold RTCP crypto context when // RTCP-mux is in use diff --git a/t/auto-daemon-tests.pl b/t/auto-daemon-tests.pl index 409ba38b2..03e048b4c 100755 --- a/t/auto-daemon-tests.pl +++ b/t/auto-daemon-tests.pl @@ -1164,6 +1164,64 @@ is($ufrag_a, $ufrag_b, 'ufrag match'); new_call; +($port_a, $port_ax, $ufrag_a) = offer('ICE re-invite w rtcp-mux', + { ICE => 'force', 'rtcp-mux' => ['require'] }, < 'force', 'rtcp-mux' => ['require'] }, < 'force', flags => ['no port latching']}, <