Partager via


Limitations When Using a TIM

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

Using a Telephony Interface Manager (TIM) on a computer running Speech Server imposes the following programmatic limitations:

These limitations can adversely affect applications that, for example:

  • Subscribe to the ISynthesizer.BookmarkReached event to associate a bookmark with a specific item when the event is raised.
  • Use the ISynthesizer.Skip method to enable users to skip forwards or backwards within the prompt by a specified amount of time.
  • Use the value of the SpeakCompletedEventArgs.Offset property to determine how much of a prompt is played before the SpeakCompleted event is raised.
  • Use the value of the ToneDetectedEventArgs.Duration or ToneDetectedEventArgs.Volume property to validate the detection of DTMF tones.
  • Use the ISynthesizer.Skip method to enable users to skip playing the remainder of a partially played prompt.

Using a TIM on a computer running Speech Server can also affect the default behavior of MenuActivity objects.

When a MenuActivity object runs, it plays a list of menu options that are drawn from a data source. For the purpose of debugging, the Speech Server API provides a default grammar for MenuActivity that includes a "that one" command. Using the default grammar, when the user says "that one" while the MenuActivity object plays a menu option, the object uses the BookmarkReached event to determine which menu option the user selected. However, on computers running a TIM, because the BookmarkReached event cannot be raised, saying "that one" while the MenuActivity object plays a menu option causes MenuActivity to throw an exception and stop the workflow, thus stopping the application.

To avoid issues with using MenuActivity while debugging applications on computers that use a TIM, set the UseDefaultGrammars property to False and avoid calling the MenuActivity.SetSelectedOptionToMostRecentBookmark method.