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
This commit is contained in:
Michael Jerris 2009-04-06 19:25:02 +00:00
parent d6515c64fb
commit 7cd48301d9
2 changed files with 4 additions and 2 deletions

View File

@ -75,13 +75,13 @@ sub setVar($;) {
sub playAndGetDigits($;) { sub playAndGetDigits($;) {
my $self = shift; 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()) { if (!$self->{_esl}->connected()) {
return undef; 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); return $self->getVar($var);

View File

@ -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) { if (switch_regex_match(digit_buffer, digits_regex) == SWITCH_STATUS_SUCCESS) {
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} else {
switch_channel_set_variable(channel, var_name, NULL);
} }
} }
} }