aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2008-05-15 21:54:18 +0000
committerjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2008-05-15 21:54:18 +0000
commit244229e9dda507f856530d470fde5e0f962e1e82 (patch)
treeb364543f2621d54cce1ae152cd5cec1d66d17b76
parentf820a7768e52e6218b817337d8a9db2db96e5c58 (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: http://svn.digium.com/svn/asterisk/trunk@116663 f38db490-d61c-443f-a65b-d21fe96a405b
-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 */