[Freeswitch-users] Lua playAndGetDigits
Michael De Lorenzo
delorenzodesign at gmail.com
Tue Mar 16 17:23:27 PDT 2010
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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20100316/1f7053c4/attachment-0002.html
More information about the FreeSWITCH-users
mailing list