Author: anthm Date: Thu Mar 5 10:53:31 2009 New Revision: 12466 Log: MODAPP-226 Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c freeswitch/trunk/src/switch_ivr.c Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c ============================================================================== --- freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c (original) +++ freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c Thu Mar 5 10:53:31 2009 @@ -1563,7 +1563,7 @@ while (switch_test_flag(member, MFLAG_RUNNING) && switch_channel_ready(channel)) { - if (switch_channel_test_flag(channel, CF_SERVICE)) { + if (switch_channel_test_app_flag(channel, CF_APP_TAGGED)) { switch_yield(100000); continue; } @@ -1878,7 +1878,7 @@ } if (restarting) { - switch_channel_clear_flag(channel, CF_SERVICE); + switch_channel_clear_app_flag(channel, CF_APP_TAGGED); } /* Fair WARNING, If you expect the caller to hear anything or for digit handling to be processed, */ @@ -2094,9 +2094,9 @@ if (switch_core_session_private_event_count(member->session)) { - switch_channel_set_flag(channel, CF_SERVICE); + switch_channel_set_app_flag(channel, CF_APP_TAGGED); switch_ivr_parse_all_events(member->session); - switch_channel_clear_flag(channel, CF_SERVICE); + switch_channel_clear_app_flag(channel, CF_APP_TAGGED); switch_set_flag_locked(member, MFLAG_FLUSH_BUFFER); switch_core_session_set_read_codec(member->session, &member->read_codec); } @@ -3697,7 +3697,7 @@ if (setup_media(member, new_conference)) { switch_clear_flag_locked(member, MFLAG_RUNNING); } else { - switch_channel_set_flag(channel, CF_SERVICE); + switch_channel_set_app_flag(channel, CF_APP_TAGGED); switch_set_flag_locked(member, MFLAG_RESTART); } } Modified: freeswitch/trunk/src/switch_ivr.c ============================================================================== --- freeswitch/trunk/src/switch_ivr.c (original) +++ freeswitch/trunk/src/switch_ivr.c Thu Mar 5 10:53:31 2009 @@ -975,9 +975,10 @@ switch_ivr_parse_all_events(session); } - + if (eff_timeout) { digit_elapsed = (uint32_t) ((switch_micro_time_now() - digit_started) / 1000); + if (digit_elapsed >= eff_timeout) { status = SWITCH_STATUS_TIMEOUT; break; @@ -987,7 +988,7 @@ if (switch_channel_has_dtmf(channel)) { switch_dtmf_t dtmf = { 0 }; switch_size_t y; - + if (eff_timeout) { eff_timeout = digit_timeout; digit_started = switch_micro_time_now(); @@ -1006,6 +1007,7 @@ buf[x++] = dtmf.digit; buf[x] = '\0'; + if (x >= buflen || x >= maxdigits) { return SWITCH_STATUS_SUCCESS; }