diff --git a/channels/chan_sip.c b/channels/chan_sip.c index c86bf07eecf4180d4485383b9a5ebf9114532f21..6610563ddc0de3eeef3b46ba242300f073d70e65 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 */