CCXML Voxeo 1.0 Development Guide Home  |  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

callid Data 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.
dialogid Data 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.

namelist Data Type: STRING Default: 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.

NOTE: The namelist attribute should not be used in conjunction with the prepareddialogid attribute.
src Data 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.

Note: You must escape reserved URI characters such as the & and # signs.

NOTE: The src attribute should not be used in conjunction with the prepareddialogid attribute.
type Data 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.
  • application/x-callxml: Requests a dialog system to start a CallXML dialog.
  • application/x-transfer: Initiates a transfer to a new call destination specified in a script.

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
moonis.ahmed
7/24/2009 5:46 AM (EDT)
Hi,

I am a newbie to ccxml and vxml so this query might be trivial!

I have a jsp application from where i call the ccxml page for some process. Once the call is over, I want the ccxml page to transfer control back to my JSP app.

Can dialogstart be used to do this or there is another way?

- Moonis
voxeoJeffK
7/24/2009 6:09 AM (EDT)
Hello,

Communication between CCXML and a server-side process is usually accomplished via <send>:

  http://docs.voxeo.com/ccxml/1.0-final/send.htm

For instance if you wanted to pass the data in myVar back to your JSP you might say:

<send target="'sendTarget.jsp'" name="what_i_sent" namelist="myVar" delay="'1s'" targettype="'basichttp'"/>

Regards,
Jeff Kustermann
Voxeo Support

login



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