]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7754: [freetdm] Fixed a bug relating to single digit dial-regex with analog devices
authorandywang1988 <wanghq800@1988>
Tue, 7 Jul 2015 07:10:13 +0000 (15:10 +0800)
committerMichael Jerris <mike@jerris.com>
Tue, 25 Aug 2015 19:46:06 +0000 (14:46 -0500)
libs/freetdm/src/ftmod/ftmod_analog/ftmod_analog.c

index 0d6caec40078259cfa937e043acee773590e99ce..065e12a0d068caf9b2c8a8865f0b9d50422a44f8 100644 (file)
@@ -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;