[Freeswitch-svn] [commit] r3803 - freeswitch/trunk/src

Freeswitch SVN mikej at freeswitch.org
Fri Dec 22 16:10:21 EST 2006


Author: mikej
Date: Fri Dec 22 16:10:20 2006
New Revision: 3803

Modified:
   freeswitch/trunk/src/switch_ivr.c

Log:
default timeout on record to 3 seconds, reset timeout when we hear sound above the threshold, change terms of silence timeout to be seconds.

Modified: freeswitch/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr.c	(original)
+++ freeswitch/trunk/src/switch_ivr.c	Fri Dec 22 16:10:20 2006
@@ -346,6 +346,7 @@
 	char *p;
 	const char *vval;
     time_t start = 0;
+	int org_silence_hits = 0;
 
 	if (!fh) {
 		fh = &lfh;
@@ -432,10 +433,13 @@
     }
 
     if (fh->thresh) {
-        if (!fh->silence_hits) {
-            fh->silence_hits = 20;
+        if (fh->silence_hits) {
+			fh->silence_hits = fh->samplerate * fh->silence_hits;
+		} else {
+            fh->silence_hits = fh->samplerate * 3;
         }
-    }
+		org_silence_hits = fh->silence_hits;
+	}
 
 	while(switch_channel_ready(channel)) {
 		switch_size_t len;
@@ -500,10 +504,13 @@
 		
             score = (uint32_t)(energy / samples);
             if (score < fh->thresh) {
-                if (!--fh->silence_hits) {
+				fh->silence_hits -= fh->samplerate;
+                if (fh->silence_hits <= 0) {
                     break;
                 }
-            }
+			} else {
+				fh->silence_hits = org_silence_hits;
+			}
         }
 
 		if (!switch_test_flag(fh, SWITCH_FILE_PAUSE)) {



More information about the Freeswitch-svn mailing list