NOTE: I tested this on Centos and I wasn't able to reproduce it. So it looks like a windows problem or it might be that since I got one error when trying to compile FreeSWITCH on windows I tried to fix it with the fix on this jira bug report http://jira.freeswitch.org/browse/FSBUILD-296?focusedCommentId=20921&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel so maybe that is the problem.

(I am using Flite for TTS)

--
I have a macro (phrase) file that is set up like this.

  <macro name="test_tts">
    <input pattern="(.*)">
      <match>
<action function="speak-text" data="Please enter the extension then press the pound key."/>

        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
        <action function="play-file" data="ivr/ivr-please.wav"/>
        <action function="play-file" data="voicemail/vm-press.wav"/>
        <action function="play-file" data="digits/9.wav"/>
        <action function="play-file" data="silence_stream://2000"/>
      </match>
    </input>
  </macro>

Then when I use this phrase file in the play_and_get_digits application, something like this.

<action application="play_and_get_digits" data="1 4 3 7000 # phrase:test_tts phrase:test_play_file \d+"/>

If I try to enter a number on the phone for example "234#" what happens here is that if it is in the middle of playing the speak-text part of the phrase file then it will just return "2" and stop right away (as if he is done) if "234#" is pressed when the play-file part of phrase file is playing then it will work as it should work (returning 234).

Yitzchok