idnits 2.17.00 (12 Aug 2021) /tmp/idnits17606/draft-ietf-mediactrl-ivr-control-package-09.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 28 instances of lines with non-RFC2606-compliant FQDNs in the document. == There are 33 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 1804 has weird spacing: '... mdy indica...' == Line 1807 has weird spacing: '... ymd indica...' == Line 1810 has weird spacing: '... dym indica...' == Line 1874 has weird spacing: '... gen indica...' == Line 1878 has weird spacing: '... crn indica...' == (1 more instance...) == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document seems to contain a disclaimer for pre-RFC5378 work, and may have content which was first submitted before 10 November 2008. The disclaimer is necessary when there are original authors that you have been unable to contact, or if some do not wish to grant the BCP78 rights to the IETF Trust. If you are able to get all authors (current and original) to grant those rights, you can and should remove the disclaimer; otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (November 11, 2010) is 4208 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: '0-9' is mentioned on line 4770, but not defined == Missing Reference: 'RFCXXXX' is mentioned on line 5557, but not defined -- Looks like a reference, but probably isn't: '0' on line 5779 == Missing Reference: 'IVR-200' is mentioned on line 6366, but not defined == Missing Reference: 'IVR-201' is mentioned on line 6384, but not defined == Missing Reference: 'IVR01' is mentioned on line 6463, but not defined == Missing Reference: 'IVR23' is mentioned on line 6466, but not defined == Missing Reference: 'IVR15' is mentioned on line 6475, but not defined == Missing Reference: 'IVR06' is mentioned on line 6478, but not defined == Missing Reference: 'IVR05' is mentioned on line 6488, but not defined == Missing Reference: 'IVR21' is mentioned on line 6497, but not defined == Missing Reference: 'IVR16' is mentioned on line 6507, but not defined == Missing Reference: 'IVR18' is mentioned on line 6512, but not defined == Missing Reference: 'IVR19' is mentioned on line 6515, but not defined == Missing Reference: 'IVR02' is mentioned on line 6519, but not defined == Missing Reference: 'IVR20' is mentioned on line 6522, but not defined == Missing Reference: 'IVR22' is mentioned on line 6528, but not defined == Missing Reference: 'IVR04' is mentioned on line 6531, but not defined == Missing Reference: 'IVR08' is mentioned on line 6534, but not defined == Missing Reference: 'IVR11' is mentioned on line 6538, but not defined == Outdated reference: draft-ietf-mediactrl-sip-control-framework has been published as RFC 6230 ** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) ** Downref: Normative reference to an Informational RFC: RFC 2818 ** Obsolete normative reference: RFC 3023 (Obsoleted by RFC 7303) ** Obsolete normative reference: RFC 4288 (Obsoleted by RFC 6838) ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) -- Possible downref: Non-RFC (?) normative reference: ref. 'SRGS' -- Possible downref: Non-RFC (?) normative reference: ref. 'VXML20' -- Possible downref: Non-RFC (?) normative reference: ref. 'VXML21' -- Possible downref: Non-RFC (?) normative reference: ref. 'XML' == Outdated reference: draft-ietf-mediactrl-mixer-control-package has been published as RFC 6505 == Outdated reference: draft-ietf-xcon-common-data-model has been published as RFC 6501 -- Obsolete informational reference (is this intentional?): RFC 4244 (Obsoleted by RFC 7044) -- Obsolete informational reference (is this intentional?): RFC 4281 (Obsoleted by RFC 6381) -- Obsolete informational reference (is this intentional?): RFC 4627 (Obsoleted by RFC 7158, RFC 7159) Summary: 5 errors (**), 0 flaws (~~), 32 warnings (==), 11 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group S. McGlashan 3 Internet-Draft Hewlett-Packard 4 Intended status: Standards Track T. Melanchuk 5 Expires: May 15, 2011 Rain Willow Communications 6 C. Boulton 7 NS-Technologies 8 November 11, 2010 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-09 14 Abstract 16 This document defines a Media Control Channel Framework Package for 17 Interactive Voice Response (IVR) dialog interaction on media 18 connections and conferences. The package defines dialog management 19 request elements for preparing, starting and terminating dialog 20 interactions, as well as associated responses and notifications. 21 Dialog interactions are specified in a dialog language. This package 22 defines a lightweight IVR dialog language (supporting prompt 23 playback, runtime controls, Dual-Tone Multi-Frequency (DTMF) 24 collection and media recording) and allows other dialog languages to 25 be used. The package also defines elements for auditing package 26 capabilities and IVR dialogs. 28 Status of this Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at http://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on May 15, 2011. 45 Copyright Notice 47 Copyright (c) 2010 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 This document may contain material from IETF Documents or IETF 61 Contributions published or made publicly available before November 62 10, 2008. The person(s) controlling the copyright in some of this 63 material may not have granted the IETF Trust the right to allow 64 modifications of such material outside the IETF Standards Process. 65 Without obtaining an adequate license from the person(s) controlling 66 the copyright in such materials, this document may not be modified 67 outside the IETF Standards Process, and derivative works of it may 68 not be created outside the IETF Standards Process, except to format 69 it for publication as an RFC or to translate it into languages other 70 than English. 72 Table of Contents 74 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6 75 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 10 76 3. Control Package Definition . . . . . . . . . . . . . . . . . 11 77 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 11 78 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 11 79 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 12 80 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 12 81 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 12 82 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 13 83 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 13 84 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 14 85 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 15 86 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 16 87 4.2.1. . . . . . . . . . . . . . . . . . . . 19 88 4.2.2. . . . . . . . . . . . . . . . . . . . . 22 89 4.2.2.1. . . . . . . . . . . . . . . . . . . . 25 90 4.2.2.1.1. . . . . . . . . . . . . . . . . . . 26 91 4.2.2.2. . . . . . . . . . . . . . . . . . . . . 27 92 4.2.2.2.1. . . . . . . . . . . . . . . . . . . 28 93 4.2.2.2.2. . . . . . . . . . . . . . . . . . 28 94 4.2.3. . . . . . . . . . . . . . . . . . . 29 95 4.2.4. . . . . . . . . . . . . . . . . . . . . . 30 96 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 31 97 4.2.5.1. . . . . . . . . . . . . . . . . . . 31 98 4.2.5.2. . . . . . . . . . . . . . . . . . . 33 99 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 33 100 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 34 101 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 35 102 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 36 103 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 39 104 4.3.1.1.1. . . . . . . . . . . . . . . . . . 40 105 4.3.1.1.1.1. Date type . . . . . . . . . . . . . . . . 41 106 4.3.1.1.1.2. Time type . . . . . . . . . . . . . . . . 42 107 4.3.1.1.1.3. Digits type . . . . . . . . . . . . . . . 43 108 4.3.1.1.2. . . . . . . . . . . . . . . . . . . . 43 109 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . . 44 110 4.3.1.1.3.1. . . . . . . . . . . . . . . . . . . 46 111 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 47 112 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 50 113 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 53 114 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 54 115 4.3.1.5. . . . . . . . . . . . . . . . . . . . . . 58 116 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 60 117 4.3.2.1. . . . . . . . . . . . . . . . . . . 60 118 4.3.2.2. . . . . . . . . . . . . . . . . . . 60 119 4.3.2.2.1. . . . . . . . . . . . . . . . 60 121 4.3.2.3. . . . . . . . . . . . . . . . . . . 60 122 4.3.2.4. . . . . . . . . . . . . . . . . . . 61 123 4.3.2.4.1. . . . . . . . . . . . . . . . . . 61 124 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 62 125 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 62 126 4.4.2. . . . . . . . . . . . . . . . . . . . 64 127 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 65 128 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 66 129 4.4.2.2. . . . . . . . . . . . . . . . . . 67 130 4.4.2.2.1. . . . . . . . . . . . . . . 68 131 4.4.2.2.2. . . . . . . . . . . . . . . . 69 132 4.4.2.2.3. . . . . . . . . . . . . . . . . 69 133 4.4.2.2.4. . . . . . . . . . . . . . . . . 69 134 4.4.2.2.5. . . . . . . . . . . . . . . . . . 70 135 4.4.2.2.5.1. . . . . . . . . . . . . . 70 136 4.4.2.2.6. . . . . . . . . . . . . 71 137 4.4.2.2.7. . . . . . . . . . . . . . 71 138 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 71 139 4.4.2.3.1. . . . . . . . . . . . . . . . . 71 140 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 72 141 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 78 142 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 81 143 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 108 144 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 108 145 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 108 146 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 109 147 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 109 148 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 110 149 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 111 150 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 111 151 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 112 152 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 114 153 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 115 154 6.2.5. Subscriptions and notifications . . . . . . . . . . . 116 155 6.2.6. Dialog repetition until DTMF collection complete . . 116 156 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 117 157 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 118 158 7. Security Considerations . . . . . . . . . . . . . . . . . . . 120 159 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 123 160 8.1. Control Package Registration . . . . . . . . . . . . . . 123 161 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 123 162 8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 124 163 8.4. MIME Media Type Registration for 164 'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 124 165 8.5. IVR Prompt Variable Type Registration Information . . . . 125 166 9. Using VoiceXML as a dialog language . . . . . . . . . . . . . 127 167 10. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 135 168 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 151 169 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 152 170 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 153 171 13.1. Normative References . . . . . . . . . . . . . . . . . . 153 172 13.2. Informative References . . . . . . . . . . . . . . . . . 154 173 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 157 175 1. Introduction 177 The Media Control Channel Framework 178 ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic 179 approach for establishment and reporting capabilities of remotely 180 initiated commands. The Channel Framework - an equivalent term for 181 the Media Control Channel Framework - utilizes many functions 182 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 183 rendezvous and establishment of a reliable channel for control 184 interactions. The Control Framework also introduces the concept of a 185 Control Package. A Control Package is an explicit usage of the 186 Control Framework for a particular interaction set. This document 187 defines a Control Package for Interactive Voice Response (IVR) 188 dialogs on media connections and conferences. The term 'dialog' in 189 this document refers to an IVR dialog and is completely unrelated to 190 the notion of a SIP dialog. The term 'IVR' is used in its inclusive 191 sense, allowing media other than voice for dialog interaction. 193 The package defines dialog management request elements for preparing, 194 starting and terminating dialog interactions, as well as associated 195 responses and notifications. Dialog interactions are specified using 196 a dialog language where the language specifies a well-defined syntax 197 and semantics for permitted operations (play a prompt, record input 198 from the user, etc). This package defines a lightweight IVR dialog 199 language (supporting prompt playback, runtime controls, DTMF 200 collection and media recording) and allows other dialog languages to 201 be used. These dialog languages are specified inside dialog 202 management elements for preparing and starting dialog interactions. 203 The package also defines elements for auditing package capabilities 204 and IVR dialogs. 206 This package has been designed to satisfy IVR requirements documented 207 in the Media Server Control Protocol Requirements document 208 ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. 209 It achieves this by building upon two major approaches to IVR dialog 210 design. These approaches address a wide range of IVR use cases and 211 are used in many applications which are extensively deployed today. 213 First, the package is designed to provide the major IVR functionality 214 of SIP Media Server languages such as netann ([RFC4240]), MSCML 215 ([RFC5022]) and MSML ([RFC5707]) which themselves build upon more 216 traditional non-SIP languages ([H.248.9], [RFC2897]). A key 217 differentiator is that this package provides IVR functionality using 218 the Channel Framework. 220 Second, its design is aligned with key concepts of the web model as 221 defined in W3C Voice Browser languages. The key dialog management 222 mechanism is closely aligned with CCXML ([CCXML10]). The dialog 223 functionality defined in this package can be largely seen as a subset 224 of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, 225 DTMF collection and media recording features are incorporated, but 226 not any advanced VoiceXML constructs (such as
, its 227 interpretation algorithm, or a dynamic data model). As W3C develops 228 VoiceXML 3.0 ([VXML30]), we expect to see further alignment, 229 especially in providing a set of basic independent primitive elements 230 (such as prompt, collect, record and runtime controls) which can be 231 re-used in different dialog languages. 233 By reusing and building upon design patterns from these approaches to 234 IVR languages, this package is intended to provide a foundation which 235 is familiar to current IVR developers and sufficient for most IVR 236 applications, as well as a path to other languages which address more 237 advanced applications. 239 This control package defines a lightweight IVR dialog language. The 240 scope of this dialog language is the following IVR functionality: 242 o playing one or more media resources as a prompt to the user 244 o runtime controls (including VCR controls like speed and volume) 246 o collecting DTMF input from the user according to a grammar 248 o recording user media input 250 Out of scope for this dialog language are more advanced functions 251 including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), 252 fax, automatic prompt recovery ('media fallback') and media 253 transformation. Such functionality can be addressed by other dialog 254 languages (such as VoiceXML) used with this package, extensions to 255 this package (addition of foreign elements or attributes from another 256 namespace) or other control packages. 258 The functionality of this package is defined by messages, containing 259 XML [XML] elements, transported using the Media Control Channel 260 Framework. The XML elements can be divided into three types: dialog 261 management elements; a dialog element which defines a lightweight IVR 262 dialog language used with dialog management elements; and finally, 263 elements for auditing package capabilities as well as dialogs managed 264 by the package. 266 Dialog management elements are designed to manage the general 267 lifecycle of a dialog. Elements are provided for preparing a dialog, 268 starting the dialog on a conference or connection, and terminating 269 execution of a dialog. Each of these elements is contained in a 270 Media Control Channel Framework CONTROL message sent to the media 271 server. When the appropriate action has been executed, the media 272 server sends a REPORT message (or a 200 response to the CONTROL if it 273 can execute in time) with a response element indicating whether the 274 operation was successful or not (e.g. if the dialog cannot be 275 started, then the error is reported in this response). Once a dialog 276 has been successfully started, the media server can send further 277 event notifications in a framework CONTROL message. This package 278 defines two event notifications: a DTMF event indicating the DTMF 279 activity; and a dialogexit event indicating that the dialog has 280 exited. If the dialog has executed successfully, the dialogexit 281 event includes information collected during the dialog. If an error 282 occurs during execution (e.g. a media resource failed to play, no 283 recording resource available, etc), then error information is 284 reported in the dialogexit event. Once a dialogexit event is sent, 285 the dialog lifecycle is terminated. 287 The dialog management elements for preparing and starting a dialog 288 specify the dialog using a dialog language. A dialog language has 289 well-defined syntax and semantics for defined dialog operations. 290 Typically dialog languages are written in XML where the root element 291 has a designated XML namespace and, when used as standalone 292 documents, have an associated MIME media type. For example, VoiceXML 293 is an XML dialog language with the root element with the 294 designated namespace 'http://www.w3.org/2001/vxml' and standalone 295 documents are associated with the MIME media type 'application/ 296 voicexml+xml' ([RFC4267]). 298 This control package defines its own lightweight IVR dialog language. 299 The language has a root element () with the same designated 300 namespace as used for other elements defined in this package (see 301 Section 8.2). The root element contains child elements for playing 302 prompts to the user, specifying runtime controls, collecting DTMF 303 input from the user and recording media input from the user. The 304 child elements can co-occur so as to provide 'play announcement', 305 'prompt and collect' as well as 'prompt and record' functionality. 307 The dialog management elements for preparing and starting a dialog 308 can specify the dialog language either by including inline a fragment 309 with the root element or by referencing an external dialog document. 310 The dialog language defined in this package is specified inline. 311 Other dialog languages, such as VoiceXML, can be used by referencing 312 an external dialog document. 314 The document is organized as follows. Section 3 describes how this 315 control package fulfills the requirements for a Media Control Channel 316 Framework control package. Section 4 describes the syntax and 317 semantics of defined elements, including dialog management 318 (Section 4.2), the IVR dialog element (Section 4.3) and audit 319 elements (Section 4.4). Section 5 describes an XML schema for these 320 elements and provides extensibility by allowing attributes and 321 elements from other namespaces. Section 6 provides examples of 322 package usage. Section 7 describes important security considerations 323 for use of this control package. Section 8 provides information on 324 IANA registration of this control package, including its name, XML 325 namespace and MIME media type. It also establishes a registry for 326 prompt variables. Finally, Section 9 provides additional information 327 on using VoiceXML when supported as an external dialog language. 329 2. Conventions and Terminology 331 In this document, BCP 14 [RFC2119] defines the key words "MUST", 332 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 333 "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In 334 addition, BCP 15 indicates requirement levels for compliant 335 implementations. 337 The following additional terms are defined for use in this document: 339 Dialog: A dialog performs media interaction with a user following 340 the concept of an IVR (Interactive Voice Response) dialog (this 341 sense of 'dialog' is completely unrelated to a SIP dialog). A 342 dialog is specified as inline XML, or via a URI reference to an 343 external dialog document. Traditional IVR dialogs typically 344 feature capabilities such as playing audio prompts, collecting 345 DTMF input and recording audio input from the user. More 346 inclusive definitions include support for other media types, 347 runtime controls, synthesized speech, recording and playback of 348 video, recognition of spoken input, and mixed initiative 349 conversations. 351 Application server: A SIP [RFC3261] application server (AS) hosts 352 and executes services such as interactive media and conferencing 353 in an operator's network. An AS influences and impacts the SIP 354 session, in particular by terminating SIP sessions on a media 355 server, which is under its control. 357 Media Server: A media server (MS) processes media streams on behalf 358 of an AS by offering functionality such as interactive media, 359 conferencing, and transcoding to the end user. Interactive media 360 functionality is realized by way of dialogs which are initiated by 361 the application server. 363 3. Control Package Definition 365 This section fulfills the mandatory requirement for information that 366 MUST be specified during the definition of a Control Framework 367 Package, as detailed in Section 8 of 368 [I-D.ietf-mediactrl-sip-control-framework]. 370 3.1. Control Package Name 372 The Control Framework requires a Control Package to specify and 373 register a unique name. 375 The name of this Control Package is "msc-ivr/1.0" (Media Server 376 Control - Interactive Voice Response - version 1.0). Its IANA 377 registration is specified in Section 8.1. 379 Since this is the initial ("1.0") version of the control package, 380 there are no backwards compatibility issues to address. 382 3.2. Framework Message Usage 384 The Control Framework requires a Control Package to explicitly detail 385 the control messages that can be used as well as provide an 386 indication of directionality between entities. This will include 387 which role type is allowed to initiate a request type. 389 This package specifies CONTROL and response messages in terms of XML 390 elements defined in Section 4, where the message bodies have the MIME 391 media type defined in Section 8.4. These elements describe requests, 392 response and notifications and all are contained within a root 393 element (Section 4.1). 395 In this package, the MS operates as a Control Server in receiving 396 requests from, and sending responses to, the AS (operating as Control 397 Client). Dialog management requests and responses are defined in 398 Section 4.2. Audit requests and responses are defined in 399 Section 4.4. dialog management and audit responses are carried in a 400 framework 200 response or REPORT message bodies. This package's 401 response codes are defined in Section 4.5. 403 Note that package responses are different from framework response 404 codes. Framework error response codes (see Section 8 of 405 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 406 or event notification is invalid; for example, a request is invalid 407 XML (400), or not understood (500). 409 The MS also operates as a Control Client in sending event 410 notification to the AS (Control Server). Event notifications 411 (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST 412 respond with a Control Framework 200 response. 414 3.3. Common XML Support 416 The Control Framework requires a Control Package definition to 417 specify if the attributes for media dialog or conference references 418 are required. 420 This package requires that the XML Schema in Section 16.1 of 421 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 422 media dialogs and conferences. 424 The package uses "connectionid" and "conferenceid" attributes for 425 various element definitions (Section 4). The XML schema (Section 5) 426 imports the definitions of these attributes from the framework 427 schema. 429 3.4. CONTROL Message Body 431 The Control Framework requires a Control Package to define the 432 control body that can be contained within a CONTROL command request 433 and to indicate the location of detailed syntax definitions and 434 semantics for the appropriate body types. 436 When operating as Control Server, the MS receives CONTROL messages 437 body with the MIME media type defined in Section 8.4 and containing 438 an element (Section 4.1) with either a dialog management or 439 audit request child element. 441 The following dialog management request elements are carried in 442 CONTROL message bodies to MS: (Section 4.2.1), 443 (Section 4.2.2) and 444 (Section 4.2.3)elements. 446 The request element (Section 4.4.1) is also carried in 447 CONTROL message bodies. 449 When operating as Control Client, the MS sends CONTROL messages with 450 the MIME media type defined in Section 8.4 and a body containing an 451 element (Section 4.1) with a notification child 452 element (Section 4.2.5). 454 3.5. REPORT Message Body 456 The Control Framework requires a control package definition to define 457 the REPORT body that can be contained within a REPORT command 458 request, or that no report package body is required. This section 459 indicates the location of detailed syntax definitions and semantics 460 for the appropriate body types. 462 When operating as Control Server, the MS sends REPORT bodies with the 463 MIME media type defined in Section 8.4 and containing a 464 element (Section 4.1) with a response child element. The response 465 element for dialog management requests is a element 466 (Section 4.2.4). The response element for an audit request is a 467 element (Section 4.4.2). 469 3.6. Audit 471 The Control Framework encourages Control Packages to specify whether 472 auditing is available, how it is triggered as well as the query/ 473 response formats. 475 This Control Packages supports auditing of package capabilities and 476 dialogs on the MS. An audit request is carried in a CONTROL message 477 (see Section 3.4) and an audit response in a REPORT message (or a 200 478 response to the CONTROL if it can execute the audit in time) (see 479 Section 3.5). 481 The syntax and semantics of audit request and response elements is 482 defined in Section 4.4. 484 3.7. Examples 486 The Control Framework recommends Control Packages to provide a range 487 of message flows that represent common flows using the package and 488 this framework document. 490 This Control Package provides examples of such message flows in 491 Section 6. 493 4. Element Definitions 495 This section defines the XML elements for this package. The elements 496 are defined in the XML namespace specified in Section 8.2. 498 The root element is (Section 4.1). All other XML elements 499 (requests, responses and notification elements) are contained within 500 it. Child elements describe dialog management (Section 4.2) and 501 audit (Section 4.4) functionality. The IVR dialog element (contained 502 within dialog management elements) is defined in Section 4.3. 503 Response status codes are defined in Section 4.5 and type definitions 504 in Section 4.6. 506 Implementation of this control package MUST address the Security 507 Considerations described in Section 7. 509 Implementation of this control package MUST adhere to the syntax and 510 semantics of XML elements defined in this section and the schema 511 (Section 5). Since XML Schema is unable to support some types of 512 syntactic constraints (such as attribute and element co-occurrence), 513 some elements in this package specify additional syntactic 514 constraints in their textual definition. If there is a difference in 515 constraints between the XML schema and the textual description of 516 elements in this section, the textual definition takes priority. 518 The XML schema supports extensibility by allowing attributes and 519 elements from other namespaces. Implementations MAY support 520 additional capabilities by means of attributes and elements from 521 other (foreign) namespaces. Attributes and elements from foreign 522 namespaces are not described in this section. 524 Some elements in this control package contain attributes whose value 525 is a URI. These elements include: (Section 4.2.1), 526 (Section 4.2.2), (Section 4.3.1.5), 527 (Section 4.3.1.3.1), and (Section 4.3.1.4). The MS MUST 528 support both HTTP ([RFC2616]) and HTTPS ([RFC2818]) protocol schemes 529 for fetching and uploading resources and the MS MAY support other 530 schemes. 532 Some elements in this control package contain attributes whose value 533 is descriptive text. Since the descriptive text is for diagnostic 534 use only, and is neither a protocol element nor intended for user 535 display, the descriptive text does not require a language indicator 536 such as a language tag ([RFC2277]) and thus does not carry one. 537 These comprise: the reason attribute on (Section 4.2.4), 538 (Section 4.2.5.1) and (Section 4.4.2); 539 desc attribute on and (Section 4.4.2.2.5.1). 541 Usage examples are provided in Section 6. 543 4.1. 545 The element has the following attributes (in addition to 546 standard XML namespace attributes such as xmlns): 548 version: a string specifying the mscivr package version. The value 549 is fixed as '1.0' for this version of the package. The attribute 550 is mandatory. 552 The element has the following defined child elements, only 553 one of which can occur: 555 1. dialog management elements defined in Section 4.2: 557 prepare a dialog. See Section 4.2.1 559 start a dialog. See Section 4.2.2 561 terminate a dialog. See Section 4.2.3 563 response to a dialog request. See Section 4.2.4 565 dialog or subscription notification. See Section 4.2.5 567 2. audit elements defined in Section 4.4: 569 audit package capabilities and managed dialogs. See 570 Section 4.4.1 572 response to an audit request. See Section 4.4.2 574 For example, a request to the MS to start an IVR dialog playing a 575 prompt: 577 578 579 580 581 582 583 584 585 587 and a response from the MS that the dialog started successfully: 589 590 591 593 and finally a notification from the MS indicating that the dialog 594 exited upon completion of playing the prompt: 596 597 598 599 600 601 602 604 4.2. Dialog Management Elements 606 This section defines the dialog management XML elements for this 607 control package. These elements are divided into requests, responses 608 and notifications. 610 Request elements are sent to the MS to request a specific dialog 611 operation to be executed. The following request elements are 612 defined: 614 : prepare a dialog for later execution 616 : start a (prepared) dialog on a connection or 617 conference 619 : terminate a dialog 621 Responses from the MS describe the status of the requested operation. 622 Responses are specified in a element (Section 4.2.4) which 623 includes a mandatory attribute describing the status in terms of a 624 numeric code. Response status codes are defined in Section 4.5. The 625 MS MUST respond to a request message with a response message. If the 626 MS is not able to process the request and carry out the dialog 627 operation, the request has failed and the MS MUST indicate the class 628 of failure using an appropriate 4xx response code. Unless an error 629 response code is specified for a class of error within this section, 630 implementations follow Section 4.5 in determining the appropriate 631 status code for the response. 633 Notifications are sent from the MS to provide updates on the status 634 of a dialog or operations defined within the dialog. Notifications 635 are specified in an element (Section 4.2.5). 637 +---------+ 638 | IDLE | 639 +---------+ 640 | | 641 | | 642 /| |/ 643 | | 644 +---------+ | | +---------+ 645 +-----<--| |<--------+ +------------>| |+------>-+ 646 | +-<----|PREPARING| |STARTING | | 647 | | | | ----------->| |---->--+ | 648 | | +---------+ / +---------+ | | 649 | | | / | | | 650 | | |/200 response / /200 response| | | 651 | | | / | | | 652 | | | / | | | 653 | | | / | | | 654 V V v // v | | 655 | | +---------+ / +---------+ | | 656 | | | |--------+ +----| | | | 657 | | |PREPARED |---------+ | | STARTED | | | 658 | | | | | +--->| | | | 659 | | | |--------+| /| | | | 660 | | +---------+ || 200 response +---------+ | | 661 | | || | | | 662 | | /dialogexit notification|| | | | 663 | | (timeout) || | | | 664 | | || | | | 665 | | || | | | 666 | | || | | | 667 | | ||/ | | | 668 | | || 200 response | | | 669 | | || + |/dialogexit | | 670 | | || /dialogexit | notification | | 671 | | || notification | | | 672 | | || | | | 673 | | vv | | | 674 | | /ERROR response +-----------+ | | | 675 | +---------------------->| |<----------+ /ERROR response| | 676 +------------------------>|TERMINATED |<---------------------------+ | 677 / | |<-----------------------------+ 678 410 response +-----------+ /410 response 680 Figure 1: Dialog Lifecycle 682 The MS implementation MUST adhere to the dialog lifecycle shown in 683 Figure 1, where each dialog has the following states: 685 IDLE: the dialog is uninitialized. 687 PREPARING: the dialog is being prepared. The dialog is assigned a 688 valid dialog identifier (see below). If an error occurs the 689 dialog transitions to the TERMINATED state and the MS MUST send a 690 response indicating the error. If the dialog is terminated before 691 preparation is complete, the dialog transitions to the TERMINATED 692 state and the MS MUST send a 410 response (Section 4.5) for the 693 prepare request. 695 PREPARED: the dialog has been successfully prepared and the MS MUST 696 send a 200 response indicating the prepare operation was 697 successful. If the dialog is terminated, then the MS MUST send a 698 200 response, the dialog transitions to the TERMINATED state and 699 the MS MUST send a dialogexit notification event (see 700 Section 4.2.5.1). If the duration the dialog remains in the 701 PREPARED state exceeds the maximum preparation duration, the 702 dialog transitions to the TERMINATED state and the MS MUST send a 703 dialogexit notification with the appropriate error status code 704 (see Section 4.2.5.1). A maximum preparation duration of 300s is 705 RECOMMENDED. 707 STARTING: the dialog is being started. If the dialog has not 708 already been prepared, it is first prepared and assigned a valid 709 dialog identifier (see below). If an error occurs the dialog 710 transitions to the TERMINATED state and the MS MUST send a 711 response indicating the error. If the dialog is terminated, the 712 dialog transitions to the TERMINATED state and the MS MUST send a 713 410 response (Section 4.5) for the start request. 715 STARTED: the dialog has been successfully started and is now active. 716 The MS MUST send a 200 response indicating the start operation was 717 successful. If any dialog events occurs which were subscribed to, 718 the MS MUST send a notifications when the dialog event occurs. 719 When the dialog exits (due to normal termination, an error or a 720 terminate request), the MS MUST send a dialogexit notification 721 event (see Section 4.2.5.1) and the dialog transitions to the 722 TERMINATED state. 724 TERMINATED: the dialog is terminated and its dialog identifier is no 725 longer valid. Dialog notifications MUST NOT be sent for this 726 dialog. 728 Each dialog has a valid identifier until it transitions to a 729 TERMINATED state. The dialog identifier is assigned by the MS unless 730 the or request already specifies a 731 identifier (dialogid) which is not associated with any other dialog 732 on the MS. Once a dialog is in a TERMINATED state, its dialog 733 identifier is no longer valid and can be reused for another dialog. 735 The identifier is used to reference the dialog in subsequent 736 requests, responses and notifications. In a request, 737 the dialog identifier can be specified in the prepareddialogid 738 attribute indicating the prepared dialog to start. In 739 and requests, the dialog identifier is 740 specified in the dialogid attribute, indicating which dialog is to be 741 terminated or audited respectively. If these requests specify a 742 dialog identifier already associated with another dialog on the MS, 743 the MS sends a response with a 405 status code (see Section 4.5) and 744 the same dialogid as in the request. The MS MUST specify a dialog 745 identifier in notifications associated with the dialog. The MS MUST 746 specify a dialog identifier in responses unless it is a response to a 747 syntactically invalid request. 749 For a given dialog, the or request 750 elements specify the dialog content to execute either by including 751 inline a element (the dialog language defined in this 752 package, see Section 4.3) or by referencing an external dialog 753 document (a dialog language defined outside this package). When 754 referencing an external dialog document, the request element contains 755 a URI reference to the remote document (specifying the dialog 756 definition) and, optionally, a type attribute indicating the MIME 757 media type associated with the dialog document. Consequently, the 758 dialog language associated with a dialog on the MS is identified 759 either inline by a child element or by a src attribute 760 referencing a document containing the dialog language. The MS MUST 761 support inline the IVR dialog language defined in Section 4.3. The 762 MS MAY support other dialog languages by reference. 764 4.2.1. 766 The request is sent to the MS to request preparation 767 of a dialog. Dialog preparation consists of (a) retrieving an 768 external dialog document and/or external resources referenced within 769 an inline element, and (b) validating the dialog document 770 syntactically and semantically. 772 A prepared dialog is executed when the MS receives a 773 request referencing the prepared dialog identifier (see 774 Section 4.2.2). 776 The element has the following attributes: 778 src: specifies the location of an external dialog document to 779 prepare. A valid value is a URI (see Section 4.6.9). The MS MUST 780 support both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and 781 the MS MAY support other schemes. If the URI scheme is 782 unsupported, the MS sends a with a 420 status code 783 (Section 4.5). If the document cannot be retrieved within the 784 timeout interval, the MS sends a with a 409 status 785 code. If the document contains a type of dialog language which 786 the MS does not supported, the MS sends a with a 421 787 status code. The attribute is optional. There is no default 788 value. 790 type: specifies the type of the external dialog document indicated 791 in the 'src' attribute. A valid value is a MIME media type (see 792 Section 4.6.10). If the URI scheme used in the src attribute 793 defines a mechanism for establishing the authoratitive MIME media 794 type of the media resource, the value returned by that mechanism 795 takes precedence over this attribute. The attribute is optional. 796 There is no default value. 798 maxage: Used to set the max-age value of the Cache-Control header in 799 conjunction with an external dialog document fetched using HTTP, 800 as per [RFC2616]. A valid value is a non-negative integer (see 801 Section 4.6.4). The attribute is optional. There is no default 802 value. 804 maxstale: Used to set the max-stale value of the Cache-Control 805 header in conjunction with an external dialog document fetched 806 using HTTP, as per [RFC2616]. A valid value is a non-negative 807 integer (see Section 4.6.4). The attribute is optional. There is 808 no default value. 810 fetchtimeout: the maximum timeout interval to wait when fetching an 811 external dialog document. A valid value is a Time Designation 812 (see Section 4.6.7). The attribute is optional. The default 813 value is 30s. 815 dialogid: string indicating a unique name for the dialog. If a 816 dialog with the same name already exists on the MS, the MS sends a 817 with a 405 status code (Section 4.5). If this 818 attribute is not specified, the MS MUST create a unique name for 819 the dialog (see Section 4.2 for dialog identifier assignment). 820 The attribute is optional. There is no default value. 822 The element has the following sequence of child 823 elements: 825 an IVR dialog (Section 4.3) to prepare. The element is 826 optional. 828 : specifies input parameters (Section 4.2.6) for dialog 829 languages defined outside this specification. The element is 830 optional. If a parameter is not supported by the MS for the 831 external dialog language, the MS sends a with a 427 832 status code (Section 4.5). 834 The dialog to prepare can either be specified inline with a 835 child element or externally (for dialog languages defined outside 836 this specification) using the src attribute. It is a syntax error if 837 both an inline element element and a src attribute are 838 specified and the MS sends a with a 400 status code (see 839 Section 4.5). The type, maxage, maxstale and fetchtimeout attributes 840 are only relevant when a dialog is specified as an external document. 842 For example, a request to prepare an inline IVR 843 dialog with a single prompt: 845 846 847 848 849 850 851 852 853 855 In this example, a request with a specified dialogid to prepare a 856 VoiceXML dialog document located externally: 858 859 862 864 Since MS support for dialog languages other than the IVR dialog 865 language defined in this package is optional, if the MS does not 866 support the dialog language it would send a response with the status 867 code 421 (Section 4.5). Further information on using VoiceXML can be 868 found in Section 9. 870 4.2.2. 872 The element is sent to the MS to start a dialog. If 873 the dialog has not been prepared, the dialog is prepared (retrieving 874 external document and/or external resources referenced within 875 element, and the dialog document validated syntactically and 876 semantically). Media processors (e.g. DTMF and prompt queue) are 877 activated and associated with the specified connection or conference. 879 The element has the following attributes: 881 src: specifies the location of an external dialog document to start. 882 A valid value is a URI (see Section 4.6.9). The MS MUST support 883 both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY 884 support other schemes. If the URI scheme is unsupported, the MS 885 sends a with a 420 status code (Section 4.5). If the 886 document cannot be retrieved with the timeout interval, the MS 887 sends a with a 409 status code. If the document 888 contains a type of dialog language which the MS does not 889 supported, the MS sends a with a 421 status code. The 890 attribute is optional. There is no default value. 892 type: specifies the type of the external dialog document indicated 893 in the 'src' attribute. A valid value is a MIME media type (see 894 Section 4.6.10). If the URI scheme used in the src attribute 895 defines a mechanism for establishing the authoratitive MIME media 896 type of the media resource, the value returned by that mechanism 897 takes precedence over this attribute. The attribute is optional. 898 There is no default value. 900 maxage: Used to set the max-age value of the Cache-Control header in 901 conjunction with an external dialog document fetched using HTTP, 902 as per [RFC2616]. A valid value is a non-negative integer (see 903 Section 4.6.4). The attribute is optional. There is no default 904 value. 906 maxstale: Used to set the max-stale value of the Cache-Control 907 header in conjunction with an external dialog document fetched 908 using HTTP, as per [RFC2616]. A valid value is a non-negative 909 integer (see Section 4.6.4). The attribute is optional. There is 910 no default value. 912 fetchtimeout: the maximum timeout interval to wait when fetching an 913 external dialog document. A valid value is a Time Designation 914 (see Section 4.6.7). The attribute is optional. The default 915 value is 30s. 917 dialogid: string indicating a unique name for the dialog. If a 918 dialog with the same name already exists on the MS, the MS sends a 919 with a 405 status code (Section 4.5). If neither the 920 dialogid attribute nor the prepareddialogid attribute is 921 specified, the MS MUST create a unique name for the dialog (see 922 Section 4.2 for dialog identifier assignment). The attribute is 923 optional. There is no default value. 925 prepareddialogid: string identifying a dialog previously prepared 926 using a dialogprepare (Section 4.2.1) request. If neither the 927 dialogid attribute nor the prepareddialogid attribute is 928 specified, the MS MUST create a unique name for the dialog (see 929 Section 4.2 for dialog identifier assignment). The attribute is 930 optional. There is no default value. 932 connectionid: string identifying the SIP dialog connection on which 933 this dialog is to be started (see Section 16.1 of 934 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 935 optional. There is no default value. 937 conferenceid: string identifying the conference on which this dialog 938 is to be started (see Section 16.1 of 939 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 940 optional. There is no default value. 942 Exactly one of the connectionid or conferenceid attributes MUST be 943 specified. If both connectionid and conferenceid attributes are 944 specified or neither are specified, it is a syntax error and the MS 945 sends a with a 400 status code (Section 4.5). 947 It is an error if the connection or conference referenced by a 948 specific connectionid or conferenceid attribute is not available on 949 the MS at the time the request is executed. If an 950 invalid connectionid is specified, the MS sends a with a 951 407 status code (Section 4.5). If an invalid conferenceid is 952 specified, the MS sends a with a 408 status code. 954 The element has the following sequence of child 955 elements: 957 : specifies an IVR dialog (Section 4.3) to execute. The 958 element is optional. 960 : specifies subscriptions to dialog events 961 (Section 4.2.2.1). The element is optional. 963 : specifies input parameters (Section 4.2.6) for dialog 964 languages defined outside this specification. The element is 965 optional. If a parameter is not supported by the MS for the 966 external dialog language, the MS sends a with a 427 967 status code (Section 4.5). 969 : determines the media stream(s) associated with the 970 connection or conference on which the dialog is executed 971 (Section 4.2.2.2). The element is optional. Multiple 972 elements can be specified. 974 The dialog to start can be specified either (a) inline with a 975 child element, or (b) externally using the src attribute 976 (for dialog languages defined outside this specification), or (c) 977 reference a previously prepared dialog using the prepareddialogid 978 attribute. If exactly one of the src attribute, the prepareddialogid 979 or a child element is not specified, it is a syntax error 980 and the MS sends a with a 400 status code (Section 4.5). 981 If the prepareddialogid and dialogid attributes are specified, it is 982 also a syntax error and the MS sends a with a 400 status 983 code. The type, maxage, maxstale and fetchtimeout attributes are 984 only relevant when a dialog is specified as an external document. 986 The element provides explicit control over which media 987 streams on the connection or conference are used during dialog 988 execution. For example, if a connection supports both audio and 989 video streams, a element could be used to indicate that only 990 the audio stream is used in receive mode. In cases where there are 991 multiple media streams of the same type for a dialog, the AS MUST use 992 elements to explicitly specify the configuration. If no 993 elements are specified, then the default media configuration 994 is that defined for the connection or conference. 996 If a element is in conflict with (a) another 997 element, (b) with specified connection or conference media 998 capabilities, (c) with a SDP label value as part of the connectionid 999 (see Section 16.1 of [I-D.ietf-mediactrl-sip-control-framework]) then 1000 the MS sends a with a 411 status code (Section 4.5). If 1001 the media stream configuration is not supported by the MS, then the 1002 MS sends a with a 428 status code (Section 4.5). 1004 The MS MAY support multiple, simultaneous dialogs being started on 1005 the same connection or conference. For example, the same connection 1006 can receive different media streams (e.g. audio and video) from 1007 different dialogs, or receive (and implicitly mix where appropriate) 1008 the same type of media streams from different dialogs. If the MS 1009 does not support starting another dialog on the same connection or 1010 conference, it sends a with a 432 status code 1011 (Section 4.5) when it receives the second (or subsequent) dialog 1012 request. 1014 For example, a request to start an ivr dialog on a connection 1015 subscribing to DTMF notifications: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1031 In this example, the dialog is started on a conference where the 1032 conference only receives an audio media stream from the dialog: 1034 1035 1036 1037 1038 1039 1040 1041 1043 4.2.2.1. 1045 The element allows the AS to subscribe to, and be 1046 notified of, specific events which occur during execution of the 1047 dialog. Notifications of dialog events are delivered using the 1048 element (see Section 4.2.5). 1050 The element has no attributes. 1052 The element has the following sequence of child elements 1053 (0 or more occurrences): 1055 : Subscription to DTMF input during the dialog 1056 (Section 4.2.2.1.1). The element is optional. 1058 If a request has with no child elements, the MS treats 1059 the request as if no element was specified. 1061 The MS MUST support subscription for the IVR dialog 1062 language defined in this specification (Section 4.3). It MAY support 1063 other dialog subscriptions (specified using attributes and child 1064 elements from a foreign namespace). If the MS does not support a 1065 subscription specified in a foreign namespace, the MS sends a 1066 response with a 431 status code (see Section 4.5). 1068 4.2.2.1.1. 1070 The element has the following attributes: 1072 matchmode: controls which DTMF input are subscribed to. Valid 1073 values are: "all" - notify all DTMF key presses received during 1074 the dialog; "collect" - notify only DTMF input matched by the 1075 collect operation (Section 4.3.1.3); and "control" - notify only 1076 DTMF input matched by the runtime control operation 1077 (Section 4.3.1.2). The attribute is optional. The default value 1078 is "all". 1080 The element has no child elements. 1082 DTMF notifications are delivered in the element 1083 (Section 4.2.5.2). 1085 For example, the AS wishes to subscribe to DTMF key press matching a 1086 runtime control: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1102 Each time a '2' or '3' DTMF input is received, the MS sends a 1103 notification event: 1105 1106 1107 1109 1110 1112 4.2.2.2. 1114 The element has the following attributes: 1116 media: a string indicating the type of media associated with the 1117 stream. A valid value is a MIME type-name as defined in Section 1118 4.2 of [RFC4288]. The following values MUST be used for common 1119 types of media: "audio" for audio media, and "video" for video 1120 media. See IANA ([IANA]) for registered MIME type names. The 1121 attribute is mandatory. 1123 label: a string indicating the SDP label associated with a media 1124 stream ([RFC4574]). The attribute is optional. 1126 direction: a string indicating the direction of the media flow 1127 relative to the endpoint conference or connection. Defined values 1128 are: "sendrecv" (the endpoint can send media to, and receive media 1129 from, the dialog), "sendonly" (the endpoint can only send media to 1130 the dialog), "recvonly" (the endpoint can only receive media from 1131 the dialog) and "inactive" (stream is not to be used). The 1132 default value is "sendrecv". The attribute is optional. 1134 The element has the following sequence of child elements: 1136 : an element to specify the area within a mixer video layout 1137 where a media stream is displayed (Section 4.2.2.2.1). The 1138 element is optional. 1140 : an element to configure priority associated with the 1141 stream in the conference mix (Section 4.2.2.2.2). The element is 1142 optional. 1144 If conferenceid is not specified or if the "media" attribute does not 1145 have the value of "video", then the MS ignores the and 1146 elements. 1148 For example, assume a user agent connection with multiple audio and 1149 video streams associated with the user and a separate web camera. In 1150 this case, the dialog could be started to record only the audio and 1151 video streams associated with the user: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1165 Using the element, the dialog can be started on a conference 1166 mixer so that the video output from the dialog is directed to a 1167 specific area within a video layout. For example: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1 1178 1179 1180 1182 4.2.2.2.1. 1184 The element is used to specify a named area within a 1185 presentation layout where a video media stream is displayed. The MS 1186 could, for example, play video media into an area of a video layout 1187 where the layout and its named regions are specified using the Mixer 1188 Control Package ([I-D.ietf-mediactrl-mixer-control-package]). 1190 The element has no attributes and its content model 1191 specifies the name of the region. 1193 If the region name is invalid, then the MS reports a 416 status code 1194 (Section 4.5) in the response to the request element containing the 1195 element. 1197 4.2.2.2.2. 1199 The element is used to explicitly specify the priority of 1200 the dialog for presentation in a conference mix. 1202 The element has no attributes and its content model 1203 specifies a positive integer (see Section 4.6.5). The lower the 1204 value, the higher the priority. 1206 4.2.3. 1208 A dialog can be terminated by sending a request 1209 element to the MS. 1211 The element has the following attributes: 1213 dialogid: string identifying the dialog to terminate. If the 1214 specified dialog identifier is invalid, the MS sends a response 1215 with a 405 status code (Section 4.5). The attribute is mandatory. 1217 immediate: indicates whether a dialog in the STARTED state is to be 1218 terminated immediately or not (in other states, termination is 1219 always immediate). A valid value is a boolean (see 1220 Section 4.6.1). A value of true indicates that the dialog is 1221 terminated immediately and the MS MUST send a dialogexit 1222 notification (Section 4.2.5.1) without report information. A 1223 value of false indicates that the dialog terminates after the 1224 current iteration and the MS MUST send a dialogexit notification 1225 with report information. The attribute is optional. The default 1226 value is false. 1228 The MS MUST reply to request with a 1229 element (Section 4.2.4), reporting whether the dialog was terminated 1230 successful or not. 1232 For example, immediately terminating a STARTED dialog with dialogid 1233 "d4": 1235 1236 1237 1239 If the dialog is terminated successfully, then the response to the 1240 dialogterminate request would be: 1242 1243 1244 1246 4.2.4. 1248 Responses to dialog management requests are specified with a 1249 element. 1251 The element has following attributes: 1253 status: numeric code indicating the response status. Valid values 1254 are defined in Section 4.5. The attribute is mandatory. 1256 reason: string specifying a reason for the response status. The 1257 attribute is optional. There is no default value. 1259 dialogid: string identifying the dialog. If the request specifies a 1260 dialogid, then that value is used. Otherwise, with 1261 and requests, the dialogid generated 1262 by the MS is used. If there is no available dialogid because the 1263 request is syntactically invalid (e.g. a request 1264 with no dialogid attribute specified), then the value is the empty 1265 string. The attribute is mandatory. 1267 connectionid: string identifying the SIP dialog connection 1268 associated with the dialog (see Section 16.1 of 1269 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1270 optional. There is no default value. 1272 conferenceid: string identifying the conference associated with the 1273 dialog (see Section 16.1 of 1274 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1275 optional. There is no default value. 1277 For example, a response when a dialog was prepared successfully: 1279 1280 1281 1283 The response if dialog preparation failed due to an unsupported 1284 dialog language: 1286 1287 1289 1291 In this example a request does not specify a 1292 dialogid: 1294 1295 1296 1298 The response status indicates a 400 (Syntax error) status code and 1299 the dialogid attribute has an empty string value: 1301 1302 1304 1306 4.2.5. 1308 When a dialog generates a notification event, the MS sends the event 1309 using an element. 1311 The element has the following attributes: 1313 dialogid: string identifying the dialog which generated the event. 1314 The attribute is mandatory. 1316 The element has the following child elements, only one of 1317 which can occur: 1319 : indicates that the dialog has exited 1320 (Section 4.2.5.1). 1322 : indicates that a DTMF key press occurred 1323 (Section 4.2.5.2). 1325 4.2.5.1. 1327 The event indicates that a prepared or active dialog has 1328 exited because it is complete, has been terminated, or because an 1329 error occurred during execution (for example, a media resource cannot 1330 be played). This event MUST be sent by the MS when the dialog exits. 1332 The element has the following attributes: 1334 status: a status code indicating the status of the dialog when it 1335 exits. A valid value is a non-negative integer (see 1336 Section 4.6.4). The MS MUST support the following values: 1338 0 indicates the dialog has been terminated by a 1339 request. 1341 1 indicates successful completion of the dialog. 1343 2 indicates the dialog terminated because the connection or 1344 conference associated with the dialog has terminated. 1346 3 indicates the dialog terminated due to exceeding its maximum 1347 duration. 1349 4 indicates the dialog terminated due to an execution error. 1351 All other valid but undefined values are reserved for future use, 1352 where new status codes are assigned using the Standards Action 1353 process defined in [RFC5226]. The AS MUST treat any status code 1354 it does not recognize as being equivalent to 4 (dialog execution 1355 error). The attribute is mandatory. 1357 reason: a textual description which the MS SHOULD use to provide a 1358 reason for the status code; e.g. details about an error. A valid 1359 value is a string (see Section 4.6.6). The attribute is optional. 1360 There is no default value. 1362 The element has the following sequence of child 1363 elements: 1365 : report information (Section 4.3.2.1) about the prompt 1366 execution in an IVR . The element is optional. 1368 : reports information (Section 4.3.2.2) about the 1369 control execution in an IVR . The element is optional. 1371 : reports information (Section 4.3.2.3) about the 1372 collect execution in an IVR . The element is optional. 1374 : reports information (Section 4.3.2.4) about the record 1375 execution in an IVR . The element is optional. 1377 : reports exit parameters (Section 4.2.6) for a dialog 1378 language defined outside this specification. The element is 1379 optional. 1381 For example, an active exits normally the MS sends a 1382 dialogexit reporting information: 1384 1385 1386 1387 1388 1389 1390 1392 4.2.5.2. 1394 The element provide a notification of DTMF input 1395 received during the active dialog as requested by a 1396 subscription (Section 4.2.2.1). 1398 The element has the following attributes: 1400 matchmode: indicates the matching mode specified in the subscription 1401 request. Valid values are: "all" - all DTMF key presses notified 1402 individually; "collect" - only DTMF input matched by the collect 1403 operation notified; and "control" - only DTMF input matched by the 1404 control operation notified. The attribute is optional. The 1405 default value is "all". 1407 dtmf: DTMF key presses received according to the matchmode. A valid 1408 value is a DTMF string (see Section 4.6.3) with no space between 1409 characters. The attribute is mandatory. 1411 timestamp: indicates the time (on the MS) at which the last key 1412 press occurred according to the matchmode. A valid value is a 1413 dateTime expression (Section 4.6.12). The attribute is mandatory. 1415 For example, a notification of DTMF input matched during the collect 1416 operation: 1418 1419 1420 1422 1423 1425 4.2.6. 1427 The element is a container for elements 1428 (Section 4.2.6.1). 1430 The element has no attributes, but the following child 1431 elements are defined (0 or more): 1433 : specifies a parameter name and value (Section 4.2.6.1). 1435 For example, usage with a dialog language defined outside this 1436 specification to send additional parameters into the dialog: 1438 1439 1441 1442 playannouncement 1443 nfs://nas01/media1.3gp 1444 nfs://nas01/media2.3gp 1445 1446 1447 1449 4.2.6.1. 1451 The element describes a parameter name and value. 1453 The element has the following attributes: 1455 name: a string indicating the name of the parameter. The attribute 1456 is mandatory. 1458 type: specifies a type indicating how the inline value of the 1459 parameter is to be interpreted. A valid value is a MIME media 1460 type (see Section 4.6.10). The attribute is optional. The 1461 default value is "text/plain". 1463 encoding: specifies a content-transfer-encoding schema applied to 1464 the inline value of the parameter on top of the MIME media type 1465 specified with the type attribute. A valid value is a content- 1466 transfer-encoding schema as defined by the "mechanism" token in 1467 Section 6.1 of [RFC2045]. The attribute is optional. There is no 1468 default value. 1470 The element content model is the value of the parameter. 1471 Note that a value which contains XML characters (e.g. "<") needs to 1472 be escaped following standard XML conventions. 1474 For example, usage with a dialog language defined outside this 1475 specification to receive parameters from the dialog when it exits: 1477 1478 1479 1480 1481 recording 1482 1483 1486 1487 1488 1489 1490 1492 4.3. IVR Dialog Elements 1494 This section describes the IVR dialog language defined as part of 1495 this specification. The MS MUST support this dialog language. 1497 The element is an execution container for operations of 1498 playing prompts (Section 4.3.1.1), runtime controls 1499 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1500 user input (Section 4.3.1.4. Results of the dialog execution 1501 (Section 4.3.2) are reported in a dialogexit notification event. 1503 Using these elements, three common dialog models are supported: 1505 playannouncements: only a element is specified in the 1506 container. The prompt media resources are played in sequence. 1508 promptandcollect: a element is specified and, optionally, 1509 a element. If a element is specified and 1510 bargein is enabled, playing of the prompt is terminated when 1511 bargein occurs, and DTMF collection is initiated; otherwise, the 1512 prompt is played to completion before DTMF collection is 1513 initiated. If no prompt element is specified, DTMF collection is 1514 initiated immediately. 1516 promptandrecord: a element is specified and, optionally, a 1517 element. If a element is specified and bargein 1518 is enabled, playing of the prompt is terminated when bargein 1519 occurs, and recording is initiated; otherwise, the prompt is 1520 played to completion before recording is initiated. If no prompt 1521 element is specified, recording is initiated immediately. 1523 In addition, this dialog language supports runtime ('VCR') controls 1524 enabling a user to control prompt playback using DTMF. 1526 Each of the core elements - , , and 1527 - are specified so that their execution and reporting is 1528 largely self-contained. This facilitates their re-use in other 1529 dialog container elements. Note that DTMF and bargein behavior 1530 affects multiple elements and is addressed in the relevant element 1531 definitions. 1533 Execution results are reported in the notification event 1534 with child elements defined in Section 4.3.2. If the dialog 1535 terminated normally (i.e. not due to an error or to a 1536 request), then the MS MUST report the results for 1537 the operations specified in the dialog: 1539 : (see Section 4.3.2.1) with at least the 1540 termmode attribute specified. 1542 : (see Section 4.3.2.2) if any runtime 1543 controls are matched. 1545 : (see Section 4.3.2.3) with the dtmf and 1546 termmode attributes specified. 1548 : (see Section 4.3.2.4) with at least the 1549 termmode attribute and one element specified. 1551 The media format requirements for IVR dialogs are undefined. This 1552 package is agnostic to the media types and codecs for media resources 1553 and recording which need to be supported by an implementation. For 1554 example, a MS implementation might only support audio and in 1555 particular the 'audio/basic' codec for media playback and recording. 1556 However, when executing a dialog, if an MS encounters a media type or 1557 codec which it cannot process, the MS MUST stop further processing 1558 and report the error using the dialogexit notification. 1560 4.3.1. 1562 An IVR dialog to play prompts to the user, allow runtime controls, 1563 collect DTMF or record input. The dialog is specified using a 1564 element. 1566 A element has the following attributes: 1568 repeatCount: number of times the dialog is to be executed. A valid 1569 value is a non-negative integer (see Section 4.6.4). A value of 0 1570 indicates that the dialog is repeated until halted by other means. 1571 The attribute is optional. The default value is 1. 1573 repeatDur: maximum duration for dialog execution. A valid value is 1574 a Time Designation (see Section 4.6.7). If no value is specified, 1575 then there is no limit on the duration of the dialog. The 1576 attribute is optional. There is no default value. 1578 repeatUntilComplete: indicates whether the MS terminates dialog 1579 execution when an input operation is completed successfully. A 1580 valid value is a boolean (see Section 4.6.1). A value of true 1581 indicates that dialog execution is terminated when an input 1582 operation associated with its child elements is completed 1583 sucessfully (see execution model below for precise conditions). A 1584 value of false indicates that dialog execution is terminated by 1585 other means. The attribute is optional. The default value is 1586 false. 1588 The repeatDur attribute takes priority over the repeatCount attribute 1589 in determining maximum duration of the dialog. See 'repeatCount' and 1590 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1591 information. In the situation where a dialog is repeated more than 1592 once, only the results of operations in the last dialog iteration are 1593 reported. 1595 The element has the following sequence of child elements (at 1596 least one, any order): 1598 : defines media resources to play in sequence (see 1599 Section 4.3.1.1). The element is optional. 1601 : defines how DTMF is used for runtime controls (see 1602 Section 4.3.1.2). The element is optional. 1604 : defines how DTMF is collected (see Section 4.3.1.3). The 1605 element is optional. 1607 : defines how recording takes place (see Section 4.3.1.4). 1608 The element is optional. 1610 Although the behavior when both and elements are 1611 specified in a request is not defined in this control package, the MS 1612 MAY support this configuration. If the MS does not support this 1613 configuration, the MS sends a with a 433 status code. 1615 The MS has the following execution model for the IVR dialog after 1616 initialization (initialization errors are reported by the MS in the 1617 response): 1619 1. If an error occurs during execution, then the MS terminates the 1620 dialog and reports the error in the event by setting 1621 the status attribute (see Section 4.3.2). Details about the 1622 error are specified in the reason attribute. 1624 2. The MS initializes a counter to 0. 1626 3. The MS starts a duration timer for the value of the repeatDur 1627 attribute. If the timer expires before the dialog is complete, 1628 then the MS terminates the dialog and sends a dialogexit whose 1629 status attribute is set to 3 (see Section 4.2.5.1). The MS MAY 1630 report information in the dialogexit gathered in the last 1631 execution cycle (if any). 1633 4. The MS initiates a dialog execution cycle. Each cycle executes 1634 the operations associated with the child elements of the dialog. 1635 If a element is specified, then execute the element's 1636 prompt playing operation and activate any controls (if the 1637 element is specified). If no is specified or 1638 when a specified terminates, then start the collect 1639 operation or the record operation if the or 1640 elements respectively are specified. If subscriptions are 1641 specified for the dialog, then the MS sends a notification event 1642 when the specified event occurs. If execution of a child element 1643 results in an error, the MS terminates dialog execution (and 1644 stops other child element operations) and the MS sends a 1645 dialogexit status event, reporting any information gathered. 1647 5. If the dialog execution cycle completes successfully, then the MS 1648 increments the counter by one. The MS terminates dialog 1649 execution if either of the following conditions is true: 1651 * the value of the repeatCount attribute is greater than zero 1652 and the counter is equal to the value of the repeatCount 1653 attribute 1655 * the value of the repeatUntilComplete attribute is true and one 1656 of the following conditions is true: 1658 + reports termination status of 'match' or 1659 'stopped'. 1661 + reports termination status of 'stopped', 'dtmf', 1662 'maxtime' or 'finalsilence'. 1664 When the MS terminates dialog execution, it sends a dialogexit 1665 (with a status of 1) reporting operation information collected in 1666 the last dialog execution cycle only. Otherwise, another dialog 1667 execution cycle is initiated. 1669 4.3.1.1. 1671 The element specifies a sequence of media resources to play 1672 back in document order. 1674 A element has the following attributes: 1676 xml:base: A string declaring the base URI from which relative URIs 1677 in child elements are resolved prior to fetching. A valid value 1678 is a URI (see Section 4.6.9). The attribute is optional. There 1679 is no default value. 1681 bargein: Indicates whether user input stops prompt playback unless 1682 the input is associated with a specified runtime 1683 operation (input matching control operations never interrupts 1684 prompt playback). A valid value is a boolean (see Section 4.6.1). 1685 A value of true indicates that bargein is permitted and prompt 1686 playback is stopped. A value of false indicates that bargein is 1687 not permitted: user input does not terminate prompt playback. The 1688 attribute is optional. The default value is true. 1690 The element has the following child elements (at least one, 1691 any order, multiple occurrences of elements permitted): 1693 : specifies a media resource (see Section 4.3.1.5) to play. 1694 The element is optional. 1696 : specifies a variable media announcement (see 1697 Section 4.3.1.1.1) to play. The element is optional. 1699 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1700 play. The element is optional. 1702 : specifies media resources to play in parallel (see 1703 Section 4.3.1.1.3). The element is optional. 1705 If the MS does not support the configuration required for prompt 1706 playback to the output media streams and a more specific error code 1707 is not defined for its child elements, the MS sends a with 1708 a 429 status code (Section 4.5). The MS MAY support transcoding 1709 between the media resource format and the output stream format. 1711 The MS has the following execution model for prompt playing after 1712 initialization: 1714 1. The MS initiates prompt playback playing its child elements 1715 (, , and ) one after another in 1716 document order. 1718 2. If any error (including fetching and rendering errors) occurs 1719 during prompt execution, then the MS terminates playback and 1720 reports its error status to the dialog container (see 1721 Section 4.3) with a (see Section 4.3.2.1) where the 1722 termmode attribute is set to stopped and any additional 1723 information is set. 1725 3. If DTMF input is received and the value of the bargein attribute 1726 is true, then the MS terminates prompt playback and reports its 1727 execution status to the dialog container (see Section 4.3) with a 1728 (see Section 4.3.2.1) where the termmode attribute 1729 is set to bargein and any additional information is set. 1731 4. If prompt playback is stopped by the dialog container, then the 1732 MS reports its execution status to the dialog container (see 1733 Section 4.3) with a (see Section 4.3.2.1) where the 1734 termmode attribute is set to stopped and any additional 1735 information is set. 1737 5. If prompt playback completes successfully, then the MS reports 1738 its execution status to the dialog container (see Section 4.3) 1739 with a (see Section 4.3.2.1) where the termmode 1740 attribute is set to completed and any additional information is 1741 set. 1743 4.3.1.1.1. 1745 The element specifies variable announcements using 1746 predefined media resources. Each variable has at least a type (e.g. 1747 date) and a value (e.g. 2008-02-25). The value is rendered according 1748 to the prompt variable type (e.g. 2008-02-25 is rendered as the date 1749 25th February 2008). The precise mechanism for generating variable 1750 announcements (including the location of associated media resources) 1751 is implementation specific. 1753 A element has the following attributes: 1755 type: specifies the type of prompt variable to render. This 1756 specification defines three values - date (Section 4.3.1.1.1.1), 1757 time (Section 4.3.1.1.1.2) and digits (Section 4.3.1.1.1.3). All 1758 other valid but undefined values are reserved for future use, 1759 where new values are assigned as described in Section 8.5. A 1760 valid value is a string (see Section 4.6.6). The attribute is 1761 mandatory. 1763 value: specifies a string to be rendered according to the prompt 1764 variable type. A valid value is a string (see Section 4.6.6). 1765 The attribute is mandatory. 1767 format: specifies format information which the prompt variable type 1768 uses to render the value attribute. A valid value is a string 1769 (see Section 4.6.6). The attribute is optional. There is no 1770 default value. 1772 gender: specifies the gender which the prompt variable type uses to 1773 render the value attribute. Valid values are "male" or "female". 1774 The attribute is optional. There is no default value. 1776 xml:lang: specifies the language which the prompt variable type uses 1777 to render the value attribute. A valid value is a language 1778 identifier (see Section 4.6.11). The attribute is optional. 1779 There is no default value. 1781 The element has no children. 1783 This specification is agnostic to the type and codec of media 1784 resources into which variable are rendered as well as the rendering 1785 mechanism itself. For example, an MS implementation supporting audio 1786 rendering could map the into one or more audio media 1787 resources. 1789 This package is agnostic to which types are supported by 1790 an implementation. If a element configuration specified 1791 in a request is not supported by the MS, the MS sends a 1792 with a 425 status code (Section 4.5). 1794 4.3.1.1.1.1. Date type 1796 The date variable type provides a mechanism for dynamically rendering 1797 a date prompt. 1799 The type attribute MUST have the value "date". 1801 The format attribute MUST be one of the following values 1802 and comply with its rendering of the value attribute: 1804 mdy indicating that the value attribute is to be rendered 1805 as sequence composed of month, then day, then year. 1807 ymd indicating that the value attribute is to be rendered 1808 as sequence composed of year, then month, then day. 1810 dym indicating that the value attribute is to be rendered 1811 as sequence composed of day, then year, then month. 1813 dm indicating that the value attribute is to be rendered 1814 as sequence composed of day then month. 1816 The value attribute MUST comply with a lexical 1817 representation of date where 1819 yyyy '-' mm '-' dd 1821 as defined in Section 3.2.9 of [XMLSchema:Part2]. 1823 For example, 1825 1828 describe a variable date prompt where the date can be rendered in 1829 audio as "twenty-fifth of November two thousand and ten" using a list 1830 of resources: 1832 1833 1834 1835 1836 1837 1839 4.3.1.1.1.2. Time type 1841 The time variable type provides a mechanism for dynamically rendering 1842 a time prompt. 1844 The type attribute MUST have the value "time". 1846 The format attribute MUST be one of the following values 1847 and comply with its rendering of the value attribute: 1849 t12 indicating that the value attribute is to be rendered 1850 as a time in traditional 12 hour format using am or pm (for 1851 example, "twenty five minutes past 2 pm" for "14:25"). 1853 t24 indicating that the value attribute is to be rendered 1854 as a time in 24 hour format (for example, "fourteen twenty five" 1855 for "14:25"). 1857 The value attribute MUST comply with a lexical 1858 representation of time where 1860 hh ':' mm ( ':' ss )? 1862 as defined in Section 3.2.8 of [XMLSchema:Part2]. 1864 4.3.1.1.1.3. Digits type 1866 The digits variable type provides a mechanism for dynamically 1867 rendering a digit sequence. 1869 The type attribute MUST have the value "digits". 1871 The format attribute MUST be one of the following values 1872 and comply with its rendering of the value attribute: 1874 gen indicating that the value attribute is to be rendered 1875 as a general digit string (for example, "one two three" for 1876 "123"). 1878 crn indicating that the value attribute is to be rendered 1879 as a cardinal number (for example, "one hundred and twenty three" 1880 for "123"). 1882 ord indicating that the value attribute is to be rendered 1883 as an ordinal number (for example, "one hundred and twenty third" 1884 for "123"). 1886 The value attribute MUST comply with the lexical 1887 representation 1889 d+ 1891 i.e. one or more digits. 1893 4.3.1.1.2. 1895 The element specifies a sequence of DTMF tones for output. 1897 DTMF tones could be generated using resources where the 1898 output is transported as RTP audio packets. However, 1899 resources are not sufficient for cases where DTMF tones are to be 1900 transported as DTMF RTP ([RFC4733]) or in event packages. 1902 A element has the following attributes: 1904 digits: specifies the DTMF sequence to output. A valid value is a 1905 DTMF string (see Section 4.6.3). The attribute is mandatory. 1907 level: used to define the power level for which the DTMF tones will 1908 be generated. Values are expressed in dBm0. A valid value is an 1909 integer in the range of 0 to -96 (dBm0). Larger negative values 1910 express lower power levels. Note that values lower than -55 dBm0 1911 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1912 The attribute is optional. The default value is -6 (dBm0). 1914 duration: specifies the duration for which each DTMF tone is 1915 generated. A valid value is a time designation (see 1916 Section 4.6.7). The MS MAY round the value if it only supports 1917 discrete durations. The attribute is optional. The default value 1918 is 100ms. 1920 interval: specifies the duration of a silence interval following 1921 each generated DTMF tone. A valid value is a time designation 1922 (see Section 4.6.7). The MS MAY round the value if it only 1923 supports discrete durations. The attribute is optional. The 1924 default value is 100ms. 1926 The element has no children. 1928 If a element configuration is not supported, the MS sends a 1929 with a 426 status code (Section 4.5). 1931 4.3.1.1.3. 1933 The element allows media resources to be played in parallel. 1934 Each of its child elements specify a media resource (or a sequence of 1935 media resources using the element). When playback of the 1936 element is initiated, the MS begins playback of all its child 1937 elements at the same time. This element is modeled after the 1938 element in SMIL ([W3C.REC-SMIL2-20051213]). 1940 The element has the following attributes: 1942 endsync: indicates when playback of the element is complete. Valid 1943 values are: "first" - indicates that the element is complete when 1944 any child element reports that it is complete; "last" - indicates 1945 it is complete when every child elements are complete. The 1946 attribute is optional. The default value is "last". 1948 If the value is "first", then playback of other child element is 1949 stopped when one child element reports it is complete. 1951 The element has the following child elements (at least one, any 1952 order, multiple occurrences of each element permitted): 1954 : specifies a sequence of media resources to play in a parallel 1955 with other child elements (see Section 4.3.1.1.3.1). The 1956 element is optional. 1958 : specifies a media resource (see Section 4.3.1.5) to play. 1959 The MS is responsible for assigning the appropriate media 1960 stream(s) when more than one is available. The element is 1961 optional. 1963 : specifies a variable media announcement (see 1964 Section 4.3.1.1.1) to play. The element is optional. 1966 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1967 play. The element is optional. 1969 It is RECOMMENDED that a element contains only one 1970 element of the same media type (i.e. same type-name as defined in 1971 Section 4.6.10). If a element configuration is not supported, 1972 the MS sends a with a 435 status code (Section 4.5). 1974 Runtime s (Section 4.3.1.2) apply to each child element 1975 playing parallel. For example, pause and resume controls cause all 1976 child elements to be paused and resumed respectively. 1978 If the element is stopped by the prompt container (e.g. bargein 1979 or dialog termination), then playback of all child elements is 1980 stopped. The playback duration (Section 4.3.2.1) reported for the 1981 element is the duration of parallel playback, not the 1982 cumulative duration of each child element played in parallel. 1984 For example, a request to playback audio and video media in parallel: 1986 1987 1988 1989 1990 1991 1993 1995 1996 1997 1998 1999 2000 When the element is executed, it begins playback of its 2001 child element in document order sequence. In this case, there is 2002 only one child element, a element itself containing audio and 2003 video child element. Consequently playback of both audio and 2004 video media resources is initiated at the same time. Since the 2005 endsync attribute is not specified, the default value "last" applies. 2006 The element playback is complete when the media resource with 2007 the longest duration is complete. 2009 4.3.1.1.3.1. 2011 The element specifies media resources to be played back in 2012 sequence. This allows a sequence of media resources to be played at 2013 the same time as other children of a element are played in 2014 parallel. For example, a sequence of audio resources while a video 2015 resource is played in parallel. This element is modeled after the 2016 element in SMIL ([W3C.REC-SMIL2-20051213]). 2018 The element has no attributes. 2020 The element has the following child elements (at least one, any 2021 order, multiple occurrences of each element permitted): 2023 : specifies a media resource (see Section 4.3.1.5) to play. 2024 The element is optional. 2026 : specifies a variable media announcement (see 2027 Section 4.3.1.1.1) to play. The element is optional. 2029 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 2030 play. The element is optional. 2032 Playback of a element is complete when all child elements in 2033 the sequence are complete. If the element is stopped by the 2034 container, then playback of the current child element is 2035 stopped (remaining child elements in the sequence are not played). 2037 For example, a request to play a sequence of audio resources in 2038 parallel with a video media: 2040 2041 2042 2043 2044 2045 2046 2048 2050 2052 2054 2055 2057 2058 2059 2060 2061 2063 When the element is executed, it begins playback of the 2064 element containing a element and a video element. 2065 The element itself contains a sequence of audio 2066 elements. Consequently playback of the video media resource is 2067 initiated at the same time as playback of the sequence of the audio 2068 media resources is initiated. Each audio resource is played back 2069 after the previous one completes. Since the endsync attribute is set 2070 to "first", the element playback is complete when either all 2071 the audio resources in have been played to completion or the 2072 video is complete, whichever occurs first. 2074 4.3.1.2. 2076 The element defines how DTMF input is mapped to runtime 2077 controls, including prompt playback controls. 2079 DTMF input matching these controls MUST NOT cause prompt playback to 2080 interrupted (i.e. no prompt bargein), but causes the appropriate 2081 operation to be applied; for examples, speeding up prompt playback. 2083 DTMF input matching these controls has priority over input 2084 for the duration of prompt playback. If an incoming DTMF character 2085 matches a specified runtime control, then the DTMF character is 2086 consumed: it is not added to the digit buffer and so is not available 2087 to the operation. Once prompt playback is complete, 2088 runtime controls are no longer active. 2090 The element has the following attributes: 2092 gotostartkey: maps a DTMF key to skip directly to the start of the 2093 prompt. A valid value is a DTMF Character (see Section 4.6.2). 2094 The attribute is optional. There is no default value. 2096 gotoendkey: maps a DTMF key to skip directly to the end of the 2097 prompt. A valid value is a DTMF Character (see Section 4.6.2). 2098 The attribute is optional. There is no default value. 2100 skipinterval: indicates how far a MS skips backwards or forwards 2101 through prompt playback when the rewind (rwkey) of fast forward 2102 key (ffkey) is pressed. A valid value is a Time Designation (see 2103 Section 4.6.7). The attribute is optional. The default value is 2104 6s. 2106 ffkey: maps a DTMF key to a fast forward operation equal to the 2107 value of 'skipinterval'. A valid value is a DTMF Character (see 2108 Section 4.6.2). The attribute is optional. There is no default 2109 value. 2111 rwkey: maps a DTMF key to a rewind operation equal to the value of 2112 'skipinterval'. A valid value is a DTMF Character (see 2113 Section 4.6.2). The attribute is optional. There is no default 2114 value. 2116 pauseinterval: indicates how long a MS pauses prompt playback when 2117 the pausekey is pressed. A valid value is a Time Designation (see 2118 Section 4.6.7). The attribute is optional. The default value is 2119 10s. 2121 pausekey: maps a DTMF key to a pause operation equal to the value of 2122 'pauseinterval'. A valid value is a DTMF Character (see 2123 Section 4.6.2). The attribute is optional. There is no default 2124 value. 2126 resumekey: maps a DTMF key to a resume operation. A valid value is 2127 a DTMF Character (see Section 4.6.2). The attribute is optional. 2128 There is no default value. 2130 volumeinterval: indicates the increase or decrease in playback 2131 volume (relative to the current volume) when the volupkey or 2132 voldnkey is pressed. A valid value is a percentage (see 2133 Section 4.6.8). The attribute is optional. The default value is 2134 10%. 2136 volupkey: maps a DTMF key to a volume increase operation equal to 2137 the value of 'volumeinterval'. A valid value is a DTMF Character 2138 (see Section 4.6.2). The attribute is optional. There is no 2139 default value. 2141 voldnkey: maps a DTMF key to a volume decrease operation equal to 2142 the value of 'volumeinterval'. A valid value is a DTMF Character 2143 (see Section 4.6.2). The attribute is optional. There is no 2144 default value. 2146 speedinterval: indicates the increase or decrease in playback speed 2147 (relative to the current speed) when the speedupkey or speeddnkey 2148 is pressed. A valid value is a percentage (see Section 4.6.8). 2149 The attribute is optional. The default value is 10%. 2151 speedupkey: maps a DTMF key to a speed increase operation equal to 2152 the value of the speedinterval attribute. A valid value is a DTMF 2153 Character (see Section 4.6.2). The attribute is optional. There 2154 is no default value. 2156 speeddnkey: maps a DTMF key to a speed decrease operation equal to 2157 the value of the speedinterval attribute. A valid value is a DTMF 2158 Character (see Section 4.6.2). The attribute is optional. There 2159 is no default value. 2161 external: allows one or more DTMF keys to be declared as external 2162 controls (for example: video camera controls); the MS can send 2163 notifications when a matching key is activated using 2164 (Section 4.2.5.2). A valid value is a DTMF String (see 2165 Section 4.6.3). The attribute is optional. There is no default 2166 value. 2168 If the same DTMF is specified in more than one DTMF key control 2169 attribute - except the pausekey and resumekey attributes - the MS 2170 sends a with a 413 status code (Section 4.5). 2172 The MS has the following execution model for runtime control after 2173 initialization: 2175 1. If an error occurs during execution, then the MS terminates 2176 runtime control and the error is reported to the dialog 2177 container. The MS MAY report controls executed successfully 2178 before the error in (see Section 4.3.2.2). 2180 2. Runtime controls are active only during prompt playback (if no 2181 element is specified, then runtime controls are 2182 ignored). If DTMF input matches any specified keys (for example 2183 the ffkey), then the MS applies the appropriate operation 2184 immediately. If a seek operation (ffkey, rwkey) attempts to go 2185 beyond the beginning or end of the prompt queue, then the MS 2186 automatically truncates it to the prompt queue beginning or end 2187 respectively. If a volume operation (voldnkey, volupkey) 2188 attempts to go beyond the minimum or maximum volume supported by 2189 the platform, then the MS automatically limits the operation to 2190 minimum or maximum supported volume respectively. If a speed 2191 operation (speeddnkey, speedupkey) attempts to go beyond the 2192 minimum or maximum playback speed supported by the platform, then 2193 the MS automatically limits the operation to minimum or maximum 2194 supported speed respectively. If the pause operation attempts to 2195 pause output when it is already paused, then the operation is 2196 ignored. If the resume operation attempts to resume when the 2197 prompts are not paused, then the operation is ignored. If a 2198 seek, volume or speed operation is applied when output is paused, 2199 then the MS also resumes output automatically. 2201 3. If DTMF control subscription has been specified for the dialog, 2202 then each DTMF match of a control operation is reported in a 2203 notification event (Section 4.2.5.2). 2205 4. When the dialog exits, all control matches are reported in a 2206 element (Section 4.3.2.2). 2208 4.3.1.3. 2210 The element defines how DTMF input is collected. 2212 The element has the following attributes: 2214 cleardigitbuffer: indicates whether the digit buffer is to be 2215 cleared. A valid value is a boolean (see Section 4.6.1). A value 2216 of true indicates that the digit buffer is to be cleared. A value 2217 of false indicates that the digit buffer is not to be cleared. 2218 The attribute is optional. The default value is true. 2220 timeout: indicates the maximum time to wait for user input to begin. 2221 A valid value is a Time Designation (see Section 4.6.7). The 2222 attribute is optional. The default value is 5s. 2224 interdigittimeout: indicates the maximum time to wait for another 2225 DTMF when the collected input is incomplete with respect to the 2226 grammar. A valid value is a Time Designation (see Section 4.6.7). 2227 The attribute is optional. The default value is 2s. 2229 termtimeout: indicates the maximum time to wait for the termchar 2230 character when the collected input is complete with respect to the 2231 grammar. A valid value is a Time Designation (see Section 4.6.7). 2232 The attribute is optional. The default value is 0s (no delay). 2234 escapekey: specifies a DTMF key that indicates collected grammar 2235 matches are discarded and the DTMF collection is to be re- 2236 initiated. A valid value is a DTMF Character (see Section 4.6.2). 2237 The attribute is optional. There is no default value. 2239 termchar: specifies a DTMF character for terminating DTMF input 2240 collection using the internal grammar. It is ignored when a 2241 custom grammar is specified. A valid value is a DTMF character 2242 (see Section 4.6.2). To disable termination by a conventional 2243 DTMF character, set the parameter to an unconventional character 2244 like 'A'. The attribute is optional. The default value is '#'. 2246 maxdigits: The maximum number of digits to collect using an internal 2247 digits (0-9 only) grammar. It is ignored when a custom grammar is 2248 specified. A valid value is a positive integer (see 2249 Section 4.6.5). The attribute is optional. The default value is 2250 5. 2252 The following matching priority is defined for incoming DTMF: 2253 termchar attribute, escapekey attribute and then as part of a 2254 grammar. For example, if "1" is defined as the escapekey attribute 2255 and as part of a grammar, then its interpretation as a escapekey 2256 takes priority. 2258 The element has the following child elements: 2260 : indicates a custom grammar format (see 2261 Section 4.3.1.3.1). The element is optional. 2263 The custom grammar takes priority over the internal grammar. If a 2264 element is specified, the MS MUST use it for DTMF 2265 collection. 2267 The MS has the following execution model for DTMF collection after 2268 initialization: 2270 1. The DTMF collection buffer MUST NOT receive DTMF input matching 2271 operations (see Section 4.3.1.2). 2273 2. If an error occurs during execution, then the MS terminates 2274 collection and reports the error to the dialog container (see 2275 Section 4.3). The MS MAY report DTMF collected before the error 2276 in (see Section 4.3.2.3). 2278 3. The MS clears the digit buffer if the value of the 2279 cleardigitbuffer attribute is true. 2281 4. The MS activates an initial timer with the duration of the value 2282 of the timeout attribute. If the initial timer expires before 2283 any DTMF input is received, then collection execution terminates, 2284 the (see Section 4.3.2.3) has the termmode 2285 attribute set to noinput and the execution status is reported to 2286 the dialog container. 2288 5. When the first DTMF collect input is received, the initial timer 2289 is cancelled and DTMF collection begins. Each DTMF input is 2290 collected unless it matches the value of the escapekey attribute, 2291 or the termchar attribute when the internal grammar is used. 2292 Collected input is matched against the grammar to determine if it 2293 is valid and, if valid, whether collection is complete. Valid 2294 DTMF patterns are either a simple digit string where the maximum 2295 length is determined by the maxdigits attribute and which can be 2296 optionally terminated by the character in the termchar attribute; 2297 or a custom DTMF grammar specified with the element. 2299 6. After escapekey input, or a valid input which does not complete 2300 the grammar, the MS activates a timer for the value of the 2301 interdigittimeout attribute or the termtimeout attribute. The MS 2302 only uses the termtimeout value when the grammar does not allow 2303 any additional input; otherwise, the MS uses the 2304 interdigittimeout. 2306 7. If DTMF collect input matches the value of the escapekey 2307 attribute, then the MS re-initializes DTMF collection: i.e. the 2308 MS discards collected DTMFs already matched against the grammar, 2309 and the MS attempts to match incoming DTMF (including any pending 2310 in the digit buffer) as described in Step 5 above. 2312 8. If the collect input is not valid with respect to the grammar or 2313 an interdigittimeout timer expires, the MS terminates collection 2314 execution and reports execution status to the dialog container 2315 with a (see Section 4.3.2.3) where the termmode 2316 attribute is set to nomatch. 2318 9. If the collect input completes the grammar or if a termtimeout 2319 timer expires, then the MS terminates collection execution and 2320 reports execution status to the dialog container with 2321 (see Section 4.3.2.3) where the termmode attribute 2322 is set to match. 2324 4.3.1.3.1. 2326 The element allows a custom grammar, inline or external, to 2327 be specified. Custom grammars permit the full range of DTMF 2328 characters including '*' and '#' to be specified for DTMF pattern 2329 matching. 2331 The element has the following attributes: 2333 src: specifies the location of an external grammar document. A 2334 valid value is a URI (see Section 4.6.9). The MS MUST support 2335 both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY 2336 support other schemes. If the URI scheme is unsupported, the MS 2337 sends a with a 420 status code (Section 4.5). If the 2338 resource cannot be retrieved within the timeout interval, the MS 2339 sends a with a 409 status code. If the grammar format 2340 is not supported, the MS sends a with a 424 status 2341 code. The attribute is optional. There is no default value. 2343 type: identifies the preferred type of the grammar document 2344 identified by the src attribute. A valid value is a MIME media 2345 type (see Section 4.6.10). If the URI scheme used in the src 2346 attribute defines a mechanism for establishing the authoratitive 2347 MIME media type of the media resource, the value returned by that 2348 mechanism takes precedence over this attribute. The attribute is 2349 optional. There is no default value. 2351 fetchtimeout: the maximum interval to wait when fetching a grammar 2352 resource. A valid value is a Time Designation (see 2353 Section 4.6.7). The attribute is optional. The default value is 2354 30s. 2356 The element allows inline grammars to be specified. XML 2357 grammar formats MUST use a namespace other than the one used in this 2358 specification. Non-XML grammar formats MAY use a CDATA section. 2360 The MS MUST support the [SRGS] XML grammar format ("application/ 2361 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 2362 formats. If the grammar format is not supported by the MS, then the 2363 MS sends a with a 424 status code (Section 4.5). 2365 For example, the following fragment shows DTMF collection with an 2366 inline SRGS grammar: 2368 2370 2371 2373 2374 2375 0 2376 1 2377 2 2378 3 2379 4 2380 5 2381 6 2382 7 2383 8 2384 9 2385 2386 2388 2389 2390 2391 2392 2393 # 2394 * 9 2395 2396 2398 2399 2400 2402 The same grammar could also be referenced externally (and take 2403 advantage of HTTP caching): 2405 2406 2408 2410 4.3.1.4. 2412 The element specifies how media input is recorded. 2414 The element has the following attributes: 2416 timeout: indicates the time to wait for user input to begin. A 2417 valid value is a Time Designation (see Section 4.6.7). The 2418 attribute is optional. The default value is 5s. 2420 vadinitial: Control whether voice activity detection (VAD) is used 2421 to initiate the recording operation. A valid value is a boolean 2422 (see Section 4.6.1). A value of true indicates the MS MUST 2423 initiate recording if the VAD detects voice on the configured 2424 inbound audio streams. A value of false indicates that the MS 2425 MUST NOT initiate recording using VAD. The attribute is optional. 2426 The default value is false. 2428 vadfinal: Control whether voice activity detection (VAD) is used to 2429 terminate the recording operation. A valid value is a boolean 2430 (see Section 4.6.1). A value of true indicates the MS MUST 2431 terminate recording if the VAD detects a period of silence (whose 2432 duration is specified by the finalsilence attribute) on configured 2433 inbound audio streams. A value of false indicates that the MS 2434 MUST NOT terminate recording using VAD. The attribute is 2435 optional. The default value is false. 2437 dtmfterm: Indicates whether the recording operation is terminated by 2438 DTMF input. A valid value is a boolean (see Section 4.6.1). A 2439 value of true indicates that recording is terminated by DTMF 2440 input. A value of false indicates that recording is not 2441 terminated by DTMF input. The attribute is optional. The default 2442 value is true. 2444 maxtime: indicates The maximum duration of the recording. A valid 2445 value is a Time Designation (see Section 4.6.7). The attribute is 2446 optional. The default value is 15s. 2448 beep: indicates whether a 'beep' is to be played immediately prior 2449 to initiation of the recording operation. A valid value is a 2450 boolean (see Section 4.6.1). The attribute is optional. The 2451 default value is false. 2453 finalsilence: indicates the interval of silence that indicates the 2454 end of voice input. This interval is not part of the recording 2455 itself. This parameter is ignored if the vadfinal attribute has 2456 the value false. A valid value is a Time Designation (see 2457 Section 4.6.7). The attribute is optional. The default value is 2458 5s. 2460 append: indicates whether recorded data is appended or not to a 2461 recording location if a resource already exists. A valid value is 2462 a boolean (see Section 4.6.1). A value of true indicates that 2463 recorded data is appended to the existing resource at a recording 2464 location. A value of false indicates that recorded data is to 2465 overwrite the existing resource. The mapping of the append 2466 operation onto the upload protocol scheme is implementation- 2467 specific. The attribute is optional. The default value is false. 2469 If either the vadinitial or vadfinal attribute is set to true and the 2470 MS does not support VAD, the MS sends a with a 434 status 2471 code (Section 4.5). 2473 The element has the following child element (0 or more 2474 occurrences): 2476 : specifies the location and type of the media resource for 2477 uploading recorded data (see Section 4.3.1.5). The MS MUST 2478 support both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes for 2479 uploading recorded data and the MS MAY support other schemes. The 2480 MS uploads recorded data to this resource as soon as possible 2481 after recording is complete. The element is optional. 2483 If multiple elements are specified, then media input is to be 2484 recorded in parallel to multiple resource locations. 2486 If no child element is specified, the MS MUST record media 2487 input but the recording location and the recording format are 2488 implementation-specific (e.g. the MS records audio in the WAV format 2489 to a local disk accessible by HTTP). The recording location and 2490 format are reported in (Section 4.3.2.4) when the dialog 2491 terminates. The recording MUST be available from this location until 2492 the connection or conference associated with the dialog on the MS 2493 terminates. 2495 If the MS does not support the configuration required for recording 2496 from the input media streams to one or more elements and a 2497 more specific error code is not defined for its child elements, the 2498 MS sends a with a 423 status code (Section 4.5). 2500 Note that an MS MAY support uploading recorded data to recording 2501 locations at the same time the recording operation takes place. Such 2502 implementations need to be aware of the requirements of certain 2503 recording formats (e.g. WAV) for metadata at the beginning of the 2504 uploaded file, that the finalsilence interval is not part of the 2505 recording and how these requirements interact with the URI scheme. 2507 The MS has the following execution model for recording after 2508 initialization: 2510 1. If an error occurs during execution (e.g. authentication or 2511 communication error when trying to upload to a recording 2512 location), then the MS terminates record execution and reports 2513 the error to the dialog container (see Section 4.3). The MS MAY 2514 report data recorded before the error in (see 2515 Section 4.3.2.4). 2517 2. If DTMF input (not matching a operation) is received 2518 during prompt playback and the prompt bargein attribute is set to 2519 true, then the MS activates the record execution. Otherwise, the 2520 MS activates it after the completion of prompt playback. 2522 3. If a beep attribute with the value of true is specified, then the 2523 MS plays a beep tone. 2525 4. The MS activates a timer with the duration of the value of the 2526 timeout attribute. If the timer expires before the recording 2527 operation begins, then the MS terminates the recording execution 2528 and reports the status to dialog container with (see 2529 Section 4.3.2.4) where the termmode attribute is set to noinput. 2531 5. Initiation of the recording operation depends on the value of the 2532 vadinitial attribute. If vadinitial has the value false, then 2533 the recording operation is initiated immediately. Otherwise, the 2534 recording operation is initiated when voice activity is detected. 2536 6. When the recording operation is initiated, a timer is started for 2537 the value of the maxtime attribute (maximum duration of the 2538 recording). If the timer expires before the recording operation 2539 is complete, then the MS terminates recording execution and 2540 reports the execution status to the dialog container with 2541 (see Section 4.3.2.4) where the termmode attribute 2542 set to maxtime. 2544 7. During the record operation input media streams are recording to 2545 a location and format specified in one or more child 2546 elements. If no child element is specified, the MS 2547 records input to an implementation-specific location and format. 2549 8. If the dtmfterm attribute has the value true and DTMF input is 2550 detected during the record operation, then the MS terminates 2551 recording and its status is reported to the dialog container with 2552 a (see Section 4.3.2.4) where the termmode attribute 2553 is set to dtmf. 2555 9. If vadfinal attribute has the value true, then the MS terminates 2556 the recording operation when a period of silence, with the 2557 duration specified by the value of the finalsilence attribute, is 2558 detected. This period of silence is not part of the final 2559 recording. The status is reported to the dialog container with a 2560 (see Section 4.3.2.4) where the termmode attribute 2561 is set to finalsilence. 2563 For example, a request to record audio and video input to separate 2564 locations: 2566 2567 2568 2569 2570 2572 2574 2575 2576 2577 2579 When the element is executed, it immediately begins 2580 recording of the audio and video (since vadinitial is false) where 2581 the destination locations are specified in the child 2582 elements. Recording is completed when the duration reaches 30s or 2583 the connection is terminated. 2585 4.3.1.5. 2587 The element specifies a media resource to playback from (see 2588 Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback 2589 case, the resource is retrieved and in the recording case, recording 2590 data is uploaded to the resource location. 2592 A element has the following attributes: 2594 loc: specifies the location of the media resource. A valid value is 2595 a URI (see Section 4.6.9). The MS MUST support both HTTP 2596 ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY support 2597 other schemes. If the URI scheme is not supported by the MS, the 2598 MS sends a with a 420 status code (Section 4.5). If 2599 the resource is to be retrieved but the MS cannot retrieve it 2600 within the timeout interval, the MS sends a with a 409 2601 status code. If the format of the media resource is not 2602 supported, the MS sends a with a 429 status code. The 2603 attribute is mandatory. 2605 type: specifies the type of the media resource indicated in the loc 2606 attribute. A valid value is a MIME media type (see 2607 Section 4.6.10) which, depending on its definition, can include 2608 additional parameters (e.g. [RFC4281]). If the URI scheme used 2609 in the loc attribute defines a mechanism for establishing the 2610 authoratitive MIME media type of the media resource, the value 2611 returned by that mechanism takes precedence over this attribute. 2612 If additional media parameters are specified, the MS MUST use them 2613 to determine media processing. For example, [RFC4281] defines a 2614 'codec' parameter for media types like video/3gpp which would 2615 determine which media streams are played or recorded. The 2616 attribute is optional. There is no default value. 2618 fetchtimeout: the maximum interval to wait when fetching a media 2619 resource. A valid value is a Time Designation (see 2620 Section 4.6.7). The attribute is optional. The default value is 2621 30s. 2623 soundLevel: playback soundLevel (volume) for the media resource. A 2624 valid value is a percentage (see Section 4.6.4). The value 2625 indicates increase or decrease relative to the original recorded 2626 volume of the media. A value of 100% (the default) plays the 2627 media at its recorded volume, a value of 200% will play the media 2628 twice recorded volume, 50% at half its recorded volume, a value of 2629 0% will play the media silently, and so on. See 'soundLevel' in 2630 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 2631 attribute is optional. The default value is 100%. 2633 clipBegin: offset from start of media resource to begin playback. A 2634 valid value is a Time Designation (see Section 4.6.7). The offset 2635 is measured in normal media playback time from the beginning of 2636 the media resource. If the clipBegin offset is after the end of 2637 media (or the clipEnd offset), no media is played. See 2638 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further 2639 information. The attribute is optional. The default value is 0s. 2641 clipEnd: offset from start of media resource to end playback. A 2642 valid value is a Time Designation (see Section 4.6.7). The offset 2643 is measured in normal media playback time from the beginning of 2644 the media resource. If the clipEnd offset is after the end of 2645 media, then the media is played to the end. If clipBegin is after 2646 clipEnd, then no media is played. See 'clipEnd' in SMIL 2647 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 2648 is optional. There is no default value. 2650 The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are 2651 only relevant in the playback use case. The MS ignores these 2652 attributes when using the for recording. 2654 The element has no children. 2656 4.3.2. Exit Information 2658 When the dialog exits, information about the specified operations is 2659 reported in a notification event (Section 4.2.5.1). 2661 4.3.2.1. 2663 The element reports the information about prompt 2664 execution. It has the following attributes: 2666 duration: indicates the duration of prompt playback in milliseconds. 2667 A valid value is a non-negative integer (see Section 4.6.4). The 2668 attribute is optional. There is no default value. 2670 termmode: indicates how playback was terminated. Valid values are: 2671 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 2673 The element has no child elements. 2675 4.3.2.2. 2677 The element reports information about control 2678 execution. 2680 The element has no attributes and has 0 or more 2681 child elements each describing an individual runtime 2682 control match. 2684 4.3.2.2.1. 2686 The element has the following attributes: 2688 dtmf: DTMF input triggering the runtime control. A valid value is a 2689 DTMF string (see Section 4.6.3) with no space between characters. 2690 The attribute is mandatory. 2692 timestamp: indicates the time (on the MS) at which the control was 2693 triggered. A valid value is an dateTime expression 2694 (Section 4.6.12). The attribute is mandatory. 2696 The element has no child elements. 2698 4.3.2.3. 2700 The element reports the information about collect 2701 execution. 2703 The element has the following attributes: 2705 dtmf: DTMF input collected from the user. A valid value is a DTMF 2706 string (see Section 4.6.3) with no space between characters. The 2707 attribute is optional. There is no default value. 2709 termmode: indicates how collection was terminated. Valid values 2710 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2711 mandatory. 2713 The element has no child elements. 2715 4.3.2.4. 2717 The element reports information about record execution 2718 (Section 4.3.1.4). 2720 The element has the following attributes: 2722 termmode: indicates how recording was terminated. Valid values are: 2723 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2724 attribute is mandatory. 2726 duration: indicates the duration of the recording in milliseconds. 2727 A valid value is a non-negative integer (see Section 4.6.4). The 2728 attribute is optional. There is no default value. 2730 The element has the following child element (0 or more 2731 occurrences): 2733 : indicates information about a recorded media resource 2734 (see Section 4.3.2.4.1). The element is optional. 2736 When the record operation is successful, the MS MUST specify a 2737 element for each recording location. For example, if the 2738 element contained three child elements, then the 2739 would contain three child elements. 2741 4.3.2.4.1. 2743 The element reports information about a recorded media 2744 resource. 2746 The element has the following attributes: 2748 loc: indicates the location of the media resource. A valid value is 2749 a URI (see Section 4.6.9). The attribute is mandatory. 2751 type: indicates the format of the media resource. A valid value is 2752 a MIME media type (see Section 4.6.10). The attribute is 2753 mandatory. 2755 size: indicates the size of the media resource in bytes. A valid 2756 value is a non-negative integer (see Section 4.6.4). The 2757 attribute is optional. There is no default value. 2759 4.4. Audit Elements 2761 The audit elements defined in this section allow the MS to be audited 2762 for package capabilities as well as dialogs managed by the package. 2763 Auditing is particularly important for two use cases. First, it 2764 enables discovery of package capabilities supported on an MS before 2765 an AS starts a dialog on connection or conference. The AS can then 2766 use this information to create request elements using supported 2767 capabilities and, in the case of codecs, to negotiate an appropriate 2768 SDP for a user agent's connection. Second, auditing enables 2769 discovery of the existence and status of dialogs currently managed by 2770 the package on the MS. This could be used when one AS takes over 2771 management of the dialogs if the AS which initiated the dialogs fails 2772 or is no longer available (see Security Considerations described in 2773 Section 7 ). 2775 4.4.1. 2777 The request element is sent to the MS to request information 2778 about the capabilities of, and dialogs currently managed with, this 2779 control package. Capabilities include supported dialog languages, 2780 grammar formats, record and media types as well as codecs. Dialog 2781 information includes the status of managed dialogs as well as codecs. 2783 The element has the following attributes: 2785 capabilities: indicates whether package capabilities are to be 2786 audited. A valid value is a boolean (see Section 4.6.1). A value 2787 of true indicates that capability information is to be reported. 2788 A value of false indicates that capability information is not to 2789 be reported. The attribute is optional. The default value is 2790 true. 2792 dialogs: indicates whether dialogs currently managed by the package 2793 are to be audited. A valid value is a boolean (see 2794 Section 4.6.1). A value of true indicates that dialog information 2795 is to be reported. A value of false indicates that dialog 2796 information is not to be reported. The attribute is optional. 2797 The default value is true. 2799 dialogid: string identifying a specific dialog to audit. The MS 2800 sends a response with a 406 status code (Section 4.5) if the 2801 specified dialog identifier is invalid. The attribute is 2802 optional. There is no default value. 2804 If the dialogs attribute has the value true and dialogid attribute is 2805 specified, then only audit information about the specified dialog is 2806 reported. If the dialogs attribute has the value false, then no 2807 dialog audit information is reported even if a dialogid attribute is 2808 specified. 2810 The element has no child elements. 2812 When the MS receives an request, it MUST reply with a 2813 element (Section 4.4.2) which includes a mandatory 2814 attribute describing the status in terms of a numeric code. Response 2815 status codes are defined in Section 4.5. If the request is 2816 successful, the contains (depending on attribute 2817 values) a element (Section 4.4.2.2) reporting package 2818 capabilities and a element (Section 4.4.2.3) reporting 2819 managed dialog information. If the MS is not able to process the 2820 request and carry out the audit operation, the audit request has 2821 failed and the MS MUST indicate the class of failure using an 2822 appropriate 4xx response code. Unless an error response code is 2823 specified for a class of error within this section, implementations 2824 follow Section 4.5 in determining the appropriate status code for the 2825 response. 2827 For example, a request to audit capabilities and dialogs managed by 2828 the package: 2830 2831 2832 2834 In this example, only capabilities are to be audited: 2836 2837 2838 2840 With this example, only a specific dialog is to be audited: 2842 2843 2845 2847 4.4.2. 2849 The element describes a response to a 2850 request. 2852 The element has the following attributes: 2854 status: numeric code indicating the audit response status. The 2855 attribute is mandatory. Valid values are defined in Section 4.5. 2857 reason: string specifying a reason for the status. The attribute is 2858 optional. 2860 The element has the following sequence of child 2861 elements: 2863 element (Section 4.4.2.2) describing capabilities of 2864 the package. The element is optional. 2866 element (Section 4.4.2.3) describing information about 2867 managed dialogs. The element is optional. 2869 For example, a successful response to a request requesting 2870 capabilities and dialogs information: 2872 2873 2874 2875 2876 application/voicexml+xml 2877 2878 2879 2880 audio/x-wav 2881 video/3gpp 2882 2883 2884 audio/x-wav 2885 video/3gpp 2886 2887 2888 2889 mdy 2890 ymd 2891 dmy 2892 dm 2894 2895 2896 600s 2897 1800s 2898 2899 2900 H263 2901 2902 2903 H264 2904 2905 2906 PCMU 2907 2908 2909 PCMA 2910 2911 2912 telephone-event 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 PCMA 2923 2924 2925 telephone-event 2926 2927 2928 2929 2930 2931 2933 4.4.2.1. 2935 The provides audit information about codecs. 2937 The element has no attributes. 2939 The element has the following sequence of child elements (0 2940 or more occurrences): 2942 : audit information for a codec (Section 4.4.2.1.1). The 2943 element is optional. 2945 For example, a fragment describing two codecs: 2947 2948 2949 PCMA 2950 2951 2952 telephone-event 2953 2954 2956 4.4.2.1.1. 2958 The element describes a codec on the MS. The element is 2959 modeled on the element in the XCON conference information 2960 data model ([I-D.ietf-xcon-common-data-model]) but allows addition 2961 information (e.g. rate, speed, etc) to be specified. 2963 The element has the following attributes: 2965 name: indicates the type name of the codec's media format as defined 2966 in IANA ([IANA]). A valid value is a "type-name" as defined in 2967 Section 4.2 of [RFC4288]. The attribute is manadatory. 2969 The element has the following sequence of child elements: 2971 : element whose content model describes the subtype of the 2972 codec's media format as defined in IANA ([IANA]). A valid value 2973 is a "subtype-name" as defined in Section 4.2 of [RFC4288]. The 2974 element is mandatory. 2976 : element (Section 4.2.6) describing additional information 2977 about the codec. This package is agnostic to the names and values 2978 of the codec parameters supported by an implementation. The 2979 element is optional. 2981 For example, a fragment with a element describing the H263 2982 video codec: 2984 2985 H263 2986 2988 4.4.2.2. 2990 The element provides audit information about package 2991 capabilities. 2993 The element has no attributes. 2995 The element has the following sequence of child 2996 elements: 2998 : element (Section 4.4.2.2.1) describing additional 2999 dialog languages supported by the MS. The element is mandatory. 3001 : element (Section 4.4.2.2.2) describing supported 3002 (Section 4.3.1.3.1) format types. The element is 3003 mandatory. 3005 : element (Section 4.4.2.2.3) describing 3006 (Section 4.3.1.5) format types supported for 3007 (Section 4.3.1.4). The element is mandatory. 3009 : element (Section 4.4.2.2.4) describing supported 3010 (Section 4.3.1.5) format types for playback within a 3011 (Section 4.3.1.1). The element is mandatory. 3013 : element (Section 4.4.2.2.5) describing supported types 3014 and formats for the element (Section 4.4.2.2.5). The 3015 element is mandatory. 3017 : element (Section 4.4.2.2.6) describing the 3018 supported maximum duration for a prepared dialog following a 3019 (Section 4.2.1) request. The element is 3020 mandatory. 3022 : element (Section 4.4.2.2.7) describing the 3023 supported maximum duration for a recording 3024 Section 4.3.1.4) request. The element is mandatory. 3026 : element (Section 4.4.2.1) describing codecs available to 3027 the package. The element is mandatory. 3029 For example, a fragment describing capabilities: 3031 3032 3033 application/voicexml+xml 3034 3035 3036 3037 audio/x-wav 3038 video/3gpp 3039 3040 3041 audio/x-wav 3042 video/3gpp 3043 3044 3045 30s 3046 60s 3047 3048 3049 H263 3050 3051 3052 H264 3053 3054 3055 PCMU 3056 3057 3058 PCMA 3059 3060 3061 telephone-event 3062 3063 3064 3066 4.4.2.2.1. 3068 The element provides information about additional 3069 dialog languages supported by the package. Dialog languages are 3070 identified by their associated MIME media types. The MS MUST NOT 3071 include the mandatory dialog language for this package (Section 4.3). 3073 The element has no attributes. 3075 The element has the following sequence of child 3076 elements (0 or more occurrences): 3078 : element whose content model describes a MIME media type 3079 (Section 4.6.10) associated with a supported dialog language. The 3080 element is optional. 3082 4.4.2.2.2. 3084 The element provides information about 3085 format types supported by the package. The MS MUST NOT include the 3086 mandatory SRGS format type, "application/srgs+xml" 3087 (Section 4.3.1.3.1). 3089 The element has no attributes. 3091 The element has the following sequence of child 3092 elements (0 or more occurrences): 3094 : element whose content model describes a mime type 3095 (Section 4.6.10). The element is optional. 3097 4.4.2.2.3. 3099 The element provides information about media resource 3100 format types of supported by the package (Section 4.3.1.4). 3102 The element has no attributes. 3104 The element has the following sequence of child 3105 elements (0 or more occurrences): 3107 : element whose content model describes a mime type 3108 (Section 4.6.10). The element is optional. 3110 4.4.2.2.4. 3112 The element provides information about media resource 3113 format types of supported by the package (Section 4.3.1.1). 3115 The element has no attributes. 3117 The element has the following sequence of child 3118 elements (0 or more occurrences): 3120 : element whose content model describes a mime type 3121 (Section 4.6.10). The element is optional. 3123 4.4.2.2.5. 3125 The element provides information about types and formats 3126 for the element (Section 4.3.1.1.1) supported by the 3127 package. 3129 The element has no attributes. 3131 The element has the following sequence of child elements 3132 (0 or more occurrences): 3134 : element describing the formats support for a given 3135 type (Section 4.4.2.2.5.1). The element is optional. 3137 For example, a fragment describing support for with a 3138 "date" type according to the formats specified in 3139 Section 4.3.1.1.1.1. 3141 3142 3143 mdy 3144 ymd 3145 dmy 3146 dm 3147 3148 3150 4.4.2.2.5.1. 3152 The element describes the formats supported for 3153 supported type. 3155 The element has the following attributes: 3157 type: indicates a supported value associated with the type attribute 3158 of element. The attribute is manadatory. 3160 desc: a string providing some textual description of the type and 3161 format. The attribute is optional. 3163 The element has the following sequence of child 3164 elements (0 or more occurrences): 3166 : element with a desc attribute (optional description) and a 3167 content model describing a supported format in the 3168 format attribute. The element is optional. 3170 4.4.2.2.6. 3172 The element describes the maximum duration for 3173 a dialog to remain in the prepared state (Section 4.2) following a 3174 (Section 4.2.1) request. 3176 The element has no attributes. 3178 The element has a content model describing the 3179 maximum prepared dialog duration as a time designation 3180 (Section 4.6.7). 3182 4.4.2.2.7. 3184 The element describes the maximum recording 3185 duration for Section 4.3.1.4) request supported by the MS. 3187 The element has no attributes. 3189 The element has a content model describing the 3190 maximum duration of recording as a time designation (Section 4.6.7). 3192 4.4.2.3. 3194 The element provides audit information about dialogs. 3196 The element has no attributes. 3198 The element has the following sequence of child elements (0 3199 or more occurrences): 3201 : audit information for a dialog (Section 4.4.2.3.1). 3202 The element is optional. 3204 4.4.2.3.1. 3206 The element has the following attributes: 3208 dialogid: string identifying the dialog. The attribute is 3209 mandatory. 3211 state: string indicating the state of the dialog. Valid values are: 3212 preparing, prepared, starting, started. The attribute is 3213 mandatory. 3215 connectionid: string identifying the SIP dialog connection 3216 associated with the dialog (see Section 16.1 of 3217 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3218 optional. There is no default value. 3220 conferenceid: string identifying the conference associated with the 3221 dialog (see Section 16.1 of 3222 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3223 optional. There is no default value. 3225 The element has the following child element: 3227 element describing codecs used in the dialog. See 3228 Section 4.4.2.1. The element is optional. 3230 For example, a fragment describing a started dialog which is using 3231 PCMU and telephony-event audio codecs: 3233 3234 3235 3236 PCMU 3237 3238 3239 telephone-event 3240 3241 3242 3244 4.5. Response Status Codes 3246 This section describes the response codes in Table 1 for the status 3247 attribute of dialog management (Section 4.2.4) and audit 3248 (Section 4.4.2) responses. The MS MUST support the 3249 status response codes defined here. All other valid but undefined 3250 values are reserved for future use, where new status codes are 3251 assigned using the Standards Action process defined in [RFC5226]. 3252 The AS MUST treat any responses it does not recognize as being 3253 equivalent to the x00 response code for all classes. For example, if 3254 an AS receives an unrecognized response code of 499, it can safely 3255 assume that there was something wrong with its request and treat the 3256 response as if it had received a 400 (Syntax error) response code. 3258 4xx responses are definite failure responses from a particular MS. 3259 The reason attribute in the response SHOULD identify the failure in 3260 more detail, for example, "Mandatory attribute missing: src in media 3261 element" for a 400 (Syntax error) response code. 3263 The AS SHOULD NOT retry the same request without modification (for 3264 example, correcting a syntax error or changing the connectionid to 3265 use one available on the MS). However, the same request to a 3266 different MS might be successful; for example, if another MS supports 3267 a capability required in the request. 3269 4xx failure responses can be grouped into three classes: failure due 3270 to a syntax error in the request (400); failure due to an error 3271 executing the request on the MS (405-419); and failure due to the 3272 request requiring a capability not supported by the MS (420-439). 3274 In cases where more than one request code could be reported for a 3275 failure, the MS SHOULD use the most specific error code of the 3276 failure class for the detected error. For example, if the MS detects 3277 that the dialogid in the request is invalid, then it uses a 406 3278 status code. However, if the MS merely detects that an execution 3279 error occurred, then 419 is used. 3281 +------+---------------+-----------------------+--------------------+ 3282 | Code | Summary | Description | Informational: AS | 3283 | | | | Possible Recovery | 3284 | | | | Action | 3285 +------+---------------+-----------------------+--------------------+ 3286 | 200 | OK | request has succeeded | | 3287 | | | | | 3288 | 400 | Syntax error | request is | Change the request | 3289 | | | syntactically | so that it is | 3290 | | | invalid: it is not | syntactically | 3291 | | | valid with respect to | valid. | 3292 | | | the XML schema | | 3293 | | | specified in | | 3294 | | | Section 5 or it | | 3295 | | | violates a | | 3296 | | | co-occurrence | | 3297 | | | constraint for a | | 3298 | | | request element | | 3299 | | | defined in Section 4. | | 3300 | | | | | 3301 | 405 | dialogid | request uses a | Send a request for | 3302 | | already | dialogid identifier | a new dialog | 3303 | | exists | for a new dialog | without specifying | 3304 | | | which is already used | the dialogid and | 3305 | | | by another dialog on | let the MS | 3306 | | | the MS (see | generate a unique | 3307 | | | Section 4.2). | dialogid in the | 3308 | | | | response. | 3309 | | | | | 3310 | 406 | dialogid does | request uses a | Send an | 3311 | | not exist | dialogid identifier | request | 3312 | | | for an dialog which | (Section 4.4.1) | 3313 | | | does not exist on the | requesting the | 3314 | | | MS (see Section 4.2). | list of dialog | 3315 | | | | identifiers | 3316 | | | | already used by | 3317 | | | | the MS and then | 3318 | | | | use one of the | 3319 | | | | listed dialog | 3320 | | | | identifiers. | 3321 | | | | | 3322 | 407 | connectionid | request uses a | Use another method | 3323 | | does not | connectionid | to determine which | 3324 | | exist | identifier for a | connections are | 3325 | | | connection which does | available on the | 3326 | | | not exist on the MS. | MS. | 3327 | | | | | 3328 | 408 | conferenceid | request uses a | Use another method | 3329 | | does not | conferenceid | to determine which | 3330 | | exist | identifier for a | conferences are | 3331 | | | conference which does | available on the | 3332 | | | not exist on the MS. | MS. | 3333 | | | | | 3334 | 409 | Resource | request use a URI to | Check that the | 3335 | | cannot be | reference an external | resource URI is | 3336 | | retrieved | resource (e.g. | valid, can be | 3337 | | | dialog, media or | reached from the | 3338 | | | grammar) which cannot | MS, and that the | 3339 | | | be retrieved within | appropriate | 3340 | | | the timeout interval | authentication is | 3341 | | | | used. | 3342 | | | | | 3343 | 410 | Dialog | request to prepare or | | 3344 | | execution | start a dialog which | | 3345 | | canceled | has been terminated | | 3346 | | | by a | | 3347 | | | | | 3348 | | | request (see | | 3349 | | | Section 4.2) | | 3350 | | | | | 3351 | 411 | Incompatible | request specifies a | Change the media | 3352 | | stream | media stream | stream | 3353 | | configuration | configuration which | configuration to | 3354 | | | is in conflict with | match the | 3355 | | | itself, or the | capabilities of | 3356 | | | connection or | the connection or | 3357 | | | conference | conference | 3358 | | | capabilities (see | | 3359 | | | Section 4.2.2) | | 3360 | | | | | 3361 | 412 | Media stream | request specifies an | Check the media | 3362 | | not available | operation for which a | stream capability | 3363 | | | media stream is not | of the connection | 3364 | | | available. For | or conference and | 3365 | | | example, playing a | use an operation | 3366 | | | video media resource | which only uses | 3367 | | | on an connection or | these capabilities | 3368 | | | conference without | | 3369 | | | video streams. | | 3370 | | | | | 3371 | 413 | Control keys | the request contains | Use different keys | 3372 | | with same | a element | for the different | 3373 | | value | (Section 4.3.1.2) | control | 3374 | | | where some keys have | operations. | 3375 | | | the same value | | 3376 | | | | | 3377 | 419 | Other | requested operation | | 3378 | | execution | cannot be executed by | | 3379 | | error | the MS. | | 3380 | | | | | 3381 | 420 | Unsupported | request specifies a | Use a URI scheme | 3382 | | URI scheme | URI whose scheme is | which is | 3383 | | | not supported by the | supported. | 3384 | | | MS | | 3385 | | | | | 3386 | 421 | Unsupported | request references an | Send an | 3387 | | dialog | external dialog | request | 3388 | | language | language not | (Section 4.4.1) | 3389 | | | supported by the MS | requesting the MS | 3390 | | | | capabilities and | 3391 | | | | then use one of | 3392 | | | | the listed dialog | 3393 | | | | languages. | 3394 | | | | | 3395 | 422 | Unsupported | request references a | Send an | 3396 | | playback | media resource for | request | 3397 | | format | playback whose format | (Section 4.4.1) | 3398 | | | is not supported by | requesting the MS | 3399 | | | the MS | capabilities and | 3400 | | | | then use one of | 3401 | | | | the listed | 3402 | | | | playback media | 3403 | | | | formats. | 3404 | | | | | 3405 | 423 | Unsupported | request references a | Send an | 3406 | | record format | media resource for | request | 3407 | | | recording whose | (Section 4.4.1) | 3408 | | | format is not | requesting the MS | 3409 | | | supported by the MS | capabilities and | 3410 | | | | then use one of | 3411 | | | | the listed record | 3412 | | | | media formats. | 3413 | | | | | 3414 | 424 | Unsupported | request references a | Send an | 3415 | | grammar | grammar whose format | request | 3416 | | format | is not supported by | (Section 4.4.1) | 3417 | | | the MS | requesting the MS | 3418 | | | | capabilities and | 3419 | | | | then use one of | 3420 | | | | the listed grammar | 3421 | | | | types. | 3422 | | | | | 3423 | 425 | Unsupported | request contains a | Send an | 3424 | | variable | prompt | request | 3425 | | configuration | element | (Section 4.4.1) | 3426 | | | (Section 4.3.1.1.1) | requesting the MS | 3427 | | | not supported by the | capabilities and | 3428 | | | MS | then use one of | 3429 | | | | the listed | 3430 | | | | variable types. | 3431 | | | | | 3432 | 426 | Unsupported | request contains a | | 3433 | | DTMF | prompt element | | 3434 | | configuration | (Section 4.3.1.1.2) | | 3435 | | | not supported by the | | 3436 | | | MS | | 3437 | | | | | 3438 | 427 | Unsupported | request contains a | | 3439 | | parameter | element | | 3440 | | | (Section 4.2.6.1) not | | 3441 | | | supported by the MS | | 3442 | | | | | 3443 | 428 | Unsupported | request contains a | | 3444 | | media stream | element | | 3445 | | configuration | (Section 4.2.2.2) | | 3446 | | | whose configuration | | 3447 | | | is not supported by | | 3448 | | | the MS. | | 3449 | | | | | 3450 | 429 | Unsupported | request contains a | | 3451 | | playback | element | | 3452 | | configuration | (Section 4.3.1.1) | | 3453 | | | which the MS is | | 3454 | | | unable to play on the | | 3455 | | | available output | | 3456 | | | media streams | | 3457 | | | | | 3458 | 430 | Unsupported | request contains a | | 3459 | | record | element | | 3460 | | configuration | (Section 4.3.1.4) | | 3461 | | | which the MS is | | 3462 | | | unable to record with | | 3463 | | | on the available | | 3464 | | | input media streams | | 3465 | | | | | 3466 | 431 | Unsupported | the request contains | | 3467 | | foreign | attributes or | | 3468 | | namespace | elements from another | | 3469 | | attribute or | namespace which the | | 3470 | | element | MS does not support | | 3471 | | | | | 3472 | 432 | Unsupported | the request tries to | | 3473 | | multiple | start another dialog | | 3474 | | dialog | on the same | | 3475 | | capability | conference or | | 3476 | | | connection where a | | 3477 | | | dialog is already | | 3478 | | | running | | 3479 | | | | | 3480 | 433 | Unsupported | the request contains | | 3481 | | collect and | and | | 3482 | | record | elements and | | 3483 | | capability | the MS does support | | 3484 | | | these operations | | 3485 | | | simultaneously | | 3486 | | | | | 3487 | 434 | Unsupported | the request contains | | 3488 | | VAD | a element | | 3489 | | capability | where Voice Activity | | 3490 | | | Detection (VAD) is | | 3491 | | | required, but the MS | | 3492 | | | does not support VAD. | | 3493 | | | | | 3494 | 435 | Unsupported | the request contains | | 3495 | | parallel | a prompt | | 3496 | | playback | element whose | | 3497 | | | configuration is not | | 3498 | | | supported by the MS. | | 3499 | | | | | 3500 | 439 | Other | request requires | | 3501 | | unsupported | another capability | | 3502 | | capability | not supported by the | | 3503 | | | MS | | 3504 +------+---------------+-----------------------+--------------------+ 3506 Table 1: status codes 3508 4.6. Type Definitions 3510 This section defines types referenced in attribute and element 3511 definitions. 3513 4.6.1. Boolean 3515 The value space of boolean is the set {true, false, 1, 0} as defined 3516 in Section 3.2.2 of [XMLSchema:Part2]. In accordance with this 3517 definition, the concept of false can be lexically represented by the 3518 strings "0" and "false" and the concept of true by the strings "1" 3519 and "true"; implementations MUST support both styles of lexical 3520 representation. 3522 4.6.2. DTMFChar 3524 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 3525 7, 8, 9, #, *, A, B, C, D}. 3527 4.6.3. DTMFString 3529 A String composed of one or more DTMFChars. 3531 4.6.4. Non-Negative Integer 3533 The value space of non-negative integer is the infinite set 3534 {0,1,2,...} as defined in Section 3.3.20 of [XMLSchema:Part2]. 3536 4.6.5. Positive Integer 3538 The value space of positive integer is the infinite set {1,2,...} as 3539 defined in Section 3.3.25 of [XMLSchema:Part2]. 3541 4.6.6. String 3543 A string in the character encoding associated with the XML element as 3544 defined in Section 3.2.1 of [XMLSchema:Part2]. 3546 4.6.7. Time Designation 3548 A time designation consists of a non-negative real number followed by 3549 a time unit identifier. 3551 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 3553 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 3555 4.6.8. Percentage 3557 A percentage consists of a Positive Integer followed by "%". 3559 Examples include: "100%", "500%" and "10%". 3561 4.6.9. URI 3563 Uniform Resource Indicator as defined in [RFC3986]. 3565 4.6.10. MIME Media Type 3567 A string formated as an IANA MIME media type ([MIME.mediatypes]). 3568 The ABNF ([RFC5234]) production for the string is: 3570 type-name "/" subtype-name *(";" parameter-name) 3572 where "type-name" and "subtype-name" are defined in Section 4.2, and 3573 "parameter-name" in Section 4.3, of [RFC4288]. 3575 4.6.11. Language Identifier 3577 A language identifier labels information content as being of a 3578 particular human language variant. Following the XML specification 3579 for language identification [XML], a legal language identifier is 3580 identified by a RFC5646 ([RFC5646]) and RFC4647 ([RFC4647]) code 3581 where the language code is required and a country code or other 3582 subtag identifier is optional. 3584 4.6.12. DateTime 3586 A string formated according to the XML schema definition of a 3587 dateTime type ([XMLSchema:Part2]). 3589 5. Formal Syntax 3591 This section defines the XML schema for IVR Control Package. The 3592 schema is normative. 3594 The schema defines datatypes, attributes, dialog management and IVR 3595 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 3596 most elements the order of child elements is significant. The schema 3597 is extensible: elements allow attributes and child elements from 3598 other namespaces. Elements from outside this package's namespace can 3599 occur after elements defined in this package. 3601 The schema is dependent upon the schema (framework.xsd) defined in 3602 Section 16.1 of the Control Framework 3603 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 3604 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 3605 xml:base). 3607 3608 3614 3615 3616 IETF MediaCtrl IVR 1.0 (20101020) 3618 This is the schema of the IETF MediaCtrl IVR control 3619 package. 3621 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 3623 3624 3626 3634 3636 3637 3638 This import brings in the XML attributes for 3639 xml:base, xml:lang, etc 3641 See http://www.w3.org/2001/xml.xsd for latest version 3642 3643 3644 3646 3649 3650 3651 This import brings in the framework attributes for 3652 conferenceid and connectionid. 3653 3654 3655 3657 3665 3666 3667 3668 This type is extended by other (non-mixed) component types to 3669 allow attributes from other namespaces. 3670 3671 3672 3673 3674 3676 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3697 3698 3699 3701 3702 3703 3705 3707 3715 3717 3718 3719 3720 3721 3723 3725 3728 3729 3730 3731 3732 3733 3735 3737 3738 3739 3741 3743 3745 3746 3747 3748 3749 3751 3753 3755 3757 3759 3760 3761 3762 3763 3764 3766 3768 3770 3771 3772 3773 3775 3776 3778 3779 3780 3781 3782 3784 3785 3787 3789 3790 3791 3793 3795 3797 3798 3799 3800 3801 3803 3804 3806 3807 3809 3810 3811 3812 3814 3816 3818 3819 3820 3821 3822 3823 3825 3827 3829 3830 3831 3833 3834 3835 3837 3839 3841 3842 3843 3844 3845 3847 3849 3851 3853 3855 3857 3858 3860 3861 3862 3863 3865 3867 3869 3870 3871 3872 3873 3875 3876 3878 3880 3882 3883 3884 3886 3888 3890 3891 3892 3893 3894 3896 3897 3899 3901 3902 3903 3905 3907 3909 3910 3911 3912 3913 3915 3917 3918 3919 3920 3922 3924 3926 3927 3928 3929 3930 3932 3933 3935 3936 3937 3938 3940 3942 3944 3945 3946 3947 3948 3950 3951 3953 3955 3956 3957 3959 3960 3962 3963 3964 3965 3966 3968 3970 3971 3973 3975 3976 3977 3979 3981 3983 3984 3985 3986 3987 3989 3990 3992 3994 3996 3997 3998 4000 4002 4004 4005 4006 4007 4008 4010 4012 4013 4014 4015 4017 4019 4021 4022 4023 4024 4025 4027 4028 4030 4031 4032 4034 4036 4037 4038 4039 4040 4041 4043 4045 4046 4047 4048 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4061 4063 4065 4066 4067 4068 4069 4071 4073 4075 4076 4078 4079 4081 4082 4083 4085 4087 4088 4089 4090 4092 4094 4095 4096 4097 4098 4100 4102 4103 4104 4105 4106 4108 4110 4112 4114 4116 4117 4119 4121 4123 4124 4125 4127 4129 4131 4132 4133 4134 4135 4136 4137 4138 4139 4141 4142 4143 4145 4146 4147 4149 4151 4153 4154 4155 4156 4157 4159 4160 4162 4163 4165 4167 4169 4171 4172 4173 4175 4177 4179 4180 4181 4182 4183 4185 4186 4188 4190 4191 4192 4193 4194 4195 4197 4199 4201 4202 4203 4204 4205 4207 4208 4210 4212 4214 4216 4217 4218 4220 4222 4224 4225 4226 4227 4228 4229 4230 4231 4232 4234 4235 4237 4239 4240 4242 4244 4246 4247 4248 4249 4250 4251 4252 4253 4255 4256 4257 4258 4260 4262 4264 4265 4266 4267 4268 4270 4271 4273 4274 4275 4277 4279 4281 4283 4285 4288 4290 4292 4294 4296 4298 4300 4301 4302 4304 4306 4308 4309 4310 4311 4312 4314 4316 4317 4319 4321 4323 4325 4327 4329 4331 4332 4333 4334 4336 4337 4338 4339 4340 4342 4343 4344 4345 4347 4348 4350 4352 4354 4355 4356 4357 4358 4360 4362 4363 4365 4367 4369 4371 4373 4375 4377 4379 4380 4381 4382 4384 4392 4394 4395 4396 4397 4398 4400 4401 4403 4405 4407 4408 4409 4411 4413 4415 4416 4417 4418 4419 4421 4423 4425 4426 4428 4430 4431 4432 4434 4436 4438 4439 4440 4441 4442 4444 4446 4448 4449 4451 4452 4453 4455 4457 4459 4460 4461 4463 4465 4467 4468 4469 4470 4471 4473 4475 4476 4478 4479 4481 4483 4485 4486 4487 4488 4489 4491 4493 4495 4497 4499 4501 4503 4505 4507 4508 4509 4510 4512 4514 4516 4518 4520 4521 4522 4523 4524 4526 4528 4529 4530 4531 4533 4535 4537 4538 4539 4540 4541 4543 4545 4546 4547 4548 4550 4552 4554 4555 4556 4557 4558 4560 4562 4563 4564 4565 4567 4568 4570 4571 4572 4573 4574 4576 4578 4579 4580 4581 4583 4585 4587 4588 4589 4590 4591 4593 4595 4596 4597 4598 4600 4602 4603 4604 4605 4606 4608 4610 4611 4612 4613 4614 4616 4618 4620 4621 4622 4623 4624 4626 4627 4628 4629 4631 4633 4635 4638 4640 4643 4645 4646 4647 4648 4649 4651 4653 4654 4655 4656 4658 4660 4661 4662 4663 4664 4665 4667 4669 4670 4672 4674 4675 4676 4677 4679 4681 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 Time designation following Time in CSS2 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 DTMF character [0-9#*A-D] 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 DTMF sequence [0-9#*A-D] 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 whole integer followed by '%' 4767 4768 4769 4770 4771 4772 4774 4775 4776 4777 4778 4779 4780 4782 4783 4784 4785 4786 4787 4788 4789 4791 4792 4793 4794 4795 4796 4797 4798 4799 4801 4802 4803 4804 4805 4806 4807 4809 4810 4811 4812 4813 4814 4816 4817 6. Examples 4819 This section provides examples of the IVR Control package. 4821 6.1. AS-MS Dialog Interaction Examples 4823 The following example assume a control channel has been established 4824 and synced as described in the Media Control Channel Framework 4825 ([I-D.ietf-mediactrl-sip-control-framework]). 4827 The XML messages are in angled brackets (with the root 4828 omitted); the REPORT status is in round brackets. Other aspects of 4829 the protocol are omitted for readability. 4831 6.1.1. Starting an IVR dialog 4833 An IVR dialog is started successfully, and dialogexit notification 4834 is sent from the MS to the AS when the dialog exits normally. 4836 Application Server (AS) Media Server (MS) 4837 | | 4838 | (1) CONTROL: | 4839 | ----------------------------------------> | 4840 | | 4841 | (2) 202 | 4842 | <--------------------------------------- | 4843 | | 4844 | | 4845 | (3) REPORT: | 4846 | (terminate) | 4847 | <---------------------------------------- | 4848 | | 4849 | (4) 200 | 4850 | ----------------------------------------> | 4851 | | 4852 | (5) CONTROL: | 4853 | | 4854 | <---------------------------------------- | 4855 | | 4856 | (6) 200 | 4857 | ----------------------------------------> | 4858 | | 4860 6.1.2. IVR dialog fails to start 4862 An IVR dialog fails to start due to an unknown dialog language. The 4863 is reported in a framework 200 message. 4865 Application Server (AS) Media Server (MS) 4866 | | 4867 | (1) CONTROL: | 4868 | ----------------------------------------> | 4869 | | 4870 | (2) 200: | 4871 | <---------------------------------------- | 4872 | | 4874 6.1.3. Preparing and starting an IVR dialog 4876 An IVR dialog is prepared and started successfully, and then the 4877 dialog exits normally. 4879 Application Server (AS) Media Server (MS) 4880 | | 4881 | (1) CONTROL: | 4882 | ----------------------------------------> | 4883 | | 4884 | (2) 202 | 4885 | <--------------------------------------- | 4886 | | 4887 | (3) REPORT: | 4888 | (terminate) | 4889 | <---------------------------------------- | 4890 | | 4891 | (4) 200 | 4892 | ----------------------------------------> | 4893 | | 4894 | (5) CONTROL: | 4895 | ----------------------------------------> | 4896 | | 4897 | (6) 202 | 4898 | <--------------------------------------- | 4899 | | 4900 | (7) REPORT: | 4901 | (terminate) | 4902 | <---------------------------------------- | 4903 | | 4904 | (8) 200 | 4905 | ----------------------------------------> | 4906 | | 4907 | (9) CONTROL: | 4908 | <---------------------------------------- | 4909 | | 4910 | (10) 200 | 4911 | ----------------------------------------> | 4912 | | 4914 6.1.4. Terminating a dialog 4916 An IVR dialog is started successfully, and then terminated by the AS. 4917 The dialogexit event is sent to the AS when the dialog exits. 4919 Application Server (AS) Media Server (MS) 4920 | | 4921 | (1) CONTROL: | 4922 | ----------------------------------------> | 4923 | | 4924 | (2) 202 | 4925 | <--------------------------------------- | 4926 | | 4927 | (3) REPORT: | 4928 | (terminate) | 4929 | <---------------------------------------- | 4930 | | 4931 | (4) 200 | 4932 | ----------------------------------------> | 4933 | | 4934 | (5) CONTROL: | 4935 | ----------------------------------------> | 4936 | | 4937 | (6) 200: | 4938 | <---------------------------------------- | 4939 | | 4940 | (7) CONTROL: | 4941 | <---------------------------------------- | 4942 | | 4943 | (8) 200 | 4944 | ----------------------------------------> | 4945 | | 4947 Note that in (6) the payload to the 4948 request is carried on a framework 200 response since it could 4949 complete the requested operation before the transaction timeout. 4951 6.2. IVR Dialog Examples 4953 The following examples show how is used with 4954 , and elements to play prompts, 4955 set runtime controls, collect DTMF input and record user input. 4957 The examples do not specify all messages between the AS and MS. 4959 6.2.1. Playing announcements 4961 This example prepares an announcement composed of two prompts where 4962 the dialog repeatCount set to 2. 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4975 If the dialog is prepared successfully, a is returned with 4976 status 200 and a dialog identifier assigned by the MS: 4978 4979 4980 4982 The prepared dialog is then started on a conference playing the 4983 prompts twice: 4985 4986 4987 4989 In the case of a successful dialog, the output is provided in 4990 ; for example 4992 4993 4994 4995 4996 4997 4998 5000 6.2.2. Prompt and collect 5002 In this example, a prompt is played and then the MS waits for 30s for 5003 a two digit sequence: 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5016 If no user input is collected within 30s, then following notification 5017 event would be returned: 5019 5020 5021 5022 5023 5024 5025 5026 5028 The collect operation can be specified without a prompt. Here the MS 5029 just waits for DTMF input from the user (the maxdigits attribute of 5030 defaults to 5): 5032 5033 5034 5035 5036 5037 5038 5040 If the dialog is successful, then dialogexit contains the 5041 dtmf collected in its result parameter: 5043 5044 5045 5046 5047 5048 5049 5051 And finally in this example, one of the input parameters is invalid: 5053 5054 5055 5056 5057 5058 5059 5062 5063 5064 5066 The error is reported in the response: 5068 5069 5071 5073 6.2.3. Prompt and record 5075 In this example, the user is prompted, then their input is recorded 5076 for a maximum of 30 seconds. 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5089 If successful and the recording is terminated by DTMF, the following 5090 is returned in a dialogexit : 5092 5093 5094 5095 5096 5098 5099 5100 5101 5103 6.2.4. Runtime controls 5105 In this example, a prompt is played with collect and runtime controls 5106 are activated. 5108 5109 5110 5111 5112 5113 5114 5116 5117 5118 5119 5121 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 5122 execute runtime controls on the prompt queue. The keys do not cause 5123 bargein to occur. If the user presses any other key, then the prompt 5124 is interrupted and DTMF collect begins. Note that runtime controls 5125 are not active during the collect operation. 5127 When the dialog is completed successfully, then both control and 5128 collect information is reported. 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5144 6.2.5. Subscriptions and notifications 5146 In this example, a looped dialog is started with subscription for 5147 notifications each time the user input matches the collect grammar: 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5160 Each time the user input the DTMF matching the grammar, the following 5161 notification event would be sent: 5163 5164 5165 5167 5168 5170 If no user input was provided, or the input did not match the 5171 grammar, the dialog would continue to loop until terminated (or an 5172 error occurred). 5174 6.2.6. Dialog repetition until DTMF collection complete 5176 This example is a prompt and collect dialog to collect the PIN from 5177 the user. The repeatUntilComplete attribute in the is set 5178 to true in this case so that when the grammar collection is complete, 5179 the MS automatically terminates the dialog repeat cycle and reports 5180 the results in a event. 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5193 If the user barges in on the prompt and receives DTMF input 5194 matching the grammar, the dialog cycle is considered complete and the 5195 MS returns the following: 5197 5198 5199 5200 5201 5202 5203 5204 5206 If no user input was provided, or the input did not match the 5207 grammar, the dialog would loop for a maximum of 3 times. 5209 6.3. Other Dialog Languages 5211 The following example requests that a VoiceXML dialog is started: 5213 5214 5219 5220 nfs://nas01/media1.3gp 5221 nfs://nas01/media2.3gp 5222 5223 5224 5225 If the MS does not support this dialog language, then the response 5226 would have the status code 421 (Section 4.5). However, if it does 5227 support the VoiceXML dialog language, it would respond with a 200 5228 status, activate the VoiceXML dialog and make the available 5229 to the VoiceXML script as described in Section 9. 5231 When the VoiceXML dialog exits, exit namelist parameters are 5232 specified using in the dialogexit event: 5234 5235 5236 5237 5238 peter 5239 1234 5240 5241 5242 5243 5245 6.4. Foreign Namespace Attributes and Elements 5247 An MS can support attributes and elements from foreign namespaces 5248 within the element. For example, the MS could support a 5249 element (in a foreign namespace) for speech recognition by 5250 analogy to how support DTMF collection. 5252 In the following example, a prompt and collect request is extended 5253 with a element: 5255 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5270 In the root element, the xmlns:ex attribute declares that 5271 "ex" is associated with the foreign namespace URI 5272 "http://www.example.com/mediactrl/extensions/1". The , 5273 its attributes and child elements are associated with this namespace. 5274 This could be defined so that it activates an SRGS grammar 5275 and listens for user input matching the grammar in a similar manner 5276 to DTMF collection. 5278 If an MS receives this request but does not support the 5279 element, then it would send a 431 response: 5281 5282 5284 5286 If the MS does support this foreign element, it would send a 200 5287 response and start the dialog with speech recognition. When the 5288 dialog exits, it provides information about the execution 5289 within , again using elements in a foreign namespace such 5290 as below: 5292 5294 5295 5296 5297 5298 5299 5301 Note that in reply the AS sends a Control Framework 200 response even 5302 though the notification event contains an element in a foreign 5303 namespace which it might not understand. 5305 7. Security Considerations 5307 As this control package processes XML markup, implementations MUST 5308 address the security considerations of [RFC3023]. 5310 Implementations of this control package MUST address security, 5311 confidentiality and integrity of messages transported over the 5312 control channel as described in Section 11 of the Media Control 5313 channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), 5314 including Transport Level Protection, Control Channel Policy 5315 Management and Session Establishment. In addition, implementations 5316 MUST address security, confidentiality and integrity of User Agent 5317 sessions with the MS, both in terms of SIP signaling and associated 5318 RTP media flow; see [I-D.ietf-mediactrl-sip-control-framework] for 5319 further details on this topic. Finally, implementations MUST address 5320 security, confidentiality and integrity of sessions where, following 5321 a URI scheme, an MS uploads recordings or retrieves documents and 5322 resources (e.g. fetching a grammar document from a web server using 5323 HTTPS). 5325 Adequate transport protection and authentication are critical, 5326 especially when the implementation is deployed in open networks. If 5327 the implementation fails to correctly address these issues, it risks 5328 exposure to malicious attacks, including (but not limited to): 5330 Denial of Service: An attacker could insert a request message into 5331 the transport stream causing specific dialogs on the MS to be 5332 terminated immediately. For example, , where the value of "XXXX" could 5334 be guessed or discovered by auditing active dialogs on the MS 5335 using an request. Likewise, an attacker could impersonate 5336 the MS and insert error responses into the transport stream so 5337 denying the AS access to package capabilities. 5339 Resource Exhaustion: An attacker could insert into the control 5340 channel new request messages (or modify existing ones) with, for 5341 instance, elements with a very long fetchtimeout 5342 attribute and a bogus source URL. At some point this will exhaust 5343 the number of connections that the MS is able to make. 5345 Phishing: An attacker with access to the control channel could 5346 modify the "loc" attribute of the element in a dialog to 5347 point to some other audio file that had different information from 5348 the original. This modified file could include a different phone 5349 number for people to call if they want more information or need to 5350 provide additional information (such as governmental, corporate or 5351 financial information). 5353 Data Theft: An attacker could modify a element in the 5354 control channel so as to add a new recording location: 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5367 The recorded data would be uploaded to two locations indicated by 5368 the "{Good URI}" and the "{Attacker's URI}". This allows the 5369 attacker to steal the recorded audio (which could include 5370 sensitive or confidential information) without the originator of 5371 the request necessarily being aware of the theft. 5373 The Media Control Channel Framework permits additional security 5374 policy management, including resource access and control channel 5375 usage, to be specified at the control package level beyond that 5376 specified for the Media Control Channel Framework (see Section 11.3 5377 of [I-D.ietf-mediactrl-sip-control-framework]). 5379 Since creation of IVR dialogs is associated with media processing 5380 resources (e.g. DTMF detectors, media playback and recording, etc) 5381 on the MS, the security policy for this control package needs to 5382 address how such dialogs are securely managed across more than one 5383 control channels. Such a security policy is only useful for secure, 5384 confidential and integrity protected channels. The identity of 5385 control channels is determined by the channel identifier: i.e. the 5386 value of the cfw-id attribute in the SDP and Dialog-ID header in the 5387 channel protocol (see [I-D.ietf-mediactrl-sip-control-framework]). 5388 Channels are the same if they have the same identifier; otherwise, 5389 they are different. This control package imposes the following 5390 additional security policies: 5392 Responses: The MS MUST only send a response to a dialog management 5393 or audit request using the same control channel as the one used to 5394 send the request. 5396 Notifications: The MS MUST only send notification events for a 5397 dialog using the same control channel as it received the request 5398 creating the dialog. 5400 Auditing: The MS MUST only provide audit information about dialogs 5401 which have been created on the same control channel as the one 5402 upon the request is sent. 5404 Rejection: The MS SHOULD reject requests to audit or manipulate an 5405 existing dialog on the MS if the channel is not the same as the 5406 one used when the dialog was created. The MS rejects a request by 5407 sending a Control Framework 403 response (see Section 7.4 and 5408 Section 11.3 of [I-D.ietf-mediactrl-sip-control-framework]). For 5409 example, if a channel with identifier 'cfw1234' has been used to 5410 send a request to create a particular dialog and the MS receives 5411 on channel 'cfw98969' a request to audit or terminate the dialog, 5412 then the MS sends a 403 framework response. 5414 There can be valid reasons why an implementation does not reject an 5415 audit or dialog manipulation request on a different channel from the 5416 one which created the dialog. For example, a system administrator 5417 might require a separate channel to audit dialog resources created by 5418 system users and to terminate dialogs consuming excessive system 5419 resources. Alternatively, a system monitor or resource broker might 5420 require a separate channel to audit dialogs managed by this package 5421 on a MS. However, the full implications need to be understood by the 5422 implementation and carefully weighted before accepting these reasons 5423 as valid. If the reasons are not valid in their particular 5424 circumstances, the MS rejects such requests. 5426 There can also be valid reasons for 'channel handover' including high 5427 availability support or where one AS needs to take over management of 5428 dialogs after the AS which created them has failed. This could be 5429 achieved by the control channels using the same channel identifier, 5430 one after another. For example, assume a channel is created with the 5431 identifier 'cfw1234' and the channel is used to create dialogs on the 5432 MS. This channel (and associated SIP dialog) then terminates due to 5433 a failure on the AS. As permitted by the Control Framework, the 5434 channel identifier 'cfw1234' could then be reused so that another 5435 channel is created with the same identifier 'cfw1234', allowing it to 5436 'take over' management of the dialogs on the MS. Again, the 5437 implementation needs to understand the full implications and 5438 carefully weight them before accepting these reasons as valid. If 5439 the reasons are not valid for their particular circumstances, the MS 5440 uses the appropriate SIP mechanisms to prevent session establishment 5441 when the same channel identifier is used in setting up another 5442 control channel (see Section 4 of 5443 [I-D.ietf-mediactrl-sip-control-framework]). 5445 8. IANA Considerations 5447 This specification instructs IANA to register a new Media Control 5448 Channel Framework Package, a new XML namespace, a new XML schema and 5449 a new MIME type. 5451 This section further instructs IANA to create a new registry for IVR 5452 prompt variable types. 5454 8.1. Control Package Registration 5456 This section registers a new Media Control Channel Framework package, 5457 per the instructions in Section 12.1 of 5458 [I-D.ietf-mediactrl-sip-control-framework]. 5460 Package Name: msc-ivr/1.0 5461 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 5462 with the RFC number for this specification.] 5463 Published Specification(s): RFCXXXX 5464 Person & email address to contact for further information: 5465 IETF, MEDIACTRL working group, (mediactrl@ietf.org), 5466 Scott McGlashan (smcg.stds01@mcglashan.org). 5468 8.2. URN Sub-Namespace Registration 5470 This section registers a new XML namespace, 5471 "urn:ietf:params:xml:ns:msc-ivr", per the guidelines in RFC 3688 5472 [RFC3688]. 5474 URI: urn:ietf:params:xml:ns:msc-ivr 5475 Registrant Contact: IETF, MEDIACTRL working group, 5476 (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). 5477 XML: 5478 BEGIN 5479 5480 5482 5483 5484 Media Control Channel Framework IVR 5485 Package attributes 5486 5487 5488

