idnits 2.17.00 (12 Aug 2021) /tmp/idnits30693/draft-ietf-mediactrl-ivr-control-package-07.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 27 instances of lines with non-RFC2606-compliant FQDNs in the document. == There are 22 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 (November 25, 2009) is 4559 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 4614, but not defined == Missing Reference: 'IVR-200' is mentioned on line 5619, but not defined == Missing Reference: 'IVR-201' is mentioned on line 5637, but not defined == Missing Reference: 'IVR01' is mentioned on line 5716, but not defined == Missing Reference: 'IVR23' is mentioned on line 5719, but not defined == Missing Reference: 'IVR15' is mentioned on line 5728, but not defined == Missing Reference: 'IVR06' is mentioned on line 5731, but not defined == Missing Reference: 'IVR05' is mentioned on line 5741, but not defined == Missing Reference: 'IVR21' is mentioned on line 5750, but not defined == Missing Reference: 'IVR16' is mentioned on line 5760, but not defined == Missing Reference: 'IVR18' is mentioned on line 5765, but not defined == Missing Reference: 'IVR19' is mentioned on line 5768, but not defined == Missing Reference: 'IVR02' is mentioned on line 5772, but not defined == Missing Reference: 'IVR20' is mentioned on line 5775, but not defined == Missing Reference: 'IVR22' is mentioned on line 5781, but not defined == Missing Reference: 'IVR04' is mentioned on line 5784, but not defined == Missing Reference: 'IVR08' is mentioned on line 5787, but not defined == Missing Reference: 'IVR11' is mentioned on line 5791, but not defined -- Looks like a reference, but probably isn't: '0' on line 6171 == 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) ** Obsolete normative reference: RFC 4646 (Obsoleted by RFC 5646) -- 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 == Outdated reference: draft-saleem-msml has been published as RFC 5707 -- 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: 4 errors (**), 0 flaws (~~), 25 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: May 29, 2010 Rain Willow Communications 6 C. Boulton 7 NS-Technologies 8 November 25, 2009 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-07 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 May 29, 2010. 50 Copyright Notice 52 Copyright (c) 2009 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. . . . . . . . . . . . . . . . . . . . . 20 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. . . . . . . . . . . . . . . . . . . 27 100 4.2.4. . . . . . . . . . . . . . . . . . . . . . 28 101 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 30 102 4.2.5.1. . . . . . . . . . . . . . . . . . . 30 103 4.2.5.2. . . . . . . . . . . . . . . . . . . 31 104 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 32 105 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 33 106 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 33 107 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 35 108 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 37 109 4.3.1.1.1. . . . . . . . . . . . . . . . . . 38 110 4.3.1.1.2. . . . . . . . . . . . . . . . . . . . 40 111 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . . 41 112 4.3.1.1.3.1. . . . . . . . . . . . . . . . . . . 42 113 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 44 114 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 46 115 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 49 116 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 50 117 4.3.1.5. . . . . . . . . . . . . . . . . . . . . . 54 118 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 119 4.3.2.1. . . . . . . . . . . . . . . . . . . 56 120 4.3.2.2. . . . . . . . . . . . . . . . . . . 56 121 4.3.2.2.1. . . . . . . . . . . . . . . . 56 122 4.3.2.3. . . . . . . . . . . . . . . . . . . 56 123 4.3.2.4. . . . . . . . . . . . . . . . . . . 57 124 4.3.2.4.1. . . . . . . . . . . . . . . . . . 57 126 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 58 127 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 58 128 4.4.2. . . . . . . . . . . . . . . . . . . . 59 129 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 61 130 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 62 131 4.4.2.2. . . . . . . . . . . . . . . . . . 62 132 4.4.2.2.1. . . . . . . . . . . . . . . 64 133 4.4.2.2.2. . . . . . . . . . . . . . . . 65 134 4.4.2.2.3. . . . . . . . . . . . . . . . . 65 135 4.4.2.2.4. . . . . . . . . . . . . . . . . 65 136 4.4.2.2.5. . . . . . . . . . . . . . . . . . 66 137 4.4.2.2.5.1. . . . . . . . . . . . . . 66 138 4.4.2.2.6. . . . . . . . . . . . . 67 139 4.4.2.2.7. . . . . . . . . . . . . . 67 140 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 67 141 4.4.2.3.1. . . . . . . . . . . . . . . . . 67 142 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 68 143 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 74 144 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76 145 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 103 146 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 103 147 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 103 148 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 104 149 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 104 150 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 105 151 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 106 152 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 106 153 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 107 154 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 109 155 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 110 156 6.2.5. Subscriptions and notifications . . . . . . . . . . . 111 157 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 111 158 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 112 159 7. Security Considerations . . . . . . . . . . . . . . . . . . . 115 160 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 118 161 8.1. Control Package Registration . . . . . . . . . . . . . . 118 162 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 118 163 8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 119 164 8.4. MIME Media Type Registration for 165 'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 119 166 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 121 167 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 134 168 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 135 169 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 136 170 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 144 171 13.1. Normative References . . . . . . . . . . . . . . . . . . 144 172 13.2. Informative References . . . . . . . . . . . . . . . . . 145 173 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 147 175 1. Introduction 177 The Media Control Channel Framework 178 ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic 179 approach for establishment and reporting capabilities of remotely 180 initiated commands. The Control Framework utilizes many functions 181 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 182 rendezvous and establishment of a reliable channel for control 183 interactions. The Control Framework also introduces the concept of a 184 Control Package. A Control Package is an explicit usage of the 185 Control Framework for a particular interaction set. This document 186 defines a Control Package for Interactive Voice Response (IVR) 187 dialogs on media connections and conferences. The term 'dialog' in 188 this document refers to an IVR dialog and is completely unrelated to 189 the notion of a SIP dialog. The term 'IVR' is used in its inclusive 190 sense, allowing media other than voice for dialog interaction. 192 The package defines dialog management request elements for preparing, 193 starting and terminating dialog interactions, as well as associated 194 responses and notifications. Dialog interactions are specified using 195 a dialog language where the language specifies a well-defined syntax 196 and semantics for permitted operations (play a prompt, record input 197 from the user, etc). This package defines a lightweight IVR dialog 198 language (supporting prompt playback, runtime controls, DTMF collect 199 and media recording) and allows other dialog languages to be used. 200 These dialog languages are specified inside dialog management 201 elements for preparing and starting dialog interactions. The package 202 also defines elements for auditing package capabilities and IVR 203 dialogs. 205 This package has been designed to satisfy IVR requirements documented 206 in the Media Server Control Protocol Requirements document 207 ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. 208 It achieves this by building upon two major approaches to IVR dialog 209 design. These approaches address a wide range of IVR use cases and 210 are used in many applications which are extensively deployed today. 212 First, the package is designed to provide the major IVR functionality 213 of SIP Media Server languages such as netann ([RFC4240]), MSCML 214 ([RFC5022]) and MSML ([MSML]) which themselves build upon more 215 traditional non-SIP languages ([H.248.9], [RFC2897]). A key 216 differentiator is that this package provides IVR functionality using 217 the Media Control Channel Framework. 219 Second, its design is aligned with key concepts of the web model as 220 defined in W3C Voice Browser languages. The key dialog management 221 mechanism is closely aligned with CCXML ([CCXML10]). The dialog 222 functionality defined in this package can be largely seen as a subset 223 of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, 224 DTMF collection and media recording features are incorporated, but 225 not any advanced VoiceXML constructs (such as
, its 226 interpretation algorithm, or a dynamic data model). As W3C develops 227 VoiceXML 3.0 ([VXML30]), we expect to see further alignment, 228 especially in providing a set of basic independent primitive elements 229 (such as prompt, collect, record and runtime controls) which can be 230 re-used in different dialog languages. 232 By reusing and building upon design patterns from these approaches to 233 IVR languages, this package is intended to provide a foundation which 234 is familiar to current IVR developers and sufficient for most IVR 235 applications, as well as a path to other languages which address more 236 advanced applications. 238 This control package defines a lightweight IVR dialog language. The 239 scope of this dialog language is the following IVR functionality: 241 o playing one or more media resources as a prompt to the user 243 o runtime controls (including VCR controls like speed and volume) 245 o collecting DTMF input from the user according to a grammar 247 o recording user media input 249 Out of scope for this dialog language are more advanced functions 250 including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), 251 fax, automatic prompt recovery ('media fallback') and media 252 transformation. Such functionality can be addressed by other dialog 253 languages (such as VoiceXML) used with this package, extensions to 254 this package (addition of foreign elements or attributes from another 255 namespace) or other control packages. 257 The functionality of this package is defined by messages, containing 258 XML [XML] elements, transported using the Media Control Channel 259 Framework. The XML elements can be divided into three types: dialog 260 management elements; a dialog element which defines a lightweight IVR 261 dialog language used with dialog management elements; and finally, 262 elements for auditing package capabilities as well as dialogs managed 263 by the package. 265 Dialog management elements are designed to manage the general 266 lifecycle of a dialog. Elements are provided for preparing a dialog, 267 starting the dialog on a conference or connection, and terminating 268 execution of a dialog. Each of these elements is contained in a 269 Media Control Channel Framework CONTROL message sent to the media 270 server. When the appropriate action has been executed, the media 271 server sends a REPORT message (or a 200 response to the CONTROL if it 272 can execute in time) with a response element indicating whether the 273 operation was successful or not (e.g. if the dialog cannot be 274 started, then the error is reported in this response). Once a dialog 275 has been successfully started, the media server can send further 276 event notifications in a framework CONTROL message. This package 277 defines two event notifications: a DTMF event indicating the DTMF 278 activity; and a dialogexit event indicating that the dialog has 279 exited. If the dialog has executed successfully, the dialogexit 280 event includes information collected during the dialog. If an error 281 occurs during execution (e.g. a media resource failed to play, no 282 recording resource available, etc), then error information is 283 reported in the dialogexit event. Once a dialogexit event is sent, 284 the dialog lifecycle is terminated. 286 The dialog management elements for preparing and starting a dialog 287 specify the dialog using a dialog language. A dialog language has 288 well-defined syntax and semantics for defined dialog operations. 289 Typically dialog languages are written in XML where the root element 290 has a designated XML namespace and, when used as standalone 291 documents, have an associated MIME media type. For example, VoiceXML 292 is an XML dialog language with the root element with the 293 designated namespace 'http://www.w3.org/2001/vxml' and standalone 294 documents are associated with the MIME media type 'application/ 295 voicexml+xml' ([RFC4267]). 297 This control package defines its own lightweight IVR dialog language. 298 The language has a root element () with the same designated 299 namespace as used for other elements defined in this package (see 300 Section 8.2). The root element contains child elements for playing 301 prompts to the user, specifying runtime controls, collecting DTMF 302 input from the user and recording media input from the user. The 303 child elements can co-occur so as to provide 'play announcement', 304 'prompt and collect' as well as 'prompt and record' functionality. 306 The dialog management elements for preparing and starting a dialog 307 can specify the dialog language either by including inline a fragment 308 with the root element or by referencing an external dialog document. 309 The dialog language defined in this package is specified inline. 310 Other dialog languages, such as VoiceXML, can be used by referencing 311 an external dialog document. 313 The document is organized as follows. Section 3 describes how this 314 control package fulfills the requirements for a Media Control Channel 315 Framework control package. Section 4 describes the syntax and 316 semantics of defined elements, including dialog management 317 (Section 4.2), the IVR dialog element (Section 4.3) and audit 318 elements (Section 4.4). Section 5 describes an XML schema for these 319 elements and provides extensibility by allowing attributes and 320 elements from other namespaces. Section 6 provides examples of 321 package usage. Section 7 describes important security considerations 322 for use of this control package. Section 8 provides information on 323 IANA registration of this control package, including its name, XML 324 namespace and MIME media type. Finally, Section 12 provides 325 additional information on using VoiceXML when supported as an 326 external dialog language. 328 2. Conventions and Terminology 330 In this document, BCP 14 [RFC2119] defines the key words "MUST", 331 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 332 "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In 333 addition, BCP 15 indicates requirement levels for compliant 334 implementations. 336 The following additional terms are defined for use in this document: 338 Dialog: A dialog performs media interaction with a user following 339 the concept of an IVR (Interactive Voice Response) dialog (this 340 sense of 'dialog' is completely unrelated to a SIP dialog). A 341 dialog is specified as inline XML, or via a URI reference to an 342 external dialog document. Traditional IVR dialogs typically 343 feature capabilities such as playing audio prompts, collecting 344 DTMF input and recording audio input from the user. More 345 inclusive definitions include support for other media types, 346 runtime controls, synthesized speech, recording and playback of 347 video, recognition of spoken input, and mixed initiative 348 conversations. 350 Application server: A SIP [RFC3261] application server (AS) hosts 351 and executes services such as interactive media and conferencing 352 in an operator's network. An AS influences and impacts the SIP 353 session, in particular by terminating SIP sessions on a media 354 server, which is under its control. 356 Media Server: A media server (MS) processes media streams on behalf 357 of an AS by offering functionality such as interactive media, 358 conferencing, and transcoding to the end user. Interactive media 359 functionality is realized by way of dialogs which are initiated by 360 the application server. 362 3. Control Package Definition 364 This section fulfills the mandatory requirement for information that 365 MUST be specified during the definition of a Control Framework 366 Package, as detailed in Section 8 of 367 [I-D.ietf-mediactrl-sip-control-framework]. 369 3.1. Control Package Name 371 The Control Framework requires a Control Package to specify and 372 register a unique name and version. 374 The name and version of this Control Package is "msc-ivr/1.0" (Media 375 Server Control - Interactive Voice Response - version 1.0). Its IANA 376 registration is specified in Section 8.1. 378 Since this is the initial ("1.0") version of the control package, 379 there are no backwards compatibility issues to address. 381 3.2. Framework Message Usage 383 The Control Framework requires a Control Package to explicitly detail 384 the control messages that can be used as well as provide an 385 indication of directionality between entities. This will include 386 which role type is allowed to initiate a request type. 388 This package specifies CONTROL and response messages in terms of XML 389 elements defined in Section 4, where the message bodies have the MIME 390 media type defined in Section 8.4. These elements describe requests, 391 response and notifications and all are contained within a root 392 element (Section 4.1). 394 In this package, the MS operates as a Control Server in receiving 395 requests from, and sending responses to, the AS (operating as Control 396 Client). Dialog management requests and responses are defined in 397 Section 4.2. Audit requests and responses are defined in 398 Section 4.4. dialog management and audit responses are carried in a 399 framework 200 response or REPORT message bodies. This package's 400 response codes are defined in Section 4.5. 402 Note that package responses are different from framework response 403 codes. Framework error response codes (see Section 8 of 404 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 405 or event notification is invalid; for example, a request is invalid 406 XML (400), or not understood (500). 408 The MS also operates as a Control Client in sending event 409 notification to the AS (Control Server). Event notifications 410 (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST 411 respond with a Control Framework 200 response. 413 3.3. Common XML Support 415 The Control Framework requires a Control Package definition to 416 specify if the attributes for media dialog or conference references 417 are required. 419 This package requires that the XML Schema in Section 16.1 of 420 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 421 media dialogs and conferences. 423 The package uses "connectionid" and "conferenceid" attributes for 424 various element definitions (Section 4). The XML schema (Section 5) 425 imports the definitions of these attributes from the framework 426 schema. 428 3.4. CONTROL Message Body 430 The Control Framework requires a Control Package to define the 431 control body that can be contained within a CONTROL command request 432 and to indicate the location of detailed syntax definitions and 433 semantics for the appropriate body types. 435 When operating as Control Server, the MS receives CONTROL messages 436 body with the MIME media type defined in Section 8.4 and containing 437 an element (Section 4.1) with either a dialog management or 438 audit request child element. 440 The following dialog management request elements are carried in 441 CONTROL message bodies to MS: (Section 4.2.1), 442 (Section 4.2.2) and 443 (Section 4.2.3)elements. 445 The request element (Section 4.4.1) is also carried in 446 CONTROL message bodies. 448 When operating as Control Client, the MS sends CONTROL messages with 449 the MIME media type defined in Section 8.4 and a body containing an 450 element (Section 4.1) with a notification child 451 element (Section 4.2.5). 453 3.5. REPORT Message Body 455 The Control Framework requires a control package definition to define 456 the REPORT body that can be contained within a REPORT command 457 request, or that no report package body is required. This section 458 indicates the location of detailed syntax definitions and semantics 459 for the appropriate body types. 461 When operating as Control Server, the MS sends REPORT bodies with the 462 MIME media type defined in Section 8.4 and containing a 463 element (Section 4.1) with a response child element. The response 464 element for dialog management requests is a element 465 (Section 4.2.4). The response element for an audit request is a 466 element (Section 4.4.2). 468 3.6. Audit 470 The Control Framework encourages Control Packages to specify whether 471 auditing is available, how it is triggered as well as the query/ 472 response formats. 474 This Control Packages supports auditing of package capabilities and 475 dialogs on the MS. An audit request is carried in a CONTROL message 476 (see Section 3.4) and an audit response in a REPORT message (or a 200 477 response to the CONTROL if it can execute the audit in time) (see 478 Section 3.5). 480 The syntax and semantics of audit request and response elements is 481 defined in Section 4.4. 483 3.7. Examples 485 The Control Framework recommends Control Packages to provide a range 486 of message flows that represent common flows using the package and 487 this framework document. 489 This Control Package provides examples of such message flows in 490 Section 6. 492 4. Element Definitions 494 This section defines the XML elements for this package. The elements 495 are defined in the XML namespace specified in Section 8.2. 497 The root element is (Section 4.1). All other XML elements 498 (requests, responses and notification elements) are contained within 499 it. Child elements describe dialog management (Section 4.2) and 500 audit (Section 4.4) functionality. The IVR dialog element (contained 501 within dialog management elements) is defined in Section 4.3. 502 Response status codes are defined in Section 4.5 and type definitions 503 in Section 4.6. 505 Implementation of this control package MUST address the Security 506 Considerations described in Section 7. 508 Implementation of this control package MUST adhere to the syntax and 509 semantics of XML elements defined in this section and the schema 510 (Section 5). Since XML Schema is unable to support some types of 511 syntactic constraints (such as attribute and element co-occurrence), 512 some elements in this package specify additional syntactic 513 constraints in their textual definition. If there is a difference in 514 constraints between the XML schema and the textual description of 515 elements in this section, the textual definition takes priority. 517 The XML schema supports extensibility by allowing attributes and 518 elements from other namespaces. Implementations MAY support 519 additional capabilities by means of attributes and elements from 520 other (foreign) namespaces. Attributes and elements from foreign 521 namespaces are not described in this section. 523 Some elements in this control package contain attributes whose value 524 is a URI. These elements include: (Section 4.2.1), 525 (Section 4.2.2), (Section 4.3.1.5), 526 (Section 4.3.1.3.1), and (Section 4.3.1.4). The MS MUST 527 support one or more schemes using communication protocols suitable 528 for fetching resources (e.g. HTTP). 530 Usage examples are provided in Section 6. 532 4.1. 534 The element has the following attributes (in addition to 535 standard XML namespace attributes such as xmlns): 537 version: a string specifying the mscivr package version. The value 538 is fixed as '1.0' for this version of the package. The attribute 539 is mandatory. 541 The element has the following defined child elements, only 542 one of which can occur: 544 1. dialog management elements defined in Section 4.2: 546 prepare a dialog. See Section 4.2.1 548 start a dialog. See Section 4.2.2 550 terminate a dialog. See Section 4.2.3 552 response to a dialog request. See Section 4.2.4 554 dialog or subscription notification. See Section 4.2.5 556 2. audit elements defined in Section 4.4: 558 audit package capabilities and managed dialogs. See 559 Section 4.4.1 561 response to an audit request. See Section 4.4.2 563 For example, a request to the MS to start an IVR dialog playing a 564 prompt: 566 567 568 569 570 571 572 573 574 576 and a response from the MS that the dialog started successfully: 578 579 580 582 and finally a notification from the MS indicating that the dialog 583 exited upon completion of playing the prompt: 585 586 587 588 589 590 591 593 4.2. Dialog Management Elements 595 This section defines the dialog management XML elements for this 596 control package. These elements are divided into requests, responses 597 and notifications. 599 Request elements are sent to the MS to request a specific dialog 600 operation to be executed. The following request elements are 601 defined: 603 : prepare a dialog for later execution 605 : start a (prepared) dialog on a connection or 606 conference 608 : terminate a dialog 610 Responses from the MS describe the status of the requested operation. 611 Responses are specified in a element (Section 4.2.4) which 612 includes a mandatory attribute describing the status in terms of a 613 numeric code. Response status codes are defined in Section 4.5. The 614 MS MUST respond to a request message with a response message. If the 615 MS is not able to process the request and carry out the dialog 616 operation, the request has failed and the MS MUST indicate the class 617 of failure using an appropriate 4xx response code. Unless an error 618 response code is specified for a class of error within this section, 619 implementations follow Section 4.5 in determining the appropriate 620 status code for the response. 622 Notifications are sent from the MS to provide updates on the status 623 of a dialog or operations defined within the dialog. Notifications 624 are specified in an element (Section 4.2.5). 626 +---------+ 627 | IDLE | 628 +---------+ 629 | | 630 | | 631 /| |/ 632 | | 633 +---------+ | | +---------+ 634 +-----<--| |<--------+ +------------>| |+------>-+ 635 | +-<----|PREPARING| |STARTING | | 636 | | | | ----------->| |---->--+ | 637 | | +---------+ / +---------+ | | 638 | | | / | | | 639 | | |/200 response / /200 response| | | 640 | | | / | | | 641 | | | / | | | 642 | | | / | | | 643 V V v // v | | 644 | | +---------+ / +---------+ | | 645 | | | |--------+ +----| | | | 646 | | |PREPARED |---------+ | | STARTED | | | 647 | | | | | +--->| | | | 648 | | | |--------+| /| | | | 649 | | +---------+ || 200 response +---------+ | | 650 | | || | | | 651 | | /dialogexit notification|| | | | 652 | | (timeout) || | | | 653 | | || | | | 654 | | || | | | 655 | | || | | | 656 | | ||/ | | | 657 | | || 200 response | | | 658 | | || |/dialogexit | | 659 | | || | notification | | 660 | | || | | | 661 | | || | | | 662 | | vv | | | 663 | | /ERROR response +-----------+ | | | 664 | +---------------------->| |<----------+ /ERROR response| | 665 +------------------------>|TERMINATED |<---------------------------+ | 666 / | |<-----------------------------+ 667 410 response +-----------+ /410 response 669 Figure 1: Dialog Lifecycle 671 The MS implementation MUST adhere to the dialog lifecycle shown in 672 Figure 1, where each dialog has the following states: 674 IDLE: the dialog is uninitialized. 676 PREPARING: the dialog is being prepared. The dialog is assigned a 677 valid dialog identifier (see below). If an error occurs the 678 dialog transitions to the TERMINATED state and the MS MUST send a 679 response indicating the error. If the dialog is terminated before 680 preparation is complete, the dialog transitions to the TERMINATED 681 state and the MS MUST send a 410 response (Section 4.5) for the 682 prepare request. 684 PREPARED: the dialog has been successfully prepared and the MS MUST 685 send a 200 response indicating the prepare operation was 686 successful. If the dialog is then terminated, the dialog 687 transitions to the TERMINATED state. If the duration the dialog 688 remains in the PREPARED state exceeds the maximum preparation 689 duration, the dialog transitions to the TERMINATED state and the 690 MS MUST send a dialogexit notification with the appropriate error 691 status code (see Section 4.2.5.1). A maximum preparation duration 692 of 30s is RECOMMENDED. 694 STARTING: the dialog is being started. If the dialog has not 695 already been prepared, it is first prepared and assigned a valid 696 dialog identifier (see below). If an error occurs the dialog 697 transitions to the TERMINATED state and the MS MUST send a 698 response indicating the error. If the dialog is terminated, the 699 dialog transitions to the TERMINATED state and the MS MUST send a 700 410 response (Section 4.5) for the start request. 702 STARTED: the dialog has been successfully started and is now active. 703 The MS MUST send a 200 response indicating the start operation was 704 successful. If any dialog events occurs which were subscribed to, 705 the MS MUST send a notifications when the dialog event occurs. 706 When the dialog exits (due to normal termination, an error or a 707 terminate request), the MS MUST send a dialogexit notification 708 event (see Section 4.2.5.1) and the dialog transitions to the 709 TERMINATED state. 711 TERMINATED: the dialog is terminated and its dialog identifier is no 712 longer valid. Dialog notifications MUST NOT be sent for this 713 dialog. 715 Each dialog has a valid identifier until it transitions to a 716 TERMINATED state. The dialog identifier is assigned by the MS unless 717 the or request already specifies a 718 identifier (dialogid) which is not associated with any other dialog 719 on the MS. Once a dialog is in a TERMINATED state, its dialog 720 identifier is no longer valid and can be reused for another dialog. 722 The identifier is used to reference the dialog in subsequent 723 requests, responses and notifications. In a request, 724 the dialog identifier can be specified in the prepareddialogid 725 attribute indicating the prepared dialog to start. In 726 and requests, the dialog identifier is 727 specified in the dialogid attribute, indicating which dialog is to be 728 terminated or audited respectively. If these requests specify a 729 dialog identifier already associated with another dialog on the MS, 730 the MS sends a response with a 405 status code (see Section 4.5) and 731 the same dialogid as in the request. The MS MUST specify a dialog 732 identifier in notifications associated with the dialog. The MS MUST 733 specify a dialog identifier in responses unless it is a response to a 734 syntactically invalid request. 736 For a given dialog, the or request 737 elements specify the dialog content to execute either by including 738 inline a element (the dialog language defined in this 739 package, see Section 4.3) or by referencing an external dialog 740 document (a dialog language defined outside this package). When 741 referencing an external dialog document, the request element contains 742 a URI reference to the remote document (specifying the dialog 743 definition) and, optionally, a type attribute indicating the MIME 744 media type associated with the dialog document. Consequently, the 745 dialog language associated with a dialog on the MS is identified 746 either inline by a child element or by a src attribute 747 referencing a document containing the dialog language. The MS MUST 748 support inline the IVR dialog language defined in Section 4.3. The 749 MS MAY support other dialog languages by reference. 751 4.2.1. 753 The request is sent to the MS to request preparation 754 of a dialog. Dialog preparation consists of (a) retrieving external 755 dialog document and resources (if required), and (b) validating the 756 dialog document syntactically and semantically. 758 A prepared dialog is executed when the MS receives a 759 request referencing the prepared dialog identifier (see 760 Section 4.2.2). 762 The element has the following attributes: 764 src: specifies the location of an external dialog document to 765 prepare. A valid value is a URI (see Section 4.6.9) including 766 authentication information if defined by the URI scheme (e.g. 767 basic access authentication in HTTP). If the URI scheme is 768 unsupported, the MS sends a with a 420 status code 769 (Section 4.5). If the document cannot be retrieved within the 770 timeout interval, the MS sends a with a 409 status 771 code. If the document contains a type of dialog language which 772 the MS does not supported, the MS sends a with a 421 773 status code. The attribute is optional. There is no default 774 value. 776 type: specifies the type of the external dialog document indicated 777 in the 'src' attribute. A valid value is a MIME media type (see 778 Section 4.6.10). If the URI scheme used in the src attribute 779 defines a mechanism for establishing the authoratitive MIME media 780 type of the media resource, the value returned by that mechanism 781 takes precedence over this attribute. The attribute is optional. 782 There is no default value. 784 maxage: Used to set the max-age value of the Cache-Control header in 785 conjunction with an external dialog document fetched using HTTP, 786 as per [RFC2616]. A valid value is a non-negative integer (see 787 Section 4.6.4). The attribute is optional. There is no default 788 value. 790 maxstale: Used to set the max-stale value of the Cache-Control 791 header in conjunction with an external dialog document fetched 792 using HTTP, as per [RFC2616]. A valid value is a non-negative 793 integer (see Section 4.6.4). The attribute is optional. There is 794 no default value. 796 fetchtimeout: the maximum timeout interval to wait when fetching an 797 external dialog document. A valid value is a Time Designation 798 (see Section 4.6.7). The attribute is optional. The default 799 value is 30s. 801 dialogid: string indicating a unique name for the dialog. If a 802 dialog with the same name already exists on the MS, the MS sends a 803 with a 405 status code (Section 4.5). If this 804 attribute is not specified, the MS MUST create a unique name for 805 the dialog (see Section 4.2 for dialog identifier assignment). 806 The attribute is optional. There is no default value. 808 The element has the following sequence of child 809 elements: 811 an IVR dialog (Section 4.3) to prepare. The element is 812 optional. 814 : specifies input parameters (Section 4.2.6) for dialog 815 languages defined outside this specification. The element is 816 optional. If a parameter is not supported by the MS for the 817 external dialog language, the MS sends a with a 427 818 status code (Section 4.5). 820 The dialog to prepare can either be specified inline with a 821 child element or externally (for dialog languages defined outside 822 this specification) using the src attribute. It is a syntax error if 823 both an inline element element and a src attribute are 824 specified and the MS sends a with a 400 status code (see 825 Section 4.5). The type, maxage, maxstale and fetchtimeout attributes 826 are only relevant when a dialog is specified as an external document. 828 For example, a request to prepare an inline IVR 829 dialog with a single prompt: 831 832 833 834 835 836 837 838 839 841 In this example, a request with a specified dialogid to prepare a 842 VoiceXML dialog document located externally: 844 845 848 850 Since MS support for dialog languages other than the IVR dialog 851 language defined in this package is optional, if the MS does not 852 support the dialog language it would send a response with the status 853 code 409 (Section 4.5). Further information on using VoiceXML can be 854 found in Section 12. 856 4.2.2. 858 The element is sent to the MS to start a dialog. If 859 the dialog has not been prepared, the dialog is prepared (retrieving 860 an external document and resources if necessary, and the dialog 861 document validated syntactically and semantically). Media processors 862 (e.g. DTMF and prompt queue) are activated and associated with the 863 specified connection or conference. 865 The element has the following attributes: 867 src: specifies the location of an external dialog document to start. 868 A valid value is a URI (see Section 4.6.9) including 869 authentication information if defined by the URI scheme (e.g. 870 basic access authentication in HTTP). If the URI scheme is 871 unsupported, the MS sends a with a 420 status code 872 (Section 4.5). If the document cannot be retrieved with the 873 timeout interval, the MS sends a with a 409 status 874 code. If the document contains a type of dialog language which 875 the MS does not supported, the MS sends a with a 421 876 status code. The attribute is optional. There is no default 877 value. 879 type: specifies the type of the external dialog document indicated 880 in the 'src' attribute. A valid value is a MIME media type (see 881 Section 4.6.10). If the URI scheme used in the src attribute 882 defines a mechanism for establishing the authoratitive MIME media 883 type of the media resource, the value returned by that mechanism 884 takes precedence over this attribute. The attribute is optional. 885 There is no default value. 887 maxage: Used to set the max-age value of the Cache-Control header in 888 conjunction with an external dialog document fetched using HTTP, 889 as per [RFC2616]. A valid value is a non-negative integer (see 890 Section 4.6.4). The attribute is optional. There is no default 891 value. 893 maxstale: Used to set the max-stale value of the Cache-Control 894 header in conjunction with an external dialog document fetched 895 using HTTP, as per [RFC2616]. A valid value is a non-negative 896 integer (see Section 4.6.4). The attribute is optional. There is 897 no default value. 899 fetchtimeout: the maximum timeout interval to wait when fetching an 900 external dialog document. A valid value is a Time Designation 901 (see Section 4.6.7). The attribute is optional. The default 902 value is 30s. 904 dialogid: string indicating a unique name for the dialog. If a 905 dialog with the same name already exists on the MS, the MS sends a 906 with a 405 status code (Section 4.5). If neither the 907 dialogid attribute nor the prepareddialogid attribute is 908 specified, the MS MUST create a unique name for the dialog (see 909 Section 4.2 for dialog identifier assignment). The attribute is 910 optional. There is no default value. 912 prepareddialogid: string identifying a dialog previously prepared 913 using a dialogprepare (Section 4.2.1) request. If neither the 914 dialogid attribute nor the prepareddialogid attribute is 915 specified, the MS MUST create a unique name for the dialog (see 916 Section 4.2 for dialog identifier assignment). The attribute is 917 optional. There is no default value. 919 connectionid: string identifying the SIP dialog connection on which 920 this dialog is to be started (see Section 16.1 of 921 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 922 optional. There is no default value. 924 conferenceid: string identifying the conference on which this dialog 925 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 Exactly one of the connectionid or conferenceid attributes MUST be 930 specified. If both connectionid and conferenceid attributes are 931 specified or neither are specified, it is a syntax error and the MS 932 sends a with a 400 status code (Section 4.5). 934 It is an error if the connection or conference referenced by a 935 specific connectionid or conferenceid attribute is not available on 936 the MS at the time the request is executed. If an 937 invalid connectionid is specified, the MS sends a with a 938 407 status code (Section 4.5). If an invalid conferenceid is 939 specified, the MS sends a with a 408 status code. 941 The element has the following sequence of child 942 elements: 944 : specifies an IVR dialog (Section 4.3) to execute. The 945 element is optional. 947 : specifies subscriptions to dialog events 948 (Section 4.2.2.1). The element is optional. 950 : specifies input parameters (Section 4.2.6) for dialog 951 languages defined outside this specification. The element is 952 optional. If a parameter is not supported by the MS for the 953 external dialog language, the MS sends a with a 427 954 status code (Section 4.5). 956 : determines the media stream(s) associated with the 957 connection or conference on which the dialog is executed 958 (Section 4.2.2.2). The element is optional. Multiple 959 elements can be specified. 961 The dialog to start can be specified either (a) inline with a 962 child element, or (b) externally using the src attribute 963 (for dialog languages defined outside this specification), or (c) 964 reference a previously prepared dialog using the prepareddialogid 965 attribute. If exactly one of the src attribute, the prepareddialogid 966 or a child element is not specified, it is a syntax error 967 and the MS sends a with a 400 status code (Section 4.5). 968 If the prepareddialogid and dialogid attributes are specified, it is 969 also a syntax error and the MS sends a with a 400 status 970 code. The type, maxage, maxstale and fetchtimeout attributes are 971 only relevant when a dialog is specified as an external document. 973 The element provides explicit control over which media 974 streams on the connection or conference are used during dialog 975 execution. For example, if a connection supports both audio and 976 video streams, a element could be used to indicate that only 977 the audio stream is used in receive mode. In cases where there are 978 multiple media streams of the same type for a dialog, the AS MUST use 979 elements to explicitly specify the configuration. If no 980 elements are specified, then the default media configuration 981 is that defined for the connection or conference. 983 If a element is in conflict with (a) another 984 element, (b) with specified connection or conference media 985 capabilities, (c) with a SDP label value as part of the connectionid 986 (see Section 16.1 of [I-D.ietf-mediactrl-sip-control-framework]) then 987 the MS sends a with a 411 status code (Section 4.5). If 988 the media stream configuration is not supported by the MS, then the 989 MS sends a with a 428 status code (Section 4.5). 991 The MS MAY support multiple, simultaneous dialogs being started on 992 the same connection or conference. For example, the same connection 993 can receive different media streams (e.g. audio and video) from 994 different dialogs, or receive (and implicitly mix where appropriate) 995 the same type of media streams from different dialogs. If the MS 996 does not support starting another dialog on the same connection or 997 conference, it sends a with a 432 status code 998 (Section 4.5) when it receives the second (or subsequent) dialog 999 request. 1001 For example, a request to start an ivr dialog on a connection 1002 subscribing to DTMF notifications: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1018 In this example, the dialog is started on a conference where the 1019 conference only receives an audio media stream from the dialog: 1021 1022 1023 1024 1025 1026 1027 1029 4.2.2.1. 1031 The element allows the AS to subscribe to, and be 1032 notified of, specific events which occur during execution of the 1033 dialog. Notifications of dialog events are delivered using the 1034 element (see Section 4.2.5). 1036 The element has no attributes. 1038 The element has the following sequence of child elements 1039 (0 or more occurrences): 1041 : Subscription to DTMF input during the dialog 1042 (Section 4.2.2.1.1). The element is optional. 1044 If a request has with no child elements, the MS treats 1045 the request as if no element was specified. 1047 The MS MUST support subscription for the IVR dialog 1048 language defined in this specification (Section 4.3). It MAY support 1049 other dialog subscriptions (specified using attributes and child 1050 elements from a foreign namespace). If the MS does not support a 1051 subscription specified in a foreign namespace, the MS sends a 1052 response with a 431 status code (see Section 4.5). 1054 4.2.2.1.1. 1056 The element has the following attributes: 1058 matchmode: controls which DTMF input are subscribed to. Valid 1059 values are: "all" - notify all DTMF key presses received during 1060 the dialog; "collect" - notify only DTMF input matched by the 1061 collect operation (Section 4.3.1.3); and "control" - notify only 1062 DTMF input matched by the runtime control operation 1063 (Section 4.3.1.2). The attribute is optional. The default value 1064 is "all". 1066 The element has no child elements. 1068 DTMF notifications are delivered in the element 1069 (Section 4.2.5.2). 1071 For example, the AS wishes to subscribe to DTMF key press matching a 1072 runtime control: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1088 Each time a '2' or '3' DTMF input is received, the MS sends a 1089 notification event: 1091 1092 1093 1095 1096 1098 4.2.2.2. 1100 The element has the following attributes: 1102 media: a string indicating the type of media associated with the 1103 stream. The following values MUST be used for common types of 1104 media: "audio" for audio media, and "video" for video media. The 1105 attribute is mandatory. 1107 label: a string indicating the SDP label associated with a media 1108 stream ([RFC4574]). The attribute is optional. 1110 direction: a string indicating the direction of the media flow 1111 relative to the endpoint conference or connection. Defined values 1112 are: "sendrecv" (the endpoint can send media to, and receive media 1113 from, the dialog), "sendonly" (the endpoint can only send media to 1114 the dialog), "recvonly" (the endpoint can only receive media from 1115 the dialog) and "inactive" (stream is not to be used). The 1116 default value is "sendrecv". The attribute is optional. 1118 The element has the following sequence of child elements: 1120 : an element to specify the region within a mixer video 1121 layout where a media stream is displayed (Section 4.2.2.2.1). The 1122 element is optional. 1124 : an element to configure priority associated with the 1125 stream in the conference mix (Section 4.2.2.2.2). The element is 1126 optional. 1128 If conferenceid is not specified or if the "media" attribute does not 1129 have the value of "video", then the MS ignores the and 1130 elements. 1132 For example, assume a user agent connection with multiple audio and 1133 video streams associated with the user and a separate web camera. In 1134 this case, the dialog could be started to record only the audio and 1135 video streams associated with the user: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1147 1149 Using the element, the dialog can be started on a conference 1150 mixer so that the video output from the dialog is directed to a 1151 specific region within a video layout. For example: 1153 1154 1155 1156 1157 1158 1159 1160 1161 r1 1162 1163 1165 4.2.2.2.1. 1167 The element is used to specify the region within a video 1168 layout where a video media stream is displayed. 1170 The element has no attributes and its content model 1171 specifies the name of the region layout. 1173 If the region name is invalid, then the MS reports a 416 status code 1174 (Section 4.5) in the response to the request element containing the 1175 element. 1177 4.2.2.2.2. 1179 The element is used to explicitly specify the priority of 1180 the dialog for presentation in a conference mix. 1182 The element has no attributes and its content model 1183 specifies a positive integer (see Section 4.6.5). The lower the 1184 value, the higher the priority. 1186 4.2.3. 1188 A dialog can be terminated by sending a request 1189 element to the MS. 1191 The element has the following attributes: 1193 dialogid: string identifying the dialog to terminate. If the 1194 specified dialog identifier is invalid, the MS sends a response 1195 with a 405 status code (Section 4.5). The attribute is mandatory. 1197 immediate: indicates whether a dialog in the STARTED state is to be 1198 terminated immediately or not (in other states, termination is 1199 always immediate). A valid value is a boolean (see 1200 Section 4.6.1). A value of true indicates that the dialog is 1201 terminated immediately and the MS MUST send a dialogexit 1202 notification (Section 4.2.5.1) without report information. A 1203 value of false indicates that the dialog terminates after the 1204 current iteration and the MS MUST send a dialogexit notification 1205 with report information. The attribute is optional. The default 1206 value is false. 1208 The MS MUST reply to request with a 1209 element (Section 4.2.4), reporting whether the dialog was terminated 1210 successful or not. 1212 For example, immediately terminating a STARTED dialog with dialogid 1213 "d4": 1215 1216 1217 1219 If the dialog is terminated successfully, then the response to the 1220 dialogterminate request would be: 1222 1223 1224 1226 4.2.4. 1228 Responses to dialog management requests are specified with a 1229 element. 1231 The element has following attributes: 1233 status: numeric code indicating the response status. Valid values 1234 are defined in Section 4.5. The attribute is mandatory. 1236 reason: string specifying a reason for the response status. The 1237 attribute is optional. There is no default value. 1239 dialogid: string identifying the dialog. If the request specifies a 1240 dialogid, then that value is used. Otherwise, with 1241 and requests, the dialogid generated 1242 by the MS is used. If there is no available dialogid because the 1243 request is syntactically invalid (e.g. a request 1244 with no dialogid attribute specified), then the value is the empty 1245 string. The attribute is mandatory. 1247 connectionid: string identifying the SIP dialog connection 1248 associated with the dialog (see Section 16.1 of 1249 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1250 optional. There is no default value. 1252 conferenceid: string identifying the conference associated with the 1253 dialog (see Section 16.1 of 1254 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1255 optional. There is no default value. 1257 For example, a response when a dialog was prepared successfully: 1259 1260 1261 1263 The response if dialog preparation failed due to an unsupported 1264 dialog language: 1266 1267 1269 1271 In this example a request does not specify a 1272 dialogid: 1274 1275 1276 1278 The response status indicates a 400 (Syntax error) status code and 1279 dialogid attribute has an empty string value: 1281 1282 1284 1286 4.2.5. 1288 When a dialog generates a notification event, the MS sends the event 1289 using an element. 1291 The element has the following attributes: 1293 dialogid: string identifying the dialog which generated the event. 1294 The attribute is mandatory. 1296 The element has the following child elements, only one of 1297 which can occur: 1299 : indicates that the dialog has exited 1300 (Section 4.2.5.1). 1302 : indicates that a DTMF key press occurred 1303 (Section 4.2.5.2). 1305 4.2.5.1. 1307 The event indicates that a prepared or active dialog has 1308 exited because it is complete, has been terminated, or because an 1309 error occurred during execution (for example, a media resource cannot 1310 be played). This event MUST be sent by the MS when the dialog exits. 1312 The element has the following attributes: 1314 status: a status code indicating the status of the dialog when it 1315 exits. A valid value is a non-negative integer (see 1316 Section 4.6.4). The MS MUST support the following values: 1318 0 indicates the dialog has been terminated by a 1319 request. 1321 1 indicates successful completion of the dialog. 1323 2 indicates the dialog terminated because the connection or 1324 conference associated with the dialog has terminated. 1326 3 indicates the dialog terminated due to exceeding its maximum 1327 duration. 1329 4 indicates the dialog terminated due to an execution error. 1331 All other valid but undefined values are reserved for future use, 1332 where a standards-track RFC is required to define new status 1333 codes. The AS MUST treat any status code it does not recognize as 1334 being equivalent to 4 (dialog execution error). The attribute is 1335 mandatory. 1337 reason: a textual description which the MS SHOULD use to provide a 1338 reason for the status code; e.g. details about an error. A valid 1339 value is a string (see Section 4.6.6). The attribute is optional. 1340 There is no default value. 1342 The element has the following sequence of child 1343 elements: 1345 : report information (Section 4.3.2.1) about the prompt 1346 execution in an IVR . The element is optional. 1348 : reports information (Section 4.3.2.2) about the 1349 control execution in an IVR . The element is optional. 1351 : reports information (Section 4.3.2.3) about the 1352 collect execution in an IVR . The element is optional. 1354 : reports information (Section 4.3.2.4) about the record 1355 execution in an IVR . The element is optional. 1357 : reports exit parameters (Section 4.2.6) for a dialog 1358 language defined outside this specification. The element is 1359 optional. 1361 For example, an active exits normally the MS sends a 1362 dialogexit reporting information: 1364 1365 1366 1367 1368 1369 1370 1372 4.2.5.2. 1374 The element provide a notification of DTMF input 1375 received during the active dialog as requested by a 1376 subscription (Section 4.2.2.1). 1378 The element has the following attributes: 1380 matchmode: indicates the matching mode specified in the subscription 1381 request. Valid values are: "all" - all DTMF key presses notified 1382 individually; "collect" - only DTMF input matched by the collect 1383 operation notified; and "control" - only DTMF input matched by the 1384 control operation notified. The attribute is optional. The 1385 default value is "all". 1387 dtmf: DTMF key presses received according to the matchmode. A valid 1388 value is a DTMF string (see Section 4.6.3) with no space between 1389 characters. The attribute is mandatory. 1391 timestamp: indicates the time (on the MS) at which the last key 1392 press occurred according to the matchmode. A valid value is a 1393 dateTime expression (Section 4.6.12). The attribute is mandatory. 1395 For example, a notification of DTMF input matched during the collect 1396 operation: 1398 1399 1400 1402 /event> 1403 1405 4.2.6. 1407 The element is a container for elements 1408 (Section 4.2.6.1). 1410 The element has no attributes, but the following child 1411 elements are defined (0 or more): 1413 : specifies a parameter name and value (Section 4.2.6.1). 1415 For example, usage with a dialog language defined outside this 1416 specification to send additional parameters into the dialog: 1418 1419 1421 1422 playannouncement 1423 nfs://nas01/media1.3gp 1424 nfs://nas01/media2.3gp 1425 1426 1427 1429 4.2.6.1. 1431 The element describes a parameter name and value. 1433 The element has the following attributes: 1435 name: a string indicating the name of the parameter. The attribute 1436 is mandatory. 1438 type: specifies a type indicating how the inline value of the 1439 parameter is to be interpreted. A valid value is a MIME media 1440 type (see Section 4.6.10). The attribute is optional. The 1441 default value is "text/plain". 1443 The element content model (text and/or XML) is the value of 1444 the parameter. Values in XML format MUST use a namespace other than 1445 the one used in this specification. Note that a text value which 1446 contains XML characters (e.g. "<") needs to be escaped following 1447 standard XML conventions. 1449 For example, usage with a dialog language defined outside this 1450 specification to receive parameters from the dialog when it exits: 1452 1453 1454 1455 1456 recording 1457 1459 1463 1464 1465 1466 1467 1469 4.3. IVR Dialog Elements 1471 This section describes the IVR dialog language defined as part of 1472 this specification. The MS MUST support this dialog language. 1474 The element is an execution container for operations of 1475 playing prompts (Section 4.3.1.1), runtime controls 1476 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1477 user input (Section 4.3.1.4. Results of the dialog execution 1478 (Section 4.3.2) are reported in a dialogexit notification event. 1480 Using these elements, three common dialog models are supported: 1482 playannouncements: only a element is specified in the 1483 container. The prompt media resources are played in sequence. 1485 promptandcollect: a element is specified and, optionally, 1486 a element. If a element is specified and 1487 bargein is enabled, playing of the prompt is terminated when 1488 bargein occurs, and DTMF collection is initiated; otherwise, the 1489 prompt is played to completion before DTMF collection is 1490 initiated. If no prompt element is specified, DTMF collection is 1491 initiated immediately. 1493 promptandrecord: a element is specified and, optionally, a 1494 element. If a element is specified and bargein 1495 is enabled, playing of the prompt is terminated when bargein 1496 occurs, and recording is initiated; otherwise, the prompt is 1497 played to completion before recording is initiated. If no prompt 1498 element is specified, recording is initiated immediately. 1500 In addition, this dialog language supports runtime ('VCR') controls 1501 enabling a user to control prompt playback using DTMF. 1503 Each of the core elements - , , and 1504 - are specified so that their execution and reporting is 1505 largely self-contained. This facilitates their re-use in other 1506 dialog container elements. Note that DTMF and bargein behavior 1507 affects multiple elements and is addressed in the relevant element 1508 definitions. 1510 Execution results are reported in the notification event 1511 with child elements defined in Section 4.3.2. If the dialog 1512 terminated normally (i.e. not due to an error or to a 1513 request), then the MS MUST report the results for 1514 the operations specified in the dialog: 1516 : (see Section 4.3.2.1) with at least the 1517 termmode attribute specified. 1519 : (see Section 4.3.2.2) if any runtime 1520 controls are matched. 1522 : (see Section 4.3.2.3) with the dtmf and 1523 termmode attributes specified. 1525 : (see Section 4.3.2.4) with at least the 1526 termmode attribute and one element specified. 1528 The media format requirements for IVR dialogs are undefined. This 1529 package is agnostic to the media types and codecs for media resources 1530 and recording which need to be supported by an implementation. For 1531 example, a MS implementation might only support audio and in 1532 particular the 'audio/basic' codec for media playback and recording. 1533 However, when executing a dialog, if an MS encounters a media type or 1534 codec which it cannot process, the MS MUST stop further processing 1535 and report the error using the dialogexit notification. 1537 4.3.1. 1539 An IVR dialog to play prompts to the user, allow runtime controls, 1540 collect DTMF or record input. The dialog is specified using a 1541 element. 1543 A element has the following attributes: 1545 repeatCount: number of times the dialog is to be executed. A valid 1546 value is a non-negative integer (see Section 4.6.4). A value of 0 1547 indicates that the dialog is repeated until halted by other means. 1548 The attribute is optional. The default value is 1. 1550 repeatDur: maximum duration for dialog execution. A valid value is 1551 a Time Designation (see Section 4.6.7). If no value is specified, 1552 then there is no limit on the duration of the dialog. The 1553 attribute is optional. There is no default value. 1555 The repeatDur attribute takes priority over the repeatCount attribute 1556 in determining maximum duration of the dialog. See 'repeatCount' and 1557 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1558 information. In the situation where a dialog is repeated more than 1559 once, only the results of operations in the last dialog iteration are 1560 reported. 1562 The element has the following sequence of child elements (at 1563 least one, any order): 1565 : defines media resources to play in sequence (see 1566 Section 4.3.1.1). The element is optional. 1568 : defines how DTMF is used for runtime controls (see 1569 Section 4.3.1.2). The element is optional. 1571 : defines how DTMF is collected (see Section 4.3.1.3). The 1572 element is optional. 1574 : defines how recording takes place (see Section 4.3.1.4). 1575 The element is optional. 1577 Although the behavior when both and elements are 1578 specified in a request is not defined in this control package, the MS 1579 MAY support this configuration. If the MS does not support this 1580 configuration, the MS sends a with a 433 status code. 1582 The MS has the following execution model for the IVR dialog after 1583 initialization (initialization errors are reported by the MS in the 1584 response): 1586 1. If an error occurs during execution, then the MS terminates the 1587 dialog and reports the error in the event by setting 1588 the status attribute (see Section 4.3.2). Details about the 1589 error are specified in the reason attribute. 1591 2. The MS initializes a counter to 0. 1593 3. The MS starts a duration timer for the value of the repeatDur 1594 attribute. If the timer expires before the dialog is complete, 1595 then the MS terminates the dialog and sends a dialogexit whose 1596 status attribute is set to 3 (see Section 4.2.5.1). The MS MAY 1597 report information in the dialogexit gathered in the last 1598 execution cycle (if any). 1600 4. The MS initiates a dialog execution cycle. Each cycle executes 1601 the operations associated with the child elements of the dialog. 1602 If a element is specified, then execute the element's 1603 prompt playing operation and activate any controls (if the 1604 element is specified). If no is specified or 1605 when a specified terminates, then start the collect 1606 operation or the record operation if the or 1607 elements respectively are specified. If subscriptions are 1608 specified for the dialog, then the MS sends a notification event 1609 when the specified event occurs. If execution of a child element 1610 results in an error, the MS terminates dialog execution (and 1611 stops other child element operations) and the MS sends a 1612 dialogexit status event, reporting any information gathered. 1614 5. If the dialog execution cycle completes successfully, then the MS 1615 increments the counter by one. If the value of the repeatCount 1616 attribute is greater than zero and the counter is equal to the 1617 value of the repeatCount attribute, then the MS terminates dialog 1618 execution and the sends a dialogexit (with a status of 1) 1619 reporting operation information collected in the last dialog 1620 execution cycle only. Otherwise, another dialog execution cycle 1621 is initiated. 1623 4.3.1.1. 1625 The element specifies a sequence of media resources to play 1626 back in document order. 1628 A element has the following attributes: 1630 xml:base: A string declaring the base URI from which relative URIs 1631 in child elements are resolved prior to fetching. A valid value 1632 is a URI (see Section 4.6.9). The attribute is optional. There 1633 is no default value. 1635 bargein: Indicates whether user input stops prompt playback unless 1636 the input is associated with a specified runtime 1637 operation (input matching control operations never interrupts 1638 prompt playback). A valid value is a boolean (see Section 4.6.1). 1639 A value of true indicates that bargein is permitted and prompt 1640 playback is stopped. A value of false indicates that bargein is 1641 not permitted: user input does not terminate prompt playback. The 1642 attribute is optional. The default value is true. 1644 The element has the following child elements (at least one, 1645 any order, multiple occurrences of elements permitted): 1647 : specifies a media resource (see Section 4.3.1.5) to play. 1648 The element is optional. 1650 : specifies a variable media announcement (see 1651 Section 4.3.1.1.1) to play. The element is optional. 1653 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1654 play. The element is optional. 1656 : specifies media resources to play in parallel (see 1657 Section 4.3.1.1.3). The element is optional. 1659 If the MS does not support the configuration required for prompt 1660 playback to the output media streams and a more specific error code 1661 is not defined for its child elements, the MS sends a with 1662 a 429 status code (Section 4.5). The MS MAY support transcoding 1663 between the media resource format and the output stream format. 1665 The MS has the following execution model for prompt playing after 1666 initialization: 1668 1. The MS initiates prompt playback playing its child elements 1669 (, , and ) one after another in 1670 document order. 1672 2. If any error (including fetching and rendering errors) occurs 1673 during prompt execution, then the MS terminates playback and 1674 reports its error status to the dialog container (see 1675 Section 4.3) with a (see Section 4.3.2.1) where the 1676 termmode attribute is set to stopped and any additional 1677 information is set. 1679 3. If DTMF input is received and the value of the bargein attribute 1680 is true, then the MS terminates prompt playback and reports its 1681 execution status to the dialog container (see Section 4.3) with a 1682 (see Section 4.3.2.1) where the termmode attribute 1683 is set to bargein and any additional information is set. 1685 4. If prompt playback is stopped by the dialog container, then the 1686 MS reports its execution status to the dialog container (see 1687 Section 4.3) with a (see Section 4.3.2.1) where the 1688 termmode attribute is set to stopped and any additional 1689 information is set. 1691 5. If prompt playback completes successfully, then the MS reports 1692 its execution status to the dialog container (see Section 4.3) 1693 with a (see Section 4.3.2.1) where the termmode 1694 attribute is set to completed and any additional information is 1695 set. 1697 4.3.1.1.1. 1699 The element specifies variable announcements using 1700 predefined media resources. Each variable has at least a type (e.g. 1701 date) and a value (e.g. 2008-02-25). The value is rendered according 1702 to the variable type (e.g. 25th February 2008) as well as other 1703 defined attributes. The precise mechanism for generating variable 1704 announcements (including the location of associated media resources) 1705 is implementation specific. 1707 A element has the following attributes: 1709 value: specifies the string to be rendered. A valid value is a 1710 string (see Section 4.6.6). The attribute is mandatory. 1712 type: specifies the type to use for rendering. A valid value is a 1713 string (see Section 4.6.6). The attribute is mandatory. 1715 format: specifies format information to use in conjunction with the 1716 type for the rendering. A valid value is a string (see 1717 Section 4.6.6). The attribute is optional. There is no default 1718 value. 1720 gender: specifies the gender to use when rendering the variable. 1721 Valid values are "male" or "female". The attribute is optional. 1722 There is no default value. 1724 xml:lang: specifies the language to use when rendering the variable. 1725 A valid value is a language identifier (see Section 4.6.11). The 1726 attribute is optional. There is no default value. 1728 The element has no children. 1730 This package is agnostic to which values, types and 1731 formats are supported by an implementation. If a element 1732 configuration specified in a request is not supported by the MS, the 1733 MS sends a with a 425 status code (Section 4.5). 1735 For example, the MS could support type/format combinations 1736 such as: 1738 type=date Supported formats: "mdy" (month day year), "ymd" (year 1739 month day), "dym" (day month year), "dm" (day month). The value 1740 attribute has the format YYYY-MM-DD (4 digit year, 2 digit month, 1741 2 digit day). 1743 type=time Supported formats: "t12" (12 hour format with am/pm), 1744 "t24" (24 hour format). The value attribute has the format HH:MM 1745 (2 digit hours, 2 digit minutes). 1747 type=digits Supported formats: "gen" (general digit string), "crn" 1748 (cardinal), "ord" (ordinal). The value attribute has the format 1749 of "D+" (one or more digits). 1751 This specification is agnostic to the type and codec of media 1752 resources into which variable are rendered as well as the rendering 1753 mechanism itself. For example, an MS implementation supporting audio 1754 rendering could map the into one or more audio media 1755 resources. 1757 Depending on the specific implementation of the rendering 1758 on the MS, execution of this element can be seen as conversion of a 1759 into a list of elements. For example, 1760 1763 could be transformed into audio saying "twenty-fifth of February two 1764 thousand and eight" using a list of resources: 1766 1767 1768 1769 1770 1771 1773 4.3.1.1.2. 1775 The element specifies a sequence of DTMF tones for output. 1777 DTMF tones could be generated using resources where the 1778 output is transported as RTP audio packets. However, 1779 resources are not sufficient for cases where DTMF tones are to be 1780 transported as DTMF RTP ([RFC4733]) or in event packages. 1782 A element has the following attributes: 1784 digits: specifies the DTMF sequence to output. A valid value is a 1785 DTMF string (see Section 4.6.3). The attribute is mandatory. 1787 level: used to define the power level for which the DTMF tones will 1788 be generated. Values are expressed in dBm0. A valid value is an 1789 integer in the range of 0 to -96 (dBm0). Larger negative values 1790 express lower power levels. Note that values lower than -55 dBm0 1791 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1792 The attribute is optional. The default value is -6 (dBm0). 1794 duration: specifies the duration for which each DTMF tone is 1795 generated. A valid value is a time designation (see 1796 Section 4.6.7). The MS MAY round the value if it only supports 1797 discrete durations. The attribute is optional. The default value 1798 is 100ms. 1800 interval: specifies the duration of a silence interval following 1801 each generated DTMF tone. A valid value is a time designation 1802 (see Section 4.6.7). The MS MAY round the value if it only 1803 supports discrete durations. The attribute is optional. The 1804 default value is 100ms. 1806 The element has no children. 1808 If a element configuration is not supported, the MS sends a 1809 with a 426 status code (Section 4.5). 1811 4.3.1.1.3. 1813 The element allows media resources to be played in parallel. 1814 Each of its child elements specify a media resource (or a sequence of 1815 media resources using the element). When playback of the 1816 element is initiated, the MS begins playback of all its child 1817 elements at the same time. This element is modeled after the 1818 element in SMIL ([W3C.REC-SMIL2-20051213]). 1820 The element has the following attributes: 1822 endsync: indicates when playback of the element is complete. Valid 1823 values are: "first" - indicates that the element is complete when 1824 any child element reports that it is complete; "last" - indicates 1825 it is complete when every child elements are complete. The 1826 attribute is optional. The default value is "last". 1828 If the value is "first", then playback of other child element is 1829 stopped when one child element reports it is complete. 1831 The element has the following child elements (at least one, any 1832 order, multiple occurrences of each element permitted): 1834 : specifies a sequence of media resources to play in a parallel 1835 with other child elements (see Section 4.3.1.1.3.1). The 1836 element is optional. 1838 : specifies a media resource (see Section 4.3.1.5) to play. 1839 The element is optional. 1841 : specifies a variable media announcement (see 1842 Section 4.3.1.1.1) to play. The element is optional. 1844 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1845 play. The element is optional. 1847 If a element configuration is not supported, the MS sends a 1848 with a 435 status code (Section 4.5). 1850 Runtime s (Section 4.3.1.2) apply to each child element 1851 playing parallel. For example, pause and resume controls cause all 1852 child elements to be paused and resumed respectively. 1854 If the element is stopped by the prompt container (e.g. bargein 1855 or dialog termination), then playback of all child elements is 1856 stopped. The playback duration (Section 4.3.2.1) reported for the 1857 element is the duration of parallel playback, not the 1858 cumulative duration of each child element played in parallel. 1860 For example, a request to playback audio and video media in parallel: 1862 1863 1864 1865 1866 1867 1869 1872 1873 1874 1875 1877 When the element is executed, it begins playback of its 1878 child element in document order sequence. In this case, there is 1879 only one child element, a element itself containing audio and 1880 video child element. Consequently playback of both audio and 1881 video media resources is initiated at the same time. Since the 1882 endsync attribute is not specified, the default value "last" applies. 1883 The element playback is complete when the media resource with 1884 the longest duration is complete. 1886 4.3.1.1.3.1. 1888 The element specifies media resources to be played back in 1889 sequence. This allows a sequence of media resources to be played at 1890 the same time as other children of a element are played in 1891 parallel. For example, a sequence of audio resources while a video 1892 resource is played in parallel. This element is modeled after the 1893 element in SMIL ([W3C.REC-SMIL2-20051213]). 1895 The element has no attributes. 1897 The element has the following child elements (at least one, any 1898 order, multiple occurrences of each element permitted): 1900 : specifies a media resource (see Section 4.3.1.5) to play. 1901 The element is optional. 1903 : specifies a variable media announcement (see 1904 Section 4.3.1.1.1) to play. The element is optional. 1906 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1907 play. The element is optional. 1909 Playback of a element is complete when all child elements in 1910 the sequence are complete. If the element is stopped by the 1911 container, then playback of the current child element is 1912 stopped (remaining child elements in the sequence are not played). 1914 For example, a request to play a sequence of audio resources in 1915 parallel with a video media: 1917 1918 1919 1920 1921 1922 1923 1925 1927 1929 1931 1932 1935 1936 1937 1938 1940 When the element is executed, it begins playback of the 1941 element containing a element and a video element. 1942 The element itself contains a sequence of audio 1943 elements. Consequently playback of the video media resource is 1944 initiated at the same time as playback of the sequence of the audio 1945 media resources is initiated. Each audio resource is played back 1946 after the previous one completes. Since the endsync attribute is set 1947 to "first", the element playback is complete when either all 1948 the audio resources in have been played to completion or the 1949 video is complete, whichever occurs first. 1951 4.3.1.2. 1953 The element defines how DTMF input is mapped to runtime 1954 controls, including prompt playback controls. 1956 DTMF input matching these controls MUST NOT cause prompt playback to 1957 interrupted (i.e. no prompt bargein), but causes the appropriate 1958 operation to be applied; for examples, speeding up prompt playback. 1960 DTMF input matching these controls has priority over input 1961 for the duration of prompt playback. If incoming DTMF matches a 1962 specified runtime control, then the DTMF is not available to the 1963 operation, including its digit buffer. Once prompt 1964 playback is complete, runtime controls are no longer active. 1966 The element has the following attributes: 1968 gotostartkey: maps a DTMF key to skip directly to the start of the 1969 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1970 The attribute is optional. There is no default value. 1972 gotoendkey: maps a DTMF key to skip directly to the end of the 1973 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1974 The attribute is optional. There is no default value. 1976 skipinterval: indicates how far a MS skips backwards or forwards 1977 through prompt playback when the rewind (rwkey) of fast forward 1978 key (ffkey) is pressed. A valid value is a Time Designation (see 1979 Section 4.6.7). The attribute is optional. The default value is 1980 6s. 1982 ffkey: maps a DTMF key to a fast forward operation equal to the 1983 value of 'skipinterval'. A valid value is a DTMF Character (see 1984 Section 4.6.2). The attribute is optional. There is no default 1985 value. 1987 rwkey: maps a DTMF key to a rewind operation equal to the value of 1988 'skipinterval'. A valid value is a DTMF Character (see 1989 Section 4.6.2). The attribute is optional. There is no default 1990 value. 1992 pauseinterval: indicates how long a MS pauses prompt playback when 1993 the pausekey is pressed. A valid value is a Time Designation (see 1994 Section 4.6.7). The attribute is optional. The default value is 1995 10s. 1997 pausekey: maps a DTMF key to a pause operation equal to the value of 1998 'pauseinterval'. A valid value is a DTMF Character (see 1999 Section 4.6.2). The attribute is optional. There is no default 2000 value. 2002 resumekey: maps a DTMF key to a resume operation. A valid value is 2003 a DTMF Character (see Section 4.6.2). The attribute is optional. 2004 There is no default value. 2006 volumeinterval: indicates the increase or decrease in playback 2007 volume (relative to the current volume) when the volupkey or 2008 voldnkey is pressed. A valid value is a percentage (see 2009 Section 4.6.8). The attribute is optional. The default value is 2010 10%. 2012 volupkey: maps a DTMF key to a volume increase operation equal to 2013 the value of 'volumeinterval'. A valid value is a DTMF Character 2014 (see Section 4.6.2). The attribute is optional. There is no 2015 default value. 2017 voldnkey: maps a DTMF key to a volume decrease operation equal to 2018 the value of 'volumeinterval'. A valid value is a DTMF Character 2019 (see Section 4.6.2). The attribute is optional. There is no 2020 default value. 2022 speedinterval: indicates the increase or decrease in playback speed 2023 (relative to the current speed) when the speedupkey or speeddnkey 2024 is pressed. A valid value is a percentage (see Section 4.6.8). 2025 The attribute is optional. The default value is 10%. 2027 speedupkey: maps a DTMF key to a speed increase operation equal to 2028 the value of the speedinterval attribute. A valid value is a DTMF 2029 Character (see Section 4.6.2). The attribute is optional. There 2030 is no default value. 2032 speeddnkey: maps a DTMF key to a speed decrease operation equal to 2033 the value of the speedinterval attribute. A valid value is a DTMF 2034 Character (see Section 4.6.2). The attribute is optional. There 2035 is no default value. 2037 external: allows one or more DTMF keys to be declared as external 2038 controls (for example: video camera controls); the MS can send 2039 notifications when a matching key is activated using 2040 (Section 4.2.5.2). A valid value is a DTMF String (see 2041 Section 4.6.3). The attribute is optional. There is no default 2042 value. 2044 If the same DTMF is specified in more than one DTMF key control 2045 attribute - except the pausekey and resumekey attributes - the MS 2046 sends a with a 413 status code (Section 4.5). 2048 The MS has the following execution model for runtime control after 2049 initialization: 2051 1. If an error occurs during execution, then the MS terminates 2052 runtime control and the error is reported to the dialog 2053 container. The MS MAY report controls executed successfully 2054 before the error in (see Section 4.3.2.2). 2056 2. Runtime controls are active only during prompt playback (if no 2057 element is specified, then runtime controls are 2058 ignored). If DTMF input matches any specified keys (for example 2059 the ffkey), then the MS applies the appropriate operation 2060 immediately. If a seek operation (ffkey, rwkey) attempts to go 2061 beyond the beginning or end of the prompt queue, then the MS 2062 automatically truncates it to the prompt queue beginning or end 2063 respectively. If a volume operation (voldnkey, volupkey) 2064 attempts to go beyond the minimum or maximum volume supported by 2065 the platform, then the MS automatically limits the operation to 2066 minimum or maximum supported volume respectively. If a speed 2067 operation (speeddnkey, speedupkey) attempts to go beyond the 2068 minimum or maximum playback speed supported by the platform, then 2069 the MS automatically limits the operation to minimum or maximum 2070 supported speed respectively. If the pause operation attempts to 2071 pause output when it is already paused, then the operation is 2072 ignored. If the resume operation attempts to resume when the 2073 prompts are not paused, then the operation is ignored. If a 2074 seek, volume or speed operation is applied when output is paused, 2075 then the MS also resumes output automatically. 2077 3. If DTMF control subscription has been specified for the dialog, 2078 then each DTMF match of a control operation is reported in a 2079 notification event (Section 4.2.5.2). 2081 4. When the dialog exits, all control matches are reported in a 2082 element (Section 4.3.2.2). 2084 4.3.1.3. 2086 The element defines how DTMF input is collected. 2088 The element has the following attributes: 2090 cleardigitbuffer: indicates whether the digit buffer is to be 2091 cleared. A valid value is a boolean (see Section 4.6.1). A value 2092 of true indicates that the digit buffer is to be cleared. A value 2093 of false indicates that the digit buffer is not to be cleared. 2094 The attribute is optional. The default value is true. 2096 timeout: indicates the maximum time to wait for user input to begin. 2097 A valid value is a Time Designation (see Section 4.6.7). The 2098 attribute is optional. The default value is 5s. 2100 interdigittimeout: indicates the maximum time to wait for another 2101 DTMF when the collected input is incomplete with respect to the 2102 grammar. A valid value is a Time Designation (see Section 4.6.7). 2103 The attribute is optional. The default value is 2s. 2105 termtimeout: indicates the maximum time to wait for the termchar 2106 character when the collected input is complete with respect to the 2107 grammar. A valid value is a Time Designation (see Section 4.6.7). 2108 The attribute is optional. The default value is 0s (no delay). 2110 escapekey: specifies a DTMF key that indicates the DTMF collection 2111 is to be re-initiated. A valid value is a DTMF Character (see 2112 Section 4.6.2). The attribute is optional. There is no default 2113 value. 2115 termchar: specifies a DTMF character for terminating DTMF input 2116 collection using the internal grammar. It is ignored when a 2117 custom grammar is used. A valid value is a DTMF character (see 2118 Section 4.6.2). To disable termination by a conventional DTMF 2119 character, set the parameter to an unconventional character like 2120 'A'. The attribute is optional. The default value is '#'. 2122 maxdigits: The maximum number of digits to collect using an internal 2123 digits (0-9 only) grammar. A valid value is a positive integer 2124 (see Section 4.6.5). The attribute is optional. The default 2125 value is 5. 2127 The element has the following child elements: 2129 : indicates a custom grammar format (see 2130 Section 4.3.1.3.1). The element is optional. 2132 The custom grammar takes priority over the internal grammar. If a 2133 element is specified, the MS MUST use it for DTMF 2134 collection. 2136 The MS has the following execution model for DTMF collection after 2137 initialization: 2139 1. The DTMF collection buffer MUST NOT receive DTMF input matching 2140 operations (see Section 4.3.1.2). 2142 2. If an error occurs during execution, then the MS terminates 2143 collection and reports the error to the dialog container (see 2144 Section 4.3). The MS MAY report DTMF collected before the error 2145 in (see Section 4.3.2.3). 2147 3. The MS clears the digit buffer if the value of the 2148 cleardigitbuffer attribute is true. 2150 4. The MS activates an initial timer with the duration of the value 2151 of the timeout attribute. If the initial timer expires before 2152 any DTMF input is received, then collection execution terminates, 2153 the (see Section 4.3.2.3) has the termmode 2154 attribute set to noinput and the execution status is reported to 2155 the dialog container. 2157 5. When the first DTMF collect input is received, the initial timer 2158 is cancelled and DTMF collection begins. Each DTMF input is 2159 collected unless it matches the value of the escapekey attribute, 2160 or the termchar attribute when the internal grammar is used. 2161 Collected input is matched against the grammar to determine if it 2162 is valid and, if valid, whether collection is complete. Valid 2163 DTMF patterns are either a simple digit string where the maximum 2164 length is determined by the maxdigits attribute and which can be 2165 optionally terminated by the character in the termchar attribute; 2166 or a custom DTMF grammar specified with the element. 2168 6. After escapekey input, or a valid input which does not complete 2169 the grammar, the MS activates a timer for the value of the 2170 interdigittimeout attribute or the termtimeout attribute. The MS 2171 only uses the termtimeout value when the grammar does not allow 2172 any additional input; otherwise, the MS uses the 2173 interdigittimeout. 2175 7. If DTMF collect input matches the value of the escapekey 2176 attribute, then the MS re-initializes DTMF collection. 2178 8. If the collect input is not valid with respect to the grammar or 2179 an interdigittimeout timer expires, the MS terminates collection 2180 execution and reports execution status to the dialog container 2181 with a (see Section 4.3.2.3) where the termmode 2182 attribute is set to nomatch. 2184 9. If the collect input completes the grammar or if a termtimeout 2185 timer expires, then the MS terminates collection execution and 2186 reports execution status to the dialog container with 2187 (see Section 4.3.2.3) where the termmode attribute 2188 is set to match. 2190 4.3.1.3.1. 2192 The element allows a custom grammar, inline or external, to 2193 be specified. Custom grammars permit the full range of DTMF 2194 characters including '*' and '#' to be specified for DTMF pattern 2195 matching. 2197 The element has the following attributes: 2199 src: specifies the location of an external grammar document. A 2200 valid value is a URI (see Section 4.6.9) including authentication 2201 information if defined by the URI scheme (e.g. basic access 2202 authentication in HTTP). If the URI scheme is unsupported, the MS 2203 sends a with a 420 status code (Section 4.5). If the 2204 resource cannot be retrieved within the timeout interval, the MS 2205 sends a with a 409 status code. If the grammar format 2206 is not supported, the MS sends a with a 424 status 2207 code. The attribute is optional. There is no default value. 2209 type: identifies the preferred type of the grammar document 2210 identified by the src attribute. A valid value is a MIME media 2211 type (see Section 4.6.10). If the URI scheme used in the src 2212 attribute defines a mechanism for establishing the authoratitive 2213 MIME media type of the media resource, the value returned by that 2214 mechanism takes precedence over this attribute. The attribute is 2215 optional. There is no default value. 2217 fetchtimeout: the maximum interval to wait when fetching a grammar 2218 resource. A valid value is a Time Designation (see 2219 Section 4.6.7). The attribute is optional. The default value is 2220 30s. 2222 The element allows inline grammars to be specified. XML 2223 grammar formats MUST use a namespace other than the one used in this 2224 specification. Non-XML grammar formats MAY use a CDATA section. 2226 The MS MUST support the [SRGS] XML grammar format ("application/ 2227 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 2228 formats. If the grammar format is not supported by the MS, then the 2229 MS sends a with a 424 status code (Section 4.5). 2231 For example, the following fragment shows DTMF collection with an 2232 inline SRGS grammar: 2234 2236 2237 2239 2240 2241 0 2242 1 2243 2 2244 3 2245 4 2246 5 2247 6 2248 7 2249 8 2250 9 2251 2252 2254 2255 2256 2257 2258 2259 # 2260 * 9 2261 2262 2264 2265 2266 2268 The same grammar could also be referenced externally (and take 2269 advantage of HTTP caching): 2271 2272 2274 2276 4.3.1.4. 2278 The element specifies how media input is recorded. 2280 The element has the following attributes: 2282 timeout: indicates the time to wait for user input to begin. A 2283 valid value is a Time Designation (see Section 4.6.7). The 2284 attribute is optional. The default value is 5s. 2286 vadinitial: Control whether voice activity detection (VAD) is used 2287 to initiate the recording operation. A valid value is a boolean 2288 (see Section 4.6.1). A value of true indicates the MS MUST 2289 initiate recording if the VAD detects voice on the configured 2290 inbound audio streams. A value of false indicates that the MS 2291 MUST NOT initiate recording using VAD. The attribute is optional. 2292 The default value is false. 2294 vadfinal: Control whether voice activity detection (VAD) is used to 2295 terminate the recording operation. A valid value is a boolean 2296 (see Section 4.6.1). A value of true indicates the MS MUST 2297 terminate recording if the VAD detects a period of silence (whose 2298 duration is specified by the finalsilence attribute) on configured 2299 inbound audio streams. A value of false indicates that the MS 2300 MUST NOT terminate recording using VAD. The attribute is 2301 optional. The default value is false. 2303 dtmfterm: Indicates whether the recording operation is terminated by 2304 DTMF input. A valid value is a boolean (see Section 4.6.1). A 2305 value of true indicates that recording is terminated by DTMF 2306 input. A value of false indicates that recording is not 2307 terminated by DTMF input. The attribute is optional. The default 2308 value is true. 2310 maxtime: indicates The maximum duration of the recording. A valid 2311 value is a Time Designation (see Section 4.6.7). The attribute is 2312 optional. The default value is 15s. 2314 beep: indicates whether a 'beep' is to be played immediately prior 2315 to initiation of the recording operation. A valid value is a 2316 boolean (see Section 4.6.1). The attribute is optional. The 2317 default value is false. 2319 finalsilence: indicates the interval of silence that indicates the 2320 end of voice input. This interval is not part of the recording 2321 itself. This parameter is ignored if the vadfinal attribute has 2322 the value false. A valid value is a Time Designation (see 2323 Section 4.6.7). The attribute is optional. The default value is 2324 5s. 2326 append: indicates whether recorded data is appended or not to a 2327 recording location if a resource already exists. A valid value is 2328 a boolean (see Section 4.6.1). A value of true indicates that 2329 recorded data is appended to the existing resource at a recording 2330 location. A value of false indicates that recorded data is to 2331 overwrite the existing resource. The attribute is optional. The 2332 default value is false. 2334 If either the vadinitial or vadfinal attribute is set to true and the 2335 MS does not support VAD, the MS sends a with a 434 status 2336 code (Section 4.5). 2338 The element has the following child element (0 or more 2339 occurrences): 2341 : specifies the location and type of the media resource for 2342 uploading recorded data (see Section 4.3.1.5). The MS uploads 2343 recorded data to this resource as soon as possible after recording 2344 is complete. The element is optional. 2346 If multiple elements are specified, then media input is to be 2347 recorded in parallel to multiple resource locations. 2349 If no child element is specified, the MS MUST provide a 2350 recording location where the recording format is implementation- 2351 specific. The recording location and format are reported in 2352 (Section 4.3.2.4) when the dialog terminates. The 2353 recording MUST be available from this location until the connection 2354 or conference associated with the dialog on the MS terminates. 2356 If the MS does not support the configuration required for recording 2357 from the input media streams to one or more elements and a 2358 more specific error code is not defined for its child elements, the 2359 MS sends a with a 423 status code (Section 4.5). 2361 Note that an MS MAY support uploading recorded data to recording 2362 locations at the same time the recording operation takes place. Such 2363 implementations need to be aware of the requirements of certain 2364 recording formats (e.g. WAV) for metadata at the beginning of the 2365 uploaded file, that the finalsilence interval is not part of the 2366 recording and how these requirements interact with the URI scheme. 2368 The MS has the following execution model for recording after 2369 initialization: 2371 1. If an error occurs during execution (e.g. authentication or 2372 communication error when trying to upload to a recording 2373 location), then the MS terminates record execution and reports 2374 the error to the dialog container (see Section 4.3). The MS MAY 2375 report data recorded before the error in (see 2376 Section 4.3.2.4). 2378 2. If DTMF input (not matching a operation) is received 2379 during prompt playback and the prompt bargein attribute is set to 2380 true, then the MS activates the record execution. Otherwise, the 2381 MS activates it after the completion of prompt playback. 2383 3. If a beep attribute with the value of true is specified, then the 2384 MS plays a beep tone. 2386 4. The MS activates a timer with the duration of the value of the 2387 timeout attribute. If the timer expires before the recording 2388 operation begins, then the MS terminates the recording execution 2389 and reports the status to dialog container with (see 2390 Section 4.3.2.4) where the termmode attribute is set to noinput. 2392 5. Initiation of the recording operation depends on the value of the 2393 vadinitial attribute. If vadinitial has the value false, then 2394 the recording operation is initiated immediately. Otherwise, the 2395 recording operation is initiated when voice activity is detected. 2397 6. When the recording operation is initiated, a timer is started for 2398 the value of the maxtime attribute (maximum duration of the 2399 recording). If the timer expires before the recording operation 2400 is complete, then the MS terminates recording execution and 2401 reports the execution status to the dialog container with 2402 (see Section 4.3.2.4) where the termmode attribute 2403 set to maxtime. 2405 7. During the record operation input media streams are recording to 2406 a location and format specified in one or more child 2407 elements. If no child element is specified, the MS 2408 records input to an implementation-specific location and format. 2410 8. If the dtmfterm attribute has the value true and DTMF input is 2411 detected during the record operation, then the MS terminates 2412 recording and its status is reported to the dialog container with 2413 a (see Section 4.3.2.4) where the termmode attribute 2414 is set to dtmf. 2416 9. If vadfinal attribute has the value true, then the MS terminates 2417 the recording operation when a period of silence, with the 2418 duration specified by the value of the finalsilence attribute, is 2419 detected. This period of silence is not part of the final 2420 recording. The status is reported to the dialog container with a 2421 (see Section 4.3.2.4) where the termmode attribute 2422 is set to finalsilence. 2424 For example, a request to record audio and video input to separate 2425 locations: 2427 2428 2429 2430 2431 2433 2435 2436 2437 2438 2440 When the element is executed, it immediately begins 2441 recording of the audio and video (since vadinitial is false) where 2442 the destination locations are specified in the child 2443 elements. Recording is completed when the duration reaches 30s or 2444 the connection is terminated. 2446 4.3.1.5. 2448 The element specifies a media resource to playback from (see 2449 Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback 2450 case, the resource is retrieved and in the recording case, recording 2451 data is uploaded to the resource location. 2453 A element has the following attributes: 2455 loc: specifies the location of the media resource. A valid value is 2456 a URI (see Section 4.6.9) including authentication information if 2457 defined by the URI scheme (e.g. basic access authentication in 2458 HTTP). If the URI scheme is not supported by the MS, the MS sends 2459 a with a 420 status code (Section 4.5). If the 2460 resource is to be retrieved but the MS cannot retrieve it within 2461 the timeout interval, the MS sends a with a 409 status 2462 code. If the format of the media resource is not supported, the 2463 MS sends a with a 429 status code. The attribute is 2464 mandatory. 2466 type: specifies the type of the media resource indicated in the loc 2467 attribute. A valid value is a MIME media type (see 2468 Section 4.6.10) which, depending on its definition, can include 2469 additional parameters (e.g. [RFC4281]). If the URI scheme used 2470 in the loc attribute defines a mechanism for establishing the 2471 authoratitive MIME media type of the media resource, the value 2472 returned by that mechanism takes precedence over this attribute. 2473 If additional media parameters are specified, the MS MUST use them 2474 to determine media processing. For example, [RFC4281] defines a 2475 'codec' parameter for media types like video/3gpp which would 2476 determine which media streams are played or recorded. The 2477 attribute is optional. There is no default value. 2479 fetchtimeout: the maximum interval to wait when fetching a media 2480 resource. A valid value is a Time Designation (see 2481 Section 4.6.7). The attribute is optional. The default value is 2482 30s. 2484 soundLevel: playback soundLevel (volume) for the media resource. A 2485 valid value is a percentage (see Section 4.6.4). The value 2486 indicates increase or decrease relative to the original recorded 2487 volume of the media. A value of 100% (the default) plays the 2488 media at its recorded volume, a value of 200% will play the media 2489 twice recorded volume, 50% at half its recorded volume, a value of 2490 0% will play the media silently, and so on. See 'soundLevel' in 2491 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 2492 attribute is optional. The default value is 100%. 2494 clipBegin: offset from start of media resource to begin playback. A 2495 valid value is a Time Designation (see Section 4.6.7). The offset 2496 is measured in normal media playback time from the beginning of 2497 the media resource. If the clipBegin offset is after the end of 2498 media (or the clipEnd offset), no media is played. See 2499 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further 2500 information. The attribute is optional. The default value is 0s. 2502 clipEnd: offset from start of media resource to end playback. A 2503 valid value is a Time Designation (see Section 4.6.7). The offset 2504 is measured in normal media playback time from the beginning of 2505 the media resource. If the clipEnd offset is after the end of 2506 media, then the media is played to the end. If clipBegin is after 2507 clipEnd, then no media is played. See 'clipEnd' in SMIL 2508 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 2509 is optional. There is no default value. 2511 The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are 2512 only relevant in the playback use case. The MS ignores these 2513 attributes when using the for recording. 2515 The element has no children. 2517 4.3.2. Exit Information 2519 When the dialog exits, information about the specified operations is 2520 reported in a notification event (Section 4.2.5.1). 2522 4.3.2.1. 2524 The element reports the information about prompt 2525 execution. It has the following attributes: 2527 duration: indicates the duration of prompt playback in milliseconds. 2528 A valid value is a non-negative integer (see Section 4.6.4). The 2529 attribute is optional. There is no default value. 2531 termmode: indicates how playback was terminated. Valid values are: 2532 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 2534 The element has no child elements. 2536 4.3.2.2. 2538 The element reports information about control 2539 execution. 2541 The element has no attributes and has 0 or more 2542 child elements each describing an individual runtime 2543 control match. 2545 4.3.2.2.1. 2547 The element has the following attributes: 2549 dtmf: DTMF input triggering the runtime control. A valid value is a 2550 DTMF string (see Section 4.6.3) with no space between characters. 2551 The attribute is mandatory. 2553 timestamp: indicates the time (on the MS) at which the control was 2554 triggered. A valid value is an dateTime expression 2555 (Section 4.6.12). The attribute is mandatory. 2557 The element has no child elements. 2559 4.3.2.3. 2561 The element reports the information about collect 2562 execution. 2564 The element has the following attributes: 2566 dtmf: DTMF input collected from the user. A valid value is a DTMF 2567 string (see Section 4.6.3) with no space between characters. The 2568 attribute is optional. There is no default value. 2570 termmode: indicates how collection was terminated. Valid values 2571 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2572 mandatory. 2574 The element has no child elements. 2576 4.3.2.4. 2578 The element reports information about record execution 2579 (Section 4.3.1.4). 2581 The element has the following attributes: 2583 termmode: indicates how recording was terminated. Valid values are: 2584 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2585 attribute is mandatory. 2587 duration: indicates the duration of the recording in milliseconds. 2588 A valid value is a non-negative integer (see Section 4.6.4). The 2589 attribute is optional. There is no default value. 2591 The element has the following child element (0 or more 2592 occurrences): 2594 : indicates information about a recorded media resource 2595 (see Section 4.3.2.4.1). The element is optional. 2597 When the record operation is successful, the MS MUST specify a 2598 element for each recording location. For example, if the 2599 element contained three child elements, then the 2600 would contain three child elements. 2602 4.3.2.4.1. 2604 The element reports information about a recorded media 2605 resource. 2607 The element has the following attributes: 2609 loc: indicates the location of the media resource. A valid value is 2610 a URI (see Section 4.6.9). The attribute is mandatory. 2612 type: indicates the format of the media resource. A valid value is 2613 a MIME media type (see Section 4.6.10). The attribute is 2614 mandatory. 2616 size: indicates the size of the media resource in bytes. A valid 2617 value is a non-negative integer (see Section 4.6.4). The 2618 attribute is optional. There is no default value. 2620 4.4. Audit Elements 2622 The audit elements defined in this section allow the MS to be audited 2623 for package capabilities as well as dialogs managed by the package. 2624 Auditing is particularly important for two use cases. First, it 2625 enables discovery of package capabilities supported on an MS before 2626 an AS starts a dialog on connection or conference. The AS can then 2627 use this information to create request elements using supported 2628 capabilities and, in the case of codecs, to negotiate an appropriate 2629 SDP for a user agent's connection. Second, auditing enables 2630 discovery of the existence and status of dialogs currently managed by 2631 the package on the MS. This could be used when one AS takes over 2632 management of the dialogs if the AS which initiated the dialogs fails 2633 or is no longer available (see Security Considerations described in 2634 Section 7 ). 2636 4.4.1. 2638 The request element is sent to the MS to request information 2639 about the capabilities of, and dialogs currently managed with, this 2640 control package. Capabilities include supported dialog languages, 2641 grammar formats, record and media types as well as codecs. Dialog 2642 information includes the status of managed dialogs as well as codecs. 2644 The element has the following attributes: 2646 capabilities: indicates whether package capabilities are to be 2647 audited. A valid value is a boolean (see Section 4.6.1). A value 2648 of true indicates that capability information is to be reported. 2649 A value of false indicates that capability information is not to 2650 be reported. The attribute is optional. The default value is 2651 true. 2653 dialogs: indicates whether dialogs currently managed by the package 2654 are to be audited. A valid value is a boolean (see 2655 Section 4.6.1). A value of true indicates that dialog information 2656 is to be reported. A value of false indicates that dialog 2657 information is not to be reported. The attribute is optional. 2658 The default value is true. 2660 dialogid: string identifying a specific dialog to audit. The MS 2661 sends a response with a 406 status code (Section 4.5) if the 2662 specified dialog identifier is invalid. The attribute is 2663 optional. There is no default value. 2665 If the dialogs attribute has the value true and dialogid attribute is 2666 specified, then only audit information about the specified dialog is 2667 reported. If the dialogs attribute has the value false, then no 2668 dialog audit information is reported even if a dialogid attribute is 2669 specified. 2671 The element has no child elements. 2673 When the MS receives an request, it MUST reply with a 2674 element (Section 4.4.2) which includes a mandatory 2675 attribute describing the status in terms of a numeric code. Response 2676 status codes are defined in Section 4.5. If the request is 2677 successful, the contains (depending on attribute 2678 values) a element (Section 4.4.2.2) reporting package 2679 capabilities and a element (Section 4.4.2.3) reporting 2680 managed dialog information. If the MS is not able to process the 2681 request and carry out the audit operation, the audit request has 2682 failed and the MS MUST indicate the class of failure using an 2683 appropriate 4xx response code. Unless an error response code is 2684 specified for a class of error within this section, implementations 2685 follow Section 4.5 in determining the appropriate status code for the 2686 response. 2688 For example, a request to audit capabilities and dialogs managed by 2689 the package: 2691 2692 2693 2695 In this example, only capabilities are to be audited: 2697 2698 2699 2701 With this example, only a specific dialog is to be audited: 2703 2704 2705 2707 4.4.2. 2709 The element describes a response to a 2710 request. 2712 The element has the following attributes: 2714 status: numeric code indicating the audit response status. The 2715 attribute is mandatory. Valid values are defined in Section 4.5. 2717 reason: string specifying a reason for the status. The attribute is 2718 optional. 2720 The element has the following sequence of child 2721 elements: 2723 element (Section 4.4.2.2) describing capabilities of 2724 the package. The element is optional. 2726 element (Section 4.4.2.3) describing information about 2727 managed dialogs. The element is optional. 2729 For example, a successful response to a request requesting 2730 capabilities and dialogs information: 2732 2733 2734 2735 2736 application/voicexml+xml 2737 2738 2739 2740 audio/x-wav 2741 video/3gpp 2742 2743 2744 audio/x-wav 2745 video/3gpp 2746 2747 2748 2749 mdy 2750 ymd 2751 dmy 2752 dm 2753 2754 2755 600s 2756 1800s 2757 2758 2759 H.263 2760 2761 2762 H.264 2763 2764 2765 PCMU 2766 2767 2768 PCMA 2769 2770 2771 telephone-event 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 PCMA 2782 2783 2784 telephone-event 2785 2786 2787 2788 2789 2790 2792 4.4.2.1. 2794 The provides audit information about codecs. 2796 The element has no attributes. 2798 The element has the following sequence of child elements (0 2799 or more occurrences): 2801 : audit information for a codec (Section 4.4.2.1.1). The 2802 element is optional. 2804 For example, a fragment describing two codecs: 2806 2807 2808 PCMA 2809 2810 2811 telephone-event 2812 2813 2815 4.4.2.1.1. 2817 The element describes a codec on the MS. The element is 2818 modeled on the element in the XCON conference information 2819 data model ([I-D.ietf-xcon-common-data-model]) but allows addition 2820 information (e.g. rate, speed, etc) to be specified. 2822 The element has no attributes. 2824 The element has the following sequence of child elements: 2826 : element describing the codec's name. The possible values 2827 of this element are the values of the 'subtype' column of the RTP 2828 Payload Format media types per [RFC4855] defined in IANA ([IANA]). 2829 The element is mandatory. 2831 : element (Section 4.2.6) describing additional information 2832 about the codec. This package is agnostic to the names and values 2833 of the codec parameters supported by an implementation. The 2834 element is optional. 2836 For example, a fragment with a element describing the H.263 2837 codec: 2839 2840 H.263 2841 2843 4.4.2.2. 2845 The element provides audit information about package 2846 capabilities. 2848 The element has no attributes. 2850 The element has the following sequence of child 2851 elements: 2853 : element (Section 4.4.2.2.1) describing additional 2854 dialog languages supported by the MS. The element is mandatory. 2856 : element (Section 4.4.2.2.2) describing supported 2857 (Section 4.3.1.3.1) format types. The element is 2858 mandatory. 2860 : element (Section 4.4.2.2.3) describing 2861 (Section 4.3.1.5) format types supported for 2862 (Section 4.3.1.4). The element is mandatory. 2864 : element (Section 4.4.2.2.4) describing supported 2865 (Section 4.3.1.5) format types for playback within a 2866 (Section 4.3.1.1). The element is mandatory. 2868 : element (Section 4.4.2.2.5) describing supported types 2869 and formats for the element (Section 4.4.2.2.5). The 2870 element is mandatory. 2872 : element (Section 4.4.2.2.6) describing the 2873 supported maximum duration for a prepared dialog following a 2874 (Section 4.2.1) request. The element is 2875 mandatory. 2877 : element (Section 4.4.2.2.7) describing the 2878 supported maximum duration for a recording 2879 Section 4.3.1.4) request. The element is mandatory. 2881 : element (Section 4.4.2.1) describing codecs available to 2882 the package. The element is mandatory. 2884 For example, a fragment describing capabilities: 2886 2887 2888 application/voicexml+xml 2889 2890 2891 2892 audio/x-wav 2893 video/3gpp 2894 2895 2896 audio/x-wav 2897 video/3gpp 2898 2899 2900 30s 2901 60s 2902 2903 2904 H.263 2905 2906 2907 H.264 2908 2909 2910 PCMU 2911 2912 2913 PCMA 2914 2915 2916 telephone-event 2917 2918 2919 2921 4.4.2.2.1. 2923 The element provides information about additional 2924 dialog languages supported by the package. Dialog languages are 2925 identified by their associated MIME media types. The MS MUST NOT 2926 include the mandatory dialog language for this package (Section 4.3). 2928 The element has no attributes. 2930 The element has the following sequence of child 2931 elements (0 or more occurrences): 2933 : element whose content model describes a MIME media type 2934 (Section 4.6.10) associated with a supported dialog language. The 2935 element is optional. 2937 4.4.2.2.2. 2939 The element provides information about 2940 format types supported by the package. The MS MUST NOT include the 2941 mandatory SRGS format type, "application/srgs+xml" 2942 (Section 4.3.1.3.1). 2944 The element has no attributes. 2946 The element has the following sequence of child 2947 elements (0 or more occurrences): 2949 : element whose content model describes a mime type 2950 (Section 4.6.10). The element is optional. 2952 4.4.2.2.3. 2954 The element provides information about media resource 2955 format types of supported by the package (Section 4.3.1.4). 2957 The element has no attributes. 2959 The element has the following sequence of child 2960 elements (0 or more occurrences): 2962 : element whose content model describes a mime type 2963 (Section 4.6.10). The element is optional. 2965 4.4.2.2.4. 2967 The element provides information about media resource 2968 format types of supported by the package (Section 4.3.1.1). 2970 The element has no attributes. 2972 The element has the following sequence of child 2973 elements (0 or more occurrences): 2975 : element whose content model describes a mime type 2976 (Section 4.6.10). The element is optional. 2978 4.4.2.2.5. 2980 The element provides information about types and formats 2981 for the element (Section 4.4.2.2.5) supported by the 2982 package. 2984 The element has no attributes. 2986 The element has the following sequence of child elements 2987 (0 or more occurrences): 2989 : element describing the formats support for a given 2990 type (Section 4.4.2.2.5.1). The element is optional. 2992 For example, a fragment describing support for with a 2993 "date" type in some common formats. 2995 2996 2997 mdy 2998 ymd 2999 dmy 3000 dm 3001 3002 3004 4.4.2.2.5.1. 3006 The element describes the formats supported for 3007 supported type. 3009 The element has the following attributes: 3011 type: indicates a supported value associated with the type attribute 3012 of element.The attribute is manadatory. 3014 desc: a string providing some textual description of the type and 3015 format. The attribute is optional. 3017 The element has the following sequence of child 3018 elements (0 or more occurrences): 3020 : element with a desc attribute (optional description) and a 3021 content model describing a supported format in the 3022 format attribute. The element is optional. 3024 4.4.2.2.6. 3026 The element describes the maximum duration for 3027 a dialog to remain in the prepared state (Section 4.2) following a 3028 (Section 4.2.1) request. 3030 The element has no attributes. 3032 The element has a content model describing the 3033 maximum prepared dialog duration as a time designation 3034 (Section 4.6.7). 3036 4.4.2.2.7. 3038 The element describes the maximum recording 3039 duration for Section 4.3.1.4) request supported by the MS. 3041 The element has no attributes. 3043 The element has a content model describing the 3044 maximum duration of recording as a time designation (Section 4.6.7). 3046 4.4.2.3. 3048 The element provides audit information about dialogs. 3050 The element has no attributes. 3052 The element has the following sequence of child elements (0 3053 or more occurrences): 3055 : audit information for a dialog (Section 4.4.2.3.1). 3056 The element is optional. 3058 4.4.2.3.1. 3060 The element has the following attributes: 3062 dialogid: string identifying the dialog. The attribute is 3063 mandatory. 3065 state: string indicating the state of the dialog. Valid values are: 3066 preparing, prepared, starting, started. The attribute is 3067 mandatory. 3069 connectionid: string identifying the SIP dialog connection 3070 associated with the dialog (see Section 16.1 of 3071 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3072 optional. There is no default value. 3074 conferenceid: string identifying the conference associated with the 3075 dialog (see Section 16.1 of 3076 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3077 optional. There is no default value. 3079 The element has the following child element: 3081 element describing codecs used in the dialog. See 3082 Section 4.4.2.1. The element is optional. 3084 For example, a fragment describing a started dialog which is using 3085 PCMU and telephony-event codecs: 3087 3088 3089 3090 PCMU 3091 3092 3093 telephone-event 3094 3095 3096 3098 4.5. Response Status Codes 3100 This section describes the response codes in Table 1 for the status 3101 attribute of dialog management (Section 4.2.4) and audit 3102 (Section 4.4.2) responses. The MS MUST support the 3103 status response codes defined here. All other valid but undefined 3104 values are reserved for future use, where a standards-track RFC is 3105 required to define new status codes. The AS MUST treat any responses 3106 it does not recognize as being equivalent to the x00 response code 3107 for all classes. For example, if an AS receives an unrecognized 3108 response code of 499, it can safely assume that there was something 3109 wrong with its request and treat the response as if it had received a 3110 400 (Syntax error) response code. 3112 4xx responses are definite failure responses from a particular MS. 3113 The reason attribute in the response SHOULD identify the failure in 3114 more detail, for example, "Mandatory attribute missing: src in media 3115 element" for a 400 (Syntax error) response code. 3117 The AS SHOULD NOT retry the same request without modification (for 3118 example, correcting a syntax error or changing the connectionid to 3119 use one available on the MS). However, the same request to a 3120 different MS might be successful; for example, if another MS supports 3121 a capability required in the request. 3123 4xx failure responses can be grouped into three classes: failure due 3124 to a syntax error in the request (400); failure due to an error 3125 executing the request on the MS (405-419); and failure due to the 3126 request requiring a capability not supported by the MS (420-439). 3128 In cases where more than one request code could be reported for a 3129 failure, the MS SHOULD use the most specific error code of the 3130 failure class for the detected error. For example, if the MS detects 3131 that the dialogid in the request is invalid, then it uses a 406 3132 status code. However, if the MS merely detects that an execution 3133 error occurred, then 419 is used. 3135 +------+---------------+-----------------------+--------------------+ 3136 | Code | Summary | Description | Informational: AS | 3137 | | | | Possible Recovery | 3138 | | | | Action | 3139 +------+---------------+-----------------------+--------------------+ 3140 | 200 | OK | request has succeeded | | 3141 | | | | | 3142 | 400 | Syntax error | request is | Change the request | 3143 | | | syntactically | so that it is | 3144 | | | invalid: it is not | syntactically | 3145 | | | valid with respect to | valid. | 3146 | | | the XML schema | | 3147 | | | specified in | | 3148 | | | Section 5 or it | | 3149 | | | violates a | | 3150 | | | co-occurrence | | 3151 | | | constraint for a | | 3152 | | | request element | | 3153 | | | defined in Section 4. | | 3154 | | | | | 3155 | 405 | dialogid | request uses a | Send a request for | 3156 | | already | dialogid identifier | a new dialog | 3157 | | exists | for a new dialog | without specifying | 3158 | | | which is already used | the dialogid and | 3159 | | | by another dialog on | let the MS | 3160 | | | the MS (see | generate a unique | 3161 | | | Section 4.2). | dialogid in the | 3162 | | | | response. | 3163 | | | | | 3164 | 406 | dialogid does | request uses a | Send an | 3165 | | not exist | dialogid identifier | request | 3166 | | | for an dialog which | (Section 4.4.1) | 3167 | | | does not exist on the | requesting the | 3168 | | | MS (see Section 4.2). | list of dialog | 3169 | | | | identifiers | 3170 | | | | already used by | 3171 | | | | the MS and then | 3172 | | | | use one of the | 3173 | | | | listed dialog | 3174 | | | | identifiers. | 3175 | | | | | 3176 | 407 | connectionid | request uses a | Use another method | 3177 | | does not | connectionid | to determine which | 3178 | | exist | identifier for a | connections are | 3179 | | | connection which does | available on the | 3180 | | | not exist on the MS. | MS. | 3181 | | | | | 3182 | 408 | conferenceid | request uses a | Use another method | 3183 | | does not | conferenceid | to determine which | 3184 | | exist | identifier for a | conferences are | 3185 | | | conference which does | available on the | 3186 | | | not exist on the MS. | MS. | 3187 | | | | | 3188 | 409 | Resource | request use a URI to | Check that the | 3189 | | cannot be | reference an external | resource URI is | 3190 | | retrieved | resource (e.g. | valid, can be | 3191 | | | dialog, media or | reached from the | 3192 | | | grammar) which cannot | MS, and that the | 3193 | | | be retrieved within | appropriate | 3194 | | | the timeout interval | authentication is | 3195 | | | | used. | 3196 | | | | | 3197 | 410 | Dialog | request to prepare or | | 3198 | | execution | start a dialog which | | 3199 | | canceled | has been terminated | | 3200 | | | by a | | 3201 | | | | | 3202 | | | request (see | | 3203 | | | Section 4.2) | | 3204 | | | | | 3205 | 411 | Incompatible | request specifies a | Change the media | 3206 | | stream | media stream | stream | 3207 | | configuration | configuration which | configuration to | 3208 | | | is in conflict with | match the | 3209 | | | itself, or the | capabilities of | 3210 | | | connection or | the connection or | 3211 | | | conference | conference | 3212 | | | capabilities (see | | 3213 | | | Section 4.2.2) | | 3214 | | | | | 3215 | 412 | Media stream | request specifies an | Check the media | 3216 | | not available | operation for which a | stream capability | 3217 | | | media stream is not | of the connection | 3218 | | | available. For | or conference and | 3219 | | | example, playing a | use an operation | 3220 | | | video media resource | which only uses | 3221 | | | on an connection or | these capabilities | 3222 | | | conference without | | 3223 | | | video streams. | | 3224 | | | | | 3225 | 413 | Control keys | the request contains | Use different keys | 3226 | | with same | a element | for the different | 3227 | | value | (Section 4.3.1.2) | control | 3228 | | | where some keys have | operations. | 3229 | | | the same value | | 3230 | | | | | 3231 | 419 | Other | requested operation | | 3232 | | execution | cannot be executed by | | 3233 | | error | the MS. | | 3234 | | | | | 3235 | 420 | Unsupported | request specifies a | Use a URI scheme | 3236 | | URI scheme | URI whose scheme is | which is | 3237 | | | not supported by the | supported. | 3238 | | | MS | | 3239 | | | | | 3240 | 421 | Unsupported | request references an | Send an | 3241 | | dialog | external dialog | request | 3242 | | language | language not | (Section 4.4.1) | 3243 | | | supported by the MS | requesting the MS | 3244 | | | | capabilities and | 3245 | | | | then use one of | 3246 | | | | the listed dialog | 3247 | | | | languages. | 3248 | | | | | 3249 | 422 | Unsupported | request references a | Send an | 3250 | | playback | media resource for | request | 3251 | | format | playback whose format | (Section 4.4.1) | 3252 | | | is not supported by | requesting the MS | 3253 | | | the MS | capabilities and | 3254 | | | | then use one of | 3255 | | | | the listed | 3256 | | | | playback media | 3257 | | | | formats. | 3258 | | | | | 3259 | 423 | Unsupported | request references a | Send an | 3260 | | record format | media resource for | request | 3261 | | | recording whose | (Section 4.4.1) | 3262 | | | format is not | requesting the MS | 3263 | | | supported by the MS | capabilities and | 3264 | | | | then use one of | 3265 | | | | the listed record | 3266 | | | | media formats. | 3267 | | | | | 3268 | 424 | Unsupported | request references a | Send an | 3269 | | grammar | grammar whose format | request | 3270 | | format | is not supported by | (Section 4.4.1) | 3271 | | | the MS | requesting the MS | 3272 | | | | capabilities and | 3273 | | | | then use one of | 3274 | | | | the listed grammar | 3275 | | | | types. | 3276 | | | | | 3277 | 425 | Unsupported | request contains a | Send an | 3278 | | variable | prompt | request | 3279 | | configuration | element | (Section 4.4.1) | 3280 | | | (Section 4.3.1.1.1) | requesting the MS | 3281 | | | not supported by the | capabilities and | 3282 | | | MS | then use one of | 3283 | | | | the listed | 3284 | | | | variable types. | 3285 | | | | | 3286 | 426 | Unsupported | request contains a | | 3287 | | DTMF | prompt element | | 3288 | | configuration | (Section 4.3.1.1.2) | | 3289 | | | not supported by the | | 3290 | | | MS | | 3291 | | | | | 3292 | 427 | Unsupported | request contains a | | 3293 | | parameter | element | | 3294 | | | (Section 4.2.6.1) not | | 3295 | | | supported by the MS | | 3296 | | | | | 3297 | 428 | Unsupported | request contains a | | 3298 | | media stream | element | | 3299 | | configuration | (Section 4.2.2.2) | | 3300 | | | whose configuration | | 3301 | | | is not supported by | | 3302 | | | the MS. | | 3303 | | | | | 3304 | 429 | Unsupported | request contains a | | 3305 | | playback | element | | 3306 | | configuration | (Section 4.3.1.1) | | 3307 | | | which the MS is | | 3308 | | | unable to play on the | | 3309 | | | available output | | 3310 | | | media streams | | 3311 | | | | | 3312 | 430 | Unsupported | request contains a | | 3313 | | record | element | | 3314 | | configuration | (Section 4.3.1.1) | | 3315 | | | which the MS is | | 3316 | | | unable to record with | | 3317 | | | on the available | | 3318 | | | input media streams | | 3319 | | | | | 3320 | 431 | Unsupported | the request contains | | 3321 | | foreign | attributes or | | 3322 | | namespace | elements from another | | 3323 | | attribute or | namespace which the | | 3324 | | element | MS does not support | | 3325 | | | | | 3326 | 432 | Unsupported | the request tries to | | 3327 | | multiple | start another dialog | | 3328 | | dialog | on the same | | 3329 | | capability | conference or | | 3330 | | | connection where a | | 3331 | | | dialog is already | | 3332 | | | running | | 3333 | | | | | 3334 | 433 | Unsupported | the request contains | | 3335 | | collect and | and | | 3336 | | record | elements and | | 3337 | | capability | the MS does support | | 3338 | | | these operations | | 3339 | | | simultaneously | | 3340 | | | | | 3341 | 434 | Unsupported | the request contains | | 3342 | | VAD | a element | | 3343 | | capability | where Voice Activity | | 3344 | | | Detection (VAD) is | | 3345 | | | required, but the MS | | 3346 | | | does not support VAD. | | 3347 | | | | | 3348 | 435 | Unsupported | the request contains | | 3349 | | parallel | a prompt | | 3350 | | playback | element whose | | 3351 | | | configuration is not | | 3352 | | | supported by the MS. | | 3353 | | | | | 3354 | 439 | Other | request requires | | 3355 | | unsupported | another capability | | 3356 | | capability | not supported by the | | 3357 | | | MS | | 3358 +------+---------------+-----------------------+--------------------+ 3360 Table 1: status codes 3362 4.6. Type Definitions 3364 This section defines types referenced in attribute and element 3365 definitions. 3367 4.6.1. Boolean 3369 The value space of boolean is the set {true, false}. 3371 4.6.2. DTMFChar 3373 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 3374 7, 8, 9, #, *, A, B, C, D}. 3376 4.6.3. DTMFString 3378 A String composed of one or more DTMFChars. 3380 4.6.4. Non-Negative Integer 3382 The value space of non-negative integer is the infinite set 3383 {0,1,2,...}. 3385 4.6.5. Positive Integer 3387 The value space of positive integer is the infinite set {1,2,...}. 3389 4.6.6. String 3391 A string in the character encoding associated with the XML element. 3393 4.6.7. Time Designation 3395 A time designation consists of a non-negative real number followed by 3396 a time unit identifier. 3398 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 3400 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 3402 4.6.8. Percentage 3404 A percentage consists of a Positive Integer followed by "%". 3406 Examples include: "100%", "500%" and "10%". 3408 4.6.9. URI 3410 Uniform Resource Indicator as defined in [RFC3986]. 3412 4.6.10. MIME Media Type 3414 A string formated as a IANA MIME media type ([MIME.mediatypes]). 3416 4.6.11. Language Identifier 3418 A language identifier labels information content as being of a 3419 particular human language variant. Following the XML specification 3420 for language identification [XML], a legal language identifier is 3421 identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code 3422 where the language code is required and a country code or other 3423 subtag identifier is optional. 3425 4.6.12. DateTime 3427 A string formated according to the XML schema definition of a 3428 dateTime type ([XMLSchema:Part2]). 3430 5. Formal Syntax 3432 This section defines the XML schema for IVR Control Package. 3434 The schema defines datatypes, attributes, dialog management and IVR 3435 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 3436 most elements the order of child elements is significant. The schema 3437 is extensible: elements allow attributes and child elements from 3438 other namespaces. Elements from outside this package's namespace can 3439 occur after elements defined in this package. 3441 The schema is dependent upon the schema (framework.xsd) defined in 3442 Section 16.1 of the Control Framework 3443 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 3444 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 3445 xml:base). 3447 3448 3454 3455 3456 IETF MediaCtrl IVR 1.0 (20090710) 3458 This is the schema of the IETF MediaCtrl IVR control 3459 package. 3461 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 3463 3464 3466 3474 3476 3477 3478 This import brings in the XML attributes for 3479 xml:base, xml:lang, etc 3481 See http://www.w3.org/2001/xml.xsd for latest version 3482 3483 3484 3486 3489 3490 3491 This import brings in the framework attributes for 3492 conferenceid and connectionid. 3493 3494 3495 3497 3505 3506 3507 3508 This type is extended by other (non-mixed) component types to 3509 allow attributes from other namespaces. 3510 3511 3512 3513 3514 3516 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3539 3540 3541 3543 3544 3545 3547 3549 3557 3559 3560 3561 3562 3563 3565 3567 3569 3570 3571 3572 3573 3574 3576 3578 3579 3580 3582 3584 3586 3587 3588 3589 3590 3592 3594 3596 3598 3600 3601 3602 3603 3604 3605 3607 3609 3611 3612 3613 3614 3616 3617 3619 3620 3621 3622 3623 3625 3626 3628 3630 3631 3632 3634 3636 3638 3639 3640 3641 3642 3644 3645 3647 3648 3650 3651 3652 3653 3655 3657 3659 3660 3661 3662 3663 3664 3666 3668 3670 3671 3672 3674 3675 3676 3678 3680 3682 3683 3684 3685 3686 3688 3690 3692 3694 3696 3698 3699 3701 3702 3703 3704 3706 3708 3710 3711 3712 3713 3714 3716 3717 3719 3721 3723 3724 3725 3727 3729 3731 3732 3733 3734 3735 3737 3738 3740 3742 3743 3744 3746 3748 3750 3751 3752 3753 3754 3756 3758 3759 3760 3761 3763 3765 3767 3768 3769 3770 3771 3773 3774 3776 3777 3778 3779 3781 3783 3785 3786 3787 3788 3789 3791 3792 3794 3796 3797 3798 3800 3801 3803 3804 3805 3806 3807 3809 3811 3812 3814 3816 3817 3818 3820 3822 3824 3825 3826 3827 3828 3830 3831 3833 3835 3837 3838 3839 3841 3843 3845 3846 3847 3848 3849 3851 3853 3854 3855 3856 3858 3860 3862 3863 3864 3865 3866 3868 3869 3871 3872 3873 3875 3877 3878 3879 3880 3881 3882 3884 3886 3887 3888 3889 3891 3892 3893 3894 3895 3896 3898 3899 3900 3901 3902 3904 3906 3908 3909 3910 3911 3912 3914 3916 3918 3919 3921 3922 3924 3925 3926 3928 3930 3931 3932 3933 3935 3937 3938 3939 3940 3942 3944 3946 3947 3948 3949 3950 3952 3954 3956 3958 3960 3961 3963 3965 3966 3967 3969 3971 3973 3974 3975 3976 3977 3978 3979 3980 3981 3983 3984 3985 3987 3988 3989 3991 3993 3995 3996 3997 3998 3999 4001 4002 4004 4005 4007 4009 4011 4013 4014 4015 4017 4019 4021 4022 4023 4024 4025 4027 4028 4030 4033 4034 4035 4036 4037 4038 4040 4042 4044 4045 4046 4047 4048 4050 4051 4053 4055 4057 4059 4060 4061 4063 4065 4067 4068 4069 4070 4071 4072 4073 4074 4075 4077 4078 4079 4081 4083 4085 4087 4088 4089 4090 4091 4092 4093 4094 4096 4097 4098 4099 4101 4103 4105 4106 4107 4108 4109 4111 4112 4114 4115 4116 4118 4120 4122 4124 4126 4128 4130 4132 4134 4136 4138 4140 4141 4142 4144 4146 4148 4149 4150 4151 4152 4154 4156 4157 4159 4161 4163 4165 4167 4169 4171 4172 4173 4175 4176 4177 4178 4179 4180 4182 4183 4184 4185 4187 4188 4190 4192 4194 4195 4196 4197 4198 4200 4202 4203 4205 4207 4209 4211 4213 4215 4217 4219 4220 4221 4223 4224 4232 4234 4235 4236 4237 4238 4240 4241 4243 4245 4247 4248 4249 4251 4253 4255 4256 4257 4258 4259 4261 4263 4265 4266 4268 4269 4270 4272 4274 4276 4278 4279 4280 4281 4282 4284 4286 4288 4289 4290 4291 4293 4295 4297 4298 4299 4301 4303 4305 4306 4307 4308 4309 4311 4313 4314 4315 4316 4318 4319 4321 4322 4323 4324 4325 4327 4329 4331 4333 4335 4337 4339 4341 4343 4344 4345 4346 4348 4350 4352 4354 4356 4357 4358 4359 4360 4362 4364 4366 4367 4368 4370 4372 4374 4375 4376 4377 4378 4380 4382 4383 4384 4385 4387 4389 4391 4392 4393 4394 4395 4397 4399 4400 4401 4402 4404 4406 4408 4409 4410 4411 4412 4414 4416 4417 4418 4419 4421 4423 4425 4426 4427 4428 4429 4431 4433 4434 4435 4436 4438 4440 4441 4442 4443 4444 4446 4448 4449 4450 4451 4452 4453 4455 4457 4458 4459 4460 4461 4463 4464 4465 4466 4468 4470 4472 4475 4477 4480 4482 4483 4484 4485 4486 4488 4490 4491 4492 4493 4495 4497 4499 4500 4501 4502 4503 4505 4507 4508 4510 4512 4513 4514 4515 4517 4519 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 Time designation following Time in CSS2 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 DTMF character [0-9#*A-D] 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 DTMF sequence [0-9#*A-D] 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 whole integer followed by '%' 4611 4612 4613 4614 4615 4616 4618 4619 4620 4621 4622 4623 4624 4626 4627 4628 4629 4630 4631 4632 4633 4635 4636 4637 4638 4639 4640 4641 4642 4643 4645 4646 4647 4648 4649 4650 4651 4653 4654 6. Examples 4656 This section provides examples of the IVR Control package. 4658 6.1. AS-MS Dialog Interaction Examples 4660 The following example assume a control channel has been established 4661 and synced as described in the Media Control Channel Framework 4662 ([I-D.ietf-mediactrl-sip-control-framework]). 4664 The XML messages are in angled brackets (with the root 4665 omitted); the REPORT status is in round brackets. Other aspects of 4666 the protocol are omitted for readability. 4668 6.1.1. Starting an IVR dialog 4670 An IVR dialog is started successfully, and dialogexit notification 4671 is sent from the MS to the AS when the dialog exits normally. 4673 Application Server (AS) Media Server (MS) 4674 | | 4675 | (1) CONTROL: | 4676 | ----------------------------------------> | 4677 | | 4678 | (2) 202 | 4679 | <--------------------------------------- | 4680 | | 4681 | | 4682 | (3) REPORT: | 4683 | (terminate) | 4684 | <---------------------------------------- | 4685 | | 4686 | (4) 200 | 4687 | ----------------------------------------> | 4688 | | 4689 | (5) CONTROL: | 4690 | | 4691 | <---------------------------------------- | 4692 | | 4693 | (6) 200 | 4694 | ----------------------------------------> | 4695 | | 4697 6.1.2. IVR dialog fails to start 4699 An IVR dialog fails to start due to an unknown dialog language. The 4700 is reported in a framework 200 message. 4702 Application Server (AS) Media Server (MS) 4703 | | 4704 | (1) CONTROL: | 4705 | ----------------------------------------> | 4706 | | 4707 | (2) 200: | 4708 | <---------------------------------------- | 4709 | | 4711 6.1.3. Preparing and starting an IVR dialog 4713 An IVR dialog is prepared and started successfully, and then the 4714 dialog exits normally. 4716 Application Server (AS) Media Server (MS) 4717 | | 4718 | (1) CONTROL: | 4719 | ----------------------------------------> | 4720 | | 4721 | (2) 202 | 4722 | <--------------------------------------- | 4723 | | 4724 | (3) REPORT: | 4725 | (terminate) | 4726 | <---------------------------------------- | 4727 | | 4728 | (4) 200 | 4729 | ----------------------------------------> | 4730 | | 4731 | (5) CONTROL: | 4732 | ----------------------------------------> | 4733 | | 4734 | (6) 202 | 4735 | <--------------------------------------- | 4736 | | 4737 | (7) REPORT: | 4738 | (terminate) | 4739 | <---------------------------------------- | 4740 | | 4741 | (8) 200 | 4742 | ----------------------------------------> | 4743 | | 4744 | (9) CONTROL: | 4745 | <---------------------------------------- | 4746 | | 4747 | (10) 200 | 4748 | ----------------------------------------> | 4749 | | 4751 6.1.4. Terminating a dialog 4753 An IVR dialog is started successfully, and then terminated by the AS. 4754 The dialogexit event is sent to the AS when the dialog exits. 4756 Application Server (AS) Media Server (MS) 4757 | | 4758 | (1) CONTROL: | 4759 | ----------------------------------------> | 4760 | | 4761 | (2) 202 | 4762 | <--------------------------------------- | 4763 | | 4764 | (3) REPORT: | 4765 | (terminate) | 4766 | <---------------------------------------- | 4767 | | 4768 | (4) 200 | 4769 | ----------------------------------------> | 4770 | | 4771 | (5) CONTROL: | 4772 | ----------------------------------------> | 4773 | | 4774 | (6) 200: | 4775 | <---------------------------------------- | 4776 | | 4777 | (7) CONTROL: | 4778 | <---------------------------------------- | 4779 | | 4780 | (8) 200 | 4781 | ----------------------------------------> | 4782 | | 4784 Note that in (6) the payload to the 4785 request is carried on a framework 200 response since it could 4786 complete the requested operation before the transaction timeout. 4788 6.2. IVR Dialog Examples 4790 The following examples show how is used with 4791 , and elements to play prompts, 4792 set runtime controls, collect DTMF input and record user input. 4794 The examples do not specify all messages between the AS and MS. 4796 6.2.1. Playing announcements 4798 This example prepares an announcement composed of two prompts where 4799 the dialog repeatCount set to 2. 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4812 If the dialog is prepared successfully, a is returned with 4813 status 200 and a dialog identifier assigned by the MS: 4815 4816 4817 4819 The prepared dialog is then started on a conference playing the 4820 prompts twice: 4822 4823 4824 4826 In the case of a successful dialog, the output is provided in 4827 ; for example 4829 4830 4831 4832 4833 4834 4835 4837 6.2.2. Prompt and collect 4839 In this example, a prompt is played and then the MS waits for 30s for 4840 a two digit sequence: 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4853 If no user input is collected within 30s, then following notification 4854 event would be returned: 4856 4857 4858 4859 4860 4861 4862 4863 4865 The collect operation can be specified without a prompt. Here the MS 4866 just waits for DTMF input from the user (the maxdigits attribute of 4867 defaults to 5): 4869 4870 4871 4872 4873 4874 4875 4877 If the dialog is successful, then dialogexit contains the 4878 dtmf collected in its result parameter: 4880 4881 4882 4883 4884 4885 4886 /mscivr> 4888 And finally in this example, one of the input parameters is invalid: 4890 4891 4892 4893 4894 4895 4896 4899 4900 4901 4903 The error is reported in the response: 4905 4906 4908 4910 6.2.3. Prompt and record 4912 In this example, the user is prompted, then their input is recorded 4913 for a maximum of 30 seconds. 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4926 If successful and the recording is terminated by DTMF, the following 4927 is returned in a dialogexit : 4929 4930 4931 4932 4933 4935 4936 4937 4938 4940 6.2.4. Runtime controls 4942 In this example, a prompt is played with collect and runtime controls 4943 are activated. 4945 4946 4947 4948 4949 4950 4951 4953 4954 4955 4956 4958 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 4959 execute runtime controls on the prompt queue. The keys do not cause 4960 bargein to occur. If the user presses any other key, then the prompt 4961 is interrupted and DTMF collect begins. Note that runtime controls 4962 are not active during the collect operation. 4964 When the dialog is completed successfully, then both control and 4965 collect information is reported. 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4981 6.2.5. Subscriptions and notifications 4983 In this example, a looped dialog is started with subscription for 4984 notifications each time the user input matches the collect grammar: 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4997 Each time the user input the DTMF matching the grammar, the following 4998 notification event would be sent: 5000 5001 5002 5004 5005 5007 If no user input was provided, or the input did not match the 5008 grammar, the dialog would continue to loop until terminated (or an 5009 error occurred). 5011 6.3. Other Dialog Languages 5013 The following example requests that a VoiceXML dialog is started: 5015 5016 5021 5022 nfs://nas01/media1.3gp 5023 nfs://nas01/media2.3gp 5024 5025 5026 5028 If the MS does not support this dialog language, then the response 5029 would have the status code 421 (Section 4.5). However, if it does 5030 support the VoiceXML dialog language, it would respond with a 200 5031 status, activate the VoiceXML dialog and make the available 5032 to the VoiceXML script as described in Section 12. 5034 When the VoiceXML dialog exits, exit namelist parameters are 5035 specified using in the dialogexit event: 5037 5038 5039 5040 5041 peter 5042 1234 5043 5044 5045 5046 5048 6.4. Foreign Namespace Attributes and Elements 5050 An MS can support attributes and elements from foreign namespaces 5051 within the element. For example, the MS could support a 5052 element (in a foreign namespace) for speech recognition by 5053 analogy to how support DTMF collection. 5055 In the following example, a prompt and collect request is extended 5056 with a element: 5058 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5073 In the root element, the xmlns:ex attribute declares that 5074 "ex" is associated with the foreign namespace URI 5075 "http://www.example.com/mediactrl/extensions/1". The , 5076 its attributes and child elements are associated with this namespace. 5077 This could be defined so that it activates an SRGS grammar 5078 and listens for user input matching the grammar in a similar manner 5079 to DTMF collection. 5081 If an MS receives this request but does not support the 5082 element, then it would send a 431 response: 5084 5085 5087 5089 If the MS does support this foreign element, it would send a 200 5090 response and start the dialog with speech recognition. When the 5091 dialog exits, it provides information about the execution 5092 within , again using elements in a foreign namespace such 5093 as below: 5095 5097 5098 5099 5100 5101 5102 5104 Note that in reply the AS sends a Control Framework 200 response even 5105 though the notification event contains an element in a foreign 5106 namespace which it might not understand. 5108 7. Security Considerations 5110 As this control package processes XML markup, implementations MUST 5111 address the security considerations of [RFC3023]. 5113 Implementations of this control package MUST address security, 5114 confidentiality and integrity of messages transported over the 5115 control channel as described in Section 11 of the Media Control 5116 channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), 5117 including Transport Level Protection, Control Channel Policy 5118 Management and Session Establishment. In addition, implementations 5119 MUST address security, confidentiality and integrity of User Agent 5120 sessions with the MS, both in terms of SIP signaling and associated 5121 RTP media flow; see [I-D.ietf-mediactrl-sip-control-framework] for 5122 further details on this topic. Finally, implementations MUST address 5123 security, confidentiality and integrity of sessions where, following 5124 a URI scheme, an MS uploads recordings or retrieves documents and 5125 resources (e.g. fetching a grammar document from a web server using 5126 HTTPS). 5128 Adequate transport protection and authentication are critical, 5129 especially when the implementation is deployed in open networks. If 5130 the implementation fails to correctly address these issues, it risks 5131 exposure to malicious attacks, including (but not limited to): 5133 Denial of Service: An attacker could insert a request message into 5134 the transport stream causing specific dialogs on the MS to be 5135 terminated immediately. For example, , where the value of "XXXX" could 5137 be guessed or discovered by auditing active dialogs on the MS 5138 using an request. Likewise, an attacker could impersonate 5139 the MS and insert error responses into the transport stream so 5140 denying the AS access to package capabilities. 5142 Resource Exhaustion: An attacker could insert into the control 5143 channel new request messages (or modify existing ones) with, for 5144 instance, elements with a very long fetchtimeout 5145 attribute and a bogus source URL. At some point this will exhaust 5146 the number of connections that the MS is able to make. 5148 Phishing: An attacker with access to the control channel could 5149 modify the "loc" attribute of the element in a dialog to 5150 point to some other audio file that had different information from 5151 the original. This modified file could include a different phone 5152 number for people to call if they want more information or need to 5153 provide additional information (such as governmental, corporate or 5154 financial information). 5156 Data Theft: An attacker could modify a element in the 5157 control channel so as to add a new recording location: 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5170 The recorded data would be uploaded to two locations indicated by 5171 the "{Good URI}" and the "{Attacker's URI}". This allows the 5172 attacker to steal the recorded audio (which could include 5173 sensitive or confidential information) without the originator of 5174 the request necessarily being aware of the theft. 5176 The Media Control Channel Framework permits additional security 5177 policy management, including resource access and control channel 5178 usage, to be specified at the control package level beyond that 5179 specified for the Media Control Channel Framework (see Section 11.3 5180 of [I-D.ietf-mediactrl-sip-control-framework]). 5182 Since creation of IVR dialogs is associated with media processing 5183 resources (e.g. DTMF detectors, media playback and recording, etc) 5184 on the MS, the security policy for this control package needs to 5185 address how such dialogs are securely managed across more than one 5186 control channels. Such a security policy is only useful for secure, 5187 confidential and integrity protected channels. The identity of 5188 control channels is determined by the channel identifier: i.e. the 5189 value of the cfw-id attribute in the SDP and Dialog-ID header in the 5190 channel protocol (see [I-D.ietf-mediactrl-sip-control-framework]). 5191 Channels are the same if they have the same identifier; otherwise, 5192 they are different. This control package imposes the following 5193 additional security policies: 5195 Responses: The MS MUST only send a response to a dialog management 5196 or audit request using the same control channel as the one used to 5197 send the request. 5199 Notifications: The MS MUST only send notification events for a 5200 dialog using the same control channel as it received the request 5201 creating the dialog. 5203 Auditing: The MS MUST only provide audit information about dialogs 5204 which have been created on the same control channel as the one 5205 upon the request is sent. 5207 Rejection: The MS SHOULD reject requests to audit or manipulate an 5208 existing dialog on the MS if the channel is not the same as the 5209 one used when the dialog was created. The MS rejects a request by 5210 sending a Control Framework 403 response (see Section 7.4 and 5211 Section 11.3 of [I-D.ietf-mediactrl-sip-control-framework]). For 5212 example, if a channel with identifier 'cfw1234' has been used to 5213 send a request to create a particular dialog and the MS receives 5214 on channel 'cfw98969' a request to audit or terminate the dialog, 5215 then the MS sends a 403 framework response. 5217 There can be valid reasons why an implementation does not reject an 5218 audit or dialog manipulation request on a different channel from the 5219 one which created the dialog. For example, a system administrator 5220 might require a separate channel to audit dialog resources created by 5221 system users and to terminate dialogs consuming excessive system 5222 resources. Alternatively, a system monitor or resource broker might 5223 require a separate channel to audit dialogs managed by this package 5224 on a MS. However, the full implications need to be understood by the 5225 implementation and carefully weighted before accepting these reasons 5226 as valid. If the reasons are not valid in their particular 5227 circumstances, the MS rejects such requests. 5229 There can also be valid reasons for 'channel handover' including high 5230 availability support or where one AS needs to take over management of 5231 dialogs after the AS which created them has failed. This could be 5232 achieved by the control channels using the same channel identifier, 5233 one after another. For example, assume a channel is created with the 5234 identifier 'cfw1234' and the channel is used to create dialogs on the 5235 MS. This channel (and associated SIP dialog) then terminates due to 5236 a failure on the AS. As permitted by the Control Framework, the 5237 channel identifier 'cfw1234' could then be reused so that another 5238 channel is created with the same identifier 'cfw1234', allowing it to 5239 'take over' management of the dialogs on the MS. Again, the 5240 implementation needs to understand the full implications and 5241 carefully weight them before accepting these reasons as valid. If 5242 the reasons are not valid for their particular circumstances, the MS 5243 uses the appropriate SIP mechanisms to prevent session establishment 5244 when the same channel identifier is used in setting up another 5245 control channel (see Section 4 of 5246 [I-D.ietf-mediactrl-sip-control-framework]). 5248 8. IANA Considerations 5250 This specification instructs IANA to register a new Media Control 5251 Channel Framework Package, a new XML namespace, a new XML schema and 5252 a new MIME type. 5254 8.1. Control Package Registration 5256 This section registers a new Media Control Channel Framework package, 5257 per the instructions in Section 12.1 of 5258 [I-D.ietf-mediactrl-sip-control-framework]. 5260 Package Name: msc-ivr/1.0 5261 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 5262 with the RFC number for this specification.] 5263 Published Specification(s): RFCXXXX 5264 Person & email address to contact for further information: 5265 IETF, MEDIACTRL working group, (mediactrl@ietf.org), 5266 Scott McGlashan (smcg.stds01@mcglashan.org). 5268 8.2. URN Sub-Namespace Registration 5270 This section registers a new XML namespace, 5271 "urn:ietf:params:xml:ns:msc-ivr", per the guidelines in RFC 3688 5272 [RFC3688]. 5274 URI: urn:ietf:params:xml:ns:msc-ivr 5275 Registrant Contact: IETF, MEDIACTRL working group, 5276 (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). 5277 XML: 5278 BEGIN 5279 5280 5282 5283 5284 Media Control Channel Framework IVR 5285 Package attributes 5286 5287 5288

