<p>Joshua Colp has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/6393">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">res_pjsip_session: Preserve stream name during renegotiation.<br><br>Stream names within Asterisk can have meaning so when an externally<br>initiated renegotiation occurs we need to preserve the name of<br>the stream if it already exists.<br><br>Change-Id: I29f50d0cc7f3238287d6d647777e76e1bdf8c596<br>---<br>M res/res_pjsip_session.c<br>1 file changed, 15 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/93/6393/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c<br>index 76550ed..b6fa8bb 100644<br>--- a/res/res_pjsip_session.c<br>+++ b/res/res_pjsip_session.c<br>@@ -588,7 +588,14 @@<br>                    stream = ast_stream_topology_get_stream(session->pending_media_state->topology, i);<br>             }<br>             if (!stream) {<br>-                       stream = ast_stream_alloc(ast_codec_media_type2str(type), type);<br>+                     struct ast_stream *existing_stream = NULL;<br>+<br>+                        if (session->active_media_state->topology &&<br>+                           (i < ast_stream_topology_get_count(session->active_media_state->topology))) {<br>+                               existing_stream = ast_stream_topology_get_stream(session->active_media_state->topology, i);<br>+                    }<br>+<br>+                 stream = ast_stream_alloc(existing_stream ? ast_stream_get_name(existing_stream) : ast_codec_media_type2str(type), type);<br>                     if (!stream) {<br>                                return -1;<br>                    }<br>@@ -1586,6 +1593,7 @@<br>              char media[20];<br>               struct ast_sip_session_sdp_handler *handler;<br>          RAII_VAR(struct sdp_handler_list *, handler_list, NULL, ao2_cleanup);<br>+                struct ast_stream *existing_stream = NULL;<br>            struct ast_stream *stream;<br>            enum ast_media_type type;<br>             struct ast_sip_session_media *session_media = NULL;<br>@@ -1594,8 +1602,13 @@<br>           /* We need a null-terminated version of the media string */<br>           ast_copy_pj_str(media, &sdp->media[i]->desc.media, sizeof(media));<br> <br>+              if (session->active_media_state->topology &&<br>+                   (i < ast_stream_topology_get_count(session->active_media_state->topology))) {<br>+                       existing_stream = ast_stream_topology_get_stream(session->active_media_state->topology, i);<br>+            }<br>+<br>          type = ast_media_type_from_str(media);<br>-               stream = ast_stream_alloc(ast_codec_media_type2str(type), type);<br>+             stream = ast_stream_alloc(existing_stream ? ast_stream_get_name(existing_stream) : ast_codec_media_type2str(type), type);<br>             if (!stream) {<br>                        return -1;<br>            }<br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/6393">change 6393</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/6393"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 15.0 </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I29f50d0cc7f3238287d6d647777e76e1bdf8c596 </div>
<div style="display:none"> Gerrit-Change-Number: 6393 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Joshua Colp <jcolp@digium.com> </div>