The <record> element is an input item that collects a recording from the user. A reference to the recorded audio is stored in the input item variable, which can be played back (using the expr attribute on <value>) or submitted to a server to be saved/processed.





The input item variable that will hold the recording. This is also the name that will be associated with the uploaded recording if it is submitted to a server.


(defaults to true) An expression that must evaluate to true after conversion to Boolean in order for the form item to be visited.


The initial value of the form item variable; default is ECMAScript undefined. If initialized to a value, then the form item will not be visited unless the form item variable is cleared.


The media format of the resulting recording. Defaults to “audio/basic”. Can also be set to “audio/x-alaw-basic” and “audio/x-wav”.


(defaults to false) If true, a tone is emitted just prior to recording.


(defaults to 60 seconds) The maximum duration to record. The maximum record time is 1 hour.


(defaults to true) If this is false, all active dtmf grammars are turned on while recording, if the recording is terminated by dtmf and it has a match with an active grammar, then the appropiate filled action is taken. If this is true, then any dtmf input is stored in the shadow variable name$.termchar. In the event of a grammar match the last recording is stored in the application.lastrecord variable.


(defaults to 3 seconds) The interval of silence that indicates end of speech. The maximum finalsilence time is 5 minutes.


(defaults to true) If dtmfterm = false, the input is ignored; if dtmfterm = true, input immediately interrupts the recoding, and the name$.termchar shadow variable is set to the terminating digit.


The current VoiceXML 2.0 Last Call specification is unclear as to the proper handling of DTMF keypresses that terminate a recording. Until further clarification is available, Plum DEV will handle terminating DTMF by writing the keypress into the shadow variable name$.termchar. Other shadow variables available for <record> are name$.duration, name$.size, and name$.maxtime. The name$.utterance, and name$.confidence shadow variables are not supported.


<?xml version="1.0"?>
<vxml version="2.0">
<record name="myrecording" beep="true">
Please record a message after the beep.
You just recorded the following message: <value expr="myrecording"/>

The output of the above script would be:

Computer: Please record a message after the beep. *BEEP* Human: My dog has fleas. Computer: You just recorded the following message: Computer: (Plays back the recording) “My dog has fleas.”

Child Tags

<audio>, <catch>, <enumerate>, <error>, <filled>, <grammar>, <help>, <noinput>, <nomatch>, <prompt>, <property>, <value>

Parent Tags