idnits 2.17.00 (12 Aug 2021) /tmp/idnits19584/draft-ietf-mediactrl-ivr-control-package-08.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Sep 2009 rather than the newer Notice from 28 Dec 2009. (See https://trustee.ietf.org/license-info/) 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 26 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 == 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 (February 25, 2010) is 4467 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 4659, but not defined == Missing Reference: 'IVR-200' is mentioned on line 5742, but not defined == Missing Reference: 'IVR-201' is mentioned on line 5760, but not defined == Missing Reference: 'IVR01' is mentioned on line 5839, but not defined == Missing Reference: 'IVR23' is mentioned on line 5842, but not defined == Missing Reference: 'IVR15' is mentioned on line 5851, but not defined == Missing Reference: 'IVR06' is mentioned on line 5854, but not defined == Missing Reference: 'IVR05' is mentioned on line 5864, but not defined == Missing Reference: 'IVR21' is mentioned on line 5873, but not defined == Missing Reference: 'IVR16' is mentioned on line 5883, but not defined == Missing Reference: 'IVR18' is mentioned on line 5888, but not defined == Missing Reference: 'IVR19' is mentioned on line 5891, but not defined == Missing Reference: 'IVR02' is mentioned on line 5895, but not defined == Missing Reference: 'IVR20' is mentioned on line 5898, but not defined == Missing Reference: 'IVR22' is mentioned on line 5904, but not defined == Missing Reference: 'IVR04' is mentioned on line 5907, but not defined == Missing Reference: 'IVR08' is mentioned on line 5910, but not defined == Missing Reference: 'IVR11' is mentioned on line 5914, but not defined -- Looks like a reference, but probably isn't: '0' on line 6296 == Outdated reference: draft-ietf-mediactrl-sip-control-framework has been published as RFC 6230 ** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) ** Obsolete normative reference: RFC 3023 (Obsoleted by RFC 7303) -- Possible downref: Non-RFC (?) normative reference: ref. 'SRGS' -- Possible downref: Non-RFC (?) normative reference: ref. 'XML' == Outdated reference: draft-ietf-xcon-common-data-model has been published as RFC 6501 -- Obsolete informational reference (is this intentional?): RFC 4244 (Obsoleted by RFC 7044) -- Obsolete informational reference (is this intentional?): RFC 4281 (Obsoleted by RFC 6381) -- Obsolete informational reference (is this intentional?): RFC 4627 (Obsoleted by RFC 7158, RFC 7159) Summary: 3 errors (**), 0 flaws (~~), 24 warnings (==), 9 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: August 29, 2010 Rain Willow Communications 6 C. Boulton 7 NS-Technologies 8 February 25, 2010 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-08 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, DTMF collect and media recording) and 24 allows other dialog languages to be used. The package also defines 25 elements for auditing package capabilities and IVR dialogs. 27 Status of this Memo 29 This Internet-Draft is submitted to IETF in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF), its areas, and its working groups. Note that 34 other groups may also distribute working documents as Internet- 35 Drafts. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 The list of current Internet-Drafts can be accessed at 43 http://www.ietf.org/ietf/1id-abstracts.txt. 45 The list of Internet-Draft Shadow Directories can be accessed at 46 http://www.ietf.org/shadow.html. 48 This Internet-Draft will expire on August 29, 2010. 50 Copyright Notice 52 Copyright (c) 2010 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (http://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the BSD License. 65 This document may contain material from IETF Documents or IETF 66 Contributions published or made publicly available before November 67 10, 2008. The person(s) controlling the copyright in some of this 68 material may not have granted the IETF Trust the right to allow 69 modifications of such material outside the IETF Standards Process. 70 Without obtaining an adequate license from the person(s) controlling 71 the copyright in such materials, this document may not be modified 72 outside the IETF Standards Process, and derivative works of it may 73 not be created outside the IETF Standards Process, except to format 74 it for publication as an RFC or to translate it into languages other 75 than English. 77 Table of Contents 79 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 80 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9 81 3. Control Package Definition . . . . . . . . . . . . . . . . . 10 82 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10 83 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 84 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 85 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 86 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 87 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 88 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12 89 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13 90 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 13 91 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15 92 4.2.1. . . . . . . . . . . . . . . . . . . . 18 93 4.2.2. . . . . . . . . . . . . . . . . . . . . 21 94 4.2.2.1. . . . . . . . . . . . . . . . . . . . 24 95 4.2.2.1.1. . . . . . . . . . . . . . . . . . . 25 96 4.2.2.2. . . . . . . . . . . . . . . . . . . . . 26 97 4.2.2.2.1. . . . . . . . . . . . . . . . . . . 27 98 4.2.2.2.2. . . . . . . . . . . . . . . . . . 27 99 4.2.3. . . . . . . . . . . . . . . . . . . 28 100 4.2.4. . . . . . . . . . . . . . . . . . . . . . 28 101 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 30 102 4.2.5.1. . . . . . . . . . . . . . . . . . . 30 103 4.2.5.2. . . . . . . . . . . . . . . . . . . 32 104 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 32 105 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 33 106 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 34 107 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 35 108 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 38 109 4.3.1.1.1. . . . . . . . . . . . . . . . . . 39 110 4.3.1.1.2. . . . . . . . . . . . . . . . . . . . 41 111 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . . 42 112 4.3.1.1.3.1. . . . . . . . . . . . . . . . . . . 43 113 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 45 114 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 48 115 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 50 116 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 52 117 4.3.1.5. . . . . . . . . . . . . . . . . . . . . . 56 118 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 57 119 4.3.2.1. . . . . . . . . . . . . . . . . . . 58 120 4.3.2.2. . . . . . . . . . . . . . . . . . . 58 121 4.3.2.2.1. . . . . . . . . . . . . . . . 58 122 4.3.2.3. . . . . . . . . . . . . . . . . . . 58 123 4.3.2.4. . . . . . . . . . . . . . . . . . . 59 124 4.3.2.4.1. . . . . . . . . . . . . . . . . . 59 126 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 60 127 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 60 128 4.4.2. . . . . . . . . . . . . . . . . . . . 61 129 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 63 130 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 64 131 4.4.2.2. . . . . . . . . . . . . . . . . . 64 132 4.4.2.2.1. . . . . . . . . . . . . . . 66 133 4.4.2.2.2. . . . . . . . . . . . . . . . 67 134 4.4.2.2.3. . . . . . . . . . . . . . . . . 67 135 4.4.2.2.4. . . . . . . . . . . . . . . . . 67 136 4.4.2.2.5. . . . . . . . . . . . . . . . . . 68 137 4.4.2.2.5.1. . . . . . . . . . . . . . 68 138 4.4.2.2.6. . . . . . . . . . . . . 69 139 4.4.2.2.7. . . . . . . . . . . . . . 69 140 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 69 141 4.4.2.3.1. . . . . . . . . . . . . . . . . 69 142 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 70 143 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 76 144 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 78 145 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 105 146 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 105 147 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 105 148 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 106 149 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 106 150 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 107 151 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 108 152 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 108 153 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 109 154 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 111 155 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 112 156 6.2.5. Subscriptions and notifications . . . . . . . . . . . 113 157 6.2.6. Dialog repetition until DTMF collection complete . . 113 158 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 114 159 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 115 160 7. Security Considerations . . . . . . . . . . . . . . . . . . . 117 161 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 120 162 8.1. Control Package Registration . . . . . . . . . . . . . . 120 163 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 120 164 8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 121 165 8.4. MIME Media Type Registration for 166 'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 121 167 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 123 168 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 137 169 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 138 170 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 139 171 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 147 172 13.1. Normative References . . . . . . . . . . . . . . . . . . 147 173 13.2. Informative References . . . . . . . . . . . . . . . . . 148 175 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 150 177 1. Introduction 179 The Media Control Channel Framework 180 ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic 181 approach for establishment and reporting capabilities of remotely 182 initiated commands. The Control Framework utilizes many functions 183 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 184 rendezvous and establishment of a reliable channel for control 185 interactions. The Control Framework also introduces the concept of a 186 Control Package. A Control Package is an explicit usage of the 187 Control Framework for a particular interaction set. This document 188 defines a Control Package for Interactive Voice Response (IVR) 189 dialogs on media connections and conferences. The term 'dialog' in 190 this document refers to an IVR dialog and is completely unrelated to 191 the notion of a SIP dialog. The term 'IVR' is used in its inclusive 192 sense, allowing media other than voice for dialog interaction. 194 The package defines dialog management request elements for preparing, 195 starting and terminating dialog interactions, as well as associated 196 responses and notifications. Dialog interactions are specified using 197 a dialog language where the language specifies a well-defined syntax 198 and semantics for permitted operations (play a prompt, record input 199 from the user, etc). This package defines a lightweight IVR dialog 200 language (supporting prompt playback, runtime controls, DTMF collect 201 and media recording) and allows other dialog languages to be used. 202 These dialog languages are specified inside dialog management 203 elements for preparing and starting dialog interactions. The package 204 also defines elements for auditing package capabilities and IVR 205 dialogs. 207 This package has been designed to satisfy IVR requirements documented 208 in the Media Server Control Protocol Requirements document 209 ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. 210 It achieves this by building upon two major approaches to IVR dialog 211 design. These approaches address a wide range of IVR use cases and 212 are used in many applications which are extensively deployed today. 214 First, the package is designed to provide the major IVR functionality 215 of SIP Media Server languages such as netann ([RFC4240]), MSCML 216 ([RFC5022]) and MSML ([RFC5707]) which themselves build upon more 217 traditional non-SIP languages ([H.248.9], [RFC2897]). A key 218 differentiator is that this package provides IVR functionality using 219 the Media Control Channel Framework. 221 Second, its design is aligned with key concepts of the web model as 222 defined in W3C Voice Browser languages. The key dialog management 223 mechanism is closely aligned with CCXML ([CCXML10]). The dialog 224 functionality defined in this package can be largely seen as a subset 225 of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, 226 DTMF collection and media recording features are incorporated, but 227 not any advanced VoiceXML constructs (such as
, its 228 interpretation algorithm, or a dynamic data model). As W3C develops 229 VoiceXML 3.0 ([VXML30]), we expect to see further alignment, 230 especially in providing a set of basic independent primitive elements 231 (such as prompt, collect, record and runtime controls) which can be 232 re-used in different dialog languages. 234 By reusing and building upon design patterns from these approaches to 235 IVR languages, this package is intended to provide a foundation which 236 is familiar to current IVR developers and sufficient for most IVR 237 applications, as well as a path to other languages which address more 238 advanced applications. 240 This control package defines a lightweight IVR dialog language. The 241 scope of this dialog language is the following IVR functionality: 243 o playing one or more media resources as a prompt to the user 245 o runtime controls (including VCR controls like speed and volume) 247 o collecting DTMF input from the user according to a grammar 249 o recording user media input 251 Out of scope for this dialog language are more advanced functions 252 including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), 253 fax, automatic prompt recovery ('media fallback') and media 254 transformation. Such functionality can be addressed by other dialog 255 languages (such as VoiceXML) used with this package, extensions to 256 this package (addition of foreign elements or attributes from another 257 namespace) or other control packages. 259 The functionality of this package is defined by messages, containing 260 XML [XML] elements, transported using the Media Control Channel 261 Framework. The XML elements can be divided into three types: dialog 262 management elements; a dialog element which defines a lightweight IVR 263 dialog language used with dialog management elements; and finally, 264 elements for auditing package capabilities as well as dialogs managed 265 by the package. 267 Dialog management elements are designed to manage the general 268 lifecycle of a dialog. Elements are provided for preparing a dialog, 269 starting the dialog on a conference or connection, and terminating 270 execution of a dialog. Each of these elements is contained in a 271 Media Control Channel Framework CONTROL message sent to the media 272 server. When the appropriate action has been executed, the media 273 server sends a REPORT message (or a 200 response to the CONTROL if it 274 can execute in time) with a response element indicating whether the 275 operation was successful or not (e.g. if the dialog cannot be 276 started, then the error is reported in this response). Once a dialog 277 has been successfully started, the media server can send further 278 event notifications in a framework CONTROL message. This package 279 defines two event notifications: a DTMF event indicating the DTMF 280 activity; and a dialogexit event indicating that the dialog has 281 exited. If the dialog has executed successfully, the dialogexit 282 event includes information collected during the dialog. If an error 283 occurs during execution (e.g. a media resource failed to play, no 284 recording resource available, etc), then error information is 285 reported in the dialogexit event. Once a dialogexit event is sent, 286 the dialog lifecycle is terminated. 288 The dialog management elements for preparing and starting a dialog 289 specify the dialog using a dialog language. A dialog language has 290 well-defined syntax and semantics for defined dialog operations. 291 Typically dialog languages are written in XML where the root element 292 has a designated XML namespace and, when used as standalone 293 documents, have an associated MIME media type. For example, VoiceXML 294 is an XML dialog language with the root element with the 295 designated namespace 'http://www.w3.org/2001/vxml' and standalone 296 documents are associated with the MIME media type 'application/ 297 voicexml+xml' ([RFC4267]). 299 This control package defines its own lightweight IVR dialog language. 300 The language has a root element () with the same designated 301 namespace as used for other elements defined in this package (see 302 Section 8.2). The root element contains child elements for playing 303 prompts to the user, specifying runtime controls, collecting DTMF 304 input from the user and recording media input from the user. The 305 child elements can co-occur so as to provide 'play announcement', 306 'prompt and collect' as well as 'prompt and record' functionality. 308 The dialog management elements for preparing and starting a dialog 309 can specify the dialog language either by including inline a fragment 310 with the root element or by referencing an external dialog document. 311 The dialog language defined in this package is specified inline. 312 Other dialog languages, such as VoiceXML, can be used by referencing 313 an external dialog document. 315 The document is organized as follows. Section 3 describes how this 316 control package fulfills the requirements for a Media Control Channel 317 Framework control package. Section 4 describes the syntax and 318 semantics of defined elements, including dialog management 319 (Section 4.2), the IVR dialog element (Section 4.3) and audit 320 elements (Section 4.4). Section 5 describes an XML schema for these 321 elements and provides extensibility by allowing attributes and 322 elements from other namespaces. Section 6 provides examples of 323 package usage. Section 7 describes important security considerations 324 for use of this control package. Section 8 provides information on 325 IANA registration of this control package, including its name, XML 326 namespace and MIME media type. Finally, Section 12 provides 327 additional information on using VoiceXML when supported as an 328 external dialog language. 330 2. Conventions and Terminology 332 In this document, BCP 14 [RFC2119] defines the key words "MUST", 333 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 334 "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In 335 addition, BCP 15 indicates requirement levels for compliant 336 implementations. 338 The following additional terms are defined for use in this document: 340 Dialog: A dialog performs media interaction with a user following 341 the concept of an IVR (Interactive Voice Response) dialog (this 342 sense of 'dialog' is completely unrelated to a SIP dialog). A 343 dialog is specified as inline XML, or via a URI reference to an 344 external dialog document. Traditional IVR dialogs typically 345 feature capabilities such as playing audio prompts, collecting 346 DTMF input and recording audio input from the user. More 347 inclusive definitions include support for other media types, 348 runtime controls, synthesized speech, recording and playback of 349 video, recognition of spoken input, and mixed initiative 350 conversations. 352 Application server: A SIP [RFC3261] application server (AS) hosts 353 and executes services such as interactive media and conferencing 354 in an operator's network. An AS influences and impacts the SIP 355 session, in particular by terminating SIP sessions on a media 356 server, which is under its control. 358 Media Server: A media server (MS) processes media streams on behalf 359 of an AS by offering functionality such as interactive media, 360 conferencing, and transcoding to the end user. Interactive media 361 functionality is realized by way of dialogs which are initiated by 362 the application server. 364 3. Control Package Definition 366 This section fulfills the mandatory requirement for information that 367 MUST be specified during the definition of a Control Framework 368 Package, as detailed in Section 8 of 369 [I-D.ietf-mediactrl-sip-control-framework]. 371 3.1. Control Package Name 373 The Control Framework requires a Control Package to specify and 374 register a unique name and version. 376 The name and version of this Control Package is "msc-ivr/1.0" (Media 377 Server Control - Interactive Voice Response - version 1.0). Its IANA 378 registration is specified in Section 8.1. 380 Since this is the initial ("1.0") version of the control package, 381 there are no backwards compatibility issues to address. 383 3.2. Framework Message Usage 385 The Control Framework requires a Control Package to explicitly detail 386 the control messages that can be used as well as provide an 387 indication of directionality between entities. This will include 388 which role type is allowed to initiate a request type. 390 This package specifies CONTROL and response messages in terms of XML 391 elements defined in Section 4, where the message bodies have the MIME 392 media type defined in Section 8.4. These elements describe requests, 393 response and notifications and all are contained within a root 394 element (Section 4.1). 396 In this package, the MS operates as a Control Server in receiving 397 requests from, and sending responses to, the AS (operating as Control 398 Client). Dialog management requests and responses are defined in 399 Section 4.2. Audit requests and responses are defined in 400 Section 4.4. dialog management and audit responses are carried in a 401 framework 200 response or REPORT message bodies. This package's 402 response codes are defined in Section 4.5. 404 Note that package responses are different from framework response 405 codes. Framework error response codes (see Section 8 of 406 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 407 or event notification is invalid; for example, a request is invalid 408 XML (400), or not understood (500). 410 The MS also operates as a Control Client in sending event 411 notification to the AS (Control Server). Event notifications 412 (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST 413 respond with a Control Framework 200 response. 415 3.3. Common XML Support 417 The Control Framework requires a Control Package definition to 418 specify if the attributes for media dialog or conference references 419 are required. 421 This package requires that the XML Schema in Section 16.1 of 422 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 423 media dialogs and conferences. 425 The package uses "connectionid" and "conferenceid" attributes for 426 various element definitions (Section 4). The XML schema (Section 5) 427 imports the definitions of these attributes from the framework 428 schema. 430 3.4. CONTROL Message Body 432 The Control Framework requires a Control Package to define the 433 control body that can be contained within a CONTROL command request 434 and to indicate the location of detailed syntax definitions and 435 semantics for the appropriate body types. 437 When operating as Control Server, the MS receives CONTROL messages 438 body with the MIME media type defined in Section 8.4 and containing 439 an element (Section 4.1) with either a dialog management or 440 audit request child element. 442 The following dialog management request elements are carried in 443 CONTROL message bodies to MS: (Section 4.2.1), 444 (Section 4.2.2) and 445 (Section 4.2.3)elements. 447 The request element (Section 4.4.1) is also carried in 448 CONTROL message bodies. 450 When operating as Control Client, the MS sends CONTROL messages with 451 the MIME media type defined in Section 8.4 and a body containing an 452 element (Section 4.1) with a notification child 453 element (Section 4.2.5). 455 3.5. REPORT Message Body 457 The Control Framework requires a control package definition to define 458 the REPORT body that can be contained within a REPORT command 459 request, or that no report package body is required. This section 460 indicates the location of detailed syntax definitions and semantics 461 for the appropriate body types. 463 When operating as Control Server, the MS sends REPORT bodies with the 464 MIME media type defined in Section 8.4 and containing a 465 element (Section 4.1) with a response child element. The response 466 element for dialog management requests is a element 467 (Section 4.2.4). The response element for an audit request is a 468 element (Section 4.4.2). 470 3.6. Audit 472 The Control Framework encourages Control Packages to specify whether 473 auditing is available, how it is triggered as well as the query/ 474 response formats. 476 This Control Packages supports auditing of package capabilities and 477 dialogs on the MS. An audit request is carried in a CONTROL message 478 (see Section 3.4) and an audit response in a REPORT message (or a 200 479 response to the CONTROL if it can execute the audit in time) (see 480 Section 3.5). 482 The syntax and semantics of audit request and response elements is 483 defined in Section 4.4. 485 3.7. Examples 487 The Control Framework recommends Control Packages to provide a range 488 of message flows that represent common flows using the package and 489 this framework document. 491 This Control Package provides examples of such message flows in 492 Section 6. 494 4. Element Definitions 496 This section defines the XML elements for this package. The elements 497 are defined in the XML namespace specified in Section 8.2. 499 The root element is (Section 4.1). All other XML elements 500 (requests, responses and notification elements) are contained within 501 it. Child elements describe dialog management (Section 4.2) and 502 audit (Section 4.4) functionality. The IVR dialog element (contained 503 within dialog management elements) is defined in Section 4.3. 504 Response status codes are defined in Section 4.5 and type definitions 505 in Section 4.6. 507 Implementation of this control package MUST address the Security 508 Considerations described in Section 7. 510 Implementation of this control package MUST adhere to the syntax and 511 semantics of XML elements defined in this section and the schema 512 (Section 5). Since XML Schema is unable to support some types of 513 syntactic constraints (such as attribute and element co-occurrence), 514 some elements in this package specify additional syntactic 515 constraints in their textual definition. If there is a difference in 516 constraints between the XML schema and the textual description of 517 elements in this section, the textual definition takes priority. 519 The XML schema supports extensibility by allowing attributes and 520 elements from other namespaces. Implementations MAY support 521 additional capabilities by means of attributes and elements from 522 other (foreign) namespaces. Attributes and elements from foreign 523 namespaces are not described in this section. 525 Some elements in this control package contain attributes whose value 526 is a URI. These elements include: (Section 4.2.1), 527 (Section 4.2.2), (Section 4.3.1.5), 528 (Section 4.3.1.3.1), and (Section 4.3.1.4). The MS MUST 529 support one or more schemes using communication protocols suitable 530 for fetching resources (e.g. HTTP). 532 Usage examples are provided in Section 6. 534 4.1. 536 The element has the following attributes (in addition to 537 standard XML namespace attributes such as xmlns): 539 version: a string specifying the mscivr package version. The value 540 is fixed as '1.0' for this version of the package. The attribute 541 is mandatory. 543 The element has the following defined child elements, only 544 one of which can occur: 546 1. dialog management elements defined in Section 4.2: 548 prepare a dialog. See Section 4.2.1 550 start a dialog. See Section 4.2.2 552 terminate a dialog. See Section 4.2.3 554 response to a dialog request. See Section 4.2.4 556 dialog or subscription notification. See Section 4.2.5 558 2. audit elements defined in Section 4.4: 560 audit package capabilities and managed dialogs. See 561 Section 4.4.1 563 response to an audit request. See Section 4.4.2 565 For example, a request to the MS to start an IVR dialog playing a 566 prompt: 568 569 570 571 572 573 574 575 576 578 and a response from the MS that the dialog started successfully: 580 581 582 584 and finally a notification from the MS indicating that the dialog 585 exited upon completion of playing the prompt: 587 588 589 590 591 592 593 595 4.2. Dialog Management Elements 597 This section defines the dialog management XML elements for this 598 control package. These elements are divided into requests, responses 599 and notifications. 601 Request elements are sent to the MS to request a specific dialog 602 operation to be executed. The following request elements are 603 defined: 605 : prepare a dialog for later execution 607 : start a (prepared) dialog on a connection or 608 conference 610 : terminate a dialog 612 Responses from the MS describe the status of the requested operation. 613 Responses are specified in a element (Section 4.2.4) which 614 includes a mandatory attribute describing the status in terms of a 615 numeric code. Response status codes are defined in Section 4.5. The 616 MS MUST respond to a request message with a response message. If the 617 MS is not able to process the request and carry out the dialog 618 operation, the request has failed and the MS MUST indicate the class 619 of failure using an appropriate 4xx response code. Unless an error 620 response code is specified for a class of error within this section, 621 implementations follow Section 4.5 in determining the appropriate 622 status code for the response. 624 Notifications are sent from the MS to provide updates on the status 625 of a dialog or operations defined within the dialog. Notifications 626 are specified in an element (Section 4.2.5). 628 +---------+ 629 | IDLE | 630 +---------+ 631 | | 632 | | 633 /| |/ 634 | | 635 +---------+ | | +---------+ 636 +-----<--| |<--------+ +------------>| |+------>-+ 637 | +-<----|PREPARING| |STARTING | | 638 | | | | ----------->| |---->--+ | 639 | | +---------+ / +---------+ | | 640 | | | / | | | 641 | | |/200 response / /200 response| | | 642 | | | / | | | 643 | | | / | | | 644 | | | / | | | 645 V V v // v | | 646 | | +---------+ / +---------+ | | 647 | | | |--------+ +----| | | | 648 | | |PREPARED |---------+ | | STARTED | | | 649 | | | | | +--->| | | | 650 | | | |--------+| /| | | | 651 | | +---------+ || 200 response +---------+ | | 652 | | || | | | 653 | | /dialogexit notification|| | | | 654 | | (timeout) || | | | 655 | | || | | | 656 | | || | | | 657 | | || | | | 658 | | ||/ | | | 659 | | || 200 response | | | 660 | | || + |/dialogexit | | 661 | | || /dialogexit | notification | | 662 | | || notification | | | 663 | | || | | | 664 | | vv | | | 665 | | /ERROR response +-----------+ | | | 666 | +---------------------->| |<----------+ /ERROR response| | 667 +------------------------>|TERMINATED |<---------------------------+ | 668 / | |<-----------------------------+ 669 410 response +-----------+ /410 response 671 Figure 1: Dialog Lifecycle 673 The MS implementation MUST adhere to the dialog lifecycle shown in 674 Figure 1, where each dialog has the following states: 676 IDLE: the dialog is uninitialized. 678 PREPARING: the dialog is being prepared. The dialog is assigned a 679 valid dialog identifier (see below). If an error occurs the 680 dialog transitions to the TERMINATED state and the MS MUST send a 681 response indicating the error. If the dialog is terminated before 682 preparation is complete, the dialog transitions to the TERMINATED 683 state and the MS MUST send a 410 response (Section 4.5) for the 684 prepare request. 686 PREPARED: the dialog has been successfully prepared and the MS MUST 687 send a 200 response indicating the prepare operation was 688 successful. If the dialog is terminated, then the MS MUST send a 689 200 response, the dialog transitions to the TERMINATED state and 690 the MS MUST send a dialogexit notification event (see 691 Section 4.2.5.1). If the duration the dialog remains in the 692 PREPARED state exceeds the maximum preparation duration, the 693 dialog transitions to the TERMINATED state and the MS MUST send a 694 dialogexit notification with the appropriate error status code 695 (see Section 4.2.5.1). A maximum preparation duration of 300s is 696 RECOMMENDED. 698 STARTING: the dialog is being started. If the dialog has not 699 already been prepared, it is first prepared and assigned a valid 700 dialog identifier (see below). If an error occurs the dialog 701 transitions to the TERMINATED state and the MS MUST send a 702 response indicating the error. If the dialog is terminated, the 703 dialog transitions to the TERMINATED state and the MS MUST send a 704 410 response (Section 4.5) for the start request. 706 STARTED: the dialog has been successfully started and is now active. 707 The MS MUST send a 200 response indicating the start operation was 708 successful. If any dialog events occurs which were subscribed to, 709 the MS MUST send a notifications when the dialog event occurs. 710 When the dialog exits (due to normal termination, an error or a 711 terminate request), the MS MUST send a dialogexit notification 712 event (see Section 4.2.5.1) and the dialog transitions to the 713 TERMINATED state. 715 TERMINATED: the dialog is terminated and its dialog identifier is no 716 longer valid. Dialog notifications MUST NOT be sent for this 717 dialog. 719 Each dialog has a valid identifier until it transitions to a 720 TERMINATED state. The dialog identifier is assigned by the MS unless 721 the or request already specifies a 722 identifier (dialogid) which is not associated with any other dialog 723 on the MS. Once a dialog is in a TERMINATED state, its dialog 724 identifier is no longer valid and can be reused for another dialog. 726 The identifier is used to reference the dialog in subsequent 727 requests, responses and notifications. In a request, 728 the dialog identifier can be specified in the prepareddialogid 729 attribute indicating the prepared dialog to start. In 730 and requests, the dialog identifier is 731 specified in the dialogid attribute, indicating which dialog is to be 732 terminated or audited respectively. If these requests specify a 733 dialog identifier already associated with another dialog on the MS, 734 the MS sends a response with a 405 status code (see Section 4.5) and 735 the same dialogid as in the request. The MS MUST specify a dialog 736 identifier in notifications associated with the dialog. The MS MUST 737 specify a dialog identifier in responses unless it is a response to a 738 syntactically invalid request. 740 For a given dialog, the or request 741 elements specify the dialog content to execute either by including 742 inline a element (the dialog language defined in this 743 package, see Section 4.3) or by referencing an external dialog 744 document (a dialog language defined outside this package). When 745 referencing an external dialog document, the request element contains 746 a URI reference to the remote document (specifying the dialog 747 definition) and, optionally, a type attribute indicating the MIME 748 media type associated with the dialog document. Consequently, the 749 dialog language associated with a dialog on the MS is identified 750 either inline by a child element or by a src attribute 751 referencing a document containing the dialog language. The MS MUST 752 support inline the IVR dialog language defined in Section 4.3. The 753 MS MAY support other dialog languages by reference. 755 4.2.1. 757 The request is sent to the MS to request preparation 758 of a dialog. Dialog preparation consists of (a) retrieving an 759 external dialog document and/or external resources referenced within 760 an inline element, and (b) validating the dialog document 761 syntactically and semantically. 763 A prepared dialog is executed when the MS receives a 764 request referencing the prepared dialog identifier (see 765 Section 4.2.2). 767 The element has the following attributes: 769 src: specifies the location of an external dialog document to 770 prepare. A valid value is a URI (see Section 4.6.9) including 771 authentication information if defined by the URI scheme (e.g. 772 basic access authentication in HTTP). If the URI scheme is 773 unsupported, the MS sends a with a 420 status code 774 (Section 4.5). If the document cannot be retrieved within the 775 timeout interval, the MS sends a with a 409 status 776 code. If the document contains a type of dialog language which 777 the MS does not supported, the MS sends a with a 421 778 status code. The attribute is optional. There is no default 779 value. 781 type: specifies the type of the external dialog document indicated 782 in the 'src' attribute. A valid value is a MIME media type (see 783 Section 4.6.10). If the URI scheme used in the src attribute 784 defines a mechanism for establishing the authoratitive MIME media 785 type of the media resource, the value returned by that mechanism 786 takes precedence over this attribute. The attribute is optional. 787 There is no default value. 789 maxage: Used to set the max-age value of the Cache-Control header in 790 conjunction with an external dialog document fetched using HTTP, 791 as per [RFC2616]. A valid value is a non-negative integer (see 792 Section 4.6.4). The attribute is optional. There is no default 793 value. 795 maxstale: Used to set the max-stale value of the Cache-Control 796 header in conjunction with an external dialog document fetched 797 using HTTP, as per [RFC2616]. A valid value is a non-negative 798 integer (see Section 4.6.4). The attribute is optional. There is 799 no default value. 801 fetchtimeout: the maximum timeout interval to wait when fetching an 802 external dialog document. A valid value is a Time Designation 803 (see Section 4.6.7). The attribute is optional. The default 804 value is 30s. 806 dialogid: string indicating a unique name for the dialog. If a 807 dialog with the same name already exists on the MS, the MS sends a 808 with a 405 status code (Section 4.5). If this 809 attribute is not specified, the MS MUST create a unique name for 810 the dialog (see Section 4.2 for dialog identifier assignment). 811 The attribute is optional. There is no default value. 813 The element has the following sequence of child 814 elements: 816 an IVR dialog (Section 4.3) to prepare. The element is 817 optional. 819 : specifies input parameters (Section 4.2.6) for dialog 820 languages defined outside this specification. The element is 821 optional. If a parameter is not supported by the MS for the 822 external dialog language, the MS sends a with a 427 823 status code (Section 4.5). 825 The dialog to prepare can either be specified inline with a 826 child element or externally (for dialog languages defined outside 827 this specification) using the src attribute. It is a syntax error if 828 both an inline element element and a src attribute are 829 specified and the MS sends a with a 400 status code (see 830 Section 4.5). The type, maxage, maxstale and fetchtimeout attributes 831 are only relevant when a dialog is specified as an external document. 833 For example, a request to prepare an inline IVR 834 dialog with a single prompt: 836 837 838 839 840 841 842 843 844 846 In this example, a request with a specified dialogid to prepare a 847 VoiceXML dialog document located externally: 849 850 853 855 Since MS support for dialog languages other than the IVR dialog 856 language defined in this package is optional, if the MS does not 857 support the dialog language it would send a response with the status 858 code 409 (Section 4.5). Further information on using VoiceXML can be 859 found in Section 12. 861 4.2.2. 863 The element is sent to the MS to start a dialog. If 864 the dialog has not been prepared, the dialog is prepared (retrieving 865 external document and/or external resources referenced within 866 element, and the dialog document validated syntactically and 867 semantically). Media processors (e.g. DTMF and prompt queue) are 868 activated and associated with the specified connection or conference. 870 The element has the following attributes: 872 src: specifies the location of an external dialog document to start. 873 A valid value is a URI (see Section 4.6.9) including 874 authentication information if defined by the URI scheme (e.g. 875 basic access authentication in HTTP). If the URI scheme is 876 unsupported, the MS sends a with a 420 status code 877 (Section 4.5). If the document cannot be retrieved with the 878 timeout interval, the MS sends a with a 409 status 879 code. If the document contains a type of dialog language which 880 the MS does not supported, the MS sends a with a 421 881 status code. The attribute is optional. There is no default 882 value. 884 type: specifies the type of the external dialog document indicated 885 in the 'src' attribute. A valid value is a MIME media type (see 886 Section 4.6.10). If the URI scheme used in the src attribute 887 defines a mechanism for establishing the authoratitive MIME media 888 type of the media resource, the value returned by that mechanism 889 takes precedence over this attribute. The attribute is optional. 890 There is no default value. 892 maxage: Used to set the max-age value of the Cache-Control header in 893 conjunction with an external dialog document fetched using HTTP, 894 as per [RFC2616]. A valid value is a non-negative integer (see 895 Section 4.6.4). The attribute is optional. There is no default 896 value. 898 maxstale: Used to set the max-stale value of the Cache-Control 899 header in conjunction with an external dialog document fetched 900 using HTTP, as per [RFC2616]. A valid value is a non-negative 901 integer (see Section 4.6.4). The attribute is optional. There is 902 no default value. 904 fetchtimeout: the maximum timeout interval to wait when fetching an 905 external dialog document. A valid value is a Time Designation 906 (see Section 4.6.7). The attribute is optional. The default 907 value is 30s. 909 dialogid: string indicating a unique name for the dialog. If a 910 dialog with the same name already exists on the MS, the MS sends a 911 with a 405 status code (Section 4.5). If neither the 912 dialogid attribute nor the prepareddialogid attribute is 913 specified, the MS MUST create a unique name for the dialog (see 914 Section 4.2 for dialog identifier assignment). The attribute is 915 optional. There is no default value. 917 prepareddialogid: string identifying a dialog previously prepared 918 using a dialogprepare (Section 4.2.1) request. If neither the 919 dialogid attribute nor the prepareddialogid attribute is 920 specified, the MS MUST create a unique name for the dialog (see 921 Section 4.2 for dialog identifier assignment). The attribute is 922 optional. There is no default value. 924 connectionid: string identifying the SIP dialog connection on which 925 this dialog is to be started (see Section 16.1 of 926 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 927 optional. There is no default value. 929 conferenceid: string identifying the conference on which this dialog 930 is to be started (see Section 16.1 of 931 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 932 optional. There is no default value. 934 Exactly one of the connectionid or conferenceid attributes MUST be 935 specified. If both connectionid and conferenceid attributes are 936 specified or neither are specified, it is a syntax error and the MS 937 sends a with a 400 status code (Section 4.5). 939 It is an error if the connection or conference referenced by a 940 specific connectionid or conferenceid attribute is not available on 941 the MS at the time the request is executed. If an 942 invalid connectionid is specified, the MS sends a with a 943 407 status code (Section 4.5). If an invalid conferenceid is 944 specified, the MS sends a with a 408 status code. 946 The element has the following sequence of child 947 elements: 949 : specifies an IVR dialog (Section 4.3) to execute. The 950 element is optional. 952 : specifies subscriptions to dialog events 953 (Section 4.2.2.1). The element is optional. 955 : specifies input parameters (Section 4.2.6) for dialog 956 languages defined outside this specification. The element is 957 optional. If a parameter is not supported by the MS for the 958 external dialog language, the MS sends a with a 427 959 status code (Section 4.5). 961 : determines the media stream(s) associated with the 962 connection or conference on which the dialog is executed 963 (Section 4.2.2.2). The element is optional. Multiple 964 elements can be specified. 966 The dialog to start can be specified either (a) inline with a 967 child element, or (b) externally using the src attribute 968 (for dialog languages defined outside this specification), or (c) 969 reference a previously prepared dialog using the prepareddialogid 970 attribute. If exactly one of the src attribute, the prepareddialogid 971 or a child element is not specified, it is a syntax error 972 and the MS sends a with a 400 status code (Section 4.5). 973 If the prepareddialogid and dialogid attributes are specified, it is 974 also a syntax error and the MS sends a with a 400 status 975 code. The type, maxage, maxstale and fetchtimeout attributes are 976 only relevant when a dialog is specified as an external document. 978 The element provides explicit control over which media 979 streams on the connection or conference are used during dialog 980 execution. For example, if a connection supports both audio and 981 video streams, a element could be used to indicate that only 982 the audio stream is used in receive mode. In cases where there are 983 multiple media streams of the same type for a dialog, the AS MUST use 984 elements to explicitly specify the configuration. If no 985 elements are specified, then the default media configuration 986 is that defined for the connection or conference. 988 If a element is in conflict with (a) another 989 element, (b) with specified connection or conference media 990 capabilities, (c) with a SDP label value as part of the connectionid 991 (see Section 16.1 of [I-D.ietf-mediactrl-sip-control-framework]) then 992 the MS sends a with a 411 status code (Section 4.5). If 993 the media stream configuration is not supported by the MS, then the 994 MS sends a with a 428 status code (Section 4.5). 996 The MS MAY support multiple, simultaneous dialogs being started on 997 the same connection or conference. For example, the same connection 998 can receive different media streams (e.g. audio and video) from 999 different dialogs, or receive (and implicitly mix where appropriate) 1000 the same type of media streams from different dialogs. If the MS 1001 does not support starting another dialog on the same connection or 1002 conference, it sends a with a 432 status code 1003 (Section 4.5) when it receives the second (or subsequent) dialog 1004 request. 1006 For example, a request to start an ivr dialog on a connection 1007 subscribing to DTMF notifications: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1023 In this example, the dialog is started on a conference where the 1024 conference only receives an audio media stream from the dialog: 1026 1027 1028 1029 1030 1031 1032 1034 4.2.2.1. 1036 The element allows the AS to subscribe to, and be 1037 notified of, specific events which occur during execution of the 1038 dialog. Notifications of dialog events are delivered using the 1039 element (see Section 4.2.5). 1041 The element has no attributes. 1043 The element has the following sequence of child elements 1044 (0 or more occurrences): 1046 : Subscription to DTMF input during the dialog 1047 (Section 4.2.2.1.1). The element is optional. 1049 If a request has with no child elements, the MS treats 1050 the request as if no element was specified. 1052 The MS MUST support subscription for the IVR dialog 1053 language defined in this specification (Section 4.3). It MAY support 1054 other dialog subscriptions (specified using attributes and child 1055 elements from a foreign namespace). If the MS does not support a 1056 subscription specified in a foreign namespace, the MS sends a 1057 response with a 431 status code (see Section 4.5). 1059 4.2.2.1.1. 1061 The element has the following attributes: 1063 matchmode: controls which DTMF input are subscribed to. Valid 1064 values are: "all" - notify all DTMF key presses received during 1065 the dialog; "collect" - notify only DTMF input matched by the 1066 collect operation (Section 4.3.1.3); and "control" - notify only 1067 DTMF input matched by the runtime control operation 1068 (Section 4.3.1.2). The attribute is optional. The default value 1069 is "all". 1071 The element has no child elements. 1073 DTMF notifications are delivered in the element 1074 (Section 4.2.5.2). 1076 For example, the AS wishes to subscribe to DTMF key press matching a 1077 runtime control: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1093 Each time a '2' or '3' DTMF input is received, the MS sends a 1094 notification event: 1096 1097 1098 1100 1101 1103 4.2.2.2. 1105 The element has the following attributes: 1107 media: a string indicating the type of media associated with the 1108 stream. The following values MUST be used for common types of 1109 media: "audio" for audio media, and "video" for video media. The 1110 attribute is mandatory. 1112 label: a string indicating the SDP label associated with a media 1113 stream ([RFC4574]). The attribute is optional. 1115 direction: a string indicating the direction of the media flow 1116 relative to the endpoint conference or connection. Defined values 1117 are: "sendrecv" (the endpoint can send media to, and receive media 1118 from, the dialog), "sendonly" (the endpoint can only send media to 1119 the dialog), "recvonly" (the endpoint can only receive media from 1120 the dialog) and "inactive" (stream is not to be used). The 1121 default value is "sendrecv". The attribute is optional. 1123 The element has the following sequence of child elements: 1125 : an element to specify the region within a mixer video 1126 layout where a media stream is displayed (Section 4.2.2.2.1). The 1127 element is optional. 1129 : an element to configure priority associated with the 1130 stream in the conference mix (Section 4.2.2.2.2). The element is 1131 optional. 1133 If conferenceid is not specified or if the "media" attribute does not 1134 have the value of "video", then the MS ignores the and 1135 elements. 1137 For example, assume a user agent connection with multiple audio and 1138 video streams associated with the user and a separate web camera. In 1139 this case, the dialog could be started to record only the audio and 1140 video streams associated with the user: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1153 Using the element, the dialog can be started on a conference 1154 mixer so that the video output from the dialog is directed to a 1155 specific region within a video layout. For example: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1 1166 1167 1169 4.2.2.2.1. 1171 The element is used to specify the region within a video 1172 layout where a video media stream is displayed. 1174 The element has no attributes and its content model 1175 specifies the name of the region layout. 1177 If the region name is invalid, then the MS reports a 416 status code 1178 (Section 4.5) in the response to the request element containing the 1179 element. 1181 4.2.2.2.2. 1183 The element is used to explicitly specify the priority of 1184 the dialog for presentation in a conference mix. 1186 The element has no attributes and its content model 1187 specifies a positive integer (see Section 4.6.5). The lower the 1188 value, the higher the priority. 1190 4.2.3. 1192 A dialog can be terminated by sending a request 1193 element to the MS. 1195 The element has the following attributes: 1197 dialogid: string identifying the dialog to terminate. If the 1198 specified dialog identifier is invalid, the MS sends a response 1199 with a 405 status code (Section 4.5). The attribute is mandatory. 1201 immediate: indicates whether a dialog in the STARTED state is to be 1202 terminated immediately or not (in other states, termination is 1203 always immediate). A valid value is a boolean (see 1204 Section 4.6.1). A value of true indicates that the dialog is 1205 terminated immediately and the MS MUST send a dialogexit 1206 notification (Section 4.2.5.1) without report information. A 1207 value of false indicates that the dialog terminates after the 1208 current iteration and the MS MUST send a dialogexit notification 1209 with report information. The attribute is optional. The default 1210 value is false. 1212 The MS MUST reply to request with a 1213 element (Section 4.2.4), reporting whether the dialog was terminated 1214 successful or not. 1216 For example, immediately terminating a STARTED dialog with dialogid 1217 "d4": 1219 1220 1221 1223 If the dialog is terminated successfully, then the response to the 1224 dialogterminate request would be: 1226 1227 1228 1230 4.2.4. 1232 Responses to dialog management requests are specified with a 1233 element. 1235 The element has following attributes: 1237 status: numeric code indicating the response status. Valid values 1238 are defined in Section 4.5. The attribute is mandatory. 1240 reason: string specifying a reason for the response status. The 1241 attribute is optional. There is no default value. 1243 dialogid: string identifying the dialog. If the request specifies a 1244 dialogid, then that value is used. Otherwise, with 1245 and requests, the dialogid generated 1246 by the MS is used. If there is no available dialogid because the 1247 request is syntactically invalid (e.g. a request 1248 with no dialogid attribute specified), then the value is the empty 1249 string. The attribute is mandatory. 1251 connectionid: string identifying the SIP dialog connection 1252 associated with the dialog (see Section 16.1 of 1253 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1254 optional. There is no default value. 1256 conferenceid: string identifying the conference associated with the 1257 dialog (see Section 16.1 of 1258 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1259 optional. There is no default value. 1261 For example, a response when a dialog was prepared successfully: 1263 1264 1265 1267 The response if dialog preparation failed due to an unsupported 1268 dialog language: 1270 1271 1273 1275 In this example a request does not specify a 1276 dialogid: 1278 1279 1280 1282 The response status indicates a 400 (Syntax error) status code and 1283 dialogid attribute has an empty string value: 1285 1286 1288 1290 4.2.5. 1292 When a dialog generates a notification event, the MS sends the event 1293 using an element. 1295 The element has the following attributes: 1297 dialogid: string identifying the dialog which generated the event. 1298 The attribute is mandatory. 1300 The element has the following child elements, only one of 1301 which can occur: 1303 : indicates that the dialog has exited 1304 (Section 4.2.5.1). 1306 : indicates that a DTMF key press occurred 1307 (Section 4.2.5.2). 1309 4.2.5.1. 1311 The event indicates that a prepared or active dialog has 1312 exited because it is complete, has been terminated, or because an 1313 error occurred during execution (for example, a media resource cannot 1314 be played). This event MUST be sent by the MS when the dialog exits. 1316 The element has the following attributes: 1318 status: a status code indicating the status of the dialog when it 1319 exits. A valid value is a non-negative integer (see 1320 Section 4.6.4). The MS MUST support the following values: 1322 0 indicates the dialog has been terminated by a 1323 request. 1325 1 indicates successful completion of the dialog. 1327 2 indicates the dialog terminated because the connection or 1328 conference associated with the dialog has terminated. 1330 3 indicates the dialog terminated due to exceeding its maximum 1331 duration. 1333 4 indicates the dialog terminated due to an execution error. 1335 All other valid but undefined values are reserved for future use, 1336 where a standards-track RFC is required to define new status 1337 codes. The AS MUST treat any status code it does not recognize as 1338 being equivalent to 4 (dialog execution error). The attribute is 1339 mandatory. 1341 reason: a textual description which the MS SHOULD use to provide a 1342 reason for the status code; e.g. details about an error. A valid 1343 value is a string (see Section 4.6.6). The attribute is optional. 1344 There is no default value. 1346 The element has the following sequence of child 1347 elements: 1349 : report information (Section 4.3.2.1) about the prompt 1350 execution in an IVR . The element is optional. 1352 : reports information (Section 4.3.2.2) about the 1353 control execution in an IVR . The element is optional. 1355 : reports information (Section 4.3.2.3) about the 1356 collect execution in an IVR . The element is optional. 1358 : reports information (Section 4.3.2.4) about the record 1359 execution in an IVR . The element is optional. 1361 : reports exit parameters (Section 4.2.6) for a dialog 1362 language defined outside this specification. The element is 1363 optional. 1365 For example, an active exits normally the MS sends a 1366 dialogexit reporting information: 1368 1369 1370 1371 1372 1373 1374 1376 4.2.5.2. 1378 The element provide a notification of DTMF input 1379 received during the active dialog as requested by a 1380 subscription (Section 4.2.2.1). 1382 The element has the following attributes: 1384 matchmode: indicates the matching mode specified in the subscription 1385 request. Valid values are: "all" - all DTMF key presses notified 1386 individually; "collect" - only DTMF input matched by the collect 1387 operation notified; and "control" - only DTMF input matched by the 1388 control operation notified. The attribute is optional. The 1389 default value is "all". 1391 dtmf: DTMF key presses received according to the matchmode. A valid 1392 value is a DTMF string (see Section 4.6.3) with no space between 1393 characters. The attribute is mandatory. 1395 timestamp: indicates the time (on the MS) at which the last key 1396 press occurred according to the matchmode. A valid value is a 1397 dateTime expression (Section 4.6.12). The attribute is mandatory. 1399 For example, a notification of DTMF input matched during the collect 1400 operation: 1402 1403 1404 1406 /event> 1407 1409 4.2.6. 1411 The element is a container for elements 1412 (Section 4.2.6.1). 1414 The element has no attributes, but the following child 1415 elements are defined (0 or more): 1417 : specifies a parameter name and value (Section 4.2.6.1). 1419 For example, usage with a dialog language defined outside this 1420 specification to send additional parameters into the dialog: 1422 1423 1425 1426 playannouncement 1427 nfs://nas01/media1.3gp 1428 nfs://nas01/media2.3gp 1429 1430 1431 1433 4.2.6.1. 1435 The element describes a parameter name and value. 1437 The element has the following attributes: 1439 name: a string indicating the name of the parameter. The attribute 1440 is mandatory. 1442 type: specifies a type indicating how the inline value of the 1443 parameter is to be interpreted. A valid value is a MIME media 1444 type (see Section 4.6.10). The attribute is optional. The 1445 default value is "text/plain". 1447 The element content model (text and/or XML) is the value of 1448 the parameter. Values in XML format MUST use a namespace other than 1449 the one used in this specification. Note that a text value which 1450 contains XML characters (e.g. "<") needs to be escaped following 1451 standard XML conventions. 1453 For example, usage with a dialog language defined outside this 1454 specification to receive parameters from the dialog when it exits: 1456 1457 1458 1459 1460 recording 1461 1463 1467 1468 1469 1470 1471 1473 4.3. IVR Dialog Elements 1475 This section describes the IVR dialog language defined as part of 1476 this specification. The MS MUST support this dialog language. 1478 The element is an execution container for operations of 1479 playing prompts (Section 4.3.1.1), runtime controls 1480 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1481 user input (Section 4.3.1.4. Results of the dialog execution 1482 (Section 4.3.2) are reported in a dialogexit notification event. 1484 Using these elements, three common dialog models are supported: 1486 playannouncements: only a element is specified in the 1487 container. The prompt media resources are played in sequence. 1489 promptandcollect: a element is specified and, optionally, 1490 a element. If a element is specified and 1491 bargein is enabled, playing of the prompt is terminated when 1492 bargein occurs, and DTMF collection is initiated; otherwise, the 1493 prompt is played to completion before DTMF collection is 1494 initiated. If no prompt element is specified, DTMF collection is 1495 initiated immediately. 1497 promptandrecord: a element is specified and, optionally, a 1498 element. If a element is specified and bargein 1499 is enabled, playing of the prompt is terminated when bargein 1500 occurs, and recording is initiated; otherwise, the prompt is 1501 played to completion before recording is initiated. If no prompt 1502 element is specified, recording is initiated immediately. 1504 In addition, this dialog language supports runtime ('VCR') controls 1505 enabling a user to control prompt playback using DTMF. 1507 Each of the core elements - , , and 1508 - are specified so that their execution and reporting is 1509 largely self-contained. This facilitates their re-use in other 1510 dialog container elements. Note that DTMF and bargein behavior 1511 affects multiple elements and is addressed in the relevant element 1512 definitions. 1514 Execution results are reported in the notification event 1515 with child elements defined in Section 4.3.2. If the dialog 1516 terminated normally (i.e. not due to an error or to a 1517 request), then the MS MUST report the results for 1518 the operations specified in the dialog: 1520 : (see Section 4.3.2.1) with at least the 1521 termmode attribute specified. 1523 : (see Section 4.3.2.2) if any runtime 1524 controls are matched. 1526 : (see Section 4.3.2.3) with the dtmf and 1527 termmode attributes specified. 1529 : (see Section 4.3.2.4) with at least the 1530 termmode attribute and one element specified. 1532 The media format requirements for IVR dialogs are undefined. This 1533 package is agnostic to the media types and codecs for media resources 1534 and recording which need to be supported by an implementation. For 1535 example, a MS implementation might only support audio and in 1536 particular the 'audio/basic' codec for media playback and recording. 1537 However, when executing a dialog, if an MS encounters a media type or 1538 codec which it cannot process, the MS MUST stop further processing 1539 and report the error using the dialogexit notification. 1541 4.3.1. 1543 An IVR dialog to play prompts to the user, allow runtime controls, 1544 collect DTMF or record input. The dialog is specified using a 1545 element. 1547 A element has the following attributes: 1549 repeatCount: number of times the dialog is to be executed. A valid 1550 value is a non-negative integer (see Section 4.6.4). A value of 0 1551 indicates that the dialog is repeated until halted by other means. 1552 The attribute is optional. The default value is 1. 1554 repeatDur: maximum duration for dialog execution. A valid value is 1555 a Time Designation (see Section 4.6.7). If no value is specified, 1556 then there is no limit on the duration of the dialog. The 1557 attribute is optional. There is no default value. 1559 repeatUntilComplete: indicates whether the MS terminates dialog 1560 execution when an input operation is completed successfully. A 1561 valid value is a boolean (see Section 4.6.1). A value of true 1562 indicates that dialog execution is terminated when an input 1563 operation associated with its child elements is completed 1564 sucessfully (see execution model below for precise conditions). A 1565 value of false indicates that dialog execution is terminated by 1566 other means. The attribute is optional. The default value is 1567 false. 1569 The repeatDur attribute takes priority over the repeatCount attribute 1570 in determining maximum duration of the dialog. See 'repeatCount' and 1571 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1572 information. In the situation where a dialog is repeated more than 1573 once, only the results of operations in the last dialog iteration are 1574 reported. 1576 The element has the following sequence of child elements (at 1577 least one, any order): 1579 : defines media resources to play in sequence (see 1580 Section 4.3.1.1). The element is optional. 1582 : defines how DTMF is used for runtime controls (see 1583 Section 4.3.1.2). The element is optional. 1585 : defines how DTMF is collected (see Section 4.3.1.3). The 1586 element is optional. 1588 : defines how recording takes place (see Section 4.3.1.4). 1589 The element is optional. 1591 Although the behavior when both and elements are 1592 specified in a request is not defined in this control package, the MS 1593 MAY support this configuration. If the MS does not support this 1594 configuration, the MS sends a with a 433 status code. 1596 The MS has the following execution model for the IVR dialog after 1597 initialization (initialization errors are reported by the MS in the 1598 response): 1600 1. If an error occurs during execution, then the MS terminates the 1601 dialog and reports the error in the event by setting 1602 the status attribute (see Section 4.3.2). Details about the 1603 error are specified in the reason attribute. 1605 2. The MS initializes a counter to 0. 1607 3. The MS starts a duration timer for the value of the repeatDur 1608 attribute. If the timer expires before the dialog is complete, 1609 then the MS terminates the dialog and sends a dialogexit whose 1610 status attribute is set to 3 (see Section 4.2.5.1). The MS MAY 1611 report information in the dialogexit gathered in the last 1612 execution cycle (if any). 1614 4. The MS initiates a dialog execution cycle. Each cycle executes 1615 the operations associated with the child elements of the dialog. 1616 If a element is specified, then execute the element's 1617 prompt playing operation and activate any controls (if the 1618 element is specified). If no is specified or 1619 when a specified terminates, then start the collect 1620 operation or the record operation if the or 1621 elements respectively are specified. If subscriptions are 1622 specified for the dialog, then the MS sends a notification event 1623 when the specified event occurs. If execution of a child element 1624 results in an error, the MS terminates dialog execution (and 1625 stops other child element operations) and the MS sends a 1626 dialogexit status event, reporting any information gathered. 1628 5. If the dialog execution cycle completes successfully, then the MS 1629 increments the counter by one. The MS terminates dialog 1630 execution if either of the following conditions is true: 1632 * the value of the repeatCount attribute is greater than zero 1633 and the counter is equal to the value of the repeatCount 1634 attribute 1636 * the value of the repeatUntilComplete attribute is true and one 1637 of the following conditions is true: 1639 + reports termination status of 'match' or 1640 'stopped'. 1642 + reports termination status of 'stopped', 'dtmf', 1643 'maxtime' or 'finalsilence'. 1645 When the MS terminates dialog execution, it sends a dialogexit 1646 (with a status of 1) reporting operation information collected in 1647 the last dialog execution cycle only. Otherwise, another dialog 1648 execution cycle is initiated. 1650 4.3.1.1. 1652 The element specifies a sequence of media resources to play 1653 back in document order. 1655 A element has the following attributes: 1657 xml:base: A string declaring the base URI from which relative URIs 1658 in child elements are resolved prior to fetching. A valid value 1659 is a URI (see Section 4.6.9). The attribute is optional. There 1660 is no default value. 1662 bargein: Indicates whether user input stops prompt playback unless 1663 the input is associated with a specified runtime 1664 operation (input matching control operations never interrupts 1665 prompt playback). A valid value is a boolean (see Section 4.6.1). 1666 A value of true indicates that bargein is permitted and prompt 1667 playback is stopped. A value of false indicates that bargein is 1668 not permitted: user input does not terminate prompt playback. The 1669 attribute is optional. The default value is true. 1671 The element has the following child elements (at least one, 1672 any order, multiple occurrences of elements permitted): 1674 : specifies a media resource (see Section 4.3.1.5) to play. 1675 The element is optional. 1677 : specifies a variable media announcement (see 1678 Section 4.3.1.1.1) to play. The element is optional. 1680 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1681 play. The element is optional. 1683 : specifies media resources to play in parallel (see 1684 Section 4.3.1.1.3). The element is optional. 1686 If the MS does not support the configuration required for prompt 1687 playback to the output media streams and a more specific error code 1688 is not defined for its child elements, the MS sends a with 1689 a 429 status code (Section 4.5). The MS MAY support transcoding 1690 between the media resource format and the output stream format. 1692 The MS has the following execution model for prompt playing after 1693 initialization: 1695 1. The MS initiates prompt playback playing its child elements 1696 (, , and ) one after another in 1697 document order. 1699 2. If any error (including fetching and rendering errors) occurs 1700 during prompt execution, then the MS terminates playback and 1701 reports its error status to the dialog container (see 1702 Section 4.3) with a (see Section 4.3.2.1) where the 1703 termmode attribute is set to stopped and any additional 1704 information is set. 1706 3. If DTMF input is received and the value of the bargein attribute 1707 is true, then the MS terminates prompt playback and reports its 1708 execution status to the dialog container (see Section 4.3) with a 1709 (see Section 4.3.2.1) where the termmode attribute 1710 is set to bargein and any additional information is set. 1712 4. If prompt playback is stopped by the dialog container, then the 1713 MS reports its execution status to the dialog container (see 1714 Section 4.3) with a (see Section 4.3.2.1) where the 1715 termmode attribute is set to stopped and any additional 1716 information is set. 1718 5. If prompt playback completes successfully, then the MS reports 1719 its execution status to the dialog container (see Section 4.3) 1720 with a (see Section 4.3.2.1) where the termmode 1721 attribute is set to completed and any additional information is 1722 set. 1724 4.3.1.1.1. 1726 The element specifies variable announcements using 1727 predefined media resources. Each variable has at least a type (e.g. 1728 date) and a value (e.g. 2008-02-25). The value is rendered according 1729 to the variable type (e.g. 25th February 2008) as well as other 1730 defined attributes. The precise mechanism for generating variable 1731 announcements (including the location of associated media resources) 1732 is implementation specific. 1734 A element has the following attributes: 1736 value: specifies the string to be rendered. A valid value is a 1737 string (see Section 4.6.6). The attribute is mandatory. 1739 type: specifies the type to use for rendering. A valid value is a 1740 string (see Section 4.6.6). The attribute is mandatory. 1742 format: specifies format information to use in conjunction with the 1743 type for the rendering. A valid value is a string (see 1744 Section 4.6.6). The attribute is optional. There is no default 1745 value. 1747 gender: specifies the gender to use when rendering the variable. 1748 Valid values are "male" or "female". The attribute is optional. 1749 There is no default value. 1751 xml:lang: specifies the language to use when rendering the variable. 1752 A valid value is a language identifier (see Section 4.6.11). The 1753 attribute is optional. There is no default value. 1755 The element has no children. 1757 This package is agnostic to which values, types and 1758 formats are supported by an implementation. If a element 1759 configuration specified in a request is not supported by the MS, the 1760 MS sends a with a 425 status code (Section 4.5). 1762 For example, the MS could support type/format combinations 1763 such as: 1765 type=date Supported formats: "mdy" (month day year), "ymd" (year 1766 month day), "dym" (day month year), "dm" (day month). The value 1767 attribute has the format YYYY-MM-DD (4 digit year, 2 digit month, 1768 2 digit day). 1770 type=time Supported formats: "t12" (12 hour format with am/pm), 1771 "t24" (24 hour format). The value attribute has the format HH:MM 1772 (2 digit hours, 2 digit minutes). 1774 type=digits Supported formats: "gen" (general digit string), "crn" 1775 (cardinal), "ord" (ordinal). The value attribute has the format 1776 of "D+" (one or more digits). 1778 This specification is agnostic to the type and codec of media 1779 resources into which variable are rendered as well as the rendering 1780 mechanism itself. For example, an MS implementation supporting audio 1781 rendering could map the into one or more audio media 1782 resources. 1784 Depending on the specific implementation of the rendering 1785 on the MS, execution of this element can be seen as conversion of a 1786 into a list of elements. For example, 1787 1790 could be transformed into audio saying "twenty-fifth of February two 1791 thousand and eight" using a list of resources: 1793 1794 1795 1796 1797 1798 1800 4.3.1.1.2. 1802 The element specifies a sequence of DTMF tones for output. 1804 DTMF tones could be generated using resources where the 1805 output is transported as RTP audio packets. However, 1806 resources are not sufficient for cases where DTMF tones are to be 1807 transported as DTMF RTP ([RFC4733]) or in event packages. 1809 A element has the following attributes: 1811 digits: specifies the DTMF sequence to output. A valid value is a 1812 DTMF string (see Section 4.6.3). The attribute is mandatory. 1814 level: used to define the power level for which the DTMF tones will 1815 be generated. Values are expressed in dBm0. A valid value is an 1816 integer in the range of 0 to -96 (dBm0). Larger negative values 1817 express lower power levels. Note that values lower than -55 dBm0 1818 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1819 The attribute is optional. The default value is -6 (dBm0). 1821 duration: specifies the duration for which each DTMF tone is 1822 generated. A valid value is a time designation (see 1823 Section 4.6.7). The MS MAY round the value if it only supports 1824 discrete durations. The attribute is optional. The default value 1825 is 100ms. 1827 interval: specifies the duration of a silence interval following 1828 each generated DTMF tone. A valid value is a time designation 1829 (see Section 4.6.7). The MS MAY round the value if it only 1830 supports discrete durations. The attribute is optional. The 1831 default value is 100ms. 1833 The element has no children. 1835 If a element configuration is not supported, the MS sends a 1836 with a 426 status code (Section 4.5). 1838 4.3.1.1.3. 1840 The element allows media resources to be played in parallel. 1841 Each of its child elements specify a media resource (or a sequence of 1842 media resources using the element). When playback of the 1843 element is initiated, the MS begins playback of all its child 1844 elements at the same time. This element is modeled after the 1845 element in SMIL ([W3C.REC-SMIL2-20051213]). 1847 The element has the following attributes: 1849 endsync: indicates when playback of the element is complete. Valid 1850 values are: "first" - indicates that the element is complete when 1851 any child element reports that it is complete; "last" - indicates 1852 it is complete when every child elements are complete. The 1853 attribute is optional. The default value is "last". 1855 If the value is "first", then playback of other child element is 1856 stopped when one child element reports it is complete. 1858 The element has the following child elements (at least one, any 1859 order, multiple occurrences of each element permitted): 1861 : specifies a sequence of media resources to play in a parallel 1862 with other child elements (see Section 4.3.1.1.3.1). The 1863 element is optional. 1865 : specifies a media resource (see Section 4.3.1.5) to play. 1866 The MS is responsible for assigning the appropriate media 1867 stream(s) when more than one is available. The element is 1868 optional. 1870 : specifies a variable media announcement (see 1871 Section 4.3.1.1.1) to play. The element is optional. 1873 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1874 play. The element is optional. 1876 If a element configuration is not supported, the MS sends a 1877 with a 435 status code (Section 4.5). 1879 Runtime s (Section 4.3.1.2) apply to each child element 1880 playing parallel. For example, pause and resume controls cause all 1881 child elements to be paused and resumed respectively. 1883 If the element is stopped by the prompt container (e.g. bargein 1884 or dialog termination), then playback of all child elements is 1885 stopped. The playback duration (Section 4.3.2.1) reported for the 1886 element is the duration of parallel playback, not the 1887 cumulative duration of each child element played in parallel. 1889 For example, a request to playback audio and video media in parallel: 1891 1892 1893 1894 1895 1896 1898 1901 1902 1903 1904 1906 When the element is executed, it begins playback of its 1907 child element in document order sequence. In this case, there is 1908 only one child element, a element itself containing audio and 1909 video child element. Consequently playback of both audio and 1910 video media resources is initiated at the same time. Since the 1911 endsync attribute is not specified, the default value "last" applies. 1912 The element playback is complete when the media resource with 1913 the longest duration is complete. 1915 4.3.1.1.3.1. 1917 The element specifies media resources to be played back in 1918 sequence. This allows a sequence of media resources to be played at 1919 the same time as other children of a element are played in 1920 parallel. For example, a sequence of audio resources while a video 1921 resource is played in parallel. This element is modeled after the 1922 element in SMIL ([W3C.REC-SMIL2-20051213]). 1924 The element has no attributes. 1926 The element has the following child elements (at least one, any 1927 order, multiple occurrences of each element permitted): 1929 : specifies a media resource (see Section 4.3.1.5) to play. 1930 The element is optional. 1932 : specifies a variable media announcement (see 1933 Section 4.3.1.1.1) to play. The element is optional. 1935 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1936 play. The element is optional. 1938 Playback of a element is complete when all child elements in 1939 the sequence are complete. If the element is stopped by the 1940 container, then playback of the current child element is 1941 stopped (remaining child elements in the sequence are not played). 1943 For example, a request to play a sequence of audio resources in 1944 parallel with a video media: 1946 1947 1948 1949 1950 1951 1952 1954 1956 1958 1960 1961 1964 1965 1966 1967 1969 When the element is executed, it begins playback of the 1970 element containing a element and a video element. 1971 The element itself contains a sequence of audio 1972 elements. Consequently playback of the video media resource is 1973 initiated at the same time as playback of the sequence of the audio 1974 media resources is initiated. Each audio resource is played back 1975 after the previous one completes. Since the endsync attribute is set 1976 to "first", the element playback is complete when either all 1977 the audio resources in have been played to completion or the 1978 video is complete, whichever occurs first. 1980 4.3.1.2. 1982 The element defines how DTMF input is mapped to runtime 1983 controls, including prompt playback controls. 1985 DTMF input matching these controls MUST NOT cause prompt playback to 1986 interrupted (i.e. no prompt bargein), but causes the appropriate 1987 operation to be applied; for examples, speeding up prompt playback. 1989 DTMF input matching these controls has priority over input 1990 for the duration of prompt playback. If an incoming DTMF character 1991 matches a specified runtime control, then the DTMF character is 1992 consumed: it is not added to the digit buffer and so is not available 1993 to the operation. Once prompt playback is complete, 1994 runtime controls are no longer active. 1996 The element has the following attributes: 1998 gotostartkey: maps a DTMF key to skip directly to the start of the 1999 prompt. A valid value is a DTMF Character (see Section 4.6.2). 2000 The attribute is optional. There is no default value. 2002 gotoendkey: maps a DTMF key to skip directly to the end of the 2003 prompt. A valid value is a DTMF Character (see Section 4.6.2). 2004 The attribute is optional. There is no default value. 2006 skipinterval: indicates how far a MS skips backwards or forwards 2007 through prompt playback when the rewind (rwkey) of fast forward 2008 key (ffkey) is pressed. A valid value is a Time Designation (see 2009 Section 4.6.7). The attribute is optional. The default value is 2010 6s. 2012 ffkey: maps a DTMF key to a fast forward operation equal to the 2013 value of 'skipinterval'. A valid value is a DTMF Character (see 2014 Section 4.6.2). The attribute is optional. There is no default 2015 value. 2017 rwkey: maps a DTMF key to a rewind operation equal to the value of 2018 'skipinterval'. A valid value is a DTMF Character (see 2019 Section 4.6.2). The attribute is optional. There is no default 2020 value. 2022 pauseinterval: indicates how long a MS pauses prompt playback when 2023 the pausekey is pressed. A valid value is a Time Designation (see 2024 Section 4.6.7). The attribute is optional. The default value is 2025 10s. 2027 pausekey: maps a DTMF key to a pause operation equal to the value of 2028 'pauseinterval'. A valid value is a DTMF Character (see 2029 Section 4.6.2). The attribute is optional. There is no default 2030 value. 2032 resumekey: maps a DTMF key to a resume operation. A valid value is 2033 a DTMF Character (see Section 4.6.2). The attribute is optional. 2034 There is no default value. 2036 volumeinterval: indicates the increase or decrease in playback 2037 volume (relative to the current volume) when the volupkey or 2038 voldnkey is pressed. A valid value is a percentage (see 2039 Section 4.6.8). The attribute is optional. The default value is 2040 10%. 2042 volupkey: maps a DTMF key to a volume increase operation equal to 2043 the value of 'volumeinterval'. A valid value is a DTMF Character 2044 (see Section 4.6.2). The attribute is optional. There is no 2045 default value. 2047 voldnkey: maps a DTMF key to a volume decrease operation equal to 2048 the value of 'volumeinterval'. A valid value is a DTMF Character 2049 (see Section 4.6.2). The attribute is optional. There is no 2050 default value. 2052 speedinterval: indicates the increase or decrease in playback speed 2053 (relative to the current speed) when the speedupkey or speeddnkey 2054 is pressed. A valid value is a percentage (see Section 4.6.8). 2055 The attribute is optional. The default value is 10%. 2057 speedupkey: maps a DTMF key to a speed increase operation equal to 2058 the value of the speedinterval attribute. A valid value is a DTMF 2059 Character (see Section 4.6.2). The attribute is optional. There 2060 is no default value. 2062 speeddnkey: maps a DTMF key to a speed decrease operation equal to 2063 the value of the speedinterval attribute. A valid value is a DTMF 2064 Character (see Section 4.6.2). The attribute is optional. There 2065 is no default value. 2067 external: allows one or more DTMF keys to be declared as external 2068 controls (for example: video camera controls); the MS can send 2069 notifications when a matching key is activated using 2070 (Section 4.2.5.2). A valid value is a DTMF String (see 2071 Section 4.6.3). The attribute is optional. There is no default 2072 value. 2074 If the same DTMF is specified in more than one DTMF key control 2075 attribute - except the pausekey and resumekey attributes - the MS 2076 sends a with a 413 status code (Section 4.5). 2078 The MS has the following execution model for runtime control after 2079 initialization: 2081 1. If an error occurs during execution, then the MS terminates 2082 runtime control and the error is reported to the dialog 2083 container. The MS MAY report controls executed successfully 2084 before the error in (see Section 4.3.2.2). 2086 2. Runtime controls are active only during prompt playback (if no 2087 element is specified, then runtime controls are 2088 ignored). If DTMF input matches any specified keys (for example 2089 the ffkey), then the MS applies the appropriate operation 2090 immediately. If a seek operation (ffkey, rwkey) attempts to go 2091 beyond the beginning or end of the prompt queue, then the MS 2092 automatically truncates it to the prompt queue beginning or end 2093 respectively. If a volume operation (voldnkey, volupkey) 2094 attempts to go beyond the minimum or maximum volume supported by 2095 the platform, then the MS automatically limits the operation to 2096 minimum or maximum supported volume respectively. If a speed 2097 operation (speeddnkey, speedupkey) attempts to go beyond the 2098 minimum or maximum playback speed supported by the platform, then 2099 the MS automatically limits the operation to minimum or maximum 2100 supported speed respectively. If the pause operation attempts to 2101 pause output when it is already paused, then the operation is 2102 ignored. If the resume operation attempts to resume when the 2103 prompts are not paused, then the operation is ignored. If a 2104 seek, volume or speed operation is applied when output is paused, 2105 then the MS also resumes output automatically. 2107 3. If DTMF control subscription has been specified for the dialog, 2108 then each DTMF match of a control operation is reported in a 2109 notification event (Section 4.2.5.2). 2111 4. When the dialog exits, all control matches are reported in a 2112 element (Section 4.3.2.2). 2114 4.3.1.3. 2116 The element defines how DTMF input is collected. 2118 The element has the following attributes: 2120 cleardigitbuffer: indicates whether the digit buffer is to be 2121 cleared. A valid value is a boolean (see Section 4.6.1). A value 2122 of true indicates that the digit buffer is to be cleared. A value 2123 of false indicates that the digit buffer is not to be cleared. 2124 The attribute is optional. The default value is true. 2126 timeout: indicates the maximum time to wait for user input to begin. 2127 A valid value is a Time Designation (see Section 4.6.7). The 2128 attribute is optional. The default value is 5s. 2130 interdigittimeout: indicates the maximum time to wait for another 2131 DTMF when the collected input is incomplete with respect to the 2132 grammar. A valid value is a Time Designation (see Section 4.6.7). 2133 The attribute is optional. The default value is 2s. 2135 termtimeout: indicates the maximum time to wait for the termchar 2136 character when the collected input is complete with respect to the 2137 grammar. A valid value is a Time Designation (see Section 4.6.7). 2138 The attribute is optional. The default value is 0s (no delay). 2140 escapekey: specifies a DTMF key that indicates collected grammar 2141 matches are discarded and the DTMF collection is to be re- 2142 initiated. A valid value is a DTMF Character (see Section 4.6.2). 2143 The attribute is optional. There is no default value. 2145 termchar: specifies a DTMF character for terminating DTMF input 2146 collection using the internal grammar. It is ignored when a 2147 custom grammar is specified. A valid value is a DTMF character 2148 (see Section 4.6.2). To disable termination by a conventional 2149 DTMF character, set the parameter to an unconventional character 2150 like 'A'. The attribute is optional. The default value is '#'. 2152 maxdigits: The maximum number of digits to collect using an internal 2153 digits (0-9 only) grammar. It is ignored when a custom grammar is 2154 specified. A valid value is a positive integer (see 2155 Section 4.6.5). The attribute is optional. The default value is 2156 5. 2158 The following matching priority is defined for incoming DTMF: 2159 termchar attribute, escapekey attribute and then as part of a 2160 grammar. For example, if "1" is defined as the escapekey attribute 2161 and as part of a grammar, then its interpretation as a escapekey 2162 takes priority. 2164 The element has the following child elements: 2166 : indicates a custom grammar format (see 2167 Section 4.3.1.3.1). The element is optional. 2169 The custom grammar takes priority over the internal grammar. If a 2170 element is specified, the MS MUST use it for DTMF 2171 collection. 2173 The MS has the following execution model for DTMF collection after 2174 initialization: 2176 1. The DTMF collection buffer MUST NOT receive DTMF input matching 2177 operations (see Section 4.3.1.2). 2179 2. If an error occurs during execution, then the MS terminates 2180 collection and reports the error to the dialog container (see 2181 Section 4.3). The MS MAY report DTMF collected before the error 2182 in (see Section 4.3.2.3). 2184 3. The MS clears the digit buffer if the value of the 2185 cleardigitbuffer attribute is true. 2187 4. The MS activates an initial timer with the duration of the value 2188 of the timeout attribute. If the initial timer expires before 2189 any DTMF input is received, then collection execution terminates, 2190 the (see Section 4.3.2.3) has the termmode 2191 attribute set to noinput and the execution status is reported to 2192 the dialog container. 2194 5. When the first DTMF collect input is received, the initial timer 2195 is cancelled and DTMF collection begins. Each DTMF input is 2196 collected unless it matches the value of the escapekey attribute, 2197 or the termchar attribute when the internal grammar is used. 2198 Collected input is matched against the grammar to determine if it 2199 is valid and, if valid, whether collection is complete. Valid 2200 DTMF patterns are either a simple digit string where the maximum 2201 length is determined by the maxdigits attribute and which can be 2202 optionally terminated by the character in the termchar attribute; 2203 or a custom DTMF grammar specified with the element. 2205 6. After escapekey input, or a valid input which does not complete 2206 the grammar, the MS activates a timer for the value of the 2207 interdigittimeout attribute or the termtimeout attribute. The MS 2208 only uses the termtimeout value when the grammar does not allow 2209 any additional input; otherwise, the MS uses the 2210 interdigittimeout. 2212 7. If DTMF collect input matches the value of the escapekey 2213 attribute, then the MS re-initializes DTMF collection: i.e. the 2214 MS discards collected DTMFs already matched against the grammar, 2215 and the MS attempts to match incoming DTMF (including any pending 2216 in the digit buffer) as described in Step 5 above. 2218 8. If the collect input is not valid with respect to the grammar or 2219 an interdigittimeout timer expires, the MS terminates collection 2220 execution and reports execution status to the dialog container 2221 with a (see Section 4.3.2.3) where the termmode 2222 attribute is set to nomatch. 2224 9. If the collect input completes the grammar or if a termtimeout 2225 timer expires, then the MS terminates collection execution and 2226 reports execution status to the dialog container with 2227 (see Section 4.3.2.3) where the termmode attribute 2228 is set to match. 2230 4.3.1.3.1. 2232 The element allows a custom grammar, inline or external, to 2233 be specified. Custom grammars permit the full range of DTMF 2234 characters including '*' and '#' to be specified for DTMF pattern 2235 matching. 2237 The element has the following attributes: 2239 src: specifies the location of an external grammar document. A 2240 valid value is a URI (see Section 4.6.9) including authentication 2241 information if defined by the URI scheme (e.g. basic access 2242 authentication in HTTP). If the URI scheme is unsupported, the MS 2243 sends a with a 420 status code (Section 4.5). If the 2244 resource cannot be retrieved within the timeout interval, the MS 2245 sends a with a 409 status code. If the grammar format 2246 is not supported, the MS sends a with a 424 status 2247 code. The attribute is optional. There is no default value. 2249 type: identifies the preferred type of the grammar document 2250 identified by the src attribute. A valid value is a MIME media 2251 type (see Section 4.6.10). If the URI scheme used in the src 2252 attribute defines a mechanism for establishing the authoratitive 2253 MIME media type of the media resource, the value returned by that 2254 mechanism takes precedence over this attribute. The attribute is 2255 optional. There is no default value. 2257 fetchtimeout: the maximum interval to wait when fetching a grammar 2258 resource. A valid value is a Time Designation (see 2259 Section 4.6.7). The attribute is optional. The default value is 2260 30s. 2262 The element allows inline grammars to be specified. XML 2263 grammar formats MUST use a namespace other than the one used in this 2264 specification. Non-XML grammar formats MAY use a CDATA section. 2266 The MS MUST support the [SRGS] XML grammar format ("application/ 2267 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 2268 formats. If the grammar format is not supported by the MS, then the 2269 MS sends a with a 424 status code (Section 4.5). 2271 For example, the following fragment shows DTMF collection with an 2272 inline SRGS grammar: 2274 2276 2277 2279 2280 2281 0 2282 1 2283 2 2284 3 2285 4 2286 5 2287 6 2288 7 2289 8 2290 9 2291 2292 2294 2295 2296 2297 2298 2299 # 2300 * 9 2301 2302 2304 2305 2306 2308 The same grammar could also be referenced externally (and take 2309 advantage of HTTP caching): 2311 2312 2314 2316 4.3.1.4. 2318 The element specifies how media input is recorded. 2320 The element has the following attributes: 2322 timeout: indicates the time to wait for user input to begin. A 2323 valid value is a Time Designation (see Section 4.6.7). The 2324 attribute is optional. The default value is 5s. 2326 vadinitial: Control whether voice activity detection (VAD) is used 2327 to initiate the recording operation. A valid value is a boolean 2328 (see Section 4.6.1). A value of true indicates the MS MUST 2329 initiate recording if the VAD detects voice on the configured 2330 inbound audio streams. A value of false indicates that the MS 2331 MUST NOT initiate recording using VAD. The attribute is optional. 2332 The default value is false. 2334 vadfinal: Control whether voice activity detection (VAD) is used to 2335 terminate the recording operation. A valid value is a boolean 2336 (see Section 4.6.1). A value of true indicates the MS MUST 2337 terminate recording if the VAD detects a period of silence (whose 2338 duration is specified by the finalsilence attribute) on configured 2339 inbound audio streams. A value of false indicates that the MS 2340 MUST NOT terminate recording using VAD. The attribute is 2341 optional. The default value is false. 2343 dtmfterm: Indicates whether the recording operation is terminated by 2344 DTMF input. A valid value is a boolean (see Section 4.6.1). A 2345 value of true indicates that recording is terminated by DTMF 2346 input. A value of false indicates that recording is not 2347 terminated by DTMF input. The attribute is optional. The default 2348 value is true. 2350 maxtime: indicates The maximum duration of the recording. A valid 2351 value is a Time Designation (see Section 4.6.7). The attribute is 2352 optional. The default value is 15s. 2354 beep: indicates whether a 'beep' is to be played immediately prior 2355 to initiation of the recording operation. A valid value is a 2356 boolean (see Section 4.6.1). The attribute is optional. The 2357 default value is false. 2359 finalsilence: indicates the interval of silence that indicates the 2360 end of voice input. This interval is not part of the recording 2361 itself. This parameter is ignored if the vadfinal attribute has 2362 the value false. A valid value is a Time Designation (see 2363 Section 4.6.7). The attribute is optional. The default value is 2364 5s. 2366 append: indicates whether recorded data is appended or not to a 2367 recording location if a resource already exists. A valid value is 2368 a boolean (see Section 4.6.1). A value of true indicates that 2369 recorded data is appended to the existing resource at a recording 2370 location. A value of false indicates that recorded data is to 2371 overwrite the existing resource. The attribute is optional. The 2372 default value is false. 2374 If either the vadinitial or vadfinal attribute is set to true and the 2375 MS does not support VAD, the MS sends a with a 434 status 2376 code (Section 4.5). 2378 The element has the following child element (0 or more 2379 occurrences): 2381 : specifies the location and type of the media resource for 2382 uploading recorded data (see Section 4.3.1.5). The MS uploads 2383 recorded data to this resource as soon as possible after recording 2384 is complete. The element is optional. 2386 If multiple elements are specified, then media input is to be 2387 recorded in parallel to multiple resource locations. 2389 If no child element is specified, the MS MUST provide a 2390 recording location where the recording format is implementation- 2391 specific. The recording location and format are reported in 2392 (Section 4.3.2.4) when the dialog terminates. The 2393 recording MUST be available from this location until the connection 2394 or conference associated with the dialog on the MS terminates. 2396 If the MS does not support the configuration required for recording 2397 from the input media streams to one or more elements and a 2398 more specific error code is not defined for its child elements, the 2399 MS sends a with a 423 status code (Section 4.5). 2401 Note that an MS MAY support uploading recorded data to recording 2402 locations at the same time the recording operation takes place. Such 2403 implementations need to be aware of the requirements of certain 2404 recording formats (e.g. WAV) for metadata at the beginning of the 2405 uploaded file, that the finalsilence interval is not part of the 2406 recording and how these requirements interact with the URI scheme. 2408 The MS has the following execution model for recording after 2409 initialization: 2411 1. If an error occurs during execution (e.g. authentication or 2412 communication error when trying to upload to a recording 2413 location), then the MS terminates record execution and reports 2414 the error to the dialog container (see Section 4.3). The MS MAY 2415 report data recorded before the error in (see 2416 Section 4.3.2.4). 2418 2. If DTMF input (not matching a operation) is received 2419 during prompt playback and the prompt bargein attribute is set to 2420 true, then the MS activates the record execution. Otherwise, the 2421 MS activates it after the completion of prompt playback. 2423 3. If a beep attribute with the value of true is specified, then the 2424 MS plays a beep tone. 2426 4. The MS activates a timer with the duration of the value of the 2427 timeout attribute. If the timer expires before the recording 2428 operation begins, then the MS terminates the recording execution 2429 and reports the status to dialog container with (see 2430 Section 4.3.2.4) where the termmode attribute is set to noinput. 2432 5. Initiation of the recording operation depends on the value of the 2433 vadinitial attribute. If vadinitial has the value false, then 2434 the recording operation is initiated immediately. Otherwise, the 2435 recording operation is initiated when voice activity is detected. 2437 6. When the recording operation is initiated, a timer is started for 2438 the value of the maxtime attribute (maximum duration of the 2439 recording). If the timer expires before the recording operation 2440 is complete, then the MS terminates recording execution and 2441 reports the execution status to the dialog container with 2442 (see Section 4.3.2.4) where the termmode attribute 2443 set to maxtime. 2445 7. During the record operation input media streams are recording to 2446 a location and format specified in one or more child 2447 elements. If no child element is specified, the MS 2448 records input to an implementation-specific location and format. 2450 8. If the dtmfterm attribute has the value true and DTMF input is 2451 detected during the record operation, then the MS terminates 2452 recording and its status is reported to the dialog container with 2453 a (see Section 4.3.2.4) where the termmode attribute 2454 is set to dtmf. 2456 9. If vadfinal attribute has the value true, then the MS terminates 2457 the recording operation when a period of silence, with the 2458 duration specified by the value of the finalsilence attribute, is 2459 detected. This period of silence is not part of the final 2460 recording. The status is reported to the dialog container with a 2461 (see Section 4.3.2.4) where the termmode attribute 2462 is set to finalsilence. 2464 For example, a request to record audio and video input to separate 2465 locations: 2467 2468 2469 2470 2471 2473 2475 2476 2477 2478 2480 When the element is executed, it immediately begins 2481 recording of the audio and video (since vadinitial is false) where 2482 the destination locations are specified in the child 2483 elements. Recording is completed when the duration reaches 30s or 2484 the connection is terminated. 2486 4.3.1.5. 2488 The element specifies a media resource to playback from (see 2489 Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback 2490 case, the resource is retrieved and in the recording case, recording 2491 data is uploaded to the resource location. 2493 A element has the following attributes: 2495 loc: specifies the location of the media resource. A valid value is 2496 a URI (see Section 4.6.9) including authentication information if 2497 defined by the URI scheme (e.g. basic access authentication in 2498 HTTP). If the URI scheme is not supported by the MS, the MS sends 2499 a with a 420 status code (Section 4.5). If the 2500 resource is to be retrieved but the MS cannot retrieve it within 2501 the timeout interval, the MS sends a with a 409 status 2502 code. If the format of the media resource is not supported, the 2503 MS sends a with a 429 status code. The attribute is 2504 mandatory. 2506 type: specifies the type of the media resource indicated in the loc 2507 attribute. A valid value is a MIME media type (see 2508 Section 4.6.10) which, depending on its definition, can include 2509 additional parameters (e.g. [RFC4281]). If the URI scheme used 2510 in the loc attribute defines a mechanism for establishing the 2511 authoratitive MIME media type of the media resource, the value 2512 returned by that mechanism takes precedence over this attribute. 2513 If additional media parameters are specified, the MS MUST use them 2514 to determine media processing. For example, [RFC4281] defines a 2515 'codec' parameter for media types like video/3gpp which would 2516 determine which media streams are played or recorded. The 2517 attribute is optional. There is no default value. 2519 fetchtimeout: the maximum interval to wait when fetching a media 2520 resource. A valid value is a Time Designation (see 2521 Section 4.6.7). The attribute is optional. The default value is 2522 30s. 2524 soundLevel: playback soundLevel (volume) for the media resource. A 2525 valid value is a percentage (see Section 4.6.4). The value 2526 indicates increase or decrease relative to the original recorded 2527 volume of the media. A value of 100% (the default) plays the 2528 media at its recorded volume, a value of 200% will play the media 2529 twice recorded volume, 50% at half its recorded volume, a value of 2530 0% will play the media silently, and so on. See 'soundLevel' in 2531 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 2532 attribute is optional. The default value is 100%. 2534 clipBegin: offset from start of media resource to begin playback. A 2535 valid value is a Time Designation (see Section 4.6.7). The offset 2536 is measured in normal media playback time from the beginning of 2537 the media resource. If the clipBegin offset is after the end of 2538 media (or the clipEnd offset), no media is played. See 2539 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further 2540 information. The attribute is optional. The default value is 0s. 2542 clipEnd: offset from start of media resource to end playback. A 2543 valid value is a Time Designation (see Section 4.6.7). The offset 2544 is measured in normal media playback time from the beginning of 2545 the media resource. If the clipEnd offset is after the end of 2546 media, then the media is played to the end. If clipBegin is after 2547 clipEnd, then no media is played. See 'clipEnd' in SMIL 2548 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 2549 is optional. There is no default value. 2551 The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are 2552 only relevant in the playback use case. The MS ignores these 2553 attributes when using the for recording. 2555 The element has no children. 2557 4.3.2. Exit Information 2559 When the dialog exits, information about the specified operations is 2560 reported in a notification event (Section 4.2.5.1). 2562 4.3.2.1. 2564 The element reports the information about prompt 2565 execution. It has the following attributes: 2567 duration: indicates the duration of prompt playback in milliseconds. 2568 A valid value is a non-negative integer (see Section 4.6.4). The 2569 attribute is optional. There is no default value. 2571 termmode: indicates how playback was terminated. Valid values are: 2572 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 2574 The element has no child elements. 2576 4.3.2.2. 2578 The element reports information about control 2579 execution. 2581 The element has no attributes and has 0 or more 2582 child elements each describing an individual runtime 2583 control match. 2585 4.3.2.2.1. 2587 The element has the following attributes: 2589 dtmf: DTMF input triggering the runtime control. A valid value is a 2590 DTMF string (see Section 4.6.3) with no space between characters. 2591 The attribute is mandatory. 2593 timestamp: indicates the time (on the MS) at which the control was 2594 triggered. A valid value is an dateTime expression 2595 (Section 4.6.12). The attribute is mandatory. 2597 The element has no child elements. 2599 4.3.2.3. 2601 The element reports the information about collect 2602 execution. 2604 The element has the following attributes: 2606 dtmf: DTMF input collected from the user. A valid value is a DTMF 2607 string (see Section 4.6.3) with no space between characters. The 2608 attribute is optional. There is no default value. 2610 termmode: indicates how collection was terminated. Valid values 2611 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2612 mandatory. 2614 The element has no child elements. 2616 4.3.2.4. 2618 The element reports information about record execution 2619 (Section 4.3.1.4). 2621 The element has the following attributes: 2623 termmode: indicates how recording was terminated. Valid values are: 2624 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2625 attribute is mandatory. 2627 duration: indicates the duration of the recording in milliseconds. 2628 A valid value is a non-negative integer (see Section 4.6.4). The 2629 attribute is optional. There is no default value. 2631 The element has the following child element (0 or more 2632 occurrences): 2634 : indicates information about a recorded media resource 2635 (see Section 4.3.2.4.1). The element is optional. 2637 When the record operation is successful, the MS MUST specify a 2638 element for each recording location. For example, if the 2639 element contained three child elements, then the 2640 would contain three child elements. 2642 4.3.2.4.1. 2644 The element reports information about a recorded media 2645 resource. 2647 The element has the following attributes: 2649 loc: indicates the location of the media resource. A valid value is 2650 a URI (see Section 4.6.9). The attribute is mandatory. 2652 type: indicates the format of the media resource. A valid value is 2653 a MIME media type (see Section 4.6.10). The attribute is 2654 mandatory. 2656 size: indicates the size of the media resource in bytes. A valid 2657 value is a non-negative integer (see Section 4.6.4). The 2658 attribute is optional. There is no default value. 2660 4.4. Audit Elements 2662 The audit elements defined in this section allow the MS to be audited 2663 for package capabilities as well as dialogs managed by the package. 2664 Auditing is particularly important for two use cases. First, it 2665 enables discovery of package capabilities supported on an MS before 2666 an AS starts a dialog on connection or conference. The AS can then 2667 use this information to create request elements using supported 2668 capabilities and, in the case of codecs, to negotiate an appropriate 2669 SDP for a user agent's connection. Second, auditing enables 2670 discovery of the existence and status of dialogs currently managed by 2671 the package on the MS. This could be used when one AS takes over 2672 management of the dialogs if the AS which initiated the dialogs fails 2673 or is no longer available (see Security Considerations described in 2674 Section 7 ). 2676 4.4.1. 2678 The request element is sent to the MS to request information 2679 about the capabilities of, and dialogs currently managed with, this 2680 control package. Capabilities include supported dialog languages, 2681 grammar formats, record and media types as well as codecs. Dialog 2682 information includes the status of managed dialogs as well as codecs. 2684 The element has the following attributes: 2686 capabilities: indicates whether package capabilities are to be 2687 audited. A valid value is a boolean (see Section 4.6.1). A value 2688 of true indicates that capability information is to be reported. 2689 A value of false indicates that capability information is not to 2690 be reported. The attribute is optional. The default value is 2691 true. 2693 dialogs: indicates whether dialogs currently managed by the package 2694 are to be audited. A valid value is a boolean (see 2695 Section 4.6.1). A value of true indicates that dialog information 2696 is to be reported. A value of false indicates that dialog 2697 information is not to be reported. The attribute is optional. 2698 The default value is true. 2700 dialogid: string identifying a specific dialog to audit. The MS 2701 sends a response with a 406 status code (Section 4.5) if the 2702 specified dialog identifier is invalid. The attribute is 2703 optional. There is no default value. 2705 If the dialogs attribute has the value true and dialogid attribute is 2706 specified, then only audit information about the specified dialog is 2707 reported. If the dialogs attribute has the value false, then no 2708 dialog audit information is reported even if a dialogid attribute is 2709 specified. 2711 The element has no child elements. 2713 When the MS receives an request, it MUST reply with a 2714 element (Section 4.4.2) which includes a mandatory 2715 attribute describing the status in terms of a numeric code. Response 2716 status codes are defined in Section 4.5. If the request is 2717 successful, the contains (depending on attribute 2718 values) a element (Section 4.4.2.2) reporting package 2719 capabilities and a element (Section 4.4.2.3) reporting 2720 managed dialog information. If the MS is not able to process the 2721 request and carry out the audit operation, the audit request has 2722 failed and the MS MUST indicate the class of failure using an 2723 appropriate 4xx response code. Unless an error response code is 2724 specified for a class of error within this section, implementations 2725 follow Section 4.5 in determining the appropriate status code for the 2726 response. 2728 For example, a request to audit capabilities and dialogs managed by 2729 the package: 2731 2732 2733 2735 In this example, only capabilities are to be audited: 2737 2738 2739 2741 With this example, only a specific dialog is to be audited: 2743 2744 2745 2747 4.4.2. 2749 The element describes a response to a 2750 request. 2752 The element has the following attributes: 2754 status: numeric code indicating the audit response status. The 2755 attribute is mandatory. Valid values are defined in Section 4.5. 2757 reason: string specifying a reason for the status. The attribute is 2758 optional. 2760 The element has the following sequence of child 2761 elements: 2763 element (Section 4.4.2.2) describing capabilities of 2764 the package. The element is optional. 2766 element (Section 4.4.2.3) describing information about 2767 managed dialogs. The element is optional. 2769 For example, a successful response to a request requesting 2770 capabilities and dialogs information: 2772 2773 2774 2775 2776 application/voicexml+xml 2777 2778 2779 2780 audio/x-wav 2781 video/3gpp 2782 2783 2784 audio/x-wav 2785 video/3gpp 2786 2787 2788 2789 mdy 2790 ymd 2791 dmy 2792 dm 2793 2794 2795 600s 2796 1800s 2797 2798 2799 H.263 2800 2801 2802 H.264 2803 2804 2805 PCMU 2806 2807 2808 PCMA 2809 2810 2811 telephone-event 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 PCMA 2822 2823 2824 telephone-event 2825 2826 2827 2828 2829 2830 2832 4.4.2.1. 2834 The provides audit information about codecs. 2836 The element has no attributes. 2838 The element has the following sequence of child elements (0 2839 or more occurrences): 2841 : audit information for a codec (Section 4.4.2.1.1). The 2842 element is optional. 2844 For example, a fragment describing two codecs: 2846 2847 2848 PCMA 2849 2850 2851 telephone-event 2852 2853 2855 4.4.2.1.1. 2857 The element describes a codec on the MS. The element is 2858 modeled on the element in the XCON conference information 2859 data model ([I-D.ietf-xcon-common-data-model]) but allows addition 2860 information (e.g. rate, speed, etc) to be specified. 2862 The element has no attributes. 2864 The element has the following sequence of child elements: 2866 : element describing the codec's name. The possible values 2867 of this element are the values of the 'subtype' column of the RTP 2868 Payload Format media types per [RFC4855] defined in IANA ([IANA]). 2869 The element is mandatory. 2871 : element (Section 4.2.6) describing additional information 2872 about the codec. This package is agnostic to the names and values 2873 of the codec parameters supported by an implementation. The 2874 element is optional. 2876 For example, a fragment with a element describing the H.263 2877 codec: 2879 2880 H.263 2881 2883 4.4.2.2. 2885 The element provides audit information about package 2886 capabilities. 2888 The element has no attributes. 2890 The element has the following sequence of child 2891 elements: 2893 : element (Section 4.4.2.2.1) describing additional 2894 dialog languages supported by the MS. The element is mandatory. 2896 : element (Section 4.4.2.2.2) describing supported 2897 (Section 4.3.1.3.1) format types. The element is 2898 mandatory. 2900 : element (Section 4.4.2.2.3) describing 2901 (Section 4.3.1.5) format types supported for 2902 (Section 4.3.1.4). The element is mandatory. 2904 : element (Section 4.4.2.2.4) describing supported 2905 (Section 4.3.1.5) format types for playback within a 2906 (Section 4.3.1.1). The element is mandatory. 2908 : element (Section 4.4.2.2.5) describing supported types 2909 and formats for the element (Section 4.4.2.2.5). The 2910 element is mandatory. 2912 : element (Section 4.4.2.2.6) describing the 2913 supported maximum duration for a prepared dialog following a 2914 (Section 4.2.1) request. The element is 2915 mandatory. 2917 : element (Section 4.4.2.2.7) describing the 2918 supported maximum duration for a recording 2919 Section 4.3.1.4) request. The element is mandatory. 2921 : element (Section 4.4.2.1) describing codecs available to 2922 the package. The element is mandatory. 2924 For example, a fragment describing capabilities: 2926 2927 2928 application/voicexml+xml 2929 2930 2931 2932 audio/x-wav 2933 video/3gpp 2934 2935 2936 audio/x-wav 2937 video/3gpp 2938 2939 2940 30s 2941 60s 2942 2943 2944 H.263 2945 2946 2947 H.264 2948 2949 2950 PCMU 2951 2952 2953 PCMA 2954 2955 2956 telephone-event 2957 2958 2959 2961 4.4.2.2.1. 2963 The element provides information about additional 2964 dialog languages supported by the package. Dialog languages are 2965 identified by their associated MIME media types. The MS MUST NOT 2966 include the mandatory dialog language for this package (Section 4.3). 2968 The element has no attributes. 2970 The element has the following sequence of child 2971 elements (0 or more occurrences): 2973 : element whose content model describes a MIME media type 2974 (Section 4.6.10) associated with a supported dialog language. The 2975 element is optional. 2977 4.4.2.2.2. 2979 The element provides information about 2980 format types supported by the package. The MS MUST NOT include the 2981 mandatory SRGS format type, "application/srgs+xml" 2982 (Section 4.3.1.3.1). 2984 The element has no attributes. 2986 The element has the following sequence of child 2987 elements (0 or more occurrences): 2989 : element whose content model describes a mime type 2990 (Section 4.6.10). The element is optional. 2992 4.4.2.2.3. 2994 The element provides information about media resource 2995 format types of supported by the package (Section 4.3.1.4). 2997 The element has no attributes. 2999 The element has the following sequence of child 3000 elements (0 or more occurrences): 3002 : element whose content model describes a mime type 3003 (Section 4.6.10). The element is optional. 3005 4.4.2.2.4. 3007 The element provides information about media resource 3008 format types of supported by the package (Section 4.3.1.1). 3010 The element has no attributes. 3012 The element has the following sequence of child 3013 elements (0 or more occurrences): 3015 : element whose content model describes a mime type 3016 (Section 4.6.10). The element is optional. 3018 4.4.2.2.5. 3020 The element provides information about types and formats 3021 for the element (Section 4.4.2.2.5) supported by the 3022 package. 3024 The element has no attributes. 3026 The element has the following sequence of child elements 3027 (0 or more occurrences): 3029 : element describing the formats support for a given 3030 type (Section 4.4.2.2.5.1). The element is optional. 3032 For example, a fragment describing support for with a 3033 "date" type in some common formats. 3035 3036 3037 mdy 3038 ymd 3039 dmy 3040 dm 3041 3042 3044 4.4.2.2.5.1. 3046 The element describes the formats supported for 3047 supported type. 3049 The element has the following attributes: 3051 type: indicates a supported value associated with the type attribute 3052 of element.The attribute is manadatory. 3054 desc: a string providing some textual description of the type and 3055 format. The attribute is optional. 3057 The element has the following sequence of child 3058 elements (0 or more occurrences): 3060 : element with a desc attribute (optional description) and a 3061 content model describing a supported format in the 3062 format attribute. The element is optional. 3064 4.4.2.2.6. 3066 The element describes the maximum duration for 3067 a dialog to remain in the prepared state (Section 4.2) following a 3068 (Section 4.2.1) request. 3070 The element has no attributes. 3072 The element has a content model describing the 3073 maximum prepared dialog duration as a time designation 3074 (Section 4.6.7). 3076 4.4.2.2.7. 3078 The element describes the maximum recording 3079 duration for Section 4.3.1.4) request supported by the MS. 3081 The element has no attributes. 3083 The element has a content model describing the 3084 maximum duration of recording as a time designation (Section 4.6.7). 3086 4.4.2.3. 3088 The element provides audit information about dialogs. 3090 The element has no attributes. 3092 The element has the following sequence of child elements (0 3093 or more occurrences): 3095 : audit information for a dialog (Section 4.4.2.3.1). 3096 The element is optional. 3098 4.4.2.3.1. 3100 The element has the following attributes: 3102 dialogid: string identifying the dialog. The attribute is 3103 mandatory. 3105 state: string indicating the state of the dialog. Valid values are: 3106 preparing, prepared, starting, started. The attribute is 3107 mandatory. 3109 connectionid: string identifying the SIP dialog connection 3110 associated with the dialog (see Section 16.1 of 3111 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3112 optional. There is no default value. 3114 conferenceid: string identifying the conference associated with the 3115 dialog (see Section 16.1 of 3116 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3117 optional. There is no default value. 3119 The element has the following child element: 3121 element describing codecs used in the dialog. See 3122 Section 4.4.2.1. The element is optional. 3124 For example, a fragment describing a started dialog which is using 3125 PCMU and telephony-event codecs: 3127 3128 3129 3130 PCMU 3131 3132 3133 telephone-event 3134 3135 3136 3138 4.5. Response Status Codes 3140 This section describes the response codes in Table 1 for the status 3141 attribute of dialog management (Section 4.2.4) and audit 3142 (Section 4.4.2) responses. The MS MUST support the 3143 status response codes defined here. All other valid but undefined 3144 values are reserved for future use, where a standards-track RFC is 3145 required to define new status codes. The AS MUST treat any responses 3146 it does not recognize as being equivalent to the x00 response code 3147 for all classes. For example, if an AS receives an unrecognized 3148 response code of 499, it can safely assume that there was something 3149 wrong with its request and treat the response as if it had received a 3150 400 (Syntax error) response code. 3152 4xx responses are definite failure responses from a particular MS. 3153 The reason attribute in the response SHOULD identify the failure in 3154 more detail, for example, "Mandatory attribute missing: src in media 3155 element" for a 400 (Syntax error) response code. 3157 The AS SHOULD NOT retry the same request without modification (for 3158 example, correcting a syntax error or changing the connectionid to 3159 use one available on the MS). However, the same request to a 3160 different MS might be successful; for example, if another MS supports 3161 a capability required in the request. 3163 4xx failure responses can be grouped into three classes: failure due 3164 to a syntax error in the request (400); failure due to an error 3165 executing the request on the MS (405-419); and failure due to the 3166 request requiring a capability not supported by the MS (420-439). 3168 In cases where more than one request code could be reported for a 3169 failure, the MS SHOULD use the most specific error code of the 3170 failure class for the detected error. For example, if the MS detects 3171 that the dialogid in the request is invalid, then it uses a 406 3172 status code. However, if the MS merely detects that an execution 3173 error occurred, then 419 is used. 3175 +------+---------------+-----------------------+--------------------+ 3176 | Code | Summary | Description | Informational: AS | 3177 | | | | Possible Recovery | 3178 | | | | Action | 3179 +------+---------------+-----------------------+--------------------+ 3180 | 200 | OK | request has succeeded | | 3181 | | | | | 3182 | 400 | Syntax error | request is | Change the request | 3183 | | | syntactically | so that it is | 3184 | | | invalid: it is not | syntactically | 3185 | | | valid with respect to | valid. | 3186 | | | the XML schema | | 3187 | | | specified in | | 3188 | | | Section 5 or it | | 3189 | | | violates a | | 3190 | | | co-occurrence | | 3191 | | | constraint for a | | 3192 | | | request element | | 3193 | | | defined in Section 4. | | 3194 | | | | | 3195 | 405 | dialogid | request uses a | Send a request for | 3196 | | already | dialogid identifier | a new dialog | 3197 | | exists | for a new dialog | without specifying | 3198 | | | which is already used | the dialogid and | 3199 | | | by another dialog on | let the MS | 3200 | | | the MS (see | generate a unique | 3201 | | | Section 4.2). | dialogid in the | 3202 | | | | response. | 3203 | | | | | 3204 | 406 | dialogid does | request uses a | Send an | 3205 | | not exist | dialogid identifier | request | 3206 | | | for an dialog which | (Section 4.4.1) | 3207 | | | does not exist on the | requesting the | 3208 | | | MS (see Section 4.2). | list of dialog | 3209 | | | | identifiers | 3210 | | | | already used by | 3211 | | | | the MS and then | 3212 | | | | use one of the | 3213 | | | | listed dialog | 3214 | | | | identifiers. | 3215 | | | | | 3216 | 407 | connectionid | request uses a | Use another method | 3217 | | does not | connectionid | to determine which | 3218 | | exist | identifier for a | connections are | 3219 | | | connection which does | available on the | 3220 | | | not exist on the MS. | MS. | 3221 | | | | | 3222 | 408 | conferenceid | request uses a | Use another method | 3223 | | does not | conferenceid | to determine which | 3224 | | exist | identifier for a | conferences are | 3225 | | | conference which does | available on the | 3226 | | | not exist on the MS. | MS. | 3227 | | | | | 3228 | 409 | Resource | request use a URI to | Check that the | 3229 | | cannot be | reference an external | resource URI is | 3230 | | retrieved | resource (e.g. | valid, can be | 3231 | | | dialog, media or | reached from the | 3232 | | | grammar) which cannot | MS, and that the | 3233 | | | be retrieved within | appropriate | 3234 | | | the timeout interval | authentication is | 3235 | | | | used. | 3236 | | | | | 3237 | 410 | Dialog | request to prepare or | | 3238 | | execution | start a dialog which | | 3239 | | canceled | has been terminated | | 3240 | | | by a | | 3241 | | | | | 3242 | | | request (see | | 3243 | | | Section 4.2) | | 3244 | | | | | 3245 | 411 | Incompatible | request specifies a | Change the media | 3246 | | stream | media stream | stream | 3247 | | configuration | configuration which | configuration to | 3248 | | | is in conflict with | match the | 3249 | | | itself, or the | capabilities of | 3250 | | | connection or | the connection or | 3251 | | | conference | conference | 3252 | | | capabilities (see | | 3253 | | | Section 4.2.2) | | 3254 | | | | | 3255 | 412 | Media stream | request specifies an | Check the media | 3256 | | not available | operation for which a | stream capability | 3257 | | | media stream is not | of the connection | 3258 | | | available. For | or conference and | 3259 | | | example, playing a | use an operation | 3260 | | | video media resource | which only uses | 3261 | | | on an connection or | these capabilities | 3262 | | | conference without | | 3263 | | | video streams. | | 3264 | | | | | 3265 | 413 | Control keys | the request contains | Use different keys | 3266 | | with same | a element | for the different | 3267 | | value | (Section 4.3.1.2) | control | 3268 | | | where some keys have | operations. | 3269 | | | the same value | | 3270 | | | | | 3271 | 419 | Other | requested operation | | 3272 | | execution | cannot be executed by | | 3273 | | error | the MS. | | 3274 | | | | | 3275 | 420 | Unsupported | request specifies a | Use a URI scheme | 3276 | | URI scheme | URI whose scheme is | which is | 3277 | | | not supported by the | supported. | 3278 | | | MS | | 3279 | | | | | 3280 | 421 | Unsupported | request references an | Send an | 3281 | | dialog | external dialog | request | 3282 | | language | language not | (Section 4.4.1) | 3283 | | | supported by the MS | requesting the MS | 3284 | | | | capabilities and | 3285 | | | | then use one of | 3286 | | | | the listed dialog | 3287 | | | | languages. | 3288 | | | | | 3289 | 422 | Unsupported | request references a | Send an | 3290 | | playback | media resource for | request | 3291 | | format | playback whose format | (Section 4.4.1) | 3292 | | | is not supported by | requesting the MS | 3293 | | | the MS | capabilities and | 3294 | | | | then use one of | 3295 | | | | the listed | 3296 | | | | playback media | 3297 | | | | formats. | 3298 | | | | | 3299 | 423 | Unsupported | request references a | Send an | 3300 | | record format | media resource for | request | 3301 | | | recording whose | (Section 4.4.1) | 3302 | | | format is not | requesting the MS | 3303 | | | supported by the MS | capabilities and | 3304 | | | | then use one of | 3305 | | | | the listed record | 3306 | | | | media formats. | 3307 | | | | | 3308 | 424 | Unsupported | request references a | Send an | 3309 | | grammar | grammar whose format | request | 3310 | | format | is not supported by | (Section 4.4.1) | 3311 | | | the MS | requesting the MS | 3312 | | | | capabilities and | 3313 | | | | then use one of | 3314 | | | | the listed grammar | 3315 | | | | types. | 3316 | | | | | 3317 | 425 | Unsupported | request contains a | Send an | 3318 | | variable | prompt | request | 3319 | | configuration | element | (Section 4.4.1) | 3320 | | | (Section 4.3.1.1.1) | requesting the MS | 3321 | | | not supported by the | capabilities and | 3322 | | | MS | then use one of | 3323 | | | | the listed | 3324 | | | | variable types. | 3325 | | | | | 3326 | 426 | Unsupported | request contains a | | 3327 | | DTMF | prompt element | | 3328 | | configuration | (Section 4.3.1.1.2) | | 3329 | | | not supported by the | | 3330 | | | MS | | 3331 | | | | | 3332 | 427 | Unsupported | request contains a | | 3333 | | parameter | element | | 3334 | | | (Section 4.2.6.1) not | | 3335 | | | supported by the MS | | 3336 | | | | | 3337 | 428 | Unsupported | request contains a | | 3338 | | media stream | element | | 3339 | | configuration | (Section 4.2.2.2) | | 3340 | | | whose configuration | | 3341 | | | is not supported by | | 3342 | | | the MS. | | 3343 | | | | | 3344 | 429 | Unsupported | request contains a | | 3345 | | playback | element | | 3346 | | configuration | (Section 4.3.1.1) | | 3347 | | | which the MS is | | 3348 | | | unable to play on the | | 3349 | | | available output | | 3350 | | | media streams | | 3351 | | | | | 3352 | 430 | Unsupported | request contains a | | 3353 | | record | element | | 3354 | | configuration | (Section 4.3.1.1) | | 3355 | | | which the MS is | | 3356 | | | unable to record with | | 3357 | | | on the available | | 3358 | | | input media streams | | 3359 | | | | | 3360 | 431 | Unsupported | the request contains | | 3361 | | foreign | attributes or | | 3362 | | namespace | elements from another | | 3363 | | attribute or | namespace which the | | 3364 | | element | MS does not support | | 3365 | | | | | 3366 | 432 | Unsupported | the request tries to | | 3367 | | multiple | start another dialog | | 3368 | | dialog | on the same | | 3369 | | capability | conference or | | 3370 | | | connection where a | | 3371 | | | dialog is already | | 3372 | | | running | | 3373 | | | | | 3374 | 433 | Unsupported | the request contains | | 3375 | | collect and | and | | 3376 | | record | elements and | | 3377 | | capability | the MS does support | | 3378 | | | these operations | | 3379 | | | simultaneously | | 3380 | | | | | 3381 | 434 | Unsupported | the request contains | | 3382 | | VAD | a element | | 3383 | | capability | where Voice Activity | | 3384 | | | Detection (VAD) is | | 3385 | | | required, but the MS | | 3386 | | | does not support VAD. | | 3387 | | | | | 3388 | 435 | Unsupported | the request contains | | 3389 | | parallel | a prompt | | 3390 | | playback | element whose | | 3391 | | | configuration is not | | 3392 | | | supported by the MS. | | 3393 | | | | | 3394 | 439 | Other | request requires | | 3395 | | unsupported | another capability | | 3396 | | capability | not supported by the | | 3397 | | | MS | | 3398 +------+---------------+-----------------------+--------------------+ 3400 Table 1: status codes 3402 4.6. Type Definitions 3404 This section defines types referenced in attribute and element 3405 definitions. 3407 4.6.1. Boolean 3409 The value space of boolean is the set {true, false}. 3411 4.6.2. DTMFChar 3413 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 3414 7, 8, 9, #, *, A, B, C, D}. 3416 4.6.3. DTMFString 3418 A String composed of one or more DTMFChars. 3420 4.6.4. Non-Negative Integer 3422 The value space of non-negative integer is the infinite set 3423 {0,1,2,...}. 3425 4.6.5. Positive Integer 3427 The value space of positive integer is the infinite set {1,2,...}. 3429 4.6.6. String 3431 A string in the character encoding associated with the XML element. 3433 4.6.7. Time Designation 3435 A time designation consists of a non-negative real number followed by 3436 a time unit identifier. 3438 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 3440 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 3442 4.6.8. Percentage 3444 A percentage consists of a Positive Integer followed by "%". 3446 Examples include: "100%", "500%" and "10%". 3448 4.6.9. URI 3450 Uniform Resource Indicator as defined in [RFC3986]. 3452 4.6.10. MIME Media Type 3454 A string formated as a IANA MIME media type ([MIME.mediatypes]). 3456 4.6.11. Language Identifier 3458 A language identifier labels information content as being of a 3459 particular human language variant. Following the XML specification 3460 for language identification [XML], a legal language identifier is 3461 identified by a RFC566 ([RFC5646]) and RFC4647 ([RFC4647]) code where 3462 the language code is required and a country code or other subtag 3463 identifier is optional. 3465 4.6.12. DateTime 3467 A string formated according to the XML schema definition of a 3468 dateTime type ([XMLSchema:Part2]). 3470 5. Formal Syntax 3472 This section defines the XML schema for IVR Control Package. 3474 The schema defines datatypes, attributes, dialog management and IVR 3475 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 3476 most elements the order of child elements is significant. The schema 3477 is extensible: elements allow attributes and child elements from 3478 other namespaces. Elements from outside this package's namespace can 3479 occur after elements defined in this package. 3481 The schema is dependent upon the schema (framework.xsd) defined in 3482 Section 16.1 of the Control Framework 3483 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 3484 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 3485 xml:base). 3487 3488 3494 3495 3496 IETF MediaCtrl IVR 1.0 (20100225) 3498 This is the schema of the IETF MediaCtrl IVR control 3499 package. 3501 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 3503 3504 3506 3514 3516 3517 3518 This import brings in the XML attributes for 3519 xml:base, xml:lang, etc 3521 See http://www.w3.org/2001/xml.xsd for latest version 3522 3523 3524 3526 3529 3530 3531 This import brings in the framework attributes for 3532 conferenceid and connectionid. 3533 3534 3535 3537 3545 3546 3547 3548 This type is extended by other (non-mixed) component types to 3549 allow attributes from other namespaces. 3550 3551 3552 3553 3554 3556 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3579 3580 3581 3583 3584 3585 3587 3589 3597 3599 3600 3601 3602 3603 3605 3607 3609 3610 3611 3612 3613 3614 3616 3618 3619 3620 3622 3624 3626 3627 3628 3629 3630 3632 3634 3636 3638 3640 3641 3642 3643 3644 3645 3647 3649 3651 3652 3653 3654 3656 3657 3659 3660 3661 3662 3663 3665 3666 3668 3670 3671 3672 3674 3676 3678 3679 3680 3681 3682 3684 3685 3687 3688 3690 3691 3692 3693 3695 3697 3699 3700 3701 3702 3703 3704 3706 3708 3710 3711 3712 3714 3715 3716 3718 3720 3722 3723 3724 3725 3726 3728 3730 3732 3734 3736 3738 3739 3741 3742 3743 3744 3746 3748 3750 3751 3752 3753 3754 3756 3757 3759 3761 3763 3764 3765 3767 3769 3771 3772 3773 3774 3775 3777 3778 3780 3782 3783 3784 3786 3788 3790 3791 3792 3793 3794 3796 3798 3799 3800 3801 3803 3805 3807 3808 3809 3810 3811 3813 3814 3816 3817 3818 3819 3821 3823 3825 3826 3827 3828 3829 3831 3832 3834 3836 3837 3838 3840 3841 3843 3844 3845 3846 3847 3849 3851 3852 3854 3856 3857 3858 3860 3862 3864 3865 3866 3867 3868 3870 3871 3873 3875 3877 3878 3879 3881 3883 3885 3886 3887 3888 3889 3891 3893 3894 3895 3896 3898 3900 3902 3903 3904 3905 3906 3908 3909 3911 3912 3913 3915 3917 3918 3919 3920 3921 3922 3924 3926 3927 3928 3929 3931 3932 3933 3934 3935 3936 3938 3939 3940 3941 3942 3944 3946 3948 3949 3950 3951 3952 3954 3956 3958 3959 3961 3962 3964 3965 3966 3968 3970 3971 3972 3973 3975 3977 3978 3979 3980 3982 3984 3986 3987 3988 3989 3990 3992 3994 3996 3998 4000 4001 4003 4005 4007 4008 4009 4011 4013 4015 4016 4017 4018 4019 4020 4021 4022 4023 4026 4027 4028 4030 4031 4032 4034 4036 4038 4039 4040 4041 4042 4044 4045 4047 4048 4050 4052 4054 4056 4057 4058 4060 4062 4064 4065 4066 4067 4068 4070 4071 4074 4076 4077 4078 4079 4080 4081 4083 4085 4087 4088 4089 4090 4091 4093 4094 4096 4098 4100 4102 4103 4104 4106 4108 4110 4111 4112 4113 4114 4115 4116 4117 4118 4120 4122 4123 4124 4126 4128 4130 4131 4132 4133 4134 4135 4136 4137 4139 4140 4141 4142 4144 4146 4148 4149 4150 4151 4152 4154 4155 4157 4158 4159 4161 4163 4165 4167 4169 4171 4173 4175 4177 4179 4181 4183 4184 4185 4187 4189 4191 4192 4193 4194 4195 4197 4199 4200 4202 4204 4206 4208 4210 4212 4214 4215 4216 4217 4219 4220 4221 4222 4223 4225 4226 4227 4228 4230 4231 4233 4235 4237 4238 4239 4240 4241 4243 4245 4246 4248 4250 4252 4254 4256 4258 4260 4262 4263 4264 4265 4267 4275 4277 4278 4279 4280 4281 4283 4284 4286 4288 4290 4291 4292 4294 4296 4298 4299 4300 4301 4302 4304 4306 4308 4309 4311 4313 4314 4315 4317 4319 4321 4322 4323 4324 4325 4327 4329 4331 4332 4333 4334 4336 4338 4340 4341 4342 4344 4346 4348 4349 4350 4351 4352 4354 4356 4357 4358 4359 4360 4362 4364 4365 4366 4367 4368 4370 4372 4374 4376 4378 4380 4382 4384 4386 4387 4388 4389 4391 4393 4395 4397 4399 4400 4401 4402 4403 4406 4408 4409 4410 4411 4413 4415 4417 4418 4419 4420 4421 4423 4425 4426 4427 4428 4430 4432 4434 4435 4436 4437 4438 4440 4442 4443 4444 4445 4447 4449 4451 4452 4453 4454 4455 4457 4459 4460 4461 4462 4464 4466 4468 4469 4470 4471 4472 4474 4476 4477 4478 4479 4481 4483 4484 4485 4486 4487 4489 4491 4492 4493 4494 4495 4496 4498 4500 4501 4502 4503 4504 4506 4507 4508 4509 4511 4513 4515 4518 4520 4523 4525 4526 4527 4528 4529 4531 4533 4534 4535 4536 4538 4540 4542 4543 4544 4545 4546 4548 4550 4551 4553 4555 4556 4557 4558 4560 4562 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 Time designation following Time in CSS2 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 DTMF character [0-9#*A-D] 4635 4636 4637 4638 4639 4641 4642 4643 4644 4645 DTMF sequence [0-9#*A-D] 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 whole integer followed by '%' 4656 4657 4658 4659 4660 4661 4663 4664 4665 4666 4667 4668 4669 4671 4672 4673 4674 4675 4676 4677 4678 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4697 4698 6. Examples 4700 This section provides examples of the IVR Control package. 4702 6.1. AS-MS Dialog Interaction Examples 4704 The following example assume a control channel has been established 4705 and synced as described in the Media Control Channel Framework 4706 ([I-D.ietf-mediactrl-sip-control-framework]). 4708 The XML messages are in angled brackets (with the root 4709 omitted); the REPORT status is in round brackets. Other aspects of 4710 the protocol are omitted for readability. 4712 6.1.1. Starting an IVR dialog 4714 An IVR dialog is started successfully, and dialogexit notification 4715 is sent from the MS to the AS when the dialog exits normally. 4717 Application Server (AS) Media Server (MS) 4718 | | 4719 | (1) CONTROL: | 4720 | ----------------------------------------> | 4721 | | 4722 | (2) 202 | 4723 | <--------------------------------------- | 4724 | | 4725 | | 4726 | (3) REPORT: | 4727 | (terminate) | 4728 | <---------------------------------------- | 4729 | | 4730 | (4) 200 | 4731 | ----------------------------------------> | 4732 | | 4733 | (5) CONTROL: | 4734 | | 4735 | <---------------------------------------- | 4736 | | 4737 | (6) 200 | 4738 | ----------------------------------------> | 4739 | | 4741 6.1.2. IVR dialog fails to start 4743 An IVR dialog fails to start due to an unknown dialog language. The 4744 is reported in a framework 200 message. 4746 Application Server (AS) Media Server (MS) 4747 | | 4748 | (1) CONTROL: | 4749 | ----------------------------------------> | 4750 | | 4751 | (2) 200: | 4752 | <---------------------------------------- | 4753 | | 4755 6.1.3. Preparing and starting an IVR dialog 4757 An IVR dialog is prepared and started successfully, and then the 4758 dialog exits normally. 4760 Application Server (AS) Media Server (MS) 4761 | | 4762 | (1) CONTROL: | 4763 | ----------------------------------------> | 4764 | | 4765 | (2) 202 | 4766 | <--------------------------------------- | 4767 | | 4768 | (3) REPORT: | 4769 | (terminate) | 4770 | <---------------------------------------- | 4771 | | 4772 | (4) 200 | 4773 | ----------------------------------------> | 4774 | | 4775 | (5) CONTROL: | 4776 | ----------------------------------------> | 4777 | | 4778 | (6) 202 | 4779 | <--------------------------------------- | 4780 | | 4781 | (7) REPORT: | 4782 | (terminate) | 4783 | <---------------------------------------- | 4784 | | 4785 | (8) 200 | 4786 | ----------------------------------------> | 4787 | | 4788 | (9) CONTROL: | 4789 | <---------------------------------------- | 4790 | | 4791 | (10) 200 | 4792 | ----------------------------------------> | 4793 | | 4795 6.1.4. Terminating a dialog 4797 An IVR dialog is started successfully, and then terminated by the AS. 4798 The dialogexit event is sent to the AS when the dialog exits. 4800 Application Server (AS) Media Server (MS) 4801 | | 4802 | (1) CONTROL: | 4803 | ----------------------------------------> | 4804 | | 4805 | (2) 202 | 4806 | <--------------------------------------- | 4807 | | 4808 | (3) REPORT: | 4809 | (terminate) | 4810 | <---------------------------------------- | 4811 | | 4812 | (4) 200 | 4813 | ----------------------------------------> | 4814 | | 4815 | (5) CONTROL: | 4816 | ----------------------------------------> | 4817 | | 4818 | (6) 200: | 4819 | <---------------------------------------- | 4820 | | 4821 | (7) CONTROL: | 4822 | <---------------------------------------- | 4823 | | 4824 | (8) 200 | 4825 | ----------------------------------------> | 4826 | | 4828 Note that in (6) the payload to the 4829 request is carried on a framework 200 response since it could 4830 complete the requested operation before the transaction timeout. 4832 6.2. IVR Dialog Examples 4834 The following examples show how is used with 4835 , and elements to play prompts, 4836 set runtime controls, collect DTMF input and record user input. 4838 The examples do not specify all messages between the AS and MS. 4840 6.2.1. Playing announcements 4842 This example prepares an announcement composed of two prompts where 4843 the dialog repeatCount set to 2. 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4856 If the dialog is prepared successfully, a is returned with 4857 status 200 and a dialog identifier assigned by the MS: 4859 4860 4861 4863 The prepared dialog is then started on a conference playing the 4864 prompts twice: 4866 4867 4868 4870 In the case of a successful dialog, the output is provided in 4871 ; for example 4873 4874 4875 4876 4877 4878 4879 4881 6.2.2. Prompt and collect 4883 In this example, a prompt is played and then the MS waits for 30s for 4884 a two digit sequence: 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4897 If no user input is collected within 30s, then following notification 4898 event would be returned: 4900 4901 4902 4903 4904 4905 4906 4907 4909 The collect operation can be specified without a prompt. Here the MS 4910 just waits for DTMF input from the user (the maxdigits attribute of 4911 defaults to 5): 4913 4914 4915 4916 4917 4918 4919 4921 If the dialog is successful, then dialogexit contains the 4922 dtmf collected in its result parameter: 4924 4925 4926 4927 4928 4929 4930 /mscivr> 4932 And finally in this example, one of the input parameters is invalid: 4934 4935 4936 4937 4938 4939 4940 4943 4944 4945 4947 The error is reported in the response: 4949 4950 4952 4954 6.2.3. Prompt and record 4956 In this example, the user is prompted, then their input is recorded 4957 for a maximum of 30 seconds. 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4970 If successful and the recording is terminated by DTMF, the following 4971 is returned in a dialogexit : 4973 4974 4975 4976 4977 4979 4980 4981 4982 4984 6.2.4. Runtime controls 4986 In this example, a prompt is played with collect and runtime controls 4987 are activated. 4989 4990 4991 4992 4993 4994 4995 4997 4998 4999 5000 5002 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 5003 execute runtime controls on the prompt queue. The keys do not cause 5004 bargein to occur. If the user presses any other key, then the prompt 5005 is interrupted and DTMF collect begins. Note that runtime controls 5006 are not active during the collect operation. 5008 When the dialog is completed successfully, then both control and 5009 collect information is reported. 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5025 6.2.5. Subscriptions and notifications 5027 In this example, a looped dialog is started with subscription for 5028 notifications each time the user input matches the collect grammar: 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5041 Each time the user input the DTMF matching the grammar, the following 5042 notification event would be sent: 5044 5045 5046 5048 5049 5051 If no user input was provided, or the input did not match the 5052 grammar, the dialog would continue to loop until terminated (or an 5053 error occurred). 5055 6.2.6. Dialog repetition until DTMF collection complete 5057 This example is a prompt and collect dialog to collect the PIN from 5058 the user. The repeatUntilComplete attribute in the is set 5059 to true in this case so that when the grammar collection is complete, 5060 the MS automatically terminates the dialog repeat cycle and reports 5061 the results in a event. 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5074 If the user barges in on the prompt and receives DTMF input 5075 matching the grammar, the dialog cycle is considered complete and the 5076 MS returns the following: 5078 5079 5080 5081 5082 5083 5084 5085 5087 If no user input was provided, or the input did not match the 5088 grammar, the dialog would loop for a maximum of 3 times. 5090 6.3. Other Dialog Languages 5092 The following example requests that a VoiceXML dialog is started: 5094 5095 5100 5101 nfs://nas01/media1.3gp 5102 nfs://nas01/media2.3gp 5103 5104 5105 5106 If the MS does not support this dialog language, then the response 5107 would have the status code 421 (Section 4.5). However, if it does 5108 support the VoiceXML dialog language, it would respond with a 200 5109 status, activate the VoiceXML dialog and make the available 5110 to the VoiceXML script as described in Section 12. 5112 When the VoiceXML dialog exits, exit namelist parameters are 5113 specified using in the dialogexit event: 5115 5116 5117 5118 5119 peter 5120 1234 5121 5122 5123 5124 5126 6.4. Foreign Namespace Attributes and Elements 5128 An MS can support attributes and elements from foreign namespaces 5129 within the element. For example, the MS could support a 5130 element (in a foreign namespace) for speech recognition by 5131 analogy to how support DTMF collection. 5133 In the following example, a prompt and collect request is extended 5134 with a element: 5136 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5151 In the root element, the xmlns:ex attribute declares that 5152 "ex" is associated with the foreign namespace URI 5153 "http://www.example.com/mediactrl/extensions/1". The , 5154 its attributes and child elements are associated with this namespace. 5155 This could be defined so that it activates an SRGS grammar 5156 and listens for user input matching the grammar in a similar manner 5157 to DTMF collection. 5159 If an MS receives this request but does not support the 5160 element, then it would send a 431 response: 5162 5163 5165 5167 If the MS does support this foreign element, it would send a 200 5168 response and start the dialog with speech recognition. When the 5169 dialog exits, it provides information about the execution 5170 within , again using elements in a foreign namespace such 5171 as below: 5173 5175 5176 5177 5178 5179 5180 5182 Note that in reply the AS sends a Control Framework 200 response even 5183 though the notification event contains an element in a foreign 5184 namespace which it might not understand. 5186 7. Security Considerations 5188 As this control package processes XML markup, implementations MUST 5189 address the security considerations of [RFC3023]. 5191 Implementations of this control package MUST address security, 5192 confidentiality and integrity of messages transported over the 5193 control channel as described in Section 11 of the Media Control 5194 channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), 5195 including Transport Level Protection, Control Channel Policy 5196 Management and Session Establishment. In addition, implementations 5197 MUST address security, confidentiality and integrity of User Agent 5198 sessions with the MS, both in terms of SIP signaling and associated 5199 RTP media flow; see [I-D.ietf-mediactrl-sip-control-framework] for 5200 further details on this topic. Finally, implementations MUST address 5201 security, confidentiality and integrity of sessions where, following 5202 a URI scheme, an MS uploads recordings or retrieves documents and 5203 resources (e.g. fetching a grammar document from a web server using 5204 HTTPS). 5206 Adequate transport protection and authentication are critical, 5207 especially when the implementation is deployed in open networks. If 5208 the implementation fails to correctly address these issues, it risks 5209 exposure to malicious attacks, including (but not limited to): 5211 Denial of Service: An attacker could insert a request message into 5212 the transport stream causing specific dialogs on the MS to be 5213 terminated immediately. For example, , where the value of "XXXX" could 5215 be guessed or discovered by auditing active dialogs on the MS 5216 using an request. Likewise, an attacker could impersonate 5217 the MS and insert error responses into the transport stream so 5218 denying the AS access to package capabilities. 5220 Resource Exhaustion: An attacker could insert into the control 5221 channel new request messages (or modify existing ones) with, for 5222 instance, elements with a very long fetchtimeout 5223 attribute and a bogus source URL. At some point this will exhaust 5224 the number of connections that the MS is able to make. 5226 Phishing: An attacker with access to the control channel could 5227 modify the "loc" attribute of the element in a dialog to 5228 point to some other audio file that had different information from 5229 the original. This modified file could include a different phone 5230 number for people to call if they want more information or need to 5231 provide additional information (such as governmental, corporate or 5232 financial information). 5234 Data Theft: An attacker could modify a element in the 5235 control channel so as to add a new recording location: 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5248 The recorded data would be uploaded to two locations indicated by 5249 the "{Good URI}" and the "{Attacker's URI}". This allows the 5250 attacker to steal the recorded audio (which could include 5251 sensitive or confidential information) without the originator of 5252 the request necessarily being aware of the theft. 5254 The Media Control Channel Framework permits additional security 5255 policy management, including resource access and control channel 5256 usage, to be specified at the control package level beyond that 5257 specified for the Media Control Channel Framework (see Section 11.3 5258 of [I-D.ietf-mediactrl-sip-control-framework]). 5260 Since creation of IVR dialogs is associated with media processing 5261 resources (e.g. DTMF detectors, media playback and recording, etc) 5262 on the MS, the security policy for this control package needs to 5263 address how such dialogs are securely managed across more than one 5264 control channels. Such a security policy is only useful for secure, 5265 confidential and integrity protected channels. The identity of 5266 control channels is determined by the channel identifier: i.e. the 5267 value of the cfw-id attribute in the SDP and Dialog-ID header in the 5268 channel protocol (see [I-D.ietf-mediactrl-sip-control-framework]). 5269 Channels are the same if they have the same identifier; otherwise, 5270 they are different. This control package imposes the following 5271 additional security policies: 5273 Responses: The MS MUST only send a response to a dialog management 5274 or audit request using the same control channel as the one used to 5275 send the request. 5277 Notifications: The MS MUST only send notification events for a 5278 dialog using the same control channel as it received the request 5279 creating the dialog. 5281 Auditing: The MS MUST only provide audit information about dialogs 5282 which have been created on the same control channel as the one 5283 upon the request is sent. 5285 Rejection: The MS SHOULD reject requests to audit or manipulate an 5286 existing dialog on the MS if the channel is not the same as the 5287 one used when the dialog was created. The MS rejects a request by 5288 sending a Control Framework 403 response (see Section 7.4 and 5289 Section 11.3 of [I-D.ietf-mediactrl-sip-control-framework]). For 5290 example, if a channel with identifier 'cfw1234' has been used to 5291 send a request to create a particular dialog and the MS receives 5292 on channel 'cfw98969' a request to audit or terminate the dialog, 5293 then the MS sends a 403 framework response. 5295 There can be valid reasons why an implementation does not reject an 5296 audit or dialog manipulation request on a different channel from the 5297 one which created the dialog. For example, a system administrator 5298 might require a separate channel to audit dialog resources created by 5299 system users and to terminate dialogs consuming excessive system 5300 resources. Alternatively, a system monitor or resource broker might 5301 require a separate channel to audit dialogs managed by this package 5302 on a MS. However, the full implications need to be understood by the 5303 implementation and carefully weighted before accepting these reasons 5304 as valid. If the reasons are not valid in their particular 5305 circumstances, the MS rejects such requests. 5307 There can also be valid reasons for 'channel handover' including high 5308 availability support or where one AS needs to take over management of 5309 dialogs after the AS which created them has failed. This could be 5310 achieved by the control channels using the same channel identifier, 5311 one after another. For example, assume a channel is created with the 5312 identifier 'cfw1234' and the channel is used to create dialogs on the 5313 MS. This channel (and associated SIP dialog) then terminates due to 5314 a failure on the AS. As permitted by the Control Framework, the 5315 channel identifier 'cfw1234' could then be reused so that another 5316 channel is created with the same identifier 'cfw1234', allowing it to 5317 'take over' management of the dialogs on the MS. Again, the 5318 implementation needs to understand the full implications and 5319 carefully weight them before accepting these reasons as valid. If 5320 the reasons are not valid for their particular circumstances, the MS 5321 uses the appropriate SIP mechanisms to prevent session establishment 5322 when the same channel identifier is used in setting up another 5323 control channel (see Section 4 of 5324 [I-D.ietf-mediactrl-sip-control-framework]). 5326 8. IANA Considerations 5328 This specification instructs IANA to register a new Media Control 5329 Channel Framework Package, a new XML namespace, a new XML schema and 5330 a new MIME type. 5332 8.1. Control Package Registration 5334 This section registers a new Media Control Channel Framework package, 5335 per the instructions in Section 12.1 of 5336 [I-D.ietf-mediactrl-sip-control-framework]. 5338 Package Name: msc-ivr/1.0 5339 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 5340 with the RFC number for this specification.] 5341 Published Specification(s): RFCXXXX 5342 Person & email address to contact for further information: 5343 IETF, MEDIACTRL working group, (mediactrl@ietf.org), 5344 Scott McGlashan (smcg.stds01@mcglashan.org). 5346 8.2. URN Sub-Namespace Registration 5348 This section registers a new XML namespace, 5349 "urn:ietf:params:xml:ns:msc-ivr", per the guidelines in RFC 3688 5350 [RFC3688]. 5352 URI: urn:ietf:params:xml:ns:msc-ivr 5353 Registrant Contact: IETF, MEDIACTRL working group, 5354 (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). 5355 XML: 5356 BEGIN 5357 5358 5360 5361 5362 Media Control Channel Framework IVR 5363 Package attributes 5364 5365 5366

