yep, the problem was in the regular expression (only looks for a number 0-9)<br>
i added a couple of lines that see if its not a number, but is a *&nbsp; it will return that.<br>
thanks, not an asterisk issue, but a python issue.<br>
<br>
shawn<br><br><div><span class="gmail_quote">On 8/14/06, <b class="gmail_sendername">Tzafrir Cohen</b> &lt;<a href="mailto:tzafrir.cohen@xorcom.com">tzafrir.cohen@xorcom.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Mon, Aug 14, 2006 at 10:31:30AM -0400, shawn bright wrote:<br>&gt; lo there,<br>&gt; i am running a python agi script that gets a DTMF number from the user<br>&gt; and passes it back to the script.<br><br>Any reason you're not using Read for this?
<br><br>&gt; It works fine with numbers, but if they<br>&gt; enter a star (*), it doesn't want to play.<br><br>Could you please provide a trace of the run?<br><br>&gt; Is there a difference in how this is handled?<br>&gt; here is the snippit:
<br>&gt;<br>&gt; def getNumber (sound, gTimeLimit, digit_count):<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&quot;&quot;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;the asterisk function GET DATA<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;(filename, timeout, maxdigits)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;plays audiofile filename,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;gets DTMF digits
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;up to timeout or max digits<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&quot;&quot;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;digit_count = int(digit_count)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;time_limit = int(gTimeLimit)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;sys.stderr.write(&quot;GET DATA %s %d %d\n&quot; % (sound, time_limit,
<br>&gt; digit_count))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;sys.stderr.flush()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;sys.stdout.write(&quot;GET DATA %s %d %d\n&quot; % (sound, time_limit,<br>&gt; digit_count))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;sys.stdout.flush()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;result = sys.stdin.readline
().strip()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;result = checkResult(result)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;if result:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return result<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;else:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.stderr.write('dead result from IVR')<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 'error'<br>&gt;<br>&gt; def checkResult(params):
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&quot;&quot;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;reads the result of an asterisk command<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;parses the answer and reports<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;whether or not the command is successful<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&quot;&quot;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;params = 
params.rstrip()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;if re.search('^200',params):<br><br>Just a hunch:<br><br>How is '*' considered in a regular expression?<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result = re.search('result=(\d+)', params)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (not result):
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.stderr.write(&quot;FAIL ('%s')\n&quot; % params)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.stderr.flush()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return -1<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result = result.group(1)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sys.stderr.write('PASS (%s)\n' % result)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.stderr.flush()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return result<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;else:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.stderr.write(&quot;FAIL (unexpected result '%s')\n&quot; % params)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sys.stderr.flush()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return -2<br>&gt;<br>&gt; menu_result = getNumber('menu', 5000, 1)<br>&gt;<br>&gt; any idea where i may be missing something here ?<br>&gt; some of the code is from an example app that i found on the internet.
<br>&gt; There is something in this code ( i suppose ) that limits me from getting<br>&gt; anything but an integer as a response from here<br>&gt;<br>&gt; if you have read this far, thanks for your time.<br>&gt;<br>&gt; shawn
<br><br>&gt; _______________________________________________<br>&gt; --Bandwidth and Colocation provided by <a href="http://Easynews.com">Easynews.com</a> --<br>&gt;<br>&gt; asterisk-users mailing list<br>&gt; To UNSUBSCRIBE or update options visit:
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://lists.digium.com/mailman/listinfo/asterisk-users">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br><br><br>--<br>Tzafrir Cohen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:sip:tzafrir@local.xorcom.com">
sip:tzafrir@local.xorcom.com</a><br>icq#16849755&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:iax:tzafrir@local.xorcom.com">iax:tzafrir@local.xorcom.com</a><br>+972-50-7952406&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:jabber:tzafrir@jabber.org">jabber:tzafrir@jabber.org
</a><br><a href="mailto:tzafrir.cohen@xorcom.com">tzafrir.cohen@xorcom.com</a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.xorcom.com">http://www.xorcom.com</a><br>_______________________________________________<br>--Bandwidth and Colocation provided by 
<a href="http://Easynews.com">Easynews.com</a> --<br><br>asterisk-users mailing list<br>To UNSUBSCRIBE or update options visit:<br>&nbsp;&nbsp; <a href="http://lists.digium.com/mailman/listinfo/asterisk-users">http://lists.digium.com/mailman/listinfo/asterisk-users
</a><br></blockquote></div><br>