abort upon receiving an empty result in freeswitch event

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5665 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Traun Leyden 2007-08-25 22:57:44 +00:00
parent 1a091c1ad2
commit 1d347c8af1
1 changed files with 9 additions and 1 deletions

View File

@ -83,6 +83,7 @@ class SpeechObtainer:
self.max_tries=max_tries
self.detected_phrases = []
self.failed = False
def setGrammar(self, grammar):
"""
@ -124,7 +125,8 @@ class SpeechObtainer:
console_log("debug", "starting run() while loop\n")
while (session.ready() and
num_tries < self.max_tries and
len(self.detected_phrases) < self.required_phrases):
len(self.detected_phrases) < self.required_phrases and
not self.failed):
console_log("debug", "top of run() while loop\n")
session.collectDigits(self.wait_time)
num_tries += 1
@ -172,6 +174,12 @@ class SpeechObtainer:
# unicode strings.
# TODO: check the score
body = event['body']
if not body or len(body) == 0 or body == "(null)":
# freeswitch returned a completely empty result
self.failed = True
# do we want to return stop? what should we return?
return "stop"
dom = minidom.parseString(body)
phrase = dom.getElementsByTagName(self.grammar.obj_path)[0]
phrase_text = self.getText(phrase)