[asterisk-commits] file: trunk r88673 - in /trunk: ./ channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Nov 5 12:52:12 CST 2007


Author: file
Date: Mon Nov  5 12:52:12 2007
New Revision: 88673

URL: http://svn.digium.com/view/asterisk?view=rev&rev=88673
Log:
Merged revisions 88671 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88671 | file | 2007-11-05 14:47:13 -0400 (Mon, 05 Nov 2007) | 7 lines

If a SIP channel is put on hold multiple times do not keep incrementing the onHold value.
(closes issue #11085)
Reported by: francesco_r
Tested by: blitzrage
(closes issue #10474)
Reported by: acennami

........

Modified:
    trunk/   (props changed)
    trunk/channels/chan_sip.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_sip.c?view=diff&rev=88673&r1=88672&r2=88673
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Mon Nov  5 12:52:12 2007
@@ -6089,6 +6089,7 @@
 			sip_peer_hold(p, FALSE);
 		ast_clear_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD); /* Clear both flags */
 	} else if (!sin.sin_addr.s_addr || (sendonly && sendonly != -1)) {
+		int already_on_hold = ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD);
 		ast_queue_control_data(p->owner, AST_CONTROL_HOLD, 
 				       S_OR(p->mohsuggest, NULL),
 				       !ast_strlen_zero(p->mohsuggest) ? strlen(p->mohsuggest) + 1 : 0);
@@ -6112,7 +6113,7 @@
 			ast_set_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD_INACTIVE);
 		else
 			ast_set_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD_ACTIVE);
-		if (global_notifyhold)
+		if (global_notifyhold && !already_on_hold)
 			sip_peer_hold(p, TRUE);
 	}
 	




More information about the asterisk-commits mailing list