Namespace for Media Control Channel 5367 Framework IVR Package attributes

5368

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

5369 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 5370 with the RFC number for this specification.] 5371

See RFCXXXX

5372 5373 5374 END 5376 8.3. XML Schema Registration 5378 This section registers an XML schema as per the guidelines in RFC 5379 3688 [RFC3688]. 5381 URI: urn:ietf:params:xml:ns:msc-ivr 5382 Registrant Contact: IETF, MEDIACTRL working group, 5383 (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). 5384 Schema: The XML for this schema can be found in 5385 Section 5 of this document. 5387 8.4. MIME Media Type Registration for 'application/msc-ivr+xml' 5389 This section registers the "application/msc-ivr+xml" MIME type. 5391 To: ietf-types@iana.org 5392 Subject: Registration of MIME media type 5393 application/msc-ivr+xml 5394 MIME media type name: application 5395 MIME subtype name: msc-ivr+xml 5396 Required parameters: (none) 5397 Optional parameters: charset 5398 Indicates the character encoding of enclosed XML. Default is 5399 UTF-8. 5400 Encoding considerations: Uses XML, which can employ 8-bit 5401 characters, depending on the character encoding used. See RFC 5402 3023 [RFC3023], section 3.2. 5403 Security considerations: No known security considerations outside 5404 of those provided by the Media Control Channel Framework IVR 5405 Package. 5406 Interoperability considerations: This content type provides 5407 constructs for the Media Control Channel Framework IVR package. 5408 Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please 5409 replace XXXX with the RFC number for this specification.] 5410 Applications which use this media type: Implementations of 5411 the Media Control Channel Framework IVR package. 5412 Additional Information: Magic Number(s): (none) 5413 File extension(s): (none) 5414 Macintosh File Type Code(s): (none) 5415 Person & email address to contact for further information: Scott 5416 McGlashan 5417 Intended usage: LIMITED USE 5418 Author/Change controller: The IETF 5419 Other information: None. 5421 9. Change Summary 5423 Note to RFC Editor: Please remove this whole section. 5425 The following are the changes between the -08 and -07 versions 5426 (addressing IETF Last Call comments): 5428 o 4.2: Changed recommended maximum duration value for a prepared 5429 dialog from 30s to 300s. 5431 o 4.2: Changed the dialog state machine so that when a PREPARED 5432 dialog is terminated, the MS always sends a 5433 notification event. 5435 o 4.2.1/4.2.2: Clarified that dialog preparation covers retrieval of 5436 external resources (e.g. media, grammar, etc) when they are 5437 referenced by an inline element. 5439 o 4.2.2.1.1: Fixed example replacing with in 5440 element 5442 o 4.3.1: Added repeatUntilComplete attribute to to allow 5443 repetition of an dialog until input (DTMF or recording) is 5444 completed successfully. Updated XML schema. Added example in 5445 6.2.6. 5447 o 4.3.1.1.3: Clarified that in the case of , it is 5448 responsibility of the MS to assign the appropriate stream(s) for 5449 playback of each . 5451 o 4.3.1.2: Clarified that DTMF matching s are consumed and 5452 not added to the digit buffer. 5454 o 4.3.1.3: Clarified that 's maxdigits attribute is ignored 5455 if a custom grammar is specified. 5457 o 4.3.1.3: Clarified that when a DTMF input can match more than one 5458 of {termchar, escapekey, grammar}, then the priority of matching 5459 is: termchar, escapekey and then grammar. 5461 o 4.3.1.3: Clarified that the behavior of the escapekey: the MS 5462 discards collected DTMFs already matched against the grammar, and 5463 the MS attempts to match incoming DTMF (including any pending in 5464 the digit buffer) as described in Step 5 of the 5465 execution model. 5467 o 12.2.1: Changed mapping between SIP History-Info and VoiceXML 5468 session.connection.redirect to align with RFC5552 reported Errata. 5470 The following are the changes between the -07 and -06 versions 5471 (primarily addressing AD Review comments): 5473 o Generally corrected references from Section 17.1 to Section 16.1 5474 of Control Channel Framework. 5476 o 4.2.2.1.1: corrected syntax error in example 5478 o 4.2.3.1: corrected example by adding conferenceid attribute. 5480 o 12.1: corrected error code from 407 to 409 in example when vxml 5481 document cannot be retrieved. 5483 o 6.2.2: corrected example by removing bargein="true"; clarified 5484 that maxdigits defaults to 5. 5486 o 4.5: Changed the recovery action for a 405 ('dialogid already 5487 exists') error response. The AS can always recover by not 5488 specifying the id in the creation command and let the MS generate 5489 a unique id in the response. 5491 o 8.1: Removed the To: and Subject: header fields 5493 o Corrected miscellanous typos. 5495 o 4.2.1, 4.2.2 and 4.3.1.3.1: Added authentication information to 5496 the definition of src attribute in , 5497 and . 5499 o 7: Added Security Consideration that uploading/retrieving 5500 documents and resources should be secured. 5502 o 8.4: Changed file extension from '.xml' to (none) 5504 o Changed "~" to a ":" for connectionid 5506 o 4.2.6.1: Clarified that can contain an XML value. 5508 o 4.2.1, 4.2.2, 12.1,12.2, schema: added maxage and maxstale 5509 attributes (optional) to , for HTTP 5510 VoiceXML use case. 5512 o 4.2.2.1: Clarified that a request containing with no 5513 child elements is equivalent to a request without a 5514 element. 5516 o 4.2.5.1: Changed status codes so that only 0-4 5517 defined and all others are reserved for future use requiring a 5518 standard-track RFC. 5520 o 4.5: Changed status code for and so 5521 that certain codes are defined and all others are reserved for 5522 future use requiring a standard-track RFC. 5524 o 4.2.2.2, 12.2.2, various examples: Changed the media 5525 direction so that it is relative to the endpoint, not the dialog. 5526 Now aligned with VoiceXML mapping in RFC 5552. 5528 The following are the changes between the -06 and -05 versions. 5530 o Corrected typo in introduction 5532 o 4.2.1: Added to . Updated VoiceXML 5533 appendix to describe how these parameters are mapped to the 5534 session object. 5536 o 4.3.1.3: : clarified definitions of interdigittimeout and 5537 termtimeout attributes and tightened up the collect execution 5538 model. 5540 o 8: IANA Considerations: Updated IANA registration information and 5541 added registration for the XML Schema 5543 The following are the changes between the -05 and -04 versions. 5545 o Corrected syntax errors in examples: 4.1, 6.2.2, 6.2.5, 6.3 5547 o 6.3: Corrected error status code for unsupported dialog 5549 o 4.4.2.2.2: : corrected text to reflect that no 5550 additional grammar types need be specified. 5552 o Schema: corrected schema to allow with no children, 5553 and renamed to to align with text. 5554 Fixed problem with non-deterministic content models. 5556 o 7. Security Considerations: Added requirement that 5557 implementations need to secure SIP and RTP sessions with User 5558 Agents. 5560 The following are the changes between the -04 and -03 versions. 5562 o 4.2.2.2: Clarified that media stream direction is relative to the 5563 dialog (the examples showed this but not the definition). 5565 o 4.3.1.2: Clarified that speed. volume and seek 5566 operations beyond the platform's capability are automatically 5567 limited to the platform's minimum/maximum. Also clarified that 5568 when the output is paused, then the MS resumes output 5569 automatically on speed, volume and seek control operations. 5571 o 6.2.5: Corrected syntax error in example 5573 o 7 Security: Added a denial of service example where the attacker 5574 impersonates the MS. 5576 o 7 Security: Clarified that the package security policy for 5577 multiple channels is only useful if the channels themselves are 5578 secured. 5580 o Added reference for VoiceXML 3.0 5582 o Updated acknowledgements. 5584 o Appendix A: 12.2: Corrected syntax error in example 5586 o Appendix A: 12.2.1: Changed behavior for how VoiceXML session 5587 information is populated for a conference; session.conference.name 5588 is specified. Added session.connection.originator variable for a 5589 connection (MS receives inbound connections but does not create 5590 outbound connections). 5592 o Appendix A: 12.2.2: Added session.conference.media for conference 5593 media information. Clarified that direction is relative to the 5594 dialog. 5596 o Appendix A: 12.2.2: Corrected syntax error in example 5598 o Appendix A: 12.2.3: Changed session parameter mapping to 5599 session.values using an associative array. 5601 o Appendix A: 12.5: Changed behavior for handling VoiceXML Call 5602 Transfer requests to raising an error.unsupported.transfer event. 5604 The following are the major changes between the -03 and -02 versions. 5606 o Conformance language: Removed unnecessary MUSTs, especially for 5607 error codes. Removed lowercase 'should', 'must' and 'may'. 5609 o Introduction: Clarified which MediaCtrl IVR Requirements are 5610 satisfied by this package. Added link to Security Considerations 5611 Section (also in Section 4.0 and 4.4). 5613 o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS 5614 support of communication protocols in URIs. 5616 o 4.2.2:: Changed RECOMMENDED to MAY for MS support of 5617 multiple dialogs on same connection or conference. Changed 5618 RECOMMENDED to MUST for using in cases where connection 5619 has multiple streams of the same type. 5621 o 4.2.2.2:: Changed RECOMMENDED to MUST for use of common 5622 media attribute values. 5624 o 4.2.2.1: : Clarified that if the MS does not support a 5625 subscription specified in a foreign namespace, then the MS 5626 generates a 431 error response. 5628 o 4.2.4: : Clarified that a dialogid with an empty string 5629 value is used when the request is syntactically invalid. 5631 o 4.2.5.1: : Added reserved range of status codes, and 5632 tightened up the wording. 5634 o 4.3.1.3:: Clarified that termtimeout attribute default of 5635 0s meaning no delay. 5637 o 4.3.1.1.1: : Changed RECOMMENDED to MAY for MS support 5638 of date, time and digits s. Clarified value attribute 5639 format for date, time and digits. 5641 o 4.3.1.1.3: : Removed RECOMMENDED for MS support of parallel 5642 playback of different media. Added error response code (435) if 5643 MS does not support parallel playback configuraton. 5645 o 4.3.1.1.3.1: : Removed RECOMMENDED for MS support of 5646 sequential playback of same media within a (error case 5647 already covered by configuration not supported response 5648 code). 5650 o 4.3.1.4:: Removed RECOMMENDED for MS support of parallel 5651 recording of different media. Clarified wording around uploading 5652 recording data to a media resource location. 5654 o 4.3.1.4: : Clarified the definition of vadinitial and 5655 vadfinal. Changed the default values to false. Added a response 5656 error (434) for when the MS does not support VAD. 5658 o 4.3.1.5: . Removed unnecesaary SHOULD for MS ignoring 5659 fetchtimeout, soundLevel, clipBegin and clipEnd when used 5660 for recording. Clarified definition of loc and type attributes 5661 with stronger conformance language. Similar clarifications of 5662 type attributes in , and . 5664 o 4.3.2.4.1: : Clarified usage and strengthen conformance 5665 language. 5667 o 4.4.2.22: : Changed MUST to MUST NOT for inclusion 5668 of mandatory SRGS grammar format. Updated examples. 5670 o Updated schema. 5672 o Security Considerations: Major update. Added examples showing 5673 malicious attacks when channel security is not correctly 5674 addressed. Added more details on multiple channel cases including 5675 administrator and monitor channels as well as channel handover. 5677 o Removed affliations in Contributors and Acknowledgements sections. 5679 o Added Appendix A describing how to use VoiceXML with this package 5680 if it is supported by the MS. 5682 o Corrected typos and nits. 5684 The following are the major changes between the -02 and -01 versions. 5686 o corrected typos. 5688 o Section 3: Aligned Control Package definitions with requirements 5689 in Section 8 of the Control Framework. 5691 o Section 4.2.2.2: Added child element to 5692 element (alignment with mixer package). 5694 o Following October Interim meeting discussion on response codes, 5695 generally clarified usage of error status codes, modified some 5696 codes and re-organized the response codes section (Section 4.5) 5697 with more guidance and details. 5699 o Section 4.3.1.5: Following October Interim meeting request for 5700 parallel playback and record, created a generalized version of 5701 used for both playback and record. The 'src' attribute is 5702 renamed to 'loc'. Updated and definitions as 5703 described below. 5705 o Sections 4.3.1.1/4.3.1.1.4: : Added child element to 5706 allow parallel playback of separate media resources. The 5707 element has a child element to allow a sequence of media 5708 resources to be played at the same time as other resources are 5709 played in parallel. 5711 o Sections 4.3.1.4/4.3.1.4.1: : Removed 'dest' and 'type' 5712 attributes. Added child elements to support parallel 5713 recording to separate media resource locations. 5715 o Sections 4.3.2.4/4.3.2.4.1: : Removed 'dest', 'type' 5716 and 'size' attribute. Added child elements with 5717 'loc', 'type' and 'size' attributes. 5719 o Section 4.4.2.2.4: Renamed to to 5720 clarify distinction with . 5722 o Sections 4.3.1.4: : Clarified RFC2119 language around 5723 vadinitial and vadfinal behavior. 5725 o Updated schema. Removed some element-specific syntactic 5726 constraint statements which are already covered in the schema. 5728 o 4.3.1: occurrence of without a no longer 5729 treated as a syntax error - instead runtime controls are simply 5730 ignored. 5732 o 5734 The following are the major changes between the -01 and -00 versions. 5736 o 7: Updated security section referencing control framework security 5737 and adding policy requirement to address dialog resource 5738 management over multiple channels. 5740 o corrected typos and example errors 5742 o 4.2: [IVR-200] Added state machine for dialog lifecycle. 5744 o 4.2: clarified dialog identifier assignment and use, including MS 5745 assignment of dialogid in and . 5747 o 4.2/4.2.3: clarified behavior when dialog is not 5748 in a STARTED state. 5750 o 1/4.2: Clarified concept of dialog language and replaced 5751 references to 'dialog types' with dialog languages. Replaced 5752 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that 5753 IVR is inline and other supported dialog languages are 5754 specified by reference. Removed default type values for 5755 and . 5757 o 4.4.2.2.1: clarified that the inline dialog language () 5758 must not be listed as an additional supported dialog language. 5760 o 4.2.2.2: [IVR-201] Added element to so that 5761 dialog video output can be directed to a specific region a 5762 conference video layout. 5764 o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format 5765 for digits. 5767 o 4.4.2.1.1:[IVR-203]: added to to allow additional 5768 codec information to be specified. 5770 o 4.5: added error status code for unsupported URI (415), invalid 5771 region identifier (416), fetchtimeout exceeded (417), syntactic 5772 constraint violation (418), unsupported media format (419), 5773 unsupported grammar format (420), unsupported variable 5774 announcement (421), unsupported DTMF tone generation (422), 5775 conflict with control key values (423), unsupported recording 5776 format (424). 5778 o Generally, replaced 'it is an error ...' language with RFC2119 5779 language, making error codes more explicit. 5781 o 4.3.1: Clarified that an MS MAY support and 5782 elements co-occurring in a element, but the MS MUST send 5783 an error response if they are not supported. Clarified that MS 5784 MUST send an error response if is specified without a 5785 element. 5787 o 4.2.5.2: clarified that the timestamp in is that of 5788 the last DTMF in a matching input sequence. 5790 o References: more references now normative. 5792 o 4.3: Replaced passive voice language with active voice language in 5793 the description of execution models. 5795 o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is 5796 completely unrelated to the term 'SIP dialog'. 5798 o 4: Added clarification that elements with URI attributes are 5799 recommended to support one or more communication protocols 5800 suitable for fetching resources. 5802 o 4.3.1.4: clarified MS MAY support upload of recording 5803 data during recording, and that upload errors (e.g. authentication 5804 failures, communication errors, etc) are execution errors. Added 5805 'append' attribute to control behavior when a recorded resource 5806 already exists at the recording location. 5808 o 4.2.2: Clarified that an error is reported if with 5809 contains parameters which the MS cannot process for the 5810 given dialog language. 5812 o 4.2.6.1: removed 'valuetype' attribute and clarified that 5813 the type attribute indicates the MIME media type associated with 5814 the inline value. 5816 o 4.3.1.4: Added append attribute to to control whether 5817 recordings are appended or not to the recording location resource. 5819 o 4.3.1.1.1: Added clipEnd attribute to to control when 5820 playback of the media ends. 5822 o 4.3.1: Clarified that when there are multiple iterations of a 5823 dialog (using repeatCount attribute) only the results of the last 5824 dialog iteration are reported. 5826 o 4.4.2.2: Added ability to audit capability, as well as 5827 maximum duration of prepared dialogs and of recordings. 5829 o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in 5830 and how reports its status. 5832 o 4: Changed handling of unsupported foreign namespace elements and 5833 attributes. The MS send a 426 error response if it encounters 5834 foreign elements and attributes it does not support. 5836 The following are the major changes between the -00 of this work 5837 group item draft and the individual submission -05 version. 5839 o [IVR01] When the MS sends a notification event in a CONTROL, the 5840 AS sends mandatory 200 response (no extended transaction). 5842 o [IVR23] Added a top-level container element, , with 5843 version attribute. 5845 o Removed term 'basic' in title, description, elements and IANA 5846 registration. Control package name is now 'msc-ivr/1.0'. 5847 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 5848 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 5849 'dialog' and moved version attribute to mscivr element. 5851 o [IVR15] Updated and simplified XML schema. Ordering of child 5852 elements is significant. 5854 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 5855 'soundLevel' and 'clipBegin' to media element. 5857 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 5858 Added 'repeatCount' and 'repeatDur' to dialog element. 5860 o Moved VCR commands from into separate element. 5861 Defined controlinfo element to report runtime control match 5862 information. 5864 o [IVR05] Added to where AS can subscribe 5865 to DTMF key presses (all, control match only, collect match only). 5866 Extended to support associated notification. 5868 o Moved definition of into a separate section. 5870 o [IVR21] Added audit capability: auditing of package capabilities 5871 and managed dialogs 5873 o [IVR21] Explicitly stated that an error must be reported if the 5874 connection or conference referenced in a is not 5875 available at the time the request is processed on the MS. 5877 o Clarified that the rendering mechanism is MS 5878 implementation specific. 5880 o [IVR09]/[IVR10] Clarified attribute definitions and 5881 added 'gender' attribute. 5883 o [IVR16] Clarified that info must be reported in dialogexit, if the 5884 corresponding element is specified in a . For example, if 5885 is specified, then must be specified if the 5886 dialog terminates normally. 5888 o [IVR18] Added 'inactive' value for direction attribute of 5889 . 5891 o [IVR19] Clarified case of on connection/conference 5892 with multiple streams of the same type: recommended to be set 5893 explicitly with s. 5895 o [IVR02] Clarified that multiple dialogs may started simultaneously 5896 on the same connection or conference. 5898 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 5899 in the PREPARED state. 5901 o Added in and for input/output 5902 in other dialog types 5904 o [IVR22] Added fetchtimeout parameter to dialogprepare, 5905 dialogstart, media and grammar elements. 5907 o [IVR04] Added dialogexit status to indicate the connection or 5908 conference has been terminated. Added others status errors. 5910 o [IVR08] Clarified that the operation does not interrupt 5911 playing prompts and that matched DTMF is not available to 5912 or operations during prompt playback. 5914 o [IVR11] Added runtime controls for speed, goto start/end and 5915 external controls. 5917 o Clarified that recordings can be uploaded to dest during or after 5918 the recording operation. 5920 o /: clarified timer handling - timeout refers to 5921 waiting time for collect/record to begin. 5923 o Clarified behavior of immediate attribute on . 5925 o clarified dialogid lifecycle: dialogids can be re-cycled. 5927 o Clarified error handling. 5929 o Editorial tidy up of sections. 5931 o dialogid attribute on is now mandatory. 5933 o Clarified that the duration specified in finalsilence attribute of 5934 is not part of the final recording. 5936 o Clarified that the SRGS XML grammar format is mandatory 5938 The following are the major changes between the -06 of the draft and 5939 the -05 version. 5941 o Event notifications are sent in CONTROL messages with the MS 5942 acting as Control Framework Client. Compared with the previous 5943 approach, this means that a transaction is now 5944 complete when the MS sends a . A new transaction is 5945 initiated by the MS each time the MS sends a notification 5946 to the AS. 5948 o Changed conf-id to conferenceid and connection-id to connectionid. 5950 o Clarification of the state model for dialogs 5952 o : modified definition of src attribute to allow 5953 reference to external dialog documents; added (MIME) type 5954 attribute; removed child element. 5956 o : modified definition of src attribute to allow 5957 reference to external dialog documents; added (MIME) type 5958 attribute; removed child element; 5960 o : modified so that a dialogexit event is always 5961 sent for active dialogs (i.e. the dialogexit event is a 5962 terminating notification) 5964 o notification simplified and make more extensible. Manual 5965 notifications (via element) are removed from the basic 5966 package. A event is defined as child and it 5967 can be extended with additional child elements 5969 o element is removed. 5971 o element removed. 5973 o Replaced dialog templates with a general element. It has 5974 child elements for playing media resource (), collecting 5975 DTMF () and recording (). The functionality is 5976 largely unchanged. 5978 o and are extended with child 5979 element. 5981 o is extended with a element which contains 5982 status and reported information (replacement for output parameters 5983 in template dialogs) 5985 o Prompts: now structured as a element with , 5986 and children. The element has xml:base 5987 attribute, bargein, iterations, duration, volume and offset 5988 attributes. The speed attribute is removed. A element 5989 has src and type attributes. The maxage and maxstale attributes 5990 are removed. 5992 o DTMF input: parameters now specified as attributes of a 5993 element. Custom grammar specified with a element as 5994 child of element. Added 'escapekey' to allow the dialog 5995 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 5996 to allow the prompts to paused/resumed. Added 'volumeinterval', 5997 'volupkey' and voldnkey' to add prompt volume to be increased/ 5998 decreased. Moved 'bargein' attribute to prompt. 6000 o Recording: parameters now specified as attributes of 6001 element. Added 'dest' and 'beep' attributes. 6003 The following are the major changes between the -05 of the draft and 6004 the -04 version. 6006 o Mainly an alignment/evaluation exercise with requirements produced 6007 by MEDIACTRL IVR design team. 6009 o playannouncement parameters from Table 7 of '04' version are now 6010 reflected in text - schema to be updated. 6012 o Added VCR commands based on MSCML. 6014 The following are the major changes between the -04 of the draft and 6015 the -03 version. 6017 o None. 6019 The following are the major changes between the -03 of the draft and 6020 the -02 version. 6022 o added "basicivr:" protocol to template dialog types which must be 6023 supported as values of the "src" attribute in and 6024 . Note alternative: "/basicivr/playannouncement" 6025 offered in [RFC4240]. 6027 o added "basicivr:" URI schema to IANA considerations 6029 o Added mimetype, vadinitial and vadfinal parameters to 6030 'promptandrecord' dialog type 6032 o updated references 6034 The following are the major changes between the -02 of the draft and 6035 the -01 version. 6037 o added version 1.0 to package name 6039 o separate section for element definitions 6041 o dialogterminate treated as request rather than notification 6042 o simplified responses: single element 6044 o removed response elements: , , 6045 , 6047 o simplified event notifications to single element carried 6048 in a REPORT 6050 o element replaced with 6052 o removed element 6054 o added element as child of 6056 o removed 'type' attribute from and 6058 o added dialogid attribute to and 6060 o removed template "Sample Implementation" section 6062 o renamed to 6064 o re-organized so that template details after general package 6065 framework and element description. 6067 The following are the primary changes between the -01 of the draft 6068 and the -00 version. 6070 o Removed requirement for VoiceXML dialog support 6072 o Added requirement for template dialog support 6074 10. Contributors 6076 Asher Shiratzky provided valuable support and contributions to the 6077 early versions of this document. 6079 The authors would like to thank the IVR design team consisting of 6080 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary 6081 Barnes and Steve Buko who provided valuable feedback, input and text 6082 to this document. 6084 11. Acknowledgments 6086 The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave 6087 Burke, Dan York, Steve Buko, Jean-Francois Bertrand and Henry Lum for 6088 expert reviews of this work. 6090 Ben Campbell carried out the RAI expert review on this specification 6091 and provided a great deal of invaluable input. Donald Eastlake 6092 carried out a thorough security review. 6094 12. Appendix A: Using VoiceXML as a dialog language 6096 The IVR control package allows, but does not require, the MS to 6097 support other dialog languages by referencing an external dialog 6098 document. This appendix provides MS implementations which support 6099 the VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with 6100 additional details about using these dialogs in this package. 6102 This appendix covers preparing (Section 12.1), starting 6103 (Section 12.2), terminating (Section 12.3) and exiting (Section 12.4) 6104 VoiceXML dialogs as well as handling VoiceXML call transfer 6105 (Section 12.5). 6107 12.1. Preparing a VoiceXML dialog 6109 A VoiceXML dialog is prepared by sending the MS a request containing 6110 a element (Section 4.2.1). The type attribute is set 6111 to "application/voicexml+xml" and the src attribute to the URI of the 6112 VoiceXML document which is to be prepared by the MS. For example: 6114 6115 6118 6120 The VoiceXML dialog environment uses the request as 6121 an opportunity to fetch and validate the initial document indicated 6122 by the src attribute along with any resources referenced in the 6123 VoiceXML document marked as prefetchable. The maxage and maxstale 6124 attributes, if specified, control how the initial VoiceXML document 6125 is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout 6126 attribute is not defined in VoiceXML for an initial document but the 6127 MS MUST support this attribute in its VoiceXML environment. 6129 If a child element of is specified, then the 6130 MS MUST map the parameter information into a VoiceXML session 6131 variable object as described in Section 12.2.3. 6133 The success or failure of the VoiceXML document preparation is 6134 reported in the MS response. For example, if the VoiceXML document 6135 cannot be retrieved, then a 409 error response is returned. If the 6136 document is syntactically invalid according to VoiceXML, then a 400 6137 response is returned. If successful, the response includes a 6138 dialogid attribute whose value the AS can use in 6139 element to start the prepared dialog. 6141 12.2. Starting a VoiceXML dialog 6143 A VoiceXML dialog is started by sending the MS a request containing a 6144 element (Section 4.2.2). If a VoiceXML dialog has 6145 already been prepared using , then the MS starts the 6146 dialog indicated by the prepareddialogid attribute. Otherwise, a new 6147 VoiceXML dialog can be started by setting the type attribute to 6148 "application/voicexml+xml" and the src attribute to the URI of the 6149 VoiceXML document. For example: 6151 6152 6156 6158 The maxage and maxstale attributes, if specified, control how the 6159 initial VoiceXML document is fetched using HTTP (see [RFC2616]). 6160 Note that the fetchtimeout attribute is not defined in VoiceXML for 6161 an initial document but the MS MUST support this attribute in its 6162 VoiceXML environment. Note also that support for 6163 subscriptions (Section 4.2.2.1.1) and their associated dialog 6164 notification events is not defined in VoiceXML. If such a 6165 subscription is specified in a request, then the MS 6166 sends a 439 error response (see Section 4.5). 6168 The success or failure of starting a VoiceXML dialog is reported in 6169 the MS response as described in Section 4.2.2. 6171 When the MS starts a VoiceXML dialog, the MS MUST map session 6172 information into a VoiceXML session variable object. There are 3 6173 types of session information: protocol information (Section 12.2.1), 6174 media stream information (Section 12.2.2) and parameter information 6175 (Section 12.2.3). 6177 12.2.1. Session protocol information 6179 If the connectionid attribute is specified, the MS assigns protocol 6180 information from the SIP dialog associated with the connection to the 6181 following session variables in VoiceXML: 6183 session.connection.local.uri Evaluates to the SIP URI specified in 6184 the To: header of the initial INVITE 6186 session.connection.remote.uri Evaluates to the SIP URI specified in 6187 the From: header of the initial INVITE 6189 session.connection.originator Evaluates to the value of 6190 session.connection.remote (MS receives inbound connections but 6191 does not create outbound connections) 6193 session.connection.protocol.name Evaluates to "sip". Note that this 6194 is intended to reflect the use of SIP in general, and does not 6195 distinguish between whether the connection accesses the MS via SIP 6196 or SIPS procedures. 6198 session.connection.protocol.version Evaluates to "2.0". 6200 session.connection.redirect This array is populated by information 6201 contained in the History-Info ([RFC4244]) header in the initial 6202 INVITE or is otherwise undefined. Each entry (hi-entry) in the 6203 History-Info header is mapped, in the order it appeared in the 6204 History-Info header, into an element of the 6205 session.connection.redirect array. Properties of each element of 6206 the array are determined as follows: 6208 uri Set to the hi-targeted-to-uri value of the History-Info entry 6210 pi Set to 'true' if hi-targeted-to-uri contains a 6211 'Privacy=history' parameter, or if the INVITE Privacy header 6212 includes 'history'; 'false' otherwise 6214 si Set to the value of the 'si' parameter if it exists, undefined 6215 otherwise 6217 reason Set verbatim to the value of the 'Reason' parameter of hi- 6218 targeted-to-uri 6220 session.connection.aai Evaluates to the value of a SIP header with 6221 the name "aai" if present; otherwise undefined. 6223 session.connection.protocol.sip.requesturi This is an associative 6224 array where the array keys and values are formed from the URI 6225 parameters on the SIP Request-URI of the initial INVITE. The 6226 array key is the URI parameter name. The corresponding array 6227 value is obtained by evaluating the URI parameter value as a 6228 string. In addition, the array's toString() function returns the 6229 full SIP Request-URI. 6231 session.connection.protocol.sip.headers This is an associative array 6232 where each key in the array is the non-compact name of a SIP 6233 header in the initial INVITE converted to lower-case (note the 6234 case conversion does not apply to the header value). If multiple 6235 header fields of the same field name are present, the values are 6236 combined into a single comma-separated value. Implementations 6237 MUST at a minimum include the Call-ID header and MAY include other 6238 headers. For example, 6239 session.connection.protocol.sip.headers["call-id"] evaluates to 6240 the Call-ID of the SIP dialog. 6242 If a conferenceid attribute is specified, then the MS populates the 6243 following session variables in VoiceXML: 6245 session.conference.name Evaluates to the value of the conferenceid 6246 attribute 6248 12.2.2. Session media stream information 6250 The media streams of the connection or conference to use for the 6251 dialog are described in Section 4.2.2, including use of 6252 elements (Section 4.2.2.2) if specified. The MS maps media stream 6253 information into the VoiceXML session variable 6254 session.connection.protocol.sip.media for a connection, and 6255 session.conference.media for a conference. In both variables, the 6256 value of the variable is an array where each array element is an 6257 object with the following properties: 6259 type This required property indicates the type of the media 6260 associated with the stream (see Section 4.2.2.2 type 6261 attribute definition) 6263 direction This required property indicates the directionality of the 6264 media relative to the endpoint of the dialog (see Section 4.2.2.2 6265 direction attribute definition). 6267 format This property is optional. If defined, the value of the 6268 property is an array. Each array element is an object which 6269 specifies information about one format of the media stream. The 6270 object contains at least one property called name whose value is 6271 the subtype of the media format ([RFC4855]). Other properties may 6272 be defined with string values; these correspond to required and, 6273 if defined, optional parameters of the format. 6275 As a consequence of this definition, when a connectionid is specified 6276 there is an array entry in session.connection.protocol.sip.media for 6277 each media stream used by the VoiceXML dialog. For an example, 6278 consider a connection with bi-directional G.711 mu-law audio sampled 6279 at 8kHz where the dialog is started with 6281 6282 6286 6287 6288 6290 In this case, session.connection.protocol.sip.media[0].type evaluates 6291 to "audio", session.connection.protocol.sip.media[0].direction to 6292 "recvonly" (i.e. the endpoint only receives media from the dialog - 6293 the endpoint does not send media to the dialog), and 6294 session.connection.protocol.sip.media[0].format[0].name evaluates to 6295 "audio/PCMU" and 6296 session.connection.protocol.sip.media[0].format[0].rate evaluates to 6297 "8000". 6299 Note that the session variable is updated if the connection or 6300 conference media session characteristics for the VoiceXML dialog 6301 change (e.g. due to a SIP re-INVITE). 6303 12.2.3. Session parameter information 6305 Parameter information is specified in the child element of 6306 and elements, where each parameter is 6307 specified using a element. The MS maps parameter information 6308 into VoiceXML session variables as follows: 6310 session.values This is an associative array mapped to the 6311 element. It is undefined if no element is specified. If 6312 a element is specified in both and 6313 elements for the same dialog, then the array is 6314 first initialized with the specified in the 6315 element and then updated with the 6316 specified in the element; in cases of conflict, the 6317 parameter value take priority. Array keys and 6318 values are formed from children of the element. 6319 Each array key is the value of the name attribute of a 6320 element. If the same name is used in more than one 6321 element, then the array key is associated with the last in 6322 document order. The corresponding value for each key is an object 6323 with two required properties: a "type" property evaluating to the 6324 value of the type attribute; and a "content" property evaluating 6325 to the content of the . In addition, this object's 6326 toString() function returns the value of the "content" property as 6327 a string. 6329 For example, a VoiceXML dialog started with one parameter: 6331 6332 6336 6337 playannouncement 6338 6339 6340 6342 In this case, session.values would be defined with one item in the 6343 array where session.values['mode'].type evaluates to "text/plain" 6344 (the default value), session.values['mode'].content evaluates to 6345 "playannouncement" and session.values['mode'].toString() also 6346 evaluates to "playannouncement". 6348 The MS sends an error response (see Section 4.2.2) if a is 6349 not supported by the MS (e.g. the parameter type is not supported). 6351 12.3. Terminating a VoiceXML dialog 6353 When the MS receives a request with a element 6354 (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event 6355 into the specified VoiceXML dialog. Note that if the immediate 6356 attribute has the value true, then the MS MUST NOT return 6357 information when the VoiceXML dialog exits (even if the VoiceXML 6358 dialog provides such information) - see Section 12.4. 6360 If the connection or conference associated with the VoiceXML dialog 6361 terminates, then the MS throws a 'connection.disconnect.hangup' event 6362 into the specified VoiceXML dialog. 6364 12.4. Exiting a VoiceXML dialog 6366 The MS sends a notification event (Section 4.2.5.1) when 6367 the VoiceXML dialog is complete, has been terminated or because it 6368 exits due to an error. The status attribute specifies 6369 the status of the VoiceXML dialog when it exits and its 6370 child element specifies information, if any, returned from the 6371 VoiceXML dialog. 6373 A VoiceXML dialog exits when it processes a element, a 6374 element or an implicit exit according to the VoiceXML FIA. If 6375 the VoiceXML dialog executes a and then subsequently 6376 executes an with namelist information, the namelist 6377 information from the element is discarded. 6379 The MS reports namelist variables in the element of the 6380 . Each reports on a namelist variable. The MS 6381 set the name attribute to the name of the VoiceXML variable. 6382 The MS sets the type attribute according to the type of the 6383 VoiceXML variable. The MS sets the type to 'text/plain' when 6384 the VoiceXML variable is a simple ECMAScript value. If the VoiceXML 6385 variable is a recording, the MS sets the type to the MIME 6386 media type of the recording and encodes the recorded content as CDATA 6387 in the (see Section 4.2.6.1 for an example). If the VoiceXML 6388 variable is a complex ECMAScript value (e.g. object, array, etc), the 6389 MS sets the type to 'application/json' and converts the 6390 variable value to its JSON value equivalent ([RFC4627]. The behavior 6391 resulting from specifying an ECMAScript object with circular 6392 references is not defined. 6394 If the expr attribute is specified on the VoiceXML element 6395 instead of the namelist attribute, the MS creates a element 6396 with the reserved name '__exit', the type 'text/plain' and the 6397 content of the expr attribute. To allow the AS to differentiate 6398 between a notification event resulting from a VoiceXML 6399 from one resulting from an , the MS creates a 6400 with the reserved name '__reason', the type 'text/plain', and 6401 a value of "disconnect" (without brackets) to reflect the use of 6402 VoiceXML's element, and the value of "exit" (without 6403 brackets) to an explicit in the VoiceXML dialog. If the 6404 VoiceXML session terminates for other reasons (such as encountering 6405 an error), this parameter MAY be omitted or take on platform-specific 6406 values prefixed with an underscore. 6408 Table 2 provides some examples of VoiceXML usage and the 6409 corresponding element in the notification 6410 event. It assumes the following VoiceXML variable names and values: 6411 userAuthorized=true, pin=1234 and errors=0. The type 6412 attributes ('text/plain') are omitted for clarity. 6414 +------------------------+------------------------------------------+ 6415 | Usage | Result | 6416 +------------------------+------------------------------------------+ 6417 | | exit | 6419 | | | 6420 | | exit 5 | 6423 | | | 6424 | | exit 'done' | 6427 | | | 6428 | | name="__reason">exit true | 6431 | | | 6432 | | name="__reason">exit 1234 0 | 6436 +------------------------+------------------------------------------+ 6438 Table 2: VoiceXML mapping examples 6440 12.5. Call Transfer 6442 While VoiceXML is at its core a dialog language, it also provides 6443 optional call transfer capability. It is NOT RECOMMENDED to use 6444 VoiceXML's call transfer capability in networks involving Application 6445 Servers. Rather, the AS itself can provide call routing 6446 functionality by taking signaling actions based on the data returned 6447 to it, either through VoiceXML's own data submission mechanisms or 6448 through the mechanism described in Section 12.4. If the MS 6449 encounters a VoiceXML dialog requesting call transfer capability, the 6450 MS SHOULD raise an error event in the VoiceXML dialog execution 6451 context: an error.unsupported.transfer.blind event if blind transfer 6452 is requested, error.unsupported.transfer.bridge if bridge transfer is 6453 requested, or error.unsupported.transfer.consultation if consultation 6454 transfer is requested. 6456 13. References 6458 13.1. Normative References 6460 [I-D.ietf-mediactrl-sip-control-framework] 6461 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 6462 Control Channel Framework", 6463 draft-ietf-mediactrl-sip-control-framework-11 (work in 6464 progress), October 2009. 6466 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 6467 Requirement Levels", BCP 14, RFC 2119, March 1997. 6469 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 6470 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 6471 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 6473 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 6474 Types", RFC 3023, January 2001. 6476 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 6477 January 2004. 6479 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 6480 Resource Identifier (URI): Generic Syntax", STD 66, 6481 RFC 3986, January 2005. 6483 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 6484 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 6486 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 6487 BCP 47, RFC 4647, September 2006. 6489 [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying 6490 Languages", BCP 47, RFC 5646, September 2009. 6492 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 6493 Specification Version 1.0", W3C Recommendation, 6494 March 2004. 6496 [W3C.REC-SMIL2-20051213] 6497 Layaida, N., Mullender, S., Michel, T., Grassel, G., 6498 Jansen, J., Koivisto, A., Bulterman, D., and D. Zucker, 6499 "Synchronized Multimedia Integration Language (SMIL 2.1)", 6500 World Wide Web Consortium Recommendation REC-SMIL2- 6501 20051213, December 2005, 6502 . 6504 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 6505 and F. Yergeau, "Extensible Markup Language (XML) 1.0 6506 (Third Edition)", W3C Recommendation, February 2004. 6508 [XMLSchema:Part2] 6509 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 6510 Second Edition", W3C Recommendation, October 2004. 6512 13.2. Informative References 6514 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 6515 1.0", W3C Working Draft (work in progress), January 2007. 6517 [H.248.9] "Gateway control protocol: Advanced media server 6518 packages", ITU-T Recommendation H.248.9. 6520 [I-D.ietf-xcon-common-data-model] 6521 Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, 6522 "Conference Information Data Model for Centralized 6523 Conferencing (XCON)", draft-ietf-xcon-common-data-model-18 6524 (work in progress), February 2010. 6526 [IANA] "IANA registry for RTP Payload Types", 6527 . 6529 [MIME.mediatypes] 6530 "IANA registry for MIME Media Types", 6531 . 6533 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 6534 Package", RFC 2897, August 2000. 6536 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 6537 A., Peterson, J., Sparks, R., Handley, M., and E. 6538 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 6539 June 2002. 6541 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 6542 Media Services with SIP", RFC 4240, December 2005. 6544 [RFC4244] Barnes, M., "An Extension to the Session Initiation 6545 Protocol (SIP) for Request History Information", RFC 4244, 6546 November 2005. 6548 [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media 6549 Types: application/voicexml+xml, application/ssml+xml, 6550 application/srgs, application/srgs+xml, application/ 6551 ccxml+xml, and application/pls+xml", RFC 4267, 6552 November 2005. 6554 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 6555 Parameter for "Bucket" Media Types", RFC 4281, 6556 November 2005. 6558 [RFC4627] Crockford, D., "The application/json Media Type for 6559 JavaScript Object Notation (JSON)", RFC 4627, July 2006. 6561 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 6562 (SIP) Event Package for Key Press Stimulus (KPML)", 6563 RFC 4730, November 2006. 6565 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 6566 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 6567 December 2006. 6569 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 6570 Formats", RFC 4855, February 2007. 6572 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 6573 Control Markup Language (MSCML) and Protocol", RFC 5022, 6574 September 2007. 6576 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 6577 Requirements", RFC 5167, March 2008. 6579 [RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup 6580 Language (MSML)", RFC 5707, February 2010. 6582 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 6583 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 6584 and S. Tryphonas, "Voice Extensible Markup Language 6585 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 6587 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 6588 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 6589 A., Porter, B., and K. Rehor, "Voice Extensible Markup 6590 Language (VoiceXML) Version 2.1", W3C Recommendation, 6591 June 2007. 6593 [VXML30] McGlashan, S., Auburn, RJ., Baggia, P., Barnett, J., 6594 Bodell, M., Burnett, D., Carter, J., Oshry, M., Rehor, K., 6595 Young, M., and R. Hosn, "Voice Extensible Markup Language 6596 (VoiceXML) Version 3.0", W3C Working Draft, December 2008. 6598 Authors' Addresses 6600 Scott McGlashan 6601 Hewlett-Packard 6603 Email: smcg.stds01@mcglashan.org 6605 Tim Melanchuk 6606 Rain Willow Communications 6608 Email: tim.melanchuk@gmail.com 6610 Chris Boulton 6611 NS-Technologies 6613 Email: chris@ns-technologies.com