summaryrefslogtreecommitdiff
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r--channels/chan_sip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index c86bf07ee..6610563dd 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -13053,11 +13053,13 @@ static int dialog_needdestroy(void *dialogobj, void *arg, int flags)
/* We absolutely cannot destroy the rtp struct while a bridge is active or we WILL crash */
if (dialog->rtp && ast_rtp_get_bridged(dialog->rtp)) {
ast_debug(2, "Bridge still active. Delaying destroy of SIP dialog '%s' Method: %s\n", dialog->callid, sip_methods[dialog->method].text);
+ sip_pvt_unlock(dialog);
return 0;
}
if (dialog->vrtp && ast_rtp_get_bridged(dialog->vrtp)) {
ast_debug(2, "Bridge still active. Delaying destroy of SIP dialog '%s' Method: %s\n", dialog->callid, sip_methods[dialog->method].text);
+ sip_pvt_unlock(dialog);
return 0;
}
/* Check RTP timeouts and kill calls if we have a timeout set and do not get RTP */