[svn-commits] seanbright: branch group/1.6.1-maintenance r264113 - in /team/group/1.6.1-mai...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed May 19 08:15:54 CDT 2010


Author: seanbright
Date: Wed May 19 08:15:51 2010
New Revision: 264113

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=264113
Log:
Merged revisions 263904,263950,264031 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
  r263904 | dvossel | 2010-05-18 18:48:51 -0400 (Tue, 18 May 2010) | 9 lines
  
  fixes segfault on logging 
  
  (closes issue #17331)
  Reported by: under
  Patches:
        utils.diff uploaded by under (license 914)
        segfault_on_logging.diff uploaded by dvossel (license 671)
  Tested by: under, dvossel
................
  r263950 | tilghman | 2010-05-19 02:41:04 -0400 (Wed, 19 May 2010) | 15 lines
  
  Merged revisions 263949 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r263949 | tilghman | 2010-05-19 01:32:27 -0500 (Wed, 19 May 2010) | 8 lines
    
    Because progress is called multiple times, across several frames, we must persist states when detecting multitone sequences.
    
    (closes issue #16749)
     Reported by: dant
     Patches: 
           dsp.c-bug16749-1.patch uploaded by dant (license 670)
     Tested by: dant
  ........
................
  r264031 | alecdavis | 2010-05-19 04:09:14 -0400 (Wed, 19 May 2010) | 8 lines
  
  fix incorrectly typed indications for [nz] stutter and dialrecall
  
  (closes issue #17359)
  Reported by: alecdavis
  Patches: 
        bug17359.diff.txt uploaded by alecdavis (license 585)
................

Modified:
    team/group/1.6.1-maintenance/   (props changed)
    team/group/1.6.1-maintenance/configs/indications.conf.sample
    team/group/1.6.1-maintenance/main/dsp.c
    team/group/1.6.1-maintenance/main/utils.c

Propchange: team/group/1.6.1-maintenance/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: team/group/1.6.1-maintenance/configs/indications.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/group/1.6.1-maintenance/configs/indications.conf.sample?view=diff&rev=264113&r1=264112&r2=264113
==============================================================================
--- team/group/1.6.1-maintenance/configs/indications.conf.sample (original)
+++ team/group/1.6.1-maintenance/configs/indications.conf.sample Wed May 19 08:15:51 2010
@@ -479,10 +479,10 @@
 ring = 400+450/400,0/200,400+450/400,0/2000
 congestion = 400/375,0/375
 callwaiting = !400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200
-dialrecall = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,400
+dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
 record = 1400/425,0/15000
 info = 400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400
-stutter = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,!400/100!0/100,!400/100,!0/100,!400/100,!0/100,400
+stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
 unobtainable = 400/75,0/100,400/75,0/100,400/75,0/100,400/75,0/400
 
 [ph]

Modified: team/group/1.6.1-maintenance/main/dsp.c
URL: http://svnview.digium.com/svn/asterisk/team/group/1.6.1-maintenance/main/dsp.c?view=diff&rev=264113&r1=264112&r2=264113
==============================================================================
--- team/group/1.6.1-maintenance/main/dsp.c (original)
+++ team/group/1.6.1-maintenance/main/dsp.c Wed May 19 08:15:51 2010
@@ -981,11 +981,15 @@
 				} else if (hz[HZ_950] > TONE_MIN_THRESH * TONE_THRESH) {
 					newstate = DSP_TONE_STATE_SPECIAL1;
 				} else if (hz[HZ_1400] > TONE_MIN_THRESH * TONE_THRESH) {
-					if (dsp->tstate == DSP_TONE_STATE_SPECIAL1)
+					/* End of SPECIAL1 or middle of SPECIAL2 */
+					if (dsp->tstate == DSP_TONE_STATE_SPECIAL1 || dsp->tstate == DSP_TONE_STATE_SPECIAL2) {
 						newstate = DSP_TONE_STATE_SPECIAL2;
+					}
 				} else if (hz[HZ_1800] > TONE_MIN_THRESH * TONE_THRESH) {
-					if (dsp->tstate == DSP_TONE_STATE_SPECIAL2)
+					/* End of SPECIAL2 or middle of SPECIAL3 */
+					if (dsp->tstate == DSP_TONE_STATE_SPECIAL2 || dsp->tstate == DSP_TONE_STATE_SPECIAL3) {
 						newstate = DSP_TONE_STATE_SPECIAL3;
+					}
 				} else if (dsp->genergy > TONE_MIN_THRESH * TONE_THRESH) {
 					newstate = DSP_TONE_STATE_TALKING;
 				} else
@@ -1012,43 +1016,43 @@
 				if (dsp->ringtimeout)
 					dsp->ringtimeout++;
 				switch (dsp->tstate) {
-					case DSP_TONE_STATE_RINGING:
-						if ((dsp->features & DSP_PROGRESS_RINGING) &&
-						    (dsp->tcount==THRESH_RING)) {
-							res = AST_CONTROL_RINGING;
-							dsp->ringtimeout= 1;
-						}
-						break;
-					case DSP_TONE_STATE_BUSY:
-						if ((dsp->features & DSP_PROGRESS_BUSY) &&
-						    (dsp->tcount==THRESH_BUSY)) {
-							res = AST_CONTROL_BUSY;
-							dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
-						}
-						break;
-					case DSP_TONE_STATE_TALKING:
-						if ((dsp->features & DSP_PROGRESS_TALK) &&
-						    (dsp->tcount==THRESH_TALK)) {
-							res = AST_CONTROL_ANSWER;
-							dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
-						}
-						break;
-					case DSP_TONE_STATE_SPECIAL3:
-						if ((dsp->features & DSP_PROGRESS_CONGESTION) &&
-						    (dsp->tcount==THRESH_CONGESTION)) {
-							res = AST_CONTROL_CONGESTION;
-							dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
-						}
-						break;
-					case DSP_TONE_STATE_HUNGUP:
-						if ((dsp->features & DSP_FEATURE_CALL_PROGRESS) &&
-						    (dsp->tcount==THRESH_HANGUP)) {
-							res = AST_CONTROL_HANGUP;
-							dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
-						}
-						break;
+				case DSP_TONE_STATE_RINGING:
+					if ((dsp->features & DSP_PROGRESS_RINGING) &&
+					    (dsp->tcount == THRESH_RING)) {
+						res = AST_CONTROL_RINGING;
+						dsp->ringtimeout = 1;
+					}
+					break;
+				case DSP_TONE_STATE_BUSY:
+					if ((dsp->features & DSP_PROGRESS_BUSY) &&
+					    (dsp->tcount == THRESH_BUSY)) {
+						res = AST_CONTROL_BUSY;
+						dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
+					}
+					break;
+				case DSP_TONE_STATE_TALKING:
+					if ((dsp->features & DSP_PROGRESS_TALK) &&
+					    (dsp->tcount == THRESH_TALK)) {
+						res = AST_CONTROL_ANSWER;
+						dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
+					}
+					break;
+				case DSP_TONE_STATE_SPECIAL3:
+					if ((dsp->features & DSP_PROGRESS_CONGESTION) &&
+					    (dsp->tcount == THRESH_CONGESTION)) {
+						res = AST_CONTROL_CONGESTION;
+						dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
+					}
+					break;
+				case DSP_TONE_STATE_HUNGUP:
+					if ((dsp->features & DSP_FEATURE_CALL_PROGRESS) &&
+					    (dsp->tcount == THRESH_HANGUP)) {
+						res = AST_CONTROL_HANGUP;
+						dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
+					}
+					break;
 				}
-				if (dsp->ringtimeout==THRESH_RING2ANSWER) {
+				if (dsp->ringtimeout == THRESH_RING2ANSWER) {
 					ast_debug(1, "Consider call as answered because of timeout after last ring\n");
 					res = AST_CONTROL_ANSWER;
 					dsp->features &= ~DSP_FEATURE_CALL_PROGRESS;
@@ -1059,8 +1063,8 @@
 				dsp->tstate = newstate;
 				dsp->tcount = 1;
 			}
-			
-			/* Reset goertzel */						
+
+			/* Reset goertzel */
 			for (x=0;x<7;x++)
 				dsp->freqs[x].v2 = dsp->freqs[x].v3 = 0.0;
 			dsp->gsamps = 0;

Modified: team/group/1.6.1-maintenance/main/utils.c
URL: http://svnview.digium.com/svn/asterisk/team/group/1.6.1-maintenance/main/utils.c?view=diff&rev=264113&r1=264112&r2=264113
==============================================================================
--- team/group/1.6.1-maintenance/main/utils.c (original)
+++ team/group/1.6.1-maintenance/main/utils.c Wed May 19 08:15:51 2010
@@ -1786,16 +1786,17 @@
 		 * reallocate the buffer and return a message telling to retry.
 		 */
 		if (need > (*buf)->len && (max_len == 0 || (*buf)->len < max_len) ) {
+			int len = (int)(*buf)->len;
 			if (max_len && max_len < need) {	/* truncate as needed */
 				need = max_len;
 			} else if (max_len == 0) {	/* if unbounded, give more room for next time */
 				need += 16 + need / 4;
 			}
 			if (0) {	/* debugging */
-				ast_verbose("extend from %d to %d\n", (int)(*buf)->len, need);
+				ast_verbose("extend from %d to %d\n", len, need);
 			}
 			if (ast_str_make_space(buf, need)) {
-				ast_verbose("failed to extend from %d to %d\n", (int)(*buf)->len, need);
+				ast_verbose("failed to extend from %d to %d\n", len, need);
 				va_end(aq);
 				return AST_DYNSTR_BUILD_FAILED;
 			}




More information about the svn-commits mailing list