[Asterisk-code-review] res pjsip session: Release media resources on session end qu... (asterisk[master])
Joshua Colp
asteriskteam at digium.com
Thu Jul 27 05:21:57 CDT 2017
Joshua Colp has uploaded this change for review. ( https://gerrit.asterisk.org/6105
Change subject: res_pjsip_session: Release media resources on session end quicker.
......................................................................
res_pjsip_session: Release media resources on session end quicker.
A change was made long ago where the session was kept around
until the underlying INVITE session had been destroyed. This
had the side effect of also keeping the underlying media resources
around for this time as well.
This change ensures that when we know the session is ending we
release the media resources immediately.
ASTERISK-27110
Change-Id: I3c6a82fe7d2c50b9dc9197cb12ef22f20d337501
---
M channels/chan_pjsip.c
M res/res_pjsip_session.c
2 files changed, 13 insertions(+), 3 deletions(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/05/6105/1
diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c
index 51b5dab..062edb5 100644
--- a/channels/chan_pjsip.c
+++ b/channels/chan_pjsip.c
@@ -2273,7 +2273,6 @@
static void clear_session_and_channel(struct ast_sip_session *session, struct ast_channel *ast)
{
session->channel = NULL;
- set_channel_on_rtp_instance(session, "");
ast_channel_tech_pvt_set(ast, NULL);
}
diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 0ad2c8f..11c9424 100644
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -1872,8 +1872,12 @@
ast_taskprocessor_unreference(session->serializer);
ao2_cleanup(session->datastores);
- ast_sip_session_media_state_free(session->active_media_state);
- ast_sip_session_media_state_free(session->pending_media_state);
+ if (session->active_media_state) {
+ ast_sip_session_media_state_free(session->active_media_state);
+ }
+ if (session->pending_media_state) {
+ ast_sip_session_media_state_free(session->pending_media_state);
+ }
AST_LIST_HEAD_DESTROY(&session->supplements);
while ((delay = AST_LIST_REMOVE_HEAD(&session->delayed_requests, next))) {
@@ -3132,6 +3136,13 @@
iter->session_end(session);
}
}
+
+ /* Release any media resources. */
+ ast_sip_session_media_state_free(session->active_media_state);
+ session->active_media_state = NULL;
+ ast_sip_session_media_state_free(session->pending_media_state);
+ session->pending_media_state = NULL;
+
return 0;
}
--
To view, visit https://gerrit.asterisk.org/6105
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3c6a82fe7d2c50b9dc9197cb12ef22f20d337501
Gerrit-Change-Number: 6105
Gerrit-PatchSet: 1
Gerrit-Owner: Joshua Colp <jcolp at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20170727/118dc8b5/attachment.html>
More information about the asterisk-code-review
mailing list