i am running a python agi script that gets a DTMF number from the user
and passes it back to the script. It works fine with numbers, but if they enter a star (*), it doesn't want to play.
Is there a difference in how this is handled?
here is the snippit:
def getNumber (sound, gTimeLimit, digit_count):
"""
the asterisk function GET DATA
(filename, timeout, maxdigits)
plays audiofile filename,
gets DTMF digits
up to timeout or max digits
"""
digit_count = int(digit_count)
time_limit = int(gTimeLimit)
sys.stderr.write("GET DATA %s %d %d\n" % (sound, time_limit, digit_count))
sys.stderr.flush()
sys.stdout.write("GET DATA %s %d %d\n" % (sound, time_limit, digit_count))
sys.stdout.flush()
result = sys.stdin.readline().strip()
result = checkResult(result)
if result:
return result
else:
sys.stderr.write('dead result from IVR')
return 'error'
def checkResult(params):
"""
reads the result of an asterisk command
parses the answer and reports
whether or not the command is successful
"""
params = params.rstrip()
if re.search('^200',params):
result = re.search('result=(\d+)', params)
if (not result):
sys.stderr.write("FAIL ('%s')\n" % params)
sys.stderr.flush()
return -1
else:
result = result.group(1)
sys.stderr.write('PASS (%s)\n' % result)
sys.stderr.flush()
return result
else:
sys.stderr.write("FAIL (unexpected result '%s')\n" % params)
sys.stderr.flush()
return -2
menu_result = getNumber('menu', 5000, 1)
any idea where i may be missing something here ?
some of the code is from an example app that i found on the internet.
There is something in this code ( i suppose ) that limits me from getting
anything but an integer as a response from here
if you have read this far, thanks for your time.
shawn
_______________________________________________ --Bandwidth and Colocation provided by Easynews.com --
asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
