Modified: freeswitch/trunk/src/switch_ivr_async.c (15270 => 15271)
--- freeswitch/trunk/src/switch_ivr_async.c 2009-10-29 14:33:48 UTC (rev 15270)
+++ freeswitch/trunk/src/switch_ivr_async.c 2009-10-29 15:29:33 UTC (rev 15271)
@@ -425,6 +425,7 @@
char *file;
switch_file_handle_t *fh;
uint32_t packet_len;
+ int min_sec;
};
static switch_bool_t record_callback(switch_media_bug_t *bug, void *user_data, switch_abc_type_t type)
@@ -473,7 +474,7 @@
switch_core_file_close(rh->fh);
- if (rh->fh->samples_out < read_impl.samples_per_second * 3) {
+ if (rh->fh->samples_out < read_impl.samples_per_second * rh->min_sec) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Discarding short file %s\n", rh->file);
switch_file_remove(rh->file, switch_core_session_get_pool(session));
}
@@ -1013,6 +1014,15 @@
switch_channel_set_variable(channel, "RECORD_DATE", NULL);
}
+ rh->min_sec = 3;
+
+ if ((p = switch_channel_get_variable(channel, "RECORD_MIN_SEC"))) {
+ int tmp = atoi(p);
+ if (tmp > 0) {
+ rh->min_sec = tmp;
+ }
+ }
+
if (limit) {
to = switch_epoch_time_now(NULL) + limit;
}