Initial Setup Properties |
||
Common (Voice and Data) |
||
Voice Only |
||
Runtime Properties |
||
Common (Voice and Data) |
||
Voice Only |
||
|
||
Greeting Properties |
||
Methods |
||
Common (Voice and Data) |
||
|
|
|
Voice Only |
||
|
|
|
Events |
||
Common (Voice and Data) |
||
|
|
|
Voice Only |
||
The GetDigits control plays a greeting and waits for digits from the caller for a predetermined amount of time. Pattern matching is performed on the collected digits using as many exit conditions as required. GetDigits provides built-in invalid digit and time-out handling.
GetDigits can also utilize pulse detection if supported by the voicecard and can perform pulse digit training.
Digit Pattern Matching
The termination conditions can be as simple as a single digit per exit branch (the default configuration) or complex sequences consisting of the following characters:
$ |
Any character or series of characters. Use a terminating digit, maximum chars, or silence to terminate input. |
n |
Any single numeric char 0 - 9 |
- (hyphen) |
Specifies a numeric range - i.e. 222-333. The start and end of the range must have the same number of digits. For example, to cover 00-999, use 2 separate entries: 00-99 and 100-999. |
? |
Specifies any one character |
0-9 *# |
Each character specifies an actual digit to be received |
Let VB code decide |
Specify that a VB event handler should decide if the digit pattern is correct. Used in the Voicemail example to check the callers new password before setting it in the database. See Condition. |
Control Names |
Conditions can also contain control names. Useful when comparing digits received against database values. This method is used in the Voicemail example to check the subscriber's password. |
Wild Chars |
If using a wild character as a termination in conjunction with other termination conditions, put the wild character in the last digitmask in the list. The digitmask list is processed from top to bottom after the digits are collected, so the wild character may hide other valid digitmasks that should take priority. |
Play Termination
The GetDigits control is configured so that callers who know your system can bypass the greetings by pressing one or more digits. However, in some circumstances you may have important information that you want the caller to hear. If you clear the Terminate on digit checkbox in the property page for the Entry Greeting, the greeting always plays to completion and any collected digits are cleared before starting to wait for digits. (The assumption is that if they are pressing digits, they are not listening to the prompt.)
Wait for Digits Termination Conditions
The GetDigits control automatically calculates the required termination conditions for collecting digits from the digit masks provided in the list. It can select termination based on maximum number of digits, termination characters, or number of seconds without any digits. A warning occurs on check system if the control is unable to calculate a termination condition other than silence.
Avoid using a silence timeout as the only terminating condition because this can slow down progress through the system. It is a good idea to set a terminating digit if a variable number of digits is being requested, i.e. if any condition contains a wild character $. In these scenarios, VBVoice has no other way of detecting whether the caller has entered all the digits.
If silence is the only possible termination, the response time for the caller is longer and type-ahead is not possible. The system waits for the silence time-out period to determine that the caller has stopped entering digits.
Avoid using a silence timeout with the Max Digits or Always Terminate On digit setting. In most systems, # can be used as a termination digit to avoid using time-outs. If a termination digit is set using this field, the digit is stripped from the received digits before continuing. For example, the Digits property does not contain the terminating digit even if received. If a terminating key has been set and it is required to set a valid condition where only the termination digit is entered with no other digits, use a blank digit mask in the condition field.
Type-Ahead and Silence Timeout Terminations
If a GetDigits control terminates with a silence timeout, all digits collected are consumed by that control. Even if the GetDigits matches on a field with two digits and three digits have been entered, the extra digit is not available to subsequent controls for type-ahead operations.
Invalid Digits, No Digits Handling
If an invalid digit sequence is entered by the caller (for example, a sequence that does not match any of the digit masks or if no digits are entered), the control allows the user to try again up to a preset number of attempts. A separate prompt can be set for either or both of these events. If the error count exceeds the number of retries, the GetDigits control performs error handling as described below.
If the error count has not been exceeded and an invalid digit sequence has been received, VBVoice plays the InvalidGreeting, if set, followed by the EntryGreeting and increments the error count. The default Invalid Digits Greeting is: "That was not a valid entry". If no digits have been entered, VBVoice plays the NoDigitsGreeting, followed by the EntryGreeting and increments the error count. The default NoDigitsGreeting is empty. When the retry count is exceeded, VBVoice transfers to the control connected to the Invalid output, if this has been enabled using the Use default error handler check box. If not, it attempts to invoke one of the default error handlers in the usual way:
-
The Invalid Control handler set in the Connections Page
-
LineGroup Invalid exit
-
Play the file ERROR.WAV and hang up.
Change this behaviour using the INI file setting PlayEntryAfterError. If this flag is set to 0, only the Silence or Invalid Greetings will be played on each retry. See .INI File Settings.