From: Joshua Colp Date: Tue, 18 Sep 2018 11:08:24 +0000 (+0000) Subject: res_pjsip_session: Don't add declined stream if one does not exist. X-Git-Tag: 15.7.0-rc1~43^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5626b8ecaecf83f5d600a1aca6915e18a6bb0e5a;p=thirdparty%2Fasterisk.git res_pjsip_session: Don't add declined stream if one does not exist. Given a scenario where a session refresh was done with a removed stream we would always add a removed stream to the outgoing SDP even if one did not already exist. This change makes it so that a removed stream is only placed into the SDP if one already exists. ASTERISK-28047 Change-Id: Ibb97d21cdeb87a8acae0c720861b0ff255708442 --- diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c index 1f9a38232b..68dcf06320 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -1573,6 +1573,11 @@ int ast_sip_session_refresh(struct ast_sip_session *session, /* No need to do anything with stream if it's media state is removed */ if (ast_stream_get_state(stream) == AST_STREAM_STATE_REMOVED) { + /* If there is no existing stream we can just not have this stream in the topology at all. */ + if (!existing_stream) { + ast_stream_topology_del_stream(media_state->topology, index); + index -= 1; + } continue; }