]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_pjsip_sdp_rtp: Don't wait for ICE if not negotiated
authorTorrey Searle <torrey@voxbone.com>
Thu, 5 Mar 2020 09:08:54 +0000 (10:08 +0100)
committerSean Bright <sean.bright@gmail.com>
Thu, 5 Mar 2020 16:27:23 +0000 (10:27 -0600)
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

res/res_pjsip_sdp_rtp.c

index 15245f2247577e0a7ce5cc1078ac0e7c4285afe7..c745bafe603d06b200e6eb870ac8e7feea5215fe 100644 (file)
@@ -531,6 +531,9 @@ static void add_ice_to_stream(struct ast_sip_session *session, struct ast_sip_se
 
        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;
        }