From 7cd48301d9c6b7eed3311a9fb8fa3f9b5b7716d8 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 6 Apr 2009 19:25:02 +0000 Subject: [PATCH] fix play_and_get_digits to unset the var if the regex didn't match. and fix ESL/IVR to include the regex git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12921 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/esl/perl/ESL/IVR.pm | 4 ++-- src/switch_ivr_play_say.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/esl/perl/ESL/IVR.pm b/libs/esl/perl/ESL/IVR.pm index 6ea8063cef..e36b8c9029 100644 --- a/libs/esl/perl/ESL/IVR.pm +++ b/libs/esl/perl/ESL/IVR.pm @@ -75,13 +75,13 @@ sub setVar($;) { sub playAndGetDigits($;) { my $self = shift; - my ($min, $max, $tries, $to, $term, $file, $invalid_file, $var) = @_; + my ($min, $max, $tries, $to, $term, $file, $invalid_file, $var, $regex) = @_; if (!$self->{_esl}->connected()) { return undef; } - $self->execute("play_and_get_digits", "$min $max $tries $to $term $file $invalid_file $var"); + $self->execute("play_and_get_digits", "$min $max $tries $to $term $file $invalid_file $var $regex"); return $self->getVar($var); diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index 2fa391de29..3f9badd590 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -1561,6 +1561,8 @@ SWITCH_DECLARE(switch_status_t) switch_play_and_get_digits(switch_core_session_t } if (switch_regex_match(digit_buffer, digits_regex) == SWITCH_STATUS_SUCCESS) { return SWITCH_STATUS_SUCCESS; + } else { + switch_channel_set_variable(channel, var_name, NULL); } } }