CallXML 2.0 Development Guide Home  |  Frameset Home

This documentation is for CallXML 2, which has been superceded by CallXML 3. The CallXML 2 language is not being updated any longer. CallXML 3, however, has many new features and is actively being enhanced. If you're writing a new CallXML application, you should use CallXML 3. Click here for the CallXML 3.0 documentation.

<recordaudio>  element


The <recordaudio> element is used to record a caller's voice utterances for future storage and/or retrieval. Note that while the CallXML markup allows for both a 'mailto' and an 'ftp' for the resultant recording to be stored, it is considered best practice in a Production application to allow the server side language to handle the uploading or mailing of recorded audio.


usage

<recordaudio beep="(true|false)" cleardigits="(true|false)" format="string - URI" maxsilence="(m|s|ms)" maxtime="(m|s|ms)" termdigits="(123456789*#|ABCD)" timevar="(variable name)" value="(variable name)">


attributes

beep Data Type: (true|false) Default: true
The beep attribute, when set to true, allows the developer to insert a ‘beep tone’ to indicate to the caller that the application has begun recording. If set to 'false',  the caller will not hear the beep indicating that the recording has started.
cleardigits Data Type: (true|false) Default: false
This attribute's value is a Boolean, indicating whether the queued digits buffer should be cleared when this action starts. "true" clears the digits buffer; "false" leaves the contents of the digit buffer alone.
format Data Type: string - URI Default: none - attribute is optional
The format attribute defines the formatting string, or MIME type of the recorded audio file. If this value is undefined, then the value will default to 'audio/wav'.
maxsilence Data Type: (m|s|ms) Default: 5s
This attribute defines the maximum amount of silence from the caller during a <recordaudio> session before the CallXML interpreter will assume that the caller is finished recording. If left unspecified, then this will dealut to a value of 5 seconds.
maxtime Data Type: (m|s|ms) Default: 30s
The maxtime attribute delineates the maximum time that a caller is allowed to record audio. If unspecified, then the session will be limited to a maximum of 30 seconds, (default).
termdigits Data Type: (123456789*#|ABCD) Default: none - attribute is optional
This attribute holds the list of touch-tone digits which can terminate the current caller action. Note that for each termdigit specified, there should be an <ontermdigit> handler in the code to catch the event. Allowable values are any one of "012356789*#", the ordinary DTMF (Touch-Tone) keypad possibilities, plus the special keypad tones found on some telephones "ABCD".
timevar Data Type: (variable name) Default: none - attribute is optional
The 'timevar' attribute of the recordaudio tag allows the developer to specify the variable name that holds the duration of audio that a caller has recorded. This value will return the amount of time, in milliseconds, that a callers input has recorded within the recordaudio element.
value Data Type: (variable name) Default: Required
For the record element, the value attribute indicates a variable or URL reference that designates where the recorded audio is to be sent. Do note that leaving this attribute undefined will result in a fatal application error.



possible events

onmaxsilence This event occurs when the application has waited too long between digit entries or detects too much silence at the end of a recording session. See the onmaxsilence element description for further details.
onmaxtime This event occurs during user input if the user takes more time than is allowed by a maxTime attribute to input their entire response. See the onmaxtime element description for further details.
ontermdigit Used for catching and handling term digit events as they occur in the call flow. See the ontermdigit element description for further details.



code samples

<Recordaudio mailto with headers>
<?xml version="1.0" encoding="UTF-8"?>

<callxml version="2.0">
  <block>
    <text>
      Ready to record your message? Lets go go gadget!
    </text>
    <recordaudio value="mailto:hasselhoff@baywatch.com?subject=
        Youre fired&amp;fromname=
        The Network&amp;fromaddress=
        muckitymucks@TheNetwork.com&amp;body=
        Sorry dave. Just found out that you have no appreciable talent.
        The enclosed recording details the fact that Baywatch On The Moon 
        is cancelled&amp;filename=fired.wav"/>

  </block>
</callxml>


<Recordaudio format - value - termdigits - maxtime - maxsilence - beep>
<?xml version="1.0" encoding="UTF-8"?>

<callxml version="2.0">
  <block>

    <text>
      Record your message, and then press the pound key.
    </text>
    <recordaudio 
      value="ftp://MyUserName:MyPassword@Myserver.com/MyMsgTitle.wav"
      format="audio/wav" termdigits="all" maxtime="10s" maxsilence="2s"
      beep="true">


    <ontermdigit value="#">
      <text>
        Your message was
      </text>
      <playaudio value="http://MyServer.com/MyMsgTitle.wav"/>
    </ontermdigit>

    <onmaxtime>
      <text>
        Hey there Mister Long winded.
        You can only record a message for 10 seconds.
      </text>
    </onmaxtime>

    <onmaxsilence>
      <text>
        You were quiet for too long, and your recording was terminated.
      </text>
    </onmaxsilence>

</recordaudio>


  </block>
</callxml>


<Recordaudio timevar>
<?xml version="1.0" encoding="UTF-8" ?>
<callxml version="2.0">
  <block>
    <text>
      Re cord your message to Elvis after the tone. 
      Press pound when you are done.
    </text>

    <recordaudio timevar="rectime"
                    termdigits="#"
                    maxtime="3m"
                    maxsilence="10s"
                    format="audio/vox"
                    value="mailto:Elvis@TheKing.com"/>

    <ontermdigit>
      <text>
        The re cording time was $rectime; milliseconds in duration.
        Thunkya vur much.
      </text>
    </ontermdigit>

  </block>

</callxml>


<recordaudio (null)>
<?xml version="1.0" encoding="UTF-8"?>

<callxml version="2.0">

  <block>
    <text>
    Here we illustrate how we can use the re cord audio tag to detect 
    silence.
    This assumes that the audio recording is disposable, and that we
    really  dont want to save the audio to any particular destination.
    </text>
<!-- note the 'null://' value below, as we don't want to keep the audio -->
    <recordaudio value="null://" maxsilence="3s" maxtime="20s" timevar="rectime"/>

    <onmaxsilence>
    <text> The recording was $rectime; milliseconds long</text>
    </onmaxsilence>
 
  </block>

</callxml>




additional links

none


  ANNOTATIONS: EXISTING POSTS
shrhoads
6/18/2006 5:43 PM (EDT)
FYI it appears that the mailto: URI currently only supports one email address.  I attempted to put 2 separated by a comma, and I got received the error

event: error "telephony" (recipient not accepted)

e.g. mailto:user1@domain.com,user2@domain.com?subject=Hi Yall
mikethompson
6/18/2006 11:31 PM (EDT)
Shawn,

I just did a test to verify your findings, and you are correct.  Unless there is some special syntax I am missing, it does not appear to be possible.  If you would be so kind, please bear with me while I investigate this for you.

Regards,
Mike Thompson
Voxeo Extreme Support
mikethompson
6/19/2006 1:38 PM (EDT)
Hi Shawn,

I did some research this morning with our platform engineers, and it appears that sending to multiple e-mail addresses with <recordaudio> is *not* currently supported.  However, this may be something that we would be interested in adding, given the developer demand is out there or a business opportunity presents itself.

Regards,
Mike Thompson
Voxeo Extreme Support
firestorm69
11/28/2006 1:19 PM (EST)
Why not just setup one email address and make it a "Mail Group".  On the servers I manage, we can setup one address that is the "Mail Group" and then assign as many other email address we want to the group.  When an email comes into the "Mail Group" address, it automatically forwards the message to every member of the group.

This is also known as forwarding.

jamie
mikethompson
11/28/2006 2:41 PM (EST)
Hi Jamie,

You are correct!  Configuring a "Mail Group" serves as a proper workaround for this limitation.

Best,
Mike Thompson
Voxeo Corporation

login



© 2011 Voxeo Corporation  |  Voxeo IVR  |  VoiceXML & CCXML IVR Developer Site