CCXML Voxeo 1.0 Development GuideHome  |  Frameset Home

This documentation is for CCXML 1.0-Voxeo, which has been superceded by CCXML 1.0-W3C. The CCXML-Voxeo platform is not being updated any longer. The CCXML 1.0-W3C version, however, has many new features and is actively being enhanced. If you're writing a new CCXML application, you should use CCXML 1.0-W3C. Click here for the CCXML 1.0-W3C documentation.
<dialogstart>  element

The <dialogstart> element is used to launch a VXML dialog and associate it with a specific call leg. Said dialog executes on an entirely separate thread of execution from the invoking CCXML document, leaving the CCXML script in control to handle incoming events.

If, for any reason, the dialog cannot be started, an 'error.dialog.notstarted' error event is thrown. When the dialog completes, a 'dialog.exit' event is returned to the event queue of the invoking CCXML document. Note that telephony variables, (ANI, DNIS) will be propagated from the call leg to the dialog application. Note that whenever the full string passed down to through the <dialogstart> exceeds 500 characters, the method will inherently be switched to POST. 



usage
<dialogstart callid="(ECMAScript Expression)" dialogid="(variable name)" namelist="STRING" src="(ECMAScript Expression)" type="(ECMAScript Expression)">


attributes
callidData Type: (ECMAScript Expression)Default: none - attribute is required
This attribute is an expression which tells the dialog which call leg object it should be linked with. If unspecified, the default value of this attribute will equate to "_event.source", which means that the dialog instance will be associated with whatever call leg generated the last event.
dialogidData Type: (variable name)Default: none - attribute is optional
The dialogid attribute specifies the value of the session name used to identify the launched dialog. This value is used to reference dialog events, and is used as an identifier when the <dialogterminate> element is invoked.

namelistData Type: STRINGDefault: none - attribute is optional
This attribute indicates the space-separated list of variable names to be appended to the dialog URL as parameters. The variables will then be available as a variable/value pair in the resultant URI querystring that is sent to the server.
srcData Type: (ECMAScript Expression)Default: none - attribute is required
The src attribute indicates the URL of the VoiceXML dialog to be started. Also note that with the Voxeo dialog extensions, this can also be used to indicate playable audio files or dtmf tones to be output. In addition, this can also hold the value of a TTS string, and/or valid dtmf termdigit entries that can be accepted from the caller. Also allowed is a URI address specifying where a recorded audio stream is to be sent. See the 'Appendix D: Dialog Extensions' section for further details of this usage.
typeData Type: (ECMAScript Expression)Default: application/voicexml+xml
Specifies the MIME type of the requested resource.  This value is used to determine and initiate the appropriate dialog system.

Standard Values:
  • application/voicexml+xml: Requests a VoiceXML interpreter instance.
  • audio/wav: Requests a dialog system to play a simple audio prompt.
Additional Voxeo-specific Extension Values:
(see 'Appendix D' for additional details)
  • application/x-texttospeech: Requests a dialog system to render a Text-To-Speech (TTS) prompt.
  • application/x-recordaudio: Requests a dialog system to execute a simple audio recording dialog.
  • application/x-fetchdigits: Requests a dialog system to execute a simple dialog to capture DTMF key-presses.
  • application/x-senddtmf: Requests a dialog system to render DTMF tones.

NOTE: The type attribute should not be used in conjunction with the prepareddialogid attribute.



parents
none


children
none


code samples
<Dialogstart -name-src-type-dialogid-callid-namelist> sample
<?xml version="1.0" encoding="UTF-8" ?>
<ccxml version="1.0">

<var name="state0" expr="'init'"/>
<var name="myVar" expr="'foo'"/>

  <eventhandler statevariable="state0">
    <transition state="'init'" event="connection.CONNECTION_ALERTING" name="evt">
      <var name="callid_IN" expr="evt.callid"/>
      <accept/>
    </transition>

    <transition state="'init'" event="connection.CONNECTION_CONNECTED" name="evt">
<!-- ***************** START VXML DIALOG ****************** -->
      <dialogstart type="'application/xml+vxml'"
                  src="'My_VXML_Dialog.vxml'"
                  dialogid="vxmlDlg"
                  callid="callid_IN"
                  namelist="myVar"/>

    </transition>   
   

    <transition event="dialog.exit" name="evt">
      <log expr="'DIALOG EXIT REACHED'"/>
      <log expr="'*** \'myReturnVar\' EQUALS (' + evt.myReturnVar + ') ***'"/>
      <exit/>
    </transition>
   
