< draft-ietf-mediactrl-ivr-control-package-06.txt   draft-ietf-mediactrl-ivr-control-package-07.txt >
Network Working Group S. McGlashan Network Working Group S. McGlashan
Internet-Draft Hewlett-Packard Internet-Draft Hewlett-Packard
Intended status: Standards Track T. Melanchuk Intended status: Standards Track T. Melanchuk
Expires: September 2, 2009 Rain Willow Communications Expires: May 29, 2010 Rain Willow Communications
C. Boulton C. Boulton
NS-Technologies NS-Technologies
March 1, 2009 November 25, 2009
An Interactive Voice Response (IVR) Control Package for the Media An Interactive Voice Response (IVR) Control Package for the Media
Control Channel Framework Control Channel Framework
draft-ietf-mediactrl-ivr-control-package-06 draft-ietf-mediactrl-ivr-control-package-07
Abstract
This document defines a Media Control Channel Framework Package for
Interactive Voice Response (IVR) dialog interaction on media
connections and conferences. The package defines dialog management
request elements for preparing, starting and terminating dialog
interactions, as well as associated responses and notifications.
Dialog interactions are specified in a dialog language. This package
defines a lightweight IVR dialog language (supporting prompt
playback, runtime controls, DTMF collect and media recording) and
allows other dialog languages to be used. The package also defines
elements for auditing package capabilities and IVR dialogs.
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. This document may contain material provisions of BCP 78 and BCP 79.
from IETF Documents or IETF Contributions published or made publicly
available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from
the person(s) controlling the copyright in such materials, this
document may not be modified outside the IETF Standards Process, and
derivative works of it may not be created outside the IETF Standards
Process, except to format it for publication as an RFC or to
translate it into languages other than English.
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 September 2, 2009. This Internet-Draft will expire on May 29, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of Provisions Relating to IETF Documents
publication of this document (http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
Abstract include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the BSD License.
This document defines a Media Control Channel Framework Package for This document may contain material from IETF Documents or IETF
Interactive Voice Response (IVR) dialog interaction on media Contributions published or made publicly available before November
connections and conferences. The package defines dialog management 10, 2008. The person(s) controlling the copyright in some of this
request elements for preparing, starting and terminating dialog material may not have granted the IETF Trust the right to allow
interactions, as well as associated responses and notifications. modifications of such material outside the IETF Standards Process.
Dialog interactions are specified in a dialog language. This package Without obtaining an adequate license from the person(s) controlling
defines a lightweight IVR dialog language (supporting prompt the copyright in such materials, this document may not be modified
playback, runtime controls, DTMF collect and media recording) and outside the IETF Standards Process, and derivative works of it may
allows other dialog languages to be used. The package also defines not be created outside the IETF Standards Process, except to format
elements for auditing package capabilities and IVR dialogs. it for publication as an RFC or to translate it into languages other
than English.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Conventions and Terminology . . . . . . . . . . . . . . . . . 10 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9
3. Control Package Definition . . . . . . . . . . . . . . . . . 11 3. Control Package Definition . . . . . . . . . . . . . . . . . 10
3.1. Control Package Name . . . . . . . . . . . . . . . . . . 11 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10
3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 11 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10
3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 12 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11
3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 12 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11
3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 12 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11
3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 13 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12
4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 14 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13
4.1. <mscivr> . . . . . . . . . . . . . . . . . . . . . . . . 14 4.1. <mscivr> . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2. Dialog Management Elements . . . . . . . . . . . . . . . 16 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15
4.2.1. <dialogprepare> . . . . . . . . . . . . . . . . . . . 19 4.2.1. <dialogprepare> . . . . . . . . . . . . . . . . . . . 18
4.2.2. <dialogstart> . . . . . . . . . . . . . . . . . . . . 21 4.2.2. <dialogstart> . . . . . . . . . . . . . . . . . . . . 20
4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 24 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 24
4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 25 4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 25
4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 26 4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 26
4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 27 4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 27
4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 27 4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 27
4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 28 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 27
4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 28 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 28
4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 30 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 30
4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 32 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 31
4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 32 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 32
4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 33 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 33
4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 34 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 33
4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 35 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 35
4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 37 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 37
4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 39 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 38
4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 40 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 40
4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 41 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 41
4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 43 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 42
4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 44 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 44
4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 47 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 46
4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 49 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 49
4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 51 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 50
4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 55 4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 54
4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 56 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55
4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 57 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 56
4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 57 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 56
4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 57 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 56
4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 57 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 56
4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 58 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 57
4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 58 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 57
4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 59
4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 59 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 58
4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 60 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 58
4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 62 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 59
4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 63 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 61
4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 63 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 62
4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 65 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 62
4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 66 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 64
4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 66 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 65
4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 66 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 65
4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 67 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 65
4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 67 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 66
4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 68 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 66
4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 68 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 67
4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 68 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 67
4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 68 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 67
4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 69 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 67
4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 76 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 68
5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 78 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 74
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 105 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76
6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 105 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 105 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 103
6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 106 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 103
6.1.3. Preparing and starting an IVR dialog . . . . . . . . 106 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 104
6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 107 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 104
6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 108 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 105
6.2.1. Playing announcements . . . . . . . . . . . . . . . . 108 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 106
6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 109 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 106
6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 111 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 107
6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 112 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 109
6.2.5. Subscriptions and notifications . . . . . . . . . . . 113 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 110
6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 113 6.2.5. Subscriptions and notifications . . . . . . . . . . . 111
6.4. Foreign Namespace Attributes and Elements . . . . . . . . 114 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 111
7. Security Considerations . . . . . . . . . . . . . . . . . . . 117 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 112
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 120 7. Security Considerations . . . . . . . . . . . . . . . . . . . 115
8.1. Control Package Registration . . . . . . . . . . . . . . 120 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 118
8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 120 8.1. Control Package Registration . . . . . . . . . . . . . . 118
8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 121 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 118
8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 119
8.4. MIME Media Type Registration for 8.4. MIME Media Type Registration for
'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 121 'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 119
9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 123 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 121
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 135 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 134
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 136 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 135
12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 137 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 136
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 145 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 144
13.1. Normative References . . . . . . . . . . . . . . . . . . 145 13.1. Normative References . . . . . . . . . . . . . . . . . . 144
13.2. Informative References . . . . . . . . . . . . . . . . . 146 13.2. Informative References . . . . . . . . . . . . . . . . . 145
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 148 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 147
1. Introduction 1. Introduction
The Media Control Channel Framework The Media Control Channel Framework
([I-D.ietf-mediactrl-sip-control-framework]) provides a generic ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic
approach for establishment and reporting capabilities of remotely approach for establishment and reporting capabilities of remotely
initiated commands. The Control Framework utilizes many functions initiated commands. The Control Framework utilizes many functions
provided by the Session Initiation Protocol [RFC3261] (SIP) for the provided by the Session Initiation Protocol [RFC3261] (SIP) for the
rendezvous and establishment of a reliable channel for control rendezvous and establishment of a reliable channel for control
interactions. The Control Framework also introduces the concept of a interactions. The Control Framework also introduces the concept of a
skipping to change at page 8, line 12 skipping to change at page 7, line 12
Media Control Channel Framework CONTROL message sent to the media Media Control Channel Framework CONTROL message sent to the media
server. When the appropriate action has been executed, the media server. When the appropriate action has been executed, the media
server sends a REPORT message (or a 200 response to the CONTROL if it server sends a REPORT message (or a 200 response to the CONTROL if it
can execute in time) with a response element indicating whether the can execute in time) with a response element indicating whether the
operation was successful or not (e.g. if the dialog cannot be operation was successful or not (e.g. if the dialog cannot be
started, then the error is reported in this response). Once a dialog started, then the error is reported in this response). Once a dialog
has been successfully started, the media server can send further has been successfully started, the media server can send further
event notifications in a framework CONTROL message. This package event notifications in a framework CONTROL message. This package
defines two event notifications: a DTMF event indicating the DTMF defines two event notifications: a DTMF event indicating the DTMF
activity; and a dialogexit event indicating that the dialog has activity; and a dialogexit event indicating that the dialog has
exited. If the dialog has executed successful, the dialogexit event exited. If the dialog has executed successfully, the dialogexit
includes information collected during the dialog. If an error occurs event includes information collected during the dialog. If an error
during execution (e.g. a media resource failed to play, no recording occurs during execution (e.g. a media resource failed to play, no
resource available, etc), then error information is reported in the recording resource available, etc), then error information is
dialogexit event. Once a dialogexit event is sent, the dialog reported in the dialogexit event. Once a dialogexit event is sent,
lifecycle is terminated. the dialog lifecycle is terminated.
The dialog management elements for preparing and starting a dialog The dialog management elements for preparing and starting a dialog
specify the dialog using a dialog language. A dialog language has specify the dialog using a dialog language. A dialog language has
well-defined syntax and semantics for defined dialog operations. well-defined syntax and semantics for defined dialog operations.
Typically dialog languages are written in XML where the root element Typically dialog languages are written in XML where the root element
has a designated XML namespace and, when used as standalone has a designated XML namespace and, when used as standalone
documents, have an associated MIME media type. For example, VoiceXML documents, have an associated MIME media type. For example, VoiceXML
is an XML dialog language with the root element <vxml> with the is an XML dialog language with the root element <vxml> with the
designated namespace 'http://www.w3.org/2001/vxml' and standalone designated namespace 'http://www.w3.org/2001/vxml' and standalone
documents are associated with the MIME media type 'application/ documents are associated with the MIME media type 'application/
skipping to change at page 12, line 13 skipping to change at page 11, line 13
notification to the AS (Control Server). Event notifications notification to the AS (Control Server). Event notifications
(Section 4.2.5) are carried in CONTROL message bodies. The AS MUST (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST
respond with a Control Framework 200 response. respond with a Control Framework 200 response.
3.3. Common XML Support 3.3. Common XML Support
The Control Framework requires a Control Package definition to The Control Framework requires a Control Package definition to
specify if the attributes for media dialog or conference references specify if the attributes for media dialog or conference references
are required. are required.
This package requires that the XML Schema in Section 17.1 of This package requires that the XML Schema in Section 16.1 of
[I-D.ietf-mediactrl-sip-control-framework] MUST be supported for [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for
media dialogs and conferences. media dialogs and conferences.
The package uses "connectionid" and "conferenceid" attributes for The package uses "connectionid" and "conferenceid" attributes for
various element definitions (Section 4). The XML schema (Section 5) various element definitions (Section 4). The XML schema (Section 5)
imports the definitions of these attributes from the framework imports the definitions of these attributes from the framework
schema. schema.
3.4. CONTROL Message Body 3.4. CONTROL Message Body
skipping to change at page 14, line 19 skipping to change at page 13, line 19
The root element is <mscivr> (Section 4.1). All other XML elements The root element is <mscivr> (Section 4.1). All other XML elements
(requests, responses and notification elements) are contained within (requests, responses and notification elements) are contained within
it. Child elements describe dialog management (Section 4.2) and it. Child elements describe dialog management (Section 4.2) and
audit (Section 4.4) functionality. The IVR dialog element (contained audit (Section 4.4) functionality. The IVR dialog element (contained
within dialog management elements) is defined in Section 4.3. within dialog management elements) is defined in Section 4.3.
Response status codes are defined in Section 4.5 and type definitions Response status codes are defined in Section 4.5 and type definitions
in Section 4.6. in Section 4.6.
Implementation of this control package MUST address the Security Implementation of this control package MUST address the Security
Considerations described in Section 7 ). Considerations described in Section 7.
Implementation of this control package MUST adhere to the syntax and Implementation of this control package MUST adhere to the syntax and
semantics of XML elements defined in this section and the schema semantics of XML elements defined in this section and the schema
(Section 5). Since XML Schema is unable to support some types of (Section 5). Since XML Schema is unable to support some types of
syntactic constraints (such as attribute and element co-occurrence), syntactic constraints (such as attribute and element co-occurrence),
some elements in this package specify additional syntactic some elements in this package specify additional syntactic
constraints in their textual definition. If there is a difference in constraints in their textual definition. If there is a difference in
constraints between the XML schema and the textual description of constraints between the XML schema and the textual description of
elements in this section, the textual definition takes priority. elements in this section, the textual definition takes priority.
skipping to change at page 15, line 35 skipping to change at page 14, line 35
<audit> audit package capabilities and managed dialogs. See <audit> audit package capabilities and managed dialogs. See
Section 4.4.1 Section 4.4.1
<auditresponse> response to an audit request. See Section 4.4.2 <auditresponse> response to an audit request. See Section 4.4.2
For example, a request to the MS to start an IVR dialog playing a For example, a request to the MS to start an IVR dialog playing a
prompt: prompt:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="ssd3r3~sds345b"> <dialogstart connectionid="ssd3r3:sds345b">
<dialog> <dialog>
<prompt> <prompt>
<media loc="http://www.example.com/welcome.wav"/> <media loc="http://www.example.com/welcome.wav"/>
</prompt> </prompt>
</dialog> </dialog>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
and a response from the MS that the dialog started successfully: and a response from the MS that the dialog started successfully:
skipping to change at page 19, line 48 skipping to change at page 18, line 48
dialog document and resources (if required), and (b) validating the dialog document and resources (if required), and (b) validating the
dialog document syntactically and semantically. dialog document syntactically and semantically.
A prepared dialog is executed when the MS receives a <dialogstart> A prepared dialog is executed when the MS receives a <dialogstart>
request referencing the prepared dialog identifier (see request referencing the prepared dialog identifier (see
Section 4.2.2). Section 4.2.2).
The <dialogprepare> element has the following attributes: The <dialogprepare> element has the following attributes:
src: specifies the location of an external dialog document to src: specifies the location of an external dialog document to
prepare. A valid value is a URI (see Section 4.6.9). If the URI prepare. A valid value is a URI (see Section 4.6.9) including
scheme is unsupported, the MS sends a <response> with a 420 status authentication information if defined by the URI scheme (e.g.
code (Section 4.5). If the document cannot be retrieved within basic access authentication in HTTP). If the URI scheme is
the timeout interval, the MS sends a <response> with a 409 status unsupported, the MS sends a <response> with a 420 status code
(Section 4.5). If the document cannot be retrieved within the
timeout interval, the MS sends a <response> with a 409 status
code. If the document contains a type of dialog language which code. If the document contains a type of dialog language which
the MS does not supported, the MS sends a <response> with a 421 the MS does not supported, the MS sends a <response> with a 421
status code. The attribute is optional. There is no default status code. The attribute is optional. There is no default
value. value.
type: specifies the type of the external dialog document indicated type: specifies the type of the external dialog document indicated
in the 'src' attribute. A valid value is a MIME media type (see in the 'src' attribute. A valid value is a MIME media type (see
Section 4.6.10). If the URI scheme used in the src attribute Section 4.6.10). If the URI scheme used in the src attribute
defines a mechanism for establishing the authoratitive MIME media defines a mechanism for establishing the authoratitive MIME media
type of the media resource, the value returned by that mechanism type of the media resource, the value returned by that mechanism
takes precedence over this attribute. The attribute is optional. takes precedence over this attribute. The attribute is optional.
There is no default value. There is no default value.
maxage: Used to set the max-age value of the Cache-Control header in
conjunction with an external dialog document fetched using HTTP,
as per [RFC2616]. A valid value is a non-negative integer (see
Section 4.6.4). The attribute is optional. There is no default
value.
maxstale: Used to set the max-stale value of the Cache-Control
header in conjunction with an external dialog document fetched
using HTTP, as per [RFC2616]. A valid value is a non-negative
integer (see Section 4.6.4). The attribute is optional. There is
no default value.
fetchtimeout: the maximum timeout interval to wait when fetching an fetchtimeout: the maximum timeout interval to wait when fetching an
external dialog document. A valid value is a Time Designation external dialog document. A valid value is a Time Designation
(see Section 4.6.7). The attribute is optional. The default (see Section 4.6.7). The attribute is optional. The default
value is 30s. value is 30s.
dialogid: string indicating a unique name for the dialog. If a dialogid: string indicating a unique name for the dialog. If a
dialog with the same name already exists on the MS, the MS sends a dialog with the same name already exists on the MS, the MS sends a
<response> with a 405 status code (Section 4.5). If this <response> with a 405 status code (Section 4.5). If this
attribute is not specified, the MS MUST create a unique name for attribute is not specified, the MS MUST create a unique name for
the dialog (see Section 4.2 for dialog identifier assignment). the dialog (see Section 4.2 for dialog identifier assignment).
skipping to change at page 20, line 45 skipping to change at page 20, line 11
languages defined outside this specification. The element is languages defined outside this specification. The element is
optional. If a parameter is not supported by the MS for the optional. If a parameter is not supported by the MS for the
external dialog language, the MS sends a <response> with a 427 external dialog language, the MS sends a <response> with a 427
status code (Section 4.5). status code (Section 4.5).
The dialog to prepare can either be specified inline with a <dialog> The dialog to prepare can either be specified inline with a <dialog>
child element or externally (for dialog languages defined outside child element or externally (for dialog languages defined outside
this specification) using the src attribute. It is a syntax error if this specification) using the src attribute. It is a syntax error if
both an inline <dialog> element element and a src attribute are both an inline <dialog> element element and a src attribute are
specified and the MS sends a <response> with a 400 status code (see specified and the MS sends a <response> with a 400 status code (see
Section 4.5). The type and fetchtimeout attributes are only relevant Section 4.5). The type, maxage, maxstale and fetchtimeout attributes
when a dialog is specified as an external document. are only relevant when a dialog is specified as an external document.
For example, a <dialogprepare> request to prepare an inline IVR For example, a <dialogprepare> request to prepare an inline IVR
dialog with a single prompt: dialog with a single prompt:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogprepare> <dialogprepare>
<dialog> <dialog>
<prompt> <prompt>
<media loc="http://www.example.com/welcome.wav"/> <media loc="http://www.example.com/welcome.wav"/>
</prompt> </prompt>
skipping to change at page 21, line 42 skipping to change at page 21, line 6
The <dialogstart> element is sent to the MS to start a dialog. If The <dialogstart> element is sent to the MS to start a dialog. If
the dialog has not been prepared, the dialog is prepared (retrieving the dialog has not been prepared, the dialog is prepared (retrieving
an external document and resources if necessary, and the dialog an external document and resources if necessary, and the dialog
document validated syntactically and semantically). Media processors document validated syntactically and semantically). Media processors
(e.g. DTMF and prompt queue) are activated and associated with the (e.g. DTMF and prompt queue) are activated and associated with the
specified connection or conference. specified connection or conference.
The <dialogstart> element has the following attributes: The <dialogstart> element has the following attributes:
src: specifies the location of an external dialog document to start. src: specifies the location of an external dialog document to start.
A valid value is a URI (see Section 4.6.9). If the URI scheme is A valid value is a URI (see Section 4.6.9) including
authentication information if defined by the URI scheme (e.g.
basic access authentication in HTTP). If the URI scheme is
unsupported, the MS sends a <response> with a 420 status code unsupported, the MS sends a <response> with a 420 status code
(Section 4.5). If the document cannot be retrieved with the (Section 4.5). If the document cannot be retrieved with the
timeout interval, the MS sends a <response> with a 409 status timeout interval, the MS sends a <response> with a 409 status
code. If the document contains a type of dialog language which code. If the document contains a type of dialog language which
the MS does not supported, the MS sends a <response> with a 421 the MS does not supported, the MS sends a <response> with a 421
status code. The attribute is optional. There is no default status code. The attribute is optional. There is no default
value. value.
type: specifies the type of the external dialog document indicated type: specifies the type of the external dialog document indicated
in the 'src' attribute. A valid value is a MIME media type (see in the 'src' attribute. A valid value is a MIME media type (see
Section 4.6.10). If the URI scheme used in the src attribute Section 4.6.10). If the URI scheme used in the src attribute
defines a mechanism for establishing the authoratitive MIME media defines a mechanism for establishing the authoratitive MIME media
type of the media resource, the value returned by that mechanism type of the media resource, the value returned by that mechanism
takes precedence over this attribute. The attribute is optional. takes precedence over this attribute. The attribute is optional.
There is no default value. There is no default value.
maxage: Used to set the max-age value of the Cache-Control header in
conjunction with an external dialog document fetched using HTTP,
as per [RFC2616]. A valid value is a non-negative integer (see
Section 4.6.4). The attribute is optional. There is no default
value.
maxstale: Used to set the max-stale value of the Cache-Control
header in conjunction with an external dialog document fetched
using HTTP, as per [RFC2616]. A valid value is a non-negative
integer (see Section 4.6.4). The attribute is optional. There is
no default value.
fetchtimeout: the maximum timeout interval to wait when fetching an fetchtimeout: the maximum timeout interval to wait when fetching an
external dialog document. A valid value is a Time Designation external dialog document. A valid value is a Time Designation
(see Section 4.6.7). The attribute is optional. The default (see Section 4.6.7). The attribute is optional. The default
value is 30s. value is 30s.
dialogid: string indicating a unique name for the dialog. If a dialogid: string indicating a unique name for the dialog. If a
dialog with the same name already exists on the MS, the MS sends a dialog with the same name already exists on the MS, the MS sends a
<response> with a 405 status code (Section 4.5). If neither the <response> with a 405 status code (Section 4.5). If neither the
dialogid attribute nor the prepareddialogid attribute is dialogid attribute nor the prepareddialogid attribute is
specified, the MS MUST create a unique name for the dialog (see specified, the MS MUST create a unique name for the dialog (see
skipping to change at page 22, line 34 skipping to change at page 22, line 13
optional. There is no default value. optional. There is no default value.
prepareddialogid: string identifying a dialog previously prepared prepareddialogid: string identifying a dialog previously prepared
using a dialogprepare (Section 4.2.1) request. If neither the using a dialogprepare (Section 4.2.1) request. If neither the
dialogid attribute nor the prepareddialogid attribute is dialogid attribute nor the prepareddialogid attribute is
specified, the MS MUST create a unique name for the dialog (see specified, the MS MUST create a unique name for the dialog (see
Section 4.2 for dialog identifier assignment). The attribute is Section 4.2 for dialog identifier assignment). The attribute is
optional. There is no default value. optional. There is no default value.
connectionid: string identifying the SIP dialog connection on which connectionid: string identifying the SIP dialog connection on which
this dialog is to be started (see Section 17.1 of this dialog is to be started (see Section 16.1 of
[I-D.ietf-mediactrl-sip-control-framework]). The attribute is [I-D.ietf-mediactrl-sip-control-framework]). The attribute is
optional. There is no default value. optional. There is no default value.
conferenceid: string identifying the conference on which this dialog conferenceid: string identifying the conference on which this dialog
is to be started (see Section 17.1 of is to be started (see Section 16.1 of
[I-D.ietf-mediactrl-sip-control-framework]). The attribute is [I-D.ietf-mediactrl-sip-control-framework]). The attribute is
optional. There is no default value. optional. There is no default value.
Exactly one of the connectionid or conferenceid attributes MUST be Exactly one of the connectionid or conferenceid attributes MUST be
specified. If both connectionid and conferenceid attributes are specified. If both connectionid and conferenceid attributes are
specified or neither are specified, it is a syntax error and the MS specified or neither are specified, it is a syntax error and the MS
sends a <response> with a 400 status code (Section 4.5). sends a <response> with a 400 status code (Section 4.5).
It is an error if the connection or conference referenced by a It is an error if the connection or conference referenced by a
specific connectionid or conferenceid attribute is not available on specific connectionid or conferenceid attribute is not available on
skipping to change at page 23, line 35 skipping to change at page 23, line 14
The dialog to start can be specified either (a) inline with a The dialog to start can be specified either (a) inline with a
<dialog> child element, or (b) externally using the src attribute <dialog> child element, or (b) externally using the src attribute
(for dialog languages defined outside this specification), or (c) (for dialog languages defined outside this specification), or (c)
reference a previously prepared dialog using the prepareddialogid reference a previously prepared dialog using the prepareddialogid
attribute. If exactly one of the src attribute, the prepareddialogid attribute. If exactly one of the src attribute, the prepareddialogid
or a <dialog> child element is not specified, it is a syntax error or a <dialog> child element is not specified, it is a syntax error
and the MS sends a <response> with a 400 status code (Section 4.5). and the MS sends a <response> with a 400 status code (Section 4.5).
If the prepareddialogid and dialogid attributes are specified, it is If the prepareddialogid and dialogid attributes are specified, it is
also a syntax error and the MS sends a <response> with a 400 status also a syntax error and the MS sends a <response> with a 400 status
code. The type and fetchtimeout attributes are only relevant when a code. The type, maxage, maxstale and fetchtimeout attributes are
dialog is specified as an external document. only relevant when a dialog is specified as an external document.
The <stream> element provides explicit control over which media The <stream> element provides explicit control over which media
streams on the connection or conference are used during dialog streams on the connection or conference are used during dialog
execution. For example, if a connection supports both audio and execution. For example, if a connection supports both audio and
video streams, a <stream> element could be used to indicate that only video streams, a <stream> element could be used to indicate that only
the audio stream is used in receive mode. In cases where there are the audio stream is used in receive mode. In cases where there are
multiple media streams of the same type for a dialog, the AS MUST use multiple media streams of the same type for a dialog, the AS MUST use
<stream> elements to explicitly specify the configuration. If no <stream> elements to explicitly specify the configuration. If no
<stream> elements are specified, then the default media configuration <stream> elements are specified, then the default media configuration
is that defined for the connection or conference. is that defined for the connection or conference.
If a <stream> element is in conflict with (a) another <stream> If a <stream> element is in conflict with (a) another <stream>
element, (b) with specified connection or conference media element, (b) with specified connection or conference media
capabilities, (c) with a SDP label value as part of the connectionid capabilities, (c) with a SDP label value as part of the connectionid
(see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) then (see Section 16.1 of [I-D.ietf-mediactrl-sip-control-framework]) then
the MS sends a <response> with a 411 status code (Section 4.5). If the MS sends a <response> with a 411 status code (Section 4.5). If
the media stream configuration is not supported by the MS, then the the media stream configuration is not supported by the MS, then the
MS sends a <response> with a 428 status code (Section 4.5). MS sends a <response> with a 428 status code (Section 4.5).
The MS MAY support multiple, simultaneous dialogs being started on The MS MAY support multiple, simultaneous dialogs being started on
the same connection or conference. For example, the same connection the same connection or conference. For example, the same connection
can receive different media streams (e.g. audio and video) from can receive different media streams (e.g. audio and video) from
different dialogs, or receive (and implicitly mix where appropriate) different dialogs, or receive (and implicitly mix where appropriate)
the same type of media streams from different dialogs. If the MS the same type of media streams from different dialogs. If the MS
does not support starting another dialog on the same connection or does not support starting another dialog on the same connection or
skipping to change at page 24, line 35 skipping to change at page 24, line 19
<media loc="http://www.example.com/getpin.wav"/> <media loc="http://www.example.com/getpin.wav"/>
</prompt> </prompt>
<collect maxdigits="2"/> <collect maxdigits="2"/>
</dialog> </dialog>
<subscribe> <subscribe>
<dmtfsub matchmode="all"/> <dmtfsub matchmode="all"/>
</subscribe> </subscribe>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
In this example, the dialog is started on a conference where only In this example, the dialog is started on a conference where the
audio media stream is received: conference only receives an audio media stream from the dialog:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart conferenceid="conference1"> <dialogstart conferenceid="conference1">
<dialog> <dialog>
<record maxtime="384000s"/> <record maxtime="384000s"/>
</dialog> </dialog>
<stream media="audio" direction="recvonly"/> <stream media="audio" direction="recvonly"/>
</mscivr> </mscivr>
4.2.2.1. <subscribe> 4.2.2.1. <subscribe>
skipping to change at page 25, line 13 skipping to change at page 24, line 45
<event> element (see Section 4.2.5). <event> element (see Section 4.2.5).
The <subscribe> element has no attributes. The <subscribe> element has no attributes.
The <subscribe> element has the following sequence of child elements The <subscribe> element has the following sequence of child elements
(0 or more occurrences): (0 or more occurrences):
<dtmfsub>: Subscription to DTMF input during the dialog <dtmfsub>: Subscription to DTMF input during the dialog
(Section 4.2.2.1.1). The element is optional. (Section 4.2.2.1.1). The element is optional.
If a request has <subscribe> with no child elements, the MS treats
the request as if no <subscribe> element was specified.
The MS MUST support <dtmfsub> subscription for the IVR dialog The MS MUST support <dtmfsub> subscription for the IVR dialog
language defined in this specification (Section 4.3). It MAY support language defined in this specification (Section 4.3). It MAY support
other dialog subscriptions (specified using attributes and child other dialog subscriptions (specified using attributes and child
elements from a foreign namespace). If the MS does not support a elements from a foreign namespace). If the MS does not support a
subscription specified in a foreign namespace, the MS sends a subscription specified in a foreign namespace, the MS sends a
response with a 431 status code (see Section 4.5). response with a 431 status code (see Section 4.5).
4.2.2.1.1. <dtmfsub> 4.2.2.1.1. <dtmfsub>
The <dtmfsub> element has the following attributes: The <dtmfsub> element has the following attributes:
skipping to change at page 26, line 4 skipping to change at page 25, line 39
<prompt> <prompt>
<media loc="http://www.example.com/getpin.wav"/> <media loc="http://www.example.com/getpin.wav"/>
</prompt> </prompt>
<control ffkey="2" rewkey="3"/> <control ffkey="2" rewkey="3"/>
</dialog> </dialog>
<subscribe> <subscribe>
<dmtfnotify matchmode="control"/> <dmtfnotify matchmode="control"/>
</subscribe> </subscribe>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
Each time a '2' or '3' DTMF input is received, the MS sends a Each time a '2' or '3' DTMF input is received, the MS sends a
notification event: notification event:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<event dialogid="d3"> <event dialogid="d3">
<dtmfnotify matchmode="collect" dtmf="2" <dtmfnotify matchmode="collect" dtmf="2"
timestamp="2008-05-12T12:13:14Z"/> timestamp="2008-05-12T12:13:14Z"/>
/event> </event>
</mscivr> </mscivr>
4.2.2.2. <stream> 4.2.2.2. <stream>
The <stream> element has the following attributes: The <stream> element has the following attributes:
media: a string indicating the type of media associated with the media: a string indicating the type of media associated with the
stream. The following values MUST be used for common types of stream. The following values MUST be used for common types of
media: "audio" for audio media, and "video" for video media. The media: "audio" for audio media, and "video" for video media. The
attribute is mandatory. attribute is mandatory.
label: a string indicating the SDP label associated with a media label: a string indicating the SDP label associated with a media
stream ([RFC4574]). The attribute is optional. stream ([RFC4574]). The attribute is optional.
direction: a string indicating the direction of the media flow direction: a string indicating the direction of the media flow
between a dialog and its end point conference or connection. relative to the endpoint conference or connection. Defined values
Defined values are: "sendrecv" (the dialog can send and receive are: "sendrecv" (the endpoint can send media to, and receive media
media), "sendonly" (the dialog can only send media), "recvonly" from, the dialog), "sendonly" (the endpoint can only send media to
(the dialog can only receive media) and "inactive" (stream is not the dialog), "recvonly" (the endpoint can only receive media from
to be used). The default value is "sendrecv". The attribute is the dialog) and "inactive" (stream is not to be used). The
optional. default value is "sendrecv". The attribute is optional.
The <stream> element has the following sequence of child elements: The <stream> element has the following sequence of child elements:
<region>: an element to specify the region within a mixer video <region>: an element to specify the region within a mixer video
layout where a media stream is displayed (Section 4.2.2.2.1). The layout where a media stream is displayed (Section 4.2.2.2.1). The
element is optional. element is optional.
<priority>: an element to configure priority associated with the <priority>: an element to configure priority associated with the
stream in the conference mix (Section 4.2.2.2.2). The element is stream in the conference mix (Section 4.2.2.2.2). The element is
optional. optional.
skipping to change at page 27, line 12 skipping to change at page 26, line 51
this case, the dialog could be started to record only the audio and this case, the dialog could be started to record only the audio and
video streams associated with the user: video streams associated with the user:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="connection1"> <dialogstart connectionid="connection1">
<dialog> <dialog>
<record maxtime="384000s"/> <record maxtime="384000s"/>
</dialog> </dialog>
<stream media="audio" label="camaudio" direction="inactive"/> <stream media="audio" label="camaudio" direction="inactive"/>
<stream media="video" label="camvideo" direction="inactive"/> <stream media="video" label="camvideo" direction="inactive"/>
<stream media="audio" label="useraudio" direction="recvonly"/> <stream media="audio" label="useraudio" direction="sendonly"/>
<stream media="video" label="uservideo" direction="recvonly"/> <stream media="video" label="uservideo" direction="sendonly"/>
</mscivr> </mscivr>
Using the <region> element, the dialog can be started on a conference Using the <region> element, the dialog can be started on a conference
mixer so that the video output from the dialog is directed to a mixer so that the video output from the dialog is directed to a
specific region within a video layout. For example: specific region within a video layout. For example:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart conferenceid="conference1"> <dialogstart conferenceid="conference1">
<dialog> <dialog>
<prompt> <prompt>
<media loc="http://www.example.com/presentation.3gp"/> <media loc="http://www.example.com/presentation.3gp"/>
</prompt> </prompt>
</dialog> </dialog>
<stream media="video" direction="sendonly"> <stream media="video" direction="recvonly">
<region>r1</region> <region>r1</region>
</stream> </stream>
</mscivr> </mscivr>
4.2.2.2.1. <region> 4.2.2.2.1. <region>
The <region> element is used to specify the region within a video The <region> element is used to specify the region within a video
layout where a video media stream is displayed. layout where a video media stream is displayed.
The <region> element has no attributes and its content model The <region> element has no attributes and its content model
skipping to change at page 29, line 20 skipping to change at page 29, line 14
dialogid: string identifying the dialog. If the request specifies a dialogid: string identifying the dialog. If the request specifies a
dialogid, then that value is used. Otherwise, with dialogid, then that value is used. Otherwise, with
<dialogprepare> and <dialogstart> requests, the dialogid generated <dialogprepare> and <dialogstart> requests, the dialogid generated
by the MS is used. If there is no available dialogid because the by the MS is used. If there is no available dialogid because the
request is syntactically invalid (e.g. a <dialogterminate> request request is syntactically invalid (e.g. a <dialogterminate> request
with no dialogid attribute specified), then the value is the empty with no dialogid attribute specified), then the value is the empty
string. The attribute is mandatory. string. The attribute is mandatory.
connectionid: string identifying the SIP dialog connection connectionid: string identifying the SIP dialog connection
associated with the dialog (see Section 17.1 of associated with the dialog (see Section 16.1 of
[I-D.ietf-mediactrl-sip-control-framework]). The attribute is [I-D.ietf-mediactrl-sip-control-framework]). The attribute is
optional. There is no default value. optional. There is no default value.
conferenceid: string identifying the conference associated with the conferenceid: string identifying the conference associated with the
dialog (see Section 17.1 of dialog (see Section 16.1 of
[I-D.ietf-mediactrl-sip-control-framework]). The attribute is [I-D.ietf-mediactrl-sip-control-framework]). The attribute is
optional. There is no default value. optional. There is no default value.
For example, a response when a dialog was prepared successfully: For example, a response when a dialog was prepared successfully:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<response status="200" dialogid="d5"/> <response status="200" dialogid="d5"/>
</mscivr> </mscivr>
The response if dialog preparation failed due to an unsupported The response if dialog preparation failed due to an unsupported
skipping to change at page 31, line 10 skipping to change at page 30, line 50
1 indicates successful completion of the dialog. 1 indicates successful completion of the dialog.
2 indicates the dialog terminated because the connection or 2 indicates the dialog terminated because the connection or
conference associated with the dialog has terminated. conference associated with the dialog has terminated.
3 indicates the dialog terminated due to exceeding its maximum 3 indicates the dialog terminated due to exceeding its maximum
duration. duration.
4 indicates the dialog terminated due to an execution error. 4 indicates the dialog terminated due to an execution error.
5 Reserved for future use. All other valid but undefined values are reserved for future use,
where a standards-track RFC is required to define new status
6 Reserved for future use. codes. The AS MUST treat any status code it does not recognize as
being equivalent to 4 (dialog execution error). The attribute is
7 Reserved for future use. mandatory.
8 Reserved for future use.
9 Reserved for future use.
The MS MAY define other values. The AS MUST treat any status code
it does not recognize as being equivalent to 4 (dialog execution
error). The attribute is mandatory.
reason: a textual description which the MS SHOULD use to provide a reason: a textual description which the MS SHOULD use to provide a
reason for the status code; e.g. details about an error. A valid reason for the status code; e.g. details about an error. A valid
value is a string (see Section 4.6.6). The attribute is optional. value is a string (see Section 4.6.6). The attribute is optional.
There is no default value. There is no default value.
The <dialogexit> element has the following sequence of child The <dialogexit> element has the following sequence of child
elements: elements:
<promptinfo>: report information (Section 4.3.2.1) about the prompt <promptinfo>: report information (Section 4.3.2.1) about the prompt
skipping to change at page 33, line 35 skipping to change at page 33, line 19
The <param> element has the following attributes: The <param> element has the following attributes:
name: a string indicating the name of the parameter. The attribute name: a string indicating the name of the parameter. The attribute
is mandatory. is mandatory.
type: specifies a type indicating how the inline value of the type: specifies a type indicating how the inline value of the
parameter is to be interpreted. A valid value is a MIME media parameter is to be interpreted. A valid value is a MIME media
type (see Section 4.6.10). The attribute is optional. The type (see Section 4.6.10). The attribute is optional. The
default value is "text/plain". default value is "text/plain".
The <param> element content model is the value of the parameter. The <param> element content model (text and/or XML) is the value of
Note that a value which contains XML characters (e.g. "<") needs to the parameter. Values in XML format MUST use a namespace other than
be escaped following standard XML conventions. the one used in this specification. Note that a text value which
contains XML characters (e.g. "<") needs to be escaped following
standard XML conventions.
For example, usage with a dialog language defined outside this For example, usage with a dialog language defined outside this
specification to receive parameters from the dialog when it exits: specification to receive parameters from the dialog when it exits:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<event dialogid="d6"/> <event dialogid="d6"/>
<dialogexit status="1"> <dialogexit status="1">
<params> <params>
<param name="mode">recording</param> <param name="mode">recording</param>
<param name="recording1" type="audio/x-wav"> <param name="recording1" type="audio/x-wav">
skipping to change at page 50, line 6 skipping to change at page 49, line 17
4.3.1.3.1. <grammar> 4.3.1.3.1. <grammar>
The <grammar> element allows a custom grammar, inline or external, to The <grammar> element allows a custom grammar, inline or external, to
be specified. Custom grammars permit the full range of DTMF be specified. Custom grammars permit the full range of DTMF
characters including '*' and '#' to be specified for DTMF pattern characters including '*' and '#' to be specified for DTMF pattern
matching. matching.
The <grammar> element has the following attributes: The <grammar> element has the following attributes:
src: specifies the location of an external grammar document. A src: specifies the location of an external grammar document. A
valid value is a URI (see Section 4.6.9). If the URI scheme is valid value is a URI (see Section 4.6.9) including authentication
unsupported, the MS sends a <response> with a 420 status code information if defined by the URI scheme (e.g. basic access
(Section 4.5). If the resource cannot be retrieved within the authentication in HTTP). If the URI scheme is unsupported, the MS
timeout interval, the MS sends a <response> with a 409 status sends a <response> with a 420 status code (Section 4.5). If the
code. If the grammar format is not supported, the MS sends a resource cannot be retrieved within the timeout interval, the MS
<response> with a 424 status code. The attribute is optional. sends a <response> with a 409 status code. If the grammar format
There is no default value. is not supported, the MS sends a <response> with a 424 status
code. The attribute is optional. There is no default value.
type: identifies the preferred type of the grammar document type: identifies the preferred type of the grammar document
identified by the src attribute. A valid value is a MIME media identified by the src attribute. A valid value is a MIME media
type (see Section 4.6.10). If the URI scheme used in the src type (see Section 4.6.10). If the URI scheme used in the src
attribute defines a mechanism for establishing the authoratitive attribute defines a mechanism for establishing the authoratitive
MIME media type of the media resource, the value returned by that MIME media type of the media resource, the value returned by that
mechanism takes precedence over this attribute. The attribute is mechanism takes precedence over this attribute. The attribute is
optional. There is no default value. optional. There is no default value.
fetchtimeout: the maximum interval to wait when fetching a grammar fetchtimeout: the maximum interval to wait when fetching a grammar
skipping to change at page 69, line 6 skipping to change at page 68, line 6
The <dialogaudit> element has the following attributes: The <dialogaudit> element has the following attributes:
dialogid: string identifying the dialog. The attribute is dialogid: string identifying the dialog. The attribute is
mandatory. mandatory.
state: string indicating the state of the dialog. Valid values are: state: string indicating the state of the dialog. Valid values are:
preparing, prepared, starting, started. The attribute is preparing, prepared, starting, started. The attribute is
mandatory. mandatory.
connectionid: string identifying the SIP dialog connection connectionid: string identifying the SIP dialog connection
associated with the dialog (see Section 17.1 of associated with the dialog (see Section 16.1 of
[I-D.ietf-mediactrl-sip-control-framework]). The attribute is [I-D.ietf-mediactrl-sip-control-framework]). The attribute is
optional. There is no default value. optional. There is no default value.
conferenceid: string identifying the conference associated with the conferenceid: string identifying the conference associated with the
dialog (see Section 17.1 of dialog (see Section 16.1 of
[I-D.ietf-mediactrl-sip-control-framework]). The attribute is [I-D.ietf-mediactrl-sip-control-framework]). The attribute is
optional. There is no default value. optional. There is no default value.
The <dialogaudit> element has the following child element: The <dialogaudit> element has the following child element:
<codecs> element describing codecs used in the dialog. See <codecs> element describing codecs used in the dialog. See
Section 4.4.2.1. The element is optional. Section 4.4.2.1. The element is optional.
For example, a fragment describing a started dialog which is using For example, a fragment describing a started dialog which is using
PCMU and telephony-event codecs: PCMU and telephony-event codecs:
<dialogaudit dialogid="1234" state="started"> <dialogaudit dialogid="1234" state="started" conferenceid="conf1">
<codecs> <codecs>
<codec> <codec>
<subtype>PCMU</subtype> <subtype>PCMU</subtype>
</codec> </codec>
<codec> <codec>
<subtype>telephone-event</subtype> <subtype>telephone-event</subtype>
</codec> </codec>
</codecs> </codecs>
</dialogaudit> </dialogaudit>
4.5. Response Status Codes 4.5. Response Status Codes
This section describes the response codes in Table 1 for the status This section describes the response codes in Table 1 for the status
attribute of dialog management <response> (Section 4.2.4) and audit attribute of dialog management <response> (Section 4.2.4) and audit
<auditresponse> (Section 4.4.2) responses. The MS MUST support these <auditresponse> (Section 4.4.2) responses. The MS MUST support the
status response codes. The MS MAY support other response codes. The status response codes defined here. All other valid but undefined
AS MUST treat any responses it does not recognize as being equivalent values are reserved for future use, where a standards-track RFC is
to the x00 response code for all classes. For example, if an AS required to define new status codes. The AS MUST treat any responses
receives an unrecognized response code of 499, it can safely assume it does not recognize as being equivalent to the x00 response code
that there was something wrong with its request and treat the for all classes. For example, if an AS receives an unrecognized
response as if it had received a 400 (Syntax error) response code. response code of 499, it can safely assume that there was something
wrong with its request and treat the response as if it had received a
400 (Syntax error) response code.
4xx responses are definite failure responses from a particular MS. 4xx responses are definite failure responses from a particular MS.
The reason attribute in the response SHOULD identify the failure in The reason attribute in the response SHOULD identify the failure in
more detail, for example, "Mandatory attribute missing: src in media more detail, for example, "Mandatory attribute missing: src in media
element" for a 400 (Syntax error) response code. element" for a 400 (Syntax error) response code.
The AS SHOULD NOT retry the same request without modification (for The AS SHOULD NOT retry the same request without modification (for
example, correcting a syntax error or changing the connectionid to example, correcting a syntax error or changing the connectionid to
use one available on the MS). However, the same request to a use one available on the MS). However, the same request to a
different MS might be successful; for example, if another MS supports different MS might be successful; for example, if another MS supports
skipping to change at page 70, line 40 skipping to change at page 69, line 43
| | | valid with respect to | valid. | | | | valid with respect to | valid. |
| | | the XML schema | | | | | the XML schema | |
| | | specified in | | | | | specified in | |
| | | Section 5 or it | | | | | Section 5 or it | |
| | | violates a | | | | | violates a | |
| | | co-occurrence | | | | | co-occurrence | |
| | | constraint for a | | | | | constraint for a | |
| | | request element | | | | | request element | |
| | | defined in Section 4. | | | | | defined in Section 4. | |
| | | | | | | | | |
| 401 | Reserved for | | | | 405 | dialogid | request uses a | Send a request for |
| | future use | | | | | already | dialogid identifier | a new dialog |
| | | | | | | exists | for a new dialog | without specifying |
| 402 | Reserved for | | | | | | which is already used | the dialogid and |
| | future use | | | | | | by another dialog on | let the MS |
| | | | | | | | the MS (see | generate a unique |
| 403 | Reserved for | | | | | | Section 4.2). | dialogid in the |
| | future use | | | | | | | response. |
| | | | |
| 404 | Reserved for | | |
| | future use | | |
| | | | |
| 405 | dialogid | request uses a | Send an <audit> |
| | already | dialogid identifier | request |
| | exists | for a new dialog | (Section 4.4.1) |
| | | which is already used | requesting the |
| | | by another dialog on | list of dialog |
| | | the MS (see | identifiers |
| | | Section 4.2). | already used by |
| | | | the MS and then |
| | | | use a dialog |
| | | | identifier which |
| | | | is not listed. |
| | | | | | | | | |
| 406 | dialogid does | request uses a | Send an <audit> | | 406 | dialogid does | request uses a | Send an <audit> |
| | not exist | dialogid identifier | request | | | not exist | dialogid identifier | request |
| | | for an dialog which | (Section 4.4.1) | | | | for an dialog which | (Section 4.4.1) |
| | | does not exist on the | requesting the | | | | does not exist on the | requesting the |
| | | MS (see Section 4.2). | list of dialog | | | | MS (see Section 4.2). | list of dialog |
| | | | identifiers | | | | | identifiers |
| | | | already used by | | | | | already used by |
| | | | the MS and then | | | | | the MS and then |
| | | | use one of the | | | | | use one of the |
skipping to change at page 72, line 38 skipping to change at page 71, line 30
| | | on an connection or | these capabilities | | | | on an connection or | these capabilities |
| | | conference without | | | | | conference without | |
| | | video streams. | | | | | video streams. | |
| | | | | | | | | |
| 413 | Control keys | the request contains | Use different keys | | 413 | Control keys | the request contains | Use different keys |
| | with same | a <control> element | for the different | | | with same | a <control> element | for the different |
| | value | (Section 4.3.1.2) | control | | | value | (Section 4.3.1.2) | control |
| | | where some keys have | operations. | | | | where some keys have | operations. |
| | | the same value | | | | | the same value | |
| | | | | | | | | |
| 414 | Reserved for | | |
| | future use | | |
| | | | |
| 415 | Reserved for | | |
| | future use | | |
| | | | |
| 416 | Reserved for | | |
| | future use | | |
| | | | |
| 417 | Reserved for | | |
| | future use | | |
| | | | |
| 418 | Reserved for | | |
| | future use | | |
| 419 | Other | requested operation | | | 419 | Other | requested operation | |
| | execution | cannot be executed by | | | | execution | cannot be executed by | |
| | error | the MS. | | | | error | the MS. | |
| | | | | | | | | |
| 420 | Unsupported | request specifies a | Use a URI scheme | | 420 | Unsupported | request specifies a | Use a URI scheme |
| | URI scheme | URI whose scheme is | which is | | | URI scheme | URI whose scheme is | which is |
| | | not supported by the | supported. | | | | not supported by the | supported. |
| | | MS | | | | | MS | |
| | | | | | | | | |
| 421 | Unsupported | request references an | Send an <audit> | | 421 | Unsupported | request references an | Send an <audit> |
skipping to change at page 75, line 4 skipping to change at page 73, line 32
| | | which the MS is | | | | | which the MS is | |
| | | unable to record with | | | | | unable to record with | |
| | | on the available | | | | | on the available | |
| | | input media streams | | | | | input media streams | |
| | | | | | | | | |
| 431 | Unsupported | the request contains | | | 431 | Unsupported | the request contains | |
| | foreign | attributes or | | | | foreign | attributes or | |
| | namespace | elements from another | | | | namespace | elements from another | |
| | attribute or | namespace which the | | | | attribute or | namespace which the | |
| | element | MS does not support | | | | element | MS does not support | |
| | | | |
| 432 | Unsupported | the request tries to | | | 432 | Unsupported | the request tries to | |
| | multiple | start another dialog | | | | multiple | start another dialog | |
| | dialog | on the same | | | | dialog | on the same | |
| | capability | conference or | | | | capability | conference or | |
| | | connection where a | | | | | connection where a | |
| | | dialog is already | | | | | dialog is already | |
| | | running | | | | | running | |
| | | | | | | | | |
| 433 | Unsupported | the request contains | | | 433 | Unsupported | the request contains | |
| | collect and | <collect> and | | | | collect and | <collect> and | |
skipping to change at page 75, line 32 skipping to change at page 74, line 17
| | | Detection (VAD) is | | | | | Detection (VAD) is | |
| | | required, but the MS | | | | | required, but the MS | |
| | | does not support VAD. | | | | | does not support VAD. | |
| | | | | | | | | |
| 435 | Unsupported | the request contains | | | 435 | Unsupported | the request contains | |
| | parallel | a prompt <par> | | | | parallel | a prompt <par> | |
| | playback | element whose | | | | playback | element whose | |
| | | configuration is not | | | | | configuration is not | |
| | | supported by the MS. | | | | | supported by the MS. | |
| | | | | | | | | |
| 436 | Reserved for | | |
| | future use | | |
| | | | |
| 437 | Reserved for | | |
| | future use | | |
| | | | |
| 438 | Reserved for | | |
| | future use | | |
| | | | |
| 439 | Other | request requires | | | 439 | Other | request requires | |
| | unsupported | another capability | | | | unsupported | another capability | |
| | capability | not supported by the | | | | capability | not supported by the | |
| | | MS | | | | | MS | |
+------+---------------+-----------------------+--------------------+ +------+---------------+-----------------------+--------------------+
Table 1: status codes Table 1: status codes
4.6. Type Definitions 4.6. Type Definitions
skipping to change at page 78, line 17 skipping to change at page 76, line 17
This section defines the XML schema for IVR Control Package. This section defines the XML schema for IVR Control Package.
The schema defines datatypes, attributes, dialog management and IVR The schema defines datatypes, attributes, dialog management and IVR
dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In
most elements the order of child elements is significant. The schema most elements the order of child elements is significant. The schema
is extensible: elements allow attributes and child elements from is extensible: elements allow attributes and child elements from
other namespaces. Elements from outside this package's namespace can other namespaces. Elements from outside this package's namespace can
occur after elements defined in this package. occur after elements defined in this package.
The schema is dependent upon the schema (framework.xsd) defined in The schema is dependent upon the schema (framework.xsd) defined in
Section 17.1 of the Control Framework Section 16.1 of the Control Framework
[I-D.ietf-mediactrl-sip-control-framework]. It is also dependent [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent
upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g.
xml:base). xml:base).
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr" <xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr"
elementFormDefault="qualified" blockDefault="#all" elementFormDefault="qualified" blockDefault="#all"
xmlns="urn:ietf:params:xml:ns:msc-ivr" xmlns="urn:ietf:params:xml:ns:msc-ivr"
xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes" xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation> <xsd:annotation>
<xsd:documentation> <xsd:documentation>
IETF MediaCtrl IVR 1.0 (20090301) IETF MediaCtrl IVR 1.0 (20090710)
This is the schema of the IETF MediaCtrl IVR control This is the schema of the IETF MediaCtrl IVR control
package. package.
The schema namespace is urn:ietf:params:xml:ns:msc-ivr The schema namespace is urn:ietf:params:xml:ns:msc-ivr
</xsd:documentation> </xsd:documentation>
</xsd:annotation> </xsd:annotation>
<!-- <!--
skipping to change at page 79, line 7 skipping to change at page 77, line 7
############################################################# #############################################################
--> -->
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"> schemaLocation="http://www.w3.org/2001/xml.xsd">
<xsd:annotation> <xsd:annotation>
<xsd:documentation> <xsd:documentation>
This import brings in the XML attributes for This import brings in the XML attributes for
xml:base, xml:lang, etc xml:base, xml:lang, etc
See http://www.w3.org/2001/xml.xsd for latest version
</xsd:documentation> </xsd:documentation>
</xsd:annotation> </xsd:annotation>
</xsd:import> </xsd:import>
<xsd:import <xsd:import
namespace="urn:ietf:params:xml:ns:control:framework-attributes" namespace="urn:ietf:params:xml:ns:control:framework-attributes"
schemaLocation="framework.xsd"> schemaLocation="framework.xsd">
<xsd:annotation> <xsd:annotation>
<xsd:documentation> <xsd:documentation>
This import brings in the framework attributes for This import brings in the framework attributes for
skipping to change at page 81, line 4 skipping to change at page 79, line 6
<xsd:sequence> <xsd:sequence>
<xsd:element ref="dialog" minOccurs="0" <xsd:element ref="dialog" minOccurs="0"
maxOccurs="1" /> maxOccurs="1" />
<xsd:element ref="params" minOccurs="0" <xsd:element ref="params" minOccurs="0"
maxOccurs="1" /> maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0" <xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" /> maxOccurs="unbounded" processContents="lax" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="src" type="xsd:anyURI" /> <xsd:attribute name="src" type="xsd:anyURI" />
<xsd:attribute name="type" type="mime.datatype"/> <xsd:attribute name="type" type="mime.datatype"/>
<xsd:attribute name="maxage" type="xsd:nonNegativeInteger"/>
<xsd:attribute name="maxstale" type="xsd:nonNegativeInteger"/>
<xsd:attribute name="fetchtimeout" <xsd:attribute name="fetchtimeout"
type="timedesignation.datatype" default="30s" /> type="timedesignation.datatype" default="30s" />
<xsd:attribute name="dialogid" <xsd:attribute name="dialogid"
type="dialogid.datatype" /> type="dialogid.datatype" />
</xsd:extension> </xsd:extension>
</xsd:complexContent> </xsd:complexContent>
</xsd:complexType> </xsd:complexType>
<xsd:element name="dialogprepare" type="dialogprepareType" /> <xsd:element name="dialogprepare" type="dialogprepareType" />
skipping to change at page 81, line 33 skipping to change at page 79, line 37
maxOccurs="1" /> maxOccurs="1" />
<xsd:element ref="params" minOccurs="0" <xsd:element ref="params" minOccurs="0"
maxOccurs="1" /> maxOccurs="1" />
<xsd:element ref="stream" minOccurs="0" <xsd:element ref="stream" minOccurs="0"
maxOccurs="unbounded" /> maxOccurs="unbounded" />
<xsd:any namespace="##other" minOccurs="0" <xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" /> maxOccurs="unbounded" processContents="lax" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="src" type="xsd:anyURI" /> <xsd:attribute name="src" type="xsd:anyURI" />
<xsd:attribute name="type" type="mime.datatype"/> <xsd:attribute name="type" type="mime.datatype"/>
<xsd:attribute name="maxage" type="xsd:nonNegativeInteger"/>
<xsd:attribute name="maxstale" type="xsd:nonNegativeInteger"/>
<xsd:attribute name="fetchtimeout" <xsd:attribute name="fetchtimeout"
type="timedesignation.datatype" default="30s" /> type="timedesignation.datatype" default="30s" />
<xsd:attribute name="dialogid" <xsd:attribute name="dialogid"
type="dialogid.datatype" /> type="dialogid.datatype" />
<xsd:attribute name="prepareddialogid" <xsd:attribute name="prepareddialogid"
type="dialogid.datatype" /> type="dialogid.datatype" />
<xsd:attributeGroup ref="fw:framework-attributes" /> <xsd:attributeGroup ref="fw:framework-attributes" />
</xsd:extension> </xsd:extension>
</xsd:complexContent> </xsd:complexContent>
</xsd:complexType> </xsd:complexType>
skipping to change at page 100, line 4 skipping to change at page 98, line 8
</xsd:complexType> </xsd:complexType>
<xsd:element name="variabletype" type="variabletypeType" /> <xsd:element name="variabletype" type="variabletypeType" />
<!-- format --> <!-- format -->
<!-- doesn't extend tCore since its content model is mixed --> <!-- doesn't extend tCore since its content model is mixed -->
<xsd:complexType name="formatType" mixed="true"> <xsd:complexType name="formatType" mixed="true">
<xsd:sequence> <xsd:sequence>
<xsd:any namespace="##other" minOccurs="0" <xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" /> maxOccurs="unbounded" processContents="lax" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="desc" type="xsd:string" /> <xsd:attribute name="desc" type="xsd:string" />
<xsd:anyAttribute namespace="##other" processContents="lax" /> <xsd:anyAttribute namespace="##other" processContents="lax" />
</xsd:complexType> </xsd:complexType>
<xsd:element name="format" type="formatType" /> <xsd:element name="format" type="formatType" />
<!-- maxpreparedduration --> <!-- maxpreparedduration -->
<xsd:element name="maxpreparedduration" <xsd:element name="maxpreparedduration"
type="timedesignation.datatype"/> type="timedesignation.datatype"/>
<!-- maxrecordduration --> <!-- maxrecordduration -->
<xsd:element name="maxrecordduration" <xsd:element name="maxrecordduration"
type="timedesignation.datatype"/> type="timedesignation.datatype"/>
<!-- dialogs --> <!-- dialogs -->
<xsd:complexType name="dialogsType"> <xsd:complexType name="dialogsType">
<xsd:complexContent> <xsd:complexContent>
<xsd:extension base="Tcore"> <xsd:extension base="Tcore">
<xsd:sequence> <xsd:sequence>
<xsd:element ref="dialogaudit" minOccurs="0" <xsd:element ref="dialogaudit" minOccurs="0"
maxOccurs="unbounded" /> maxOccurs="unbounded" />
<xsd:any namespace="##other" minOccurs="0" <xsd:any namespace="##other" minOccurs="0"
skipping to change at page 110, line 6 skipping to change at page 108, line 6
</dialogexit> </dialogexit>
</event> </event>
</mscivr> </mscivr>
6.2.2. Prompt and collect 6.2.2. Prompt and collect
In this example, a prompt is played and then the MS waits for 30s for In this example, a prompt is played and then the MS waits for 30s for
a two digit sequence: a two digit sequence:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
<dialog> <dialog>
<prompt> <prompt>
<media loc="http://www.example.com/prompt1.wav"/> <media loc="http://www.example.com/prompt1.wav"/>
</prompt> </prompt>
<collect timeout="30s" maxdigits="2"/> <collect timeout="30s" maxdigits="2"/>
</dialog> </dialog>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
If no user input is collected within 30s, then following notification If no user input is collected within 30s, then following notification
skipping to change at page 110, line 29 skipping to change at page 108, line 29
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<event dialogid="vxi81"> <event dialogid="vxi81">
<dialogexit status="1" > <dialogexit status="1" >
<promptinfo termmode="completed" duration="4000"/> <promptinfo termmode="completed" duration="4000"/>
<collectinfo termmode="noinput"/> <collectinfo termmode="noinput"/>
</dialogexit> </dialogexit>
</event> </event>
</mscivr> </mscivr>
The collect operation can be specified without a prompt. Here the MS The collect operation can be specified without a prompt. Here the MS
just waits for DTMF input from the user: just waits for DTMF input from the user (the maxdigits attribute of
<collect> defaults to 5):
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
<dialog> <dialog>
<collect/> <collect/>
</dialog> </dialog>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
If the dialog is successful, then dialogexit <event> contains the If the dialog is successful, then dialogexit <event> contains the
dtmf collected in its result parameter: dtmf collected in its result parameter:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<event dialogid="vxi80"> <event dialogid="vxi80">
<dialogexit status="1"> <dialogexit status="1">
<collectinfo dtmf="12345" termmode="match"/> <collectinfo dtmf="12345" termmode="match"/>
</dialogexit> </dialogexit>
</event> </event>
/mscivr> /mscivr>
And finally in this example, one of the input parameters is invalid: And finally in this example, one of the input parameters is invalid:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
<dialog repeatCount="two"> <dialog repeatCount="two">
<prompt> <prompt>
<media loc="http://www.example.com/prompt1.wav"/> <media loc="http://www.example.com/prompt1.wav"/>
</prompt> </prompt>
<collect cleardigitbuffer="true" bargein="true" <collect cleardigitbuffer="true"
timeout="4s" interdigittimeout="2s" timeout="4s" interdigittimeout="2s"
termtimeout="0s" maxdigits="2"/> termtimeout="0s" maxdigits="2"/>
</dialog> </dialog>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
The error is reported in the response: The error is reported in the response:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<response status="400" dialogid="vxi82" <response status="400" dialogid="vxi82"
reason="repeatCount attribute value invalid: two"/> reason="repeatCount attribute value invalid: two"/>
</mscivr> </mscivr>
6.2.3. Prompt and record 6.2.3. Prompt and record
In this example, the user is prompted, then their input is recorded In this example, the user is prompted, then their input is recorded
for a maximum of 30 seconds. for a maximum of 30 seconds.
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
<dialog> <dialog>
<prompt> <prompt>
<media loc="http://www.example.com/media/sayname.wav"/> <media loc="http://www.example.com/media/sayname.wav"/>
</prompt> </prompt>
<record dtmfterm="false" maxtime="30s" beep="true"/> <record dtmfterm="false" maxtime="30s" beep="true"/>
</dialog> </dialog>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
If successful and the recording is terminated by DTMF, the following If successful and the recording is terminated by DTMF, the following
skipping to change at page 112, line 22 skipping to change at page 110, line 22
</dialogexit> </dialogexit>
</event> </event>
</mscivr> </mscivr>
6.2.4. Runtime controls 6.2.4. Runtime controls
In this example, a prompt is played with collect and runtime controls In this example, a prompt is played with collect and runtime controls
are activated. are activated.
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
<dialog> <dialog>
<prompt bargein="true"> <prompt bargein="true">
<media loc="http://www.example.com/prompt1.wav"/> <media loc="http://www.example.com/prompt1.wav"/>
</prompt> </prompt>
<control ffkey=5" rwkey="6" speedupkey="3" <control ffkey=5" rwkey="6" speedupkey="3"
speeddnkey="4"/> speeddnkey="4"/>
<collect maxdigits="2"/> <collect maxdigits="2"/>
</dialog> </dialog>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
skipping to change at page 113, line 25 skipping to change at page 111, line 25
</dialogexit> </dialogexit>
</event> </event>
</mscivr> </mscivr>
6.2.5. Subscriptions and notifications 6.2.5. Subscriptions and notifications
In this example, a looped dialog is started with subscription for In this example, a looped dialog is started with subscription for
notifications each time the user input matches the collect grammar: notifications each time the user input matches the collect grammar:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="7HDY839~HJKSkyHS"> <dialogstart connectionid="7HDY839:HJKSkyHS">
<dialog repeatCount="0"> <dialog repeatCount="0">
<collect maxdigits="2"/> <collect maxdigits="2"/>
</dialog> </dialog>
<subscribe> <subscribe>
<dtmfsub matchmode="collect"/> <dtmfsub matchmode="collect"/>
</subscribe> </subscribe>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
Each time the user input the DTMF matching the grammar, the following Each time the user input the DTMF matching the grammar, the following
skipping to change at page 114, line 7 skipping to change at page 112, line 7
If no user input was provided, or the input did not match the If no user input was provided, or the input did not match the
grammar, the dialog would continue to loop until terminated (or an grammar, the dialog would continue to loop until terminated (or an
error occurred). error occurred).
6.3. Other Dialog Languages 6.3. Other Dialog Languages
The following example requests that a VoiceXML dialog is started: The following example requests that a VoiceXML dialog is started:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart dialogid="d2" <dialogstart dialogid="d2"
connectionid="7HDY839~HJKSkyHS" connectionid="7HDY839:HJKSkyHS"
type="application/voicexml+xml" type="application/voicexml+xml"
src="http://www.example.com/mydialog.vxml" src="http://www.example.com/mydialog.vxml"
fetchtimeout="15s"> fetchtimeout="15s">
<params> <params>
<param name="prompt1">nfs://nas01/media1.3gp</param> <param name="prompt1">nfs://nas01/media1.3gp</param>
<param name="prompt2">nfs://nas01/media2.3gp</param> <param name="prompt2">nfs://nas01/media2.3gp</param>
</params> </params>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
skipping to change at page 115, line 7 skipping to change at page 113, line 7
An MS can support attributes and elements from foreign namespaces An MS can support attributes and elements from foreign namespaces
within the <mscivr> element. For example, the MS could support a within the <mscivr> element. For example, the MS could support a
<listen> element (in a foreign namespace) for speech recognition by <listen> element (in a foreign namespace) for speech recognition by
analogy to how <collect> support DTMF collection. analogy to how <collect> support DTMF collection.
In the following example, a prompt and collect request is extended In the following example, a prompt and collect request is extended
with a <listen> element: with a <listen> element:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr" <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"
xmlns:ex="http://www.example.com/mediactrl/extensions/1"> xmlns:ex="http://www.example.com/mediactrl/extensions/1">
<dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
<dialog> <dialog>
<prompt> <prompt>
<media loc="http://www.example.com/prompt1.wav"/> <media loc="http://www.example.com/prompt1.wav"/>
</prompt> </prompt>
<collect timeout="30s" maxdigits="4"/> <collect timeout="30s" maxdigits="4"/>
<ex:listen maxtimeout="30s" > <ex:listen maxtimeout="30s" >
<ex:grammar src="http://example.org/pin.grxml"/> <ex:grammar src="http://example.org/pin.grxml"/>
</ex:listen> </ex:listen>
</dialog> </dialog>
</dialogstart> </dialogstart>
skipping to change at page 117, line 19 skipping to change at page 115, line 19
Implementations of this control package MUST address security, Implementations of this control package MUST address security,
confidentiality and integrity of messages transported over the confidentiality and integrity of messages transported over the
control channel as described in Section 11 of the Media Control control channel as described in Section 11 of the Media Control
channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), channel Framework ([I-D.ietf-mediactrl-sip-control-framework]),
including Transport Level Protection, Control Channel Policy including Transport Level Protection, Control Channel Policy
Management and Session Establishment. In addition, implementations Management and Session Establishment. In addition, implementations
MUST address security, confidentiality and integrity of User Agent MUST address security, confidentiality and integrity of User Agent
sessions with the MS, both in terms of SIP signaling and associated sessions with the MS, both in terms of SIP signaling and associated
RTP media flow; see [I-D.ietf-mediactrl-sip-control-framework] for RTP media flow; see [I-D.ietf-mediactrl-sip-control-framework] for
further details on this topic. further details on this topic. Finally, implementations MUST address
security, confidentiality and integrity of sessions where, following
a URI scheme, an MS uploads recordings or retrieves documents and
resources (e.g. fetching a grammar document from a web server using
HTTPS).
Adequate transport protection and authentication are critical, Adequate transport protection and authentication are critical,
especially when the implementation is deployed in open networks. If especially when the implementation is deployed in open networks. If
the implementation fails to correctly address these issues, it risks the implementation fails to correctly address these issues, it risks
exposure to malicious attacks, including (but not limited to): exposure to malicious attacks, including (but not limited to):
Denial of Service: An attacker could insert a request message into Denial of Service: An attacker could insert a request message into
the transport stream causing specific dialogs on the MS to be the transport stream causing specific dialogs on the MS to be
terminated immediately. For example, <dialogterminate terminated immediately. For example, <dialogterminate
dialogid="XXXX" immediate="true">, where the value of "XXXX" could dialogid="XXXX" immediate="true">, where the value of "XXXX" could
skipping to change at page 120, line 17 skipping to change at page 118, line 17
This specification instructs IANA to register a new Media Control This specification instructs IANA to register a new Media Control
Channel Framework Package, a new XML namespace, a new XML schema and Channel Framework Package, a new XML namespace, a new XML schema and
a new MIME type. a new MIME type.
8.1. Control Package Registration 8.1. Control Package Registration
This section registers a new Media Control Channel Framework package, This section registers a new Media Control Channel Framework package,
per the instructions in Section 12.1 of per the instructions in Section 12.1 of
[I-D.ietf-mediactrl-sip-control-framework]. [I-D.ietf-mediactrl-sip-control-framework].
To: ietf-sip-control@iana.org
Subject: Registration of new Channel Framework package
Package Name: msc-ivr/1.0 Package Name: msc-ivr/1.0
[NOTE TO IANA/RFC-EDITOR: Please replace XXXX [NOTE TO IANA/RFC-EDITOR: Please replace XXXX
with the RFC number for this specification.] with the RFC number for this specification.]
Published Specification(s): RFCXXXX Published Specification(s): RFCXXXX
Person & email address to contact for further information: Person & email address to contact for further information:
IETF, MEDIACTRL working group, (mediactrl@ietf.org), IETF, MEDIACTRL working group, (mediactrl@ietf.org),
Scott McGlashan (scott.mcglashan@hp.com). Scott McGlashan (smcg.stds01@mcglashan.org).
8.2. URN Sub-Namespace Registration 8.2. URN Sub-Namespace Registration
This section registers a new XML namespace, This section registers a new XML namespace,
"urn:ietf:params:xml:ns:msc-ivr", per the guidelines in RFC 3688 "urn:ietf:params:xml:ns:msc-ivr", per the guidelines in RFC 3688
[RFC3688]. [RFC3688].
URI: urn:ietf:params:xml:ns:msc-ivr URI: urn:ietf:params:xml:ns:msc-ivr
Registrant Contact: IETF, MEDIACTRL working group, Registrant Contact: IETF, MEDIACTRL working group,
(mediactrl@ietf.org), Scott McGlashan (scott.mcglashan@hp.com). (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org).
XML: XML:
BEGIN BEGIN
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head> <head>
<title>Media Control Channel Framework IVR <title>Media Control Channel Framework IVR
Package attributes</title> Package attributes</title>
</head> </head>
<body> <body>
<h1>Namespace for Media Control Channel <h1>Namespace for Media Control Channel
Framework IVR Package attributes</h1> Framework IVR Package attributes</h1>
<h2>urn:ietf:params:xml:ns:msc-ivr</h2> <h2>urn:ietf:params:xml:ns:msc-ivr</h2>
[NOTE TO IANA/RFC-EDITOR: Please replace XXXX [NOTE TO IANA/RFC-EDITOR: Please replace XXXX
with the RFC number for this specification.] with the RFC number for this specification.]
<p>See RFCXXXX</p> <p>See RFCXXXX</p>
</body> </body>
</html> </html>
END END
8.3. XML Schema Registration 8.3. XML Schema Registration
This section registers an XML schema as per the guidelines in RFC This section registers an XML schema as per the guidelines in RFC
3688 [RFC3688]. 3688 [RFC3688].
URI: urn:ietf:params:xml:ns:msc-ivr URI: urn:ietf:params:xml:ns:msc-ivr
Registrant Contact: IETF, MEDIACTRL working group, Registrant Contact: IETF, MEDIACTRL working group,
(mediactrl@ietf.org), Scott McGlashan (scott.mcglashan@hp.com). (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org).
Schema: The XML for this schema can be found in Schema: The XML for this schema can be found in
Section 5 of this document. Section 5 of this document.
8.4. MIME Media Type Registration for 'application/msc-ivr+xml' 8.4. MIME Media Type Registration for 'application/msc-ivr+xml'
This section registers the "application/msc-ivr+xml" MIME type. This section registers the "application/msc-ivr+xml" MIME type.
To: ietf-types@iana.org To: ietf-types@iana.org
Subject: Registration of MIME media type Subject: Registration of MIME media type
application/msc-ivr+xml application/msc-ivr+xml
MIME media type name: application MIME media type name: application
MIME subtype name: msc-ivr+xml MIME subtype name: msc-ivr+xml
skipping to change at page 122, line 27 skipping to change at page 120, line 27
Security considerations: No known security considerations outside Security considerations: No known security considerations outside
of those provided by the Media Control Channel Framework IVR of those provided by the Media Control Channel Framework IVR
Package. Package.
Interoperability considerations: This content type provides Interoperability considerations: This content type provides
constructs for the Media Control Channel Framework IVR package. constructs for the Media Control Channel Framework IVR package.
Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please
replace XXXX with the RFC number for this specification.] replace XXXX with the RFC number for this specification.]
Applications which use this media type: Implementations of Applications which use this media type: Implementations of
the Media Control Channel Framework IVR package. the Media Control Channel Framework IVR package.
Additional Information: Magic Number(s): (none) Additional Information: Magic Number(s): (none)
File extension(s): .xml File extension(s): (none)
Macintosh File Type Code(s): (none) Macintosh File Type Code(s): (none)
Person & email address to contact for further information: Scott Person & email address to contact for further information: Scott
McGlashan <scott.mcglashan@hp.com> McGlashan <smcg.stds01@mcglashan.org>
Intended usage: LIMITED USE Intended usage: LIMITED USE
Author/Change controller: The IETF Author/Change controller: The IETF
Other information: None. Other information: None.
9. Change Summary 9. Change Summary
Note to RFC Editor: Please remove this whole section. Note to RFC Editor: Please remove this whole section.
The following are the changes between the -07 and -06 versions
(primarily addressing AD Review comments):
o Generally corrected references from Section 17.1 to Section 16.1
of Control Channel Framework.
o 4.2.2.1.1: corrected syntax error in example
o 4.2.3.1: corrected example by adding conferenceid attribute.
o 12.1: corrected error code from 407 to 409 in example when vxml
document cannot be retrieved.
o 6.2.2: corrected example by removing bargein="true"; clarified
that maxdigits defaults to 5.
o 4.5: Changed the recovery action for a 405 ('dialogid already
exists') error response. The AS can always recover by not
specifying the id in the creation command and let the MS generate
a unique id in the response.
o 8.1: Removed the To: and Subject: header fields
o Corrected miscellanous typos.
o 4.2.1, 4.2.2 and 4.3.1.3.1: Added authentication information to
the definition of src attribute in <dialogprepare>, <dialogstart>
and <grammar>.
o 7: Added Security Consideration that uploading/retrieving
documents and resources should be secured.
o 8.4: Changed file extension from '.xml' to (none)
o Changed "~" to a ":" for connectionid
o 4.2.6.1: Clarified that <param> can contain an XML value.
o 4.2.1, 4.2.2, 12.1,12.2, schema: added maxage and maxstale
attributes (optional) to <dialogprepare>, <dialogstart> for HTTP
VoiceXML use case.
o 4.2.2.1: Clarified that a request containing <subscribe> with no
child elements is equivalent to a request without a <subscribe>
element.
o 4.2.5.1: Changed <dialogexit> status codes so that only 0-4
defined and all others are reserved for future use requiring a
standard-track RFC.
o 4.5: Changed status code for <response> and <auditresponse> so
that certain codes are defined and all others are reserved for
future use requiring a standard-track RFC.
o 4.2.2.2, 12.2.2, various examples: Changed the media <stream>
direction so that it is relative to the endpoint, not the dialog.
Now aligned with VoiceXML mapping in RFC 5552.
The following are the changes between the -06 and -05 versions. The following are the changes between the -06 and -05 versions.
o Corrected typo in introduction o Corrected typo in introduction
o 4.2.1: Added <params> to <dialogprepare>. Updated VoiceXML o 4.2.1: Added <params> to <dialogprepare>. Updated VoiceXML
appendix to describe how these parameters are mapped to the appendix to describe how these parameters are mapped to the
session object. session object.
o 4.3.1.3: <collect>: clarified definitions of interdigittimeout and o 4.3.1.3: <collect>: clarified definitions of interdigittimeout and
termtimeout attributes and tightened up the collect execution termtimeout attributes and tightened up the collect execution
skipping to change at page 136, line 8 skipping to change at page 135, line 8
early versions of this document. early versions of this document.
The authors would like to thank the IVR design team consisting of The authors would like to thank the IVR design team consisting of
Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary
Barnes and Steve Buko who provided valuable feedback, input and text Barnes and Steve Buko who provided valuable feedback, input and text
to this document. to this document.
11. Acknowledgments 11. Acknowledgments
The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave
Burke, Dan York and Steve Buko for expert reviews of this work. Burke, Dan York, Steve Buko and Jean-Francois Bertrand for expert
reviews of this work.
Ben Campbell carried out the RAI expert review on this specification Ben Campbell carried out the RAI expert review on this specification
and provided a great deal of invaluable input. Donald Eastlake and provided a great deal of invaluable input. Donald Eastlake
carried out a thorough security review. carried out a thorough security review.
12. Appendix A: Using VoiceXML as a dialog language 12. Appendix A: Using VoiceXML as a dialog language
The IVR control package allows, but does not require, the MS to The IVR control package allows, but does not require, the MS to
support other dialog languages by referencing an external dialog support other dialog languages by referencing an external dialog
document. This appendix provides MS implementations which support document. This appendix provides MS implementations which support
skipping to change at page 137, line 34 skipping to change at page 136, line 34
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogprepare type="application/voicexml+xml" <dialogprepare type="application/voicexml+xml"
src="http://www.example.com/mydialog.vxml" src="http://www.example.com/mydialog.vxml"
fetchtimeout="15s"/> fetchtimeout="15s"/>
</mscivr> </mscivr>
The VoiceXML dialog environment uses the <dialogprepare> request as The VoiceXML dialog environment uses the <dialogprepare> request as
an opportunity to fetch and validate the initial document indicated an opportunity to fetch and validate the initial document indicated
by the src attribute along with any resources referenced in the by the src attribute along with any resources referenced in the
VoiceXML document marked as prefetchable. Note that the fetchtimeout VoiceXML document marked as prefetchable. The maxage and maxstale
attributes, if specified, control how the initial VoiceXML document
is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout
attribute is not defined in VoiceXML for an initial document but the attribute is not defined in VoiceXML for an initial document but the
MS MUST support this attribute in its VoiceXML environment. MS MUST support this attribute in its VoiceXML environment.
If a <params> child element of <dialogprepare> is specified, then the If a <params> child element of <dialogprepare> is specified, then the
MS MUST map the parameter information into a VoiceXML session MS MUST map the parameter information into a VoiceXML session
variable object as described in Section 12.2.3. variable object as described in Section 12.2.3.
The success or failure of the VoiceXML document preparation is The success or failure of the VoiceXML document preparation is
reported in the MS response. For example, if the VoiceXML document reported in the MS response. For example, if the VoiceXML document
cannot be retrieved, then a 407 error response is returned. If the cannot be retrieved, then a 409 error response is returned. If the
document is syntactically invalid according to VoiceXML, then a 400 document is syntactically invalid according to VoiceXML, then a 400
response is returned. If successful, the response includes a response is returned. If successful, the response includes a
dialogid attribute whose value the AS can use in <dialogstart> dialogid attribute whose value the AS can use in <dialogstart>
element to start the prepared dialog. element to start the prepared dialog.
12.2. Starting a VoiceXML dialog 12.2. Starting a VoiceXML dialog
A VoiceXML dialog is started by sending the MS a request containing a A VoiceXML dialog is started by sending the MS a request containing a
<dialogstart> element (Section 4.2.2). If a VoiceXML dialog has <dialogstart> element (Section 4.2.2). If a VoiceXML dialog has
already been prepared using <dialogprepare>, then the MS starts the already been prepared using <dialogprepare>, then the MS starts the
dialog indicated by the prepareddialogid attribute. Otherwise, a new dialog indicated by the prepareddialogid attribute. Otherwise, a new
VoiceXML dialog can be started by setting the type attribute to VoiceXML dialog can be started by setting the type attribute to
"application/voicexml+xml" and the src attribute to the URI of the "application/voicexml+xml" and the src attribute to the URI of the
VoiceXML document. For example: VoiceXML document. For example:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="ssd3r3~sds345b" <dialogstart connectionid="ssd3r3:sds345b"
type="application/voicexml+xml" type="application/voicexml+xml"
src="http://www.example.com/mydialog.vxml" src="http://www.example.com/mydialog.vxml"
fetchtimeout="15s"/> fetchtimeout="15s"/>
</mscivr> </mscivr>
The maxage and maxstale attributes, if specified, control how the
initial VoiceXML document is fetched using HTTP (see [RFC2616]).
Note that the fetchtimeout attribute is not defined in VoiceXML for Note that the fetchtimeout attribute is not defined in VoiceXML for
an initial document but the MS MUST support this attribute in its an initial document but the MS MUST support this attribute in its
VoiceXML environment. Note also that support for <dtmfsub> VoiceXML environment. Note also that support for <dtmfsub>
subscriptions (Section 4.2.2.1.1) and their associated dialog subscriptions (Section 4.2.2.1.1) and their associated dialog
notification events is not defined in VoiceXML. If such a notification events is not defined in VoiceXML. If such a
subscription is specified in a <dialogstart> request, then the MS subscription is specified in a <dialogstart> request, then the MS
sends a 439 error response (see Section 4.5). sends a 439 error response (see Section 4.5).
The success or failure of starting a VoiceXML dialog is reported in The success or failure of starting a VoiceXML dialog is reported in
the MS response as described in Section 4.2.2. the MS response as described in Section 4.2.2.
skipping to change at page 140, line 30 skipping to change at page 139, line 33
session.connection.protocol.sip.media for a connection, and session.connection.protocol.sip.media for a connection, and
session.conference.media for a conference. In both variables, the session.conference.media for a conference. In both variables, the
value of the variable is an array where each array element is an value of the variable is an array where each array element is an
object with the following properties: object with the following properties:
type This required property indicates the type of the media type This required property indicates the type of the media
associated with the stream (see Section 4.2.2.2 <stream> type associated with the stream (see Section 4.2.2.2 <stream> type
attribute definition) attribute definition)
direction This required property indicates the directionality of the direction This required property indicates the directionality of the
media relative to the dialog (see Section 4.2.2.2 <stream> media relative to the endpoint of the dialog (see Section 4.2.2.2
direction attribute definition). <stream> direction attribute definition).
format This property is optional. If defined, the value of the format This property is optional. If defined, the value of the
property is an array. Each array element is an object which property is an array. Each array element is an object which
specifies information about one format of the media stream. The specifies information about one format of the media stream. The
object contains at least one property called name whose value is object contains at least one property called name whose value is
the subtype of the media format ([RFC4855]). Other properties may the subtype of the media format ([RFC4855]). Other properties may
be defined with string values; these correspond to required and, be defined with string values; these correspond to required and,
if defined, optional parameters of the format. if defined, optional parameters of the format.
As a consequence of this definition, when a connectionid is specified As a consequence of this definition, when a connectionid is specified
there is an array entry in session.connection.protocol.sip.media for there is an array entry in session.connection.protocol.sip.media for
each media stream used by the VoiceXML dialog. For an example, each media stream used by the VoiceXML dialog. For an example,
consider a connection with bi-directional G.711 mu-law audio sampled consider a connection with bi-directional G.711 mu-law audio sampled
at 8kHz where the dialog is started with at 8kHz where the dialog is started with
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="ssd3r3~sds345b" <dialogstart connectionid="ssd3r3:sds345b"
type="application/voicexml+xml" type="application/voicexml+xml"
src="http://www.example.com/mydialog.vxml" src="http://www.example.com/mydialog.vxml"
fetchtimeout="15s"> fetchtimeout="15s">
<stream type="audio" direction="sendonly"/> <stream type="audio" direction="recvonly"/>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
In this case, session.connection.protocol.sip.media[0].type evaluates In this case, session.connection.protocol.sip.media[0].type evaluates
to "audio", session.connection.protocol.sip.media[0].direction to to "audio", session.connection.protocol.sip.media[0].direction to
"sendonly" (i.e. this dialog only sends media to the connection - it "recvonly" (i.e. the endpoint only receives media from the dialog -
does not receive media from the connection), and the endpoint does not send media to the dialog), and
session.connection.protocol.sip.media[0].format[0].name evaluates to session.connection.protocol.sip.media[0].format[0].name evaluates to
"audio/PCMU" and "audio/PCMU" and
session.connection.protocol.sip.media[0].format[0].rate evaluates to session.connection.protocol.sip.media[0].format[0].rate evaluates to
"8000". "8000".
Note that the session variable is updated if the connection or Note that the session variable is updated if the connection or
conference media session characteristics for the VoiceXML dialog conference media session characteristics for the VoiceXML dialog
change (e.g. due to a SIP re-INVITE). change (e.g. due to a SIP re-INVITE).
12.2.3. Session parameter information 12.2.3. Session parameter information
skipping to change at page 142, line 8 skipping to change at page 141, line 8
document order. The corresponding value for each key is an object document order. The corresponding value for each key is an object
with two required properties: a "type" property evaluating to the with two required properties: a "type" property evaluating to the
value of the type attribute; and a "content" property evaluating value of the type attribute; and a "content" property evaluating
to the content of the <param>. In addition, this object's to the content of the <param>. In addition, this object's
toString() function returns the value of the "content" property as toString() function returns the value of the "content" property as
a string. a string.
For example, a VoiceXML dialog started with one parameter: For example, a VoiceXML dialog started with one parameter:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="ssd3r3~sds345b" <dialogstart connectionid="ssd3r3:sds345b"
type="application/voicexml+xml" type="application/voicexml+xml"
src="http://www.example.com/mydialog.vxml" src="http://www.example.com/mydialog.vxml"
fetchtimeout="15s"> fetchtimeout="15s">
<params> <params>
<param name="mode">playannouncement</param> <param name="mode">playannouncement</param>
</params> </params>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
In this case, session.values would be defined with one item in the In this case, session.values would be defined with one item in the
skipping to change at page 145, line 12 skipping to change at page 144, line 12
requested, or error.unsupported.transfer.consultation if consultation requested, or error.unsupported.transfer.consultation if consultation
transfer is requested. transfer is requested.
13. References 13. References
13.1. Normative References 13.1. Normative References
[I-D.ietf-mediactrl-sip-control-framework] [I-D.ietf-mediactrl-sip-control-framework]
Boulton, C., Melanchuk, T., and S. McGlashan, "Media Boulton, C., Melanchuk, T., and S. McGlashan, "Media
Control Channel Framework", Control Channel Framework",
draft-ietf-mediactrl-sip-control-framework-10 (work in draft-ietf-mediactrl-sip-control-framework-11 (work in
progress), February 2009. progress), October 2009.
[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.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media
Types", RFC 3023, January 2001. Types", RFC 3023, January 2001.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
January 2004. January 2004.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005. RFC 3986, January 2005.
[RFC4574] Levin, O. and G. Camarillo, "The Session Description [RFC4574] Levin, O. and G. Camarillo, "The Session Description
Protocol (SDP) Label Attribute", RFC 4574, August 2006. Protocol (SDP) Label Attribute", RFC 4574, August 2006.
[RFC4646] Phillips, A. and M. Davis, "Tags for Identifying [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying
Languages", BCP 47, RFC 4646, September 2006. Languages", RFC 4646, September 2006.
[RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags",
BCP 47, RFC 4647, September 2006. BCP 47, RFC 4647, September 2006.
[SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar
Specification Version 1.0", W3C Recommendation, Specification Version 1.0", W3C Recommendation,
March 2004. March 2004.
[W3C.REC-SMIL2-20051213] [W3C.REC-SMIL2-20051213]
Grassel, G., Jansen, J., Zucker, D., Bulterman, D., Bulterman, D., Michel, T., Zucker, D., Jansen, J.,
Layaida, N., Michel, T., Mullender, S., and A. Koivisto, Layaida, N., Mullender, S., Grassel, G., and A. Koivisto,
"Synchronized Multimedia Integration Language (SMIL 2.1)", "Synchronized Multimedia Integration Language (SMIL 2.1)",
World Wide Web Consortium Recommendation REC-SMIL2- World Wide Web Consortium Recommendation REC-SMIL2-
20051213, December 2005, 20051213, December 2005,
<http://www.w3.org/TR/2005/REC-SMIL2-20051213>. <http://www.w3.org/TR/2005/REC-SMIL2-20051213>.
[XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E.,
and F. Yergeau, "Extensible Markup Language (XML) 1.0 and F. Yergeau, "Extensible Markup Language (XML) 1.0
(Third Edition)", W3C Recommendation, February 2004. (Third Edition)", W3C Recommendation, February 2004.
[XMLSchema:Part2] [XMLSchema:Part2]
skipping to change at page 146, line 18 skipping to change at page 145, line 22
13.2. Informative References 13.2. Informative References
[CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version
1.0", W3C Working Draft (work in progress), January 2007. 1.0", W3C Working Draft (work in progress), January 2007.
[H.248.9] "Gateway control protocol: Advanced media server [H.248.9] "Gateway control protocol: Advanced media server
packages", ITU-T Recommendation H.248.9. packages", ITU-T Recommendation H.248.9.
[I-D.ietf-xcon-common-data-model] [I-D.ietf-xcon-common-data-model]
Novo, O., Camarillo, G., Morgan, D., Even, R., and J. Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen,
Urpalainen, "Conference Information Data Model for "Conference Information Data Model for Centralized
Centralized Conferencing (XCON)", Conferencing (XCON)", draft-ietf-xcon-common-data-model-14
draft-ietf-xcon-common-data-model-12 (work in progress), (work in progress), November 2009.
October 2008.
[IANA] "IANA registry for RTP Payload Types", [IANA] "IANA registry for RTP Payload Types",
<http://www.iana.org/assignments/rtp-parameters>. <http://www.iana.org/assignments/rtp-parameters>.
[MIME.mediatypes] [MIME.mediatypes]
"IANA registry for MIME Media Types", "IANA registry for MIME Media Types",
<http://www.iana.org/assignments/media-types/>. <http://www.iana.org/assignments/media-types/>.
[MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session
Markup Language (MSML)", draft-saleem-msml-08 (work in Markup Language (MSML)", draft-saleem-msml-09 (work in
progress), February 2009. progress), July 2009.
[RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio
Package", RFC 2897, August 2000. Package", RFC 2897, August 2000.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002. June 2002.
[RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network
skipping to change at page 148, line 9 skipping to change at page 147, line 9
[VXML30] McGlashan, S., Auburn, RJ., Baggia, P., Barnett, J., [VXML30] McGlashan, S., Auburn, RJ., Baggia, P., Barnett, J.,
Bodell, M., Burnett, D., Carter, J., Oshry, M., Rehor, K., Bodell, M., Burnett, D., Carter, J., Oshry, M., Rehor, K.,
Young, M., and R. Hosn, "Voice Extensible Markup Language Young, M., and R. Hosn, "Voice Extensible Markup Language
(VoiceXML) Version 3.0", W3C Working Draft, December 2008. (VoiceXML) Version 3.0", W3C Working Draft, December 2008.
Authors' Addresses Authors' Addresses
Scott McGlashan Scott McGlashan
Hewlett-Packard Hewlett-Packard
Gustav III:s boulevard 36
SE-16985 Stockholm, Sweden
Email: scott.mcglashan@hp.com Email: smcg.stds01@mcglashan.org
Tim Melanchuk Tim Melanchuk
Rain Willow Communications Rain Willow Communications
Email: tim.melanchuk@gmail.com Email: tim.melanchuk@gmail.com
Chris Boulton Chris Boulton
NS-Technologies NS-Technologies
Email: chris@ns-technologies.com Email: chris@ns-technologies.com
 End of changes. 94 change blocks. 
297 lines changed or deleted 370 lines changed or added

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