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