yep, the problem was in the regular _expression_ (only looks for a number 0-9)
i added a couple of lines that see if its not a number, but is a *  it will return that.
thanks, not an asterisk issue, but a python issue.

shawn

On 8/14/06, Tzafrir Cohen <[EMAIL PROTECTED]> wrote:
On Mon, Aug 14, 2006 at 10:31:30AM -0400, shawn bright wrote:
> lo there,
> i am running a python agi script that gets a DTMF number from the user
> and passes it back to the script.

Any reason you're not using Read for this?

> It works fine with numbers, but if they
> enter a star (*), it doesn't want to play.

Could you please provide a trace of the run?

> 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):

Just a hunch:

How is '*' considered in a regular _expression_?

>        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


--
Tzafrir Cohen         sip:[EMAIL PROTECTED]
icq#16849755          iax:[EMAIL PROTECTED]
+972-50-7952406          jabber:[EMAIL PROTECTED]
[EMAIL PROTECTED]     http://www.xorcom.com
_______________________________________________
--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

_______________________________________________
--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

Reply via email to