Script instructions can be grouped in two categories:
You also should be aware of setttfl and ttclear instructions that help control touch-tone loss.
The decision to have certain instructions (those listed in the first category) flush the touch-tone and phrase buffers is based on the need to keep the caller and script in sync. Without flushing these buffers at certain points in the script (for example, after the speech-flushing instructions are executed), the caller and script may get so far out of sync that the caller gets confused and must hangup and call again.
To illustrate this situation, consider the following example where touch tones are not flushed periodically. A script prompts a caller to enter the following:
In response, the caller enters the following touch-tone sequence:
8225
31
6
These touch-tone sequences identify customer 8225 requesting service 31 and entering 6 to obtain various prices of this service. When callers become familiar with a script, they often enter touch tones before the script prompts for them. If all touch tones are retained and not flushed periodically, it is possible for the script to understand all the touch tones entered ahead of the script. However, when callers enter incorrect touch-tone sequences, it is difficult for both the script and the caller to take immediate corrective action. For example, suppose a caller enters the following touch-tone sequences before the script asks for them:
8225
37
6
14
2
88
5
If the entry 37 identifies a valid service but the caller meant to enter 31, then it is difficult for the script to recover from an error. If all touch tones are retained, they are processed and the caller cannot stop the processing. Moreover, the caller may not realize there is an error and be confused by what the script plays back. The script and the caller become further out of sync.
Situations like the one just described can be prevented by clearing the touch tone buffer periodically. Experience has shown that this is generally a more user-friendly approach. Although touch tones are occasionally lost if users enter them too far ahead, the only penalty is that users must re-enter a single response. However, the main advantage of periodically flushing the touch-tone buffer is that it makes writing scripts simpler. If all touch tones are retained, the variety of error-recovery situations that occur is large and nontrivial if it must be done in the script. If the touch-tone buffers are flushed, the script writer is relieved of the addressing error-recovery situations in the script. The setttfl instruction can be used to prevent touch tones from being flushed. See the description of the setttfl instruction.