A State Table application might not process DTMF keys correctly


If a DTMF key is pressed very early on in a prompt that is not set to force play, it is not always recognised. This happens with a PlayPrompt state table action that is immediately preceded by a GetData action.

In the GetData action, if the value defined for Minimum is the same as the value defined for Maximum, the caller does not have to press the pound key to indicate that the information is complete. Once the action receives the number of characters (or the number) defined by the values of Minimum and Maximum, it moves to the next state. When this happens, the next prompt is force-played for the first 0.8 seconds to discard any extra keys the caller has pressed. Any DTMF keys that are received whilst a prompt is playing in force-play mode are immediately flushed from the buffer.

Resolving the problem

If only a single key input is required, then the action GetKey should be used instead of GetData. If multiple DTMF input is required then 0.8 seconds of silence can be added to the start of the following prompt, thus, when speech starts the 0.8 seconds of enforced 'force-play' will have completed.