The <GetDigits> element collects digits that a caller enters into their phone keypad. When the caller is done entering data, Basix submits that data to the provided 'action' URL in an HTTP POST request.

If no input is received before timeout, <GetDigits> falls through to the next element.

You may optionally nest <Play>, <Say>, <Speak> and <Wait> elements within a <GetDigits> element while waiting for input. This allows you to read menu options to the caller while letting them enter a menu selection at any time. After the first digit is received the audio will stop playing.

Element Attributes

Attribute Name Description Allowed values Default Value
action URL to be called when digit collection finishes. It can be a list of URLs separated by commas (to permit fallback in case the main URL fails to reply). It can be a Section name within the current document. This attribute is optional: if absent the processing will proceed to the next XML element.
timeout Timeout for reception of the first digit positive integer 5 seconds
finishOnKey Collection terminator any digit, #, * #
numDigits Maximum number of digits to collect integer >= 1 99
retries Maximum number of retries in case of no digits received integer >= 1 1
playBeep Play beep after all nested audio elements complete true, false false
validDigits Set of digits the user is allowed to enter any digit, #, * 1234567890*#
invalidDigitsSound File to play if user enters invalid digit wav or mp3 file none

After digit collection completes, Basix will call the 'action' URL with the following parameters:

Parameter Description
Digits The digits the caller pressed, excluding the finishOnKey digit if used

If action is not set, processing will continue with the next element (so Digits can be inspected using element Switch for example).

Examples

Example 1: Nested <Speak> element

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
	<GetDigits action="http://www.foo.com/process_gather.php">
		<Speak voice="rms">Please enter your 6-digit account number, followed by the hash key</Speak>
	</GetDigits>
	<Speak voice="rms">Input not received. Bye bye!</Speak>
</Response>
  • If the caller enters a digit during audio playback, the audio will stop and Basix will wait for digits or a timeout.
  • If <GetDigits> tag times out without input, the <Speak> element will complete and the <GetDigits> element will exit without calling the action URL. Basix will then process the next element in the document, which in this case is a <Speak> element which informs the caller that no input was received.
  • If the caller enters 123456 and then hits # or allows five seconds to pass, Basix will submit the digits as POST request to the Action URL.