idnits 2.17.1 draft-ietf-mediactrl-ivr-control-package-11.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 34 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 1842 has weird spacing: '... mdy indica...' == Line 1845 has weird spacing: '... ymd indica...' == Line 1848 has weird spacing: '... dym indica...' == Line 1912 has weird spacing: '... gen indica...' == Line 1916 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 (January 6, 2011) is 4831 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 4859, but not defined == Missing Reference: 'RFCXXXX' is mentioned on line 5646, but not defined -- Looks like a reference, but probably isn't: '0' on line 5868 == Missing Reference: 'IVR-200' is mentioned on line 6496, but not defined == Missing Reference: 'IVR-201' is mentioned on line 6514, but not defined == Missing Reference: 'IVR01' is mentioned on line 6593, but not defined == Missing Reference: 'IVR23' is mentioned on line 6596, but not defined == Missing Reference: 'IVR15' is mentioned on line 6605, but not defined == Missing Reference: 'IVR06' is mentioned on line 6608, but not defined == Missing Reference: 'IVR05' is mentioned on line 6618, but not defined == Missing Reference: 'IVR21' is mentioned on line 6627, but not defined == Missing Reference: 'IVR16' is mentioned on line 6637, but not defined == Missing Reference: 'IVR18' is mentioned on line 6642, but not defined == Missing Reference: 'IVR19' is mentioned on line 6645, but not defined == Missing Reference: 'IVR02' is mentioned on line 6649, but not defined == Missing Reference: 'IVR20' is mentioned on line 6652, but not defined == Missing Reference: 'IVR22' is mentioned on line 6658, but not defined == Missing Reference: 'IVR04' is mentioned on line 6661, but not defined == Missing Reference: 'IVR08' is mentioned on line 6664, but not defined == Missing Reference: 'IVR11' is mentioned on line 6668, but not defined ** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) ** Obsolete normative reference: RFC 2818 (Obsoleted by RFC 9110) ** Obsolete normative reference: RFC 3023 (Obsoleted by RFC 7303) ** Obsolete normative reference: RFC 4288 (Obsoleted by RFC 6838) ** Obsolete normative reference: RFC 4627 (Obsoleted by RFC 7158, RFC 7159) ** 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: A later version (-14) exists of draft-ietf-mediactrl-mixer-control-package-11 == Outdated reference: A later version (-32) exists of draft-ietf-xcon-common-data-model-22 -- Obsolete informational reference (is this intentional?): RFC 4244 (Obsoleted by RFC 7044) -- Obsolete informational reference (is this intentional?): RFC 4281 (Obsoleted by RFC 6381) Summary: 6 errors (**), 0 flaws (~~), 31 warnings (==), 10 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: July 10, 2011 Rain Willow Communications 6 C. Boulton 7 NS-Technologies 8 January 6, 2011 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-11 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 July 10, 2011. 45 Copyright Notice 47 Copyright (c) 2011 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. . . . . . . . . . . . . . . . . . . . 20 88 4.2.2. . . . . . . . . . . . . . . . . . . . . 23 89 4.2.2.1. . . . . . . . . . . . . . . . . . . . 26 90 4.2.2.1.1. . . . . . . . . . . . . . . . . . . 27 91 4.2.2.2. . . . . . . . . . . . . . . . . . . . . 28 92 4.2.2.2.1. . . . . . . . . . . . . . . . . . . 29 93 4.2.2.2.2. . . . . . . . . . . . . . . . . . 29 94 4.2.3. . . . . . . . . . . . . . . . . . . 30 95 4.2.4. . . . . . . . . . . . . . . . . . . . . . 31 96 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 32 97 4.2.5.1. . . . . . . . . . . . . . . . . . . 32 98 4.2.5.2. . . . . . . . . . . . . . . . . . . 34 99 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 35 100 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 35 101 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 36 102 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 38 103 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 40 104 4.3.1.1.1. . . . . . . . . . . . . . . . . . 42 105 4.3.1.1.1.1. Date type . . . . . . . . . . . . . . . . 43 106 4.3.1.1.1.2. Time type . . . . . . . . . . . . . . . . 44 107 4.3.1.1.1.3. Digits type . . . . . . . . . . . . . . . 44 108 4.3.1.1.2. . . . . . . . . . . . . . . . . . . . 45 109 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . . 45 110 4.3.1.1.3.1. . . . . . . . . . . . . . . . . . . 47 111 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 49 112 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 51 113 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 54 114 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 56 115 4.3.1.5. . . . . . . . . . . . . . . . . . . . . . 60 116 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 61 117 4.3.2.1. . . . . . . . . . . . . . . . . . . 61 118 4.3.2.2. . . . . . . . . . . . . . . . . . . 62 119 4.3.2.2.1. . . . . . . . . . . . . . . . 62 121 4.3.2.3. . . . . . . . . . . . . . . . . . . 62 122 4.3.2.4. . . . . . . . . . . . . . . . . . . 62 123 4.3.2.4.1. . . . . . . . . . . . . . . . . . 63 124 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 63 125 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 64 126 4.4.2. . . . . . . . . . . . . . . . . . . . 65 127 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 67 128 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 68 129 4.4.2.2. . . . . . . . . . . . . . . . . . 68 130 4.4.2.2.1. . . . . . . . . . . . . . . 70 131 4.4.2.2.2. . . . . . . . . . . . . . . . 71 132 4.4.2.2.3. . . . . . . . . . . . . . . . . 71 133 4.4.2.2.4. . . . . . . . . . . . . . . . . 71 134 4.4.2.2.5. . . . . . . . . . . . . . . . . . 72 135 4.4.2.2.5.1. . . . . . . . . . . . . . 72 136 4.4.2.2.6. . . . . . . . . . . . . 73 137 4.4.2.2.7. . . . . . . . . . . . . . 73 138 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 73 139 4.4.2.3.1. . . . . . . . . . . . . . . . . 73 140 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 74 141 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 80 142 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 83 143 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 110 144 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 110 145 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 110 146 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 111 147 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 111 148 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 112 149 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 113 150 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 113 151 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 114 152 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 116 153 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 117 154 6.2.5. Subscriptions and notifications . . . . . . . . . . . 118 155 6.2.6. Dialog repetition until DTMF collection complete . . 118 156 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 119 157 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 120 158 7. Security Considerations . . . . . . . . . . . . . . . . . . . 122 159 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 125 160 8.1. Control Package Registration . . . . . . . . . . . . . . 125 161 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 125 162 8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 126 163 8.4. MIME Media Type Registration for 164 'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 126 165 8.5. IVR Prompt Variable Type Registration Information . . . . 127 166 9. Using VoiceXML as a dialog language . . . . . . . . . . . . . 129 167 10. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 137 168 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 154 169 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 155 170 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 156 171 13.1. Normative References . . . . . . . . . . . . . . . . . . 156 172 13.2. Informative References . . . . . . . . . . . . . . . . . 157 173 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 160 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. The implementation SHOULD support storage of authentication 531 information as part of its configuration, including security 532 certificates for use with HTTPS. If the implementation wants to 533 support user authentication, user certifications and passwords can 534 also be stored as part of its configuration or the implementation can 535 extend the schema (adding, for example, an http-password attribute in 536 its own namespace) and then map user authentication information onto 537 the appropriate headers following the HTTP authentication model 538 ([RFC2616]). 540 Some elements in this control package contain attributes whose value 541 is descriptive text primarily for diagnostic use. The implementation 542 can indicated the language used in the descriptive text by means of a 543 'desclang' attribute ([RFC2277]). The desclang attribute can appear 544 on the root element as well as selected subordinate elements (see 545 Section 4.1). The desclang attribute value on the root element 546 applies to all desclang attributes in subordinate elements unless the 547 subordinate element has an explicit desclang attribute which 548 overrides it. 550 Usage examples are provided in Section 6. 552 4.1. 554 The element has the following attributes (in addition to 555 standard XML namespace attributes such as xmlns): 557 version: a string specifying the mscivr package version. The value 558 is fixed as '1.0' for this version of the package. The attribute 559 is mandatory. 561 desclang: specifies the language used in descriptive text attributes 562 of subordinate elements (unless the subordinate element provides a 563 desclang attribute which overrides the value for its descriptive 564 text attributes). The descriptive text attributes on subordinate 565 elements include: the reason attribute on 566 (Section 4.2.4), (Section 4.2.5.1) and 567 (Section 4.4.2); desc attribute on 568 and (Section 4.4.2.2.5.1). A valid value is a language 569 identifier (Section 4.6.11). The attribute is optional. The 570 default value is i-default (BCP47 [RFC5646]). 572 The element has the following defined child elements, only 573 one of which can occur: 575 1. dialog management elements defined in Section 4.2: 577 prepare a dialog. See Section 4.2.1 579 start a dialog. See Section 4.2.2 581 terminate a dialog. See Section 4.2.3 583 response to a dialog request. See Section 4.2.4 585 dialog or subscription notification. See Section 4.2.5 587 2. audit elements defined in Section 4.4: 589 audit package capabilities and managed dialogs. See 590 Section 4.4.1 592 response to an audit request. See Section 4.4.2 594 For example, a request to the MS to start an IVR dialog playing a 595 prompt: 597 598 599 600 601 602 603 604 605 607 and a response from the MS that the dialog started successfully: 609 610 611 613 and finally a notification from the MS indicating that the dialog 614 exited upon completion of playing the prompt: 616 618 619 620 621 622 623 625 The language of the descriptive text in the reason attribute of 626 is explicitly indicated by the desclang attribute of the 627 root element. 629 4.2. Dialog Management Elements 631 This section defines the dialog management XML elements for this 632 control package. These elements are divided into requests, responses 633 and notifications. 635 Request elements are sent to the MS to request a specific dialog 636 operation to be executed. The following request elements are 637 defined: 639 : prepare a dialog for later execution 641 : start a (prepared) dialog on a connection or 642 conference 644 : terminate a dialog 646 Responses from the MS describe the status of the requested operation. 647 Responses are specified in a element (Section 4.2.4) which 648 includes a mandatory attribute describing the status in terms of a 649 numeric code. Response status codes are defined in Section 4.5. The 650 MS MUST respond to a request message with a response message. If the 651 MS is not able to process the request and carry out the dialog 652 operation, the request has failed and the MS MUST indicate the class 653 of failure using an appropriate 4xx response code. Unless an error 654 response code is specified for a class of error within this section, 655 implementations follow Section 4.5 in determining the appropriate 656 status code for the response. 658 Notifications are sent from the MS to provide updates on the status 659 of a dialog or operations defined within the dialog. Notifications 660 are specified in an element (Section 4.2.5). 662 +---------+ 663 | IDLE | 664 +---------+ 665 | | 666 | | 667 /| |/ 668 | | 669 +---------+ | | +---------+ 670 +-----<--| |<--------+ +------------>| |+------>-+ 671 | +-<----|PREPARING| |STARTING | | 672 | | | | ----------->| |---->--+ | 673 | | +---------+ / +---------+ | | 674 | | | / | | | 675 | | |/200 response / /200 response| | | 676 | | | / | | | 677 | | | / | | | 678 | | | / | | | 679 V V v // v | | 680 | | +---------+ / +---------+ | | 681 | | | |--------+ +----| | | | 682 | | |PREPARED |---------+ | | STARTED | | | 683 | | | | | +--->| | | | 684 | | | |--------+| /| | | | 685 | | +---------+ || 200 response +---------+ | | 686 | | || | | | 687 | | /dialogexit notification|| | | | 688 | | (timeout) || | | | 689 | | || | | | 690 | | || | | | 691 | | || | | | 692 | | ||/ | | | 693 | | || 200 response | | | 694 | | || + |/dialogexit | | 695 | | || /dialogexit | notification | | 696 | | || notification | | | 697 | | || | | | 698 | | vv | | | 699 | | /ERROR response +-----------+ | | | 700 | +---------------------->| |<----------+ /ERROR response| | 701 +------------------------>|TERMINATED |<---------------------------+ | 702 / | |<-----------------------------+ 703 410 response +-----------+ /410 response 705 Figure 1: Dialog Lifecycle 707 The MS implementation MUST adhere to the dialog lifecycle shown in 708 Figure 1, where each dialog has the following states: 710 IDLE: the dialog is uninitialized. 712 PREPARING: the dialog is being prepared. The dialog is assigned a 713 valid dialog identifier (see below). If an error occurs the 714 dialog transitions to the TERMINATED state and the MS MUST send a 715 response indicating the error. If the dialog is terminated before 716 preparation is complete, the dialog transitions to the TERMINATED 717 state and the MS MUST send a 410 response (Section 4.5) for the 718 prepare request. 720 PREPARED: the dialog has been successfully prepared and the MS MUST 721 send a 200 response indicating the prepare operation was 722 successful. If the dialog is terminated, then the MS MUST send a 723 200 response, the dialog transitions to the TERMINATED state and 724 the MS MUST send a dialogexit notification event (see 725 Section 4.2.5.1). If the duration the dialog remains in the 726 PREPARED state exceeds the maximum preparation duration, the 727 dialog transitions to the TERMINATED state and the MS MUST send a 728 dialogexit notification with the appropriate error status code 729 (see Section 4.2.5.1). A maximum preparation duration of 300s is 730 RECOMMENDED. 732 STARTING: the dialog is being started. If the dialog has not 733 already been prepared, it is first prepared and assigned a valid 734 dialog identifier (see below). If an error occurs the dialog 735 transitions to the TERMINATED state and the MS MUST send a 736 response indicating the error. If the dialog is terminated, the 737 dialog transitions to the TERMINATED state and the MS MUST send a 738 410 response (Section 4.5) for the start request. 740 STARTED: the dialog has been successfully started and is now active. 741 The MS MUST send a 200 response indicating the start operation was 742 successful. If any dialog events occurs which were subscribed to, 743 the MS MUST send a notifications when the dialog event occurs. 744 When the dialog exits (due to normal termination, an error or a 745 terminate request), the MS MUST send a dialogexit notification 746 event (see Section 4.2.5.1) and the dialog transitions to the 747 TERMINATED state. 749 TERMINATED: the dialog is terminated and its dialog identifier is no 750 longer valid. Dialog notifications MUST NOT be sent for this 751 dialog. 753 Each dialog has a valid identifier until it transitions to a 754 TERMINATED state. The dialog identifier is assigned by the MS unless 755 the or request already specifies a 756 identifier (dialogid) which is not associated with any other dialog 757 on the MS. Once a dialog is in a TERMINATED state, its dialog 758 identifier is no longer valid and can be reused for another dialog. 760 The identifier is used to reference the dialog in subsequent 761 requests, responses and notifications. In a request, 762 the dialog identifier can be specified in the prepareddialogid 763 attribute indicating the prepared dialog to start. In 764 and requests, the dialog identifier is 765 specified in the dialogid attribute, indicating which dialog is to be 766 terminated or audited respectively. If these requests specify a 767 dialog identifier already associated with another dialog on the MS, 768 the MS sends a response with a 405 status code (see Section 4.5) and 769 the same dialogid as in the request. The MS MUST specify a dialog 770 identifier in notifications associated with the dialog. The MS MUST 771 specify a dialog identifier in responses unless it is a response to a 772 syntactically invalid request. 774 For a given dialog, the or request 775 elements specify the dialog content to execute either by including 776 inline a element (the dialog language defined in this 777 package, see Section 4.3) or by referencing an external dialog 778 document (a dialog language defined outside this package). When 779 referencing an external dialog document, the request element contains 780 a URI reference to the remote document (specifying the dialog 781 definition) and, optionally, a type attribute indicating the MIME 782 media type associated with the dialog document. Consequently, the 783 dialog language associated with a dialog on the MS is identified 784 either inline by a child element or by a src attribute 785 referencing a document containing the dialog language. The MS MUST 786 support inline the IVR dialog language defined in Section 4.3. The 787 MS MAY support other dialog languages by reference. 789 4.2.1. 791 The request is sent to the MS to request preparation 792 of a dialog. Dialog preparation consists of (a) retrieving an 793 external dialog document and/or external resources referenced within 794 an inline element, and (b) validating the dialog document 795 syntactically and semantically. 797 A prepared dialog is executed when the MS receives a 798 request referencing the prepared dialog identifier (see 799 Section 4.2.2). 801 The element has the following attributes: 803 src: specifies the location of an external dialog document to 804 prepare. A valid value is a URI (see Section 4.6.9). The MS MUST 805 support both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and 806 the MS MAY support other schemes. If the URI scheme is 807 unsupported, the MS sends a with a 420 status code 808 (Section 4.5). If the document cannot be retrieved within the 809 timeout interval, the MS sends a with a 409 status 810 code. If the document contains a type of dialog language which 811 the MS does not supported, the MS sends a with a 421 812 status code. The attribute is optional. There is no default 813 value. 815 type: specifies the type of the external dialog document indicated 816 in the 'src' attribute. A valid value is a MIME media type (see 817 Section 4.6.10). If the URI scheme used in the src attribute 818 defines a mechanism for establishing the authoratitive MIME media 819 type of the media resource, the value returned by that mechanism 820 takes precedence over this attribute. The attribute is optional. 821 There is no default value. 823 maxage: Used to set the max-age value of the Cache-Control header in 824 conjunction with an external dialog document fetched using HTTP, 825 as per [RFC2616]. A valid value is a non-negative integer (see 826 Section 4.6.4). The attribute is optional. There is no default 827 value. 829 maxstale: Used to set the max-stale value of the Cache-Control 830 header in conjunction with an external dialog document fetched 831 using HTTP, as per [RFC2616]. A valid value is a non-negative 832 integer (see Section 4.6.4). The attribute is optional. There is 833 no default value. 835 fetchtimeout: the maximum timeout interval to wait when fetching an 836 external dialog document. A valid value is a Time Designation 837 (see Section 4.6.7). The attribute is optional. The default 838 value is 30s. 840 dialogid: string indicating a unique name for the dialog. If a 841 dialog with the same name already exists on the MS, the MS sends a 842 with a 405 status code (Section 4.5). If this 843 attribute is not specified, the MS MUST create a unique name for 844 the dialog (see Section 4.2 for dialog identifier assignment). 845 The attribute is optional. There is no default value. 847 The element has the following sequence of child 848 elements: 850 an IVR dialog (Section 4.3) to prepare. The element is 851 optional. 853 : specifies input parameters (Section 4.2.6) for dialog 854 languages defined outside this specification. The element is 855 optional. If a parameter is not supported by the MS for the 856 external dialog language, the MS sends a with a 427 857 status code (Section 4.5). 859 The dialog to prepare can either be specified inline with a 860 child element or externally (for dialog languages defined outside 861 this specification) using the src attribute. It is a syntax error if 862 both an inline element element and a src attribute are 863 specified and the MS sends a with a 400 status code (see 864 Section 4.5). The type, maxage, maxstale and fetchtimeout attributes 865 are only relevant when a dialog is specified as an external document. 867 For example, a request to prepare an inline IVR 868 dialog with a single prompt: 870 871 872 873 874 875 876 877 878 880 In this example, a request with a specified dialogid to prepare a 881 VoiceXML dialog document located externally: 883 884 887 889 Since MS support for dialog languages other than the IVR dialog 890 language defined in this package is optional, if the MS does not 891 support the dialog language it would send a response with the status 892 code 421 (Section 4.5). Further information on using VoiceXML can be 893 found in Section 9. 895 4.2.2. 897 The element is sent to the MS to start a dialog. If 898 the dialog has not been prepared, the dialog is prepared (retrieving 899 external document and/or external resources referenced within 900 element, and the dialog document validated syntactically and 901 semantically). Media processors (e.g. DTMF and prompt queue) are 902 activated and associated with the specified connection or conference. 904 The element has the following attributes: 906 src: specifies the location of an external dialog document to start. 907 A valid value is a URI (see Section 4.6.9). The MS MUST support 908 both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY 909 support other schemes. If the URI scheme is unsupported, the MS 910 sends a with a 420 status code (Section 4.5). If the 911 document cannot be retrieved with the timeout interval, the MS 912 sends a with a 409 status code. If the document 913 contains a type of dialog language which the MS does not 914 supported, the MS sends a with a 421 status code. The 915 attribute is optional. There is no default value. 917 type: specifies the type of the external dialog document indicated 918 in the 'src' attribute. A valid value is a MIME media type (see 919 Section 4.6.10). If the URI scheme used in the src attribute 920 defines a mechanism for establishing the authoratitive MIME media 921 type of the media resource, the value returned by that mechanism 922 takes precedence over this attribute. The attribute is optional. 923 There is no default value. 925 maxage: Used to set the max-age value of the Cache-Control header in 926 conjunction with an external dialog document fetched using HTTP, 927 as per [RFC2616]. A valid value is a non-negative integer (see 928 Section 4.6.4). The attribute is optional. There is no default 929 value. 931 maxstale: Used to set the max-stale value of the Cache-Control 932 header in conjunction with an external dialog document fetched 933 using HTTP, as per [RFC2616]. A valid value is a non-negative 934 integer (see Section 4.6.4). The attribute is optional. There is 935 no default value. 937 fetchtimeout: the maximum timeout interval to wait when fetching an 938 external dialog document. A valid value is a Time Designation 939 (see Section 4.6.7). The attribute is optional. The default 940 value is 30s. 942 dialogid: string indicating a unique name for the dialog. If a 943 dialog with the same name already exists on the MS, the MS sends a 944 with a 405 status code (Section 4.5). If neither the 945 dialogid attribute nor the prepareddialogid attribute is 946 specified, the MS MUST create a unique name for the dialog (see 947 Section 4.2 for dialog identifier assignment). The attribute is 948 optional. There is no default value. 950 prepareddialogid: string identifying a dialog previously prepared 951 using a dialogprepare (Section 4.2.1) request. If neither the 952 dialogid attribute nor the prepareddialogid attribute is 953 specified, the MS MUST create a unique name for the dialog (see 954 Section 4.2 for dialog identifier assignment). The attribute is 955 optional. There is no default value. 957 connectionid: string identifying the SIP dialog connection on which 958 this dialog is to be started (see Section 16.1 of 959 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 960 optional. There is no default value. 962 conferenceid: string identifying the conference on which this dialog 963 is to be started (see Section 16.1 of 964 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 965 optional. There is no default value. 967 Exactly one of the connectionid or conferenceid attributes MUST be 968 specified. If both connectionid and conferenceid attributes are 969 specified or neither are specified, it is a syntax error and the MS 970 sends a with a 400 status code (Section 4.5). 972 It is an error if the connection or conference referenced by a 973 specific connectionid or conferenceid attribute is not available on 974 the MS at the time the request is executed. If an 975 invalid connectionid is specified, the MS sends a with a 976 407 status code (Section 4.5). If an invalid conferenceid is 977 specified, the MS sends a with a 408 status code. 979 The element has the following sequence of child 980 elements: 982 : specifies an IVR dialog (Section 4.3) to execute. The 983 element is optional. 985 : specifies subscriptions to dialog events 986 (Section 4.2.2.1). The element is optional. 988 : specifies input parameters (Section 4.2.6) for dialog 989 languages defined outside this specification. The element is 990 optional. If a parameter is not supported by the MS for the 991 external dialog language, the MS sends a with a 427 992 status code (Section 4.5). 994 : determines the media stream(s) associated with the 995 connection or conference on which the dialog is executed 996 (Section 4.2.2.2). The element is optional. Multiple 997 elements can be specified. 999 The dialog to start can be specified either (a) inline with a 1000 child element, or (b) externally using the src attribute 1001 (for dialog languages defined outside this specification), or (c) 1002 reference a previously prepared dialog using the prepareddialogid 1003 attribute. If exactly one of the src attribute, the prepareddialogid 1004 or a child element is not specified, it is a syntax error 1005 and the MS sends a with a 400 status code (Section 4.5). 1006 If the prepareddialogid and dialogid attributes are specified, it is 1007 also a syntax error and the MS sends a with a 400 status 1008 code. The type, maxage, maxstale and fetchtimeout attributes are 1009 only relevant when a dialog is specified as an external document. 1011 The element provides explicit control over which media 1012 streams on the connection or conference are used during dialog 1013 execution. For example, if a connection supports both audio and 1014 video streams, a element could be used to indicate that only 1015 the audio stream is used in receive mode. In cases where there are 1016 multiple media streams of the same type for a dialog, the AS MUST use 1017 elements to explicitly specify the configuration. If no 1018 elements are specified, then the default media configuration 1019 is that defined for the connection or conference. 1021 If a element is in conflict with (a) another 1022 element, (b) with specified connection or conference media 1023 capabilities, (c) with a SDP label value as part of the connectionid 1024 (see Section 16.1 of [I-D.ietf-mediactrl-sip-control-framework]) then 1025 the MS sends a with a 411 status code (Section 4.5). If 1026 the media stream configuration is not supported by the MS, then the 1027 MS sends a with a 428 status code (Section 4.5). 1029 The MS MAY support multiple, simultaneous dialogs being started on 1030 the same connection or conference. For example, the same connection 1031 can receive different media streams (e.g. audio and video) from 1032 different dialogs, or receive (and implicitly mix where appropriate) 1033 the same type of media streams from different dialogs. If the MS 1034 does not support starting another dialog on the same connection or 1035 conference, it sends a with a 432 status code 1036 (Section 4.5) when it receives the second (or subsequent) dialog 1037 request. 1039 For example, a request to start an ivr dialog on a connection 1040 subscribing to DTMF notifications: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1056 In this example, the dialog is started on a conference where the 1057 conference only receives an audio media stream from the dialog: 1059 1060 1061 1062 1063 1064 1065 1066 1068 4.2.2.1. 1070 The element allows the AS to subscribe to, and be 1071 notified of, specific events which occur during execution of the 1072 dialog. Notifications of dialog events are delivered using the 1073 element (see Section 4.2.5). 1075 The element has no attributes. 1077 The element has the following sequence of child elements 1078 (0 or more occurrences): 1080 : Subscription to DTMF input during the dialog 1081 (Section 4.2.2.1.1). The element is optional. 1083 If a request has with no child elements, the MS treats 1084 the request as if no element was specified. 1086 The MS MUST support subscription for the IVR dialog 1087 language defined in this specification (Section 4.3). It MAY support 1088 other dialog subscriptions (specified using attributes and child 1089 elements from a foreign namespace). If the MS does not support a 1090 subscription specified in a foreign namespace, the MS sends a 1091 response with a 431 status code (see Section 4.5). 1093 4.2.2.1.1. 1095 The element has the following attributes: 1097 matchmode: controls which DTMF input are subscribed to. Valid 1098 values are: "all" - notify all DTMF key presses received during 1099 the dialog; "collect" - notify only DTMF input matched by the 1100 collect operation (Section 4.3.1.3); and "control" - notify only 1101 DTMF input matched by the runtime control operation 1102 (Section 4.3.1.2). The attribute is optional. The default value 1103 is "all". 1105 The element has no child elements. 1107 DTMF notifications are delivered in the element 1108 (Section 4.2.5.2). 1110 For example, the AS wishes to subscribe to DTMF key press matching a 1111 runtime control: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1127 Each time a '2' or '3' DTMF input is received, the MS sends a 1128 notification event: 1130 1131 1132 1134 1135 1137 4.2.2.2. 1139 The element has the following attributes: 1141 media: a string indicating the type of media associated with the 1142 stream. A valid value is a MIME type-name as defined in Section 1143 4.2 of [RFC4288]. The following values MUST be used for common 1144 types of media: "audio" for audio media, and "video" for video 1145 media. See IANA ([IANA]) for registered MIME type names. The 1146 attribute is mandatory. 1148 label: a string indicating the SDP label associated with a media 1149 stream ([RFC4574]). The attribute is optional. 1151 direction: a string indicating the direction of the media flow 1152 relative to the endpoint conference or connection. Defined values 1153 are: "sendrecv" (the endpoint can send media to, and receive media 1154 from, the dialog), "sendonly" (the endpoint can only send media to 1155 the dialog), "recvonly" (the endpoint can only receive media from 1156 the dialog) and "inactive" (stream is not to be used). The 1157 default value is "sendrecv". The attribute is optional. 1159 The element has the following sequence of child elements: 1161 : an element to specify the area within a mixer video layout 1162 where a media stream is displayed (Section 4.2.2.2.1). The 1163 element is optional. 1165 : an element to configure priority associated with the 1166 stream in the conference mix (Section 4.2.2.2.2). The element is 1167 optional. 1169 If conferenceid is not specified or if the "media" attribute does not 1170 have the value of "video", then the MS ignores the and 1171 elements. 1173 For example, assume a user agent connection with multiple audio and 1174 video streams associated with the user and a separate web camera. In 1175 this case, the dialog could be started to record only the audio and 1176 video streams associated with the user: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1190 Using the element, the dialog can be started on a conference 1191 mixer so that the video output from the dialog is directed to a 1192 specific area within a video layout. For example: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1 1203 1204 1205 1207 4.2.2.2.1. 1209 The element is used to specify a named area within a 1210 presentation layout where a video media stream is displayed. The MS 1211 could, for example, play video media into an area of a video layout 1212 where the layout and its named regions are specified using the Mixer 1213 Control Package ([I-D.ietf-mediactrl-mixer-control-package]). 1215 The element has no attributes and its content model 1216 specifies the name of the region. 1218 If the region name is invalid, then the MS reports a 416 status code 1219 (Section 4.5) in the response to the request element containing the 1220 element. 1222 4.2.2.2.2. 1224 The element is used to explicitly specify the priority of 1225 the dialog for presentation in a conference mix. 1227 The element has no attributes and its content model 1228 specifies a positive integer (see Section 4.6.5). The lower the 1229 value, the higher the priority. 1231 4.2.3. 1233 A dialog can be terminated by sending a request 1234 element to the MS. 1236 The element has the following attributes: 1238 dialogid: string identifying the dialog to terminate. If the 1239 specified dialog identifier is invalid, the MS sends a response 1240 with a 405 status code (Section 4.5). The attribute is mandatory. 1242 immediate: indicates whether a dialog in the STARTED state is to be 1243 terminated immediately or not (in other states, termination is 1244 always immediate). A valid value is a boolean (see 1245 Section 4.6.1). A value of true indicates that the dialog is 1246 terminated immediately and the MS MUST send a dialogexit 1247 notification (Section 4.2.5.1) without report information. A 1248 value of false indicates that the dialog terminates after the 1249 current iteration and the MS MUST send a dialogexit notification 1250 with report information. The attribute is optional. The default 1251 value is false. 1253 The MS MUST reply to request with a 1254 element (Section 4.2.4), reporting whether the dialog was terminated 1255 successful or not. 1257 For example, immediately terminating a STARTED dialog with dialogid 1258 "d4": 1260 1261 1262 1264 If the dialog is terminated successfully, then the response to the 1265 dialogterminate request would be: 1267 1268 1269 1271 4.2.4. 1273 Responses to dialog management requests are specified with a 1274 element. 1276 The element has following attributes: 1278 status: numeric code indicating the response status. Valid values 1279 are defined in Section 4.5. The attribute is mandatory. 1281 reason: string specifying a reason for the response status. The 1282 attribute is optional. There is no default value. 1284 desclang: specifies the language used in the value of the the reason 1285 attribute. A valid value is a language identifier 1286 (Section 4.6.11). The attribute is optional. If not specified, 1287 the value of the desclang attribute on (Section 4.1) 1288 applies. 1290 dialogid: string identifying the dialog. If the request specifies a 1291 dialogid, then that value is used. Otherwise, with 1292 and requests, the dialogid generated 1293 by the MS is used. If there is no available dialogid because the 1294 request is syntactically invalid (e.g. a request 1295 with no dialogid attribute specified), then the value is the empty 1296 string. The attribute is mandatory. 1298 connectionid: string identifying the SIP dialog connection 1299 associated with the dialog (see Section 16.1 of 1300 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1301 optional. There is no default value. 1303 conferenceid: string identifying the conference associated with the 1304 dialog (see Section 16.1 of 1305 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1306 optional. There is no default value. 1308 For example, a response when a dialog was prepared successfully: 1310 1311 1312 1314 The response if dialog preparation failed due to an unsupported 1315 dialog language: 1317 1318 1320 1322 In this example a request does not specify a 1323 dialogid: 1325 1326 1327 1329 The response status indicates a 400 (Syntax error) status code and 1330 the dialogid attribute has an empty string value: 1332 1333 1335 1337 4.2.5. 1339 When a dialog generates a notification event, the MS sends the event 1340 using an element. 1342 The element has the following attributes: 1344 dialogid: string identifying the dialog which generated the event. 1345 The attribute is mandatory. 1347 The element has the following child elements, only one of 1348 which can occur: 1350 : indicates that the dialog has exited 1351 (Section 4.2.5.1). 1353 : indicates that a DTMF key press occurred 1354 (Section 4.2.5.2). 1356 4.2.5.1. 1358 The event indicates that a prepared or active dialog has 1359 exited because it is complete, has been terminated, or because an 1360 error occurred during execution (for example, a media resource cannot 1361 be played). This event MUST be sent by the MS when the dialog exits. 1363 The element has the following attributes: 1365 status: a status code indicating the status of the dialog when it 1366 exits. A valid value is a non-negative integer (see 1367 Section 4.6.4). The MS MUST support the following values: 1369 0 indicates the dialog has been terminated by a 1370 request. 1372 1 indicates successful completion of the dialog. 1374 2 indicates the dialog terminated because the connection or 1375 conference associated with the dialog has terminated. 1377 3 indicates the dialog terminated due to exceeding its maximum 1378 duration. 1380 4 indicates the dialog terminated due to an execution error. 1382 All other valid but undefined values are reserved for future use, 1383 where new status codes are assigned using the Standards Action 1384 process defined in [RFC5226]. The AS MUST treat any status code 1385 it does not recognize as being equivalent to 4 (dialog execution 1386 error). The attribute is mandatory. 1388 reason: a textual description which the MS SHOULD use to provide a 1389 reason for the status code; e.g. details about an error. A valid 1390 value is a string (see Section 4.6.6). The attribute is optional. 1391 There is no default value. 1393 desclang: specifies the language used in the value of the the reason 1394 attribute. A valid value is a language identifier 1395 (Section 4.6.11). The attribute is optional. If not specified, 1396 the value of the desclang attribute on (Section 4.1) 1397 applies. 1399 The element has the following sequence of child 1400 elements: 1402 : report information (Section 4.3.2.1) about the prompt 1403 execution in an IVR . The element is optional. 1405 : reports information (Section 4.3.2.2) about the 1406 control execution in an IVR . The element is optional. 1408 : reports information (Section 4.3.2.3) about the 1409 collect execution in an IVR . The element is optional. 1411 : reports information (Section 4.3.2.4) about the record 1412 execution in an IVR . The element is optional. 1414 : reports exit parameters (Section 4.2.6) for a dialog 1415 language defined outside this specification. The element is 1416 optional. 1418 For example, an active exits normally the MS sends a 1419 dialogexit reporting information: 1421 1422 1423 1424 1425 1426 1427 1429 4.2.5.2. 1431 The element provide a notification of DTMF input 1432 received during the active dialog as requested by a 1433 subscription (Section 4.2.2.1). 1435 The element has the following attributes: 1437 matchmode: indicates the matching mode specified in the subscription 1438 request. Valid values are: "all" - all DTMF key presses notified 1439 individually; "collect" - only DTMF input matched by the collect 1440 operation notified; and "control" - only DTMF input matched by the 1441 control operation notified. The attribute is optional. The 1442 default value is "all". 1444 dtmf: DTMF key presses received according to the matchmode. A valid 1445 value is a DTMF string (see Section 4.6.3) with no space between 1446 characters. The attribute is mandatory. 1448 timestamp: indicates the time (on the MS) at which the last key 1449 press occurred according to the matchmode. A valid value is a 1450 dateTime expression (Section 4.6.12). The attribute is mandatory. 1452 For example, a notification of DTMF input matched during the collect 1453 operation: 1455 1456 1457 1459 1460 1462 4.2.6. 1464 The element is a container for elements 1465 (Section 4.2.6.1). 1467 The element has no attributes, but the following child 1468 elements are defined (0 or more): 1470 : specifies a parameter name and value (Section 4.2.6.1). 1472 For example, usage with a dialog language defined outside this 1473 specification to send additional parameters into the dialog: 1475 1476 1478 1479 playannouncement 1480 nfs://nas01/media1.3gp 1481 nfs://nas01/media2.3gp 1482 1483 1484 1486 4.2.6.1. 1488 The element describes a parameter name and value. 1490 The element has the following attributes: 1492 name: a string indicating the name of the parameter. The attribute 1493 is mandatory. 1495 type: specifies a type indicating how the inline value of the 1496 parameter is to be interpreted. A valid value is a MIME media 1497 type (see Section 4.6.10). The attribute is optional. The 1498 default value is "text/plain". 1500 encoding: specifies a content-transfer-encoding schema applied to 1501 the inline value of the parameter on top of the MIME media type 1502 specified with the type attribute. A valid value is a content- 1503 transfer-encoding schema as defined by the "mechanism" token in 1504 Section 6.1 of [RFC2045]. The attribute is optional. There is no 1505 default value. 1507 The element content model is the value of the parameter. 1508 Note that a value which contains XML characters (e.g. "<") needs to 1509 be escaped following standard XML conventions. 1511 For example, usage with a dialog language defined outside this 1512 specification to receive parameters from the dialog when it exits: 1514 1515 1516 1517 1518 recording 1519 1520 1523 1524 1525 1526 1527 1529 4.3. IVR Dialog Elements 1531 This section describes the IVR dialog language defined as part of 1532 this specification. The MS MUST support this dialog language. 1534 The element is an execution container for operations of 1535 playing prompts (Section 4.3.1.1), runtime controls 1536 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1537 user input (Section 4.3.1.4. Results of the dialog execution 1538 (Section 4.3.2) are reported in a dialogexit notification event. 1540 Using these elements, three common dialog models are supported: 1542 playannouncements: only a element is specified in the 1543 container. The prompt media resources are played in sequence. 1545 promptandcollect: a element is specified and, optionally, 1546 a element. If a element is specified and 1547 bargein is enabled, playing of the prompt is terminated when 1548 bargein occurs, and DTMF collection is initiated; otherwise, the 1549 prompt is played to completion before DTMF collection is 1550 initiated. If no prompt element is specified, DTMF collection is 1551 initiated immediately. 1553 promptandrecord: a element is specified and, optionally, a 1554 element. If a element is specified and bargein 1555 is enabled, playing of the prompt is terminated when bargein 1556 occurs, and recording is initiated; otherwise, the prompt is 1557 played to completion before recording is initiated. If no prompt 1558 element is specified, recording is initiated immediately. 1560 In addition, this dialog language supports runtime ('VCR') controls 1561 enabling a user to control prompt playback using DTMF. 1563 Each of the core elements - , , and 1564 - are specified so that their execution and reporting is 1565 largely self-contained. This facilitates their re-use in other 1566 dialog container elements. Note that DTMF and bargein behavior 1567 affects multiple elements and is addressed in the relevant element 1568 definitions. 1570 Execution results are reported in the notification event 1571 with child elements defined in Section 4.3.2. If the dialog 1572 terminated normally (i.e. not due to an error or to a 1573 request), then the MS MUST report the results for 1574 the operations specified in the dialog: 1576 : (see Section 4.3.2.1) with at least the 1577 termmode attribute specified. 1579 : (see Section 4.3.2.2) if any runtime 1580 controls are matched. 1582 : (see Section 4.3.2.3) with the dtmf and 1583 termmode attributes specified. 1585 : (see Section 4.3.2.4) with at least the 1586 termmode attribute and one element specified. 1588 The media format requirements for IVR dialogs are undefined. This 1589 package is agnostic to the media types and codecs for media resources 1590 and recording which need to be supported by an implementation. For 1591 example, a MS implementation might only support audio and in 1592 particular the 'audio/basic' codec for media playback and recording. 1594 However, when executing a dialog, if an MS encounters a media type or 1595 codec which it cannot process, the MS MUST stop further processing 1596 and report the error using the dialogexit notification. 1598 4.3.1. 1600 An IVR dialog to play prompts to the user, allow runtime controls, 1601 collect DTMF or record input. The dialog is specified using a 1602 element. 1604 A element has the following attributes: 1606 repeatCount: number of times the dialog is to be executed. A valid 1607 value is a non-negative integer (see Section 4.6.4). A value of 0 1608 indicates that the dialog is repeated until halted by other means. 1609 The attribute is optional. The default value is 1. 1611 repeatDur: maximum duration for dialog execution. A valid value is 1612 a Time Designation (see Section 4.6.7). If no value is specified, 1613 then there is no limit on the duration of the dialog. The 1614 attribute is optional. There is no default value. 1616 repeatUntilComplete: indicates whether the MS terminates dialog 1617 execution when an input operation is completed successfully. A 1618 valid value is a boolean (see Section 4.6.1). A value of true 1619 indicates that dialog execution is terminated when an input 1620 operation associated with its child elements is completed 1621 sucessfully (see execution model below for precise conditions). A 1622 value of false indicates that dialog execution is terminated by 1623 other means. The attribute is optional. The default value is 1624 false. 1626 The repeatDur attribute takes priority over the repeatCount attribute 1627 in determining maximum duration of the dialog. See 'repeatCount' and 1628 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1629 information. In the situation where a dialog is repeated more than 1630 once, only the results of operations in the last dialog iteration are 1631 reported. 1633 The element has the following sequence of child elements (at 1634 least one, any order): 1636 : defines media resources to play in sequence (see 1637 Section 4.3.1.1). The element is optional. 1639 : defines how DTMF is used for runtime controls (see 1640 Section 4.3.1.2). The element is optional. 1642 : defines how DTMF is collected (see Section 4.3.1.3). The 1643 element is optional. 1645 : defines how recording takes place (see Section 4.3.1.4). 1646 The element is optional. 1648 Although the behavior when both and elements are 1649 specified in a request is not defined in this control package, the MS 1650 MAY support this configuration. If the MS does not support this 1651 configuration, the MS sends a with a 433 status code. 1653 The MS has the following execution model for the IVR dialog after 1654 initialization (initialization errors are reported by the MS in the 1655 response): 1657 1. If an error occurs during execution, then the MS terminates the 1658 dialog and reports the error in the event by setting 1659 the status attribute (see Section 4.3.2). Details about the 1660 error are specified in the reason attribute. 1662 2. The MS initializes a counter to 0. 1664 3. The MS starts a duration timer for the value of the repeatDur 1665 attribute. If the timer expires before the dialog is complete, 1666 then the MS terminates the dialog and sends a dialogexit whose 1667 status attribute is set to 3 (see Section 4.2.5.1). The MS MAY 1668 report information in the dialogexit gathered in the last 1669 execution cycle (if any). 1671 4. The MS initiates a dialog execution cycle. Each cycle executes 1672 the operations associated with the child elements of the dialog. 1673 If a element is specified, then execute the element's 1674 prompt playing operation and activate any controls (if the 1675 element is specified). If no is specified or 1676 when a specified terminates, then start the collect 1677 operation or the record operation if the or 1678 elements respectively are specified. If subscriptions are 1679 specified for the dialog, then the MS sends a notification event 1680 when the specified event occurs. If execution of a child element 1681 results in an error, the MS terminates dialog execution (and 1682 stops other child element operations) and the MS sends a 1683 dialogexit status event, reporting any information gathered. 1685 5. If the dialog execution cycle completes successfully, then the MS 1686 increments the counter by one. The MS terminates dialog 1687 execution if either of the following conditions is true: 1689 * the value of the repeatCount attribute is greater than zero 1690 and the counter is equal to the value of the repeatCount 1691 attribute 1693 * the value of the repeatUntilComplete attribute is true and one 1694 of the following conditions is true: 1696 + reports termination status of 'match' or 1697 'stopped'. 1699 + reports termination status of 'stopped', 'dtmf', 1700 'maxtime' or 'finalsilence'. 1702 When the MS terminates dialog execution, it sends a dialogexit 1703 (with a status of 1) reporting operation information collected in 1704 the last dialog execution cycle only. Otherwise, another dialog 1705 execution cycle is initiated. 1707 4.3.1.1. 1709 The element specifies a sequence of media resources to play 1710 back in document order. 1712 A element has the following attributes: 1714 xml:base: A string declaring the base URI from which relative URIs 1715 in child elements are resolved prior to fetching. A valid value 1716 is a URI (see Section 4.6.9). The attribute is optional. There 1717 is no default value. 1719 bargein: Indicates whether user input stops prompt playback unless 1720 the input is associated with a specified runtime 1721 operation (input matching control operations never interrupts 1722 prompt playback). A valid value is a boolean (see Section 4.6.1). 1723 A value of true indicates that bargein is permitted and prompt 1724 playback is stopped. A value of false indicates that bargein is 1725 not permitted: user input does not terminate prompt playback. The 1726 attribute is optional. The default value is true. 1728 The element has the following child elements (at least one, 1729 any order, multiple occurrences of elements permitted): 1731 : specifies a media resource (see Section 4.3.1.5) to play. 1732 The element is optional. 1734 : specifies a variable media announcement (see 1735 Section 4.3.1.1.1) to play. The element is optional. 1737 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1738 play. The element is optional. 1740 : specifies media resources to play in parallel (see 1741 Section 4.3.1.1.3). The element is optional. 1743 If the MS does not support the configuration required for prompt 1744 playback to the output media streams and a more specific error code 1745 is not defined for its child elements, the MS sends a with 1746 a 429 status code (Section 4.5). The MS MAY support transcoding 1747 between the media resource format and the output stream format. 1749 The MS has the following execution model for prompt playing after 1750 initialization: 1752 1. The MS initiates prompt playback playing its child elements 1753 (, , and ) one after another in 1754 document order. 1756 2. If any error (including fetching and rendering errors) occurs 1757 during prompt execution, then the MS terminates playback and 1758 reports its error status to the dialog container (see 1759 Section 4.3) with a (see Section 4.3.2.1) where the 1760 termmode attribute is set to stopped and any additional 1761 information is set. 1763 3. If DTMF input is received and the value of the bargein attribute 1764 is true, then the MS terminates prompt playback and reports its 1765 execution status to the dialog container (see Section 4.3) with a 1766 (see Section 4.3.2.1) where the termmode attribute 1767 is set to bargein and any additional information is set. 1769 4. If prompt playback is stopped by the dialog container, then the 1770 MS reports its execution status to the dialog container (see 1771 Section 4.3) with a (see Section 4.3.2.1) where the 1772 termmode attribute is set to stopped and any additional 1773 information is set. 1775 5. If prompt playback completes successfully, then the MS reports 1776 its execution status to the dialog container (see Section 4.3) 1777 with a (see Section 4.3.2.1) where the termmode 1778 attribute is set to completed and any additional information is 1779 set. 1781 4.3.1.1.1. 1783 The element specifies variable announcements using 1784 predefined media resources. Each variable has at least a type (e.g. 1785 date) and a value (e.g. 2008-02-25). The value is rendered according 1786 to the prompt variable type (e.g. 2008-02-25 is rendered as the date 1787 25th February 2008). The precise mechanism for generating variable 1788 announcements (including the location of associated media resources) 1789 is implementation specific. 1791 A element has the following attributes: 1793 type: specifies the type of prompt variable to render. This 1794 specification defines three values - date (Section 4.3.1.1.1.1), 1795 time (Section 4.3.1.1.1.2) and digits (Section 4.3.1.1.1.3). All 1796 other valid but undefined values are reserved for future use, 1797 where new values are assigned as described in Section 8.5. A 1798 valid value is a string (see Section 4.6.6). The attribute is 1799 mandatory. 1801 value: specifies a string to be rendered according to the prompt 1802 variable type. A valid value is a string (see Section 4.6.6). 1803 The attribute is mandatory. 1805 format: specifies format information which the prompt variable type 1806 uses to render the value attribute. A valid value is a string 1807 (see Section 4.6.6). The attribute is optional. There is no 1808 default value. 1810 gender: specifies the gender which the prompt variable type uses to 1811 render the value attribute. Valid values are "male" or "female". 1812 The attribute is optional. There is no default value. 1814 xml:lang: specifies the language which the prompt variable type uses 1815 to render the value attribute. A valid value is a language 1816 identifier (see Section 4.6.11). The attribute is optional. 1817 There is no default value. 1819 The element has no children. 1821 This specification is agnostic to the type and codec of media 1822 resources into which variable are rendered as well as the rendering 1823 mechanism itself. For example, an MS implementation supporting audio 1824 rendering could map the into one or more audio media 1825 resources. 1827 This package is agnostic to which types are supported by 1828 an implementation. If a element configuration specified 1829 in a request is not supported by the MS, the MS sends a 1830 with a 425 status code (Section 4.5). 1832 4.3.1.1.1.1. Date type 1834 The date variable type provides a mechanism for dynamically rendering 1835 a date prompt. 1837 The type attribute MUST have the value "date". 1839 The format attribute MUST be one of the following values 1840 and comply with its rendering of the value attribute: 1842 mdy indicating that the value attribute is to be rendered 1843 as sequence composed of month, then day, then year. 1845 ymd indicating that the value attribute is to be rendered 1846 as sequence composed of year, then month, then day. 1848 dym indicating that the value attribute is to be rendered 1849 as sequence composed of day, then year, then month. 1851 dm indicating that the value attribute is to be rendered 1852 as sequence composed of day then month. 1854 The value attribute MUST comply with a lexical 1855 representation of date where 1857 yyyy '-' mm '-' dd 1859 as defined in Section 3.2.9 of [XMLSchema:Part2]. 1861 For example, 1863 1866 describe a variable date prompt where the date can be rendered in 1867 audio as "twenty-fifth of November two thousand and ten" using a list 1868 of resources: 1870 1871 1872 1873 1874 1875 1877 4.3.1.1.1.2. Time type 1879 The time variable type provides a mechanism for dynamically rendering 1880 a time prompt. 1882 The type attribute MUST have the value "time". 1884 The format attribute MUST be one of the following values 1885 and comply with its rendering of the value attribute: 1887 t12 indicating that the value attribute is to be rendered 1888 as a time in traditional 12 hour format using am or pm (for 1889 example, "twenty five minutes past 2 pm" for "14:25"). 1891 t24 indicating that the value attribute is to be rendered 1892 as a time in 24 hour format (for example, "fourteen twenty five" 1893 for "14:25"). 1895 The value attribute MUST comply with a lexical 1896 representation of time where 1898 hh ':' mm ( ':' ss )? 1900 as defined in Section 3.2.8 of [XMLSchema:Part2]. 1902 4.3.1.1.1.3. Digits type 1904 The digits variable type provides a mechanism for dynamically 1905 rendering a digit sequence. 1907 The type attribute MUST have the value "digits". 1909 The format attribute MUST be one of the following values 1910 and comply with its rendering of the value attribute: 1912 gen indicating that the value attribute is to be rendered 1913 as a general digit string (for example, "one two three" for 1914 "123"). 1916 crn indicating that the value attribute is to be rendered 1917 as a cardinal number (for example, "one hundred and twenty three" 1918 for "123"). 1920 ord indicating that the value attribute is to be rendered 1921 as an ordinal number (for example, "one hundred and twenty third" 1922 for "123"). 1924 The value attribute MUST comply with the lexical 1925 representation 1927 d+ 1929 i.e. one or more digits. 1931 4.3.1.1.2. 1933 The element specifies a sequence of DTMF tones for output. 1935 DTMF tones could be generated using resources where the 1936 output is transported as RTP audio packets. However, 1937 resources are not sufficient for cases where DTMF tones are to be 1938 transported as DTMF RTP ([RFC4733]) or in event packages. 1940 A element has the following attributes: 1942 digits: specifies the DTMF sequence to output. A valid value is a 1943 DTMF string (see Section 4.6.3). The attribute is mandatory. 1945 level: used to define the power level for which the DTMF tones will 1946 be generated. Values are expressed in dBm0. A valid value is an 1947 integer in the range of 0 to -96 (dBm0). Larger negative values 1948 express lower power levels. Note that values lower than -55 dBm0 1949 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1950 The attribute is optional. The default value is -6 (dBm0). 1952 duration: specifies the duration for which each DTMF tone is 1953 generated. A valid value is a time designation (see 1954 Section 4.6.7). The MS MAY round the value if it only supports 1955 discrete durations. The attribute is optional. The default value 1956 is 100ms. 1958 interval: specifies the duration of a silence interval following 1959 each generated DTMF tone. A valid value is a time designation 1960 (see Section 4.6.7). The MS MAY round the value if it only 1961 supports discrete durations. The attribute is optional. The 1962 default value is 100ms. 1964 The element has no children. 1966 If a element configuration is not supported, the MS sends a 1967 with a 426 status code (Section 4.5). 1969 4.3.1.1.3. 1971 The element allows media resources to be played in parallel. 1972 Each of its child elements specify a media resource (or a sequence of 1973 media resources using the element). When playback of the 1974 element is initiated, the MS begins playback of all its child 1975 elements at the same time. This element is modeled after the 1976 element in SMIL ([W3C.REC-SMIL2-20051213]). 1978 The element has the following attributes: 1980 endsync: indicates when playback of the element is complete. Valid 1981 values are: "first" - indicates that the element is complete when 1982 any child element reports that it is complete; "last" - indicates 1983 it is complete when every child elements are complete. The 1984 attribute is optional. The default value is "last". 1986 If the value is "first", then playback of other child element is 1987 stopped when one child element reports it is complete. 1989 The element has the following child elements (at least one, any 1990 order, multiple occurrences of each element permitted): 1992 : specifies a sequence of media resources to play in a parallel 1993 with other child elements (see Section 4.3.1.1.3.1). The 1994 element is optional. 1996 : specifies a media resource (see Section 4.3.1.5) to play. 1997 The MS is responsible for assigning the appropriate media 1998 stream(s) when more than one is available. The element is 1999 optional. 2001 : specifies a variable media announcement (see 2002 Section 4.3.1.1.1) to play. The element is optional. 2004 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 2005 play. The element is optional. 2007 It is RECOMMENDED that a element contains only one 2008 element of the same media type (i.e. same type-name as defined in 2009 Section 4.6.10). If a element configuration is not supported, 2010 the MS sends a with a 435 status code (Section 4.5). 2012 Runtime s (Section 4.3.1.2) apply to each child element 2013 playing parallel. For example, pause and resume controls cause all 2014 child elements to be paused and resumed respectively. 2016 If the element is stopped by the prompt container (e.g. bargein 2017 or dialog termination), then playback of all child elements is 2018 stopped. The playback duration (Section 4.3.2.1) reported for the 2019 element is the duration of parallel playback, not the 2020 cumulative duration of each child element played in parallel. 2022 For example, a request to playback audio and video media in parallel: 2024 2025 2026 2027 2028 2029 2031 2033 2034 2035 2036 2037 2039 When the element is executed, it begins playback of its 2040 child element in document order sequence. In this case, there is 2041 only one child element, a element itself containing audio and 2042 video child element. Consequently playback of both audio and 2043 video media resources is initiated at the same time. Since the 2044 endsync attribute is not specified, the default value "last" applies. 2045 The element playback is complete when the media resource with 2046 the longest duration is complete. 2048 4.3.1.1.3.1. 2050 The element specifies media resources to be played back in 2051 sequence. This allows a sequence of media resources to be played at 2052 the same time as other children of a element are played in 2053 parallel. For example, a sequence of audio resources while a video 2054 resource is played in parallel. This element is modeled after the 2055 element in SMIL ([W3C.REC-SMIL2-20051213]). 2057 The element has no attributes. 2059 The element has the following child elements (at least one, any 2060 order, multiple occurrences of each element permitted): 2062 : specifies a media resource (see Section 4.3.1.5) to play. 2063 The element is optional. 2065 : specifies a variable media announcement (see 2066 Section 4.3.1.1.1) to play. The element is optional. 2068 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 2069 play. The element is optional. 2071 Playback of a element is complete when all child elements in 2072 the sequence are complete. If the element is stopped by the 2073 container, then playback of the current child element is 2074 stopped (remaining child elements in the sequence are not played). 2076 For example, a request to play a sequence of audio resources in 2077 parallel with a video media: 2079 2080 2081 2082 2083 2084 2085 2087 2089 2091 2093 2094 2096 2097 2098 2099 2100 2102 When the element is executed, it begins playback of the 2103 element containing a element and a video element. 2104 The element itself contains a sequence of audio 2105 elements. Consequently playback of the video media resource is 2106 initiated at the same time as playback of the sequence of the audio 2107 media resources is initiated. Each audio resource is played back 2108 after the previous one completes. Since the endsync attribute is set 2109 to "first", the element playback is complete when either all 2110 the audio resources in have been played to completion or the 2111 video is complete, whichever occurs first. 2113 4.3.1.2. 2115 The element defines how DTMF input is mapped to runtime 2116 controls, including prompt playback controls. 2118 DTMF input matching these controls MUST NOT cause prompt playback to 2119 interrupted (i.e. no prompt bargein), but causes the appropriate 2120 operation to be applied; for examples, speeding up prompt playback. 2122 DTMF input matching these controls has priority over input 2123 for the duration of prompt playback. If an incoming DTMF character 2124 matches a specified runtime control, then the DTMF character is 2125 consumed: it is not added to the digit buffer and so is not available 2126 to the operation. Once prompt playback is complete, 2127 runtime controls are no longer active. 2129 The element has the following attributes: 2131 gotostartkey: maps a DTMF key to skip directly to the start of the 2132 prompt. A valid value is a DTMF Character (see Section 4.6.2). 2133 The attribute is optional. There is no default value. 2135 gotoendkey: maps a DTMF key to skip directly to the end of the 2136 prompt. A valid value is a DTMF Character (see Section 4.6.2). 2137 The attribute is optional. There is no default value. 2139 skipinterval: indicates how far a MS skips backwards or forwards 2140 through prompt playback when the rewind (rwkey) of fast forward 2141 key (ffkey) is pressed. A valid value is a Time Designation (see 2142 Section 4.6.7). The attribute is optional. The default value is 2143 6s. 2145 ffkey: maps a DTMF key to a fast forward operation equal to the 2146 value of 'skipinterval'. A valid value is a DTMF Character (see 2147 Section 4.6.2). The attribute is optional. There is no default 2148 value. 2150 rwkey: maps a DTMF key to a rewind operation equal to the value of 2151 'skipinterval'. A valid value is a DTMF Character (see 2152 Section 4.6.2). The attribute is optional. There is no default 2153 value. 2155 pauseinterval: indicates how long a MS pauses prompt playback when 2156 the pausekey is pressed. A valid value is a Time Designation (see 2157 Section 4.6.7). The attribute is optional. The default value is 2158 10s. 2160 pausekey: maps a DTMF key to a pause operation equal to the value of 2161 'pauseinterval'. A valid value is a DTMF Character (see 2162 Section 4.6.2). The attribute is optional. There is no default 2163 value. 2165 resumekey: maps a DTMF key to a resume operation. A valid value is 2166 a DTMF Character (see Section 4.6.2). The attribute is optional. 2167 There is no default value. 2169 volumeinterval: indicates the increase or decrease in playback 2170 volume (relative to the current volume) when the volupkey or 2171 voldnkey is pressed. A valid value is a percentage (see 2172 Section 4.6.8). The attribute is optional. The default value is 2173 10%. 2175 volupkey: maps a DTMF key to a volume increase operation equal to 2176 the value of 'volumeinterval'. A valid value is a DTMF Character 2177 (see Section 4.6.2). The attribute is optional. There is no 2178 default value. 2180 voldnkey: maps a DTMF key to a volume decrease operation equal to 2181 the value of 'volumeinterval'. A valid value is a DTMF Character 2182 (see Section 4.6.2). The attribute is optional. There is no 2183 default value. 2185 speedinterval: indicates the increase or decrease in playback speed 2186 (relative to the current speed) when the speedupkey or speeddnkey 2187 is pressed. A valid value is a percentage (see Section 4.6.8). 2188 The attribute is optional. The default value is 10%. 2190 speedupkey: maps a DTMF key to a speed increase operation equal to 2191 the value of the speedinterval attribute. A valid value is a DTMF 2192 Character (see Section 4.6.2). The attribute is optional. There 2193 is no default value. 2195 speeddnkey: maps a DTMF key to a speed decrease operation equal to 2196 the value of the speedinterval attribute. A valid value is a DTMF 2197 Character (see Section 4.6.2). The attribute is optional. There 2198 is no default value. 2200 external: allows one or more DTMF keys to be declared as external 2201 controls (for example: video camera controls); the MS can send 2202 notifications when a matching key is activated using 2203 (Section 4.2.5.2). A valid value is a DTMF String (see 2204 Section 4.6.3). The attribute is optional. There is no default 2205 value. 2207 If the same DTMF is specified in more than one DTMF key control 2208 attribute - except the pausekey and resumekey attributes - the MS 2209 sends a with a 413 status code (Section 4.5). 2211 The MS has the following execution model for runtime control after 2212 initialization: 2214 1. If an error occurs during execution, then the MS terminates 2215 runtime control and the error is reported to the dialog 2216 container. The MS MAY report controls executed successfully 2217 before the error in (see Section 4.3.2.2). 2219 2. Runtime controls are active only during prompt playback (if no 2220 element is specified, then runtime controls are 2221 ignored). If DTMF input matches any specified keys (for example 2222 the ffkey), then the MS applies the appropriate operation 2223 immediately. If a seek operation (ffkey, rwkey) attempts to go 2224 beyond the beginning or end of the prompt queue, then the MS 2225 automatically truncates it to the prompt queue beginning or end 2226 respectively. If a volume operation (voldnkey, volupkey) 2227 attempts to go beyond the minimum or maximum volume supported by 2228 the platform, then the MS automatically limits the operation to 2229 minimum or maximum supported volume respectively. If a speed 2230 operation (speeddnkey, speedupkey) attempts to go beyond the 2231 minimum or maximum playback speed supported by the platform, then 2232 the MS automatically limits the operation to minimum or maximum 2233 supported speed respectively. If the pause operation attempts to 2234 pause output when it is already paused, then the operation is 2235 ignored. If the resume operation attempts to resume when the 2236 prompts are not paused, then the operation is ignored. If a 2237 seek, volume or speed operation is applied when output is paused, 2238 then the MS also resumes output automatically. 2240 3. If DTMF control subscription has been specified for the dialog, 2241 then each DTMF match of a control operation is reported in a 2242 notification event (Section 4.2.5.2). 2244 4. When the dialog exits, all control matches are reported in a 2245 element (Section 4.3.2.2). 2247 4.3.1.3. 2249 The element defines how DTMF input is collected. 2251 The element has the following attributes: 2253 cleardigitbuffer: indicates whether the digit buffer is to be 2254 cleared. A valid value is a boolean (see Section 4.6.1). A value 2255 of true indicates that the digit buffer is to be cleared. A value 2256 of false indicates that the digit buffer is not to be cleared. 2257 The attribute is optional. The default value is true. 2259 timeout: indicates the maximum time to wait for user input to begin. 2260 A valid value is a Time Designation (see Section 4.6.7). The 2261 attribute is optional. The default value is 5s. 2263 interdigittimeout: indicates the maximum time to wait for another 2264 DTMF when the collected input is incomplete with respect to the 2265 grammar. A valid value is a Time Designation (see Section 4.6.7). 2266 The attribute is optional. The default value is 2s. 2268 termtimeout: indicates the maximum time to wait for the termchar 2269 character when the collected input is complete with respect to the 2270 grammar. A valid value is a Time Designation (see Section 4.6.7). 2271 The attribute is optional. The default value is 0s (no delay). 2273 escapekey: specifies a DTMF key that indicates collected grammar 2274 matches are discarded and the DTMF collection is to be re- 2275 initiated. A valid value is a DTMF Character (see Section 4.6.2). 2276 The attribute is optional. There is no default value. 2278 termchar: specifies a DTMF character for terminating DTMF input 2279 collection using the internal grammar. It is ignored when a 2280 custom grammar is specified. A valid value is a DTMF character 2281 (see Section 4.6.2). To disable termination by a conventional 2282 DTMF character, set the parameter to an unconventional character 2283 like 'A'. The attribute is optional. The default value is '#'. 2285 maxdigits: The maximum number of digits to collect using an internal 2286 digits (0-9 only) grammar. It is ignored when a custom grammar is 2287 specified. A valid value is a positive integer (see 2288 Section 4.6.5). The attribute is optional. The default value is 2289 5. 2291 The following matching priority is defined for incoming DTMF: 2292 termchar attribute, escapekey attribute and then as part of a 2293 grammar. For example, if "1" is defined as the escapekey attribute 2294 and as part of a grammar, then its interpretation as a escapekey 2295 takes priority. 2297 The element has the following child elements: 2299 : indicates a custom grammar format (see 2300 Section 4.3.1.3.1). The element is optional. 2302 The custom grammar takes priority over the internal grammar. If a 2303 element is specified, the MS MUST use it for DTMF 2304 collection. 2306 The MS has the following execution model for DTMF collection after 2307 initialization: 2309 1. The DTMF collection buffer MUST NOT receive DTMF input matching 2310 operations (see Section 4.3.1.2). 2312 2. If an error occurs during execution, then the MS terminates 2313 collection and reports the error to the dialog container (see 2314 Section 4.3). The MS MAY report DTMF collected before the error 2315 in (see Section 4.3.2.3). 2317 3. The MS clears the digit buffer if the value of the 2318 cleardigitbuffer attribute is true. 2320 4. The MS activates an initial timer with the duration of the value 2321 of the timeout attribute. If the initial timer expires before 2322 any DTMF input is received, then collection execution terminates, 2323 the (see Section 4.3.2.3) has the termmode 2324 attribute set to noinput and the execution status is reported to 2325 the dialog container. 2327 5. When the first DTMF collect input is received, the initial timer 2328 is cancelled and DTMF collection begins. Each DTMF input is 2329 collected unless it matches the value of the escapekey attribute, 2330 or the termchar attribute when the internal grammar is used. 2331 Collected input is matched against the grammar to determine if it 2332 is valid and, if valid, whether collection is complete. Valid 2333 DTMF patterns are either a simple digit string where the maximum 2334 length is determined by the maxdigits attribute and which can be 2335 optionally terminated by the character in the termchar attribute; 2336 or a custom DTMF grammar specified with the element. 2338 6. After escapekey input, or a valid input which does not complete 2339 the grammar, the MS activates a timer for the value of the 2340 interdigittimeout attribute or the termtimeout attribute. The MS 2341 only uses the termtimeout value when the grammar does not allow 2342 any additional input; otherwise, the MS uses the 2343 interdigittimeout. 2345 7. If DTMF collect input matches the value of the escapekey 2346 attribute, then the MS re-initializes DTMF collection: i.e. the 2347 MS discards collected DTMFs already matched against the grammar, 2348 and the MS attempts to match incoming DTMF (including any pending 2349 in the digit buffer) as described in Step 5 above. 2351 8. If the collect input is not valid with respect to the grammar or 2352 an interdigittimeout timer expires, the MS terminates collection 2353 execution and reports execution status to the dialog container 2354 with a (see Section 4.3.2.3) where the termmode 2355 attribute is set to nomatch. 2357 9. If the collect input completes the grammar or if a termtimeout 2358 timer expires, then the MS terminates collection execution and 2359 reports execution status to the dialog container with 2360 (see Section 4.3.2.3) where the termmode attribute 2361 is set to match. 2363 4.3.1.3.1. 2365 The element allows a custom grammar, inline or external, to 2366 be specified. Custom grammars permit the full range of DTMF 2367 characters including '*' and '#' to be specified for DTMF pattern 2368 matching. 2370 The element has the following attributes: 2372 src: specifies the location of an external grammar document. A 2373 valid value is a URI (see Section 4.6.9). The MS MUST support 2374 both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY 2375 support other schemes. If the URI scheme is unsupported, the MS 2376 sends a with a 420 status code (Section 4.5). If the 2377 resource cannot be retrieved within the timeout interval, the MS 2378 sends a with a 409 status code. If the grammar format 2379 is not supported, the MS sends a with a 424 status 2380 code. The attribute is optional. There is no default value. 2382 type: identifies the preferred type of the grammar document 2383 identified by the src attribute. A valid value is a MIME media 2384 type (see Section 4.6.10). If the URI scheme used in the src 2385 attribute defines a mechanism for establishing the authoratitive 2386 MIME media type of the media resource, the value returned by that 2387 mechanism takes precedence over this attribute. The attribute is 2388 optional. There is no default value. 2390 fetchtimeout: the maximum interval to wait when fetching a grammar 2391 resource. A valid value is a Time Designation (see 2392 Section 4.6.7). The attribute is optional. The default value is 2393 30s. 2395 The element allows inline grammars to be specified. XML 2396 grammar formats MUST use a namespace other than the one used in this 2397 specification. Non-XML grammar formats MAY use a CDATA section. 2399 The MS MUST support the [SRGS] XML grammar format ("application/ 2400 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 2401 formats. If the grammar format is not supported by the MS, then the 2402 MS sends a with a 424 status code (Section 4.5). 2404 For example, the following fragment shows DTMF collection with an 2405 inline SRGS grammar: 2407 2409 2410 2412 2413 2414 0 2415 1 2416 2 2417 3 2418 4 2419 5 2420 6 2421 7 2422 8 2423 9 2424 2425 2427 2428 2429 2430 2431 2432 # 2433 * 9 2434 2435 2437 2438 2439 2441 The same grammar could also be referenced externally (and take 2442 advantage of HTTP caching): 2444 2445 2447 2449 4.3.1.4. 2451 The element specifies how media input is recorded. 2453 The element has the following attributes: 2455 timeout: indicates the time to wait for user input to begin. A 2456 valid value is a Time Designation (see Section 4.6.7). The 2457 attribute is optional. The default value is 5s. 2459 vadinitial: Control whether voice activity detection (VAD) is used 2460 to initiate the recording operation. A valid value is a boolean 2461 (see Section 4.6.1). A value of true indicates the MS MUST 2462 initiate recording if the VAD detects voice on the configured 2463 inbound audio streams. A value of false indicates that the MS 2464 MUST NOT initiate recording using VAD. The attribute is optional. 2465 The default value is false. 2467 vadfinal: Control whether voice activity detection (VAD) is used to 2468 terminate the recording operation. A valid value is a boolean 2469 (see Section 4.6.1). A value of true indicates the MS MUST 2470 terminate recording if the VAD detects a period of silence (whose 2471 duration is specified by the finalsilence attribute) on configured 2472 inbound audio streams. A value of false indicates that the MS 2473 MUST NOT terminate recording using VAD. The attribute is 2474 optional. The default value is false. 2476 dtmfterm: Indicates whether the recording operation is terminated by 2477 DTMF input. A valid value is a boolean (see Section 4.6.1). A 2478 value of true indicates that recording is terminated by DTMF 2479 input. A value of false indicates that recording is not 2480 terminated by DTMF input. The attribute is optional. The default 2481 value is true. 2483 maxtime: indicates The maximum duration of the recording. A valid 2484 value is a Time Designation (see Section 4.6.7). The attribute is 2485 optional. The default value is 15s. 2487 beep: indicates whether a 'beep' is to be played immediately prior 2488 to initiation of the recording operation. A valid value is a 2489 boolean (see Section 4.6.1). The attribute is optional. The 2490 default value is false. 2492 finalsilence: indicates the interval of silence that indicates the 2493 end of voice input. This interval is not part of the recording 2494 itself. This parameter is ignored if the vadfinal attribute has 2495 the value false. A valid value is a Time Designation (see 2496 Section 4.6.7). The attribute is optional. The default value is 2497 5s. 2499 append: indicates whether recorded data is appended or not to a 2500 recording location if a resource already exists. A valid value is 2501 a boolean (see Section 4.6.1). A value of true indicates that 2502 recorded data is appended to the existing resource at a recording 2503 location. A value of false indicates that recorded data is to 2504 overwrite the existing resource. The attribute is optional. The 2505 default value is false. 2507 When a recording location is specified using the HTTP or HTTPS 2508 protocol, the recording operation SHOULD be performed using the 2509 HTTP GET and PUT methods, unless the HTTP server provides a 2510 special interface for recording uploads and appends (e.g. using 2511 POST). When the append attribute has the value false, the 2512 recording data is uploaded to the specified location using HTTP 2513 PUT and replaces any data at that location on the HTTP origin 2514 server. When append has the value true, the existing data (if 2515 any) is first downloaded from the specified location using HTTP 2516 GET, then the recording data is appended to the existing recording 2517 (note that this might require codec conversion and modification to 2518 the existing data), then the combined recording is uploaded to the 2519 specified location using HTTP PUT. HTTP errors are handled as 2520 described in [RFC2616]. 2522 When the recording location is specified using protocols other 2523 than HTTP or HTTPS, the mapping of the append operation onto the 2524 upload protocol scheme is implementation-specific. 2526 If either the vadinitial or vadfinal attribute is set to true and the 2527 MS does not support VAD, the MS sends a with a 434 status 2528 code (Section 4.5). 2530 The element has the following child element (0 or more 2531 occurrences): 2533 : specifies the location and type of the media resource for 2534 uploading recorded data (see Section 4.3.1.5). The MS MUST 2535 support both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes for 2536 uploading recorded data and the MS MAY support other schemes. The 2537 MS uploads recorded data to this resource as soon as possible 2538 after recording is complete. The element is optional. 2540 If multiple elements are specified, then media input is to be 2541 recorded in parallel to multiple resource locations. 2543 If no child element is specified, the MS MUST record media 2544 input but the recording location and the recording format are 2545 implementation-specific (e.g. the MS records audio in the WAV format 2546 to a local disk accessible by HTTP). The recording location and 2547 format are reported in (Section 4.3.2.4) when the dialog 2548 terminates. The recording MUST be available from this location until 2549 the connection or conference associated with the dialog on the MS 2550 terminates. 2552 If the MS does not support the configuration required for recording 2553 from the input media streams to one or more elements and a 2554 more specific error code is not defined for its child elements, the 2555 MS sends a with a 423 status code (Section 4.5). 2557 Note that an MS MAY support uploading recorded data to recording 2558 locations at the same time the recording operation takes place. Such 2559 implementations need to be aware of the requirements of certain 2560 recording formats (e.g. WAV) for metadata at the beginning of the 2561 uploaded file, that the finalsilence interval is not part of the 2562 recording and how these requirements interact with the URI scheme. 2564 The MS has the following execution model for recording after 2565 initialization: 2567 1. If an error occurs during execution (e.g. authentication or 2568 communication error when trying to upload to a recording 2569 location), then the MS terminates record execution and reports 2570 the error to the dialog container (see Section 4.3). The MS MAY 2571 report data recorded before the error in (see 2572 Section 4.3.2.4). 2574 2. If DTMF input (not matching a operation) is received 2575 during prompt playback and the prompt bargein attribute is set to 2576 true, then the MS activates the record execution. Otherwise, the 2577 MS activates it after the completion of prompt playback. 2579 3. If a beep attribute with the value of true is specified, then the 2580 MS plays a beep tone. 2582 4. The MS activates a timer with the duration of the value of the 2583 timeout attribute. If the timer expires before the recording 2584 operation begins, then the MS terminates the recording execution 2585 and reports the status to dialog container with (see 2586 Section 4.3.2.4) where the termmode attribute is set to noinput. 2588 5. Initiation of the recording operation depends on the value of the 2589 vadinitial attribute. If vadinitial has the value false, then 2590 the recording operation is initiated immediately. Otherwise, the 2591 recording operation is initiated when voice activity is detected. 2593 6. When the recording operation is initiated, a timer is started for 2594 the value of the maxtime attribute (maximum duration of the 2595 recording). If the timer expires before the recording operation 2596 is complete, then the MS terminates recording execution and 2597 reports the execution status to the dialog container with 2598 (see Section 4.3.2.4) where the termmode attribute 2599 set to maxtime. 2601 7. During the record operation input media streams are recording to 2602 a location and format specified in one or more child 2603 elements. If no child element is specified, the MS 2604 records input to an implementation-specific location and format. 2606 8. If the dtmfterm attribute has the value true and DTMF input is 2607 detected during the record operation, then the MS terminates 2608 recording and its status is reported to the dialog container with 2609 a (see Section 4.3.2.4) where the termmode attribute 2610 is set to dtmf. 2612 9. If vadfinal attribute has the value true, then the MS terminates 2613 the recording operation when a period of silence, with the 2614 duration specified by the value of the finalsilence attribute, is 2615 detected. This period of silence is not part of the final 2616 recording. The status is reported to the dialog container with a 2617 (see Section 4.3.2.4) where the termmode attribute 2618 is set to finalsilence. 2620 For example, a request to record audio and video input to separate 2621 locations: 2623 2624 2625 2626 2627 2629 2631 2632 2633 2634 2635 When the element is executed, it immediately begins 2636 recording of the audio and video (since vadinitial is false) where 2637 the destination locations are specified in the child 2638 elements. Recording is completed when the duration reaches 30s or 2639 the connection is terminated. 2641 4.3.1.5. 2643 The element specifies a media resource to playback from (see 2644 Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback 2645 case, the resource is retrieved and in the recording case, recording 2646 data is uploaded to the resource location. 2648 A element has the following attributes: 2650 loc: specifies the location of the media resource. A valid value is 2651 a URI (see Section 4.6.9). The MS MUST support both HTTP 2652 ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY support 2653 other schemes. If the URI scheme is not supported by the MS, the 2654 MS sends a with a 420 status code (Section 4.5). If 2655 the resource is to be retrieved but the MS cannot retrieve it 2656 within the timeout interval, the MS sends a with a 409 2657 status code. If the format of the media resource is not 2658 supported, the MS sends a with a 429 status code. The 2659 attribute is mandatory. 2661 type: specifies the type of the media resource indicated in the loc 2662 attribute. A valid value is a MIME media type (see 2663 Section 4.6.10) which, depending on its definition, can include 2664 additional parameters (e.g. [RFC4281]). If the URI scheme used 2665 in the loc attribute defines a mechanism for establishing the 2666 authoratitive MIME media type of the media resource, the value 2667 returned by that mechanism takes precedence over this attribute. 2668 If additional media parameters are specified, the MS MUST use them 2669 to determine media processing. For example, [RFC4281] defines a 2670 'codec' parameter for media types like video/3gpp which would 2671 determine which media streams are played or recorded. The 2672 attribute is optional. There is no default value. 2674 fetchtimeout: the maximum interval to wait when fetching a media 2675 resource. A valid value is a Time Designation (see 2676 Section 4.6.7). The attribute is optional. The default value is 2677 30s. 2679 soundLevel: playback soundLevel (volume) for the media resource. A 2680 valid value is a percentage (see Section 4.6.4). The value 2681 indicates increase or decrease relative to the original recorded 2682 volume of the media. A value of 100% (the default) plays the 2683 media at its recorded volume, a value of 200% will play the media 2684 twice recorded volume, 50% at half its recorded volume, a value of 2685 0% will play the media silently, and so on. See 'soundLevel' in 2686 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 2687 attribute is optional. The default value is 100%. 2689 clipBegin: offset from start of media resource to begin playback. A 2690 valid value is a Time Designation (see Section 4.6.7). The offset 2691 is measured in normal media playback time from the beginning of 2692 the media resource. If the clipBegin offset is after the end of 2693 media (or the clipEnd offset), no media is played. See 2694 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further 2695 information. The attribute is optional. The default value is 0s. 2697 clipEnd: offset from start of media resource to end playback. A 2698 valid value is a Time Designation (see Section 4.6.7). The offset 2699 is measured in normal media playback time from the beginning of 2700 the media resource. If the clipEnd offset is after the end of 2701 media, then the media is played to the end. If clipBegin is after 2702 clipEnd, then no media is played. See 'clipEnd' in SMIL 2703 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 2704 is optional. There is no default value. 2706 The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are 2707 only relevant in the playback use case. The MS ignores these 2708 attributes when using the for recording. 2710 The element has no children. 2712 4.3.2. Exit Information 2714 When the dialog exits, information about the specified operations is 2715 reported in a notification event (Section 4.2.5.1). 2717 4.3.2.1. 2719 The element reports the information about prompt 2720 execution. It has the following attributes: 2722 duration: indicates the duration of prompt playback in milliseconds. 2723 A valid value is a non-negative integer (see Section 4.6.4). The 2724 attribute is optional. There is no default value. 2726 termmode: indicates how playback was terminated. Valid values are: 2727 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 2729 The element has no child elements. 2731 4.3.2.2. 2733 The element reports information about control 2734 execution. 2736 The element has no attributes and has 0 or more 2737 child elements each describing an individual runtime 2738 control match. 2740 4.3.2.2.1. 2742 The element has the following attributes: 2744 dtmf: DTMF input triggering the runtime control. A valid value is a 2745 DTMF string (see Section 4.6.3) with no space between characters. 2746 The attribute is mandatory. 2748 timestamp: indicates the time (on the MS) at which the control was 2749 triggered. A valid value is an dateTime expression 2750 (Section 4.6.12). The attribute is mandatory. 2752 The element has no child elements. 2754 4.3.2.3. 2756 The element reports the information about collect 2757 execution. 2759 The element has the following attributes: 2761 dtmf: DTMF input collected from the user. A valid value is a DTMF 2762 string (see Section 4.6.3) with no space between characters. The 2763 attribute is optional. There is no default value. 2765 termmode: indicates how collection was terminated. Valid values 2766 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2767 mandatory. 2769 The element has no child elements. 2771 4.3.2.4. 2773 The element reports information about record execution 2774 (Section 4.3.1.4). 2776 The element has the following attributes: 2778 termmode: indicates how recording was terminated. Valid values are: 2779 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2780 attribute is mandatory. 2782 duration: indicates the duration of the recording in milliseconds. 2783 A valid value is a non-negative integer (see Section 4.6.4). The 2784 attribute is optional. There is no default value. 2786 The element has the following child element (0 or more 2787 occurrences): 2789 : indicates information about a recorded media resource 2790 (see Section 4.3.2.4.1). The element is optional. 2792 When the record operation is successful, the MS MUST specify a 2793 element for each recording location. For example, if the 2794 element contained three child elements, then the 2795 would contain three child elements. 2797 4.3.2.4.1. 2799 The element reports information about a recorded media 2800 resource. 2802 The element has the following attributes: 2804 loc: indicates the location of the media resource. A valid value is 2805 a URI (see Section 4.6.9). The attribute is mandatory. 2807 type: indicates the format of the media resource. A valid value is 2808 a MIME media type (see Section 4.6.10). The attribute is 2809 mandatory. 2811 size: indicates the size of the media resource in bytes. A valid 2812 value is a non-negative integer (see Section 4.6.4). The 2813 attribute is optional. There is no default value. 2815 4.4. Audit Elements 2817 The audit elements defined in this section allow the MS to be audited 2818 for package capabilities as well as dialogs managed by the package. 2819 Auditing is particularly important for two use cases. First, it 2820 enables discovery of package capabilities supported on an MS before 2821 an AS starts a dialog on connection or conference. The AS can then 2822 use this information to create request elements using supported 2823 capabilities and, in the case of codecs, to negotiate an appropriate 2824 SDP for a user agent's connection. Second, auditing enables 2825 discovery of the existence and status of dialogs currently managed by 2826 the package on the MS. This could be used when one AS takes over 2827 management of the dialogs if the AS which initiated the dialogs fails 2828 or is no longer available (see Security Considerations described in 2829 Section 7 ). 2831 4.4.1. 2833 The request element is sent to the MS to request information 2834 about the capabilities of, and dialogs currently managed with, this 2835 control package. Capabilities include supported dialog languages, 2836 grammar formats, record and media types as well as codecs. Dialog 2837 information includes the status of managed dialogs as well as codecs. 2839 The element has the following attributes: 2841 capabilities: indicates whether package capabilities are to be 2842 audited. A valid value is a boolean (see Section 4.6.1). A value 2843 of true indicates that capability information is to be reported. 2844 A value of false indicates that capability information is not to 2845 be reported. The attribute is optional. The default value is 2846 true. 2848 dialogs: indicates whether dialogs currently managed by the package 2849 are to be audited. A valid value is a boolean (see 2850 Section 4.6.1). A value of true indicates that dialog information 2851 is to be reported. A value of false indicates that dialog 2852 information is not to be reported. The attribute is optional. 2853 The default value is true. 2855 dialogid: string identifying a specific dialog to audit. The MS 2856 sends a response with a 406 status code (Section 4.5) if the 2857 specified dialog identifier is invalid. The attribute is 2858 optional. There is no default value. 2860 If the dialogs attribute has the value true and dialogid attribute is 2861 specified, then only audit information about the specified dialog is 2862 reported. If the dialogs attribute has the value false, then no 2863 dialog audit information is reported even if a dialogid attribute is 2864 specified. 2866 The element has no child elements. 2868 When the MS receives an request, it MUST reply with a 2869 element (Section 4.4.2) which includes a mandatory 2870 attribute describing the status in terms of a numeric code. Response 2871 status codes are defined in Section 4.5. If the request is 2872 successful, the contains (depending on attribute 2873 values) a element (Section 4.4.2.2) reporting package 2874 capabilities and a element (Section 4.4.2.3) reporting 2875 managed dialog information. If the MS is not able to process the 2876 request and carry out the audit operation, the audit request has 2877 failed and the MS MUST indicate the class of failure using an 2878 appropriate 4xx response code. Unless an error response code is 2879 specified for a class of error within this section, implementations 2880 follow Section 4.5 in determining the appropriate status code for the 2881 response. 2883 For example, a request to audit capabilities and dialogs managed by 2884 the package: 2886 2887 2888 2890 In this example, only capabilities are to be audited: 2892 2893 2894 2896 With this example, only a specific dialog is to be audited: 2898 2899 2900 2902 4.4.2. 2904 The element describes a response to a 2905 request. 2907 The element has the following attributes: 2909 status: numeric code indicating the audit response status. The 2910 attribute is mandatory. Valid values are defined in Section 4.5. 2912 reason: string specifying a reason for the status. The attribute is 2913 optional. 2915 desclang: specifies the language used in the value of the the reason 2916 attribute. A valid value is a language identifier 2917 (Section 4.6.11). The attribute is optional. If not specified, 2918 the value of the desclang attribute on (Section 4.1) 2919 applies. 2921 The element has the following sequence of child 2922 elements: 2924 element (Section 4.4.2.2) describing capabilities of 2925 the package. The element is optional. 2927 element (Section 4.4.2.3) describing information about 2928 managed dialogs. The element is optional. 2930 For example, a successful response to a request requesting 2931 capabilities and dialogs information: 2933 2934 2935 2936 2937 application/voicexml+xml 2938 2939 2940 2941 audio/x-wav 2942 video/3gpp 2943 2944 2945 audio/x-wav 2946 video/3gpp 2947 2948 2949 2950 mdy 2951 ymd 2952 dmy 2953 dm 2954 2955 2956 600s 2957 1800s 2958 2959 2960 H263 2961 2962 2963 H264 2964 2965 2966 PCMU 2967 2968 2969 PCMA 2971 2972 2973 telephone-event 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 PCMA 2984 2985 2986 telephone-event 2987 2988 2989 2990 2991 2992 2994 4.4.2.1. 2996 The provides audit information about codecs. 2998 The element has no attributes. 3000 The element has the following sequence of child elements (0 3001 or more occurrences): 3003 : audit information for a codec (Section 4.4.2.1.1). The 3004 element is optional. 3006 For example, a fragment describing two codecs: 3008 3009 3010 PCMA 3011 3012 3013 telephone-event 3014 3015 3017 4.4.2.1.1. 3019 The element describes a codec on the MS. The element is 3020 modeled on the element in the XCON conference information 3021 data model ([I-D.ietf-xcon-common-data-model]) but allows addition 3022 information (e.g. rate, speed, etc) to be specified. 3024 The element has the following attributes: 3026 name: indicates the type name of the codec's media format as defined 3027 in IANA ([IANA]). A valid value is a "type-name" as defined in 3028 Section 4.2 of [RFC4288]. The attribute is manadatory. 3030 The element has the following sequence of child elements: 3032 : element whose content model describes the subtype of the 3033 codec's media format as defined in IANA ([IANA]). A valid value 3034 is a "subtype-name" as defined in Section 4.2 of [RFC4288]. The 3035 element is mandatory. 3037 : element (Section 4.2.6) describing additional information 3038 about the codec. This package is agnostic to the names and values 3039 of the codec parameters supported by an implementation. The 3040 element is optional. 3042 For example, a fragment with a element describing the H263 3043 video codec: 3045 3046 H263 3047 3049 4.4.2.2. 3051 The element provides audit information about package 3052 capabilities. 3054 The element has no attributes. 3056 The element has the following sequence of child 3057 elements: 3059 : element (Section 4.4.2.2.1) describing additional 3060 dialog languages supported by the MS. The element is mandatory. 3062 : element (Section 4.4.2.2.2) describing supported 3063 (Section 4.3.1.3.1) format types. The element is 3064 mandatory. 3066 : element (Section 4.4.2.2.3) describing 3067 (Section 4.3.1.5) format types supported for 3068 (Section 4.3.1.4). The element is mandatory. 3070 : element (Section 4.4.2.2.4) describing supported 3071 (Section 4.3.1.5) format types for playback within a 3072 (Section 4.3.1.1). The element is mandatory. 3074 : element (Section 4.4.2.2.5) describing supported types 3075 and formats for the element (Section 4.4.2.2.5). The 3076 element is mandatory. 3078 : element (Section 4.4.2.2.6) describing the 3079 supported maximum duration for a prepared dialog following a 3080 (Section 4.2.1) request. The element is 3081 mandatory. 3083 : element (Section 4.4.2.2.7) describing the 3084 supported maximum duration for a recording 3085 Section 4.3.1.4) request. The element is mandatory. 3087 : element (Section 4.4.2.1) describing codecs available to 3088 the package. The element is mandatory. 3090 For example, a fragment describing capabilities: 3092 3093 3094 application/voicexml+xml 3095 3096 3097 3098 audio/x-wav 3099 video/3gpp 3100 3101 3102 audio/x-wav 3103 video/3gpp 3104 3105 3106 30s 3107 60s 3108 3109 3110 H263 3111 3112 3113 H264 3114 3115 3116 PCMU 3117 3118 3119 PCMA 3120 3121 3122 telephone-event 3123 3124 3125 3127 4.4.2.2.1. 3129 The element provides information about additional 3130 dialog languages supported by the package. Dialog languages are 3131 identified by their associated MIME media types. The MS MUST NOT 3132 include the mandatory dialog language for this package (Section 4.3). 3134 The element has no attributes. 3136 The element has the following sequence of child 3137 elements (0 or more occurrences): 3139 : element whose content model describes a MIME media type 3140 (Section 4.6.10) associated with a supported dialog language. The 3141 element is optional. 3143 4.4.2.2.2. 3145 The element provides information about 3146 format types supported by the package. The MS MUST NOT include the 3147 mandatory SRGS format type, "application/srgs+xml" 3148 (Section 4.3.1.3.1). 3150 The element has no attributes. 3152 The element has the following sequence of child 3153 elements (0 or more occurrences): 3155 : element whose content model describes a mime type 3156 (Section 4.6.10). The element is optional. 3158 4.4.2.2.3. 3160 The element provides information about media resource 3161 format types of supported by the package (Section 4.3.1.4). 3163 The element has no attributes. 3165 The element has the following sequence of child 3166 elements (0 or more occurrences): 3168 : element whose content model describes a mime type 3169 (Section 4.6.10). The element is optional. 3171 4.4.2.2.4. 3173 The element provides information about media resource 3174 format types of supported by the package (Section 4.3.1.1). 3176 The element has no attributes. 3178 The element has the following sequence of child 3179 elements (0 or more occurrences): 3181 : element whose content model describes a mime type 3182 (Section 4.6.10). The element is optional. 3184 4.4.2.2.5. 3186 The element provides information about types and formats 3187 for the element (Section 4.3.1.1.1) supported by the 3188 package. 3190 The element has no attributes. 3192 The element has the following sequence of child elements 3193 (0 or more occurrences): 3195 : element describing the formats support for a given 3196 type (Section 4.4.2.2.5.1). The element is optional. 3198 For example, a fragment describing support for with a 3199 "date" type according to the formats specified in 3200 Section 4.3.1.1.1.1. 3202 3203 3204 mdy 3205 ymd 3206 dmy 3207 dm 3208 3209 3211 4.4.2.2.5.1. 3213 The element describes the formats supported for 3214 supported type. 3216 The element has the following attributes: 3218 type: indicates a supported value associated with the type attribute 3219 of element. The attribute is manadatory. 3221 desc: a string providing some textual description of the type and 3222 format. The attribute is optional. 3224 desclang: specifies the language used in the value of the the desc 3225 attribute. A valid value is a language identifier 3226 (Section 4.6.11). The attribute is optional. If not specified, 3227 the value of the desclang attribute on (Section 4.1) 3228 applies. 3230 The element has the following sequence of child 3231 elements (0 or more occurrences): 3233 : element with a desc attribute (optional description), 3234 desclang (optional language identifier for the description) and a 3235 content model describing a supported format in the 3236 format attribute. The element is optional. 3238 4.4.2.2.6. 3240 The element describes the maximum duration for 3241 a dialog to remain in the prepared state (Section 4.2) following a 3242 (Section 4.2.1) request. 3244 The element has no attributes. 3246 The element has a content model describing the 3247 maximum prepared dialog duration as a time designation 3248 (Section 4.6.7). 3250 4.4.2.2.7. 3252 The element describes the maximum recording 3253 duration for Section 4.3.1.4) request supported by the MS. 3255 The element has no attributes. 3257 The element has a content model describing the 3258 maximum duration of recording as a time designation (Section 4.6.7). 3260 4.4.2.3. 3262 The element provides audit information about dialogs. 3264 The element has no attributes. 3266 The element has the following sequence of child elements (0 3267 or more occurrences): 3269 : audit information for a dialog (Section 4.4.2.3.1). 3270 The element is optional. 3272 4.4.2.3.1. 3274 The element has the following attributes: 3276 dialogid: string identifying the dialog. The attribute is 3277 mandatory. 3279 state: string indicating the state of the dialog. Valid values are: 3280 preparing, prepared, starting, started. The attribute is 3281 mandatory. 3283 connectionid: string identifying the SIP dialog connection 3284 associated with the dialog (see Section 16.1 of 3285 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3286 optional. There is no default value. 3288 conferenceid: string identifying the conference associated with the 3289 dialog (see Section 16.1 of 3290 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3291 optional. There is no default value. 3293 The element has the following child element: 3295 element describing codecs used in the dialog. See 3296 Section 4.4.2.1. The element is optional. 3298 For example, a fragment describing a started dialog which is using 3299 PCMU and telephony-event audio codecs: 3301 3302 3303 3304 PCMU 3305 3306 3307 telephone-event 3308 3309 3310 3312 4.5. Response Status Codes 3314 This section describes the response codes in Table 1 for the status 3315 attribute of dialog management (Section 4.2.4) and audit 3316 (Section 4.4.2) responses. The MS MUST support the 3317 status response codes defined here. All other valid but undefined 3318 values are reserved for future use, where new status codes are 3319 assigned using the Standards Action process defined in [RFC5226]. 3320 The AS MUST treat any responses it does not recognize as being 3321 equivalent to the x00 response code for all classes. For example, if 3322 an AS receives an unrecognized response code of 499, it can safely 3323 assume that there was something wrong with its request and treat the 3324 response as if it had received a 400 (Syntax error) response code. 3326 4xx responses are definite failure responses from a particular MS. 3328 The reason attribute in the response SHOULD identify the failure in 3329 more detail, for example, "Mandatory attribute missing: src in media 3330 element" for a 400 (Syntax error) response code. 3332 The AS SHOULD NOT retry the same request without modification (for 3333 example, correcting a syntax error or changing the connectionid to 3334 use one available on the MS). However, the same request to a 3335 different MS might be successful; for example, if another MS supports 3336 a capability required in the request. 3338 4xx failure responses can be grouped into three classes: failure due 3339 to a syntax error in the request (400); failure due to an error 3340 executing the request on the MS (405-419); and failure due to the 3341 request requiring a capability not supported by the MS (420-439). 3343 In cases where more than one request code could be reported for a 3344 failure, the MS SHOULD use the most specific error code of the 3345 failure class for the detected error. For example, if the MS detects 3346 that the dialogid in the request is invalid, then it uses a 406 3347 status code. However, if the MS merely detects that an execution 3348 error occurred, then 419 is used. 3350 +------+---------------+-----------------------+--------------------+ 3351 | Code | Summary | Description | Informational: AS | 3352 | | | | Possible Recovery | 3353 | | | | Action | 3354 +------+---------------+-----------------------+--------------------+ 3355 | 200 | OK | request has succeeded | | 3356 | | | | | 3357 | 400 | Syntax error | request is | Change the request | 3358 | | | syntactically | so that it is | 3359 | | | invalid: it is not | syntactically | 3360 | | | valid with respect to | valid. | 3361 | | | the XML schema | | 3362 | | | specified in | | 3363 | | | Section 5 or it | | 3364 | | | violates a | | 3365 | | | co-occurrence | | 3366 | | | constraint for a | | 3367 | | | request element | | 3368 | | | defined in Section 4. | | 3369 | | | | | 3370 | 405 | dialogid | request uses a | Send a request for | 3371 | | already | dialogid identifier | a new dialog | 3372 | | exists | for a new dialog | without specifying | 3373 | | | which is already used | the dialogid and | 3374 | | | by another dialog on | let the MS | 3375 | | | the MS (see | generate a unique | 3376 | | | Section 4.2). | dialogid in the | 3377 | | | | response. | 3378 | | | | | 3379 | 406 | dialogid does | request uses a | Send an | 3380 | | not exist | dialogid identifier | request | 3381 | | | for an dialog which | (Section 4.4.1) | 3382 | | | does not exist on the | requesting the | 3383 | | | MS (see Section 4.2). | list of dialog | 3384 | | | | identifiers | 3385 | | | | already used by | 3386 | | | | the MS and then | 3387 | | | | use one of the | 3388 | | | | listed dialog | 3389 | | | | identifiers. | 3390 | | | | | 3391 | 407 | connectionid | request uses a | Use another method | 3392 | | does not | connectionid | to determine which | 3393 | | exist | identifier for a | connections are | 3394 | | | connection which does | available on the | 3395 | | | not exist on the MS. | MS. | 3396 | | | | | 3397 | 408 | conferenceid | request uses a | Use another method | 3398 | | does not | conferenceid | to determine which | 3399 | | exist | identifier for a | conferences are | 3400 | | | conference which does | available on the | 3401 | | | not exist on the MS. | MS. | 3402 | | | | | 3403 | 409 | Resource | request use a URI to | Check that the | 3404 | | cannot be | reference an external | resource URI is | 3405 | | retrieved | resource (e.g. | valid, can be | 3406 | | | dialog, media or | reached from the | 3407 | | | grammar) which cannot | MS, and that the | 3408 | | | be retrieved within | appropriate | 3409 | | | the timeout interval | authentication is | 3410 | | | | used. | 3411 | | | | | 3412 | 410 | Dialog | request to prepare or | | 3413 | | execution | start a dialog which | | 3414 | | canceled | has been terminated | | 3415 | | | by a | | 3416 | | | | | 3417 | | | request (see | | 3418 | | | Section 4.2) | | 3419 | | | | | 3420 | 411 | Incompatible | request specifies a | Change the media | 3421 | | stream | media stream | stream | 3422 | | configuration | configuration which | configuration to | 3423 | | | is in conflict with | match the | 3424 | | | itself, or the | capabilities of | 3425 | | | connection or | the connection or | 3426 | | | conference | conference | 3427 | | | capabilities (see | | 3428 | | | Section 4.2.2) | | 3429 | | | | | 3430 | 412 | Media stream | request specifies an | Check the media | 3431 | | not available | operation for which a | stream capability | 3432 | | | media stream is not | of the connection | 3433 | | | available. For | or conference and | 3434 | | | example, playing a | use an operation | 3435 | | | video media resource | which only uses | 3436 | | | on an connection or | these capabilities | 3437 | | | conference without | | 3438 | | | video streams. | | 3439 | | | | | 3440 | 413 | Control keys | the request contains | Use different keys | 3441 | | with same | a element | for the different | 3442 | | value | (Section 4.3.1.2) | control | 3443 | | | where some keys have | operations. | 3444 | | | the same value | | 3445 | | | | | 3446 | 419 | Other | requested operation | | 3447 | | execution | cannot be executed by | | 3448 | | error | the MS. | | 3449 | | | | | 3450 | 420 | Unsupported | request specifies a | Use a URI scheme | 3451 | | URI scheme | URI whose scheme is | which is | 3452 | | | not supported by the | supported. | 3453 | | | MS | | 3454 | | | | | 3455 | 421 | Unsupported | request references an | Send an | 3456 | | dialog | external dialog | request | 3457 | | language | language not | (Section 4.4.1) | 3458 | | | supported by the MS | requesting the MS | 3459 | | | | capabilities and | 3460 | | | | then use one of | 3461 | | | | the listed dialog | 3462 | | | | languages. | 3463 | | | | | 3464 | 422 | Unsupported | request references a | Send an | 3465 | | playback | media resource for | request | 3466 | | format | playback whose format | (Section 4.4.1) | 3467 | | | is not supported by | requesting the MS | 3468 | | | the MS | capabilities and | 3469 | | | | then use one of | 3470 | | | | the listed | 3471 | | | | playback media | 3472 | | | | formats. | 3473 | | | | | 3474 | 423 | Unsupported | request references a | Send an | 3475 | | record format | media resource for | request | 3476 | | | recording whose | (Section 4.4.1) | 3477 | | | format is not | requesting the MS | 3478 | | | supported by the MS | capabilities and | 3479 | | | | then use one of | 3480 | | | | the listed record | 3481 | | | | media formats. | 3482 | | | | | 3483 | 424 | Unsupported | request references a | Send an | 3484 | | grammar | grammar whose format | request | 3485 | | format | is not supported by | (Section 4.4.1) | 3486 | | | the MS | requesting the MS | 3487 | | | | capabilities and | 3488 | | | | then use one of | 3489 | | | | the listed grammar | 3490 | | | | types. | 3491 | | | | | 3492 | 425 | Unsupported | request contains a | Send an | 3493 | | variable | prompt | request | 3494 | | configuration | element | (Section 4.4.1) | 3495 | | | (Section 4.3.1.1.1) | requesting the MS | 3496 | | | not supported by the | capabilities and | 3497 | | | MS | then use one of | 3498 | | | | the listed | 3499 | | | | variable types. | 3500 | | | | | 3501 | 426 | Unsupported | request contains a | | 3502 | | DTMF | prompt element | | 3503 | | configuration | (Section 4.3.1.1.2) | | 3504 | | | not supported by the | | 3505 | | | MS | | 3506 | | | | | 3507 | 427 | Unsupported | request contains a | | 3508 | | parameter | element | | 3509 | | | (Section 4.2.6.1) not | | 3510 | | | supported by the MS | | 3511 | | | | | 3512 | 428 | Unsupported | request contains a | | 3513 | | media stream | element | | 3514 | | configuration | (Section 4.2.2.2) | | 3515 | | | whose configuration | | 3516 | | | is not supported by | | 3517 | | | the MS. | | 3518 | | | | | 3519 | 429 | Unsupported | request contains a | | 3520 | | playback | element | | 3521 | | configuration | (Section 4.3.1.1) | | 3522 | | | which the MS is | | 3523 | | | unable to play on the | | 3524 | | | available output | | 3525 | | | media streams | | 3526 | | | | | 3527 | 430 | Unsupported | request contains a | | 3528 | | record | element | | 3529 | | configuration | (Section 4.3.1.4) | | 3530 | | | which the MS is | | 3531 | | | unable to record with | | 3532 | | | on the available | | 3533 | | | input media streams | | 3534 | | | | | 3535 | 431 | Unsupported | the request contains | | 3536 | | foreign | attributes or | | 3537 | | namespace | elements from another | | 3538 | | attribute or | namespace which the | | 3539 | | element | MS does not support | | 3540 | | | | | 3541 | 432 | Unsupported | the request tries to | | 3542 | | multiple | start another dialog | | 3543 | | dialog | on the same | | 3544 | | capability | conference or | | 3545 | | | connection where a | | 3546 | | | dialog is already | | 3547 | | | running | | 3548 | | | | | 3549 | 433 | Unsupported | the request contains | | 3550 | | collect and | and | | 3551 | | record | elements and | | 3552 | | capability | the MS does support | | 3553 | | | these operations | | 3554 | | | simultaneously | | 3555 | | | | | 3556 | 434 | Unsupported | the request contains | | 3557 | | VAD | a element | | 3558 | | capability | where Voice Activity | | 3559 | | | Detection (VAD) is | | 3560 | | | required, but the MS | | 3561 | | | does not support VAD. | | 3562 | | | | | 3563 | 435 | Unsupported | the request contains | | 3564 | | parallel | a prompt | | 3565 | | playback | element whose | | 3566 | | | configuration is not | | 3567 | | | supported by the MS. | | 3568 | | | | | 3569 | 439 | Other | request requires | | 3570 | | unsupported | another capability | | 3571 | | capability | not supported by the | | 3572 | | | MS | | 3573 +------+---------------+-----------------------+--------------------+ 3575 Table 1: status codes 3577 4.6. Type Definitions 3579 This section defines types referenced in attribute and element 3580 definitions. 3582 4.6.1. Boolean 3584 The value space of boolean is the set {true, false, 1, 0} as defined 3585 in Section 3.2.2 of [XMLSchema:Part2]. In accordance with this 3586 definition, the concept of false can be lexically represented by the 3587 strings "0" and "false" and the concept of true by the strings "1" 3588 and "true"; implementations MUST support both styles of lexical 3589 representation. 3591 4.6.2. DTMFChar 3593 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 3594 7, 8, 9, #, *, A, B, C, D}. 3596 4.6.3. DTMFString 3598 A String composed of one or more DTMFChars. 3600 4.6.4. Non-Negative Integer 3602 The value space of non-negative integer is the infinite set 3603 {0,1,2,...} as defined in Section 3.3.20 of [XMLSchema:Part2]. 3605 Implementation Note: It is RECOMMENDED that implementations at least 3606 support a maximum value of a 32 bit integer (2,147,483,647). 3608 4.6.5. Positive Integer 3610 The value space of positive integer is the infinite set {1,2,...} as 3611 defined in Section 3.3.25 of [XMLSchema:Part2]. 3613 Implementation Note: It is RECOMMENDED that implementations at least 3614 support a maximum value of a 32 bit integer (2,147,483,647). 3616 4.6.6. String 3618 A string in the character encoding associated with the XML element as 3619 defined in Section 3.2.1 of [XMLSchema:Part2]. 3621 4.6.7. Time Designation 3623 A time designation consists of a non-negative real number followed by 3624 a time unit identifier. 3626 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 3628 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 3630 4.6.8. Percentage 3632 A percentage consists of a Positive Integer followed by "%". 3634 Examples include: "100%", "500%" and "10%". 3636 4.6.9. URI 3638 Uniform Resource Indicator as defined in [RFC3986]. 3640 4.6.10. MIME Media Type 3642 A string formated as an IANA MIME media type ([MIME.mediatypes]). 3643 The ABNF ([RFC5234]) production for the string is: 3645 type-name "/" subtype-name *(";" parameter) 3647 parameter = parameter-name "=" value 3649 where "type-name" and "subtype-name" are defined in Section 4.2 of 3650 [RFC4288], "parameter-name" is defined in Section 4.3 of [RFC4288] 3651 and "value" is defined in Section 5.1 of [RFC2045]. 3653 4.6.11. Language Identifier 3655 A language identifier labels information content as being of a 3656 particular human language variant. Following the XML specification 3657 for language identification [XML], a legal language identifier is 3658 identified by a RFC5646 code ([RFC5646]) and matched according to 3659 RFC4647 ([RFC4647]). 3661 4.6.12. DateTime 3663 A string formated according to the XML schema definition of a 3664 dateTime type ([XMLSchema:Part2]). 3666 5. Formal Syntax 3668 This section defines the XML schema for IVR Control Package. The 3669 schema is normative. 3671 The schema defines datatypes, attributes, dialog management and IVR 3672 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 3673 most elements the order of child elements is significant. The schema 3674 is extensible: elements allow attributes and child elements from 3675 other namespaces. Elements from outside this package's namespace can 3676 occur after elements defined in this package. 3678 The schema is dependent upon the schema (framework.xsd) defined in 3679 Section 16.1 of the Control Framework 3680 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 3681 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 3682 xml:base). 3684 3685 3691 3692 3693 IETF MediaCtrl IVR 1.0 (20110104) 3695 This is the schema of the IETF MediaCtrl IVR control 3696 package. 3698 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 3700 3701 3703 3711 3713 3714 3715 This import brings in the XML attributes for 3716 xml:base, xml:lang, etc 3718 See http://www.w3.org/2001/xml.xsd for latest version 3719 3720 3721 3723 3726 3727 3728 This import brings in the framework attributes for 3729 conferenceid and connectionid. 3730 3731 3732 3734 3742 3743 3744 3745 This type is extended by other (non-mixed) component types to 3746 allow attributes from other namespaces. 3747 3748 3749 3750 3751 3753 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3774 3775 3776 3778 3780 3781 3782 3784 3786 3794 3796 3797 3798 3799 3800 3802 3805 3807 3808 3809 3810 3811 3812 3814 3816 3817 3818 3820 3822 3824 3825 3826 3827 3828 3830 3832 3834 3836 3838 3839 3840 3841 3842 3843 3845 3847 3849 3850 3851 3852 3853 3855 3857 3858 3859 3860 3861 3863 3864 3866 3868 3869 3870 3872 3874 3876 3877 3878 3879 3880 3882 3883 3885 3886 3887 3889 3890 3891 3892 3894 3896 3898 3899 3900 3901 3902 3903 3905 3907 3909 3910 3911 3913 3914 3915 3917 3919 3921 3922 3923 3924 3925 3927 3929 3931 3933 3935 3937 3938 3940 3941 3942 3943 3944 3946 3947 3949 3950 3951 3952 3953 3955 3956 3958 3960 3962 3963 3964 3966 3968 3970 3971 3972 3973 3974 3976 3977 3979 3981 3982 3983 3985 3987 3989 3990 3991 3992 3993 3995 3997 3998 3999 4000 4002 4004 4006 4007 4008 4009 4010 4012 4013 4015 4016 4017 4018 4020 4022 4024 4025 4026 4027 4028 4030 4031 4033 4035 4036 4037 4038 4040 4042 4043 4044 4045 4046 4048 4050 4051 4053 4055 4056 4057 4059 4061 4063 4064 4065 4066 4067 4069 4070 4072 4074 4076 4077 4078 4080 4082 4083 4084 4085 4086 4087 4089 4091 4092 4093 4094 4096 4098 4100 4101 4102 4103 4104 4106 4107 4109 4110 4111 4113 4115 4116 4117 4118 4119 4120 4122 4124 4125 4126 4127 4128 4130 4131 4132 4133 4134 4135 4136 4137 4138 4140 4142 4144 4145 4146 4147 4148 4150 4152 4154 4155 4157 4158 4160 4161 4162 4164 4166 4167 4168 4169 4171 4173 4174 4175 4176 4178 4180 4182 4183 4184 4185 4186 4188 4190 4192 4194 4196 4197 4199 4201 4203 4204 4205 4207 4209 4211 4212 4213 4214 4215 4216 4217 4218 4219 4221 4222 4223 4225 4226 4227 4229 4231 4233 4234 4235 4236 4237 4239 4240 4242 4243 4245 4247 4249 4251 4252 4253 4255 4257 4259 4260 4261 4262 4263 4265 4266 4268 4270 4271 4272 4273 4274 4275 4277 4279 4281 4282 4283 4284 4285 4287 4288 4290 4292 4294 4296 4297 4298 4300 4302 4304 4305 4306 4307 4308 4309 4310 4311 4312 4315 4316 4318 4319 4320 4322 4324 4326 4327 4328 4329 4330 4331 4332 4333 4335 4336 4337 4338 4340 4342 4344 4345 4346 4347 4348 4350 4351 4353 4354 4355 4357 4359 4361 4364 4366 4368 4370 4372 4374 4376 4378 4380 4381 4382 4384 4386 4388 4389 4390 4391 4392 4394 4396 4397 4399 4401 4403 4405 4407 4409 4412 4413 4414 4416 4418 4419 4420 4421 4422 4424 4425 4426 4427 4429 4430 4432 4434 4436 4437 4438 4439 4440 4442 4444 4445 4447 4449 4451 4453 4455 4457 4459 4461 4462 4463 4465 4467 4475 4477 4478 4479 4480 4481 4483 4484 4486 4488 4490 4491 4492 4494 4496 4498 4499 4500 4501 4502 4504 4506 4508 4509 4511 4512 4513 4514 4515 4517 4519 4521 4522 4523 4524 4525 4527 4529 4531 4532 4534 4535 4536 4538 4540 4542 4543 4544 4546 4548 4550 4551 4552 4553 4554 4556 4558 4559 4560 4561 4563 4565 4567 4568 4569 4570 4571 4573 4575 4577 4579 4581 4583 4585 4587 4589 4590 4591 4592 4594 4596 4598 4599 4601 4602 4603 4604 4605 4607 4609 4610 4611 4612 4614 4616 4618 4619 4620 4621 4622 4624 4626 4627 4628 4629 4631 4633 4635 4636 4637 4638 4639 4641 4643 4644 4645 4647 4649 4651 4653 4654 4655 4656 4657 4659 4661 4662 4663 4664 4666 4668 4670 4671 4672 4673 4674 4676 4678 4679 4680 4681 4683 4685 4686 4687 4688 4689 4691 4694 4695 4696 4697 4698 4699 4700 4702 4704 4705 4706 4707 4708 4710 4711 4712 4713 4714 4716 4718 4720 4723 4725 4728 4730 4731 4732 4733 4734 4736 4738 4739 4741 4742 4744 4746 4748 4749 4750 4751 4752 4754 4756 4757 4759 4761 4762 4763 4764 4766 4768 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 Time designation following Time in CSS2 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 DTMF character [0-9#*A-D] 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 DTMF sequence [0-9#*A-D] 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 whole integer followed by '%' 4856 4857 4858 4859 4860 4861 4863 4864 4865 4866 4867 4868 4869 4871 4872 4873 4874 4875 4876 4877 4878 4880 4881 4882 4883 4884 4885 4886 4887 4888 4890 4891 4892 4893 4894 4895 4896 4898 4899 4900 4901 4902 4903 4905 4906 6. Examples 4908 This section provides examples of the IVR Control package. 4910 6.1. AS-MS Dialog Interaction Examples 4912 The following example assume a control channel has been established 4913 and synced as described in the Media Control Channel Framework 4914 ([I-D.ietf-mediactrl-sip-control-framework]). 4916 The XML messages are in angled brackets (with the root 4917 omitted); the REPORT status is in round brackets. Other aspects of 4918 the protocol are omitted for readability. 4920 6.1.1. Starting an IVR dialog 4922 An IVR dialog is started successfully, and dialogexit notification 4923 is sent from the MS to the AS when the dialog exits normally. 4925 Application Server (AS) Media Server (MS) 4926 | | 4927 | (1) CONTROL: | 4928 | ----------------------------------------> | 4929 | | 4930 | (2) 202 | 4931 | <--------------------------------------- | 4932 | | 4933 | | 4934 | (3) REPORT: | 4935 | (terminate) | 4936 | <---------------------------------------- | 4937 | | 4938 | (4) 200 | 4939 | ----------------------------------------> | 4940 | | 4941 | (5) CONTROL: | 4942 | | 4943 | <---------------------------------------- | 4944 | | 4945 | (6) 200 | 4946 | ----------------------------------------> | 4947 | | 4949 6.1.2. IVR dialog fails to start 4951 An IVR dialog fails to start due to an unknown dialog language. The 4952 is reported in a framework 200 message. 4954 Application Server (AS) Media Server (MS) 4955 | | 4956 | (1) CONTROL: | 4957 | ----------------------------------------> | 4958 | | 4959 | (2) 200: | 4960 | <---------------------------------------- | 4961 | | 4963 6.1.3. Preparing and starting an IVR dialog 4965 An IVR dialog is prepared and started successfully, and then the 4966 dialog exits normally. 4968 Application Server (AS) Media Server (MS) 4969 | | 4970 | (1) CONTROL: | 4971 | ----------------------------------------> | 4972 | | 4973 | (2) 202 | 4974 | <--------------------------------------- | 4975 | | 4976 | (3) REPORT: | 4977 | (terminate) | 4978 | <---------------------------------------- | 4979 | | 4980 | (4) 200 | 4981 | ----------------------------------------> | 4982 | | 4983 | (5) CONTROL: | 4984 | ----------------------------------------> | 4985 | | 4986 | (6) 202 | 4987 | <--------------------------------------- | 4988 | | 4989 | (7) REPORT: | 4990 | (terminate) | 4991 | <---------------------------------------- | 4992 | | 4993 | (8) 200 | 4994 | ----------------------------------------> | 4995 | | 4996 | (9) CONTROL: | 4997 | <---------------------------------------- | 4998 | | 4999 | (10) 200 | 5000 | ----------------------------------------> | 5001 | | 5003 6.1.4. Terminating a dialog 5005 An IVR dialog is started successfully, and then terminated by the AS. 5006 The dialogexit event is sent to the AS when the dialog exits. 5008 Application Server (AS) Media Server (MS) 5009 | | 5010 | (1) CONTROL: | 5011 | ----------------------------------------> | 5012 | | 5013 | (2) 202 | 5014 | <--------------------------------------- | 5015 | | 5016 | (3) REPORT: | 5017 | (terminate) | 5018 | <---------------------------------------- | 5019 | | 5020 | (4) 200 | 5021 | ----------------------------------------> | 5022 | | 5023 | (5) CONTROL: | 5024 | ----------------------------------------> | 5025 | | 5026 | (6) 200: | 5027 | <---------------------------------------- | 5028 | | 5029 | (7) CONTROL: | 5030 | <---------------------------------------- | 5031 | | 5032 | (8) 200 | 5033 | ----------------------------------------> | 5034 | | 5036 Note that in (6) the payload to the 5037 request is carried on a framework 200 response since it could 5038 complete the requested operation before the transaction timeout. 5040 6.2. IVR Dialog Examples 5042 The following examples show how is used with 5043 , and elements to play prompts, 5044 set runtime controls, collect DTMF input and record user input. 5046 The examples do not specify all messages between the AS and MS. 5048 6.2.1. Playing announcements 5050 This example prepares an announcement composed of two prompts where 5051 the dialog repeatCount set to 2. 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5064 If the dialog is prepared successfully, a is returned with 5065 status 200 and a dialog identifier assigned by the MS: 5067 5068 5069 5071 The prepared dialog is then started on a conference playing the 5072 prompts twice: 5074 5075 5076 5078 In the case of a successful dialog, the output is provided in 5079 ; for example 5081 5082 5083 5084 5085 5086 5087 5089 6.2.2. Prompt and collect 5091 In this example, a prompt is played and then the MS waits for 30s for 5092 a two digit sequence: 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5105 If no user input is collected within 30s, then following notification 5106 event would be returned: 5108 5109 5110 5111 5112 5113 5114 5115 5117 The collect operation can be specified without a prompt. Here the MS 5118 just waits for DTMF input from the user (the maxdigits attribute of 5119 defaults to 5): 5121 5122 5123 5124 5125 5126 5127 5129 If the dialog is successful, then dialogexit contains the 5130 dtmf collected in its result parameter: 5132 5133 5134 5135 5136 5137 5138 5140 And finally in this example, one of the input parameters is invalid: 5142 5143 5144 5145 5146 5147 5148 5151 5152 5153 5155 The error is reported in the response: 5157 5158 5160 5162 6.2.3. Prompt and record 5164 In this example, the user is prompted, then their input is recorded 5165 for a maximum of 30 seconds. 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5178 If successful and the recording is terminated by DTMF, the following 5179 is returned in a dialogexit : 5181 5182 5183 5184 5185 5187 5188 5189 5190 5192 6.2.4. Runtime controls 5194 In this example, a prompt is played with collect and runtime controls 5195 are activated. 5197 5198 5199 5200 5201 5202 5203 5205 5206 5207 5208 5210 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 5211 execute runtime controls on the prompt queue. The keys do not cause 5212 bargein to occur. If the user presses any other key, then the prompt 5213 is interrupted and DTMF collect begins. Note that runtime controls 5214 are not active during the collect operation. 5216 When the dialog is completed successfully, then both control and 5217 collect information is reported. 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5233 6.2.5. Subscriptions and notifications 5235 In this example, a looped dialog is started with subscription for 5236 notifications each time the user input matches the collect grammar: 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5249 Each time the user input the DTMF matching the grammar, the following 5250 notification event would be sent: 5252 5253 5254 5256 5257 5259 If no user input was provided, or the input did not match the 5260 grammar, the dialog would continue to loop until terminated (or an 5261 error occurred). 5263 6.2.6. Dialog repetition until DTMF collection complete 5265 This example is a prompt and collect dialog to collect the PIN from 5266 the user. The repeatUntilComplete attribute in the is set 5267 to true in this case so that when the grammar collection is complete, 5268 the MS automatically terminates the dialog repeat cycle and reports 5269 the results in a event. 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5282 If the user barges in on the prompt and receives DTMF input 5283 matching the grammar, the dialog cycle is considered complete and the 5284 MS returns the following: 5286 5287 5288 5289 5290 5291 5292 5293 5295 If no user input was provided, or the input did not match the 5296 grammar, the dialog would loop for a maximum of 3 times. 5298 6.3. Other Dialog Languages 5300 The following example requests that a VoiceXML dialog is started: 5302 5303 5308 5309 nfs://nas01/media1.3gp 5310 nfs://nas01/media2.3gp 5311 5312 5313 5314 If the MS does not support this dialog language, then the response 5315 would have the status code 421 (Section 4.5). However, if it does 5316 support the VoiceXML dialog language, it would respond with a 200 5317 status, activate the VoiceXML dialog and make the available 5318 to the VoiceXML script as described in Section 9. 5320 When the VoiceXML dialog exits, exit namelist parameters are 5321 specified using in the dialogexit event: 5323 5324 5325 5326 5327 peter 5328 1234 5329 5330 5331 5332 5334 6.4. Foreign Namespace Attributes and Elements 5336 An MS can support attributes and elements from foreign namespaces 5337 within the element. For example, the MS could support a 5338 element (in a foreign namespace) for speech recognition by 5339 analogy to how support DTMF collection. 5341 In the following example, a prompt and collect request is extended 5342 with a element: 5344 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5359 In the root element, the xmlns:ex attribute declares that 5360 "ex" is associated with the foreign namespace URI 5361 "http://www.example.com/mediactrl/extensions/1". The , 5362 its attributes and child elements are associated with this namespace. 5363 This could be defined so that it activates an SRGS grammar 5364 and listens for user input matching the grammar in a similar manner 5365 to DTMF collection. 5367 If an MS receives this request but does not support the 5368 element, then it would send a 431 response: 5370 5371 5373 5375 If the MS does support this foreign element, it would send a 200 5376 response and start the dialog with speech recognition. When the 5377 dialog exits, it provides information about the execution 5378 within , again using elements in a foreign namespace such 5379 as below: 5381 5383 5384 5385 5386 5387 5388 5390 Note that in reply the AS sends a Control Framework 200 response even 5391 though the notification event contains an element in a foreign 5392 namespace which it might not understand. 5394 7. Security Considerations 5396 As this control package processes XML markup, implementations MUST 5397 address the security considerations of [RFC3023]. 5399 Implementations of this control package MUST address security, 5400 confidentiality and integrity of messages transported over the 5401 control channel as described in Section 11 of the Media Control 5402 channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), 5403 including Transport Level Protection, Control Channel Policy 5404 Management and Session Establishment. In addition, implementations 5405 MUST address security, confidentiality and integrity of User Agent 5406 sessions with the MS, both in terms of SIP signaling and associated 5407 RTP media flow; see [I-D.ietf-mediactrl-sip-control-framework] for 5408 further details on this topic. Finally, implementations MUST address 5409 security, confidentiality and integrity of sessions where, following 5410 a URI scheme, an MS uploads recordings or retrieves documents and 5411 resources (e.g. fetching a grammar document from a web server using 5412 HTTPS). 5414 Adequate transport protection and authentication are critical, 5415 especially when the implementation is deployed in open networks. If 5416 the implementation fails to correctly address these issues, it risks 5417 exposure to malicious attacks, including (but not limited to): 5419 Denial of Service: An attacker could insert a request message into 5420 the transport stream causing specific dialogs on the MS to be 5421 terminated immediately. For example, , where the value of "XXXX" could 5423 be guessed or discovered by auditing active dialogs on the MS 5424 using an request. Likewise, an attacker could impersonate 5425 the MS and insert error responses into the transport stream so 5426 denying the AS access to package capabilities. 5428 Resource Exhaustion: An attacker could insert into the control 5429 channel new request messages (or modify existing ones) with, for 5430 instance, elements with a very long fetchtimeout 5431 attribute and a bogus source URL. At some point this will exhaust 5432 the number of connections that the MS is able to make. 5434 Phishing: An attacker with access to the control channel could 5435 modify the "loc" attribute of the element in a dialog to 5436 point to some other audio file that had different information from 5437 the original. This modified file could include a different phone 5438 number for people to call if they want more information or need to 5439 provide additional information (such as governmental, corporate or 5440 financial information). 5442 Data Theft: An attacker could modify a element in the 5443 control channel so as to add a new recording location: 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5456 The recorded data would be uploaded to two locations indicated by 5457 the "{Good URI}" and the "{Attacker's URI}". This allows the 5458 attacker to steal the recorded audio (which could include 5459 sensitive or confidential information) without the originator of 5460 the request necessarily being aware of the theft. 5462 The Media Control Channel Framework permits additional security 5463 policy management, including resource access and control channel 5464 usage, to be specified at the control package level beyond that 5465 specified for the Media Control Channel Framework (see Section 11.3 5466 of [I-D.ietf-mediactrl-sip-control-framework]). 5468 Since creation of IVR dialogs is associated with media processing 5469 resources (e.g. DTMF detectors, media playback and recording, etc) 5470 on the MS, the security policy for this control package needs to 5471 address how such dialogs are securely managed across more than one 5472 control channels. Such a security policy is only useful for secure, 5473 confidential and integrity protected channels. The identity of 5474 control channels is determined by the channel identifier: i.e. the 5475 value of the cfw-id attribute in the SDP and Dialog-ID header in the 5476 channel protocol (see [I-D.ietf-mediactrl-sip-control-framework]). 5477 Channels are the same if they have the same identifier; otherwise, 5478 they are different. This control package imposes the following 5479 additional security policies: 5481 Responses: The MS MUST only send a response to a dialog management 5482 or audit request using the same control channel as the one used to 5483 send the request. 5485 Notifications: The MS MUST only send notification events for a 5486 dialog using the same control channel as it received the request 5487 creating the dialog. 5489 Auditing: The MS MUST only provide audit information about dialogs 5490 which have been created on the same control channel as the one 5491 upon the request is sent. 5493 Rejection: The MS SHOULD reject requests to audit or manipulate an 5494 existing dialog on the MS if the channel is not the same as the 5495 one used when the dialog was created. The MS rejects a request by 5496 sending a Control Framework 403 response (see Section 7.4 and 5497 Section 11.3 of [I-D.ietf-mediactrl-sip-control-framework]). For 5498 example, if a channel with identifier 'cfw1234' has been used to 5499 send a request to create a particular dialog and the MS receives 5500 on channel 'cfw98969' a request to audit or terminate the dialog, 5501 then the MS sends a 403 framework response. 5503 There can be valid reasons why an implementation does not reject an 5504 audit or dialog manipulation request on a different channel from the 5505 one which created the dialog. For example, a system administrator 5506 might require a separate channel to audit dialog resources created by 5507 system users and to terminate dialogs consuming excessive system 5508 resources. Alternatively, a system monitor or resource broker might 5509 require a separate channel to audit dialogs managed by this package 5510 on a MS. However, the full implications need to be understood by the 5511 implementation and carefully weighted before accepting these reasons 5512 as valid. If the reasons are not valid in their particular 5513 circumstances, the MS rejects such requests. 5515 There can also be valid reasons for 'channel handover' including high 5516 availability support or where one AS needs to take over management of 5517 dialogs after the AS which created them has failed. This could be 5518 achieved by the control channels using the same channel identifier, 5519 one after another. For example, assume a channel is created with the 5520 identifier 'cfw1234' and the channel is used to create dialogs on the 5521 MS. This channel (and associated SIP dialog) then terminates due to 5522 a failure on the AS. As permitted by the Control Framework, the 5523 channel identifier 'cfw1234' could then be reused so that another 5524 channel is created with the same identifier 'cfw1234', allowing it to 5525 'take over' management of the dialogs on the MS. Again, the 5526 implementation needs to understand the full implications and 5527 carefully weight them before accepting these reasons as valid. If 5528 the reasons are not valid for their particular circumstances, the MS 5529 uses the appropriate SIP mechanisms to prevent session establishment 5530 when the same channel identifier is used in setting up another 5531 control channel (see Section 4 of 5532 [I-D.ietf-mediactrl-sip-control-framework]). 5534 8. IANA Considerations 5536 This specification instructs IANA to register a new Media Control 5537 Channel Framework Package, a new XML namespace, a new XML schema and 5538 a new MIME type. 5540 This section further instructs IANA to create a new registry for IVR 5541 prompt variable types. 5543 8.1. Control Package Registration 5545 This section registers a new Media Control Channel Framework package, 5546 per the instructions in Section 12.1 of 5547 [I-D.ietf-mediactrl-sip-control-framework]. 5549 Package Name: msc-ivr/1.0 5550 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 5551 with the RFC number for this specification.] 5552 Published Specification(s): RFCXXXX 5553 Person & email address to contact for further information: 5554 IETF, MEDIACTRL working group, (mediactrl@ietf.org), 5555 Scott McGlashan (smcg.stds01@mcglashan.org). 5557 8.2. URN Sub-Namespace Registration 5559 This section registers a new XML namespace, 5560 "urn:ietf:params:xml:ns:msc-ivr", per the guidelines in RFC 3688 5561 [RFC3688]. 5563 URI: urn:ietf:params:xml:ns:msc-ivr 5564 Registrant Contact: IETF, MEDIACTRL working group, 5565 (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). 5566 XML: 5567 BEGIN 5568 5569 5571 5572 5573 Media Control Channel Framework IVR 5574 Package attributes 5575 5576 5577

