draft-ietf-mediactrl-vxml-02.txt   draft-ietf-mediactrl-vxml-03.txt 
Mediactrl D. Burke Mediactrl D. Burke
Internet-Draft Google Internet-Draft Google
Intended status: Standards Track M. Scott Intended status: Standards Track M. Scott
Expires: January 9, 2009 Genesys Expires: July 13, 2009 Genesys
July 8, 2008 Jan 9, 2009
SIP Interface to VoiceXML Media Services SIP Interface to VoiceXML Media Services
draft-ietf-mediactrl-vxml-02.txt draft-ietf-mediactrl-vxml-03.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any This Internet-Draft is submitted to IETF in full conformance with the
applicable patent or other IPR claims of which he or she is aware provisions of BCP 78 and BCP 79.
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 9, 2009. This Internet-Draft will expire on July 13, 2009.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Abstract Abstract
This document describes a SIP interface to VoiceXML media services. This document describes a SIP interface to VoiceXML media services.
Commonly, application servers controlling media servers use this Commonly, application servers controlling media servers use this
protocol for pure VoiceXML processing capabilities. This protocol is protocol for pure VoiceXML processing capabilities. This protocol is
an adjunct to the full MEDIACTRL protocol and packages mechanism. an adjunct to the full MEDIACTRL protocol and packages mechanism.
Comments Comments
skipping to change at page 4, line 18 skipping to change at page 4, line 18
1.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1. IVR Services with Application Servers . . . . . . . . 5 1.1.1. IVR Services with Application Servers . . . . . . . . 5
1.1.2. PSTN IVR Service Node . . . . . . . . . . . . . . . . 6 1.1.2. PSTN IVR Service Node . . . . . . . . . . . . . . . . 6
1.1.3. 3GPP IMS Media Resource Function (MRF) . . . . . . . . 7 1.1.3. 3GPP IMS Media Resource Function (MRF) . . . . . . . . 7
1.1.4. CCXML <-> VoiceXML Interaction . . . . . . . . . . . . 8 1.1.4. CCXML <-> VoiceXML Interaction . . . . . . . . . . . . 8
1.1.5. Other Use Cases . . . . . . . . . . . . . . . . . . . 8 1.1.5. Other Use Cases . . . . . . . . . . . . . . . . . . . 8
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 8 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 8
2. VoiceXML Session Establishment and Termination . . . . . . . . 10 2. VoiceXML Session Establishment and Termination . . . . . . . . 10
2.1. Service Identification . . . . . . . . . . . . . . . . . . 10 2.1. Service Identification . . . . . . . . . . . . . . . . . . 10
2.2. Initiating a VoiceXML Session . . . . . . . . . . . . . . 12 2.2. Initiating a VoiceXML Session . . . . . . . . . . . . . . 12
2.3. Preparing a VoiceXML Session . . . . . . . . . . . . . . . 13 2.3. Preparing a VoiceXML Session . . . . . . . . . . . . . . . 14
2.4. Session Variable Mappings . . . . . . . . . . . . . . . . 14 2.4. Session Variable Mappings . . . . . . . . . . . . . . . . 14
2.5. Terminating a VoiceXML Session . . . . . . . . . . . . . . 17 2.5. Terminating a VoiceXML Session . . . . . . . . . . . . . . 17
2.6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6.1. Basic Session Establishment . . . . . . . . . . . . . 17 2.6.1. Basic Session Establishment . . . . . . . . . . . . . 18
2.6.2. VoiceXML Session Preparation . . . . . . . . . . . . . 18 2.6.2. VoiceXML Session Preparation . . . . . . . . . . . . . 18
2.6.3. MRCP Establishment . . . . . . . . . . . . . . . . . . 19 2.6.3. MRCP Establishment . . . . . . . . . . . . . . . . . . 19
3. Media Support . . . . . . . . . . . . . . . . . . . . . . . . 22 3. Media Support . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1. Offer/Answer . . . . . . . . . . . . . . . . . . . . . . . 22 3.1. Offer/Answer . . . . . . . . . . . . . . . . . . . . . . . 22
3.2. Early Media . . . . . . . . . . . . . . . . . . . . . . . 22 3.2. Early Media . . . . . . . . . . . . . . . . . . . . . . . 22
3.3. Modifying the Media Session . . . . . . . . . . . . . . . 24 3.3. Modifying the Media Session . . . . . . . . . . . . . . . 24
3.4. Audio and Video Codecs . . . . . . . . . . . . . . . . . . 24 3.4. Audio and Video Codecs . . . . . . . . . . . . . . . . . . 24
3.5. DTMF . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5. DTMF . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4. Returning Data to the Application Server . . . . . . . . . . . 26 4. Returning Data to the Application Server . . . . . . . . . . . 26
4.1. HTTP Mechanism . . . . . . . . . . . . . . . . . . . . . . 26 4.1. HTTP Mechanism . . . . . . . . . . . . . . . . . . . . . . 26
skipping to change at page 4, line 49 skipping to change at page 5, line 4
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 36 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 36
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37
9. Security Considerations . . . . . . . . . . . . . . . . . . . 38 9. Security Considerations . . . . . . . . . . . . . . . . . . . 38
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39
11. Changes since last version: . . . . . . . . . . . . . . . . . 40 11. Changes since last version: . . . . . . . . . . . . . . . . . 40
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 41 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 41
12.1. Normative References . . . . . . . . . . . . . . . . . . . 41 12.1. Normative References . . . . . . . . . . . . . . . . . . . 41
12.2. Informative References . . . . . . . . . . . . . . . . . . 43 12.2. Informative References . . . . . . . . . . . . . . . . . . 43
Appendix A. Notes on Normative References . . . . . . . . . . . . 45 Appendix A. Notes on Normative References . . . . . . . . . . . . 45
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 46 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 46
Intellectual Property and Copyright Statements . . . . . . . . . . 47
1. Introduction 1. Introduction
VoiceXML [VXML20], [VXML21] is a World Wide Web Consortium (W3C) VoiceXML [VXML20], [VXML21] is a World Wide Web Consortium (W3C)
standard for creating audio and video dialogs that feature standard for creating audio and video dialogs that feature
synthesized speech, digitized audio, recognition of spoken and DTMF synthesized speech, digitized audio, recognition of spoken and DTMF
key input, recording of audio and video, telephony, and mixed key input, recording of audio and video, telephony, and mixed
initiative conversations. VoiceXML allows Web-based development and initiative conversations. VoiceXML allows Web-based development and
content delivery paradigms to be used with interactive video and content delivery paradigms to be used with interactive video and
voice response applications. voice response applications.
skipping to change at page 10, line 15 skipping to change at page 10, line 15
2. VoiceXML Session Establishment and Termination 2. VoiceXML Session Establishment and Termination
This section describes how to establish a VoiceXML Session, with or This section describes how to establish a VoiceXML Session, with or
without preparation, and how to terminate a session. This section without preparation, and how to terminate a session. This section
also addresses how session information is made available to VoiceXML also addresses how session information is made available to VoiceXML
applications. applications.
2.1. Service Identification 2.1. Service Identification
The SIP Request-URI is used to identify the VoiceXML media service. The SIP Request-URI is used to identify the VoiceXML media service.
The user part of the SIP Request-URI is fixed to "dialog". The The user part of the SIP Request-URI is fixed to "dialog". This is
initial VoiceXML document is specified with the "voicexml" parameter. done to ensure compatibility with [RFC4240], since this document
In addition, parameters are defined that control how the VoiceXML extends the dialog interface defined in that specification, and
Media Server fetches the specified VoiceXML document. The list of because this convention from [RFC4240] is widely adopted by existing
parameters defined by this specification is as follows: media servers.
Standardizing the SIP Request-URI including the user part also
improves interoperability between application servers and media
servers, and reduces the provisioning overhead that would be required
if use of a media server by an application server required an
individually provisioned URI. In this respect, this document (and
[RFC4240]) do not add semantics to the user part, but rather
standardize the way that targets on media servers are provisioned.
Further, since application servers - and not human beings - are
generally the clients of media servers, issues such as interpretation
and internationalization do not apply.
The initial VoiceXML document is specified with the "voicexml"
parameter. In addition, parameters are defined that control how the
VoiceXML Media Server fetches the specified VoiceXML document. The
list of parameters defined by this specification is as follows (note
the parameter names are case-insensitive):
voicexml: URI of the initial VoiceXML document to fetch. This will voicexml: URI of the initial VoiceXML document to fetch. This will
typically contain an HTTP URI, but may use other URI schemes, for typically contain an HTTP URI, but may use other URI schemes, for
example to refer to local, static VoiceXML documents. If the example to refer to local, static VoiceXML documents. If the
"voicexml" parameter is omitted, the VoiceXML Media Server may "voicexml" parameter is omitted, the VoiceXML Media Server may
select the initial VoiceXML document by other means, such as by select the initial VoiceXML document by other means, such as by
applying a default, or may reject the request. applying a default, or may reject the request.
maxage: Used to set the max-age value of the Cache-Control header in maxage: Used to set the max-age value of the Cache-Control header in
conjunction with VoiceXML documents fetched using HTTP, as per conjunction with VoiceXML documents fetched using HTTP, as per
skipping to change at page 15, line 25 skipping to change at page 15, line 46
header fields of the same field name are present, the values are header fields of the same field name are present, the values are
combined into a single comma-separated value. Implementations combined into a single comma-separated value. Implementations
MUST at a minimum include the Call-ID header and MAY include other MUST at a minimum include the Call-ID header and MAY include other
headers. For example, headers. For example,
session.connection.protocol.sip.headers["call-id"] evaluates to session.connection.protocol.sip.headers["call-id"] evaluates to
the Call-ID of the SIP dialog. the Call-ID of the SIP dialog.
session.connection.protocol.sip.requesturi: This is an associative session.connection.protocol.sip.requesturi: This is an associative
array where the array keys and values are formed from the URI array where the array keys and values are formed from the URI
parameters on the SIP Request-URI of the initial INVITE. The parameters on the SIP Request-URI of the initial INVITE. The
array key is the URI parameter name. The corresponding array array key is the URI parameter name converted to lower-case (note
value is obtained by evaluating the URI parameter value as a "JSON the case conversion does not apply to the parameter value). The
value" [RFC4627] in the case of the ccxml-param and aai-param corresponding array value is obtained by evaluating the URI
values and otherwise as a string. In addition, the array's parameter value as a "JSON value" [RFC4627] in the case of the
toString() function returns the full SIP Request-URI. For ccxml-param and aai-param values and otherwise as a string. In
example, assuming a Request-URI of sip:dialog@ addition, the array's toString() function returns the full SIP
Request-URI. For example, assuming a Request-URI of sip:dialog@
example.com;voicexml=http://example.com;aai=%7b"x":1%2c"y":true%7d example.com;voicexml=http://example.com;aai=%7b"x":1%2c"y":true%7d
then session.connection.protocol.sip.requesturi["voicexml"] then session.connection.protocol.sip.requesturi["voicexml"]
evaluates to "http://example.com", evaluates to "http://example.com",
session.connection.protocol.sip.requesturi["aai"].x evaluates to 1 session.connection.protocol.sip.requesturi["aai"].x evaluates to 1
(type Number), session.connection.protocol.sip.requesturi["aai"].y (type Number), session.connection.protocol.sip.requesturi["aai"].y
evaluates to true (type Boolean), and evaluates to true (type Boolean), and
session.connection.protocol.sip.requesturi evaluates to the session.connection.protocol.sip.requesturi evaluates to the
complete Request-URI (type String) 'sip:dialog@ complete Request-URI (type String) 'sip:dialog@
example.com;voicexml=http://example.com;aai={"x":1,"y":true}'. example.com;voicexml=http://example.com;aai={"x":1,"y":true}'.
skipping to change at page 40, line 7 skipping to change at page 40, line 7
Parameter Name Predefined Values Reference Parameter Name Predefined Values Reference
-------------- ----------------- --------- -------------- ----------------- ---------
maxage no TBD maxage no TBD
maxstale no TBD maxstale no TBD
method "get" / "post" TBD method "get" / "post" TBD
postbody no TBD postbody no TBD
11. Changes since last version: 11. Changes since last version:
o Misc editorial improvements o Added rationale for standardizing the SIP URI user part to
'dialog'
o Referenced "sip"/"sips" BNF definitions from RFC3261y
o Tightened up security considerations
o More compact ABNF definition of uri-parameters o Specified that the Request-URI parameter names are case-
insensitive and the corresponding array keys are converted to
lower-case
12. References 12. References
12.1. Normative References 12.1. Normative References
[HTML4] Raggett, D., Le Hors, A., and I. Jacobs, "HTML 4.01 [HTML4] Raggett, D., Le Hors, A., and I. Jacobs, "HTML 4.01
Specification", W3C Recommendation, Dec 1999. Specification", W3C Recommendation, Dec 1999.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
skipping to change at page 47, line 4 skipping to change at line 1601
Email: daveburke@google.com Email: daveburke@google.com
Mark Scott Mark Scott
Genesys Genesys
1120 Finch Avenue West, 8th floor 1120 Finch Avenue West, 8th floor
Toronto, Ontario M3J 3H7 Toronto, Ontario M3J 3H7
Canada Canada
Email: Mark.Scott@genesyslab.com Email: Mark.Scott@genesyslab.com
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
 End of changes. 12 change blocks. 
29 lines changed or deleted 55 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/