<!-- ****************** GENERAL EXCEPTIONS ******************** -->
    <transition event="call.CALL_INVALID">
      <exit/>
    </transition>

    <transition event="error.*" name="evt">
      <log expr="'*** AN UNEXPECTED ERROR HAS OCCURED [' + evt.error + '] ***'"/>
      <exit/>
    </transition>
  </eventhandler>

</ccxml>

<My_VXML_Dialog.vxml>
<?xml version="1.0"?>
<vxml version="2.0">


<var name="myReturnVar" expr="'Hello'"/>

  <form id="Form">
    <block>
      <prompt>
        Look at your C C X M L logger out put to see the value of my return var.
      </prompt>
      <exit namelist="myReturnVar"/>
    </block>
  </form>

</vxml>



additional links
W3C Specification


  ANNOTATIONS: EXISTING POSTS
MattTrinneer
10/31/2007 9:27 AM (EDT)
It seems inconsistent that dialogstart in ccxml would not offer a 'method' argument accepting 'POST' as a value?
voxeojeff
10/31/2007 12:57 PM (EDT)
Hello Matt,

We actually do have plans to support the 'method' attribute.  Our Prophecy engineers are currently working on implementing this feature into a future build of Prophecy 8.  There is currently no ETA, but we'll be sure to update you when we have one.

Best regards,

Jeff Menkel
Voxeo Corporation
matejicek
2/12/2008 10:09 AM (EST)
Hello there,

I have a problem to obtain some value defined in CCXML document in voicexml document thru parameter namelist in <dialogstart> element. In your example above is shown exactly opposite situation with <exit namelist=...>, but I'd like to know how gain in voicexml document value 'foo' defined in ccxml document.

Thank you for answers.

Matejicek 
mikethompson
2/12/2008 12:07 PM (EST)
Matejicek,

This is possible using session.connection.ccxml name space which allows you to not utilize server side scripting to grab these variables.

It is well defined here:

'http://www.w3.org/TR/2005/WD-ccxml-20050629/#VoiceXMLIntegration'.

------------------------------------------------------------------------------------------------
An example application demonstrating how to accesses all values in the 'session.connection.ccxml' object is:
__________________________________

  <?xml version="1.0" encoding="UTF-8" ?>
  <vxml version="2.1" xmlns:voxeo="http://community.voxeo.com/xmlns/vxml">
    <form id="CCXMLVars">
        <block>
            <log expr="'session.connection.ccxml == ' + session.connection.ccxml"/>
            <log expr="'session.connection.ccxml.sessionid == ' + session.connection.ccxml.sessionid"/>
            <log expr="'session.connection.ccxml.dialogid == ' + session.connection.ccxml.dialogid"/>
            <log expr="'session.connection.ccxml._ioprocessors == ' + session.connection.ccxml._ioprocessors"/>
            <log expr="'session.connection.ccxml._ioprocessors.basichttp == ' + session.connection.ccxml._ioprocessors.basichttp"/>
            <log expr="'session.connection.ccxml._url == ' + session.connection.ccxml._url"/>
            <log expr="'session.connection.ccxml.namelist == ' + session.connection.ccxml.namelist"/>
            <log expr="'session.connection.ccxml.namelist.length == ' + session.connection.ccxml.namelist.length"/>
            <foreach item="value" array="session.connection.ccxml.namelist">
                <log expr="'foreach keys == ' + value"/>
            </foreach>

            <log expr="'session.connection.ccxml.values == ' + session.connection.ccxml.values"/>
            <log expr="'session.connection.ccxml.values.a == ' + session.connection.ccxml.values.a"/>
            <log expr="'session.connection.ccxml.values.b == ' + session.connection.ccxml.values.b"/>
            <log expr="'session.connection.ccxml.values.c == ' + session.connection.ccxml.values.c"/>
            <log expr="'session.connection.ccxml.values.d == ' + session.connection.ccxml.values.d"/>
        </block>
    </form>
  </vxml>
----------------------------------------------------------------------------------------------

Please let me know if you have any additional questions, as always, we are standing by to assist.


Best,
Mike Thompson
Voxeo Corporation

login



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