[Freeswitch-users] Lua playAndGetDigits

Aloysius Lloyd lloyd.aloysius at gmail.com
Tue Mar 16 17:37:38 PDT 2010


set the console log level to 7. Then you can see the DTMF values in console
log , while you are pressing the keys.

Lloyd

On Tue, Mar 16, 2010 at 8:23 PM, Michael De Lorenzo <
delorenzodesign at gmail.com> wrote:

> So I tried Michael's suggestion of:
>
> digits = session:playAndGetDigits(1, 4, 1, 5000, "#", get_digits_message,
> "", "\\d+");
>
> but it still didn't detect that I had pressed any keys.  What would cause
> this?  Is there someplace I can check to see if anything at all is being
> detected?
>
>
> On Tue, Mar 16, 2010 at 5:00 PM, Michael Collins <msc at freeswitch.org>wrote:
>
>>
>>
>> On Tue, Mar 16, 2010 at 1:21 PM, Michael De Lorenzo <
>> delorenzodesign at gmail.com> wrote:
>>
>>> I'm having some trouble getting consistent results with playAndGetDigits,
>>> sometimes the digits are record and other times they're not.  It seemed to
>>> have something to do with how quickly the digits were pressed, but now that
>>> no longer seems to be the case.
>>>
>>> I'm trying to have users press a confirmation code, in this case "1111"
>>> although I'd like to make it accept "1" or "11" or "111" or "1111" if
>>> possible.
>>>
>>> Can anyone point me in the right direction?
>>>
>>>
>>>     session =
>>> freeswitch.Session("{ignore_early_media=true}sofia/gateway/" .. provider ..
>>> "/1" .. number_to_call);
>>>
>>>     while(session:ready()) do
>>>        session:answer();
>>>        session:setInputCallback("onInput","true");
>>>
>>>        --playbackMessage(check_message);
>>>        digits = session:playAndGetDigits(4, 4, 1, 5000, "",
>>> get_digits_message, "", "[1]");
>>>
>>
>> You are specifying a minimum of four and a maximum of four digits. Also,
>> your regex will match any string that has a digit 1 in it, which may or may
>> not be what you are looking for. Lastly, you haven't specified a terminator
>> key (like "#") but you are giving the user only one try and waiting 5000ms
>> for the entry. Try something like this:
>>
>> digits = session:playAndGetDigits(1, 4, 1, 5000, "#", get_digits_message,
>> "", "\\d+");
>>
>> Let us know if that works. Oh, one other thing: you might want to add an
>> invalid message because playAndGetDigits will handle invalid input for you.
>> -MC
>>
>> P.S. - This topic is covered in greater detail in Chapter 7 of the
>> upcoming FreeSWITCH book. ;)
>>
>>
>>
>>>        freeswitch.consoleLog("info", digits .. "\n");
>>>        freeswitch.consoleLog("info", "Did this check out? " ..
>>> (check_message == true and "yes" or "no" .. "\n"));
>>>
>>>        -- we got what we're looking for, so we can end this
>>>        if(check_success) then
>>>           freeswitch.consoleLog("info", "A positive response was received
>>> from this check.\n");
>>>           break;
>>>        else
>>>           -- not a positive response
>>>           -- if we reached our max attempts, we're finished move on
>>>           if(attempts == max_attempts) then
>>>             freeswitch.consoleLog("info", "We've reached our maximum
>>> attempts for this number.\n");
>>>             break;
>>>           end
>>>        end
>>>     end
>>>
>>>
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20100316/abc46e2e/attachment-0002.html 


More information about the FreeSWITCH-users mailing list