void *user_data;
switch_mutex_t *mutex;
switch_status_t last_return;
+ uint8_t pinging;
};
return SWITCH_STATUS_SUCCESS;
}
+ if (dmachine->pinging) {
+ printf("doh\n");
+ return SWITCH_STATUS_BREAK;
+ }
+
+ dmachine->pinging = 1;
+
if (zstr(dmachine->digits) && !is_timeout) {
r = SWITCH_STATUS_SUCCESS;
} else if (dmachine->cur_digit_len > dmachine->max_digit_len) {
dmachine->last_return = r;
+ dmachine->pinging = 0;
+
switch_mutex_unlock(dmachine->mutex);
return r;
if you return anything but SWITCH_STATUS_SUCCESS the playback will stop.
*/
if (switch_channel_has_dtmf(channel)) {
+ switch_channel_dequeue_dtmf(channel, &dtmf);
+
if (!args->input_callback && !args->buf && !args->dmachine) {
status = SWITCH_STATUS_BREAK;
done = 1;
break;
}
- switch_channel_dequeue_dtmf(channel, &dtmf);
+
if (args->dmachine) {
char ds[2] = {dtmf.digit, '\0'};