[Freeswitch-users] Patch: VMD Configurable MIN_TIME

Anthony Minessale anthony.minessale at gmail.com
Wed Nov 25 11:13:25 PST 2009


can you submit your patch to jira as an improvement under the "application
modules" section please.


On Wed, Nov 25, 2009 at 12:36 PM, Andrew Fritz <afritzlists at fritztech.com>wrote:

> I've created a patch to override the value of MIN_TIME in the vmd modules
> using a channel variable. In this way, it can be configured on a call by
> call basis. The channel variable is name "vmd_min_time".  I didn't add the
> other detection parameters, but doing so would be straight forward. So, in
> our app, we can catch T-Mobile and the other problematic cell carriers
> beeps.
>
> I did this because in our app, we would rather have false positives than
> miss the start of recording on a voice mail system. This way, anyone using
> the VMD module can configure the vmd module to be as touchy or hard to
> trigger as they would like.
>
> I not sure how to implement it (at least in the vmd module code), but a way
> to make mod_vmd more robust to false positives, especially with short beeps
> would be to have it look for short silence immediately proceeding and/or
> following the beep. I've noticed that it tends to trigger on noise if there
> is tone in the noise, if for example I extend a syllable in a word or I have
> music on in the background.
>
> However on a voice mail system there will likely be a short near silence
> before the tone and an indefinite silence after it. In fact, background
> noise should be non-existent, except for line noise which should be Gaussian
> and not look like a structured tone. Looking for a beep + near silence after
> it for some period should eliminate many false positive where tones are
> embedded in other sounds (e.g. music or someone holding a vowel for longer
> than normal).
>
> Andrew
>
> Index: src/mod/applications/mod_vmd/mod_vmd.c
> ===================================================================
> --- src/mod/applications/mod_vmd/mod_vmd.c      (revision 15668)
> +++ src/mod/applications/mod_vmd/mod_vmd.c      (working copy)
> @@ -162,6 +162,8 @@
>     /*! 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 @@
>
>         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,7 @@
>     switch_channel_t *channel;
>     vmd_session_info_t *vmd_info;
>     int i;
> +               const char *minTimeString;
>
>     if (session == NULL)
>         return;
> @@ -588,6 +591,14 @@
>
>     switch_channel_set_private(channel, "_vmd_", bug);
>
> +               minTimeString = switch_channel_get_variable(channel,
> "vmd_min_time");
> +               if (minTimeString != 0) {
> +                       sscanf(minTimeString,"%d",&(vmd_info->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
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>


-- 
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale at hotmail.com <MSN%3Aanthony_minessale at hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
iax:guest at conference.freeswitch.org/888
googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
pstn:213-799-1400
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20091125/1df26015/attachment-0002.html 


More information about the FreeSWITCH-users mailing list