Namespace for Media Control Channel 5578 Framework IVR Package attributes

5579

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

5580 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 5581 with the RFC number for this specification.] 5582

See RFCXXXX

5583 5584 5585 END 5587 8.3. XML Schema Registration 5589 This section registers an XML schema as per the guidelines in RFC 5590 3688 [RFC3688]. 5592 URI: urn:ietf:params:xml:ns:msc-ivr 5593 Registrant Contact: IETF, MEDIACTRL working group, 5594 (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). 5595 Schema: The XML for this schema can be found in 5596 Section 5 of this document. 5598 8.4. MIME Media Type Registration for 'application/msc-ivr+xml' 5600 This section registers the "application/msc-ivr+xml" MIME type. 5602 To: ietf-types@iana.org 5603 Subject: Registration of MIME media type 5604 application/msc-ivr+xml 5605 MIME media type name: application 5606 MIME subtype name: msc-ivr+xml 5607 Required parameters: (none) 5608 Optional parameters: charset 5609 Indicates the character encoding of enclosed XML. Default is 5610 UTF-8. 5611 Encoding considerations: Uses XML, which can employ 8-bit 5612 characters, depending on the character encoding used. See RFC 5613 3023 [RFC3023], section 3.2. 5614 Security considerations: No known security considerations outside 5615 of those provided by the Media Control Channel Framework IVR 5616 Package. 5617 Interoperability considerations: This content type provides 5618 constructs for the Media Control Channel Framework IVR package. 5619 Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please 5620 replace XXXX with the RFC number for this specification.] 5621 Applications which use this media type: Implementations of 5622 the Media Control Channel Framework IVR package. 5623 Additional Information: Magic Number(s): (none) 5624 File extension(s): (none) 5625 Macintosh File Type Code(s): (none) 5626 Person & email address to contact for further information: Scott 5627 McGlashan 5628 Intended usage: LIMITED USE 5629 Author/Change controller: The IETF 5630 Other information: None. 5632 8.5. IVR Prompt Variable Type Registration Information 5634 This specification establishes an IVR Prompt Variable Type registry 5635 for Control Packages and initiates its population as follows. New 5636 entries in this registry must be published in an RFC (either as an 5637 IETF submission or RFC Editor submission), using the IANA policy 5638 [RFC5226] "RFC Required". 5640 [NOTE TO IANA/RFC-EDITOR: Please 5641 replace XXXX with the RFC number for this specification.] 5642 Variable Type Reference Control Package 5643 ------------- --------- --------------- 5644 date [RFCXXXX] msc-ivr/1.0 5645 time [RFCXXXX] msc-ivr/1.0 5646 digits [RFCXXXX] msc-ivr/1.0 5648 The following information MUST be provided in an RFC publication in 5649 order to register a new Prompt Variable type: 5651 Variable Type: The value for the type attribute 5652 (Section 4.3.1.1.1). The RFC MUST specify permitted values (if 5653 any) for the format attribute of and how the value 5654 attribute is rendered for different values of the format 5655 attribute. The RFC MUST NOT weaken but MAY strengthen the valid 5656 values of attributes defined in Section 4.3.1.1.1 of 5657 this specification. 5659 Reference: The RFC number in which the variable type is registered. 5661 Control Package: The Control Package associated with the IVR 5662 variable type. 5664 Person and address to contact for further information: 5666 9. Using VoiceXML as a dialog language 5668 The IVR control package allows, but does not require, the MS to 5669 support other dialog languages by referencing an external dialog 5670 document. This section provides MS implementations which support the 5671 VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with 5672 additional details about using these dialogs in this package. This 5673 section is normative for an MS which supports the VoiceXML dialog 5674 language. 5676 This section covers preparing (Section 9.1), starting (Section 9.2), 5677 terminating (Section 9.3) and exiting (Section 9.4) VoiceXML dialogs 5678 as well as handling VoiceXML call transfer (Section 9.5). 5680 9.1. Preparing a VoiceXML dialog 5682 A VoiceXML dialog is prepared by sending the MS a request containing 5683 a element (Section 4.2.1). The type attribute is set 5684 to "application/voicexml+xml" and the src attribute to the URI of the 5685 VoiceXML document which is to be prepared by the MS. For example: 5687 5688 5691 5693 The VoiceXML dialog environment uses the request as 5694 an opportunity to fetch and validate the initial document indicated 5695 by the src attribute along with any resources referenced in the 5696 VoiceXML document marked as prefetchable. The maxage and maxstale 5697 attributes, if specified, control how the initial VoiceXML document 5698 is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout 5699 attribute is not defined in VoiceXML for an initial document but the 5700 MS MUST support this attribute in its VoiceXML environment. 5702 If a child element of is specified, then the 5703 MS MUST map the parameter information into a VoiceXML session 5704 variable object as described in Section 9.2.3. 5706 The success or failure of the VoiceXML document preparation is 5707 reported in the MS response. For example, if the VoiceXML document 5708 cannot be retrieved, then a 409 error response is returned. If the 5709 document is syntactically invalid according to VoiceXML, then a 400 5710 response is returned. If successful, the response includes a 5711 dialogid attribute whose value the AS can use in 5712 element to start the prepared dialog. 5714 9.2. Starting a VoiceXML dialog 5716 A VoiceXML dialog is started by sending the MS a request containing a 5717 element (Section 4.2.2). If a VoiceXML dialog has 5718 already been prepared using , then the MS starts the 5719 dialog indicated by the prepareddialogid attribute. Otherwise, a new 5720 VoiceXML dialog can be started by setting the type attribute to 5721 "application/voicexml+xml" and the src attribute to the URI of the 5722 VoiceXML document. For example: 5724 5725 5729 5731 The maxage and maxstale attributes, if specified, control how the 5732 initial VoiceXML document is fetched using HTTP (see [RFC2616]). 5733 Note that the fetchtimeout attribute is not defined in VoiceXML for 5734 an initial document but the MS MUST support this attribute in its 5735 VoiceXML environment. Note also that support for 5736 subscriptions (Section 4.2.2.1.1) and their associated dialog 5737 notification events is not defined in VoiceXML. If such a 5738 subscription is specified in a request, then the MS 5739 sends a 439 error response (see Section 4.5). 5741 The success or failure of starting a VoiceXML dialog is reported in 5742 the MS response as described in Section 4.2.2. 5744 When the MS starts a VoiceXML dialog, the MS MUST map session 5745 information into a VoiceXML session variable object. There are 3 5746 types of session information: protocol information (Section 9.2.1), 5747 media stream information (Section 9.2.2) and parameter information 5748 (Section 9.2.3). 5750 9.2.1. Session protocol information 5752 If the connectionid attribute is specified, the MS assigns protocol 5753 information from the SIP dialog associated with the connection to the 5754 following session variables in VoiceXML: 5756 session.connection.local.uri Evaluates to the SIP URI specified in 5757 the To: header of the initial INVITE 5759 session.connection.remote.uri Evaluates to the SIP URI specified in 5760 the From: header of the initial INVITE 5762 session.connection.originator Evaluates to the value of 5763 session.connection.remote (MS receives inbound connections but 5764 does not create outbound connections) 5766 session.connection.protocol.name Evaluates to "sip". Note that this 5767 is intended to reflect the use of SIP in general, and does not 5768 distinguish between whether the connection accesses the MS via SIP 5769 or SIPS procedures. 5771 session.connection.protocol.version Evaluates to "2.0". 5773 session.connection.redirect This array is populated by information 5774 contained in the History-Info ([RFC4244]) header in the initial 5775 INVITE or is otherwise undefined. Each entry (hi-entry) in the 5776 History-Info header is mapped, in the order it appeared in the 5777 History-Info header, into an element of the 5778 session.connection.redirect array. Properties of each element of 5779 the array are determined as follows: 5781 uri Set to the hi-targeted-to-uri value of the History-Info entry 5783 pi Set to 'true' if hi-targeted-to-uri contains a 5784 'Privacy=history' parameter, or if the INVITE Privacy header 5785 includes 'history'; 'false' otherwise 5787 si Set to the value of the 'si' parameter if it exists, undefined 5788 otherwise 5790 reason Set verbatim to the value of the 'Reason' parameter of hi- 5791 targeted-to-uri 5793 session.connection.aai Evaluates to the value of a SIP header with 5794 the name "aai" if present; otherwise undefined. 5796 session.connection.protocol.sip.requesturi This is an associative 5797 array where the array keys and values are formed from the URI 5798 parameters on the SIP Request-URI of the initial INVITE. The 5799 array key is the URI parameter name. The corresponding array 5800 value is obtained by evaluating the URI parameter value as a 5801 string. In addition, the array's toString() function returns the 5802 full SIP Request-URI. 5804 session.connection.protocol.sip.headers This is an associative array 5805 where each key in the array is the non-compact name of a SIP 5806 header in the initial INVITE converted to lower-case (note the 5807 case conversion does not apply to the header value). If multiple 5808 header fields of the same field name are present, the values are 5809 combined into a single comma-separated value. Implementations 5810 MUST at a minimum include the Call-ID header and MAY include other 5811 headers. For example, 5812 session.connection.protocol.sip.headers["call-id"] evaluates to 5813 the Call-ID of the SIP dialog. 5815 If a conferenceid attribute is specified, then the MS populates the 5816 following session variables in VoiceXML: 5818 session.conference.name Evaluates to the value of the conferenceid 5819 attribute 5821 9.2.2. Session media stream information 5823 The media streams of the connection or conference to use for the 5824 dialog are described in Section 4.2.2, including use of 5825 elements (Section 4.2.2.2) if specified. The MS maps media stream 5826 information into the VoiceXML session variable 5827 session.connection.protocol.sip.media for a connection, and 5828 session.conference.media for a conference. In both variables, the 5829 value of the variable is an array where each array element is an 5830 object with the following properties: 5832 type This required property indicates the type of the media 5833 associated with the stream (see Section 4.2.2.2 type 5834 attribute definition) 5836 direction This required property indicates the directionality of the 5837 media relative to the endpoint of the dialog (see Section 4.2.2.2 5838 direction attribute definition). 5840 format This property is optional. If defined, the value of the 5841 property is an array. Each array element is an object which 5842 specifies information about one format of the media stream. The 5843 object contains at least one property called name whose value is 5844 the subtype name of the media format ([RFC4855]). Other 5845 properties may be defined with string values; these correspond to 5846 required and, if defined, optional parameters of the format. 5848 As a consequence of this definition, when a connectionid is specified 5849 there is an array entry in session.connection.protocol.sip.media for 5850 each media stream used by the VoiceXML dialog. For an example, 5851 consider a connection with bi-directional G.711 mu-law audio sampled 5852 at 8kHz where the dialog is started with 5854 5855 5859 5860 5861 5863 In this case, session.connection.protocol.sip.media[0].type evaluates 5864 to "audio", session.connection.protocol.sip.media[0].direction to 5865 "recvonly" (i.e. the endpoint only receives media from the dialog - 5866 the endpoint does not send media to the dialog), and 5867 session.connection.protocol.sip.media[0].format[0].name evaluates to 5868 "PCMU" and session.connection.protocol.sip.media[0].format[0].rate 5869 evaluates to "8000". 5871 Note that the session variable is updated if the connection or 5872 conference media session characteristics for the VoiceXML dialog 5873 change (e.g. due to a SIP re-INVITE). 5875 9.2.3. Session parameter information 5877 Parameter information is specified in the child element of 5878 and elements, where each parameter is 5879 specified using a element. The MS maps parameter information 5880 into VoiceXML session variables as follows: 5882 session.values This is an associative array mapped to the 5883 element. It is undefined if no element is specified. If 5884 a element is specified in both and 5885 elements for the same dialog, then the array is 5886 first initialized with the specified in the 5887 element and then updated with the 5888 specified in the element; in cases of conflict, the 5889 parameter value take priority. Array keys and 5890 values are formed from children of the element. 5891 Each array key is the value of the name attribute of a 5892 element. If the same name is used in more than one 5893 element, then the array key is associated with the last in 5894 document order. The corresponding value for each key is an object 5895 with two required properties: a "type" property evaluating to the 5896 value of the type attribute; and a "content" property evaluating 5897 to the content of the . In addition, this object's 5898 toString() function returns the value of the "content" property as 5899 a string. 5901 For example, a VoiceXML dialog started with one parameter: 5903 5904 5908 5909 playannouncement 5910 5911 5912 5914 In this case, session.values would be defined with one item in the 5915 array where session.values['mode'].type evaluates to "text/plain" 5916 (the default value), session.values['mode'].content evaluates to 5917 "playannouncement" and session.values['mode'].toString() also 5918 evaluates to "playannouncement". 5920 The MS sends an error response (see Section 4.2.2) if a is 5921 not supported by the MS (e.g. the parameter type is not supported). 5923 9.3. Terminating a VoiceXML dialog 5925 When the MS receives a request with a element 5926 (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event 5927 into the specified VoiceXML dialog. Note that if the immediate 5928 attribute has the value true, then the MS MUST NOT return 5929 information when the VoiceXML dialog exits (even if the VoiceXML 5930 dialog provides such information) - see Section 9.4. 5932 If the connection or conference associated with the VoiceXML dialog 5933 terminates, then the MS throws a 'connection.disconnect.hangup' event 5934 into the specified VoiceXML dialog. 5936 9.4. Exiting a VoiceXML dialog 5938 The MS sends a notification event (Section 4.2.5.1) when 5939 the VoiceXML dialog is complete, has been terminated or because it 5940 exits due to an error. The status attribute specifies 5941 the status of the VoiceXML dialog when it exits and its 5942 child element specifies information, if any, returned from the 5943 VoiceXML dialog. 5945 A VoiceXML dialog exits when it processes a element, a 5946 element or an implicit exit according to the VoiceXML FIA. If 5947 the VoiceXML dialog executes a and then subsequently 5948 executes an with namelist information, the namelist 5949 information from the element is discarded. 5951 The MS reports namelist variables in the element of the 5952 . Each reports on a namelist variable. The MS 5953 set the name attribute to the name of the VoiceXML variable. 5954 The MS sets the type attribute according to the type of the 5955 VoiceXML variable. The MS sets the type to 'text/plain' when 5956 the VoiceXML variable is a simple ECMAScript value. If the VoiceXML 5957 variable is a recording, the MS sets the type to the MIME 5958 media type of the recording and encodes the recorded content as CDATA 5959 in the (see Section 4.2.6.1 for an example). If the VoiceXML 5960 variable is a complex ECMAScript value (e.g. object, array, etc), the 5961 MS sets the type to 'application/json' and converts the 5962 variable value to its JSON value equivalent ([RFC4627]). The 5963 behavior resulting from specifying an ECMAScript object with circular 5964 references is not defined. 5966 If the expr attribute is specified on the VoiceXML element 5967 instead of the namelist attribute, the MS creates a element 5968 with the reserved name '__exit'. If the value is an ECMAScript 5969 literal, the type is 'text/plain' and the content is the 5970 literal value. If the value is a variable, the type and 5971 content are set in the same way as a namelist variable; for example, 5972 an expr attribute referencing a variable with a simple ECMAScript 5973 value has the type 'text/plain' and the content is set to the 5974 ECMAScript value. To allow the AS to differentiate between a 5975 notification event resulting from a VoiceXML 5976 from one resulting from an , the MS creates a 5977 with the reserved name '__reason', the type 'text/plain', and 5978 a value of "disconnect" (without brackets) to reflect the use of 5979 VoiceXML's element, and the value of "exit" (without 5980 brackets) to an explicit in the VoiceXML dialog. If the 5981 VoiceXML session terminates for other reasons (such as encountering 5982 an error), this parameter MAY be omitted or take on platform-specific 5983 values prefixed with an underscore. 5985 Table 2 provides some examples of VoiceXML usage and the 5986 corresponding element in the notification 5987 event. It assumes the following VoiceXML variable names and values: 5988 userAuthorized=true, pin=1234 and errors=0. The type 5989 attributes ('text/plain') are omitted for clarity. 5991 +------------------------+------------------------------------------+ 5992 | Usage | Result | 5993 +------------------------+------------------------------------------+ 5994 | | exit | 5996 | | | 5997 | | exit 5 | 6000 | | | 6001 | | exit 'done' | 6004 | | | 6005 | | name="__reason">exit true | 6008 | | | 6009 | | name="__reason">exit 1234 0 | 6013 +------------------------+------------------------------------------+ 6015 Table 2: VoiceXML mapping examples 6017 9.5. Call Transfer 6019 While VoiceXML is at its core a dialog language, it also provides 6020 optional call transfer capability. It is NOT RECOMMENDED to use 6021 VoiceXML's call transfer capability in networks involving Application 6022 Servers. Rather, the AS itself can provide call routing 6023 functionality by taking signaling actions based on the data returned 6024 to it, either through VoiceXML's own data submission mechanisms or 6025 through the mechanism described in Section 9.4. If the MS encounters 6026 a VoiceXML dialog requesting call transfer capability, the MS SHOULD 6027 raise an error event in the VoiceXML dialog execution context: an 6028 error.unsupported.transfer.blind event if blind transfer is 6029 requested, error.unsupported.transfer.bridge if bridge transfer is 6030 requested, or error.unsupported.transfer.consultation if consultation 6031 transfer is requested. 6033 10. Change Summary 6035 Note to RFC Editor: Please remove this whole section. 6037 The following are the changes between the -11 and -10 versions 6038 (addressing remaining IESG DISCUSS and comments): 6040 o 4.6.11 Language Identifier: deleted statement "where the language 6041 code is required and a country code or other subtag identifier is 6042 optional" and clarified that RFC 4647 specifies the matching 6043 procedure. 6045 The following are the changes between the -10 and -09 versions 6046 (addressing remaining IESG DISCUSS and comments): 6048 o 4.3.1.4: : modified the description of the append 6049 operation so that it is specified for the HTTP/HTTPS case to allow 6050 interoperability. The modification permits use of POST so that 6051 the HTTP server can do the appending, but implementation SHOULD 6052 support a GET/PUT model where the media server performs the 6053 appending. 6055 o 4.0: Clarified that the implementation should support storage of 6056 authentication information for HTTP requests and described some 6057 options for how it can do this. 6059 o 4.0, 4.1, etc: Added language tags to identify the language of 6060 descriptive text attributes. A desclang attribute is added to the 6061 root element and has a default value of i-default. Subordinate 6062 elements with descriptive text attributes also have this attribute 6063 defined - if it is not specified on the subordinate element, then 6064 the desclang value on the root element applies. Added example of 6065 desclang in 4.1. 6067 o 5: Updated schema with desclang attributes 6069 o Section 4.6.10: Corrected ABNF definition of IANA MIME media type 6070 to allow parameter values. 6072 o References: Updated JSON (RFC4627) reference to normative. 6074 o 4.6.4, 4,6,5: Added note recommending that implementations support 6075 at least a maximum value of a 32 bit integer for nonnegative and 6076 positive integer type (W3C state they are infinite sets). 6078 The following are the changes between the -09 and -08 versions 6079 (primarily addressing IESG DISCUSS, comments and nits): 6081 o 3.1: Aligned Control Package Name/Version with last Control 6082 Framework verbage. 6084 o 4.0: Modified communications protocol requirements so that a MS 6085 MUST support both HTTP and HTTPS for fetching resources and 6086 uploading recordings. Added statement to relevant element 6087 definitions. 6089 o 4.2.1: Corrected error code from 409 to 421 in last paragraph in 6090 section. 6092 o 4.2.1, 4.2.2, 4.3.1.3.1, 4.3.4, 4.3.5: Modified the specification 6093 of src and location attributes in , , 6094 , and so that there is no mention of 6095 authentication information in the URI (the URI RFC 3986 already 6096 covers this). 6098 o 4.0: Clarified that while some elements contain attributes whose 6099 value is descriptive text, this descriptive text is for diagnostic 6100 use only and does not require a language indicator such as a 6101 language tag. 6103 o 4.2.2.2: Clarified that the media attribute of is a MIME 6104 type-name with reference to RFC 4288. 6106 o 4.2.6.1: Added encoding attribute to to allow for 6107 specification of content-transfer-encoding schema. Updated XML 6108 schema. 6110 o 4.2.6.1: Simplified content model of to be text only. 6111 Updated XML schema. 6113 o 4.3.1.1.1, 4.4.2.2.5, 8.5: Tighten up definition of 6114 date, time and digits types (and ) and added IANA 6115 instruction to establish a prompt variable type registry. 6117 o 4.3.1.4: Clarified that in the the mapping of the append 6118 operation to the upload protocol scheme is implementation- 6119 specific. 6121 o 4.6.10: Clarified MIME media type format with ABNF production 6122 referencing RFC 4288. 6124 o 5: Stated that the schema is normative. 6126 o 5: Corrected definition in XML Schema by adding 'endsync' 6127 attribute. 6129 o 5: Corrected definition in XML Schema by making 6130 mimetype child element optional. 6132 o Moved VoiceXML section (Appendix A) to main body and clarified 6133 that it is normative for implementations supporting VoiceXML. 6134 Updated VoiceXML references to normative except (VoiceXML 3.0 6135 which is still a Working Draft). 6137 o 9.2.2: Corrected example so that the subtype-name (whose value 6138 should be the subtype of the media format) is "PCMU" rather than 6139 "audio/PCMU". 6141 o 9.4: VoiceXML with expr attribute: clarified that if the 6142 value is an ECMAScript variable, the type and content is 6143 processed in the same way as a namelist variable. 6145 o 4.2.2.2.1: clarified the definition of as an area in a 6146 video layout and added a reference to the mixer package 6148 o 4.3.1.4: clarified sentence "If no child element is 6149 specified, the MS MUST provide a recording location where the 6150 recording format is implementation- specific." 6152 o Introduction: Clarified that Control Framework is an equivalent 6153 term for the Media Control Channel Framework. Expanded DTMF 6154 acronym. 6156 o 4.2.5.1, 4.5: replaced reference to standards-tracks RFC for 6157 assignment of new values, with reference to using Standards Action 6158 process defined in RFC 5226. 6160 o 4.3.1.1.3: Added recommendation that a element contains only 6161 one element of the same media type (i.e. same type-name as 6162 defined in Section 4.6.10). 6164 o 4.4.2.1.1: changed to include name attribute; aligned 6165 definition with RFC4288; updated schema. 6167 o 4.6: Type definitions; added references to XML Schema datatypes 6168 where appropriate; changed definition of boolean to match W3C 6169 definition and updated boolean type in schema. 6171 o Typos: in 4.2.2.1, replaced "rewkey" with "rwkey" in first 6172 example; in 4.3.1.1.3, added closing ">" to example; in 6173 4.3.1.1.3.1, added closing ">" to example; in 4.6.11, corrected 6174 RFC 5646 reference 6176 o Validated all examples against XML schema and corrected where 6177 necessary. 6179 The following are the changes between the -08 and -07 versions 6180 (addressing IETF Last Call comments): 6182 o 4.2: Changed recommended maximum duration value for a prepared 6183 dialog from 30s to 300s. 6185 o 4.2: Changed the dialog state machine so that when a PREPARED 6186 dialog is terminated, the MS always sends a 6187 notification event. 6189 o 4.2.1/4.2.2: Clarified that dialog preparation covers retrieval of 6190 external resources (e.g. media, grammar, etc) when they are 6191 referenced by an inline element. 6193 o 4.2.2.1.1: Fixed example replacing with in 6194 element 6196 o 4.3.1: Added repeatUntilComplete attribute to to allow 6197 repetition of an dialog until input (DTMF or recording) is 6198 completed successfully. Updated XML schema. Added example in 6199 6.2.6. 6201 o 4.3.1.1.3: Clarified that in the case of , it is 6202 responsibility of the MS to assign the appropriate stream(s) for 6203 playback of each . 6205 o 4.3.1.2: Clarified that DTMF matching s are consumed and 6206 not added to the digit buffer. 6208 o 4.3.1.3: Clarified that 's maxdigits attribute is ignored 6209 if a custom grammar is specified. 6211 o 4.3.1.3: Clarified that when a DTMF input can match more than one 6212 of {termchar, escapekey, grammar}, then the priority of matching 6213 is: termchar, escapekey and then grammar. 6215 o 4.3.1.3: Clarified that the behavior of the escapekey: the MS 6216 discards collected DTMFs already matched against the grammar, and 6217 the MS attempts to match incoming DTMF (including any pending in 6218 the digit buffer) as described in Step 5 of the 6219 execution model. 6221 o 12.2.1: Changed mapping between SIP History-Info and VoiceXML 6222 session.connection.redirect to align with RFC5552 reported Errata. 6224 The following are the changes between the -07 and -06 versions 6225 (primarily addressing AD Review comments): 6227 o Generally corrected references from Section 17.1 to Section 16.1 6228 of Control Channel Framework. 6230 o 4.2.2.1.1: corrected syntax error in example 6232 o 4.2.3.1: corrected example by adding conferenceid attribute. 6234 o 12.1: corrected error code from 407 to 409 in example when vxml 6235 document cannot be retrieved. 6237 o 6.2.2: corrected example by removing bargein="true"; clarified 6238 that maxdigits defaults to 5. 6240 o 4.5: Changed the recovery action for a 405 ('dialogid already 6241 exists') error response. The AS can always recover by not 6242 specifying the id in the creation command and let the MS generate 6243 a unique id in the response. 6245 o 8.1: Removed the To: and Subject: header fields 6247 o Corrected miscellanous typos. 6249 o 4.2.1, 4.2.2 and 4.3.1.3.1: Added authentication information to 6250 the definition of src attribute in , 6251 and . 6253 o 7: Added Security Consideration that uploading/retrieving 6254 documents and resources should be secured. 6256 o 8.4: Changed file extension from '.xml' to (none) 6258 o Changed "~" to a ":" for connectionid 6260 o 4.2.6.1: Clarified that can contain an XML value. 6262 o 4.2.1, 4.2.2, 12.1,12.2, schema: added maxage and maxstale 6263 attributes (optional) to , for HTTP 6264 VoiceXML use case. 6266 o 4.2.2.1: Clarified that a request containing with no 6267 child elements is equivalent to a request without a 6268 element. 6270 o 4.2.5.1: Changed status codes so that only 0-4 6271 defined and all others are reserved for future use requiring a 6272 standard-track RFC. 6274 o 4.5: Changed status code for and so 6275 that certain codes are defined and all others are reserved for 6276 future use requiring a standard-track RFC. 6278 o 4.2.2.2, 12.2.2, various examples: Changed the media 6279 direction so that it is relative to the endpoint, not the dialog. 6280 Now aligned with VoiceXML mapping in RFC 5552. 6282 The following are the changes between the -06 and -05 versions. 6284 o Corrected typo in introduction 6286 o 4.2.1: Added to . Updated VoiceXML 6287 appendix to describe how these parameters are mapped to the 6288 session object. 6290 o 4.3.1.3: : clarified definitions of interdigittimeout and 6291 termtimeout attributes and tightened up the collect execution 6292 model. 6294 o 8: IANA Considerations: Updated IANA registration information and 6295 added registration for the XML Schema 6297 The following are the changes between the -05 and -04 versions. 6299 o Corrected syntax errors in examples: 4.1, 6.2.2, 6.2.5, 6.3 6301 o 6.3: Corrected error status code for unsupported dialog 6303 o 4.4.2.2.2: : corrected text to reflect that no 6304 additional grammar types need be specified. 6306 o Schema: corrected schema to allow with no children, 6307 and renamed to to align with text. 6308 Fixed problem with non-deterministic content models. 6310 o 7. Security Considerations: Added requirement that 6311 implementations need to secure SIP and RTP sessions with User 6312 Agents. 6314 The following are the changes between the -04 and -03 versions. 6316 o 4.2.2.2: Clarified that media stream direction is relative to the 6317 dialog (the examples showed this but not the definition). 6319 o 4.3.1.2: Clarified that speed. volume and seek 6320 operations beyond the platform's capability are automatically 6321 limited to the platform's minimum/maximum. Also clarified that 6322 when the output is paused, then the MS resumes output 6323 automatically on speed, volume and seek control operations. 6325 o 6.2.5: Corrected syntax error in example 6327 o 7 Security: Added a denial of service example where the attacker 6328 impersonates the MS. 6330 o 7 Security: Clarified that the package security policy for 6331 multiple channels is only useful if the channels themselves are 6332 secured. 6334 o Added reference for VoiceXML 3.0 6336 o Updated acknowledgements. 6338 o Appendix A: 12.2: Corrected syntax error in example 6340 o Appendix A: 12.2.1: Changed behavior for how VoiceXML session 6341 information is populated for a conference; session.conference.name 6342 is specified. Added session.connection.originator variable for a 6343 connection (MS receives inbound connections but does not create 6344 outbound connections). 6346 o Appendix A: 12.2.2: Added session.conference.media for conference 6347 media information. Clarified that direction is relative to the 6348 dialog. 6350 o Appendix A: 12.2.2: Corrected syntax error in example 6352 o Appendix A: 12.2.3: Changed session parameter mapping to 6353 session.values using an associative array. 6355 o Appendix A: 12.5: Changed behavior for handling VoiceXML Call 6356 Transfer requests to raising an error.unsupported.transfer event. 6358 The following are the major changes between the -03 and -02 versions. 6360 o Conformance language: Removed unnecessary MUSTs, especially for 6361 error codes. Removed lowercase 'should', 'must' and 'may'. 6363 o Introduction: Clarified which MediaCtrl IVR Requirements are 6364 satisfied by this package. Added link to Security Considerations 6365 Section (also in Section 4.0 and 4.4). 6367 o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS 6368 support of communication protocols in URIs. 6370 o 4.2.2:: Changed RECOMMENDED to MAY for MS support of 6371 multiple dialogs on same connection or conference. Changed 6372 RECOMMENDED to MUST for using in cases where connection 6373 has multiple streams of the same type. 6375 o 4.2.2.2:: Changed RECOMMENDED to MUST for use of common 6376 media attribute values. 6378 o 4.2.2.1: : Clarified that if the MS does not support a 6379 subscription specified in a foreign namespace, then the MS 6380 generates a 431 error response. 6382 o 4.2.4: : Clarified that a dialogid with an empty string 6383 value is used when the request is syntactically invalid. 6385 o 4.2.5.1: : Added reserved range of status codes, and 6386 tightened up the wording. 6388 o 4.3.1.3:: Clarified that termtimeout attribute default of 6389 0s meaning no delay. 6391 o 4.3.1.1.1: : Changed RECOMMENDED to MAY for MS support 6392 of date, time and digits s. Clarified value attribute 6393 format for date, time and digits. 6395 o 4.3.1.1.3: : Removed RECOMMENDED for MS support of parallel 6396 playback of different media. Added error response code (435) if 6397 MS does not support parallel playback configuraton. 6399 o 4.3.1.1.3.1: : Removed RECOMMENDED for MS support of 6400 sequential playback of same media within a (error case 6401 already covered by configuration not supported response 6402 code). 6404 o 4.3.1.4:: Removed RECOMMENDED for MS support of parallel 6405 recording of different media. Clarified wording around uploading 6406 recording data to a media resource location. 6408 o 4.3.1.4: : Clarified the definition of vadinitial and 6409 vadfinal. Changed the default values to false. Added a response 6410 error (434) for when the MS does not support VAD. 6412 o 4.3.1.5: . Removed unnecesaary SHOULD for MS ignoring 6413 fetchtimeout, soundLevel, clipBegin and clipEnd when used 6414 for recording. Clarified definition of loc and type attributes 6415 with stronger conformance language. Similar clarifications of 6416 type attributes in , and . 6418 o 4.3.2.4.1: : Clarified usage and strengthen conformance 6419 language. 6421 o 4.4.2.22: : Changed MUST to MUST NOT for inclusion 6422 of mandatory SRGS grammar format. Updated examples. 6424 o Updated schema. 6426 o Security Considerations: Major update. Added examples showing 6427 malicious attacks when channel security is not correctly 6428 addressed. Added more details on multiple channel cases including 6429 administrator and monitor channels as well as channel handover. 6431 o Removed affliations in Contributors and Acknowledgements sections. 6433 o Added Appendix A describing how to use VoiceXML with this package 6434 if it is supported by the MS. 6436 o Corrected typos and nits. 6438 The following are the major changes between the -02 and -01 versions. 6440 o corrected typos. 6442 o Section 3: Aligned Control Package definitions with requirements 6443 in Section 8 of the Control Framework. 6445 o Section 4.2.2.2: Added child element to 6446 element (alignment with mixer package). 6448 o Following October Interim meeting discussion on response codes, 6449 generally clarified usage of error status codes, modified some 6450 codes and re-organized the response codes section (Section 4.5) 6451 with more guidance and details. 6453 o Section 4.3.1.5: Following October Interim meeting request for 6454 parallel playback and record, created a generalized version of 6455 used for both playback and record. The 'src' attribute is 6456 renamed to 'loc'. Updated and definitions as 6457 described below. 6459 o Sections 4.3.1.1/4.3.1.1.4: : Added child element to 6460 allow parallel playback of separate media resources. The 6461 element has a child element to allow a sequence of media 6462 resources to be played at the same time as other resources are 6463 played in parallel. 6465 o Sections 4.3.1.4/4.3.1.4.1: : Removed 'dest' and 'type' 6466 attributes. Added child elements to support parallel 6467 recording to separate media resource locations. 6469 o Sections 4.3.2.4/4.3.2.4.1: : Removed 'dest', 'type' 6470 and 'size' attribute. Added child elements with 6471 'loc', 'type' and 'size' attributes. 6473 o Section 4.4.2.2.4: Renamed to to 6474 clarify distinction with . 6476 o Sections 4.3.1.4: : Clarified RFC2119 language around 6477 vadinitial and vadfinal behavior. 6479 o Updated schema. Removed some element-specific syntactic 6480 constraint statements which are already covered in the schema. 6482 o 4.3.1: occurrence of without a no longer 6483 treated as a syntax error - instead runtime controls are simply 6484 ignored. 6486 o 6488 The following are the major changes between the -01 and -00 versions. 6490 o 7: Updated security section referencing control framework security 6491 and adding policy requirement to address dialog resource 6492 management over multiple channels. 6494 o corrected typos and example errors 6496 o 4.2: [IVR-200] Added state machine for dialog lifecycle. 6498 o 4.2: clarified dialog identifier assignment and use, including MS 6499 assignment of dialogid in and . 6501 o 4.2/4.2.3: clarified behavior when dialog is not 6502 in a STARTED state. 6504 o 1/4.2: Clarified concept of dialog language and replaced 6505 references to 'dialog types' with dialog languages. Replaced 6506 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that 6507 IVR is inline and other supported dialog languages are 6508 specified by reference. Removed default type values for 6509 and . 6511 o 4.4.2.2.1: clarified that the inline dialog language () 6512 must not be listed as an additional supported dialog language. 6514 o 4.2.2.2: [IVR-201] Added element to so that 6515 dialog video output can be directed to a specific region a 6516 conference video layout. 6518 o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format 6519 for digits. 6521 o 4.4.2.1.1:[IVR-203]: added to to allow additional 6522 codec information to be specified. 6524 o 4.5: added error status code for unsupported URI (415), invalid 6525 region identifier (416), fetchtimeout exceeded (417), syntactic 6526 constraint violation (418), unsupported media format (419), 6527 unsupported grammar format (420), unsupported variable 6528 announcement (421), unsupported DTMF tone generation (422), 6529 conflict with control key values (423), unsupported recording 6530 format (424). 6532 o Generally, replaced 'it is an error ...' language with RFC2119 6533 language, making error codes more explicit. 6535 o 4.3.1: Clarified that an MS MAY support and 6536 elements co-occurring in a element, but the MS MUST send 6537 an error response if they are not supported. Clarified that MS 6538 MUST send an error response if is specified without a 6539 element. 6541 o 4.2.5.2: clarified that the timestamp in is that of 6542 the last DTMF in a matching input sequence. 6544 o References: more references now normative. 6546 o 4.3: Replaced passive voice language with active voice language in 6547 the description of execution models. 6549 o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is 6550 completely unrelated to the term 'SIP dialog'. 6552 o 4: Added clarification that elements with URI attributes are 6553 recommended to support one or more communication protocols 6554 suitable for fetching resources. 6556 o 4.3.1.4: clarified MS MAY support upload of recording 6557 data during recording, and that upload errors (e.g. authentication 6558 failures, communication errors, etc) are execution errors. Added 6559 'append' attribute to control behavior when a recorded resource 6560 already exists at the recording location. 6562 o 4.2.2: Clarified that an error is reported if with 6563 contains parameters which the MS cannot process for the 6564 given dialog language. 6566 o 4.2.6.1: removed 'valuetype' attribute and clarified that 6567 the type attribute indicates the MIME media type associated with 6568 the inline value. 6570 o 4.3.1.4: Added append attribute to to control whether 6571 recordings are appended or not to the recording location resource. 6573 o 4.3.1.1.1: Added clipEnd attribute to to control when 6574 playback of the media ends. 6576 o 4.3.1: Clarified that when there are multiple iterations of a 6577 dialog (using repeatCount attribute) only the results of the last 6578 dialog iteration are reported. 6580 o 4.4.2.2: Added ability to audit capability, as well as 6581 maximum duration of prepared dialogs and of recordings. 6583 o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in 6584 and how reports its status. 6586 o 4: Changed handling of unsupported foreign namespace elements and 6587 attributes. The MS send a 426 error response if it encounters 6588 foreign elements and attributes it does not support. 6590 The following are the major changes between the -00 of this work 6591 group item draft and the individual submission -05 version. 6593 o [IVR01] When the MS sends a notification event in a CONTROL, the 6594 AS sends mandatory 200 response (no extended transaction). 6596 o [IVR23] Added a top-level container element, , with 6597 version attribute. 6599 o Removed term 'basic' in title, description, elements and IANA 6600 registration. Control package name is now 'msc-ivr/1.0'. 6601 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 6602 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 6603 'dialog' and moved version attribute to mscivr element. 6605 o [IVR15] Updated and simplified XML schema. Ordering of child 6606 elements is significant. 6608 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 6609 'soundLevel' and 'clipBegin' to media element. 6611 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 6612 Added 'repeatCount' and 'repeatDur' to dialog element. 6614 o Moved VCR commands from into separate element. 6615 Defined controlinfo element to report runtime control match 6616 information. 6618 o [IVR05] Added to where AS can subscribe 6619 to DTMF key presses (all, control match only, collect match only). 6620 Extended to support associated notification. 6622 o Moved definition of into a separate section. 6624 o [IVR21] Added audit capability: auditing of package capabilities 6625 and managed dialogs 6627 o [IVR21] Explicitly stated that an error must be reported if the 6628 connection or conference referenced in a is not 6629 available at the time the request is processed on the MS. 6631 o Clarified that the rendering mechanism is MS 6632 implementation specific. 6634 o [IVR09]/[IVR10] Clarified attribute definitions and 6635 added 'gender' attribute. 6637 o [IVR16] Clarified that info must be reported in dialogexit, if the 6638 corresponding element is specified in a . For example, if 6639 is specified, then must be specified if the 6640 dialog terminates normally. 6642 o [IVR18] Added 'inactive' value for direction attribute of 6643 . 6645 o [IVR19] Clarified case of on connection/conference 6646 with multiple streams of the same type: recommended to be set 6647 explicitly with s. 6649 o [IVR02] Clarified that multiple dialogs may started simultaneously 6650 on the same connection or conference. 6652 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 6653 in the PREPARED state. 6655 o Added in and for input/output 6656 in other dialog types 6658 o [IVR22] Added fetchtimeout parameter to dialogprepare, 6659 dialogstart, media and grammar elements. 6661 o [IVR04] Added dialogexit status to indicate the connection or 6662 conference has been terminated. Added others status errors. 6664 o [IVR08] Clarified that the operation does not interrupt 6665 playing prompts and that matched DTMF is not available to 6666 or operations during prompt playback. 6668 o [IVR11] Added runtime controls for speed, goto start/end and 6669 external controls. 6671 o Clarified that recordings can be uploaded to dest during or after 6672 the recording operation. 6674 o /: clarified timer handling - timeout refers to 6675 waiting time for collect/record to begin. 6677 o Clarified behavior of immediate attribute on . 6679 o clarified dialogid lifecycle: dialogids can be re-cycled. 6681 o Clarified error handling. 6683 o Editorial tidy up of sections. 6685 o dialogid attribute on is now mandatory. 6687 o Clarified that the duration specified in finalsilence attribute of 6688 is not part of the final recording. 6690 o Clarified that the SRGS XML grammar format is mandatory 6692 The following are the major changes between the -06 of the draft and 6693 the -05 version. 6695 o Event notifications are sent in CONTROL messages with the MS 6696 acting as Control Framework Client. Compared with the previous 6697 approach, this means that a transaction is now 6698 complete when the MS sends a . A new transaction is 6699 initiated by the MS each time the MS sends a notification 6700 to the AS. 6702 o Changed conf-id to conferenceid and connection-id to connectionid. 6704 o Clarification of the state model for dialogs 6706 o : modified definition of src attribute to allow 6707 reference to external dialog documents; added (MIME) type 6708 attribute; removed child element. 6710 o : modified definition of src attribute to allow 6711 reference to external dialog documents; added (MIME) type 6712 attribute; removed child element; 6714 o : modified so that a dialogexit event is always 6715 sent for active dialogs (i.e. the dialogexit event is a 6716 terminating notification) 6718 o notification simplified and make more extensible. Manual 6719 notifications (via element) are removed from the basic 6720 package. A event is defined as child and it 6721 can be extended with additional child elements 6723 o element is removed. 6725 o element removed. 6727 o Replaced dialog templates with a general element. It has 6728 child elements for playing media resource (), collecting 6729 DTMF () and recording (). The functionality is 6730 largely unchanged. 6732 o and are extended with child 6733 element. 6735 o is extended with a element which contains 6736 status and reported information (replacement for output parameters 6737 in template dialogs) 6739 o Prompts: now structured as a element with , 6740 and children. The element has xml:base 6741 attribute, bargein, iterations, duration, volume and offset 6742 attributes. The speed attribute is removed. A element 6743 has src and type attributes. The maxage and maxstale attributes 6744 are removed. 6746 o DTMF input: parameters now specified as attributes of a 6747 element. Custom grammar specified with a element as 6748 child of element. Added 'escapekey' to allow the dialog 6749 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 6750 to allow the prompts to paused/resumed. Added 'volumeinterval', 6751 'volupkey' and voldnkey' to add prompt volume to be increased/ 6752 decreased. Moved 'bargein' attribute to prompt. 6754 o Recording: parameters now specified as attributes of 6755 element. Added 'dest' and 'beep' attributes. 6757 The following are the major changes between the -05 of the draft and 6758 the -04 version. 6760 o Mainly an alignment/evaluation exercise with requirements produced 6761 by MEDIACTRL IVR design team. 6763 o playannouncement parameters from Table 7 of '04' version are now 6764 reflected in text - schema to be updated. 6766 o Added VCR commands based on MSCML. 6768 The following are the major changes between the -04 of the draft and 6769 the -03 version. 6771 o None. 6773 The following are the major changes between the -03 of the draft and 6774 the -02 version. 6776 o added "basicivr:" protocol to template dialog types which must be 6777 supported as values of the "src" attribute in and 6778 . Note alternative: "/basicivr/playannouncement" 6779 offered in [RFC4240]. 6781 o added "basicivr:" URI schema to IANA considerations 6783 o Added mimetype, vadinitial and vadfinal parameters to 6784 'promptandrecord' dialog type 6786 o updated references 6788 The following are the major changes between the -02 of the draft and 6789 the -01 version. 6791 o added version 1.0 to package name 6793 o separate section for element definitions 6795 o dialogterminate treated as request rather than notification 6796 o simplified responses: single element 6798 o removed response elements: , , 6799 , 6801 o simplified event notifications to single element carried 6802 in a REPORT 6804 o element replaced with 6806 o removed element 6808 o added element as child of 6810 o removed 'type' attribute from and 6812 o added dialogid attribute to and 6814 o removed template "Sample Implementation" section 6816 o renamed to 6818 o re-organized so that template details after general package 6819 framework and element description. 6821 The following are the primary changes between the -01 of the draft 6822 and the -00 version. 6824 o Removed requirement for VoiceXML dialog support 6826 o Added requirement for template dialog support 6828 11. Contributors 6830 Asher Shiratzky provided valuable support and contributions to the 6831 early versions of this document. 6833 The authors would like to thank the IVR design team consisting of 6834 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary 6835 Barnes and Steve Buko who provided valuable feedback, input and text 6836 to this document. 6838 12. Acknowledgments 6840 The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave 6841 Burke, Dan York, Steve Buko, Jean-Francois Bertrand, Henry Lum and 6842 Lorenzo Miniero for expert reviews of this work. 6844 Ben Campbell carried out the RAI expert review on this specification 6845 and provided a great deal of invaluable input. Donald Eastlake 6846 carried out a thorough security review. 6848 13. References 6850 13.1. Normative References 6852 [I-D.ietf-mediactrl-sip-control-framework] 6853 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 6854 Control Channel Framework", 6855 draft-ietf-mediactrl-sip-control-framework-12 (work in 6856 progress), September 2010. 6858 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 6859 Extensions (MIME) Part One: Format of Internet Message 6860 Bodies", RFC 2045, November 1996. 6862 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 6863 Requirement Levels", BCP 14, RFC 2119, March 1997. 6865 [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and 6866 Languages", BCP 18, RFC 2277, January 1998. 6868 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 6869 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 6870 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 6872 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. 6874 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 6875 Types", RFC 3023, January 2001. 6877 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 6878 January 2004. 6880 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 6881 Resource Identifier (URI): Generic Syntax", STD 66, 6882 RFC 3986, January 2005. 6884 [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and 6885 Registration Procedures", BCP 13, RFC 4288, December 2005. 6887 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 6888 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 6890 [RFC4627] Crockford, D., "The application/json Media Type for 6891 JavaScript Object Notation (JSON)", RFC 4627, July 2006. 6893 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 6894 BCP 47, RFC 4647, September 2006. 6896 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 6897 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 6898 May 2008. 6900 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 6901 Specifications: ABNF", STD 68, RFC 5234, January 2008. 6903 [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying 6904 Languages", BCP 47, RFC 5646, September 2009. 6906 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 6907 Specification Version 1.0", W3C Recommendation, 6908 March 2004. 6910 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 6911 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 6912 and S. Tryphonas, "Voice Extensible Markup Language 6913 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 6915 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 6916 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 6917 A., Porter, B., and K. Rehor, "Voice Extensible Markup 6918 Language (VoiceXML) Version 2.1", W3C Recommendation, 6919 June 2007. 6921 [W3C.REC-SMIL2-20051213] 6922 Koivisto, A., Bulterman, D., Michel, T., Mullender, S., 6923 Zucker, D., Jansen, J., Layaida, N., and G. Grassel, 6924 "Synchronized Multimedia Integration Language (SMIL 2.1)", 6925 World Wide Web Consortium Recommendation REC-SMIL2- 6926 20051213, December 2005, 6927 . 6929 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 6930 and F. Yergeau, "Extensible Markup Language (XML) 1.0 6931 (Third Edition)", W3C Recommendation, February 2004. 6933 [XMLSchema:Part2] 6934 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 6935 Second Edition", W3C Recommendation, October 2004. 6937 13.2. Informative References 6939 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 6940 1.0", W3C Candidate Recommendation (work in progress), 6941 April 2010. 6943 [H.248.9] "Gateway control protocol: Advanced media server 6944 packages", ITU-T Recommendation H.248.9. 6946 [I-D.ietf-mediactrl-mixer-control-package] 6947 McGlashan, S., Melanchuk, T., and C. Boulton, "A Mixer 6948 Control Package for the Media Control Channel Framework", 6949 draft-ietf-mediactrl-mixer-control-package-11 (work in 6950 progress), February 2010. 6952 [I-D.ietf-xcon-common-data-model] 6953 Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, 6954 "Conference Information Data Model for Centralized 6955 Conferencing (XCON)", draft-ietf-xcon-common-data-model-22 6956 (work in progress), December 2010. 6958 [IANA] "IANA registry for RTP Payload Types", 6959 . 6961 [MIME.mediatypes] 6962 "IANA registry for MIME Media Types", 6963 . 6965 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 6966 Package", RFC 2897, August 2000. 6968 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 6969 A., Peterson, J., Sparks, R., Handley, M., and E. 6970 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 6971 June 2002. 6973 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 6974 Media Services with SIP", RFC 4240, December 2005. 6976 [RFC4244] Barnes, M., "An Extension to the Session Initiation 6977 Protocol (SIP) for Request History Information", RFC 4244, 6978 November 2005. 6980 [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media 6981 Types: application/voicexml+xml, application/ssml+xml, 6982 application/srgs, application/srgs+xml, application/ 6983 ccxml+xml, and application/pls+xml", RFC 4267, 6984 November 2005. 6986 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 6987 Parameter for "Bucket" Media Types", RFC 4281, 6988 November 2005. 6990 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 6991 (SIP) Event Package for Key Press Stimulus (KPML)", 6992 RFC 4730, November 2006. 6994 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 6995 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 6996 December 2006. 6998 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 6999 Formats", RFC 4855, February 2007. 7001 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 7002 Control Markup Language (MSCML) and Protocol", RFC 5022, 7003 September 2007. 7005 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 7006 Requirements", RFC 5167, March 2008. 7008 [RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup 7009 Language (MSML)", RFC 5707, February 2010. 7011 [VXML30] McGlashan, S., Burnett, D., Akolkar, R., Auburn, RJ., 7012 Baggia, P., Barnett, J., Bodell, M., Carter, J., Oshry, 7013 M., Rehor, K., Young, M., and R. Hosn, "Voice Extensible 7014 Markup Language (VoiceXML) Version 3.0", W3C Working 7015 Draft, August 2010. 7017 Authors' Addresses 7019 Scott McGlashan 7020 Hewlett-Packard 7022 Email: smcg.stds01@mcglashan.org 7024 Tim Melanchuk 7025 Rain Willow Communications 7027 Email: tim.melanchuk@gmail.com 7029 Chris Boulton 7030 NS-Technologies 7032 Email: chris@ns-technologies.com