From 50c8d92713d4d1f822497f71a46c04559f2c3ce5 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 7 Dec 2009 15:04:58 +0000 Subject: [PATCH] mod_vmd: make MIN_TIME configurable via channel variables(MODAPP-372) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15825 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/applications/mod_vmd/mod_vmd.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_vmd/mod_vmd.c b/src/mod/applications/mod_vmd/mod_vmd.c index aacd49edc0..7580ab132a 100644 --- a/src/mod/applications/mod_vmd/mod_vmd.c +++ b/src/mod/applications/mod_vmd/mod_vmd.c @@ -162,6 +162,8 @@ typedef struct vmd_session_info { /*! A count of how long a distinct beep was detected * by the discreet energy separation algorithm. */ switch_size_t timestamp; + /*! The MIN_TIME to use for this call */ + int minTime; } vmd_session_info_t; static switch_bool_t process_data(vmd_session_info_t * vmd_info, switch_frame_t * frame); @@ -312,7 +314,7 @@ static void find_beep(vmd_session_info_t * vmd_info, switch_frame_t * frame) if (c < (POINTS - MAX_CHIRP)) { vmd_info->state = BEEP_NOT_DETECTED; - if (vmd_info->timestamp < MIN_TIME) { + if (vmd_info->timestamp < vmd_info->minTime) { break; } @@ -541,6 +543,8 @@ SWITCH_STANDARD_APP(vmd_start_function) switch_channel_t *channel; vmd_session_info_t *vmd_info; int i; + const char *minTimeString; + int mintime = 0; if (session == NULL) return; @@ -588,6 +592,13 @@ SWITCH_STANDARD_APP(vmd_start_function) switch_channel_set_private(channel, "_vmd_", bug); + if ((minTimeString = switch_channel_get_variable(channel, "vmd_min_time")) && (mintime = atoi(minTimeString))) { + vmd_info->minTime = mintime; + } else { + vmd_info->minTime = MIN_TIME; + } + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "MIN_TIME for call: %d\n",vmd_info->minTime); } /*! \brief Called when the module shuts down