<p>Joshua Colp has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/6105">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">res_pjsip_session: Release media resources on session end quicker.<br><br>A change was made long ago where the session was kept around<br>until the underlying INVITE session had been destroyed. This<br>had the side effect of also keeping the underlying media resources<br>around for this time as well.<br><br>This change ensures that when we know the session is ending we<br>release the media resources immediately.<br><br>ASTERISK-27110<br><br>Change-Id: I3c6a82fe7d2c50b9dc9197cb12ef22f20d337501<br>---<br>M channels/chan_pjsip.c<br>M res/res_pjsip_session.c<br>2 files changed, 13 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/05/6105/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c<br>index 51b5dab..062edb5 100644<br>--- a/channels/chan_pjsip.c<br>+++ b/channels/chan_pjsip.c<br>@@ -2273,7 +2273,6 @@<br> static void clear_session_and_channel(struct ast_sip_session *session, struct ast_channel *ast)<br> {<br>        session->channel = NULL;<br>-  set_channel_on_rtp_instance(session, "");<br>   ast_channel_tech_pvt_set(ast, NULL);<br> }<br> <br>diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c<br>index 0ad2c8f..11c9424 100644<br>--- a/res/res_pjsip_session.c<br>+++ b/res/res_pjsip_session.c<br>@@ -1872,8 +1872,12 @@<br> <br>   ast_taskprocessor_unreference(session->serializer);<br>        ao2_cleanup(session->datastores);<br>- ast_sip_session_media_state_free(session->active_media_state);<br>-    ast_sip_session_media_state_free(session->pending_media_state);<br>+   if (session->active_media_state) {<br>+                ast_sip_session_media_state_free(session->active_media_state);<br>+    }<br>+    if (session->pending_media_state) {<br>+               ast_sip_session_media_state_free(session->pending_media_state);<br>+   }<br> <br>  AST_LIST_HEAD_DESTROY(&session->supplements);<br>  while ((delay = AST_LIST_REMOVE_HEAD(&session->delayed_requests, next))) {<br>@@ -3132,6 +3136,13 @@<br>                     iter->session_end(session);<br>                }<br>     }<br>+<br>+ /* Release any media resources. */<br>+   ast_sip_session_media_state_free(session->active_media_state);<br>+    session->active_media_state = NULL;<br>+       ast_sip_session_media_state_free(session->pending_media_state);<br>+   session->pending_media_state = NULL;<br>+<br>    return 0;<br> }<br> <br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/6105">change 6105</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/6105"/><meta itemprop="name" content="View Change"/></div></div>

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