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 <audio>) or submitted to a server.
| name | 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. |
| cond | (defaults to true) An expression that must evaluate to true after conversion to Boolean in order for the form item to be visited. |
| expr | 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. |
| type | The media format of the resulting recording. Defaults to "audio/basic". Can also be set to "audio/x-alaw-basic" and "audio/x-wav". |
| beep | (defaults to false) If true, a tone is emitted just prior to recording. |
| maxtime | (defaults to 60 seconds) The maximum duration to record. The maximum record time is 1 hour. |
| modal | (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. |
| finalsilence | (defaults to 3 seconds) The interval of silence that indicates end of speech. The maximum finalsilence time is 5 minutes. |
| dtmfterm | (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, the Plum Voice Platform 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">
<form>
<record name="myrecording" beep="true">
<prompt>
Please record a message after the beep.
</prompt>
<filled>
You just recorded the following message:
<value expr="myrecording"/>
</filled>
</record>
</form>
</vxml>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."
<audio>, <catch>, <enumerate>, <error>, <filled>, <grammar>, <help>, <noinput>, <nomatch>, <prompt>, <property>, <value>