From 85f8608a8e22e452ff915ed84feb46bccfc05e02 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Fri, 23 Jan 2009 18:11:35 +0000 Subject: [PATCH] Merged revisions 170505 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r170505 | file | 2009-01-23 14:09:45 -0400 (Fri, 23 Jan 2009) | 11 lines Merged revisions 170504 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r170504 | file | 2009-01-23 14:04:08 -0400 (Fri, 23 Jan 2009) | 4 lines Use the on hold flag to see if the call is on hold or not. It is possible that our address for them will still be valid even though they are on hold. (closes issue #14295) Reported by: klaus3000 ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@170507 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 92e8f1e6d6..df80ff1eef 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -20143,7 +20143,7 @@ static void check_rtp_timeout(struct sip_pvt *dialog, time_t t) /* Might be a timeout now -- see if we're on hold */ struct sockaddr_in sin; ast_rtp_get_peer(dialog->rtp, &sin); - if (sin.sin_addr.s_addr || (ast_rtp_get_rtpholdtimeout(dialog->rtp) && + if (!ast_test_flag(&dialog->flags[1], SIP_PAGE2_CALL_ONHOLD) || (ast_rtp_get_rtpholdtimeout(dialog->rtp) && (t > dialog->lastrtprx + ast_rtp_get_rtpholdtimeout(dialog->rtp)))) { /* Needs a hangup */ if (ast_rtp_get_rtptimeout(dialog->rtp)) {