Author: anthm Date: Mon Nov 17 21:21:04 2008 New Revision: 10436 Log: update Modified: freeswitch/trunk/src/switch_ivr_async.c Modified: freeswitch/trunk/src/switch_ivr_async.c ============================================================================== --- freeswitch/trunk/src/switch_ivr_async.c (original) +++ freeswitch/trunk/src/switch_ivr_async.c Mon Nov 17 21:21:04 2008 @@ -1192,8 +1192,10 @@ char *key; teletone_tone_map_t map; int up; + int total_hits; int hits; int sleep; + time_t expires; } switch_tone_detect_t; typedef struct { @@ -1224,6 +1226,11 @@ } for (i = 0; i < cont->index; i++) { + if (cont->list[i].expires && cont->list[i].expires > switch_timestamp(NULL)) { + cont->list[i].hits = cont->list[i].total_hits; + cont->list[i].expires = 0; + } + if (cont->list[i].sleep) { cont->list[i].sleep--; return SWITCH_TRUE; @@ -1235,6 +1242,7 @@ if (cont->list[i].hits) { cont->list[i].up = cont->list[i].hits--; cont->list[i].sleep = 25; + cont->list[i].expires = switch_timestamp(NULL) + 5; teletone_multi_tone_init(&cont->list[i].mt, &cont->list[i].map); } else { cont->list[i].up = 0; @@ -1370,6 +1378,7 @@ if (!hits) hits = 1; cont->list[cont->index].hits = hits; + cont->list[cont->index].total_hits = hits; cont->list[cont->index].up = 1; cont->list[cont->index].mt.sample_rate = read_codec->implementation->actual_samples_per_second;
participants (1)
-
FreeSWITCH SVN