VoiceXML Forum, Tools Working
Group
Draft 1.5 - Internal Working Draft - 31 July 2007
For Public Review 20 August 2007
Editor:
About the VoiceXML Forum:
Founded in 1999, the VoiceXML Forum is an industry organization whose mission is to promote and to accelerate the worldwide adoption of VoiceXML-based applications. To this end, the Forum serves as an educational and technical resource, a certification authority and a contributor and liaison to international standards bodies, such as the World Wide Web Consortium (W3C) IETF, ANSI and ISO. The VoiceXML Forum is organized as a program of the IEEE Industry Standards and Technology Organization (IEEE-ISTO). Membership in the Forum is open to any interested company. For more information, please visit the Website at www.voicexml.org.
Disclaimers:
This document is subject to change without notice and may be updated, replaced or made obsolete by other documents at any time. The VoiceXML Forum disclaims any and all warranties, whether express or implied, including (without limitation) any implied warranties of merchantability or fitness for a particular purpose.
The descriptions contained herein do not imply the granting of licenses to make, use, sell, license or otherwise transfer any technology required to implement systems or components conforming to this specification. The VoiceXML Forum, and its member companies, makes no representation on technology described in this specification regarding existing or future patent rights, copyrights, trademarks, trade secrets or other proprietary rights.
By submitting information to the VoiceXML Forum, and its member companies, including but not limited to technical information, you agree that the submitted information does not contain any confidential or proprietary information, and that the VoiceXML Forum may use the submitted information without any restrictions or limitations.
Table of Contents
action(CheckCredentials)
decision(ValidUser.No)
action(TransferToAgent)
action(CheckCredentials)
decision(Invalid)
action(TransferToAgent)
sl:log
tag.sl:
session
Element | session |
---|---|
Description | This element is the top level container of the ASLS
content. The sl:log element may contain
multiple sessions. This may be required for servers
handling both CCXML and VoiceXML browsers. The sessions should
always be considered parallel.
|
Attributes |
|
Children | Zero or one input
elements.
Zero or
more segment
elements. Zero or one result
elements.
|
Parent | sl:log |
<sl:log ... xmlns="http://voicexml.org/2006/asls-slaml" sl:version="1.0">
<session ... >
...
</session>
</sl:log>
segment
Element | segment |
---|---|
Description | Contains log information about the segment data and processing steps. |
Attributes |
|
Children | Zero or one input
elements.
Zero or more action
or decision elements.Zero or one result elements. |
Parent |
session |
The same
interaction identifier
must
be specified in the attributes of the corresponding call
and
segment
elements to properly record the association.<segment ... >
<input ... > ... </input>
<action ...> ... </action>
<decision ...> ... </decision>
<result ...> ... </result>
</segment>
action
Element | action |
---|---|
Description | Contains log records of action data and any sub-actions or decisions. If the action element is a interaction handler, the optional SLAML attributes must be used. |
Attributes |
|
Children | Zero or one input
elements.
Zero or more action
or decision elements.Zero or one result elements. |
Parent | segment or action |
decision
Element | decision |
---|---|
Description | Contains log information about a processing decision. |
Attributes |
|
Children | Zero or one input
elements.Zero or one result elements. |
Parent | segment or action |
call
Element | call |
---|---|
Description | It is a SLAML period element that represents the sending of the request and the receipt of the associated response. It may also contain any related, caller-side processing done in the interim. |
Attributes |
|
Children | Zero or one input
elements.
Zero or one
param
elements.
Zero or more action
or decision elements.Zero or one result elements. |
Parent |
segment or action
|
input
Element | input |
---|---|
Description | Contains a list of input data of the parent element. |
Attributes |
|
Children | Zero or more data elements. |
Parent |
segment ,
action , decision
,or call
|
result
Element | result |
---|---|
Description | Contains a list data results that the parent element produced or concluded. |
Attributes |
|
Children | Zero or more data elements. |
Parent | segment , action ,
decision ,or call |
param
Element | param |
---|---|
Description | Contains a list of parameter data passed by the parent element to the target. |
Attributes |
|
Children | Zero or more data elements. |
Parent |
call
|
data
Element | data |
---|---|
Description | Defines a named data element of the parent. |
Attributes |
|
Children | Any content that represent data value (xsd anyType child) |
Parent | input , result ,
or param |
<?xml version="1.0" encoding="UTF-8"?>
<sl:slaml xmlns:sl="http://voicexml.org/2006/slaml" version="1.0"
xsi:schemaLocation="http://voicexml.org/2006/slaml voicexml.org/2006/slaml.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<sl:manifest>
<sl:session name="AS1-abcd" origin="1234" sl:class="ApplicationServer" sl:log-tag="as-log-1"/>
</sl:manifest>
<sl:log tag="as-log-1" sl:class="ApplicationServer" entity="AS-1"
xmlns:as="http://voicexml.org/2006/asls-slaml"
xsi:schemaLocation="http://voicexml.org/2006/asls-slaml voicexml.org/2006/asls-slaml.xsd">
<!-- ASLS content -->
<as:session as:sessionID="a1234" sl:start="1" sl:end="40">
<as:segment sl:handle-interaction="1234" sl:start="2" sl:end="100">
<as:input>
<as:data as:name="URI" as:type="URI"> http://as1.xyz.int/main </as:data>
<as:data as:name="userAgent"> VoiceXML/2.1 (VB 3.5; Linux) </as:data>
</as:input>
<!-- 'single-threaded' processing -->
<as:action as:name="CheckCredentials " sl:handle-interaction="" sl:start="3" sl:end="20"/>
<as:decision as:name="ValidUser" sl:time="21">
<as:result>
<as:data as:name="authorization">invalid</as:data>
</as:result>
</as:decision>
<as:action as:name="TransferToAgent" sl:handle-interaction="" sl:start="22" sl:end="35">
<as:input>
<as:data as:name="agentSkills">newAccounts</as:data>
</as:input>
</as:action>
<as:result>
<as:data as:name="response" as:type="application/voicexml+xml">
<vxml xmlns="http://www.w3.org/2001/vxml" version="2.1">
<form>
<block>Please wait while we transfer you to the agent</block>
</form>
</vxml>
</as:data>
</as:result>
</as:segment>
</as:session>
</sl:log>
</sl:slaml>
<?xml version="1.0" encoding="UTF-8"?>
<sl:slaml xmlns:sl="http://voicexml.org/2006/slaml" version="1.0"
xsi:schemaLocation="http://voicexml.org/2006/slaml voicexml.org/2006/slaml.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<sl:manifest>
<sl:session name="AS2-abcd" origin="vb1-1234" sl:class="AuctionServer" sl:log-tag="as-log-2"/>
</sl:manifest>
<sl:log tag="as-log-2" sl:class="AuctionServer" entity="AS-2"
xmlns:as="http://voicexml.org/2006/asls-slaml"
xsi:schemaLocation="http://voicexml.org/2006/asls-slaml voicexml.org/2006/asls-slaml.xsd">
<!-- a bid placement -->
<as:session as:sessionID="as-b1" sl:start="90" sl:end="99">
<as:segment sl:handle-interaction="vb1-1234" sl:start="90" sl:end="99">
<as:input>
<as:data as:name="URI" as:type="URI"> http://as2.vgs.int/bid"</as:data>
<as:data as:name="userAgent"> VoiceXML/2.1 (VB 3.5; Linux) </as:data>
</as:input>
<as:call as:name="NewBid" sl:interaction="bid-1" sl:log-tag="as-log-2"
sl:class="AuctionServer" sl:start="91" sl:end="98">
<as:input>
<as:data as:name="auctionID" as:type="Number"> 777 </as:data>
<as:data as:name="bid" as:type="Number"> 333 </as:data>
</as:input>
<as:result>
<as:data as:name="receipt"> 777-1</as:data>
</as:result>
</as:call>
<as:result>
<as:data as:name="response" type="application/voicexml+xml">
<vx:vxml xmlns:vx="http://www.w3.org/2001/vxml" vx:version="2.1">
<vx:form>
<vx:block>Bid accepted. Confirmation 777-1</vx:block>
</vx:form>
</vx:vxml>
</as:data>
</as:result>
</as:segment>
</as:session>
<!-- an auction session -->
<as:session as:sessionID="as-a1" sl:start="1" sl:end="110" sl:mode="parallel">
<as:segment as:name="NewBid" sl:handle-interaction="bid-1" sl:start="92" sl:end="97">
<as:input>
<as:data as:name="auctionID" as:type="Number"> 777 </as:data>
<as:data as:name="bid" as:type="Number"> 333 </as:data>
</as:input>
<as:decision as:name="DisplayReservePrice" sl:time="93"/>
<as:decision as:name="AddOvertime" sl:time="94"/>
<as:result>
<as:data as:name="confirmationID">777-1</as:data>
</as:result>
</as:segment>
<as:segment sl:handle-interaction="admin-1" as:name="Auction" sl:start="1" sl:end="110">
<as:action as:name="InitializeAuction" sl:handle-interaction="" sl:start="1" sl:end="2">
<as:input>
<as:data as:name="ReservePrice" as:type="Number">300</as:data>
<as:data as:name="Duration" as:type="Number">100</as:data>
</as:input>
<as:result>
<as:data as:name="auctionID">777</as:data>
</as:result>
</as:action>
<as:action as:name="FinalizeAuction" sl:handle-interaction="" sl:start="108" sl:end="109">
<as:result>
<as:data as:name="winner">777-1</as:data>
</as:result>
</as:action>
</as:segment>
</as:session>
</sl:log>
</sl:slaml>
<?xml version="1.0" encoding="UTF-8"?>
<sl:slaml xmlns:sl="http://voicexml.org/2006/slaml" version="1.0"
xsi:schemaLocation="http://voicexml.org/2006/slaml voicexml.org/2006/slaml.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<sl:manifest>
<sl:session name="AS2-abcd" origin="vb1-1234" sl:class="AuctionServer" sl:log-tag="as-log-2"/>
<sl:session name="AS3-abcd" origin="auction-5678" sl:class="AuctionHub" sl:log-tag="as-log-3"/>
</sl:manifest>
<sl:log tag="as-log-2" sl:class="AuctionServer" entity="AS-2"
xmlns:as="http://voicexml.org/2006/asls-slaml"
xsi:schemaLocation="http://voicexml.org/2006/asls-slaml voicexml.org/2006/asls-slaml.xsd">
<!-- a bid placement -->
<as:session as:sessionID="as-b1" sl:start="90" sl:end="99">
<as:segment sl:handle-interaction="vb1-1234" sl:start="90" sl:end="99">
<as:input>
<as:data as:name="URI" type="URI"> http://as2.vgs.int/bid"</as:data>
<as:data as:name="userAgent"> VoiceXML/2.1 (VB 3.5; Linux) </as:data>
</as:input>
<as:call as:name="NewBid" sl:interaction="bid-1" sl:class="AuctionServer"
sl:log-tag="as-log-3" sl:start="91" sl:end="98">
<as:input>
<as:data as:name="auctionID" as:type="Number"> 777 </as:data>
<as:data as:name="bid" as:type="Number"> 333 </as:data>
</as:input>
<as:result>
<as:data as:name="receipt"> 777-1</as:data>
</as:result>
</as:call>
<as:result>
<as:data as:name="response" as:type="application/voicexml+xml">
<vx:vxml xmlns:vx="http://www.w3.org/2001/vxml" vx:version="2.1">
<vx:form>
<vx:block>Bid accepted. Confirmation 777-1</vx:block>
</vx:form>
</vx:vxml>
</as:data>
</as:result>
</as:segment>
</as:session>
</sl:log>
<sl:log tag="as-log-3" sl:class="AuctionHub" entity="AS-3" xmlns:as="http://voicexml.org/2006/asls-slaml">
<!-- an auction hub session -->
<as:session as:sessionID="as-a1" sl:start="1" sl:end="110" sl:mode="parallel">
<as:segment as:name="NewBid" sl:handle-interaction="bid-1" sl:start="92" sl:end="97">
<as:input>
<as:data as:name="auctionID" as:type="Number"> 777 </as:data>
<as:data as:name="bid" as:type="Number"> 333 </as:data>
</as:input>
<as:decision as:name="DisplayReservePrice" sl:time="93"/>
<as:decision as:name="AddOvertime" sl:time="94"/>
<as:result>
<as:data as:name="confirmationID">777-1</as:data>
</as:result>
</as:segment>
<as:segment sl:handle-interaction="admin-1" as:name="Auction" sl:start="1" sl:end="110">
<as:action as:name="InitializeAuction" sl:handle-interaction="auction-5678" sl:start="1" sl:end="2">
<as:input>
<as:data as:name="ReservePrice" as:type="Number">300</as:data>
<as:data as:name="Duration" as:type="Number">100</as:data>
</as:input>
<as:result>
<as:data as:name="auctionID">777</as:data>
</as:result>
</as:action>
<as:action as:name="FinalizeAuction" sl:handle-interaction="" sl:start="108" sl:end="109">
<as:result>
<as:data as:name="winner">777-1</as:data>
</as:result>
</as:action>
</as:segment>
</as:session>
</sl:log>
</sl:slaml>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://voicexml.org/2006/asls-slaml"
xmlns:sl="http://voicexml.org/2006/slaml"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:as="http://voicexml.org/2006/asls-slaml"
elementFormDefault="qualified" attributeFormDefault="qualified" version="1.0">
<xs:import namespace="http://voicexml.org/2006/slaml" schemaLocation="slaml-base.xsd"/>
<xs:element name="session">
<xs:complexType>
<xs:sequence>
<xs:element ref="as:input" minOccurs="0"/>
<xs:element ref="as:segment" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="as:result" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="as:periodGroup"/>
<xs:attribute ref="as:sessionID" use="optional"/>
<xs:attributeGroup ref="as:anyAttribute"/>
</xs:complexType>
</xs:element>
<xs:element name="segment">
<xs:complexType>
<xs:sequence>
<xs:element ref="as:input" minOccurs="0"/>
<xs:group ref="as:activityLog"/>
<xs:element ref="as:result" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="as:periodGroup"/>
<xs:attributeGroup ref="sl:interaction-handler"/>
<xs:attributeGroup ref="as:anyAttribute"/>
</xs:complexType>
</xs:element>
<xs:element name="action">
<xs:complexType>
<xs:sequence>
<xs:element ref="as:input" minOccurs="0"/>
<xs:group ref="as:activityLog"/>
<xs:element ref="as:result" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="as:periodGroup"/>
<xs:attributeGroup ref="sl:interaction-handler"/>
<xs:attributeGroup ref="as:anyAttribute"/>
</xs:complexType>
</xs:element>
<xs:element name="decision">
<xs:complexType>
<xs:sequence>
<xs:element ref="as:input" minOccurs="0"/>
<xs:element ref="as:result" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="as:eventGroup"/>
<xs:attributeGroup ref="as:anyAttribute"/>
</xs:complexType>
</xs:element>
<xs:element name="call">
<xs:complexType>
<xs:sequence>
<xs:element ref="as:input" minOccurs="0"/>
<xs:element ref="as:param" minOccurs="0"/>
<xs:group ref="as:activityLog"/>
<xs:element ref="as:result" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="as:periodGroup"/>
<xs:attributeGroup ref="sl:interaction"/>
<xs:attributeGroup ref="as:anyAttribute"/>
</xs:complexType>
</xs:element>
<xs:element name="input">
<xs:complexType>
<xs:group ref="as:dataList"/>
<xs:attribute ref="as:name" use="optional"/>
<xs:attributeGroup ref="as:anyAttribute"/>
</xs:complexType>
</xs:element>
<xs:element name="result">
<xs:complexType>
<xs:group ref="as:dataList"/>
<xs:attribute ref="as:name" use="optional"/>
<xs:attributeGroup ref="as:anyAttribute"/>
</xs:complexType>
</xs:element>
<xs:element name="param">
<xs:complexType>
<xs:group ref="as:dataList"/>
<xs:attribute ref="as:name" use="optional"/>
<xs:attributeGroup ref="as:anyAttribute"/>
</xs:complexType>
</xs:element>
<xs:element name="data">
<xs:complexType>
<xs:complexContent>
<xs:extension base="xs:anyType">
<xs:attribute ref="as:name" use="required"/>
<xs:attribute ref="as:type" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:group name="dataList">
<xs:sequence>
<xs:element ref="as:data" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>
<xs:group name="activityLog">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="as:action"/>
<xs:element ref="as:call"/>
<xs:element ref="as:decision"/>
</xs:choice>
</xs:sequence>
</xs:group>
<xs:attribute name="name" type="xs:NMTOKEN"/>
<xs:attribute name="type"/>
<xs:attribute name="sessionID" type="xs:string"/>
<xs:attributeGroup name="periodGroup">
<xs:attribute ref="as:name" use="optional"/>
<xs:attributeGroup ref="sl:period"/>
</xs:attributeGroup>
<xs:attributeGroup name="eventGroup">
<xs:attribute ref="as:name" use="optional"/>
<xs:attributeGroup ref="sl:event"/>
</xs:attributeGroup>
<xs:attributeGroup name="anyAttribute">
<xs:anyAttribute namespace="##other"/>
</xs:attributeGroup>
</xs:schema>
any
attribute.