From: Jeff Peeler Date: Thu, 15 May 2008 21:54:18 +0000 (+0000) Subject: Fixes a problem I was having with two SIP phones using Packet2Packet bridging droppin... X-Git-Tag: 1.6.2.0-beta1~2229 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f97d547aba49d353f35f96f235f6c0cc3a9879f9;p=thirdparty%2Fasterisk.git Fixes a problem I was having with two SIP phones using Packet2Packet bridging dropping audio nearly immediately. The problem was that the lock on the SIP dialog was not being unlocked while the bridge was still active. (Related to issue #12566) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@116663 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index c86bf07eec..6610563ddc 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 */