From: andywang1988 Date: Tue, 7 Jul 2015 07:10:13 +0000 (+0800) Subject: FS-7754: [freetdm] Fixed a bug relating to single digit dial-regex with analog devices X-Git-Tag: v1.4.21~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e696410a0d0419e061046e92377edac82dd1ea86;p=thirdparty%2Ffreeswitch.git FS-7754: [freetdm] Fixed a bug relating to single digit dial-regex with analog devices --- diff --git a/libs/freetdm/src/ftmod/ftmod_analog/ftmod_analog.c b/libs/freetdm/src/ftmod/ftmod_analog/ftmod_analog.c index 0d6caec400..065e12a0d0 100644 --- a/libs/freetdm/src/ftmod/ftmod_analog/ftmod_analog.c +++ b/libs/freetdm/src/ftmod/ftmod_analog/ftmod_analog.c @@ -847,6 +847,9 @@ static void *ftdm_analog_channel_run(ftdm_thread_t *me, void *obj) if (last_digit && (!collecting || ((elapsed - last_digit > analog_data->digit_timeout) || strlen(dtmf) >= analog_data->max_dialstr))) { ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Number obtained [%s]\n", dtmf); + if (ftdmchan->state == FTDM_CHANNEL_STATE_COLLECT && ftdmchan->state_status != FTDM_STATE_STATUS_COMPLETED) { + ftdm_channel_complete_state(ftdmchan); + } ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); last_digit = 0; collecting = 0;