Request Entry from Caller

$get_var name min max [* [# [F]]]

This command causes CopiaFacts to speak a prompt (question) to the caller using the $image_desc specification of the current infobox, and then obtain information from the person at the telephone and assign a value to a variable. It must be used in a $type question infobox, known as a "question box".

The parameters on this command are used as follows:

name the name of the variable to be set from user entry. Note that the parameter on this command should not have a leading @. The variable will be created if it does not already exist.
min the minimum number of digits to be entered. A min value of 0 makes it valid for no response to be made by the caller. In this case you can use the system variable EMPTY in a comparison with your own variable to test if the caller has responded. Input will time out after the $tone_wait timeout value, and the $repeat_message parameters will be ignored. When the $validate option is 'silence', this parameter should be zero.
max the maximum number of digits to be entered. The caller may terminate entry earlier by keying # in the normal way unless the # symbol also appears on the command. When the $validate option is 'silence', this parameter specifies the time to wait for non-silence. If the TIME_MS system variable has been enabled, the value is milliseconds; otherwise it is seconds.
* indicates that the 'star' symbol is to be treated as valid data and will not (as usual) cancel and restart DTMF entry.
# indicates that the 'hash' symbol is to be treated as valid data and will not (as usual) terminate entry. Normally, this symbol should only be used on the $get_var command when the min and max values are equal.
F indicates that the system is to enable fax-tone detection during user DTMF entry. The result will be placed in the FAX_TONE system variable and if a tone is detected, no DTMF data will be returned.

The entry of the variable is conditioned by the processing specified in the $validate command. If the validation is successful, control passes to the infobox or state specified by $next_box, and if it fails the specification from $error_exit is used. If you wish to use the result variable in your own tests, note that the value of the variable entered by the caller is not available for testing in a conditional statement in the same .IIF file. You must transfer control to another .IIF file (normally, by using $next_box) if you wish to use the entered value in a conditional statement. An error will be reported if you do not do this.


Use a pair of infoboxes to enter a value without validation and use it to condition processing:

; file 00009123.IIF

$type question

$image_desc @FFBASE\voice\q123.vox

$get_var varname2 3 5

$validate none

$next_box 9000 ; transfer to new box to test entry

; file 00009000.IIF

$type decision

$if @varname2 = 1111

$next_box 2222


$next_box 3333