Namespace for Media Control Channel 5289 Framework IVR Package attributes

5290

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

5291 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 5292 with the RFC number for this specification.] 5293

See RFCXXXX

5294 5295 5296 END 5298 8.3. XML Schema Registration 5300 This section registers an XML schema as per the guidelines in RFC 5301 3688 [RFC3688]. 5303 URI: urn:ietf:params:xml:ns:msc-ivr 5304 Registrant Contact: IETF, MEDIACTRL working group, 5305 (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). 5306 Schema: The XML for this schema can be found in 5307 Section 5 of this document. 5309 8.4. MIME Media Type Registration for 'application/msc-ivr+xml' 5311 This section registers the "application/msc-ivr+xml" MIME type. 5313 To: ietf-types@iana.org 5314 Subject: Registration of MIME media type 5315 application/msc-ivr+xml 5316 MIME media type name: application 5317 MIME subtype name: msc-ivr+xml 5318 Required parameters: (none) 5319 Optional parameters: charset 5320 Indicates the character encoding of enclosed XML. Default is 5321 UTF-8. 5322 Encoding considerations: Uses XML, which can employ 8-bit 5323 characters, depending on the character encoding used. See RFC 5324 3023 [RFC3023], section 3.2. 5325 Security considerations: No known security considerations outside 5326 of those provided by the Media Control Channel Framework IVR 5327 Package. 5328 Interoperability considerations: This content type provides 5329 constructs for the Media Control Channel Framework IVR package. 5330 Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please 5331 replace XXXX with the RFC number for this specification.] 5332 Applications which use this media type: Implementations of 5333 the Media Control Channel Framework IVR package. 5334 Additional Information: Magic Number(s): (none) 5335 File extension(s): (none) 5336 Macintosh File Type Code(s): (none) 5337 Person & email address to contact for further information: Scott 5338 McGlashan 5339 Intended usage: LIMITED USE 5340 Author/Change controller: The IETF 5341 Other information: None. 5343 9. Change Summary 5345 Note to RFC Editor: Please remove this whole section. 5347 The following are the changes between the -07 and -06 versions 5348 (primarily addressing AD Review comments): 5350 o Generally corrected references from Section 17.1 to Section 16.1 5351 of Control Channel Framework. 5353 o 4.2.2.1.1: corrected syntax error in example 5355 o 4.2.3.1: corrected example by adding conferenceid attribute. 5357 o 12.1: corrected error code from 407 to 409 in example when vxml 5358 document cannot be retrieved. 5360 o 6.2.2: corrected example by removing bargein="true"; clarified 5361 that maxdigits defaults to 5. 5363 o 4.5: Changed the recovery action for a 405 ('dialogid already 5364 exists') error response. The AS can always recover by not 5365 specifying the id in the creation command and let the MS generate 5366 a unique id in the response. 5368 o 8.1: Removed the To: and Subject: header fields 5370 o Corrected miscellanous typos. 5372 o 4.2.1, 4.2.2 and 4.3.1.3.1: Added authentication information to 5373 the definition of src attribute in , 5374 and . 5376 o 7: Added Security Consideration that uploading/retrieving 5377 documents and resources should be secured. 5379 o 8.4: Changed file extension from '.xml' to (none) 5381 o Changed "~" to a ":" for connectionid 5383 o 4.2.6.1: Clarified that can contain an XML value. 5385 o 4.2.1, 4.2.2, 12.1,12.2, schema: added maxage and maxstale 5386 attributes (optional) to , for HTTP 5387 VoiceXML use case. 5389 o 4.2.2.1: Clarified that a request containing with no 5390 child elements is equivalent to a request without a 5391 element. 5393 o 4.2.5.1: Changed status codes so that only 0-4 5394 defined and all others are reserved for future use requiring a 5395 standard-track RFC. 5397 o 4.5: Changed status code for and so 5398 that certain codes are defined and all others are reserved for 5399 future use requiring a standard-track RFC. 5401 o 4.2.2.2, 12.2.2, various examples: Changed the media 5402 direction so that it is relative to the endpoint, not the dialog. 5403 Now aligned with VoiceXML mapping in RFC 5552. 5405 The following are the changes between the -06 and -05 versions. 5407 o Corrected typo in introduction 5409 o 4.2.1: Added to . Updated VoiceXML 5410 appendix to describe how these parameters are mapped to the 5411 session object. 5413 o 4.3.1.3: : clarified definitions of interdigittimeout and 5414 termtimeout attributes and tightened up the collect execution 5415 model. 5417 o 8: IANA Considerations: Updated IANA registration information and 5418 added registration for the XML Schema 5420 The following are the changes between the -05 and -04 versions. 5422 o Corrected syntax errors in examples: 4.1, 6.2.2, 6.2.5, 6.3 5424 o 6.3: Corrected error status code for unsupported dialog 5426 o 4.4.2.2.2: : corrected text to reflect that no 5427 additional grammar types need be specified. 5429 o Schema: corrected schema to allow with no children, 5430 and renamed to to align with text. 5431 Fixed problem with non-deterministic content models. 5433 o 7. Security Considerations: Added requirement that 5434 implementations need to secure SIP and RTP sessions with User 5435 Agents. 5437 The following are the changes between the -04 and -03 versions. 5439 o 4.2.2.2: Clarified that media stream direction is relative to the 5440 dialog (the examples showed this but not the definition). 5442 o 4.3.1.2: Clarified that speed. volume and seek 5443 operations beyond the platform's capability are automatically 5444 limited to the platform's minimum/maximum. Also clarified that 5445 when the output is paused, then the MS resumes output 5446 automatically on speed, volume and seek control operations. 5448 o 6.2.5: Corrected syntax error in example 5450 o 7 Security: Added a denial of service example where the attacker 5451 impersonates the MS. 5453 o 7 Security: Clarified that the package security policy for 5454 multiple channels is only useful if the channels themselves are 5455 secured. 5457 o Added reference for VoiceXML 3.0 5459 o Updated acknowledgements. 5461 o Appendix A: 12.2: Corrected syntax error in example 5463 o Appendix A: 12.2.1: Changed behavior for how VoiceXML session 5464 information is populated for a conference; session.conference.name 5465 is specified. Added session.connection.originator variable for a 5466 connection (MS receives inbound connections but does not create 5467 outbound connections). 5469 o Appendix A: 12.2.2: Added session.conference.media for conference 5470 media information. Clarified that direction is relative to the 5471 dialog. 5473 o Appendix A: 12.2.2: Corrected syntax error in example 5475 o Appendix A: 12.2.3: Changed session parameter mapping to 5476 session.values using an associative array. 5478 o Appendix A: 12.5: Changed behavior for handling VoiceXML Call 5479 Transfer requests to raising an error.unsupported.transfer event. 5481 The following are the major changes between the -03 and -02 versions. 5483 o Conformance language: Removed unnecessary MUSTs, especially for 5484 error codes. Removed lowercase 'should', 'must' and 'may'. 5486 o Introduction: Clarified which MediaCtrl IVR Requirements are 5487 satisfied by this package. Added link to Security Considerations 5488 Section (also in Section 4.0 and 4.4). 5490 o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS 5491 support of communication protocols in URIs. 5493 o 4.2.2:: Changed RECOMMENDED to MAY for MS support of 5494 multiple dialogs on same connection or conference. Changed 5495 RECOMMENDED to MUST for using in cases where connection 5496 has multiple streams of the same type. 5498 o 4.2.2.2:: Changed RECOMMENDED to MUST for use of common 5499 media attribute values. 5501 o 4.2.2.1: : Clarified that if the MS does not support a 5502 subscription specified in a foreign namespace, then the MS 5503 generates a 431 error response. 5505 o 4.2.4: : Clarified that a dialogid with an empty string 5506 value is used when the request is syntactically invalid. 5508 o 4.2.5.1: : Added reserved range of status codes, and 5509 tightened up the wording. 5511 o 4.3.1.3:: Clarified that termtimeout attribute default of 5512 0s meaning no delay. 5514 o 4.3.1.1.1: : Changed RECOMMENDED to MAY for MS support 5515 of date, time and digits s. Clarified value attribute 5516 format for date, time and digits. 5518 o 4.3.1.1.3: : Removed RECOMMENDED for MS support of parallel 5519 playback of different media. Added error response code (435) if 5520 MS does not support parallel playback configuraton. 5522 o 4.3.1.1.3.1: : Removed RECOMMENDED for MS support of 5523 sequential playback of same media within a (error case 5524 already covered by configuration not supported response 5525 code). 5527 o 4.3.1.4:: Removed RECOMMENDED for MS support of parallel 5528 recording of different media. Clarified wording around uploading 5529 recording data to a media resource location. 5531 o 4.3.1.4: : Clarified the definition of vadinitial and 5532 vadfinal. Changed the default values to false. Added a response 5533 error (434) for when the MS does not support VAD. 5535 o 4.3.1.5: . Removed unnecesaary SHOULD for MS ignoring 5536 fetchtimeout, soundLevel, clipBegin and clipEnd when used 5537 for recording. Clarified definition of loc and type attributes 5538 with stronger conformance language. Similar clarifications of 5539 type attributes in , and . 5541 o 4.3.2.4.1: : Clarified usage and strengthen conformance 5542 language. 5544 o 4.4.2.22: : Changed MUST to MUST NOT for inclusion 5545 of mandatory SRGS grammar format. Updated examples. 5547 o Updated schema. 5549 o Security Considerations: Major update. Added examples showing 5550 malicious attacks when channel security is not correctly 5551 addressed. Added more details on multiple channel cases including 5552 administrator and monitor channels as well as channel handover. 5554 o Removed affliations in Contributors and Acknowledgements sections. 5556 o Added Appendix A describing how to use VoiceXML with this package 5557 if it is supported by the MS. 5559 o Corrected typos and nits. 5561 The following are the major changes between the -02 and -01 versions. 5563 o corrected typos. 5565 o Section 3: Aligned Control Package definitions with requirements 5566 in Section 8 of the Control Framework. 5568 o Section 4.2.2.2: Added child element to 5569 element (alignment with mixer package). 5571 o Following October Interim meeting discussion on response codes, 5572 generally clarified usage of error status codes, modified some 5573 codes and re-organized the response codes section (Section 4.5) 5574 with more guidance and details. 5576 o Section 4.3.1.5: Following October Interim meeting request for 5577 parallel playback and record, created a generalized version of 5578 used for both playback and record. The 'src' attribute is 5579 renamed to 'loc'. Updated and definitions as 5580 described below. 5582 o Sections 4.3.1.1/4.3.1.1.4: : Added child element to 5583 allow parallel playback of separate media resources. The 5584 element has a child element to allow a sequence of media 5585 resources to be played at the same time as other resources are 5586 played in parallel. 5588 o Sections 4.3.1.4/4.3.1.4.1: : Removed 'dest' and 'type' 5589 attributes. Added child elements to support parallel 5590 recording to separate media resource locations. 5592 o Sections 4.3.2.4/4.3.2.4.1: : Removed 'dest', 'type' 5593 and 'size' attribute. Added child elements with 5594 'loc', 'type' and 'size' attributes. 5596 o Section 4.4.2.2.4: Renamed to to 5597 clarify distinction with . 5599 o Sections 4.3.1.4: : Clarified RFC2119 language around 5600 vadinitial and vadfinal behavior. 5602 o Updated schema. Removed some element-specific syntactic 5603 constraint statements which are already covered in the schema. 5605 o 4.3.1: occurrence of without a no longer 5606 treated as a syntax error - instead runtime controls are simply 5607 ignored. 5609 o 5611 The following are the major changes between the -01 and -00 versions. 5613 o 7: Updated security section referencing control framework security 5614 and adding policy requirement to address dialog resource 5615 management over multiple channels. 5617 o corrected typos and example errors 5619 o 4.2: [IVR-200] Added state machine for dialog lifecycle. 5621 o 4.2: clarified dialog identifier assignment and use, including MS 5622 assignment of dialogid in and . 5624 o 4.2/4.2.3: clarified behavior when dialog is not 5625 in a STARTED state. 5627 o 1/4.2: Clarified concept of dialog language and replaced 5628 references to 'dialog types' with dialog languages. Replaced 5629 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that 5630 IVR is inline and other supported dialog languages are 5631 specified by reference. Removed default type values for 5632 and . 5634 o 4.4.2.2.1: clarified that the inline dialog language () 5635 must not be listed as an additional supported dialog language. 5637 o 4.2.2.2: [IVR-201] Added element to so that 5638 dialog video output can be directed to a specific region a 5639 conference video layout. 5641 o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format 5642 for digits. 5644 o 4.4.2.1.1:[IVR-203]: added to to allow additional 5645 codec information to be specified. 5647 o 4.5: added error status code for unsupported URI (415), invalid 5648 region identifier (416), fetchtimeout exceeded (417), syntactic 5649 constraint violation (418), unsupported media format (419), 5650 unsupported grammar format (420), unsupported variable 5651 announcement (421), unsupported DTMF tone generation (422), 5652 conflict with control key values (423), unsupported recording 5653 format (424). 5655 o Generally, replaced 'it is an error ...' language with RFC2119 5656 language, making error codes more explicit. 5658 o 4.3.1: Clarified that an MS MAY support and 5659 elements co-occurring in a element, but the MS MUST send 5660 an error response if they are not supported. Clarified that MS 5661 MUST send an error response if is specified without a 5662 element. 5664 o 4.2.5.2: clarified that the timestamp in is that of 5665 the last DTMF in a matching input sequence. 5667 o References: more references now normative. 5669 o 4.3: Replaced passive voice language with active voice language in 5670 the description of execution models. 5672 o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is 5673 completely unrelated to the term 'SIP dialog'. 5675 o 4: Added clarification that elements with URI attributes are 5676 recommended to support one or more communication protocols 5677 suitable for fetching resources. 5679 o 4.3.1.4: clarified MS MAY support upload of recording 5680 data during recording, and that upload errors (e.g. authentication 5681 failures, communication errors, etc) are execution errors. Added 5682 'append' attribute to control behavior when a recorded resource 5683 already exists at the recording location. 5685 o 4.2.2: Clarified that an error is reported if with 5686 contains parameters which the MS cannot process for the 5687 given dialog language. 5689 o 4.2.6.1: removed 'valuetype' attribute and clarified that 5690 the type attribute indicates the MIME media type associated with 5691 the inline value. 5693 o 4.3.1.4: Added append attribute to to control whether 5694 recordings are appended or not to the recording location resource. 5696 o 4.3.1.1.1: Added clipEnd attribute to to control when 5697 playback of the media ends. 5699 o 4.3.1: Clarified that when there are multiple iterations of a 5700 dialog (using repeatCount attribute) only the results of the last 5701 dialog iteration are reported. 5703 o 4.4.2.2: Added ability to audit capability, as well as 5704 maximum duration of prepared dialogs and of recordings. 5706 o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in 5707 and how reports its status. 5709 o 4: Changed handling of unsupported foreign namespace elements and 5710 attributes. The MS send a 426 error response if it encounters 5711 foreign elements and attributes it does not support. 5713 The following are the major changes between the -00 of this work 5714 group item draft and the individual submission -05 version. 5716 o [IVR01] When the MS sends a notification event in a CONTROL, the 5717 AS sends mandatory 200 response (no extended transaction). 5719 o [IVR23] Added a top-level container element, , with 5720 version attribute. 5722 o Removed term 'basic' in title, description, elements and IANA 5723 registration. Control package name is now 'msc-ivr/1.0'. 5724 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 5725 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 5726 'dialog' and moved version attribute to mscivr element. 5728 o [IVR15] Updated and simplified XML schema. Ordering of child 5729 elements is significant. 5731 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 5732 'soundLevel' and 'clipBegin' to media element. 5734 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 5735 Added 'repeatCount' and 'repeatDur' to dialog element. 5737 o Moved VCR commands from into separate element. 5738 Defined controlinfo element to report runtime control match 5739 information. 5741 o [IVR05] Added to where AS can subscribe 5742 to DTMF key presses (all, control match only, collect match only). 5743 Extended to support associated notification. 5745 o Moved definition of into a separate section. 5747 o [IVR21] Added audit capability: auditing of package capabilities 5748 and managed dialogs 5750 o [IVR21] Explicitly stated that an error must be reported if the 5751 connection or conference referenced in a is not 5752 available at the time the request is processed on the MS. 5754 o Clarified that the rendering mechanism is MS 5755 implementation specific. 5757 o [IVR09]/[IVR10] Clarified attribute definitions and 5758 added 'gender' attribute. 5760 o [IVR16] Clarified that info must be reported in dialogexit, if the 5761 corresponding element is specified in a . For example, if 5762 is specified, then must be specified if the 5763 dialog terminates normally. 5765 o [IVR18] Added 'inactive' value for direction attribute of 5766 . 5768 o [IVR19] Clarified case of on connection/conference 5769 with multiple streams of the same type: recommended to be set 5770 explicitly with s. 5772 o [IVR02] Clarified that multiple dialogs may started simultaneously 5773 on the same connection or conference. 5775 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 5776 in the PREPARED state. 5778 o Added in and for input/output 5779 in other dialog types 5781 o [IVR22] Added fetchtimeout parameter to dialogprepare, 5782 dialogstart, media and grammar elements. 5784 o [IVR04] Added dialogexit status to indicate the connection or 5785 conference has been terminated. Added others status errors. 5787 o [IVR08] Clarified that the operation does not interrupt 5788 playing prompts and that matched DTMF is not available to 5789 or operations during prompt playback. 5791 o [IVR11] Added runtime controls for speed, goto start/end and 5792 external controls. 5794 o Clarified that recordings can be uploaded to dest during or after 5795 the recording operation. 5797 o /: clarified timer handling - timeout refers to 5798 waiting time for collect/record to begin. 5800 o Clarified behavior of immediate attribute on . 5802 o clarified dialogid lifecycle: dialogids can be re-cycled. 5804 o Clarified error handling. 5806 o Editorial tidy up of sections. 5808 o dialogid attribute on is now mandatory. 5810 o Clarified that the duration specified in finalsilence attribute of 5811 is not part of the final recording. 5813 o Clarified that the SRGS XML grammar format is mandatory 5815 The following are the major changes between the -06 of the draft and 5816 the -05 version. 5818 o Event notifications are sent in CONTROL messages with the MS 5819 acting as Control Framework Client. Compared with the previous 5820 approach, this means that a transaction is now 5821 complete when the MS sends a . A new transaction is 5822 initiated by the MS each time the MS sends a notification 5823 to the AS. 5825 o Changed conf-id to conferenceid and connection-id to connectionid. 5827 o Clarification of the state model for dialogs 5829 o : modified definition of src attribute to allow 5830 reference to external dialog documents; added (MIME) type 5831 attribute; removed child element. 5833 o : modified definition of src attribute to allow 5834 reference to external dialog documents; added (MIME) type 5835 attribute; removed child element; 5837 o : modified so that a dialogexit event is always 5838 sent for active dialogs (i.e. the dialogexit event is a 5839 terminating notification) 5841 o notification simplified and make more extensible. Manual 5842 notifications (via element) are removed from the basic 5843 package. A event is defined as child and it 5844 can be extended with additional child elements 5846 o element is removed. 5848 o element removed. 5850 o Replaced dialog templates with a general element. It has 5851 child elements for playing media resource (), collecting 5852 DTMF () and recording (). The functionality is 5853 largely unchanged. 5855 o and are extended with child 5856 element. 5858 o is extended with a element which contains 5859 status and reported information (replacement for output parameters 5860 in template dialogs) 5862 o Prompts: now structured as a element with , 5863 and children. The element has xml:base 5864 attribute, bargein, iterations, duration, volume and offset 5865 attributes. The speed attribute is removed. A element 5866 has src and type attributes. The maxage and maxstale attributes 5867 are removed. 5869 o DTMF input: parameters now specified as attributes of a 5870 element. Custom grammar specified with a element as 5871 child of element. Added 'escapekey' to allow the dialog 5872 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 5873 to allow the prompts to paused/resumed. Added 'volumeinterval', 5874 'volupkey' and voldnkey' to add prompt volume to be increased/ 5875 decreased. Moved 'bargein' attribute to prompt. 5877 o Recording: parameters now specified as attributes of 5878 element. Added 'dest' and 'beep' attributes. 5880 The following are the major changes between the -05 of the draft and 5881 the -04 version. 5883 o Mainly an alignment/evaluation exercise with requirements produced 5884 by MEDIACTRL IVR design team. 5886 o playannouncement parameters from Table 7 of '04' version are now 5887 reflected in text - schema to be updated. 5889 o Added VCR commands based on MSCML. 5891 The following are the major changes between the -04 of the draft and 5892 the -03 version. 5894 o None. 5896 The following are the major changes between the -03 of the draft and 5897 the -02 version. 5899 o added "basicivr:" protocol to template dialog types which must be 5900 supported as values of the "src" attribute in and 5901 . Note alternative: "/basicivr/playannouncement" 5902 offered in [RFC4240]. 5904 o added "basicivr:" URI schema to IANA considerations 5906 o Added mimetype, vadinitial and vadfinal parameters to 5907 'promptandrecord' dialog type 5909 o updated references 5911 The following are the major changes between the -02 of the draft and 5912 the -01 version. 5914 o added version 1.0 to package name 5916 o separate section for element definitions 5917 o dialogterminate treated as request rather than notification 5919 o simplified responses: single element 5921 o removed response elements: , , 5922 , 5924 o simplified event notifications to single element carried 5925 in a REPORT 5927 o element replaced with 5929 o removed element 5931 o added element as child of 5933 o removed 'type' attribute from and 5935 o added dialogid attribute to and 5937 o removed template "Sample Implementation" section 5939 o renamed to 5941 o re-organized so that template details after general package 5942 framework and element description. 5944 The following are the primary changes between the -01 of the draft 5945 and the -00 version. 5947 o Removed requirement for VoiceXML dialog support 5949 o Added requirement for template dialog support 5951 10. Contributors 5953 Asher Shiratzky provided valuable support and contributions to the 5954 early versions of this document. 5956 The authors would like to thank the IVR design team consisting of 5957 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary 5958 Barnes and Steve Buko who provided valuable feedback, input and text 5959 to this document. 5961 11. Acknowledgments 5963 The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave 5964 Burke, Dan York, Steve Buko and Jean-Francois Bertrand for expert 5965 reviews of this work. 5967 Ben Campbell carried out the RAI expert review on this specification 5968 and provided a great deal of invaluable input. Donald Eastlake 5969 carried out a thorough security review. 5971 12. Appendix A: Using VoiceXML as a dialog language 5973 The IVR control package allows, but does not require, the MS to 5974 support other dialog languages by referencing an external dialog 5975 document. This appendix provides MS implementations which support 5976 the VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with 5977 additional details about using these dialogs in this package. 5979 This appendix covers preparing (Section 12.1), starting 5980 (Section 12.2), terminating (Section 12.3) and exiting (Section 12.4) 5981 VoiceXML dialogs as well as handling VoiceXML call transfer 5982 (Section 12.5). 5984 12.1. Preparing a VoiceXML dialog 5986 A VoiceXML dialog is prepared by sending the MS a request containing 5987 a element (Section 4.2.1). The type attribute is set 5988 to "application/voicexml+xml" and the src attribute to the URI of the 5989 VoiceXML document which is to be prepared by the MS. For example: 5991 5992 5995 5997 The VoiceXML dialog environment uses the request as 5998 an opportunity to fetch and validate the initial document indicated 5999 by the src attribute along with any resources referenced in the 6000 VoiceXML document marked as prefetchable. The maxage and maxstale 6001 attributes, if specified, control how the initial VoiceXML document 6002 is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout 6003 attribute is not defined in VoiceXML for an initial document but the 6004 MS MUST support this attribute in its VoiceXML environment. 6006 If a child element of is specified, then the 6007 MS MUST map the parameter information into a VoiceXML session 6008 variable object as described in Section 12.2.3. 6010 The success or failure of the VoiceXML document preparation is 6011 reported in the MS response. For example, if the VoiceXML document 6012 cannot be retrieved, then a 409 error response is returned. If the 6013 document is syntactically invalid according to VoiceXML, then a 400 6014 response is returned. If successful, the response includes a 6015 dialogid attribute whose value the AS can use in 6016 element to start the prepared dialog. 6018 12.2. Starting a VoiceXML dialog 6020 A VoiceXML dialog is started by sending the MS a request containing a 6021 element (Section 4.2.2). If a VoiceXML dialog has 6022 already been prepared using , then the MS starts the 6023 dialog indicated by the prepareddialogid attribute. Otherwise, a new 6024 VoiceXML dialog can be started by setting the type attribute to 6025 "application/voicexml+xml" and the src attribute to the URI of the 6026 VoiceXML document. For example: 6028 6029 6033 6035 The maxage and maxstale attributes, if specified, control how the 6036 initial VoiceXML document is fetched using HTTP (see [RFC2616]). 6037 Note that the fetchtimeout attribute is not defined in VoiceXML for 6038 an initial document but the MS MUST support this attribute in its 6039 VoiceXML environment. Note also that support for 6040 subscriptions (Section 4.2.2.1.1) and their associated dialog 6041 notification events is not defined in VoiceXML. If such a 6042 subscription is specified in a request, then the MS 6043 sends a 439 error response (see Section 4.5). 6045 The success or failure of starting a VoiceXML dialog is reported in 6046 the MS response as described in Section 4.2.2. 6048 When the MS starts a VoiceXML dialog, the MS MUST map session 6049 information into a VoiceXML session variable object. There are 3 6050 types of session information: protocol information (Section 12.2.1), 6051 media stream information (Section 12.2.2) and parameter information 6052 (Section 12.2.3). 6054 12.2.1. Session protocol information 6056 If the connectionid attribute is specified, the MS assigns protocol 6057 information from the SIP dialog associated with the connection to the 6058 following session variables in VoiceXML: 6060 session.connection.local.uri Evaluates to the SIP URI specified in 6061 the To: header of the initial INVITE 6063 session.connection.remote.uri Evaluates to the SIP URI specified in 6064 the From: header of the initial INVITE 6066 session.connection.originator Evaluates to the value of 6067 session.connection.remote (MS receives inbound connections but 6068 does not create outbound connections) 6070 session.connection.protocol.name Evaluates to "sip". Note that this 6071 is intended to reflect the use of SIP in general, and does not 6072 distinguish between whether the connection accesses the MS via SIP 6073 or SIPS procedures. 6075 session.connection.protocol.version Evaluates to "2.0". 6077 session.connection.redirect This array is populated by information 6078 contained in the History-Info ([RFC4244]) header in the initial 6079 INVITE or is otherwise undefined. Each entry (hi-entry) in the 6080 History-Info header is mapped, in reverse order, into an element 6081 of the session.connection.redirect array. Properties of each 6082 element of the array are determined as follows: 6084 uri Set to the hi-targeted-to-uri value of the History-Info entry 6086 pi Set to 'true' if hi-targeted-to-uri contains a 6087 'Privacy=history' parameter, or if the INVITE Privacy header 6088 includes 'history'; 'false' otherwise 6090 si Set to the value of the 'si' parameter if it exists, undefined 6091 otherwise 6093 reason Set verbatim to the value of the 'Reason' parameter of hi- 6094 targeted-to-uri 6096 session.connection.aai Evaluates to the value of a SIP header with 6097 the name "aai" if present; otherwise undefined. 6099 session.connection.protocol.sip.requesturi This is an associative 6100 array where the array keys and values are formed from the URI 6101 parameters on the SIP Request-URI of the initial INVITE. The 6102 array key is the URI parameter name. The corresponding array 6103 value is obtained by evaluating the URI parameter value as a 6104 string. In addition, the array's toString() function returns the 6105 full SIP Request-URI. 6107 session.connection.protocol.sip.headers This is an associative array 6108 where each key in the array is the non-compact name of a SIP 6109 header in the initial INVITE converted to lower-case (note the 6110 case conversion does not apply to the header value). If multiple 6111 header fields of the same field name are present, the values are 6112 combined into a single comma-separated value. Implementations 6113 MUST at a minimum include the Call-ID header and MAY include other 6114 headers. For example, 6115 session.connection.protocol.sip.headers["call-id"] evaluates to 6116 the Call-ID of the SIP dialog. 6118 If a conferenceid attribute is specified, then the MS populates the 6119 following session variables in VoiceXML: 6121 session.conference.name Evaluates to the value of the conferenceid 6122 attribute 6124 12.2.2. Session media stream information 6126 The media streams of the connection or conference to use for the 6127 dialog are described in Section 4.2.2, including use of 6128 elements (Section 4.2.2.2) if specified. The MS maps media stream 6129 information into the VoiceXML session variable 6130 session.connection.protocol.sip.media for a connection, and 6131 session.conference.media for a conference. In both variables, the 6132 value of the variable is an array where each array element is an 6133 object with the following properties: 6135 type This required property indicates the type of the media 6136 associated with the stream (see Section 4.2.2.2 type 6137 attribute definition) 6139 direction This required property indicates the directionality of the 6140 media relative to the endpoint of the dialog (see Section 4.2.2.2 6141 direction attribute definition). 6143 format This property is optional. If defined, the value of the 6144 property is an array. Each array element is an object which 6145 specifies information about one format of the media stream. The 6146 object contains at least one property called name whose value is 6147 the subtype of the media format ([RFC4855]). Other properties may 6148 be defined with string values; these correspond to required and, 6149 if defined, optional parameters of the format. 6151 As a consequence of this definition, when a connectionid is specified 6152 there is an array entry in session.connection.protocol.sip.media for 6153 each media stream used by the VoiceXML dialog. For an example, 6154 consider a connection with bi-directional G.711 mu-law audio sampled 6155 at 8kHz where the dialog is started with 6156 6157 6161 6162 6163 6165 In this case, session.connection.protocol.sip.media[0].type evaluates 6166 to "audio", session.connection.protocol.sip.media[0].direction to 6167 "recvonly" (i.e. the endpoint only receives media from the dialog - 6168 the endpoint does not send media to the dialog), and 6169 session.connection.protocol.sip.media[0].format[0].name evaluates to 6170 "audio/PCMU" and 6171 session.connection.protocol.sip.media[0].format[0].rate evaluates to 6172 "8000". 6174 Note that the session variable is updated if the connection or 6175 conference media session characteristics for the VoiceXML dialog 6176 change (e.g. due to a SIP re-INVITE). 6178 12.2.3. Session parameter information 6180 Parameter information is specified in the child element of 6181 and elements, where each parameter is 6182 specified using a element. The MS maps parameter information 6183 into VoiceXML session variables as follows: 6185 session.values This is an associative array mapped to the 6186 element. It is undefined if no element is specified. If 6187 a element is specified in both and 6188 elements for the same dialog, then the array is 6189 first initialized with the specified in the 6190 element and then updated with the 6191 specified in the element; in cases of conflict, the 6192 parameter value take priority. Array keys and 6193 values are formed from children of the element. 6194 Each array key is the value of the name attribute of a 6195 element. If the same name is used in more than one 6196 element, then the array key is associated with the last in 6197 document order. The corresponding value for each key is an object 6198 with two required properties: a "type" property evaluating to the 6199 value of the type attribute; and a "content" property evaluating 6200 to the content of the . In addition, this object's 6201 toString() function returns the value of the "content" property as 6202 a string. 6204 For example, a VoiceXML dialog started with one parameter: 6206 6207 6211 6212 playannouncement 6213 6214 6215 6217 In this case, session.values would be defined with one item in the 6218 array where session.values['mode'].type evaluates to "text/plain" 6219 (the default value), session.values['mode'].content evaluates to 6220 "playannouncement" and session.values['mode'].toString() also 6221 evaluates to "playannouncement". 6223 The MS sends an error response (see Section 4.2.2) if a is 6224 not supported by the MS (e.g. the parameter type is not supported). 6226 12.3. Terminating a VoiceXML dialog 6228 When the MS receives a request with a element 6229 (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event 6230 into the specified VoiceXML dialog. Note that if the immediate 6231 attribute has the value true, then the MS MUST NOT return 6232 information when the VoiceXML dialog exits (even if the VoiceXML 6233 dialog provides such information) - see Section 12.4. 6235 If the connection or conference associated with the VoiceXML dialog 6236 terminates, then the MS throws a 'connection.disconnect.hangup' event 6237 into the specified VoiceXML dialog. 6239 12.4. Exiting a VoiceXML dialog 6241 The MS sends a notification event (Section 4.2.5.1) when 6242 the VoiceXML dialog is complete, has been terminated or because it 6243 exits due to an error. The status attribute specifies 6244 the status of the VoiceXML dialog when it exits and its 6245 child element specifies information, if any, returned from the 6246 VoiceXML dialog. 6248 A VoiceXML dialog exits when it processes a element, a 6249 element or an implicit exit according to the VoiceXML FIA. If 6250 the VoiceXML dialog executes a and then subsequently 6251 executes an with namelist information, the namelist 6252 information from the element is discarded. 6254 The MS reports namelist variables in the element of the 6255 . Each reports on a namelist variable. The MS 6256 set the name attribute to the name of the VoiceXML variable. 6257 The MS sets the type attribute according to the type of the 6258 VoiceXML variable. The MS sets the type to 'text/plain' when 6259 the VoiceXML variable is a simple ECMAScript value. If the VoiceXML 6260 variable is a recording, the MS sets the type to the MIME 6261 media type of the recording and encodes the recorded content as CDATA 6262 in the (see Section 4.2.6.1 for an example). If the VoiceXML 6263 variable is a complex ECMAScript value (e.g. object, array, etc), the 6264 MS sets the type to 'application/json' and converts the 6265 variable value to its JSON value equivalent ([RFC4627]. The behavior 6266 resulting from specifying an ECMAScript object with circular 6267 references is not defined. 6269 If the expr attribute is specified on the VoiceXML element 6270 instead of the namelist attribute, the MS creates a element 6271 with the reserved name '__exit', the type 'text/plain' and the 6272 content of the expr attribute. To allow the AS to differentiate 6273 between a notification event resulting from a VoiceXML 6274 from one resulting from an , the MS creates a 6275 with the reserved name '__reason', the type 'text/plain', and 6276 a value of "disconnect" (without brackets) to reflect the use of 6277 VoiceXML's element, and the value of "exit" (without 6278 brackets) to an explicit in the VoiceXML dialog. If the 6279 VoiceXML session terminates for other reasons (such as encountering 6280 an error), this parameter MAY be omitted or take on platform-specific 6281 values prefixed with an underscore. 6283 Table 2 provides some examples of VoiceXML usage and the 6284 corresponding element in the notification 6285 event. It assumes the following VoiceXML variable names and values: 6286 userAuthorized=true, pin=1234 and errors=0. The type 6287 attributes ('text/plain') are omitted for clarity. 6289 +------------------------+------------------------------------------+ 6290 | Usage | Result | 6291 +------------------------+------------------------------------------+ 6292 | | exit | 6294 | | | 6295 | | exit 5 | 6298 | | | 6299 | | exit 'done' | 6302 | | | 6303 | | name="__reason">exit true | 6306 | | | 6307 | | name="__reason">exit 1234 0 | 6311 +------------------------+------------------------------------------+ 6313 Table 2: VoiceXML mapping examples 6315 12.5. Call Transfer 6317 While VoiceXML is at its core a dialog language, it also provides 6318 optional call transfer capability. It is NOT RECOMMENDED to use 6319 VoiceXML's call transfer capability in networks involving Application 6320 Servers. Rather, the AS itself can provide call routing 6321 functionality by taking signaling actions based on the data returned 6322 to it, either through VoiceXML's own data submission mechanisms or 6323 through the mechanism described in Section 12.4. If the MS 6324 encounters a VoiceXML dialog requesting call transfer capability, the 6325 MS SHOULD raise an error event in the VoiceXML dialog execution 6326 context: an error.unsupported.transfer.blind event if blind transfer 6327 is requested, error.unsupported.transfer.bridge if bridge transfer is 6328 requested, or error.unsupported.transfer.consultation if consultation 6329 transfer is requested. 6331 13. References 6333 13.1. Normative References 6335 [I-D.ietf-mediactrl-sip-control-framework] 6336 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 6337 Control Channel Framework", 6338 draft-ietf-mediactrl-sip-control-framework-11 (work in 6339 progress), October 2009. 6341 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 6342 Requirement Levels", BCP 14, RFC 2119, March 1997. 6344 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 6345 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 6346 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 6348 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 6349 Types", RFC 3023, January 2001. 6351 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 6352 January 2004. 6354 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 6355 Resource Identifier (URI): Generic Syntax", STD 66, 6356 RFC 3986, January 2005. 6358 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 6359 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 6361 [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying 6362 Languages", RFC 4646, September 2006. 6364 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 6365 BCP 47, RFC 4647, September 2006. 6367 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 6368 Specification Version 1.0", W3C Recommendation, 6369 March 2004. 6371 [W3C.REC-SMIL2-20051213] 6372 Bulterman, D., Michel, T., Zucker, D., Jansen, J., 6373 Layaida, N., Mullender, S., Grassel, G., and A. Koivisto, 6374 "Synchronized Multimedia Integration Language (SMIL 2.1)", 6375 World Wide Web Consortium Recommendation REC-SMIL2- 6376 20051213, December 2005, 6377 . 6379 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 6380 and F. Yergeau, "Extensible Markup Language (XML) 1.0 6381 (Third Edition)", W3C Recommendation, February 2004. 6383 [XMLSchema:Part2] 6384 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 6385 Second Edition", W3C Recommendation, October 2004. 6387 13.2. Informative References 6389 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 6390 1.0", W3C Working Draft (work in progress), January 2007. 6392 [H.248.9] "Gateway control protocol: Advanced media server 6393 packages", ITU-T Recommendation H.248.9. 6395 [I-D.ietf-xcon-common-data-model] 6396 Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, 6397 "Conference Information Data Model for Centralized 6398 Conferencing (XCON)", draft-ietf-xcon-common-data-model-14 6399 (work in progress), November 2009. 6401 [IANA] "IANA registry for RTP Payload Types", 6402 . 6404 [MIME.mediatypes] 6405 "IANA registry for MIME Media Types", 6406 . 6408 [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session 6409 Markup Language (MSML)", draft-saleem-msml-09 (work in 6410 progress), July 2009. 6412 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 6413 Package", RFC 2897, August 2000. 6415 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 6416 A., Peterson, J., Sparks, R., Handley, M., and E. 6417 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 6418 June 2002. 6420 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 6421 Media Services with SIP", RFC 4240, December 2005. 6423 [RFC4244] Barnes, M., "An Extension to the Session Initiation 6424 Protocol (SIP) for Request History Information", RFC 4244, 6425 November 2005. 6427 [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media 6428 Types: application/voicexml+xml, application/ssml+xml, 6429 application/srgs, application/srgs+xml, application/ 6430 ccxml+xml, and application/pls+xml", RFC 4267, 6431 November 2005. 6433 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 6434 Parameter for "Bucket" Media Types", RFC 4281, 6435 November 2005. 6437 [RFC4627] Crockford, D., "The application/json Media Type for 6438 JavaScript Object Notation (JSON)", RFC 4627, July 2006. 6440 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 6441 (SIP) Event Package for Key Press Stimulus (KPML)", 6442 RFC 4730, November 2006. 6444 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 6445 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 6446 December 2006. 6448 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 6449 Formats", RFC 4855, February 2007. 6451 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 6452 Control Markup Language (MSCML) and Protocol", RFC 5022, 6453 September 2007. 6455 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 6456 Requirements", RFC 5167, March 2008. 6458 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 6459 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 6460 and S. Tryphonas, "Voice Extensible Markup Language 6461 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 6463 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 6464 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 6465 A., Porter, B., and K. Rehor, "Voice Extensible Markup 6466 Language (VoiceXML) Version 2.1", W3C Recommendation, 6467 June 2007. 6469 [VXML30] McGlashan, S., Auburn, RJ., Baggia, P., Barnett, J., 6470 Bodell, M., Burnett, D., Carter, J., Oshry, M., Rehor, K., 6471 Young, M., and R. Hosn, "Voice Extensible Markup Language 6472 (VoiceXML) Version 3.0", W3C Working Draft, December 2008. 6474 Authors' Addresses 6476 Scott McGlashan 6477 Hewlett-Packard 6479 Email: smcg.stds01@mcglashan.org 6481 Tim Melanchuk 6482 Rain Willow Communications 6484 Email: tim.melanchuk@gmail.com 6486 Chris Boulton 6487 NS-Technologies 6489 Email: chris@ns-technologies.com