If ICE support is enabled but not negotiated, the rtp->ice structure is
not being destroyed. This leads to Asterisk waiting for ICE to complete
instead of immediately starting the DTLS handshake, resulting in the
call leg having no RTP.
ASTERISK-28769 #close
Change-Id: I17c137546dc9ecfb9583c24dcf4c2ced8bbd7a27
if (!session->endpoint->media.rtp.ice_support || !(ice = ast_rtp_instance_get_ice(session_media->rtp)) ||
!session_media->remote_ice || !(candidates = ice->get_local_candidates(session_media->rtp))) {
+ if (ice) {
+ ice->stop(session_media->rtp);
+ }
return;
}