Namespace for Media Control Channel 5489 Framework IVR Package attributes

5490

urn:ietf:params:xml:ns:msc-ivr

5491 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 5492 with the RFC number for this specification.] 5493

See RFCXXXX

5494 5495 5496 END 5498 8.3. XML Schema Registration 5500 This section registers an XML schema as per the guidelines in RFC 5501 3688 [RFC3688]. 5503 URI: urn:ietf:params:xml:ns:msc-ivr 5504 Registrant Contact: IETF, MEDIACTRL working group, 5505 (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). 5506 Schema: The XML for this schema can be found in 5507 Section 5 of this document. 5509 8.4. MIME Media Type Registration for 'application/msc-ivr+xml' 5511 This section registers the "application/msc-ivr+xml" MIME type. 5513 To: ietf-types@iana.org 5514 Subject: Registration of MIME media type 5515 application/msc-ivr+xml 5516 MIME media type name: application 5517 MIME subtype name: msc-ivr+xml 5518 Required parameters: (none) 5519 Optional parameters: charset 5520 Indicates the character encoding of enclosed XML. Default is 5521 UTF-8. 5522 Encoding considerations: Uses XML, which can employ 8-bit 5523 characters, depending on the character encoding used. See RFC 5524 3023 [RFC3023], section 3.2. 5525 Security considerations: No known security considerations outside 5526 of those provided by the Media Control Channel Framework IVR 5527 Package. 5528 Interoperability considerations: This content type provides 5529 constructs for the Media Control Channel Framework IVR package. 5530 Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please 5531 replace XXXX with the RFC number for this specification.] 5532 Applications which use this media type: Implementations of 5533 the Media Control Channel Framework IVR package. 5534 Additional Information: Magic Number(s): (none) 5535 File extension(s): (none) 5536 Macintosh File Type Code(s): (none) 5537 Person & email address to contact for further information: Scott 5538 McGlashan 5539 Intended usage: LIMITED USE 5540 Author/Change controller: The IETF 5541 Other information: None. 5543 8.5. IVR Prompt Variable Type Registration Information 5545 This specification establishes an IVR Prompt Variable Type registry 5546 for Control Packages and initiates its population as follows. New 5547 entries in this registry must be published in an RFC (either as an 5548 IETF submission or RFC Editor submission), using the IANA policy 5549 [RFC5226] "RFC Required". 5551 [NOTE TO IANA/RFC-EDITOR: Please 5552 replace XXXX with the RFC number for this specification.] 5553 Variable Type Reference Control Package 5554 ------------- --------- --------------- 5555 date [RFCXXXX] msc-ivr/1.0 5556 time [RFCXXXX] msc-ivr/1.0 5557 digits [RFCXXXX] msc-ivr/1.0 5559 The following information MUST be provided in an RFC publication in 5560 order to register a new Prompt Variable type: 5562 Variable Type: The value for the type attribute 5563 (Section 4.3.1.1.1). The RFC MUST specify permitted values (if 5564 any) for the format attribute of and how the value 5565 attribute is rendered for different values of the format 5566 attribute. The RFC MUST NOT weaken but MAY strengthen the valid 5567 values of attributes defined in Section 4.3.1.1.1 of 5568 this specification. 5570 Reference: The RFC number in which the variable type is registered. 5572 Control Package: The Control Package associated with the IVR 5573 variable type. 5575 Person and address to contact for further information: 5577 9. Using VoiceXML as a dialog language 5579 The IVR control package allows, but does not require, the MS to 5580 support other dialog languages by referencing an external dialog 5581 document. This section provides MS implementations which support the 5582 VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with 5583 additional details about using these dialogs in this package. This 5584 section is normative for an MS which supports the VoiceXML dialog 5585 language. 5587 This section covers preparing (Section 9.1), starting (Section 9.2), 5588 terminating (Section 9.3) and exiting (Section 9.4) VoiceXML dialogs 5589 as well as handling VoiceXML call transfer (Section 9.5). 5591 9.1. Preparing a VoiceXML dialog 5593 A VoiceXML dialog is prepared by sending the MS a request containing 5594 a element (Section 4.2.1). The type attribute is set 5595 to "application/voicexml+xml" and the src attribute to the URI of the 5596 VoiceXML document which is to be prepared by the MS. For example: 5598 5599 5602 5604 The VoiceXML dialog environment uses the request as 5605 an opportunity to fetch and validate the initial document indicated 5606 by the src attribute along with any resources referenced in the 5607 VoiceXML document marked as prefetchable. The maxage and maxstale 5608 attributes, if specified, control how the initial VoiceXML document 5609 is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout 5610 attribute is not defined in VoiceXML for an initial document but the 5611 MS MUST support this attribute in its VoiceXML environment. 5613 If a child element of is specified, then the 5614 MS MUST map the parameter information into a VoiceXML session 5615 variable object as described in Section 9.2.3. 5617 The success or failure of the VoiceXML document preparation is 5618 reported in the MS response. For example, if the VoiceXML document 5619 cannot be retrieved, then a 409 error response is returned. If the 5620 document is syntactically invalid according to VoiceXML, then a 400 5621 response is returned. If successful, the response includes a 5622 dialogid attribute whose value the AS can use in 5623 element to start the prepared dialog. 5625 9.2. Starting a VoiceXML dialog 5627 A VoiceXML dialog is started by sending the MS a request containing a 5628 element (Section 4.2.2). If a VoiceXML dialog has 5629 already been prepared using , then the MS starts the 5630 dialog indicated by the prepareddialogid attribute. Otherwise, a new 5631 VoiceXML dialog can be started by setting the type attribute to 5632 "application/voicexml+xml" and the src attribute to the URI of the 5633 VoiceXML document. For example: 5635 5636 5640 5642 The maxage and maxstale attributes, if specified, control how the 5643 initial VoiceXML document is fetched using HTTP (see [RFC2616]). 5644 Note that the fetchtimeout attribute is not defined in VoiceXML for 5645 an initial document but the MS MUST support this attribute in its 5646 VoiceXML environment. Note also that support for 5647 subscriptions (Section 4.2.2.1.1) and their associated dialog 5648 notification events is not defined in VoiceXML. If such a 5649 subscription is specified in a request, then the MS 5650 sends a 439 error response (see Section 4.5). 5652 The success or failure of starting a VoiceXML dialog is reported in 5653 the MS response as described in Section 4.2.2. 5655 When the MS starts a VoiceXML dialog, the MS MUST map session 5656 information into a VoiceXML session variable object. There are 3 5657 types of session information: protocol information (Section 9.2.1), 5658 media stream information (Section 9.2.2) and parameter information 5659 (Section 9.2.3). 5661 9.2.1. Session protocol information 5663 If the connectionid attribute is specified, the MS assigns protocol 5664 information from the SIP dialog associated with the connection to the 5665 following session variables in VoiceXML: 5667 session.connection.local.uri Evaluates to the SIP URI specified in 5668 the To: header of the initial INVITE 5670 session.connection.remote.uri Evaluates to the SIP URI specified in 5671 the From: header of the initial INVITE 5673 session.connection.originator Evaluates to the value of 5674 session.connection.remote (MS receives inbound connections but 5675 does not create outbound connections) 5677 session.connection.protocol.name Evaluates to "sip". Note that this 5678 is intended to reflect the use of SIP in general, and does not 5679 distinguish between whether the connection accesses the MS via SIP 5680 or SIPS procedures. 5682 session.connection.protocol.version Evaluates to "2.0". 5684 session.connection.redirect This array is populated by information 5685 contained in the History-Info ([RFC4244]) header in the initial 5686 INVITE or is otherwise undefined. Each entry (hi-entry) in the 5687 History-Info header is mapped, in the order it appeared in the 5688 History-Info header, into an element of the 5689 session.connection.redirect array. Properties of each element of 5690 the array are determined as follows: 5692 uri Set to the hi-targeted-to-uri value of the History-Info entry 5694 pi Set to 'true' if hi-targeted-to-uri contains a 5695 'Privacy=history' parameter, or if the INVITE Privacy header 5696 includes 'history'; 'false' otherwise 5698 si Set to the value of the 'si' parameter if it exists, undefined 5699 otherwise 5701 reason Set verbatim to the value of the 'Reason' parameter of hi- 5702 targeted-to-uri 5704 session.connection.aai Evaluates to the value of a SIP header with 5705 the name "aai" if present; otherwise undefined. 5707 session.connection.protocol.sip.requesturi This is an associative 5708 array where the array keys and values are formed from the URI 5709 parameters on the SIP Request-URI of the initial INVITE. The 5710 array key is the URI parameter name. The corresponding array 5711 value is obtained by evaluating the URI parameter value as a 5712 string. In addition, the array's toString() function returns the 5713 full SIP Request-URI. 5715 session.connection.protocol.sip.headers This is an associative array 5716 where each key in the array is the non-compact name of a SIP 5717 header in the initial INVITE converted to lower-case (note the 5718 case conversion does not apply to the header value). If multiple 5719 header fields of the same field name are present, the values are 5720 combined into a single comma-separated value. Implementations 5721 MUST at a minimum include the Call-ID header and MAY include other 5722 headers. For example, 5723 session.connection.protocol.sip.headers["call-id"] evaluates to 5724 the Call-ID of the SIP dialog. 5726 If a conferenceid attribute is specified, then the MS populates the 5727 following session variables in VoiceXML: 5729 session.conference.name Evaluates to the value of the conferenceid 5730 attribute 5732 9.2.2. Session media stream information 5734 The media streams of the connection or conference to use for the 5735 dialog are described in Section 4.2.2, including use of 5736 elements (Section 4.2.2.2) if specified. The MS maps media stream 5737 information into the VoiceXML session variable 5738 session.connection.protocol.sip.media for a connection, and 5739 session.conference.media for a conference. In both variables, the 5740 value of the variable is an array where each array element is an 5741 object with the following properties: 5743 type This required property indicates the type of the media 5744 associated with the stream (see Section 4.2.2.2 type 5745 attribute definition) 5747 direction This required property indicates the directionality of the 5748 media relative to the endpoint of the dialog (see Section 4.2.2.2 5749 direction attribute definition). 5751 format This property is optional. If defined, the value of the 5752 property is an array. Each array element is an object which 5753 specifies information about one format of the media stream. The 5754 object contains at least one property called name whose value is 5755 the subtype name of the media format ([RFC4855]). Other 5756 properties may be defined with string values; these correspond to 5757 required and, if defined, optional parameters of the format. 5759 As a consequence of this definition, when a connectionid is specified 5760 there is an array entry in session.connection.protocol.sip.media for 5761 each media stream used by the VoiceXML dialog. For an example, 5762 consider a connection with bi-directional G.711 mu-law audio sampled 5763 at 8kHz where the dialog is started with 5765 5766 5770 5771 5772 5774 In this case, session.connection.protocol.sip.media[0].type evaluates 5775 to "audio", session.connection.protocol.sip.media[0].direction to 5776 "recvonly" (i.e. the endpoint only receives media from the dialog - 5777 the endpoint does not send media to the dialog), and 5778 session.connection.protocol.sip.media[0].format[0].name evaluates to 5779 "PCMU" and session.connection.protocol.sip.media[0].format[0].rate 5780 evaluates to "8000". 5782 Note that the session variable is updated if the connection or 5783 conference media session characteristics for the VoiceXML dialog 5784 change (e.g. due to a SIP re-INVITE). 5786 9.2.3. Session parameter information 5788 Parameter information is specified in the child element of 5789 and elements, where each parameter is 5790 specified using a element. The MS maps parameter information 5791 into VoiceXML session variables as follows: 5793 session.values This is an associative array mapped to the 5794 element. It is undefined if no element is specified. If 5795 a element is specified in both and 5796 elements for the same dialog, then the array is 5797 first initialized with the specified in the 5798 element and then updated with the 5799 specified in the element; in cases of conflict, the 5800 parameter value take priority. Array keys and 5801 values are formed from children of the element. 5802 Each array key is the value of the name attribute of a 5803 element. If the same name is used in more than one 5804 element, then the array key is associated with the last in 5805 document order. The corresponding value for each key is an object 5806 with two required properties: a "type" property evaluating to the 5807 value of the type attribute; and a "content" property evaluating 5808 to the content of the . In addition, this object's 5809 toString() function returns the value of the "content" property as 5810 a string. 5812 For example, a VoiceXML dialog started with one parameter: 5814 5815 5819 5820 playannouncement 5821 5822 5823 5825 In this case, session.values would be defined with one item in the 5826 array where session.values['mode'].type evaluates to "text/plain" 5827 (the default value), session.values['mode'].content evaluates to 5828 "playannouncement" and session.values['mode'].toString() also 5829 evaluates to "playannouncement". 5831 The MS sends an error response (see Section 4.2.2) if a is 5832 not supported by the MS (e.g. the parameter type is not supported). 5834 9.3. Terminating a VoiceXML dialog 5836 When the MS receives a request with a element 5837 (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event 5838 into the specified VoiceXML dialog. Note that if the immediate 5839 attribute has the value true, then the MS MUST NOT return 5840 information when the VoiceXML dialog exits (even if the VoiceXML 5841 dialog provides such information) - see Section 9.4. 5843 If the connection or conference associated with the VoiceXML dialog 5844 terminates, then the MS throws a 'connection.disconnect.hangup' event 5845 into the specified VoiceXML dialog. 5847 9.4. Exiting a VoiceXML dialog 5849 The MS sends a notification event (Section 4.2.5.1) when 5850 the VoiceXML dialog is complete, has been terminated or because it 5851 exits due to an error. The status attribute specifies 5852 the status of the VoiceXML dialog when it exits and its 5853 child element specifies information, if any, returned from the 5854 VoiceXML dialog. 5856 A VoiceXML dialog exits when it processes a element, a 5857 element or an implicit exit according to the VoiceXML FIA. If 5858 the VoiceXML dialog executes a and then subsequently 5859 executes an with namelist information, the namelist 5860 information from the element is discarded. 5862 The MS reports namelist variables in the element of the 5863 . Each reports on a namelist variable. The MS 5864 set the name attribute to the name of the VoiceXML variable. 5865 The MS sets the type attribute according to the type of the 5866 VoiceXML variable. The MS sets the type to 'text/plain' when 5867 the VoiceXML variable is a simple ECMAScript value. If the VoiceXML 5868 variable is a recording, the MS sets the type to the MIME 5869 media type of the recording and encodes the recorded content as CDATA 5870 in the (see Section 4.2.6.1 for an example). If the VoiceXML 5871 variable is a complex ECMAScript value (e.g. object, array, etc), the 5872 MS sets the type to 'application/json' and converts the 5873 variable value to its JSON value equivalent ([RFC4627]). The 5874 behavior resulting from specifying an ECMAScript object with circular 5875 references is not defined. 5877 If the expr attribute is specified on the VoiceXML element 5878 instead of the namelist attribute, the MS creates a element 5879 with the reserved name '__exit'. If the value is an ECMAScript 5880 literal, the type is 'text/plain' and the content is the 5881 literal value. If the value is a variable, the type and 5882 content are set in the same way as a namelist variable; for example, 5883 an expr attribute referencing a variable with a simple ECMAScript 5884 value has the type 'text/plain' and the content is set to the 5885 ECMAScript value. To allow the AS to differentiate between a 5886 notification event resulting from a VoiceXML 5887 from one resulting from an , the MS creates a 5888 with the reserved name '__reason', the type 'text/plain', and 5889 a value of "disconnect" (without brackets) to reflect the use of 5890 VoiceXML's element, and the value of "exit" (without 5891 brackets) to an explicit in the VoiceXML dialog. If the 5892 VoiceXML session terminates for other reasons (such as encountering 5893 an error), this parameter MAY be omitted or take on platform-specific 5894 values prefixed with an underscore. 5896 Table 2 provides some examples of VoiceXML usage and the 5897 corresponding element in the notification 5898 event. It assumes the following VoiceXML variable names and values: 5899 userAuthorized=true, pin=1234 and errors=0. The type 5900 attributes ('text/plain') are omitted for clarity. 5902 +------------------------+------------------------------------------+ 5903 | Usage | Result | 5904 +------------------------+------------------------------------------+ 5905 | | exit | 5907 | | | 5908 | | exit 5 | 5911 | | | 5912 | | exit 'done' | 5915 | | | 5916 | | name="__reason">exit true | 5919 | | | 5920 | | name="__reason">exit 1234 0 | 5924 +------------------------+------------------------------------------+ 5926 Table 2: VoiceXML mapping examples 5928 9.5. Call Transfer 5930 While VoiceXML is at its core a dialog language, it also provides 5931 optional call transfer capability. It is NOT RECOMMENDED to use 5932 VoiceXML's call transfer capability in networks involving Application 5933 Servers. Rather, the AS itself can provide call routing 5934 functionality by taking signaling actions based on the data returned 5935 to it, either through VoiceXML's own data submission mechanisms or 5936 through the mechanism described in Section 9.4. If the MS encounters 5937 a VoiceXML dialog requesting call transfer capability, the MS SHOULD 5938 raise an error event in the VoiceXML dialog execution context: an 5939 error.unsupported.transfer.blind event if blind transfer is 5940 requested, error.unsupported.transfer.bridge if bridge transfer is 5941 requested, or error.unsupported.transfer.consultation if consultation 5942 transfer is requested. 5944 10. Change Summary 5946 Note to RFC Editor: Please remove this whole section. 5948 The following are the changes between the -09 and -08 versions 5949 (primarily addressing IESG DISCUSS, comments and nits): 5951 o 3.1: Aligned Control Package Name/Version with last Control 5952 Framework verbage. 5954 o 4.0: Modified communications protocol requirements so that a MS 5955 MUST support both HTTP and HTTPS for fetching resources and 5956 uploading recordings. Added statement to relevant element 5957 definitions. 5959 o 4.2.1: Corrected error code from 409 to 421 in last paragraph in 5960 section. 5962 o 4.2.1, 4.2.2, 4.3.1.3.1, 4.3.4, 4.3.5: Modified the specification 5963 of src and location attributes in , , 5964 , and so that there is no mention of 5965 authentication information in the URI (the URI RFC 3986 already 5966 covers this). 5968 o 4.0: Clarified that while some elements contain attributes whose 5969 value is descriptive text, this descriptive text is for diagnostic 5970 use only and does not require a language indicator such as a 5971 language tag. 5973 o 4.2.2.2: Clarified that the media attribute of is a MIME 5974 type-name with reference to RFC 4288. 5976 o 4.2.6.1: Added encoding attribute to to allow for 5977 specification of content-transfer-encoding schema. Updated XML 5978 schema. 5980 o 4.2.6.1: Simplified content model of to be text only. 5981 Updated XML schema. 5983 o 4.3.1.1.1, 4.4.2.2.5, 8.5: Tighten up definition of 5984 date, time and digits types (and ) and added IANA 5985 instruction to establish a prompt variable type registry. 5987 o 4.3.1.4: Clarified that in the the mapping of the append 5988 operation to the upload protocol scheme is implementation- 5989 specific. 5991 o 4.6.10: Clarified MIME media type format with ABNF production 5992 referencing RFC 4288. 5994 o 5: Stated that the schema is normative. 5996 o 5: Corrected definition in XML Schema by adding 'endsync' 5997 attribute. 5999 o 5: Corrected definition in XML Schema by making 6000 mimetype child element optional. 6002 o Moved VoiceXML section (Appendix A) to main body and clarified 6003 that it is normative for implementations supporting VoiceXML. 6004 Updated VoiceXML references to normative except (VoiceXML 3.0 6005 which is still a Working Draft). 6007 o 9.2.2: Corrected example so that the subtype-name (whose value 6008 should be the subtype of the media format) is "PCMU" rather than 6009 "audio/PCMU". 6011 o 9.4: VoiceXML with expr attribute: clarified that if the 6012 value is an ECMAScript variable, the type and content is 6013 processed in the same way as a namelist variable. 6015 o 4.2.2.2.1: clarified the definition of as an area in a 6016 video layout and added a reference to the mixer package 6018 o 4.3.1.4: clarified sentence "If no child element is 6019 specified, the MS MUST provide a recording location where the 6020 recording format is implementation- specific." 6022 o Introduction: Clarified that Control Framework is an equivalent 6023 term for the Media Control Channel Framework. Expanded DTMF 6024 acronym. 6026 o 4.2.5.1, 4.5: replaced reference to standards-tracks RFC for 6027 assignment of new values, with reference to using Standards Action 6028 process defined in RFC 5226. 6030 o 4.3.1.1.3: Added recommendation that a element contains only 6031 one element of the same media type (i.e. same type-name as 6032 defined in Section 4.6.10). 6034 o 4.4.2.1.1: changed to include name attribute; aligned 6035 definition with RFC4288; updated schema. 6037 o 4.6: Type definitions; added references to XML Schema datatypes 6038 where appropriate; changed definition of boolean to match W3C 6039 definition and updated boolean type in schema. 6041 o Typos: in 4.2.2.1, replaced "rewkey" with "rwkey" in first 6042 example; in 4.3.1.1.3, added closing ">" to example; in 6043 4.3.1.1.3.1, added closing ">" to example; in 4.6.11, corrected 6044 RFC 5646 reference 6046 o Validated all examples against XML schema and corrected where 6047 necessary. 6049 The following are the changes between the -08 and -07 versions 6050 (addressing IETF Last Call comments): 6052 o 4.2: Changed recommended maximum duration value for a prepared 6053 dialog from 30s to 300s. 6055 o 4.2: Changed the dialog state machine so that when a PREPARED 6056 dialog is terminated, the MS always sends a 6057 notification event. 6059 o 4.2.1/4.2.2: Clarified that dialog preparation covers retrieval of 6060 external resources (e.g. media, grammar, etc) when they are 6061 referenced by an inline element. 6063 o 4.2.2.1.1: Fixed example replacing with in 6064 element 6066 o 4.3.1: Added repeatUntilComplete attribute to to allow 6067 repetition of an dialog until input (DTMF or recording) is 6068 completed successfully. Updated XML schema. Added example in 6069 6.2.6. 6071 o 4.3.1.1.3: Clarified that in the case of , it is 6072 responsibility of the MS to assign the appropriate stream(s) for 6073 playback of each . 6075 o 4.3.1.2: Clarified that DTMF matching s are consumed and 6076 not added to the digit buffer. 6078 o 4.3.1.3: Clarified that 's maxdigits attribute is ignored 6079 if a custom grammar is specified. 6081 o 4.3.1.3: Clarified that when a DTMF input can match more than one 6082 of {termchar, escapekey, grammar}, then the priority of matching 6083 is: termchar, escapekey and then grammar. 6085 o 4.3.1.3: Clarified that the behavior of the escapekey: the MS 6086 discards collected DTMFs already matched against the grammar, and 6087 the MS attempts to match incoming DTMF (including any pending in 6088 the digit buffer) as described in Step 5 of the 6089 execution model. 6091 o 12.2.1: Changed mapping between SIP History-Info and VoiceXML 6092 session.connection.redirect to align with RFC5552 reported Errata. 6094 The following are the changes between the -07 and -06 versions 6095 (primarily addressing AD Review comments): 6097 o Generally corrected references from Section 17.1 to Section 16.1 6098 of Control Channel Framework. 6100 o 4.2.2.1.1: corrected syntax error in example 6102 o 4.2.3.1: corrected example by adding conferenceid attribute. 6104 o 12.1: corrected error code from 407 to 409 in example when vxml 6105 document cannot be retrieved. 6107 o 6.2.2: corrected example by removing bargein="true"; clarified 6108 that maxdigits defaults to 5. 6110 o 4.5: Changed the recovery action for a 405 ('dialogid already 6111 exists') error response. The AS can always recover by not 6112 specifying the id in the creation command and let the MS generate 6113 a unique id in the response. 6115 o 8.1: Removed the To: and Subject: header fields 6117 o Corrected miscellanous typos. 6119 o 4.2.1, 4.2.2 and 4.3.1.3.1: Added authentication information to 6120 the definition of src attribute in , 6121 and . 6123 o 7: Added Security Consideration that uploading/retrieving 6124 documents and resources should be secured. 6126 o 8.4: Changed file extension from '.xml' to (none) 6128 o Changed "~" to a ":" for connectionid 6130 o 4.2.6.1: Clarified that can contain an XML value. 6132 o 4.2.1, 4.2.2, 12.1,12.2, schema: added maxage and maxstale 6133 attributes (optional) to , for HTTP 6134 VoiceXML use case. 6136 o 4.2.2.1: Clarified that a request containing with no 6137 child elements is equivalent to a request without a 6138 element. 6140 o 4.2.5.1: Changed status codes so that only 0-4 6141 defined and all others are reserved for future use requiring a 6142 standard-track RFC. 6144 o 4.5: Changed status code for and so 6145 that certain codes are defined and all others are reserved for 6146 future use requiring a standard-track RFC. 6148 o 4.2.2.2, 12.2.2, various examples: Changed the media 6149 direction so that it is relative to the endpoint, not the dialog. 6150 Now aligned with VoiceXML mapping in RFC 5552. 6152 The following are the changes between the -06 and -05 versions. 6154 o Corrected typo in introduction 6156 o 4.2.1: Added to . Updated VoiceXML 6157 appendix to describe how these parameters are mapped to the 6158 session object. 6160 o 4.3.1.3: : clarified definitions of interdigittimeout and 6161 termtimeout attributes and tightened up the collect execution 6162 model. 6164 o 8: IANA Considerations: Updated IANA registration information and 6165 added registration for the XML Schema 6167 The following are the changes between the -05 and -04 versions. 6169 o Corrected syntax errors in examples: 4.1, 6.2.2, 6.2.5, 6.3 6171 o 6.3: Corrected error status code for unsupported dialog 6173 o 4.4.2.2.2: : corrected text to reflect that no 6174 additional grammar types need be specified. 6176 o Schema: corrected schema to allow with no children, 6177 and renamed to to align with text. 6178 Fixed problem with non-deterministic content models. 6180 o 7. Security Considerations: Added requirement that 6181 implementations need to secure SIP and RTP sessions with User 6182 Agents. 6184 The following are the changes between the -04 and -03 versions. 6186 o 4.2.2.2: Clarified that media stream direction is relative to the 6187 dialog (the examples showed this but not the definition). 6189 o 4.3.1.2: Clarified that speed. volume and seek 6190 operations beyond the platform's capability are automatically 6191 limited to the platform's minimum/maximum. Also clarified that 6192 when the output is paused, then the MS resumes output 6193 automatically on speed, volume and seek control operations. 6195 o 6.2.5: Corrected syntax error in example 6197 o 7 Security: Added a denial of service example where the attacker 6198 impersonates the MS. 6200 o 7 Security: Clarified that the package security policy for 6201 multiple channels is only useful if the channels themselves are 6202 secured. 6204 o Added reference for VoiceXML 3.0 6206 o Updated acknowledgements. 6208 o Appendix A: 12.2: Corrected syntax error in example 6210 o Appendix A: 12.2.1: Changed behavior for how VoiceXML session 6211 information is populated for a conference; session.conference.name 6212 is specified. Added session.connection.originator variable for a 6213 connection (MS receives inbound connections but does not create 6214 outbound connections). 6216 o Appendix A: 12.2.2: Added session.conference.media for conference 6217 media information. Clarified that direction is relative to the 6218 dialog. 6220 o Appendix A: 12.2.2: Corrected syntax error in example 6222 o Appendix A: 12.2.3: Changed session parameter mapping to 6223 session.values using an associative array. 6225 o Appendix A: 12.5: Changed behavior for handling VoiceXML Call 6226 Transfer requests to raising an error.unsupported.transfer event. 6228 The following are the major changes between the -03 and -02 versions. 6230 o Conformance language: Removed unnecessary MUSTs, especially for 6231 error codes. Removed lowercase 'should', 'must' and 'may'. 6233 o Introduction: Clarified which MediaCtrl IVR Requirements are 6234 satisfied by this package. Added link to Security Considerations 6235 Section (also in Section 4.0 and 4.4). 6237 o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS 6238 support of communication protocols in URIs. 6240 o 4.2.2:: Changed RECOMMENDED to MAY for MS support of 6241 multiple dialogs on same connection or conference. Changed 6242 RECOMMENDED to MUST for using in cases where connection 6243 has multiple streams of the same type. 6245 o 4.2.2.2:: Changed RECOMMENDED to MUST for use of common 6246 media attribute values. 6248 o 4.2.2.1: : Clarified that if the MS does not support a 6249 subscription specified in a foreign namespace, then the MS 6250 generates a 431 error response. 6252 o 4.2.4: : Clarified that a dialogid with an empty string 6253 value is used when the request is syntactically invalid. 6255 o 4.2.5.1: : Added reserved range of status codes, and 6256 tightened up the wording. 6258 o 4.3.1.3:: Clarified that termtimeout attribute default of 6259 0s meaning no delay. 6261 o 4.3.1.1.1: : Changed RECOMMENDED to MAY for MS support 6262 of date, time and digits s. Clarified value attribute 6263 format for date, time and digits. 6265 o 4.3.1.1.3: : Removed RECOMMENDED for MS support of parallel 6266 playback of different media. Added error response code (435) if 6267 MS does not support parallel playback configuraton. 6269 o 4.3.1.1.3.1: : Removed RECOMMENDED for MS support of 6270 sequential playback of same media within a (error case 6271 already covered by configuration not supported response 6272 code). 6274 o 4.3.1.4:: Removed RECOMMENDED for MS support of parallel 6275 recording of different media. Clarified wording around uploading 6276 recording data to a media resource location. 6278 o 4.3.1.4: : Clarified the definition of vadinitial and 6279 vadfinal. Changed the default values to false. Added a response 6280 error (434) for when the MS does not support VAD. 6282 o 4.3.1.5: . Removed unnecesaary SHOULD for MS ignoring 6283 fetchtimeout, soundLevel, clipBegin and clipEnd when used 6284 for recording. Clarified definition of loc and type attributes 6285 with stronger conformance language. Similar clarifications of 6286 type attributes in , and . 6288 o 4.3.2.4.1: : Clarified usage and strengthen conformance 6289 language. 6291 o 4.4.2.22: : Changed MUST to MUST NOT for inclusion 6292 of mandatory SRGS grammar format. Updated examples. 6294 o Updated schema. 6296 o Security Considerations: Major update. Added examples showing 6297 malicious attacks when channel security is not correctly 6298 addressed. Added more details on multiple channel cases including 6299 administrator and monitor channels as well as channel handover. 6301 o Removed affliations in Contributors and Acknowledgements sections. 6303 o Added Appendix A describing how to use VoiceXML with this package 6304 if it is supported by the MS. 6306 o Corrected typos and nits. 6308 The following are the major changes between the -02 and -01 versions. 6310 o corrected typos. 6312 o Section 3: Aligned Control Package definitions with requirements 6313 in Section 8 of the Control Framework. 6315 o Section 4.2.2.2: Added child element to 6316 element (alignment with mixer package). 6318 o Following October Interim meeting discussion on response codes, 6319 generally clarified usage of error status codes, modified some 6320 codes and re-organized the response codes section (Section 4.5) 6321 with more guidance and details. 6323 o Section 4.3.1.5: Following October Interim meeting request for 6324 parallel playback and record, created a generalized version of 6325 used for both playback and record. The 'src' attribute is 6326 renamed to 'loc'. Updated and definitions as 6327 described below. 6329 o Sections 4.3.1.1/4.3.1.1.4: : Added child element to 6330 allow parallel playback of separate media resources. The 6331 element has a child element to allow a sequence of media 6332 resources to be played at the same time as other resources are 6333 played in parallel. 6335 o Sections 4.3.1.4/4.3.1.4.1: : Removed 'dest' and 'type' 6336 attributes. Added child elements to support parallel 6337 recording to separate media resource locations. 6339 o Sections 4.3.2.4/4.3.2.4.1: : Removed 'dest', 'type' 6340 and 'size' attribute. Added child elements with 6341 'loc', 'type' and 'size' attributes. 6343 o Section 4.4.2.2.4: Renamed to to 6344 clarify distinction with . 6346 o Sections 4.3.1.4: : Clarified RFC2119 language around 6347 vadinitial and vadfinal behavior. 6349 o Updated schema. Removed some element-specific syntactic 6350 constraint statements which are already covered in the schema. 6352 o 4.3.1: occurrence of without a no longer 6353 treated as a syntax error - instead runtime controls are simply 6354 ignored. 6356 o 6358 The following are the major changes between the -01 and -00 versions. 6360 o 7: Updated security section referencing control framework security 6361 and adding policy requirement to address dialog resource 6362 management over multiple channels. 6364 o corrected typos and example errors 6366 o 4.2: [IVR-200] Added state machine for dialog lifecycle. 6368 o 4.2: clarified dialog identifier assignment and use, including MS 6369 assignment of dialogid in and . 6371 o 4.2/4.2.3: clarified behavior when dialog is not 6372 in a STARTED state. 6374 o 1/4.2: Clarified concept of dialog language and replaced 6375 references to 'dialog types' with dialog languages. Replaced 6376 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that 6377 IVR is inline and other supported dialog languages are 6378 specified by reference. Removed default type values for 6379 and . 6381 o 4.4.2.2.1: clarified that the inline dialog language () 6382 must not be listed as an additional supported dialog language. 6384 o 4.2.2.2: [IVR-201] Added element to so that 6385 dialog video output can be directed to a specific region a 6386 conference video layout. 6388 o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format 6389 for digits. 6391 o 4.4.2.1.1:[IVR-203]: added to to allow additional 6392 codec information to be specified. 6394 o 4.5: added error status code for unsupported URI (415), invalid 6395 region identifier (416), fetchtimeout exceeded (417), syntactic 6396 constraint violation (418), unsupported media format (419), 6397 unsupported grammar format (420), unsupported variable 6398 announcement (421), unsupported DTMF tone generation (422), 6399 conflict with control key values (423), unsupported recording 6400 format (424). 6402 o Generally, replaced 'it is an error ...' language with RFC2119 6403 language, making error codes more explicit. 6405 o 4.3.1: Clarified that an MS MAY support and 6406 elements co-occurring in a element, but the MS MUST send 6407 an error response if they are not supported. Clarified that MS 6408 MUST send an error response if is specified without a 6409 element. 6411 o 4.2.5.2: clarified that the timestamp in is that of 6412 the last DTMF in a matching input sequence. 6414 o References: more references now normative. 6416 o 4.3: Replaced passive voice language with active voice language in 6417 the description of execution models. 6419 o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is 6420 completely unrelated to the term 'SIP dialog'. 6422 o 4: Added clarification that elements with URI attributes are 6423 recommended to support one or more communication protocols 6424 suitable for fetching resources. 6426 o 4.3.1.4: clarified MS MAY support upload of recording 6427 data during recording, and that upload errors (e.g. authentication 6428 failures, communication errors, etc) are execution errors. Added 6429 'append' attribute to control behavior when a recorded resource 6430 already exists at the recording location. 6432 o 4.2.2: Clarified that an error is reported if with 6433 contains parameters which the MS cannot process for the 6434 given dialog language. 6436 o 4.2.6.1: removed 'valuetype' attribute and clarified that 6437 the type attribute indicates the MIME media type associated with 6438 the inline value. 6440 o 4.3.1.4: Added append attribute to to control whether 6441 recordings are appended or not to the recording location resource. 6443 o 4.3.1.1.1: Added clipEnd attribute to to control when 6444 playback of the media ends. 6446 o 4.3.1: Clarified that when there are multiple iterations of a 6447 dialog (using repeatCount attribute) only the results of the last 6448 dialog iteration are reported. 6450 o 4.4.2.2: Added ability to audit capability, as well as 6451 maximum duration of prepared dialogs and of recordings. 6453 o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in 6454 and how reports its status. 6456 o 4: Changed handling of unsupported foreign namespace elements and 6457 attributes. The MS send a 426 error response if it encounters 6458 foreign elements and attributes it does not support. 6460 The following are the major changes between the -00 of this work 6461 group item draft and the individual submission -05 version. 6463 o [IVR01] When the MS sends a notification event in a CONTROL, the 6464 AS sends mandatory 200 response (no extended transaction). 6466 o [IVR23] Added a top-level container element, , with 6467 version attribute. 6469 o Removed term 'basic' in title, description, elements and IANA 6470 registration. Control package name is now 'msc-ivr/1.0'. 6471 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 6472 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 6473 'dialog' and moved version attribute to mscivr element. 6475 o [IVR15] Updated and simplified XML schema. Ordering of child 6476 elements is significant. 6478 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 6479 'soundLevel' and 'clipBegin' to media element. 6481 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 6482 Added 'repeatCount' and 'repeatDur' to dialog element. 6484 o Moved VCR commands from into separate element. 6485 Defined controlinfo element to report runtime control match 6486 information. 6488 o [IVR05] Added to where AS can subscribe 6489 to DTMF key presses (all, control match only, collect match only). 6490 Extended to support associated notification. 6492 o Moved definition of into a separate section. 6494 o [IVR21] Added audit capability: auditing of package capabilities 6495 and managed dialogs 6497 o [IVR21] Explicitly stated that an error must be reported if the 6498 connection or conference referenced in a is not 6499 available at the time the request is processed on the MS. 6501 o Clarified that the rendering mechanism is MS 6502 implementation specific. 6504 o [IVR09]/[IVR10] Clarified attribute definitions and 6505 added 'gender' attribute. 6507 o [IVR16] Clarified that info must be reported in dialogexit, if the 6508 corresponding element is specified in a . For example, if 6509 is specified, then must be specified if the 6510 dialog terminates normally. 6512 o [IVR18] Added 'inactive' value for direction attribute of 6513 . 6515 o [IVR19] Clarified case of on connection/conference 6516 with multiple streams of the same type: recommended to be set 6517 explicitly with s. 6519 o [IVR02] Clarified that multiple dialogs may started simultaneously 6520 on the same connection or conference. 6522 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 6523 in the PREPARED state. 6525 o Added in and for input/output 6526 in other dialog types 6528 o [IVR22] Added fetchtimeout parameter to dialogprepare, 6529 dialogstart, media and grammar elements. 6531 o [IVR04] Added dialogexit status to indicate the connection or 6532 conference has been terminated. Added others status errors. 6534 o [IVR08] Clarified that the operation does not interrupt 6535 playing prompts and that matched DTMF is not available to 6536 or operations during prompt playback. 6538 o [IVR11] Added runtime controls for speed, goto start/end and 6539 external controls. 6541 o Clarified that recordings can be uploaded to dest during or after 6542 the recording operation. 6544 o /: clarified timer handling - timeout refers to 6545 waiting time for collect/record to begin. 6547 o Clarified behavior of immediate attribute on . 6549 o clarified dialogid lifecycle: dialogids can be re-cycled. 6551 o Clarified error handling. 6553 o Editorial tidy up of sections. 6555 o dialogid attribute on is now mandatory. 6557 o Clarified that the duration specified in finalsilence attribute of 6558 is not part of the final recording. 6560 o Clarified that the SRGS XML grammar format is mandatory 6562 The following are the major changes between the -06 of the draft and 6563 the -05 version. 6565 o Event notifications are sent in CONTROL messages with the MS 6566 acting as Control Framework Client. Compared with the previous 6567 approach, this means that a transaction is now 6568 complete when the MS sends a . A new transaction is 6569 initiated by the MS each time the MS sends a notification 6570 to the AS. 6572 o Changed conf-id to conferenceid and connection-id to connectionid. 6574 o Clarification of the state model for dialogs 6576 o : modified definition of src attribute to allow 6577 reference to external dialog documents; added (MIME) type 6578 attribute; removed child element. 6580 o : modified definition of src attribute to allow 6581 reference to external dialog documents; added (MIME) type 6582 attribute; removed child element; 6584 o : modified so that a dialogexit event is always 6585 sent for active dialogs (i.e. the dialogexit event is a 6586 terminating notification) 6588 o notification simplified and make more extensible. Manual 6589 notifications (via element) are removed from the basic 6590 package. A event is defined as child and it 6591 can be extended with additional child elements 6593 o element is removed. 6595 o element removed. 6597 o Replaced dialog templates with a general element. It has 6598 child elements for playing media resource (), collecting 6599 DTMF () and recording (). The functionality is 6600 largely unchanged. 6602 o and are extended with child 6603 element. 6605 o is extended with a element which contains 6606 status and reported information (replacement for output parameters 6607 in template dialogs) 6609 o Prompts: now structured as a element with , 6610 and children. The element has xml:base 6611 attribute, bargein, iterations, duration, volume and offset 6612 attributes. The speed attribute is removed. A element 6613 has src and type attributes. The maxage and maxstale attributes 6614 are removed. 6616 o DTMF input: parameters now specified as attributes of a 6617 element. Custom grammar specified with a element as 6618 child of element. Added 'escapekey' to allow the dialog 6619 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 6620 to allow the prompts to paused/resumed. Added 'volumeinterval', 6621 'volupkey' and voldnkey' to add prompt volume to be increased/ 6622 decreased. Moved 'bargein' attribute to prompt. 6624 o Recording: parameters now specified as attributes of 6625 element. Added 'dest' and 'beep' attributes. 6627 The following are the major changes between the -05 of the draft and 6628 the -04 version. 6630 o Mainly an alignment/evaluation exercise with requirements produced 6631 by MEDIACTRL IVR design team. 6633 o playannouncement parameters from Table 7 of '04' version are now 6634 reflected in text - schema to be updated. 6636 o Added VCR commands based on MSCML. 6638 The following are the major changes between the -04 of the draft and 6639 the -03 version. 6641 o None. 6643 The following are the major changes between the -03 of the draft and 6644 the -02 version. 6646 o added "basicivr:" protocol to template dialog types which must be 6647 supported as values of the "src" attribute in and 6648 . Note alternative: "/basicivr/playannouncement" 6649 offered in [RFC4240]. 6651 o added "basicivr:" URI schema to IANA considerations 6653 o Added mimetype, vadinitial and vadfinal parameters to 6654 'promptandrecord' dialog type 6656 o updated references 6658 The following are the major changes between the -02 of the draft and 6659 the -01 version. 6661 o added version 1.0 to package name 6663 o separate section for element definitions 6664 o dialogterminate treated as request rather than notification 6666 o simplified responses: single element 6668 o removed response elements: , , 6669 , 6671 o simplified event notifications to single element carried 6672 in a REPORT 6674 o element replaced with 6676 o removed element 6678 o added element as child of 6680 o removed 'type' attribute from and 6682 o added dialogid attribute to and 6684 o removed template "Sample Implementation" section 6686 o renamed to 6688 o re-organized so that template details after general package 6689 framework and element description. 6691 The following are the primary changes between the -01 of the draft 6692 and the -00 version. 6694 o Removed requirement for VoiceXML dialog support 6696 o Added requirement for template dialog support 6698 11. Contributors 6700 Asher Shiratzky provided valuable support and contributions to the 6701 early versions of this document. 6703 The authors would like to thank the IVR design team consisting of 6704 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary 6705 Barnes and Steve Buko who provided valuable feedback, input and text 6706 to this document. 6708 12. Acknowledgments 6710 The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave 6711 Burke, Dan York, Steve Buko, Jean-Francois Bertrand, Henry Lum and 6712 Lorenzo Miniero for expert reviews of this work. 6714 Ben Campbell carried out the RAI expert review on this specification 6715 and provided a great deal of invaluable input. Donald Eastlake 6716 carried out a thorough security review. 6718 13. References 6720 13.1. Normative References 6722 [I-D.ietf-mediactrl-sip-control-framework] 6723 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 6724 Control Channel Framework", 6725 draft-ietf-mediactrl-sip-control-framework-12 (work in 6726 progress), September 2010. 6728 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 6729 Extensions (MIME) Part One: Format of Internet Message 6730 Bodies", RFC 2045, November 1996. 6732 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 6733 Requirement Levels", BCP 14, RFC 2119, March 1997. 6735 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 6736 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 6737 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 6739 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. 6741 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 6742 Types", RFC 3023, January 2001. 6744 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 6745 January 2004. 6747 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 6748 Resource Identifier (URI): Generic Syntax", STD 66, 6749 RFC 3986, January 2005. 6751 [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and 6752 Registration Procedures", BCP 13, RFC 4288, December 2005. 6754 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 6755 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 6757 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 6758 BCP 47, RFC 4647, September 2006. 6760 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 6761 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 6762 May 2008. 6764 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 6765 Specifications: ABNF", STD 68, RFC 5234, January 2008. 6767 [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying 6768 Languages", BCP 47, RFC 5646, September 2009. 6770 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 6771 Specification Version 1.0", W3C Recommendation, 6772 March 2004. 6774 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 6775 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 6776 and S. Tryphonas, "Voice Extensible Markup Language 6777 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 6779 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 6780 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 6781 A., Porter, B., and K. Rehor, "Voice Extensible Markup 6782 Language (VoiceXML) Version 2.1", W3C Recommendation, 6783 June 2007. 6785 [W3C.REC-SMIL2-20051213] 6786 Koivisto, A., Bulterman, D., Michel, T., Layaida, N., 6787 Zucker, D., Jansen, J., Mullender, S., and G. Grassel, 6788 "Synchronized Multimedia Integration Language (SMIL 2.1)", 6789 World Wide Web Consortium Recommendation REC-SMIL2- 6790 20051213, December 2005, 6791 . 6793 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 6794 and F. Yergeau, "Extensible Markup Language (XML) 1.0 6795 (Third Edition)", W3C Recommendation, February 2004. 6797 [XMLSchema:Part2] 6798 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 6799 Second Edition", W3C Recommendation, October 2004. 6801 13.2. Informative References 6803 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 6804 1.0", W3C Candidate Recommendation (work in progress), 6805 April 2010. 6807 [H.248.9] "Gateway control protocol: Advanced media server 6808 packages", ITU-T Recommendation H.248.9. 6810 [I-D.ietf-mediactrl-mixer-control-package] 6811 McGlashan, S., Melanchuk, T., and C. Boulton, "A Mixer 6812 Control Package for the Media Control Channel Framework", 6813 draft-ietf-mediactrl-mixer-control-package-11 (work in 6814 progress), February 2010. 6816 [I-D.ietf-xcon-common-data-model] 6817 Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, 6818 "Conference Information Data Model for Centralized 6819 Conferencing (XCON)", draft-ietf-xcon-common-data-model-20 6820 (work in progress), October 2010. 6822 [IANA] "IANA registry for RTP Payload Types", 6823 . 6825 [MIME.mediatypes] 6826 "IANA registry for MIME Media Types", 6827 . 6829 [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and 6830 Languages", BCP 18, RFC 2277, January 1998. 6832 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 6833 Package", RFC 2897, August 2000. 6835 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 6836 A., Peterson, J., Sparks, R., Handley, M., and E. 6837 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 6838 June 2002. 6840 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 6841 Media Services with SIP", RFC 4240, December 2005. 6843 [RFC4244] Barnes, M., "An Extension to the Session Initiation 6844 Protocol (SIP) for Request History Information", RFC 4244, 6845 November 2005. 6847 [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media 6848 Types: application/voicexml+xml, application/ssml+xml, 6849 application/srgs, application/srgs+xml, application/ 6850 ccxml+xml, and application/pls+xml", RFC 4267, 6851 November 2005. 6853 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 6854 Parameter for "Bucket" Media Types", RFC 4281, 6855 November 2005. 6857 [RFC4627] Crockford, D., "The application/json Media Type for 6858 JavaScript Object Notation (JSON)", RFC 4627, July 2006. 6860 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 6861 (SIP) Event Package for Key Press Stimulus (KPML)", 6862 RFC 4730, November 2006. 6864 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 6865 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 6866 December 2006. 6868 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 6869 Formats", RFC 4855, February 2007. 6871 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 6872 Control Markup Language (MSCML) and Protocol", RFC 5022, 6873 September 2007. 6875 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 6876 Requirements", RFC 5167, March 2008. 6878 [RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup 6879 Language (MSML)", RFC 5707, February 2010. 6881 [VXML30] McGlashan, S., Burnett, D., Akolkar, R., Auburn, RJ., 6882 Baggia, P., Barnett, J., Bodell, M., Carter, J., Oshry, 6883 M., Rehor, K., Young, M., and R. Hosn, "Voice Extensible 6884 Markup Language (VoiceXML) Version 3.0", W3C Working 6885 Draft, August 2010. 6887 Authors' Addresses 6889 Scott McGlashan 6890 Hewlett-Packard 6892 Email: smcg.stds01@mcglashan.org 6894 Tim Melanchuk 6895 Rain Willow Communications 6897 Email: tim.melanchuk@gmail.com 6899 Chris Boulton 6900 NS-Technologies 6902 Email: chris@ns-technologies.com