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