<br><br><div class="gmail_quote">On Tue, Mar 16, 2010 at 1:21 PM, Michael De Lorenzo <span dir="ltr">&lt;<a href="mailto:delorenzodesign@gmail.com" target="_blank">delorenzodesign@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<span style="font-family: arial,sans-serif; font-size: 13px; border-collapse: collapse;"><div>I&#39;m having some trouble getting consistent results with playAndGetDigits, sometimes the digits are record and other times they&#39;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.</div>


<div><br></div><div>I&#39;m trying to have users press a confirmation code, in this case &quot;1111&quot; although I&#39;d like to make it accept &quot;1&quot; or &quot;11&quot; or &quot;111&quot; or &quot;1111&quot; if possible.</div>


<div><br></div><div>Can anyone point me in the right direction?</div><div><br></div><br><div><div><font face="&#39;courier new&#39;, monospace">    session = freeswitch.Session(&quot;{ignore_early_media=true}sofia/gateway/&quot; .. provider .. &quot;/1&quot; .. number_to_call);</font></div>


<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">    while(session:ready()) do</font></div><div><font face="&#39;courier new&#39;, monospace">       session:answer();</font></div>


<div><font face="&#39;courier new&#39;, monospace">       session:setInputCallback(&quot;onInput&quot;,&quot;true&quot;);</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">       --playbackMessage(check_message);</font></div>


<div><font face="&#39;courier new&#39;, monospace">       digits = session:playAndGetDigits(4, 4, 1, 5000, &quot;&quot;, get_digits_message, &quot;&quot;, &quot;[1]&quot;);</font></div></div></span></blockquote><div><br>

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&#39;t specified a terminator key (like &quot;#&quot;) but you are giving the user only one try and waiting 5000ms for the entry. Try something like this:<br>
<br><span style="font-family: arial,sans-serif; font-size: 13px; border-collapse: collapse;"><font face="&#39;courier new&#39;, monospace">digits
 = session:playAndGetDigits(1, 4, 1, 5000, &quot;#&quot;, get_digits_message, &quot;&quot;, 
&quot;\\d+&quot;);</font></span><br><br>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. <br>-MC<br><br>P.S. - This topic is covered in greater detail in Chapter 7 of the upcoming FreeSWITCH book. ;) <br>
<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<span style="font-family: arial,sans-serif; font-size: 13px; border-collapse: collapse;"><div><div><font face="&#39;courier new&#39;, monospace">       freeswitch.consoleLog(&quot;info&quot;, digits .. &quot;\n&quot;);</font></div>


<div><font face="&#39;courier new&#39;, monospace">       freeswitch.consoleLog(&quot;info&quot;, &quot;Did this check out? &quot; .. (check_message == true and &quot;yes&quot; or &quot;no&quot; .. &quot;\n&quot;));</font></div>


<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">       -- we got what we&#39;re looking for, so we can end this</font></div><div><font face="&#39;courier new&#39;, monospace">       if(check_success) then</font></div>


<div><font face="&#39;courier new&#39;, monospace">          freeswitch.consoleLog(&quot;info&quot;, &quot;A positive response was received from this check.\n&quot;);</font></div><div><font face="&#39;courier new&#39;, monospace">          break;</font></div>


<div><font face="&#39;courier new&#39;, monospace">       else</font></div><div><font face="&#39;courier new&#39;, monospace">          -- not a positive response</font></div><div><font face="&#39;courier new&#39;, monospace">          -- if we reached our max attempts, we&#39;re finished move on</font></div>


<div><font face="&#39;courier new&#39;, monospace">          if(attempts == max_attempts) then</font></div><div><font face="&#39;courier new&#39;, monospace">            freeswitch.consoleLog(&quot;info&quot;, &quot;We&#39;ve reached our maximum attempts for this number.\n&quot;);</font></div>


<div><font face="&#39;courier new&#39;, monospace">            break;</font></div><div><font face="&#39;courier new&#39;, monospace">          end</font></div><div><font face="&#39;courier new&#39;, monospace">       end</font></div>


<div><font face="&#39;courier new&#39;, monospace">    end</font><br></div></div></span><br></blockquote></div><br>