summaryrefslogtreecommitdiff
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authorJeff Peeler <jpeeler@digium.com>2008-05-15 21:54:18 +0000
committerJeff Peeler <jpeeler@digium.com>2008-05-15 21:54:18 +0000
commitf97d547aba49d353f35f96f235f6c0cc3a9879f9 (patch)
treeb364543f2621d54cce1ae152cd5cec1d66d17b76 /channels/chan_sip.c
parent1207e9207e5798da1dbd4639057be0bf0295d2a4 (diff)
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
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 */