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]"); 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