idnits 2.17.00 (12 Aug 2021) /tmp/idnits28801/draft-ietf-mediactrl-ivr-control-package-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? -- It seems you're using the 'non-IETF stream' Licence Notice instead 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 16 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 lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 20, 2009) is 4837 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 4586, but not defined == Missing Reference: 'IVR-200' is mentioned on line 5435, but not defined == Missing Reference: 'IVR-201' is mentioned on line 5453, but not defined == Missing Reference: 'IVR01' is mentioned on line 5532, but not defined == Missing Reference: 'IVR23' is mentioned on line 5535, but not defined == Missing Reference: 'IVR15' is mentioned on line 5544, but not defined == Missing Reference: 'IVR06' is mentioned on line 5547, but not defined == Missing Reference: 'IVR05' is mentioned on line 5557, but not defined == Missing Reference: 'IVR21' is mentioned on line 5566, but not defined == Missing Reference: 'IVR16' is mentioned on line 5576, but not defined == Missing Reference: 'IVR18' is mentioned on line 5581, but not defined == Missing Reference: 'IVR19' is mentioned on line 5584, but not defined == Missing Reference: 'IVR02' is mentioned on line 5588, but not defined == Missing Reference: 'IVR20' is mentioned on line 5591, but not defined == Missing Reference: 'IVR22' is mentioned on line 5597, but not defined == Missing Reference: 'IVR04' is mentioned on line 5600, but not defined == Missing Reference: 'IVR08' is mentioned on line 5603, but not defined == Missing Reference: 'IVR11' is mentioned on line 5607, but not defined -- Looks like a reference, but probably isn't: '0' on line 5979 == Outdated reference: draft-ietf-mediactrl-sip-control-framework has been published as RFC 6230 ** 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: 3 errors (**), 0 flaws (~~), 25 warnings (==), 10 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group S. McGlashan 3 Internet-Draft Hewlett-Packard 4 Intended status: Standards Track T. Melanchuk 5 Expires: August 24, 2009 Rain Willow Communications 6 C. Boulton 7 NS-Technologies 8 February 20, 2009 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-05 14 Status of this Memo 16 This Internet-Draft is submitted to IETF in full conformance with the 17 provisions of BCP 78 and BCP 79. 19 Internet-Drafts are working documents of the Internet Engineering 20 Task Force (IETF), its areas, and its working groups. Note that 21 other groups may also distribute working documents as Internet- 22 Drafts. 24 Internet-Drafts are draft documents valid for a maximum of six months 25 and may be updated, replaced, or obsoleted by other documents at any 26 time. It is inappropriate to use Internet-Drafts as reference 27 material or to cite them other than as "work in progress." 29 The list of current Internet-Drafts can be accessed at 30 http://www.ietf.org/ietf/1id-abstracts.txt. 32 The list of Internet-Draft Shadow Directories can be accessed at 33 http://www.ietf.org/shadow.html. 35 This Internet-Draft will expire on August 24, 2009. 37 Copyright Notice 39 Copyright (c) 2009 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. 49 Abstract 51 This document defines a Media Control Channel Framework Package for 52 Interactive Voice Response (IVR) dialog interaction on media 53 connections and conferences. The package defines dialog management 54 request elements for preparing, starting and terminating dialog 55 interactions, as well as associated responses and notifications. 56 Dialog interactions are specified in a dialog language. This package 57 defines a lightweight IVR dialog language (supporting prompt 58 playback, runtime controls, DTMF collect and media recording) and 59 allows other dialog languages to be used. The package also defines 60 elements for auditing package capabilities and IVR dialogs. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 65 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9 66 3. Control Package Definition . . . . . . . . . . . . . . . . . 10 67 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10 68 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 69 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 70 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 71 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 72 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 73 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12 74 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13 75 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 13 76 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15 77 4.2.1. . . . . . . . . . . . . . . . . . . . 18 78 4.2.2. . . . . . . . . . . . . . . . . . . . . 20 79 4.2.2.1. . . . . . . . . . . . . . . . . . . . 23 80 4.2.2.1.1. . . . . . . . . . . . . . . . . . . 24 81 4.2.2.2. . . . . . . . . . . . . . . . . . . . . 25 82 4.2.2.2.1. . . . . . . . . . . . . . . . . . . 26 83 4.2.2.2.2. . . . . . . . . . . . . . . . . . 26 84 4.2.3. . . . . . . . . . . . . . . . . . . 27 85 4.2.4. . . . . . . . . . . . . . . . . . . . . . 27 86 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 29 87 4.2.5.1. . . . . . . . . . . . . . . . . . . 29 88 4.2.5.2. . . . . . . . . . . . . . . . . . . 31 89 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 31 90 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 32 91 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 33 92 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 34 93 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 36 94 4.3.1.1.1. . . . . . . . . . . . . . . . . . 38 95 4.3.1.1.2. . . . . . . . . . . . . . . . . . . . 39 96 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . . 40 97 4.3.1.1.3.1. . . . . . . . . . . . . . . . . . . 42 98 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 43 99 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 46 100 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 48 101 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 50 102 4.3.1.5. . . . . . . . . . . . . . . . . . . . . . 54 103 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 104 4.3.2.1. . . . . . . . . . . . . . . . . . . 56 105 4.3.2.2. . . . . . . . . . . . . . . . . . . 56 106 4.3.2.2.1. . . . . . . . . . . . . . . . 56 107 4.3.2.3. . . . . . . . . . . . . . . . . . . 56 108 4.3.2.4. . . . . . . . . . . . . . . . . . . 57 109 4.3.2.4.1. . . . . . . . . . . . . . . . . . 57 110 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 58 111 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 58 112 4.4.2. . . . . . . . . . . . . . . . . . . . 59 113 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 61 114 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 62 115 4.4.2.2. . . . . . . . . . . . . . . . . . 62 116 4.4.2.2.1. . . . . . . . . . . . . . . 64 117 4.4.2.2.2. . . . . . . . . . . . . . . . 65 118 4.4.2.2.3. . . . . . . . . . . . . . . . . 65 119 4.4.2.2.4. . . . . . . . . . . . . . . . . 65 120 4.4.2.2.5. . . . . . . . . . . . . . . . . . 66 121 4.4.2.2.5.1. . . . . . . . . . . . . . 66 122 4.4.2.2.6. . . . . . . . . . . . . 67 123 4.4.2.2.7. . . . . . . . . . . . . . 67 124 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 67 125 4.4.2.3.1. . . . . . . . . . . . . . . . . 67 126 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 68 127 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 75 128 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 77 129 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 104 130 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 104 131 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 104 132 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 105 133 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 105 134 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 106 135 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 107 136 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 107 137 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 108 138 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 110 139 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 111 140 6.2.5. Subscriptions and notifications . . . . . . . . . . . 112 141 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 112 142 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 113 143 7. Security Considerations . . . . . . . . . . . . . . . . . . . 116 144 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 119 145 8.1. Control Package Registration . . . . . . . . . . . . . . 119 146 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 119 147 8.3. MIME Type Registration . . . . . . . . . . . . . . . . . 119 148 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 120 149 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 132 150 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 133 151 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 134 152 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 142 153 13.1. Normative References . . . . . . . . . . . . . . . . . . 142 154 13.2. Informative References . . . . . . . . . . . . . . . . . 143 155 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 145 157 1. Introduction 159 The Media Control Channel Framework 160 ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic 161 approach for establishment and reporting capabilities of remotely 162 initiated commands. The Control Framework utilizes many functions 163 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 164 rendezvous and establishment of a reliable channel for control 165 interactions. The Control Framework also introduces the concept of a 166 Control Package. A Control Package is an explicit usage of the 167 Control Framework for a particular interaction set. This document 168 defines a Control Package for Interactive Voice Response (IVR) 169 dialogs on media connections and conferences. The term 'dialog' in 170 this document refers to an IVR dialog and is completely unrelated to 171 the notion of a SIP dialog. The term 'IVR' is used in its inclusive 172 sense, allowing media other than voice for dialog interaction. 174 The package defines dialog management request elements for preparing, 175 starting and terminating dialog interactions, as well as associated 176 responses and notifications. Dialog interactions are specified using 177 a dialog language where the language specifies a well-defined syntax 178 and semantics for permitted operations (play a prompt, record input 179 from the user, etc). This package defines a lightweight IVR dialog 180 language (supporting prompt playback, runtime controls, DTMF collect 181 and media recording) and allows other dialog languages to be used. 182 These dialog languages are specified inside dialog management 183 elements for preparing and starting dialog interactions. The package 184 also defines elements for auditing package capabilities and IVR 185 dialogs. 187 This package has been designed to satisfy IVR requirements documented 188 in the Media Server Control Protocol Requirements document 189 ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. 190 It achieves this by building upon two major approaches to IVR dialog 191 design. These approaches address a wide range of IVR use cases and 192 are used in many applications which are extensively deployed today. 194 First, the package is designed to provide the major IVR functionality 195 of SIP Media Server languages such as netann ([RFC4240]), MSCML 196 ([RFC5022]) and MSML ([MSML]) which themselves build upon more 197 traditional non-SIP languages ([H.248.9], [RFC2897]). A key 198 differentiator is that this package provides IVR functionality using 199 the Media Control Channel Framework. 201 Second, its design is aligned with key concepts of the web model as 202 defined in W3C Voice Browser languages. The key dialog management 203 mechanism is closely aligned with CCXML ([CCXML10]). The dialog 204 functionality defined in this package can be largely seen as a subset 205 of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, 206 DTMF collection and media recording features are incorporated, but 207 not any advanced VoiceXML constructs (such as
, its 208 interpretation algorithm, or a dynamic data model). As W3C develops 209 VoiceXML 3.0 ([VXML30]), we expect to see further alignment, 210 especially in providing a set of basic independent primitive elements 211 (such as prompt, collect, record and runtime controls) which can be 212 re-used in different dialog languages. 214 By reusing and building upon design patterns from these approaches to 215 IVR languages, this package is intended to provide a foundation which 216 is familiar to current IVR developers and sufficient for most IVR 217 applications, as well as a path to other languages which address more 218 advanced applications. 220 This control package defines a lightweight IVR dialog language. The 221 scope of this dialog language is the following IVR functionality: 223 o playing one or more media resources as a prompt to the user 225 o runtime controls (including VCR controls like speed and volume) 227 o collecting DTMF input from the user according to a grammar 229 o recording user media input 231 Out of scope for this dialog language are more advanced functions 232 including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), 233 fax, automatic prompt recovery ('media fallback') and media 234 transformation. Such functionality can be addressed by other dialog 235 languages (such as VoiceXML) used with this package, extensions to 236 this package (addition of foreign elements or attributes from another 237 namespace) or other control packages. 239 The functionality of this package is defined by messages, containing 240 XML [XML] elements, transported using the Media Control Channel 241 Framework. The XML elements can be divided into three types: dialog 242 management elements; a dialog element which defines a lightweight IVR 243 dialog language used with dialog management elements; and finally, 244 elements for auditing package capabilities as well as dialogs managed 245 by the package. 247 Dialog management elements are designed to manage the general 248 lifecycle of a dialog. Elements are provided for preparing a dialog, 249 starting the dialog on a conference or connection, and terminating 250 execution of a dialog. Each of these elements is contained in a 251 Media Control Channel Framework CONTROL message sent to the media 252 server. When the appropriate action has been executed, the media 253 server sends a REPORT message (or a 200 response to the CONTROL if it 254 can execute in time) with a response element indicating whether the 255 operation was successful or not (e.g. if the dialog cannot be 256 started, then the error is reported in this response). Once a dialog 257 has been successfully started, the media server can send further 258 event notifications in a framework CONTROL message. This package 259 defines two event notifications: a DTMF event indicating the DTMF 260 activity; and a dialogexit event indicating that the dialog has 261 exited. If the dialog has executed successful, the dialogexit event 262 includes information collected during the dialog. If an error occurs 263 during execution (e.g. a media resource failed to play, no recording 264 resource available, etc), then error information is reported in the 265 dialogexit event. Once a dialogexit event is sent, the dialog 266 lifecycle is terminated. 268 The dialog management elements for preparing and starting a dialog 269 specify the dialog using a dialog language. A dialog language has 270 well-defined syntax and semantics for defined dialog operations. 271 Typically dialog languages are written in XML where the root element 272 has a designated XML namespace and, when used as standalone 273 documents, have an associated MIME media type. For example, VoiceXML 274 is an XML dialog language with the root element with the 275 designated namespace 'http://www.w3.org/2001/vxml' and standalone 276 documents are associated with the MIME media type 'application/ 277 vxml+xml' ([RFC4267]). 279 This control package defines its own lightweight IVR dialog language. 280 The language has a root element () with the same designated 281 namespace as used for other elements defined in this package (see 282 Section 8.2). The root element contains child elements for playing 283 prompts to the user, specifying runtime controls, collecting DTMF 284 input from the user and recording media input from the user. The 285 child elements can co-occur so as to provide 'play announcement', 286 'prompt and collect' as well as 'prompt and record' functionality. 288 The dialog management elements for preparing and starting a dialog 289 can specify the dialog language either by including inline a fragment 290 with the root element or by referencing an external dialog document. 291 The dialog language defined in this package is specified inline. 292 Other dialog languages, such as VoiceXML, can be used by referencing 293 an external dialog document. 295 The document is organized as follows. Section 3 describes how this 296 control package fulfills the requirements for a Media Control Channel 297 Framework control package. Section 4 describes the syntax and 298 semantics of defined elements, including dialog management 299 (Section 4.2), the IVR dialog element (Section 4.3) and audit 300 elements (Section 4.4). Section 5 describes an XML schema for these 301 elements and provides extensibility by allowing attributes and 302 elements from other namespaces. Section 6 provides examples of 303 package usage. Section 7 describes important security considerations 304 for use of this control package. Section 8 provides information on 305 IANA registration of this control package, including its name, XML 306 namespace and MIME media type. Finally, Section 12 provides 307 additional information on using VoiceXML when supported as an 308 external dialog language. 310 2. Conventions and Terminology 312 In this document, BCP 14 [RFC2119] defines the key words "MUST", 313 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 314 "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In 315 addition, BCP 15 indicates requirement levels for compliant 316 implementations. 318 The following additional terms are defined for use in this document: 320 Dialog: A dialog performs media interaction with a user following 321 the concept of an IVR (Interactive Voice Response) dialog (this 322 sense of 'dialog' is completely unrelated to a SIP dialog). A 323 dialog is specified as inline XML, or via a URI reference to an 324 external dialog document. Traditional IVR dialogs typically 325 feature capabilities such as playing audio prompts, collecting 326 DTMF input and recording audio input from the user. More 327 inclusive definitions include support for other media types, 328 runtime controls, synthesized speech, recording and playback of 329 video, recognition of spoken input, and mixed initiative 330 conversations. 332 Application server: A SIP [RFC3261] application server (AS) hosts 333 and executes services such as interactive media and conferencing 334 in an operator's network. An AS influences and impacts the SIP 335 session, in particular by terminating SIP sessions on a media 336 server, which is under its control. 338 Media Server: A media server (MS) processes media streams on behalf 339 of an AS by offering functionality such as interactive media, 340 conferencing, and transcoding to the end user. Interactive media 341 functionality is realized by way of dialogs which are initiated by 342 the application server. 344 3. Control Package Definition 346 This section fulfills the mandatory requirement for information that 347 MUST be specified during the definition of a Control Framework 348 Package, as detailed in Section 8 of 349 [I-D.ietf-mediactrl-sip-control-framework]. 351 3.1. Control Package Name 353 The Control Framework requires a Control Package to specify and 354 register a unique name and version. 356 The name and version of this Control Package is "msc-ivr/1.0" (Media 357 Server Control - Interactive Voice Response - version 1.0). Its IANA 358 registration is specified in Section 8.1. 360 Since this is the initial ("1.0") version of the control package, 361 there are no backwards compatibility issues to address. 363 3.2. Framework Message Usage 365 The Control Framework requires a Control Package to explicitly detail 366 the control messages that can be used as well as provide an 367 indication of directionality between entities. This will include 368 which role type is allowed to initiate a request type. 370 This package specifies CONTROL and response messages in terms of XML 371 elements defined in Section 4, where the message bodies have the MIME 372 media type defined in Section 8.3. These elements describe requests, 373 response and notifications and all are contained within a root 374 element (Section 4.1). 376 In this package, the MS operates as a Control Server in receiving 377 requests from, and sending responses to, the AS (operating as Control 378 Client). Dialog management requests and responses are defined in 379 Section 4.2. Audit requests and responses are defined in 380 Section 4.4. dialog management and audit responses are carried in a 381 framework 200 response or REPORT message bodies. This package's 382 response codes are defined in Section 4.5. 384 Note that package responses are different from framework response 385 codes. Framework error response codes (see Section 8 of 386 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 387 or event notification is invalid; for example, a request is invalid 388 XML (400), or not understood (500). 390 The MS also operates as a Control Client in sending event 391 notification to the AS (Control Server). Event notifications 392 (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST 393 respond with a Control Framework 200 response. 395 3.3. Common XML Support 397 The Control Framework requires a Control Package definition to 398 specify if the attributes for media dialog or conference references 399 are required. 401 This package requires that the XML Schema in Section 17.1 of 402 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 403 media dialogs and conferences. 405 The package uses "connectionid" and "conferenceid" attributes for 406 various element definitions (Section 4). The XML schema (Section 5) 407 imports the definitions of these attributes from the framework 408 schema. 410 3.4. CONTROL Message Body 412 The Control Framework requires a Control Package to define the 413 control body that can be contained within a CONTROL command request 414 and to indicate the location of detailed syntax definitions and 415 semantics for the appropriate body types. 417 When operating as Control Server, the MS receives CONTROL messages 418 body with the MIME media type defined in Section 8.3 and containing 419 an element (Section 4.1) with either a dialog management or 420 audit request child element. 422 The following dialog management request elements are carried in 423 CONTROL message bodies to MS: (Section 4.2.1), 424 (Section 4.2.2) and 425 (Section 4.2.3)elements. 427 The request element (Section 4.4.1) is also carried in 428 CONTROL message bodies. 430 When operating as Control Client, the MS sends CONTROL messages with 431 the MIME media type defined in Section 8.3 and a body containing an 432 element (Section 4.1) with a notification child 433 element (Section 4.2.5). 435 3.5. REPORT Message Body 437 The Control Framework requires a control package definition to define 438 the REPORT body that can be contained within a REPORT command 439 request, or that no report package body is required. This section 440 indicates the location of detailed syntax definitions and semantics 441 for the appropriate body types. 443 When operating as Control Server, the MS sends REPORT bodies with the 444 MIME media type defined in Section 8.3 and containing a 445 element (Section 4.1) with a response child element. The response 446 element for dialog management requests is a element 447 (Section 4.2.4). The response element for an audit request is a 448 element (Section 4.4.2). 450 3.6. Audit 452 The Control Framework encourages Control Packages to specify whether 453 auditing is available, how it is triggered as well as the query/ 454 response formats. 456 This Control Packages supports auditing of package capabilities and 457 dialogs on the MS. An audit request is carried in a CONTROL message 458 (see Section 3.4) and an audit response in a REPORT message (or a 200 459 response to the CONTROL if it can execute the audit in time) (see 460 Section 3.5). 462 The syntax and semantics of audit request and response elements is 463 defined in Section 4.4. 465 3.7. Examples 467 The Control Framework recommends Control Packages to provide a range 468 of message flows that represent common flows using the package and 469 this framework document. 471 This Control Package provides examples of such message flows in 472 Section 6. 474 4. Element Definitions 476 This section defines the XML elements for this package. The elements 477 are defined in the XML namespace specified in Section 8.2. 479 The root element is (Section 4.1). All other XML elements 480 (requests, responses and notification elements) are contained within 481 it. Child elements describe dialog management (Section 4.2) and 482 audit (Section 4.4) functionality. The IVR dialog element (contained 483 within dialog management elements) is defined in Section 4.3. 484 Response status codes are defined in Section 4.5 and type definitions 485 in Section 4.6. 487 Implementation of this control package MUST address the Security 488 Considerations described in Section 7 ). 490 Implementation of this control package MUST adhere to the syntax and 491 semantics of XML elements defined in this section and the schema 492 (Section 5). Since XML Schema is unable to support some types of 493 syntactic constraints (such as attribute and element co-occurrence), 494 some elements in this package specify additional syntactic 495 constraints in their textual definition. If there is a difference in 496 constraints between the XML schema and the textual description of 497 elements in this section, the textual definition takes priority. 499 The XML schema supports extensibility by allowing attributes and 500 elements from other namespaces. Implementations MAY support 501 additional capabilities by means of attributes and elements from 502 other (foreign) namespaces. Attributes and elements from foreign 503 namespaces are not described in this section. 505 Some elements in this control package contain attributes whose value 506 is a URI. These elements include: (Section 4.2.1), 507 (Section 4.2.2), (Section 4.3.1.5), 508 (Section 4.3.1.3.1), and (Section 4.3.1.4). The MS MUST 509 support one or more schemes using communication protocols suitable 510 for fetching resources (e.g. HTTP). 512 Usage examples are provided in Section 6. 514 4.1. 516 The element has the following attributes (in addition to 517 standard XML namespace attributes such as xmlns): 519 version: a string specifying the mscivr package version. The value 520 is fixed as '1.0' for this version of the package. The attribute 521 is mandatory. 523 The element has the following defined child elements, only 524 one of which can occur: 526 1. dialog management elements defined in Section 4.2: 528 prepare a dialog. See Section 4.2.1 530 start a dialog. See Section 4.2.2 532 terminate a dialog. See Section 4.2.3 534 response to a dialog request. See Section 4.2.4 536 dialog or subscription notification. See Section 4.2.5 538 2. audit elements defined in Section 4.4: 540 audit package capabilities and managed dialogs. See 541 Section 4.4.1 543 response to an audit request. See Section 4.4.2 545 For example, a request to the MS to start an IVR dialog playing a 546 prompt: 548 549 550 551 552 553 554 555 556 558 and a response from the MS that the dialog started successfully: 560 561 562 564 and finally a notification from the MS indicating that the dialog 565 exited upon completion of playing the prompt: 567 568 569 570 571 572 573 575 4.2. Dialog Management Elements 577 This section defines the dialog management XML elements for this 578 control package. These elements are divided into requests, responses 579 and notifications. 581 Request elements are sent to the MS to request a specific dialog 582 operation to be executed. The following request elements are 583 defined: 585 : prepare a dialog for later execution 587 : start a (prepared) dialog on a connection or 588 conference 590 : terminate a dialog 592 Responses from the MS describe the status of the requested operation. 593 Responses are specified in a element (Section 4.2.4) which 594 includes a mandatory attribute describing the status in terms of a 595 numeric code. Response status codes are defined in Section 4.5. The 596 MS MUST respond to a request message with a response message. If the 597 MS is not able to process the request and carry out the dialog 598 operation, the request has failed and the MS MUST indicate the class 599 of failure using an appropriate 4xx response code. Unless an error 600 response code is specified for a class of error within this section, 601 implementations follow Section 4.5 in determining the appropriate 602 status code for the response. 604 Notifications are sent from the MS to provide updates on the status 605 of a dialog or operations defined within the dialog. Notifications 606 are specified in an element (Section 4.2.5). 608 +---------+ 609 | IDLE | 610 +---------+ 611 | | 612 | | 613 /| |/ 614 | | 615 +---------+ | | +---------+ 616 +-----<--| |<--------+ +------------>| |+------>-+ 617 | +-<----|PREPARING| |STARTING | | 618 | | | | ----------->| |---->--+ | 619 | | +---------+ / +---------+ | | 620 | | | / | | | 621 | | |/200 response / /200 response| | | 622 | | | / | | | 623 | | | / | | | 624 | | | / | | | 625 V V v // v | | 626 | | +---------+ / +---------+ | | 627 | | | |--------+ +----| | | | 628 | | |PREPARED |---------+ | | STARTED | | | 629 | | | | | +--->| | | | 630 | | | |--------+| /| | | | 631 | | +---------+ || 200 response +---------+ | | 632 | | || | | | 633 | | /dialogexit notification|| | | | 634 | | (timeout) || | | | 635 | | || | | | 636 | | || | | | 637 | | || | | | 638 | | ||/ | | | 639 | | || 200 response | | | 640 | | || |/dialogexit | | 641 | | || | notification | | 642 | | || | | | 643 | | || | | | 644 | | vv | | | 645 | | /ERROR response +-----------+ | | | 646 | +---------------------->| |<----------+ /ERROR response| | 647 +------------------------>|TERMINATED |<---------------------------+ | 648 / | |<-----------------------------+ 649 410 response +-----------+ /410 response 651 Figure 1: Dialog Lifecycle 653 The MS implementation MUST adhere to the dialog lifecycle shown in 654 Figure 1, where each dialog has the following states: 656 IDLE: the dialog is uninitialized. 658 PREPARING: the dialog is being prepared. The dialog is assigned a 659 valid dialog identifier (see below). If an error occurs the 660 dialog transitions to the TERMINATED state and the MS MUST send a 661 response indicating the error. If the dialog is terminated before 662 preparation is complete, the dialog transitions to the TERMINATED 663 state and the MS MUST send a 410 response (Section 4.5) for the 664 prepare request. 666 PREPARED: the dialog has been successfully prepared and the MS MUST 667 send a 200 response indicating the prepare operation was 668 successful. If the dialog is then terminated, the dialog 669 transitions to the TERMINATED state. If the duration the dialog 670 remains in the PREPARED state exceeds the maximum preparation 671 duration, the dialog transitions to the TERMINATED state and the 672 MS MUST send a dialogexit notification with the appropriate error 673 status code (see Section 4.2.5.1). A maximum preparation duration 674 of 30s is RECOMMENDED. 676 STARTING: the dialog is being started. If the dialog has not 677 already been prepared, it is first prepared and assigned a valid 678 dialog identifier (see below). If an error occurs the dialog 679 transitions to the TERMINATED state and the MS MUST send a 680 response indicating the error. If the dialog is terminated, the 681 dialog transitions to the TERMINATED state and the MS MUST send a 682 410 response (Section 4.5) for the start request. 684 STARTED: the dialog has been successfully started and is now active. 685 The MS MUST send a 200 response indicating the start operation was 686 successful. If any dialog events occurs which were subscribed to, 687 the MS MUST send a notifications when the dialog event occurs. 688 When the dialog exits (due to normal termination, an error or a 689 terminate request), the MS MUST send a dialogexit notification 690 event (see Section 4.2.5.1) and the dialog transitions to the 691 TERMINATED state. 693 TERMINATED: the dialog is terminated and its dialog identifier is no 694 longer valid. Dialog notifications MUST NOT be sent for this 695 dialog. 697 Each dialog has a valid identifier until it transitions to a 698 TERMINATED state. The dialog identifier is assigned by the MS unless 699 the or request already specifies a 700 identifier (dialogid) which is not associated with any other dialog 701 on the MS. Once a dialog is in a TERMINATED state, its dialog 702 identifier is no longer valid and can be reused for another dialog. 704 The identifier is used to reference the dialog in subsequent 705 requests, responses and notifications. In a request, 706 the dialog identifier can be specified in the prepareddialogid 707 attribute indicating the prepared dialog to start. In 708 and requests, the dialog identifier is 709 specified in the dialogid attribute, indicating which dialog is to be 710 terminated or audited respectively. If these requests specify a 711 dialog identifier already associated with another dialog on the MS, 712 the MS sends a response with a 405 status code (see Section 4.5) and 713 the same dialogid as in the request. The MS MUST specify a dialog 714 identifier in notifications associated with the dialog. The MS MUST 715 specify a dialog identifier in responses unless it is a response to a 716 syntactically invalid request. 718 For a given dialog, the or request 719 elements specify the dialog content to execute either by including 720 inline a element (the dialog language defined in this 721 package, see Section 4.3) or by referencing an external dialog 722 document (a dialog language defined outside this package). When 723 referencing an external dialog document, the request element contains 724 a URI reference to the remote document (specifying the dialog 725 definition) and, optionally, a type attribute indicating the MIME 726 media type associated with the dialog document. Consequently, the 727 dialog language associated with a dialog on the MS is identified 728 either inline by a child element or by a src attribute 729 referencing a document containing the dialog language. The MS MUST 730 support inline the IVR dialog language defined in Section 4.3. The 731 MS MAY support other dialog languages by reference. 733 4.2.1. 735 The request is sent to the MS to request preparation 736 of a dialog. Dialog preparation consists of (a) retrieving external 737 dialog document and resources (if required), and (b) validating the 738 dialog document syntactically and semantically. 740 A prepared dialog is executed when the MS receives a 741 request referencing the prepared dialog identifier (see 742 Section 4.2.2). 744 The element has the following attributes: 746 src: specifies the location of an external dialog document to 747 prepare. A valid value is a URI (see Section 4.6.9). If the URI 748 scheme is unsupported, the MS sends a with a 420 status 749 code (Section 4.5). If the document cannot be retrieved within 750 the timeout interval, the MS sends a with a 409 status 751 code. If the document contains a type of dialog language which 752 the MS does not supported, the MS sends a with a 421 753 status code. The attribute is optional. There is no default 754 value. 756 type: specifies the type of the external dialog document indicated 757 in the 'src' attribute. A valid value is a MIME media type (see 758 Section 4.6.10). If the URI scheme used in the src attribute 759 defines a mechanism for establishing the authoratitive MIME media 760 type of the media resource, the value returned by that mechanism 761 takes precedence over this attribute. The attribute is optional. 762 There is no default value. 764 fetchtimeout: the maximum timeout interval to wait when fetching an 765 external dialog document. A valid value is a Time Designation 766 (see Section 4.6.7). The attribute is optional. The default 767 value is 30s. 769 dialogid: string indicating a unique name for the dialog. If a 770 dialog with the same name already exists on the MS, the MS sends a 771 with a 405 status code (Section 4.5). If this 772 attribute is not specified, the MS MUST create a unique name for 773 the dialog (see Section 4.2 for dialog identifier assignment). 774 The attribute is optional. There is no default value. 776 The element has one optional child element: 778 an IVR dialog (Section 4.3) to prepare. The element is 779 optional. 781 The dialog to prepare can either be specified inline with a 782 child element or externally (for dialog languages defined outside 783 this specification) using the src attribute. It is a syntax error if 784 both an inline element element and a src attribute are 785 specified and the MS sends a with a 400 status code (see 786 Section 4.5). The type and fetchtimeout attributes are only relevant 787 when a dialog is specified as an external document. 789 For example, a request to prepare an inline IVR 790 dialog with a single prompt: 792 793 794 795 796 797 798 799 801 803 In this example, a request with a specified dialogid to prepare a 804 VoiceXML dialog document located externally: 806 807 810 812 Since MS support for dialog languages other than the IVR dialog 813 language defined in this package is optional, if the MS does not 814 support the dialog language it would send a response with the status 815 code 409 (Section 4.5). Further information on using VoiceXML can be 816 found in Section 12. 818 4.2.2. 820 The element is sent to the MS to start a dialog. If 821 the dialog has not been prepared, the dialog is prepared (retrieving 822 an external document and resources if necessary, and the dialog 823 document validated syntactically and semantically). Media processors 824 (e.g. DTMF and prompt queue) are activated and associated with the 825 specified connection or conference. 827 The element has the following attributes: 829 src: specifies the location of an external dialog document to start. 830 A valid value is a URI (see Section 4.6.9). If the URI scheme is 831 unsupported, the MS sends a with a 420 status code 832 (Section 4.5). If the document cannot be retrieved with the 833 timeout interval, the MS sends a with a 409 status 834 code. If the document contains a type of dialog language which 835 the MS does not supported, the MS sends a with a 421 836 status code. The attribute is optional. There is no default 837 value. 839 type: specifies the type of the external dialog document indicated 840 in the 'src' attribute. A valid value is a MIME media type (see 841 Section 4.6.10). If the URI scheme used in the src attribute 842 defines a mechanism for establishing the authoratitive MIME media 843 type of the media resource, the value returned by that mechanism 844 takes precedence over this attribute. The attribute is optional. 845 There is no default value. 847 fetchtimeout: the maximum timeout interval to wait when fetching an 848 external dialog document. A valid value is a Time Designation 849 (see Section 4.6.7). The attribute is optional. The default 850 value is 30s. 852 dialogid: string indicating a unique name for the dialog. If a 853 dialog with the same name already exists on the MS, the MS sends a 854 with a 405 status code (Section 4.5). If neither the 855 dialogid attribute nor the prepareddialogid attribute is 856 specified, the MS MUST create a unique name for the dialog (see 857 Section 4.2 for dialog identifier assignment). The attribute is 858 optional. There is no default value. 860 prepareddialogid: string identifying a dialog previously prepared 861 using a dialogprepare (Section 4.2.1) request. If neither the 862 dialogid attribute nor the prepareddialogid attribute is 863 specified, the MS MUST create a unique name for the dialog (see 864 Section 4.2 for dialog identifier assignment). The attribute is 865 optional. There is no default value. 867 connectionid: string identifying the SIP dialog connection on which 868 this dialog is to be started (see Section 17.1 of 869 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 870 optional. There is no default value. 872 conferenceid: string identifying the conference on which this dialog 873 is to be started (see Section 17.1 of 874 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 875 optional. There is no default value. 877 Exactly one of the connectionid or conferenceid attributes MUST be 878 specified. If both connectionid and conferenceid attributes are 879 specified or neither are specified, it is a syntax error and the MS 880 sends a with a 400 status code (Section 4.5). 882 It is an error if the connection or conference referenced by a 883 specific connectionid or conferenceid attribute is not available on 884 the MS at the time the request is executed. If an 885 invalid connectionid is specified, the MS sends a with a 886 407 status code (Section 4.5). If an invalid conferenceid is 887 specified, the MS sends a with a 408 status code. 889 The element has the following sequence of child 890 elements: 892 : specifies an IVR dialog (Section 4.3) to execute. The 893 element is optional. 895 : specifies subscriptions to dialog events 896 (Section 4.2.2.1). The element is optional. 898 : specifies input parameters (Section 4.2.6) for a dialog 899 languages defined outside this specification. The element is 900 optional. If a parameter is not supported by the MS for the 901 external dialog language, the MS sends a with a 427 902 status code (Section 4.5). 904 : determines the media stream(s) associated with the 905 connection or conference on which the dialog is executed 906 (Section 4.2.2.2). The element is optional. Multiple 907 elements can be specified. 909 The dialog to start can be specified either (a) inline with a 910 child element, or (b) externally using the src attribute 911 (for dialog languages defined outside this specification), or (c) 912 reference a previously prepared dialog using the prepareddialogid 913 attribute. If exactly one of the src attribute, the prepareddialogid 914 or a child element is not specified, it is a syntax error 915 and the MS sends a with a 400 status code (Section 4.5). 916 If the prepareddialogid and dialogid attributes are specified, it is 917 also a syntax error and the MS sends a with a 400 status 918 code. The type and fetchtimeout attributes are only relevant when a 919 dialog is specified as an external document. 921 The element provides explicit control over which media 922 streams on the connection or conference are used during dialog 923 execution. For example, if a connection supports both audio and 924 video streams, a element could be used to indicate that only 925 the audio stream is used in receive mode. In cases where there are 926 multiple media streams of the same type for a dialog, the AS MUST use 927 elements to explicitly specify the configuration. If no 928 elements are specified, then the default media configuration 929 is that defined for the connection or conference. 931 If a element is in conflict with (a) another 932 element, (b) with specified connection or conference media 933 capabilities, (c) with a SDP label value as part of the connectionid 934 (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) then 935 the MS sends a with a 411 status code (Section 4.5). If 936 the media stream configuration is not supported by the MS, then the 937 MS sends a with a 428 status code (Section 4.5). 939 The MS MAY support multiple, simultaneous dialogs being started on 940 the same connection or conference. For example, the same connection 941 can receive different media streams (e.g. audio and video) from 942 different dialogs, or receive (and implicitly mix where appropriate) 943 the same type of media streams from different dialogs. If the MS 944 does not support starting another dialog on the same connection or 945 conference, it sends a with a 432 status code 946 (Section 4.5) when it receives the second (or subsequent) dialog 947 request. 949 For example, a request to start an ivr dialog on a connection 950 subscribing to DTMF notifications: 952 953 954 955 956 957 958 959 960 961 962 963 964 966 In this example, the dialog is started on a conference where only 967 audio media stream is received: 969 970 971 972 973 974 975 977 4.2.2.1. 979 The element allows the AS to subscribe to, and be 980 notified of, specific events which occur during execution of the 981 dialog. Notifications of dialog events are delivered using the 982 element (see Section 4.2.5). 984 The element has no attributes. 986 The element has the following sequence of child elements 987 (0 or more occurrences): 989 : Subscription to DTMF input during the dialog 990 (Section 4.2.2.1.1). The element is optional. 992 The MS MUST support subscription for the IVR dialog 993 language defined in this specification (Section 4.3). It MAY support 994 other dialog subscriptions (specified using attributes and child 995 elements from a foreign namespace). If the MS does not support a 996 subscription specified in a foreign namespace, the MS sends a 997 response with a 431 status code (see Section 4.5). 999 4.2.2.1.1. 1001 The element has the following attributes: 1003 matchmode: controls which DTMF input are subscribed to. Valid 1004 values are: "all" - notify all DTMF key presses received during 1005 the dialog; "collect" - notify only DTMF input matched by the 1006 collect operation (Section 4.3.1.3); and "control" - notify only 1007 DTMF input matched by the runtime control operation 1008 (Section 4.3.1.2). The attribute is optional. The default value 1009 is "all". 1011 The element has no child elements. 1013 DTMF notifications are delivered in the element 1014 (Section 4.2.5.2). 1016 For example, the AS wishes to subscribe to DTMF key press matching a 1017 runtime control: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1033 Each time a '2' or '3' DTMF input is received, the MS sends a 1034 notification event: 1036 1037 1038 1040 /event> 1041 1043 4.2.2.2. 1045 The element has the following attributes: 1047 media: a string indicating the type of media associated with the 1048 stream. The following values MUST be used for common types of 1049 media: "audio" for audio media, and "video" for video media. The 1050 attribute is mandatory. 1052 label: a string indicating the SDP label associated with a media 1053 stream ([RFC4574]). The attribute is optional. 1055 direction: a string indicating the direction of the media flow 1056 between a dialog and its end point conference or connection. 1057 Defined values are: "sendrecv" (the dialog can send and receive 1058 media), "sendonly" (the dialog can only send media), "recvonly" 1059 (the dialog can only receive media) and "inactive" (stream is not 1060 to be used). The default value is "sendrecv". The attribute is 1061 optional. 1063 The element has the following sequence of child elements: 1065 : an element to specify the region within a mixer video 1066 layout where a media stream is displayed (Section 4.2.2.2.1). The 1067 element is optional. 1069 : an element to configure priority associated with the 1070 stream in the conference mix (Section 4.2.2.2.2). The element is 1071 optional. 1073 If conferenceid is not specified or if the "media" attribute does not 1074 have the value of "video", then the MS ignores the and 1075 elements. 1077 For example, assume a user agent connection with multiple audio and 1078 video streams associated with the user and a separate web camera. In 1079 this case, the dialog could be started to record only the audio and 1080 video streams associated with the user: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1093 Using the element, the dialog can be started on a conference 1094 mixer so that the video output from the dialog is directed to a 1095 specific region within a video layout. For example: 1097 1098 1099 1100 1101 1102 1103 1104 1105 r1 1106 1107 1109 4.2.2.2.1. 1111 The element is used to specify the region within a video 1112 layout where a video media stream is displayed. 1114 The element has no attributes and its content model 1115 specifies the name of the region layout. 1117 If the region name is invalid, then the MS reports a 416 status code 1118 (Section 4.5) in the response to the request element containing the 1119 element. 1121 4.2.2.2.2. 1123 The element is used to explicitly specify the priority of 1124 the dialog for presentation in a conference mix. 1126 The element has no attributes and its content model 1127 specifies a positive integer (see Section 4.6.5). The lower the 1128 value, the higher the priority. 1130 4.2.3. 1132 A dialog can be terminated by sending a request 1133 element to the MS. 1135 The element has the following attributes: 1137 dialogid: string identifying the dialog to terminate. If the 1138 specified dialog identifier is invalid, the MS sends a response 1139 with a 405 status code (Section 4.5). The attribute is mandatory. 1141 immediate: indicates whether a dialog in the STARTED state is to be 1142 terminated immediately or not (in other states, termination is 1143 always immediate). A valid value is a boolean (see 1144 Section 4.6.1). A value of true indicates that the dialog is 1145 terminated immediately and the MS MUST send a dialogexit 1146 notification (Section 4.2.5.1) without report information. A 1147 value of false indicates that the dialog terminates after the 1148 current iteration and the MS MUST send a dialogexit notification 1149 with report information. The attribute is optional. The default 1150 value is false. 1152 The MS MUST reply to request with a 1153 element (Section 4.2.4), reporting whether the dialog was terminated 1154 successful or not. 1156 For example, immediately terminating a STARTED dialog with dialogid 1157 "d4": 1159 1160 1161 1163 If the dialog is terminated successfully, then the response to the 1164 dialogterminate request would be: 1166 1167 1168 1170 4.2.4. 1172 Responses to dialog management requests are specified with a 1173 element. 1175 The element has following attributes: 1177 status: numeric code indicating the response status. Valid values 1178 are defined in Section 4.5. The attribute is mandatory. 1180 reason: string specifying a reason for the response status. The 1181 attribute is optional. There is no default value. 1183 dialogid: string identifying the dialog. If the request specifies a 1184 dialogid, then that value is used. Otherwise, with 1185 and requests, the dialogid generated 1186 by the MS is used. If there is no available dialogid because the 1187 request is syntactically invalid (e.g. a request 1188 with no dialogid attribute specified), then the value is the empty 1189 string. The attribute is mandatory. 1191 connectionid: string identifying the SIP dialog connection 1192 associated with the dialog (see Section 17.1 of 1193 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1194 optional. There is no default value. 1196 conferenceid: string identifying the conference associated with the 1197 dialog (see Section 17.1 of 1198 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1199 optional. There is no default value. 1201 For example, a response when a dialog was prepared successfully: 1203 1204 1205 1207 The response if dialog preparation failed due to an unsupported 1208 dialog language: 1210 1211 1213 1215 In this example a request does not specify a 1216 dialogid: 1218 1219 1220 1222 The response status indicates a 400 (Syntax error) status code and 1223 dialogid attribute has an empty string value: 1225 1226 1228 1230 4.2.5. 1232 When a dialog generates a notification event, the MS sends the event 1233 using an element. 1235 The element has the following attributes: 1237 dialogid: string identifying the dialog which generated the event. 1238 The attribute is mandatory. 1240 The element has the following child elements, only one of 1241 which can occur: 1243 : indicates that the dialog has exited 1244 (Section 4.2.5.1). 1246 : indicates that a DTMF key press occurred 1247 (Section 4.2.5.2). 1249 4.2.5.1. 1251 The event indicates that a prepared or active dialog has 1252 exited because it is complete, has been terminated, or because an 1253 error occurred during execution (for example, a media resource cannot 1254 be played). This event MUST be sent by the MS when the dialog exits. 1256 The element has the following attributes: 1258 status: a status code indicating the status of the dialog when it 1259 exits. A valid value is a non-negative integer (see 1260 Section 4.6.4). The MS MUST support the following values: 1262 0 indicates the dialog has been terminated by a 1263 request. 1265 1 indicates successful completion of the dialog. 1267 2 indicates the dialog terminated because the connection or 1268 conference associated with the dialog has terminated. 1270 3 indicates the dialog terminated due to exceeding its maximum 1271 duration. 1273 4 indicates the dialog terminated due to an execution error. 1275 5 Reserved for future use. 1277 6 Reserved for future use. 1279 7 Reserved for future use. 1281 8 Reserved for future use. 1283 9 Reserved for future use. 1285 The MS MAY define other values. The AS MUST treat any status code 1286 it does not recognize as being equivalent to 4 (dialog execution 1287 error). The attribute is mandatory. 1289 reason: a textual description which the MS SHOULD use to provide a 1290 reason for the status code; e.g. details about an error. A valid 1291 value is a string (see Section 4.6.6). The attribute is optional. 1292 There is no default value. 1294 The element has the following sequence of child 1295 elements: 1297 : report information (Section 4.3.2.1) about the prompt 1298 execution in an IVR . The element is optional. 1300 : reports information (Section 4.3.2.2) about the 1301 control execution in an IVR . The element is optional. 1303 : reports information (Section 4.3.2.3) about the 1304 collect execution in an IVR . The element is optional. 1306 : reports information (Section 4.3.2.4) about the record 1307 execution in an IVR . The element is optional. 1309 : reports exit parameters (Section 4.2.6) for a dialog 1310 language defined outside this specification. The element is 1311 optional. 1313 For example, an active exits normally the MS sends a 1314 dialogexit reporting information: 1316 1317 1318 1319 1320 1321 1322 1324 4.2.5.2. 1326 The element provide a notification of DTMF input 1327 received during the active dialog as requested by a 1328 subscription (Section 4.2.2.1). 1330 The element has the following attributes: 1332 matchmode: indicates the matching mode specified in the subscription 1333 request. Valid values are: "all" - all DTMF key presses notified 1334 individually; "collect" - only DTMF input matched by the collect 1335 operation notified; and "control" - only DTMF input matched by the 1336 control operation notified. The attribute is optional. The 1337 default value is "all". 1339 dtmf: DTMF key presses received according to the matchmode. A valid 1340 value is a DTMF string (see Section 4.6.3) with no space between 1341 characters. The attribute is mandatory. 1343 timestamp: indicates the time (on the MS) at which the last key 1344 press occurred according to the matchmode. A valid value is a 1345 dateTime expression (Section 4.6.12). The attribute is mandatory. 1347 For example, a notification of DTMF input matched during the collect 1348 operation: 1350 1351 1352 1354 /event> 1355 1357 4.2.6. 1359 The element is a container for elements 1360 (Section 4.2.6.1). 1362 The element has no attributes, but the following child 1363 elements are defined (0 or more): 1365 : specifies a parameter name and value (Section 4.2.6.1). 1367 For example, usage with a dialog language defined outside this 1368 specification to send additional parameters into the dialog: 1370 1371 1373 1374 playannouncement 1375 nfs://nas01/media1.3gp 1376 nfs://nas01/media2.3gp 1377 1378 1379 1381 4.2.6.1. 1383 The element describes a parameter name and value. 1385 The element has the following attributes: 1387 name: a string indicating the name of the parameter. The attribute 1388 is mandatory. 1390 type: specifies a type indicating how the inline value of the 1391 parameter is to be interpreted. A valid value is a MIME media 1392 type (see Section 4.6.10). The attribute is optional. The 1393 default value is "text/plain". 1395 The element content model is the value of the parameter. 1396 Note that a value which contains XML characters (e.g. "<") needs to 1397 be escaped following standard XML conventions. 1399 For example, usage with a dialog language defined outside this 1400 specification to receive parameters from the dialog when it exits: 1402 1403 1404 1405 1406 recording 1407 1409 1413 1414 1415 1416 1417 1419 4.3. IVR Dialog Elements 1421 This section describes the IVR dialog language defined as part of 1422 this specification. The MS MUST support this dialog language. 1424 The element is an execution container for operations of 1425 playing prompts (Section 4.3.1.1), runtime controls 1426 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1427 user input (Section 4.3.1.4. Results of the dialog execution 1428 (Section 4.3.2) are reported in a dialogexit notification event. 1430 Using these elements, three common dialog models are supported: 1432 playannouncements: only a element is specified in the 1433 container. The prompt media resources are played in sequence. 1435 promptandcollect: a element is specified and, optionally, 1436 a element. If a element is specified and 1437 bargein is enabled, playing of the prompt is terminated when 1438 bargein occurs, and DTMF collection is initiated; otherwise, the 1439 prompt is played to completion before DTMF collection is 1440 initiated. If no prompt element is specified, DTMF collection is 1441 initiated immediately. 1443 promptandrecord: a element is specified and, optionally, a 1444 element. If a element is specified and bargein 1445 is enabled, playing of the prompt is terminated when bargein 1446 occurs, and recording is initiated; otherwise, the prompt is 1447 played to completion before recording is initiated. If no prompt 1448 element is specified, recording is initiated immediately. 1450 In addition, this dialog language supports runtime ('VCR') controls 1451 enabling a user to control prompt playback using DTMF. 1453 Each of the core elements - , , and 1454 - are specified so that their execution and reporting is 1455 largely self-contained. This facilitates their re-use in other 1456 dialog container elements. Note that DTMF and bargein behavior 1457 affects multiple elements and is addressed in the relevant element 1458 definitions. 1460 Execution results are reported in the notification event 1461 with child elements defined in Section 4.3.2. If the dialog 1462 terminated normally (i.e. not due to an error or to a 1463 request), then the MS MUST report the results for 1464 the operations specified in the dialog: 1466 : (see Section 4.3.2.1) with at least the 1467 termmode attribute specified. 1469 : (see Section 4.3.2.2) if any runtime 1470 controls are matched. 1472 : (see Section 4.3.2.3) with the dtmf and 1473 termmode attributes specified. 1475 : (see Section 4.3.2.4) with at least the 1476 termmode attribute and one element specified. 1478 The media format requirements for IVR dialogs are undefined. This 1479 package is agnostic to the media types and codecs for media resources 1480 and recording which need to be supported by an implementation. For 1481 example, a MS implementation might only support audio and in 1482 particular the 'audio/basic' codec for media playback and recording. 1483 However, when executing a dialog, if an MS encounters a media type or 1484 codec which it cannot process, the MS MUST stop further processing 1485 and report the error using the dialogexit notification. 1487 4.3.1. 1489 An IVR dialog to play prompts to the user, allow runtime controls, 1490 collect DTMF or record input. The dialog is specified using a 1491 element. 1493 A element has the following attributes: 1495 repeatCount: number of times the dialog is to be executed. A valid 1496 value is a non-negative integer (see Section 4.6.4). A value of 0 1497 indicates that the dialog is repeated until halted by other means. 1498 The attribute is optional. The default value is 1. 1500 repeatDur: maximum duration for dialog execution. A valid value is 1501 a Time Designation (see Section 4.6.7). If no value is specified, 1502 then there is no limit on the duration of the dialog. The 1503 attribute is optional. There is no default value. 1505 The repeatDur attribute takes priority over the repeatCount attribute 1506 in determining maximum duration of the dialog. See 'repeatCount' and 1507 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1508 information. In the situation where a dialog is repeated more than 1509 once, only the results of operations in the last dialog iteration are 1510 reported. 1512 The element has the following sequence of child elements (at 1513 least one, any order): 1515 : defines media resources to play in sequence (see 1516 Section 4.3.1.1). The element is optional. 1518 : defines how DTMF is used for runtime controls (see 1519 Section 4.3.1.2). The element is optional. 1521 : defines how DTMF is collected (see Section 4.3.1.3). The 1522 element is optional. 1524 : defines how recording takes place (see Section 4.3.1.4). 1525 The element is optional. 1527 Although the behavior when both and elements are 1528 specified in a request is not defined in this control package, the MS 1529 MAY support this configuration. If the MS does not support this 1530 configuration, the MS sends a with a 433 status code. 1532 The MS has the following execution model for the IVR dialog after 1533 initialization (initialization errors are reported by the MS in the 1534 response): 1536 1. If an error occurs during execution, then the MS terminates the 1537 dialog and reports the error in the event by setting 1538 the status attribute (see Section 4.3.2). Details about the 1539 error are specified in the reason attribute. 1541 2. The MS initializes a counter to 0. 1543 3. The MS starts a duration timer for the value of the repeatDur 1544 attribute. If the timer expires before the dialog is complete, 1545 then the MS terminates the dialog and sends a dialogexit whose 1546 status attribute is set to 3 (see Section 4.2.5.1). The MS MAY 1547 report information in the dialogexit gathered in the last 1548 execution cycle (if any). 1550 4. The MS initiates a dialog execution cycle. Each cycle executes 1551 the operations associated with the child elements of the dialog. 1552 If a element is specified, then execute the element's 1553 prompt playing operation and activate any controls (if the 1554 element is specified). If no is specified or 1555 when a specified terminates, then start the collect 1556 operation or the record operation if the or 1557 elements respectively are specified. If subscriptions are 1558 specified for the dialog, then the MS sends a notification event 1559 when the specified event occurs. If execution of a child element 1560 results in an error, the MS terminates dialog execution (and 1561 stops other child element operations) and the MS sends a 1562 dialogexit status event, reporting any information gathered. 1564 5. If the dialog execution cycle completes successfully, then the MS 1565 increments the counter by one. If the value of the repeatCount 1566 attribute is greater than zero and the counter is equal to the 1567 value of the repeatCount attribute, then the MS terminates dialog 1568 execution and the sends a dialogexit (with a status of 1) 1569 reporting operation information collected in the last dialog 1570 execution cycle only. Otherwise, another dialog execution cycle 1571 is initiated. 1573 4.3.1.1. 1575 The element specifies a sequence of media resources to play 1576 back in document order. 1578 A element has the following attributes: 1580 xml:base: A string declaring the base URI from which relative URIs 1581 in child elements are resolved prior to fetching. A valid value 1582 is a URI (see Section 4.6.9). The attribute is optional. There 1583 is no default value. 1585 bargein: Indicates whether user input stops prompt playback unless 1586 the input is associated with a specified runtime 1587 operation (input matching control operations never interrupts 1588 prompt playback). A valid value is a boolean (see Section 4.6.1). 1589 A value of true indicates that bargein is permitted and prompt 1590 playback is stopped. A value of false indicates that bargein is 1591 not permitted: user input does not terminate prompt playback. The 1592 attribute is optional. The default value is true. 1594 The element has the following child elements (at least one, 1595 any order, multiple occurrences of elements permitted): 1597 : specifies a media resource (see Section 4.3.1.5) to play. 1598 The element is optional. 1600 : specifies a variable media announcement (see 1601 Section 4.3.1.1.1) to play. The element is optional. 1603 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1604 play. The element is optional. 1606 : specifies media resources to play in parallel (see 1607 Section 4.3.1.1.3). The element is optional. 1609 If the MS does not support the configuration required for prompt 1610 playback to the output media streams and a more specific error code 1611 is not defined for its child elements, the MS sends a with 1612 a 429 status code (Section 4.5). The MS MAY support transcoding 1613 between the media resource format and the output stream format. 1615 The MS has the following execution model for prompt playing after 1616 initialization: 1618 1. The MS initiates prompt playback playing its child elements 1619 (, , and ) one after another in 1620 document order. 1622 2. If any error (including fetching and rendering errors) occurs 1623 during prompt execution, then the MS terminates playback and 1624 reports its error status to the dialog container (see 1625 Section 4.3) with a (see Section 4.3.2.1) where the 1626 termmode attribute is set to stopped and any additional 1627 information is set. 1629 3. If DTMF input is received and the value of the bargein attribute 1630 is true, then the MS terminates prompt playback and reports its 1631 execution status to the dialog container (see Section 4.3) with a 1632 (see Section 4.3.2.1) where the termmode attribute 1633 is set to bargein and any additional information is set. 1635 4. If prompt playback is stopped by the dialog container, then the 1636 MS reports its execution status to the dialog container (see 1637 Section 4.3) with a (see Section 4.3.2.1) where the 1638 termmode attribute is set to stopped and any additional 1639 information is set. 1641 5. If prompt playback completes successfully, then the MS reports 1642 its execution status to the dialog container (see Section 4.3) 1643 with a (see Section 4.3.2.1) where the termmode 1644 attribute is set to completed and any additional information is 1645 set. 1647 4.3.1.1.1. 1649 The element specifies variable announcements using 1650 predefined media resources. Each variable has at least a type (e.g. 1651 date) and a value (e.g. 2008-02-25). The value is rendered according 1652 to the variable type (e.g. 25th February 2008) as well as other 1653 defined attributes. The precise mechanism for generating variable 1654 announcements (including the location of associated media resources) 1655 is implementation specific. 1657 A element has the following attributes: 1659 value: specifies the string to be rendered. A valid value is a 1660 string (see Section 4.6.6). The attribute is mandatory. 1662 type: specifies the type to use for rendering. A valid value is a 1663 string (see Section 4.6.6). The attribute is mandatory. 1665 format: specifies format information to use in conjunction with the 1666 type for the rendering. A valid value is a string (see 1667 Section 4.6.6). The attribute is optional. There is no default 1668 value. 1670 gender: specifies the gender to use when rendering the variable. 1671 Valid values are "male" or "female". The attribute is optional. 1672 There is no default value. 1674 xml:lang: specifies the language to use when rendering the variable. 1675 A valid value is a language identifier (see Section 4.6.11). The 1676 attribute is optional. There is no default value. 1678 The element has no children. 1680 This package is agnostic to which values, types and 1681 formats are supported by an implementation. If a element 1682 configuration specified in a request is not supported by the MS, the 1683 MS sends a with a 425 status code (Section 4.5). 1685 For example, the MS could support type/format combinations 1686 such as: 1688 type=date Supported formats: "mdy" (month day year), "ymd" (year 1689 month day), "dym" (day month year), "dm" (day month). The value 1690 attribute has the format YYYY-MM-DD (4 digit year, 2 digit month, 1691 2 digit day). 1693 type=time Supported formats: "t12" (12 hour format with am/pm), 1694 "t24" (24 hour format). The value attribute has the format HH:MM 1695 (2 digit hours, 2 digit minutes). 1697 type=digits Supported formats: "gen" (general digit string), "crn" 1698 (cardinal), "ord" (ordinal). The value attribute has the format 1699 of "D+" (one or more digits). 1701 This specification is agnostic to the type and codec of media 1702 resources into which variable are rendered as well as the rendering 1703 mechanism itself. For example, an MS implementation supporting audio 1704 rendering could map the into one or more audio media 1705 resources. 1707 Depending on the specific implementation of the rendering 1708 on the MS, execution of this element can be seen as conversion of a 1709 into a list of elements. For example, 1711 1714 could be transformed into audio saying "twenty-fifth of February two 1715 thousand and eight" using a list of resources: 1717 1718 1719 1720 1721 1722 1724 4.3.1.1.2. 1726 The element specifies a sequence of DTMF tones for output. 1728 DTMF tones could be generated using resources where the 1729 output is transported as RTP audio packets. However, 1730 resources are not sufficient for cases where DTMF tones are to be 1731 transported as DTMF RTP ([RFC4733]) or in event packages. 1733 A element has the following attributes: 1735 digits: specifies the DTMF sequence to output. A valid value is a 1736 DTMF string (see Section 4.6.3). The attribute is mandatory. 1738 level: used to define the power level for which the DTMF tones will 1739 be generated. Values are expressed in dBm0. A valid value is an 1740 integer in the range of 0 to -96 (dBm0). Larger negative values 1741 express lower power levels. Note that values lower than -55 dBm0 1742 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1743 The attribute is optional. The default value is -6 (dBm0). 1745 duration: specifies the duration for which each DTMF tone is 1746 generated. A valid value is a time designation (see 1747 Section 4.6.7). The MS MAY round the value if it only supports 1748 discrete durations. The attribute is optional. The default value 1749 is 100ms. 1751 interval: specifies the duration of a silence interval following 1752 each generated DTMF tone. A valid value is a time designation 1753 (see Section 4.6.7). The MS MAY round the value if it only 1754 supports discrete durations. The attribute is optional. The 1755 default value is 100ms. 1757 The element has no children. 1759 If a element configuration is not supported, the MS sends a 1760 with a 426 status code (Section 4.5). 1762 4.3.1.1.3. 1764 The element allows media resources to be played in parallel. 1765 Each of its child elements specify a media resource (or a sequence of 1766 media resources using the element). When playback of the 1767 element is initiated, the MS begins playback of all its child 1768 elements at the same time. This element is modeled after the 1769 element in SMIL ([W3C.REC-SMIL2-20051213]). 1771 The element has the following attributes: 1773 endsync: indicates when playback of the element is complete. Valid 1774 values are: "first" - indicates that the element is complete when 1775 any child element reports that it is complete; "last" - indicates 1776 it is complete when every child elements are complete. The 1777 attribute is optional. The default value is "last". 1779 If the value is "first", then playback of other child element is 1780 stopped when one child element reports it is complete. 1782 The element has the following child elements (at least one, any 1783 order, multiple occurrences of each element permitted): 1785 : specifies a sequence of media resources to play in a parallel 1786 with other child elements (see Section 4.3.1.1.3.1). The 1787 element is optional. 1789 : specifies a media resource (see Section 4.3.1.5) to play. 1790 The element is optional. 1792 : specifies a variable media announcement (see 1793 Section 4.3.1.1.1) to play. The element is optional. 1795 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1796 play. The element is optional. 1798 If a element configuration is not supported, the MS sends a 1799 with a 435 status code (Section 4.5). 1801 Runtime s (Section 4.3.1.2) apply to each child element 1802 playing parallel. For example, pause and resume controls cause all 1803 child elements to be paused and resumed respectively. 1805 If the element is stopped by the prompt container (e.g. bargein 1806 or dialog termination), then playback of all child elements is 1807 stopped. The playback duration (Section 4.3.2.1) reported for the 1808 element is the duration of parallel playback, not the 1809 cumulative duration of each child element played in parallel. 1811 For example, a request to playback audio and video media in parallel: 1813 1814 1815 1816 1817 1818 1820 1823 1824 1825 1826 1828 When the element is executed, it begins playback of its 1829 child element in document order sequence. In this case, there is 1830 only one child element, a element itself containing audio and 1831 video child element. Consequently playback of both audio and 1832 video media resources is initiated at the same time. Since the 1833 endsync attribute is not specified, the default value "last" applies. 1834 The element playback is complete when the media resource with 1835 the longest duration is complete. 1837 4.3.1.1.3.1. 1839 The element specifies media resources to be played back in 1840 sequence. This allows a sequence of media resources to be played at 1841 the same time as other children of a element are played in 1842 parallel. For example, a sequence of audio resources while a video 1843 resource is played in parallel. This element is modeled after the 1844 element in SMIL ([W3C.REC-SMIL2-20051213]). 1846 The element has no attributes. 1848 The element has the following child elements (at least one, any 1849 order, multiple occurrences of each element permitted): 1851 : specifies a media resource (see Section 4.3.1.5) to play. 1852 The element is optional. 1854 : specifies a variable media announcement (see 1855 Section 4.3.1.1.1) to play. The element is optional. 1857 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1858 play. The element is optional. 1860 Playback of a element is complete when all child elements in 1861 the sequence are complete. If the element is stopped by the 1862 container, then playback of the current child element is 1863 stopped (remaining child elements in the sequence are not played). 1865 For example, a request to play a sequence of audio resources in 1866 parallel with a video media: 1868 1869 1870 1871 1872 1873 1874 1876 1878 1880 1882 1883 1886 1887 1888 1889 1891 When the element is executed, it begins playback of the 1892 element containing a element and a video element. 1893 The element itself contains a sequence of audio 1894 elements. Consequently playback of the video media resource is 1895 initiated at the same time as playback of the sequence of the audio 1896 media resources is initiated. Each audio resource is played back 1897 after the previous one completes. Since the endsync attribute is set 1898 to "first", the element playback is complete when either all 1899 the audio resources in have been played to completion or the 1900 video is complete, whichever occurs first. 1902 4.3.1.2. 1904 The element defines how DTMF input is mapped to runtime 1905 controls, including prompt playback controls. 1907 DTMF input matching these controls MUST NOT cause prompt playback to 1908 interrupted (i.e. no prompt bargein), but causes the appropriate 1909 operation to be applied; for examples, speeding up prompt playback. 1911 DTMF input matching these controls has priority over input 1912 for the duration of prompt playback. If incoming DTMF matches a 1913 specified runtime control, then the DTMF is not available to the 1914 operation, including its digit buffer. Once prompt 1915 playback is complete, runtime controls are no longer active. 1917 The element has the following attributes: 1919 gotostartkey: maps a DTMF key to skip directly to the start of the 1920 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1921 The attribute is optional. There is no default value. 1923 gotoendkey: maps a DTMF key to skip directly to the end of the 1924 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1925 The attribute is optional. There is no default value. 1927 skipinterval: indicates how far a MS skips backwards or forwards 1928 through prompt playback when the rewind (rwkey) of fast forward 1929 key (ffkey) is pressed. A valid value is a Time Designation (see 1930 Section 4.6.7). The attribute is optional. The default value is 1931 6s. 1933 ffkey: maps a DTMF key to a fast forward operation equal to the 1934 value of 'skipinterval'. A valid value is a DTMF Character (see 1935 Section 4.6.2). The attribute is optional. There is no default 1936 value. 1938 rwkey: maps a DTMF key to a rewind operation equal to the value of 1939 'skipinterval'. A valid value is a DTMF Character (see 1940 Section 4.6.2). The attribute is optional. There is no default 1941 value. 1943 pauseinterval: indicates how long a MS pauses prompt playback when 1944 the pausekey is pressed. A valid value is a Time Designation (see 1945 Section 4.6.7). The attribute is optional. The default value is 1946 10s. 1948 pausekey: maps a DTMF key to a pause operation equal to the value of 1949 'pauseinterval'. A valid value is a DTMF Character (see 1950 Section 4.6.2). The attribute is optional. There is no default 1951 value. 1953 resumekey: maps a DTMF key to a resume operation. A valid value is 1954 a DTMF Character (see Section 4.6.2). The attribute is optional. 1955 There is no default value. 1957 volumeinterval: indicates the increase or decrease in playback 1958 volume (relative to the current volume) when the volupkey or 1959 voldnkey is pressed. A valid value is a percentage (see 1960 Section 4.6.8). The attribute is optional. The default value is 1961 10%. 1963 volupkey: maps a DTMF key to a volume increase operation equal to 1964 the value of 'volumeinterval'. A valid value is a DTMF Character 1965 (see Section 4.6.2). The attribute is optional. There is no 1966 default value. 1968 voldnkey: maps a DTMF key to a volume decrease operation equal to 1969 the value of 'volumeinterval'. A valid value is a DTMF Character 1970 (see Section 4.6.2). The attribute is optional. There is no 1971 default value. 1973 speedinterval: indicates the increase or decrease in playback speed 1974 (relative to the current speed) when the speedupkey or speeddnkey 1975 is pressed. A valid value is a percentage (see Section 4.6.8). 1976 The attribute is optional. The default value is 10%. 1978 speedupkey: maps a DTMF key to a speed increase operation equal to 1979 the value of the speedinterval attribute. A valid value is a DTMF 1980 Character (see Section 4.6.2). The attribute is optional. There 1981 is no default value. 1983 speeddnkey: maps a DTMF key to a speed decrease operation equal to 1984 the value of the speedinterval attribute. A valid value is a DTMF 1985 Character (see Section 4.6.2). The attribute is optional. There 1986 is no default value. 1988 external: allows one or more DTMF keys to be declared as external 1989 controls (for example: video camera controls); the MS can send 1990 notifications when a matching key is activated using 1991 (Section 4.2.5.2). A valid value is a DTMF String (see 1992 Section 4.6.3). The attribute is optional. There is no default 1993 value. 1995 If the same DTMF is specified in more than one DTMF key control 1996 attribute - except the pausekey and resumekey attributes - the MS 1997 sends a with a 413 status code (Section 4.5). 1999 The MS has the following execution model for runtime control after 2000 initialization: 2002 1. If an error occurs during execution, then the MS terminates 2003 runtime control and the error is reported to the dialog 2004 container. The MS MAY report controls executed successfully 2005 before the error in (see Section 4.3.2.2). 2007 2. Runtime controls are active only during prompt playback (if no 2008 element is specified, then runtime controls are 2009 ignored). If DTMF input matches any specified keys (for example 2010 the ffkey), then the MS applies the appropriate operation 2011 immediately. If a seek operation (ffkey, rwkey) attempts to go 2012 beyond the beginning or end of the prompt queue, then the MS 2013 automatically truncates it to the prompt queue beginning or end 2014 respectively. If a volume operation (voldnkey, volupkey) 2015 attempts to go beyond the minimum or maximum volume supported by 2016 the platform, then the MS automatically limits the operation to 2017 minimum or maximum supported volume respectively. If a speed 2018 operation (speeddnkey, speedupkey) attempts to go beyond the 2019 minimum or maximum playback speed supported by the platform, then 2020 the MS automatically limits the operation to minimum or maximum 2021 supported speed respectively. If the pause operation attempts to 2022 pause output when it is already paused, then the operation is 2023 ignored. If the resume operation attempts to resume when the 2024 prompts are not paused, then the operation is ignored. If a 2025 seek, volume or speed operation is applied when output is paused, 2026 then the MS also resumes output automatically. 2028 3. If DTMF control subscription has been specified for the dialog, 2029 then each DTMF match of a control operation is reported in a 2030 notification event (Section 4.2.5.2). 2032 4. When the dialog exits, all control matches are reported in a 2033 element (Section 4.3.2.2). 2035 4.3.1.3. 2037 The element defines how DTMF input is collected. 2039 The element has the following attributes: 2041 cleardigitbuffer: indicates whether the digit buffer is to be 2042 cleared. A valid value is a boolean (see Section 4.6.1). A value 2043 of true indicates that the digit buffer is to be cleared. A value 2044 of false indicates that the digit buffer is not to be cleared. 2045 The attribute is optional. The default value is true. 2047 timeout: indicates the maximum time to wait for user input to begin. 2048 A valid value is a Time Designation (see Section 4.6.7). The 2049 attribute is optional. The default value is 5s. 2051 interdigittimeout: indicates inter-digit timeout value to use when 2052 recognizing DTMF input. A valid value is a Time Designation (see 2053 Section 4.6.7). The attribute is optional. The default value is 2054 2s. 2056 termtimeout: indicates the terminating timeout value to use when 2057 recognizing DTMF input. A valid value is a Time Designation (see 2058 Section 4.6.7). The attribute is optional. The default value is 2059 0s (no delay). 2061 escapekey: specifies a DTMF key that indicates the DTMF collection 2062 is to be re-initiated. A valid value is a DTMF Character (see 2063 Section 4.6.2). The attribute is optional. There is no default 2064 value. 2066 termchar: specifies a DTMF character for terminating DTMF input 2067 collection using the internal grammar. A valid value is a DTMF 2068 character (see Section 4.6.2). To disable termination by a 2069 conventional DTMF character, set the parameter to an 2070 unconventional character like 'A'. The attribute is optional. 2071 The default value is '#'. 2073 maxdigits: The maximum number of digits to collect using an internal 2074 digits (0-9 only) grammar. A valid value is a positive integer 2075 (see Section 4.6.5). The attribute is optional. The default 2076 value is 5. 2078 The element has the following child elements: 2080 : indicates a custom grammar format (see 2081 Section 4.3.1.3.1). The element is optional. 2083 The custom grammar takes priority over the internal grammar. If a 2084 element is specified, the MS MUST use it for DTMF 2085 collection. 2087 The MS has the following execution model for DTMF collection after 2088 initialization: 2090 1. The DTMF collection buffer MUST NOT receive DTMF input matching 2091 operations (see Section 4.3.1.2). 2093 2. If an error occurs during execution, then the MS terminates 2094 collection and reports the error to the dialog container (see 2095 Section 4.3). The MS MAY report DTMF collected before the error 2096 in (see Section 4.3.2.3). 2098 3. The MS clears the digit buffer if the value of the 2099 cleardigitbuffer attribute is true. 2101 4. The MS activates a timer with the duration of the value of the 2102 timeout attribute. If the timer expires before DTMF input 2103 collection begins, then collection execution terminates, the 2104 (see Section 4.3.2.3) has the termmode attribute 2105 set to noinput and the execution status reported to the dialog 2106 container. 2108 5. If DTMF collect input matches the value of the escapekey 2109 attribute, then the MS cancels the timer and re-initializes DTMF 2110 collection. 2112 6. Other DTMF collect input is matched to the grammar. Valid DTMF 2113 patterns are either a simple digit string where the maximum 2114 length is determined by the maxdigits attribute and which can be 2115 terminated by the character in the termchar attribute; or a 2116 custom DTMF grammar specified with the element. The 2117 attributes interdigittimeout and termtimeout control interdigit 2118 timeout and the terminating timeout respectively. 2120 7. If the collect input completely matches the grammar, the timer is 2121 canceled, the MS terminates collection execution and reports 2122 execution status to the dialog container with (see 2123 Section 4.3.2.3) where the termmode attribute set to match. 2125 8. If the collect input does not match the grammar, the MS cancels 2126 the timer, terminates collection execution and reports execution 2127 status to the dialog container with a (see 2128 Section 4.3.2.3) where the termmode attribute set to nomatch. 2130 4.3.1.3.1. 2132 The element allows a custom grammar, inline or external, to 2133 be specified. Custom grammars permit the full range of DTMF 2134 characters including '*' and '#' to be specified for DTMF pattern 2135 matching. 2137 The element has the following attributes: 2139 src: specifies the location of an external grammar document. A 2140 valid value is a URI (see Section 4.6.9). If the URI scheme is 2141 unsupported, the MS sends a with a 420 status code 2142 (Section 4.5). If the resource cannot be retrieved within the 2143 timeout interval, the MS sends a with a 409 status 2144 code. If the grammar format is not supported, the MS sends a 2145 with a 424 status code. The attribute is optional. 2146 There is no default value. 2148 type: identifies the preferred type of the grammar document 2149 identified by the src attribute. A valid value is a MIME media 2150 type (see Section 4.6.10). If the URI scheme used in the src 2151 attribute defines a mechanism for establishing the authoratitive 2152 MIME media type of the media resource, the value returned by that 2153 mechanism takes precedence over this attribute. The attribute is 2154 optional. There is no default value. 2156 fetchtimeout: the maximum interval to wait when fetching a grammar 2157 resource. A valid value is a Time Designation (see 2158 Section 4.6.7). The attribute is optional. The default value is 2159 30s. 2161 The element allows inline grammars to be specified. XML 2162 grammar formats MUST use a namespace other than the one used in this 2163 specification. Non-XML grammar formats MAY use a CDATA section. 2165 The MS MUST support the [SRGS] XML grammar format ("application/ 2166 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 2167 formats. If the grammar format is not supported by the MS, then the 2168 MS sends a with a 424 status code (Section 4.5). 2170 For example, the following fragment shows DTMF collection with an 2171 inline SRGS grammar: 2173 2175 2176 2178 2179 2180 0 2181 1 2182 2 2183 3 2184 4 2185 5 2186 6 2187 7 2188 8 2189 9 2190 2191 2193 2194 2195 2196 2197 2198 # 2199 * 9 2200 2201 2203 2204 2205 2207 The same grammar could also be referenced externally (and take 2208 advantage of HTTP caching): 2210 2211 2213 2215 4.3.1.4. 2217 The element specifies how media input is recorded. 2219 The element has the following attributes: 2221 timeout: indicates the time to wait for user input to begin. A 2222 valid value is a Time Designation (see Section 4.6.7). The 2223 attribute is optional. The default value is 5s. 2225 vadinitial: Control whether voice activity detection (VAD) is used 2226 to initiate the recording operation. A valid value is a boolean 2227 (see Section 4.6.1). A value of true indicates the MS MUST 2228 initiate recording if the VAD detects voice on the configured 2229 inbound audio streams. A value of false indicates that the MS 2230 MUST NOT initiate recording using VAD. The attribute is optional. 2231 The default value is false. 2233 vadfinal: Control whether voice activity detection (VAD) is used to 2234 terminate the recording operation. A valid value is a boolean 2235 (see Section 4.6.1). A value of true indicates the MS MUST 2236 terminate recording if the VAD detects a period of silence (whose 2237 duration is specified by the finalsilence attribute) on configured 2238 inbound audio streams. A value of false indicates that the MS 2239 MUST NOT terminate recording using VAD. The attribute is 2240 optional. The default value is false. 2242 dtmfterm: Indicates whether the recording operation is terminated by 2243 DTMF input. A valid value is a boolean (see Section 4.6.1). A 2244 value of true indicates that recording is terminated by DTMF 2245 input. A value of false indicates that recording is not 2246 terminated by DTMF input. The attribute is optional. The default 2247 value is true. 2249 maxtime: indicates The maximum duration of the recording. A valid 2250 value is a Time Designation (see Section 4.6.7). The attribute is 2251 optional. The default value is 15s. 2253 beep: indicates whether a 'beep' is to be played immediately prior 2254 to initiation of the recording operation. A valid value is a 2255 boolean (see Section 4.6.1). The attribute is optional. The 2256 default value is false. 2258 finalsilence: indicates the interval of silence that indicates the 2259 end of voice input. This interval is not part of the recording 2260 itself. This parameter is ignored if the vadfinal attribute has 2261 the value false. A valid value is a Time Designation (see 2262 Section 4.6.7). The attribute is optional. The default value is 2263 5s. 2265 append: indicates whether recorded data is appended or not to a 2266 recording location if a resource already exists. A valid value is 2267 a boolean (see Section 4.6.1). A value of true indicates that 2268 recorded data is appended to the existing resource at a recording 2269 location. A value of false indicates that recorded data is to 2270 overwrite the existing resource. The attribute is optional. The 2271 default value is false. 2273 If either the vadinitial or vadfinal attribute is set to true and the 2274 MS does not support VAD, the MS sends a with a 434 status 2275 code (Section 4.5). 2277 The element has the following child element (0 or more 2278 occurrences): 2280 : specifies the location and type of the media resource for 2281 uploading recorded data (see Section 4.3.1.5). The MS uploads 2282 recorded data to this resource as soon as possible after recording 2283 is complete. The element is optional. 2285 If multiple elements are specified, then media input is to be 2286 recorded in parallel to multiple resource locations. 2288 If no child element is specified, the MS MUST provide a 2289 recording location where the recording format is implementation- 2290 specific. The recording location and format are reported in 2291 (Section 4.3.2.4) when the dialog terminates. The 2292 recording MUST be available from this location until the connection 2293 or conference associated with the dialog on the MS terminates. 2295 If the MS does not support the configuration required for recording 2296 from the input media streams to one or more elements and a 2297 more specific error code is not defined for its child elements, the 2298 MS sends a with a 423 status code (Section 4.5). 2300 Note that an MS MAY support uploading recorded data to recording 2301 locations at the same time the recording operation takes place. Such 2302 implementations need to be aware of the requirements of certain 2303 recording formats (e.g. WAV) for metadata at the beginning of the 2304 uploaded file, that the finalsilence interval is not part of the 2305 recording and how these requirements interact with the URI scheme. 2307 The MS has the following execution model for recording after 2308 initialization: 2310 1. If an error occurs during execution (e.g. authentication or 2311 communication error when trying to upload to a recording 2312 location), then the MS terminates record execution and reports 2313 the error to the dialog container (see Section 4.3). The MS MAY 2314 report data recorded before the error in (see 2315 Section 4.3.2.4). 2317 2. If DTMF input (not matching a operation) is received 2318 during prompt playback and the prompt bargein attribute is set to 2319 true, then the MS activates the record execution. Otherwise, the 2320 MS activates it after the completion of prompt playback. 2322 3. If a beep attribute with the value of true is specified, then the 2323 MS plays a beep tone. 2325 4. The MS activates a timer with the duration of the value of the 2326 timeout attribute. If the timer expires before the recording 2327 operation begins, then the MS terminates the recording execution 2328 and reports the status to dialog container with (see 2329 Section 4.3.2.4) where the termmode attribute is set to noinput. 2331 5. Initiation of the recording operation depends on the value of the 2332 vadinitial attribute. If vadinitial has the value false, then 2333 the recording operation is initiated immediately. Otherwise, the 2334 recording operation is initiated when voice activity is detected. 2336 6. When the recording operation is initiated, a timer is started for 2337 the value of the maxtime attribute (maximum duration of the 2338 recording). If the timer expires before the recording operation 2339 is complete, then the MS terminates recording execution and 2340 reports the execution status to the dialog container with 2341 (see Section 4.3.2.4) where the termmode attribute 2342 set to maxtime. 2344 7. During the record operation input media streams are recording to 2345 a location and format specified in one or more child 2346 elements. If no child element is specified, the MS 2347 records input to an implementation-specific location and format. 2349 8. If the dtmfterm attribute has the value true and DTMF input is 2350 detected during the record operation, then the MS terminates 2351 recording and its status is reported to the dialog container with 2352 a (see Section 4.3.2.4) where the termmode attribute 2353 is set to dtmf. 2355 9. If vadfinal attribute has the value true, then the MS terminates 2356 the recording operation when a period of silence, with the 2357 duration specified by the value of the finalsilence attribute, is 2358 detected. This period of silence is not part of the final 2359 recording. The status is reported to the dialog container with a 2360 (see Section 4.3.2.4) where the termmode attribute 2361 is set to finalsilence. 2363 For example, a request to record audio and video input to separate 2364 locations: 2366 2367 2368 2369 2370 2372 2374 2375 2376 2377 2379 When the element is executed, it immediately begins 2380 recording of the audio and video (since vadinitial is false) where 2381 the destination locations are specified in the child 2382 elements. Recording is completed when the duration reaches 30s or 2383 the connection is terminated. 2385 4.3.1.5. 2387 The element specifies a media resource to playback from (see 2388 Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback 2389 case, the resource is retrieved and in the recording case, recording 2390 data is uploaded to the resource location. 2392 A element has the following attributes: 2394 loc: specifies the location of the media resource. A valid value is 2395 a URI (see Section 4.6.9) including authentication information if 2396 defined by the URI scheme (e.g. basic access authentication in 2397 HTTP). If the URI scheme is not supported by the MS, the MS sends 2398 a with a 420 status code (Section 4.5). If the 2399 resource is to be retrieved but the MS cannot retrieve it within 2400 the timeout interval, the MS sends a with a 409 status 2401 code. If the format of the media resource is not supported, the 2402 MS sends a with a 429 status code. The attribute is 2403 mandatory. 2405 type: specifies the type of the media resource indicated in the loc 2406 attribute. A valid value is a MIME media type (see 2407 Section 4.6.10) which, depending on its definition, can include 2408 additional parameters (e.g. [RFC4281]). If the URI scheme used 2409 in the loc attribute defines a mechanism for establishing the 2410 authoratitive MIME media type of the media resource, the value 2411 returned by that mechanism takes precedence over this attribute. 2412 If additional media parameters are specified, the MS MUST use them 2413 to determine media processing. For example, [RFC4281] defines a 2414 'codec' parameter for media types like video/3gpp which would 2415 determine which media streams are played or recorded. The 2416 attribute is optional. There is no default value. 2418 fetchtimeout: the maximum interval to wait when fetching a media 2419 resource. A valid value is a Time Designation (see 2420 Section 4.6.7). The attribute is optional. The default value is 2421 30s. 2423 soundLevel: playback soundLevel (volume) for the media resource. A 2424 valid value is a percentage (see Section 4.6.4). The value 2425 indicates increase or decrease relative to the original recorded 2426 volume of the media. A value of 100% (the default) plays the 2427 media at its recorded volume, a value of 200% will play the media 2428 twice recorded volume, 50% at half its recorded volume, a value of 2429 0% will play the media silently, and so on. See 'soundLevel' in 2430 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 2431 attribute is optional. The default value is 100%. 2433 clipBegin: offset from start of media resource to begin playback. A 2434 valid value is a Time Designation (see Section 4.6.7). The offset 2435 is measured in normal media playback time from the beginning of 2436 the media resource. If the clipBegin offset is after the end of 2437 media (or the clipEnd offset), no media is played. See 2438 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further 2439 information. The attribute is optional. The default value is 0s. 2441 clipEnd: offset from start of media resource to end playback. A 2442 valid value is a Time Designation (see Section 4.6.7). The offset 2443 is measured in normal media playback time from the beginning of 2444 the media resource. If the clipEnd offset is after the end of 2445 media, then the media is played to the end. If clipBegin is after 2446 clipEnd, then no media is played. See 'clipEnd' in SMIL 2447 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 2448 is optional. There is no default value. 2450 The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are 2451 only relevant in the playback use case. The MS ignores these 2452 attributes when using the for recording. 2454 The element has no children. 2456 4.3.2. Exit Information 2458 When the dialog exits, information about the specified operations is 2459 reported in a notification event (Section 4.2.5.1). 2461 4.3.2.1. 2463 The element reports the information about prompt 2464 execution. It has the following attributes: 2466 duration: indicates the duration of prompt playback in milliseconds. 2467 A valid value is a non-negative integer (see Section 4.6.4). The 2468 attribute is optional. There is no default value. 2470 termmode: indicates how playback was terminated. Valid values are: 2471 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 2473 The element has no child elements. 2475 4.3.2.2. 2477 The element reports information about control 2478 execution. 2480 The element has no attributes and has 0 or more 2481 child elements each describing an individual runtime 2482 control match. 2484 4.3.2.2.1. 2486 The element has the following attributes: 2488 dtmf: DTMF input triggering the runtime control. A valid value is a 2489 DTMF string (see Section 4.6.3) with no space between characters. 2490 The attribute is mandatory. 2492 timestamp: indicates the time (on the MS) at which the control was 2493 triggered. A valid value is an dateTime expression 2494 (Section 4.6.12). The attribute is mandatory. 2496 The element has no child elements. 2498 4.3.2.3. 2500 The element reports the information about collect 2501 execution. 2503 The element has the following attributes: 2505 dtmf: DTMF input collected from the user. A valid value is a DTMF 2506 string (see Section 4.6.3) with no space between characters. The 2507 attribute is optional. There is no default value. 2509 termmode: indicates how collection was terminated. Valid values 2510 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2511 mandatory. 2513 The element has no child elements. 2515 4.3.2.4. 2517 The element reports information about record execution 2518 (Section 4.3.1.4). 2520 The element has the following attributes: 2522 termmode: indicates how recording was terminated. Valid values are: 2523 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2524 attribute is mandatory. 2526 duration: indicates the duration of the recording in milliseconds. 2527 A valid value is a non-negative integer (see Section 4.6.4). The 2528 attribute is optional. There is no default value. 2530 The element has the following child element (0 or more 2531 occurrences): 2533 : indicates information about a recorded media resource 2534 (see Section 4.3.2.4.1). The element is optional. 2536 When the record operation is successful, the MS MUST specify a 2537 element for each recording location. For example, if the 2538 element contained three child elements, then the 2539 would contain three child elements. 2541 4.3.2.4.1. 2543 The element reports information about a recorded media 2544 resource. 2546 The element has the following attributes: 2548 loc: indicates the location of the media resource. A valid value is 2549 a URI (see Section 4.6.9). The attribute is mandatory. 2551 type: indicates the format of the media resource. A valid value is 2552 a MIME media type (see Section 4.6.10). The attribute is 2553 mandatory. 2555 size: indicates the size of the media resource in bytes. A valid 2556 value is a non-negative integer (see Section 4.6.4). The 2557 attribute is optional. There is no default value. 2559 4.4. Audit Elements 2561 The audit elements defined in this section allow the MS to be audited 2562 for package capabilities as well as dialogs managed by the package. 2563 Auditing is particularly important for two use cases. First, it 2564 enables discovery of package capabilities supported on an MS before 2565 an AS starts a dialog on connection or conference. The AS can then 2566 use this information to create request elements using supported 2567 capabilities and, in the case of codecs, to negotiate an appropriate 2568 SDP for a user agent's connection. Second, auditing enables 2569 discovery of the existence and status of dialogs currently managed by 2570 the package on the MS. This could be used when one AS takes over 2571 management of the dialogs if the AS which initiated the dialogs fails 2572 or is no longer available (see Security Considerations described in 2573 Section 7 ). 2575 4.4.1. 2577 The request element is sent to the MS to request information 2578 about the capabilities of, and dialogs currently managed with, this 2579 control package. Capabilities include supported dialog languages, 2580 grammar formats, record and media types as well as codecs. Dialog 2581 information includes the status of managed dialogs as well as codecs. 2583 The element has the following attributes: 2585 capabilities: indicates whether package capabilities are to be 2586 audited. A valid value is a boolean (see Section 4.6.1). A value 2587 of true indicates that capability information is to be reported. 2588 A value of false indicates that capability information is not to 2589 be reported. The attribute is optional. The default value is 2590 true. 2592 dialogs: indicates whether dialogs currently managed by the package 2593 are to be audited. A valid value is a boolean (see 2594 Section 4.6.1). A value of true indicates that dialog information 2595 is to be reported. A value of false indicates that dialog 2596 information is not to be reported. The attribute is optional. 2597 The default value is true. 2599 dialogid: string identifying a specific dialog to audit. The MS 2600 sends a response with a 406 status code (Section 4.5) if the 2601 specified dialog identifier is invalid. The attribute is 2602 optional. There is no default value. 2604 If the dialogs attribute has the value true and dialogid attribute is 2605 specified, then only audit information about the specified dialog is 2606 reported. If the dialogs attribute has the value false, then no 2607 dialog audit information is reported even if a dialogid attribute is 2608 specified. 2610 The element has no child elements. 2612 When the MS receives an request, it MUST reply with a 2613 element (Section 4.4.2) which includes a mandatory 2614 attribute describing the status in terms of a numeric code. Response 2615 status codes are defined in Section 4.5. If the request is 2616 successful, the contains (depending on attribute 2617 values) a element (Section 4.4.2.2) reporting package 2618 capabilities and a element (Section 4.4.2.3) reporting 2619 managed dialog information. If the MS is not able to process the 2620 request and carry out the audit operation, the audit request has 2621 failed and the MS MUST indicate the class of failure using an 2622 appropriate 4xx response code. Unless an error response code is 2623 specified for a class of error within this section, implementations 2624 follow Section 4.5 in determining the appropriate status code for the 2625 response. 2627 For example, a request to audit capabilities and dialogs managed by 2628 the package: 2630 2631 2632 2634 In this example, only capabilities are to be audited: 2636 2637 2638 2640 With this example, only a specific dialog is to be audited: 2642 2643 2644 2646 4.4.2. 2648 The element describes a response to a 2649 request. 2651 The element has the following attributes: 2653 status: numeric code indicating the audit response status. The 2654 attribute is mandatory. Valid values are defined in Section 4.5. 2656 reason: string specifying a reason for the status. The attribute is 2657 optional. 2659 The element has the following sequence of child 2660 elements: 2662 element (Section 4.4.2.2) describing capabilities of 2663 the package. The element is optional. 2665 element (Section 4.4.2.3) describing information about 2666 managed dialogs. The element is optional. 2668 For example, a successful response to a request requesting 2669 capabilities and dialogs information: 2671 2672 2673 2674 2675 application/voicexml+xml 2676 2677 2678 2679 audio/x-wav 2680 video/3gpp 2681 2682 2683 audio/x-wav 2684 video/3gpp 2685 2686 2687 2688 mdy 2689 ymd 2690 dmy 2691 dm 2692 2693 2694 600s 2695 1800s 2696 2697 2698 H.263 2699 2700 2701 H.264 2702 2703 2704 PCMU 2705 2706 2707 PCMA 2708 2709 2710 telephone-event 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 PCMA 2721 2722 2723 telephone-event 2724 2725 2726 2727 2728 2729 2731 4.4.2.1. 2733 The provides audit information about codecs. 2735 The element has no attributes. 2737 The element has the following sequence of child elements (0 2738 or more occurrences): 2740 : audit information for a codec (Section 4.4.2.1.1). The 2741 element is optional. 2743 For example, a fragment describing two codecs: 2745 2746 2747 PCMA 2748 2749 2750 telephone-event 2751 2752 2754 4.4.2.1.1. 2756 The element describes a codec on the MS. The element is 2757 modeled on the element in the XCON conference information 2758 data model ([I-D.ietf-xcon-common-data-model]) but allows addition 2759 information (e.g. rate, speed, etc) to be specified. 2761 The element has no attributes. 2763 The element has the following sequence of child elements: 2765 : element describing the codec's name. The possible values 2766 of this element are the values of the 'subtype' column of the RTP 2767 Payload Format media types per [RFC4855] defined in IANA ([IANA]). 2768 The element is mandatory. 2770 : element (Section 4.2.6) describing additional information 2771 about the codec. This package is agnostic to the names and values 2772 of the codec parameters supported by an implementation. The 2773 element is optional. 2775 For example, a fragment with a element describing the H.263 2776 codec: 2778 2779 H.263 2780 2782 4.4.2.2. 2784 The element provides audit information about package 2785 capabilities. 2787 The element has no attributes. 2789 The element has the following sequence of child 2790 elements: 2792 : element (Section 4.4.2.2.1) describing additional 2793 dialog languages supported by the MS. The element is mandatory. 2795 : element (Section 4.4.2.2.2) describing supported 2796 (Section 4.3.1.3.1) format types. The element is 2797 mandatory. 2799 : element (Section 4.4.2.2.3) describing 2800 (Section 4.3.1.5) format types supported for 2801 (Section 4.3.1.4). The element is mandatory. 2803 : element (Section 4.4.2.2.4) describing supported 2804 (Section 4.3.1.5) format types for playback within a 2805 (Section 4.3.1.1). The element is mandatory. 2807 : element (Section 4.4.2.2.5) describing supported types 2808 and formats for the element (Section 4.4.2.2.5). The 2809 element is mandatory. 2811 : element (Section 4.4.2.2.6) describing the 2812 supported maximum duration for a prepared dialog following a 2813 (Section 4.2.1) request. The element is 2814 mandatory. 2816 : element (Section 4.4.2.2.7) describing the 2817 supported maximum duration for a recording 2818 Section 4.3.1.4) request. The element is mandatory. 2820 : element (Section 4.4.2.1) describing codecs available to 2821 the package. The element is mandatory. 2823 For example, a fragment describing capabilities: 2825 2826 2827 application/voicexml+xml 2828 2829 2830 2831 audio/x-wav 2832 video/3gpp 2833 2834 2835 audio/x-wav 2836 video/3gpp 2837 2838 2839 30s 2840 60s 2841 2842 2843 H.263 2844 2845 2846 H.264 2847 2848 2849 PCMU 2850 2851 2852 PCMA 2853 2854 2855 telephone-event 2856 2857 2858 2860 4.4.2.2.1. 2862 The element provides information about additional 2863 dialog languages supported by the package. Dialog languages are 2864 identified by their associated MIME media types. The MS MUST NOT 2865 include the mandatory dialog language for this package (Section 4.3). 2867 The element has no attributes. 2869 The element has the following sequence of child 2870 elements (0 or more occurrences): 2872 : element whose content model describes a MIME media type 2873 (Section 4.6.10) associated with a supported dialog language. The 2874 element is optional. 2876 4.4.2.2.2. 2878 The element provides information about 2879 format types supported by the package. The MS MUST NOT include the 2880 mandatory SRGS format type, "application/srgs+xml" 2881 (Section 4.3.1.3.1). 2883 The element has no attributes. 2885 The element has the following sequence of child 2886 elements (0 or more occurrences): 2888 : element whose content model describes a mime type 2889 (Section 4.6.10). The element is optional. 2891 4.4.2.2.3. 2893 The element provides information about media resource 2894 format types of supported by the package (Section 4.3.1.4). 2896 The element has no attributes. 2898 The element has the following sequence of child 2899 elements (0 or more occurrences): 2901 : element whose content model describes a mime type 2902 (Section 4.6.10). The element is optional. 2904 4.4.2.2.4. 2906 The element provides information about media resource 2907 format types of supported by the package (Section 4.3.1.1). 2909 The element has no attributes. 2911 The element has the following sequence of child 2912 elements (0 or more occurrences): 2914 : element whose content model describes a mime type 2915 (Section 4.6.10). The element is optional. 2917 4.4.2.2.5. 2919 The element provides information about types and formats 2920 for the element (Section 4.4.2.2.5) supported by the 2921 package. 2923 The element has no attributes. 2925 The element has the following sequence of child elements 2926 (0 or more occurrences): 2928 : element describing the formats support for a given 2929 type (Section 4.4.2.2.5.1). The element is optional. 2931 For example, a fragment describing support for with a 2932 "date" type in some common formats. 2934 2935 2936 mdy 2937 ymd 2938 dmy 2939 dm 2940 2941 2943 4.4.2.2.5.1. 2945 The element describes the formats supported for 2946 supported type. 2948 The element has the following attributes: 2950 type: indicates a supported value associated with the type attribute 2951 of element.The attribute is manadatory. 2953 desc: a string providing some textual description of the type and 2954 format. The attribute is optional. 2956 The element has the following sequence of child 2957 elements (0 or more occurrences): 2959 : element with a desc attribute (optional description) and a 2960 content model describing a supported format in the 2961 format attribute. The element is optional. 2963 4.4.2.2.6. 2965 The element describes the maximum duration for 2966 a dialog to remain in the prepared state (Section 4.2) following a 2967 (Section 4.2.1) request. 2969 The element has no attributes. 2971 The element has a content model describing the 2972 maximum prepared dialog duration as a time designation 2973 (Section 4.6.7). 2975 4.4.2.2.7. 2977 The element describes the maximum recording 2978 duration for Section 4.3.1.4) request supported by the MS. 2980 The element has no attributes. 2982 The element has a content model describing the 2983 maximum duration of recording as a time designation (Section 4.6.7). 2985 4.4.2.3. 2987 The element provides audit information about dialogs. 2989 The element has no attributes. 2991 The element has the following sequence of child elements (0 2992 or more occurrences): 2994 : audit information for a dialog (Section 4.4.2.3.1). 2995 The element is optional. 2997 4.4.2.3.1. 2999 The element has the following attributes: 3001 dialogid: string identifying the dialog. The attribute is 3002 mandatory. 3004 state: string indicating the state of the dialog. Valid values are: 3005 preparing, prepared, starting, started. The attribute is 3006 mandatory. 3008 connectionid: string identifying the SIP dialog connection 3009 associated with the dialog (see Section 17.1 of 3010 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3011 optional. There is no default value. 3013 conferenceid: string identifying the conference associated with the 3014 dialog (see Section 17.1 of 3015 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 3016 optional. There is no default value. 3018 The element has the following child element: 3020 element describing codecs used in the dialog. See 3021 Section 4.4.2.1. The element is optional. 3023 For example, a fragment describing a started dialog which is using 3024 PCMU and telephony-event codecs: 3026 3027 3028 3029 PCMU 3030 3031 3032 telephone-event 3033 3034 3035 3037 4.5. Response Status Codes 3039 This section describes the response codes in Table 1 for the status 3040 attribute of dialog management (Section 4.2.4) and audit 3041 (Section 4.4.2) responses. The MS MUST support these 3042 status response codes. The MS MAY support other response codes. The 3043 AS MUST treat any responses it does not recognize as being equivalent 3044 to the x00 response code for all classes. For example, if an AS 3045 receives an unrecognized response code of 499, it can safely assume 3046 that there was something wrong with its request and treat the 3047 response as if it had received a 400 (Syntax error) response code. 3049 4xx responses are definite failure responses from a particular MS. 3050 The reason attribute in the response SHOULD identify the failure in 3051 more detail, for example, "Mandatory attribute missing: src in media 3052 element" for a 400 (Syntax error) response code. 3054 The AS SHOULD NOT retry the same request without modification (for 3055 example, correcting a syntax error or changing the connectionid to 3056 use one available on the MS). However, the same request to a 3057 different MS might be successful; for example, if another MS supports 3058 a capability required in the request. 3060 4xx failure responses can be grouped into three classes: failure due 3061 to a syntax error in the request (400); failure due to an error 3062 executing the request on the MS (405-419); and failure due to the 3063 request requiring a capability not supported by the MS (420-439). 3065 In cases where more than one request code could be reported for a 3066 failure, the MS SHOULD use the most specific error code of the 3067 failure class for the detected error. For example, if the MS detects 3068 that the dialogid in the request is invalid, then it uses a 406 3069 status code. However, if the MS merely detects that an execution 3070 error occurred, then 419 is used. 3072 +------+---------------+-----------------------+--------------------+ 3073 | Code | Summary | Description | Informational: AS | 3074 | | | | Possible Recovery | 3075 | | | | Action | 3076 +------+---------------+-----------------------+--------------------+ 3077 | 200 | OK | request has succeeded | | 3078 | | | | | 3079 | 400 | Syntax error | request is | Change the request | 3080 | | | syntactically | so that it is | 3081 | | | invalid: it is not | syntactically | 3082 | | | valid with respect to | valid. | 3083 | | | the XML schema | | 3084 | | | specified in | | 3085 | | | Section 5 or it | | 3086 | | | violates a | | 3087 | | | co-occurrence | | 3088 | | | constraint for a | | 3089 | | | request element | | 3090 | | | defined in Section 4. | | 3091 | | | | | 3092 | 401 | Reserved for | | | 3093 | | future use | | | 3094 | | | | | 3095 | 402 | Reserved for | | | 3096 | | future use | | | 3097 | | | | | 3098 | 403 | Reserved for | | | 3099 | | future use | | | 3100 | | | | | 3101 | 404 | Reserved for | | | 3102 | | future use | | | 3103 | | | | | 3104 | 405 | dialogid | request uses a | Send an | 3105 | | already | dialogid identifier | request | 3106 | | exists | for a new dialog | (Section 4.4.1) | 3107 | | | which is already used | requesting the | 3108 | | | by another dialog on | list of dialog | 3109 | | | the MS (see | identifiers | 3110 | | | Section 4.2). | already used by | 3111 | | | | the MS and then | 3112 | | | | use a dialog | 3113 | | | | identifier which | 3114 | | | | is not listed. | 3115 | | | | | 3116 | 406 | dialogid does | request uses a | Send an | 3117 | | not exist | dialogid identifier | request | 3118 | | | for an dialog which | (Section 4.4.1) | 3119 | | | does not exist on the | requesting the | 3120 | | | MS (see Section 4.2). | list of dialog | 3121 | | | | identifiers | 3122 | | | | already used by | 3123 | | | | the MS and then | 3124 | | | | use one of the | 3125 | | | | listed dialog | 3126 | | | | identifiers. | 3127 | | | | | 3128 | 407 | connectionid | request uses a | Use another method | 3129 | | does not | connectionid | to determine which | 3130 | | exist | identifier for a | connections are | 3131 | | | connection which does | available on the | 3132 | | | not exist on the MS. | MS. | 3133 | | | | | 3134 | 408 | conferenceid | request uses a | Use another method | 3135 | | does not | conferenceid | to determine which | 3136 | | exist | identifier for a | conferences are | 3137 | | | conference which does | available on the | 3138 | | | not exist on the MS. | MS. | 3139 | | | | | 3140 | 409 | Resource | request use a URI to | Check that the | 3141 | | cannot be | reference an external | resource URI is | 3142 | | retrieved | resource (e.g. | valid, can be | 3143 | | | dialog, media or | reached from the | 3144 | | | grammar) which cannot | MS, and that the | 3145 | | | be retrieved within | appropriate | 3146 | | | the timeout interval | authentication is | 3147 | | | | used. | 3148 | | | | | 3149 | 410 | Dialog | request to prepare or | | 3150 | | execution | start a dialog which | | 3151 | | canceled | has been terminated | | 3152 | | | by a | | 3153 | | | | | 3154 | | | request (see | | 3155 | | | Section 4.2) | | 3156 | | | | | 3157 | 411 | Incompatible | request specifies a | Change the media | 3158 | | stream | media stream | stream | 3159 | | configuration | configuration which | configuration to | 3160 | | | is in conflict with | match the | 3161 | | | itself, or the | capabilities of | 3162 | | | connection or | the connection or | 3163 | | | conference | conference | 3164 | | | capabilities (see | | 3165 | | | Section 4.2.2) | | 3166 | | | | | 3167 | 412 | Media stream | request specifies an | Check the media | 3168 | | not available | operation for which a | stream capability | 3169 | | | media stream is not | of the connection | 3170 | | | available. For | or conference and | 3171 | | | example, playing a | use an operation | 3172 | | | video media resource | which only uses | 3173 | | | on an connection or | these capabilities | 3174 | | | conference without | | 3175 | | | video streams. | | 3176 | | | | | 3177 | 413 | Control keys | the request contains | Use different keys | 3178 | | with same | a element | for the different | 3179 | | value | (Section 4.3.1.2) | control | 3180 | | | where some keys have | operations. | 3181 | | | the same value | | 3182 | | | | | 3183 | 414 | Reserved for | | | 3184 | | future use | | | 3185 | | | | | 3186 | 415 | Reserved for | | | 3187 | | future use | | | 3188 | | | | | 3189 | 416 | Reserved for | | | 3190 | | future use | | | 3191 | | | | | 3192 | 417 | Reserved for | | | 3193 | | future use | | | 3194 | | | | | 3195 | 418 | Reserved for | | | 3196 | | future use | | | 3197 | 419 | Other | requested operation | | 3198 | | execution | cannot be executed by | | 3199 | | error | the MS. | | 3200 | | | | | 3201 | 420 | Unsupported | request specifies a | Use a URI scheme | 3202 | | URI scheme | URI whose scheme is | which is | 3203 | | | not supported by the | supported. | 3204 | | | MS | | 3205 | | | | | 3206 | 421 | Unsupported | request references an | Send an | 3207 | | dialog | external dialog | request | 3208 | | language | language not | (Section 4.4.1) | 3209 | | | supported by the MS | requesting the MS | 3210 | | | | capabilities and | 3211 | | | | then use one of | 3212 | | | | the listed dialog | 3213 | | | | languages. | 3214 | | | | | 3215 | 422 | Unsupported | request references a | Send an | 3216 | | playback | media resource for | request | 3217 | | format | playback whose format | (Section 4.4.1) | 3218 | | | is not supported by | requesting the MS | 3219 | | | the MS | capabilities and | 3220 | | | | then use one of | 3221 | | | | the listed | 3222 | | | | playback media | 3223 | | | | formats. | 3224 | | | | | 3225 | 423 | Unsupported | request references a | Send an | 3226 | | record format | media resource for | request | 3227 | | | recording whose | (Section 4.4.1) | 3228 | | | format is not | requesting the MS | 3229 | | | supported by the MS | capabilities and | 3230 | | | | then use one of | 3231 | | | | the listed record | 3232 | | | | media formats. | 3233 | | | | | 3234 | 424 | Unsupported | request references a | Send an | 3235 | | grammar | grammar whose format | request | 3236 | | format | is not supported by | (Section 4.4.1) | 3237 | | | the MS | requesting the MS | 3238 | | | | capabilities and | 3239 | | | | then use one of | 3240 | | | | the listed grammar | 3241 | | | | types. | 3242 | | | | | 3243 | 425 | Unsupported | request contains a | Send an | 3244 | | variable | prompt | request | 3245 | | configuration | element | (Section 4.4.1) | 3246 | | | (Section 4.3.1.1.1) | requesting the MS | 3247 | | | not supported by the | capabilities and | 3248 | | | MS | then use one of | 3249 | | | | the listed | 3250 | | | | variable types. | 3251 | | | | | 3252 | 426 | Unsupported | request contains a | | 3253 | | DTMF | prompt element | | 3254 | | configuration | (Section 4.3.1.1.2) | | 3255 | | | not supported by the | | 3256 | | | MS | | 3257 | | | | | 3258 | 427 | Unsupported | request contains a | | 3259 | | parameter | element | | 3260 | | | (Section 4.2.6.1) not | | 3261 | | | supported by the MS | | 3262 | | | | | 3263 | 428 | Unsupported | request contains a | | 3264 | | media stream | element | | 3265 | | configuration | (Section 4.2.2.2) | | 3266 | | | whose configuration | | 3267 | | | is not supported by | | 3268 | | | the MS. | | 3269 | | | | | 3270 | 429 | Unsupported | request contains a | | 3271 | | playback | element | | 3272 | | configuration | (Section 4.3.1.1) | | 3273 | | | which the MS is | | 3274 | | | unable to play on the | | 3275 | | | available output | | 3276 | | | media streams | | 3277 | | | | | 3278 | 430 | Unsupported | request contains a | | 3279 | | record | element | | 3280 | | configuration | (Section 4.3.1.1) | | 3281 | | | which the MS is | | 3282 | | | unable to record with | | 3283 | | | on the available | | 3284 | | | input media streams | | 3285 | | | | | 3286 | 431 | Unsupported | the request contains | | 3287 | | foreign | attributes or | | 3288 | | namespace | elements from another | | 3289 | | attribute or | namespace which the | | 3290 | | element | MS does not support | | 3291 | 432 | Unsupported | the request tries to | | 3292 | | multiple | start another dialog | | 3293 | | dialog | on the same | | 3294 | | capability | conference or | | 3295 | | | connection where a | | 3296 | | | dialog is already | | 3297 | | | running | | 3298 | | | | | 3299 | 433 | Unsupported | the request contains | | 3300 | | collect and | and | | 3301 | | record | elements and | | 3302 | | capability | the MS does support | | 3303 | | | these operations | | 3304 | | | simultaneously | | 3305 | | | | | 3306 | 434 | Unsupported | the request contains | | 3307 | | VAD | a element | | 3308 | | capability | where Voice Activity | | 3309 | | | Detection (VAD) is | | 3310 | | | required, but the MS | | 3311 | | | does not support VAD. | | 3312 | | | | | 3313 | 435 | Unsupported | the request contains | | 3314 | | parallel | a prompt | | 3315 | | playback | element whose | | 3316 | | | configuration is not | | 3317 | | | supported by the MS. | | 3318 | | | | | 3319 | 436 | Reserved for | | | 3320 | | future use | | | 3321 | | | | | 3322 | 437 | Reserved for | | | 3323 | | future use | | | 3324 | | | | | 3325 | 438 | Reserved for | | | 3326 | | future use | | | 3327 | | | | | 3328 | 439 | Other | request requires | | 3329 | | unsupported | another capability | | 3330 | | capability | not supported by the | | 3331 | | | MS | | 3332 +------+---------------+-----------------------+--------------------+ 3334 Table 1: status codes 3336 4.6. Type Definitions 3338 This section defines types referenced in attribute and element 3339 definitions. 3341 4.6.1. Boolean 3343 The value space of boolean is the set {true, false}. 3345 4.6.2. DTMFChar 3347 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 3348 7, 8, 9, #, *, A, B, C, D}. 3350 4.6.3. DTMFString 3352 A String composed of one or more DTMFChars. 3354 4.6.4. Non-Negative Integer 3356 The value space of non-negative integer is the infinite set 3357 {0,1,2,...}. 3359 4.6.5. Positive Integer 3361 The value space of positive integer is the infinite set {1,2,...}. 3363 4.6.6. String 3365 A string in the character encoding associated with the XML element. 3367 4.6.7. Time Designation 3369 A time designation consists of a non-negative real number followed by 3370 a time unit identifier. 3372 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 3374 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 3376 4.6.8. Percentage 3378 A percentage consists of a Positive Integer followed by "%". 3380 Examples include: "100%", "500%" and "10%". 3382 4.6.9. URI 3384 Uniform Resource Indicator as defined in [RFC3986]. 3386 4.6.10. MIME Media Type 3388 A string formated as a IANA MIME media type ([MIME.mediatypes]). 3390 4.6.11. Language Identifier 3392 A language identifier labels information content as being of a 3393 particular human language variant. Following the XML specification 3394 for language identification [XML], a legal language identifier is 3395 identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code 3396 where the language code is required and a country code or other 3397 subtag identifier is optional. 3399 4.6.12. DateTime 3401 A string formated according to the XML schema definition of a 3402 dateTime type ([XMLSchema:Part2]). 3404 5. Formal Syntax 3406 This section defines the XML schema for IVR Control Package. 3408 The schema defines datatypes, attributes, dialog management and IVR 3409 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 3410 most elements the order of child elements is significant. The schema 3411 is extensible: elements allow attributes and child elements from 3412 other namespaces. Elements from outside this package's namespace can 3413 occur after elements defined in this package. 3415 The schema is dependent upon the schema (framework.xsd) defined in 3416 Section 17.1 of the Control Framework 3417 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 3418 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 3419 xml:base). 3421 3422 3428 3429 3430 IETF MediaCtrl IVR 1.0 (20090214) 3432 This is the schema of the IETF MediaCtrl IVR control 3433 package. 3435 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 3437 3438 3440 3448 3450 3451 3452 This import brings in the XML attributes for 3453 xml:base, xml:lang, etc 3455 See http://www.w3.org/2001/xml.xsd for latest version 3456 3457 3458 3460 3463 3464 3465 This import brings in the framework attributes for 3466 conferenceid and connectionid. 3467 3468 3469 3471 3479 3480 3481 3482 This type is extended by other (non-mixed) component types to 3483 allow attributes from other namespaces. 3484 3485 3486 3487 3488 3490 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3513 3514 3515 3517 3518 3519 3521 3523 3531 3533 3534 3535 3536 3537 3539 3541 3542 3543 3544 3546 3548 3549 3550 3552 3554 3556 3557 3558 3559 3560 3562 3564 3566 3568 3570 3571 3572 3573 3575 3577 3579 3580 3581 3582 3584 3586 3588 3589 3590 3591 3592 3594 3595 3597 3599 3600 3601 3603 3605 3607 3608 3609 3610 3611 3613 3614 3616 3617 3619 3620 3621 3622 3624 3626 3628 3629 3630 3631 3632 3633 3635 3637 3639 3641 3642 3644 3645 3646 3648 3650 3652 3653 3654 3655 3656 3658 3660 3662 3664 3666 3668 3669 3671 3672 3673 3674 3676 3678 3680 3681 3682 3683 3684 3686 3687 3689 3691 3693 3694 3695 3697 3699 3701 3702 3703 3704 3705 3707 3708 3710 3712 3713 3714 3716 3718 3720 3721 3722 3723 3724 3726 3728 3729 3730 3731 3732 3734 3736 3737 3738 3739 3740 3742 3743 3745 3746 3747 3748 3750 3752 3754 3755 3756 3757 3758 3760 3761 3763 3765 3766 3767 3769 3771 3773 3774 3775 3776 3777 3779 3781 3782 3784 3786 3787 3788 3790 3792 3794 3795 3796 3797 3798 3800 3801 3803 3805 3807 3808 3809 3811 3813 3815 3816 3817 3818 3819 3821 3823 3825 3826 3827 3829 3831 3833 3834 3835 3836 3837 3839 3840 3842 3843 3844 3846 3848 3849 3850 3851 3852 3853 3855 3857 3858 3859 3860 3862 3864 3865 3866 3867 3868 3871 3872 3873 3874 3875 3877 3879 3881 3882 3883 3884 3885 3887 3889 3891 3892 3894 3895 3897 3898 3899 3901 3903 3904 3905 3906 3908 3910 3911 3912 3913 3915 3917 3919 3920 3921 3922 3923 3925 3927 3929 3931 3933 3934 3936 3938 3939 3940 3942 3944 3946 3947 3948 3949 3950 3951 3952 3953 3954 3956 3957 3958 3960 3961 3962 3963 3965 3967 3968 3969 3970 3971 3973 3974 3976 3977 3979 3981 3983 3985 3986 3987 3989 3991 3993 3994 3995 3996 3997 3999 4000 4002 4004 4005 4006 4007 4008 4009 4010 4012 4014 4015 4016 4017 4018 4020 4021 4023 4025 4027 4029 4030 4031 4033 4035 4037 4038 4039 4040 4041 4042 4043 4044 4045 4047 4048 4049 4050 4052 4054 4056 4057 4058 4059 4060 4061 4062 4063 4065 4066 4067 4068 4070 4072 4074 4075 4076 4077 4078 4080 4081 4083 4084 4085 4087 4089 4091 4093 4095 4097 4099 4101 4103 4106 4108 4110 4111 4112 4114 4116 4118 4119 4120 4121 4122 4124 4126 4127 4129 4131 4133 4135 4137 4139 4141 4142 4143 4145 4147 4148 4149 4150 4151 4154 4155 4156 4157 4159 4160 4162 4164 4166 4167 4168 4169 4170 4172 4174 4175 4177 4179 4181 4183 4185 4187 4189 4191 4192 4193 4195 4197 4204 4206 4207 4208 4209 4210 4212 4213 4215 4217 4219 4220 4221 4223 4225 4227 4228 4229 4230 4231 4233 4235 4237 4238 4240 4241 4242 4243 4245 4247 4248 4249 4250 4251 4252 4254 4256 4258 4259 4260 4261 4263 4265 4267 4268 4269 4271 4273 4275 4276 4277 4278 4279 4281 4283 4284 4285 4286 4288 4290 4292 4293 4294 4295 4296 4298 4300 4302 4304 4306 4308 4310 4312 4314 4315 4316 4317 4319 4321 4323 4325 4327 4328 4329 4330 4331 4333 4335 4336 4337 4338 4339 4341 4343 4344 4345 4346 4347 4349 4351 4352 4353 4354 4356 4358 4360 4361 4362 4363 4364 4366 4368 4369 4370 4371 4373 4375 4377 4378 4379 4380 4381 4383 4386 4387 4388 4389 4391 4393 4395 4396 4397 4398 4399 4401 4403 4404 4405 4406 4408 4410 4411 4412 4413 4414 4416 4418 4419 4420 4421 4422 4423 4425 4427 4428 4429 4430 4431 4434 4435 4436 4437 4439 4441 4443 4446 4448 4451 4453 4454 4455 4456 4457 4459 4461 4462 4463 4464 4466 4468 4470 4471 4472 4473 4474 4476 4478 4479 4481 4483 4484 4485 4486 4488 4490 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 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 Time designation following Time in CSS2 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 DTMF character [0-9#*A-D] 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 DTMF sequence [0-9#*A-D] 4572 4574 4575 4576 4577 4578 4579 4580 4581 4582 whole integer followed by '%' 4583 4584 4585 4586 4587 4588 4590 4591 4592 4593 4594 4595 4596 4598 4599 4600 4601 4602 4603 4604 4605 4607 4608 4609 4610 4611 4612 4613 4614 4615 4617 4618 4619 4620 4621 4623 4624 4626 4627 6. Examples 4629 This section provides examples of the IVR Control package. 4631 6.1. AS-MS Dialog Interaction Examples 4633 The following example assume a control channel has been established 4634 and synced as described in the Media Control Channel Framework 4635 ([I-D.ietf-mediactrl-sip-control-framework]). 4637 The XML messages are in angled brackets (with the root 4638 omitted); the REPORT status is in round brackets. Other aspects of 4639 the protocol are omitted for readability. 4641 6.1.1. Starting an IVR dialog 4643 An IVR dialog is started successfully, and dialogexit notification 4644 is sent from the MS to the AS when the dialog exits normally. 4646 Application Server (AS) Media Server (MS) 4647 | | 4648 | (1) CONTROL: | 4649 | ----------------------------------------> | 4650 | | 4651 | (2) 202 | 4652 | <--------------------------------------- | 4653 | | 4654 | | 4655 | (3) REPORT: | 4656 | (terminate) | 4657 | <---------------------------------------- | 4658 | | 4659 | (4) 200 | 4660 | ----------------------------------------> | 4661 | | 4662 | (5) CONTROL: | 4663 | | 4664 | <---------------------------------------- | 4665 | | 4666 | (6) 200 | 4667 | ----------------------------------------> | 4668 | | 4670 6.1.2. IVR dialog fails to start 4672 An IVR dialog fails to start due to an unknown dialog language. The 4673 is reported in a framework 200 message. 4675 Application Server (AS) Media Server (MS) 4676 | | 4677 | (1) CONTROL: | 4678 | ----------------------------------------> | 4679 | | 4680 | (2) 200: | 4681 | <---------------------------------------- | 4682 | | 4684 6.1.3. Preparing and starting an IVR dialog 4686 An IVR dialog is prepared and started successfully, and then the 4687 dialog exits normally. 4689 Application Server (AS) Media Server (MS) 4690 | | 4691 | (1) CONTROL: | 4692 | ----------------------------------------> | 4693 | | 4694 | (2) 202 | 4695 | <--------------------------------------- | 4696 | | 4697 | (3) REPORT: | 4698 | (terminate) | 4699 | <---------------------------------------- | 4700 | | 4701 | (4) 200 | 4702 | ----------------------------------------> | 4703 | | 4704 | (5) CONTROL: | 4705 | ----------------------------------------> | 4706 | | 4707 | (6) 202 | 4708 | <--------------------------------------- | 4709 | | 4710 | (7) REPORT: | 4711 | (terminate) | 4712 | <---------------------------------------- | 4713 | | 4714 | (8) 200 | 4715 | ----------------------------------------> | 4716 | | 4717 | (9) CONTROL: | 4718 | <---------------------------------------- | 4719 | | 4720 | (10) 200 | 4721 | ----------------------------------------> | 4722 | | 4724 6.1.4. Terminating a dialog 4726 An IVR dialog is started successfully, and then terminated by the AS. 4727 The dialogexit event is sent to the AS when the dialog exits. 4729 Application Server (AS) Media Server (MS) 4730 | | 4731 | (1) CONTROL: | 4732 | ----------------------------------------> | 4733 | | 4734 | (2) 202 | 4735 | <--------------------------------------- | 4736 | | 4737 | (3) REPORT: | 4738 | (terminate) | 4739 | <---------------------------------------- | 4740 | | 4741 | (4) 200 | 4742 | ----------------------------------------> | 4743 | | 4744 | (5) CONTROL: | 4745 | ----------------------------------------> | 4746 | | 4747 | (6) 200: | 4748 | <---------------------------------------- | 4749 | | 4750 | (7) CONTROL: | 4751 | <---------------------------------------- | 4752 | | 4753 | (8) 200 | 4754 | ----------------------------------------> | 4755 | | 4757 Note that in (6) the payload to the 4758 request is carried on a framework 200 response since it could 4759 complete the requested operation before the transaction timeout. 4761 6.2. IVR Dialog Examples 4763 The following examples show how is used with 4764 , and elements to play prompts, 4765 set runtime controls, collect DTMF input and record user input. 4767 The examples do not specify all messages between the AS and MS. 4769 6.2.1. Playing announcements 4771 This example prepares an announcement composed of two prompts where 4772 the dialog repeatCount set to 2. 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4785 If the dialog is prepared successfully, a is returned with 4786 status 200 and a dialog identifier assigned by the MS: 4788 4789 4790 4792 The prepared dialog is then started on a conference playing the 4793 prompts twice: 4795 4796 4797 4799 In the case of a successful dialog, the output is provided in 4800 ; for example 4802 4803 4804 4805 4806 4807 4808 4810 6.2.2. Prompt and collect 4812 In this example, a prompt is played and then the MS waits for 30s for 4813 a two digit sequence: 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4826 If no user input is collected within 30s, then following notification 4827 event would be returned: 4829 4830 4831 4832 4833 4834 4835 4836 4838 The collect operation can be specified without a prompt. Here the MS 4839 just waits for DTMF input from the user: 4841 4842 4843 4844 4845 4846 4847 4849 If the dialog is successful, then dialogexit contains the 4850 dtmf collected in its result parameter: 4852 4853 4854 4855 4856 4857 4858 /mscivr> 4860 And finally in this example, one of the input parameters is invalid: 4862 4863 4864 4865 4866 4867 4868 4871 4872 4873 4875 The error is reported in the response: 4877 4878 4880 4882 6.2.3. Prompt and record 4884 In this example, the user is prompted, then their input is recorded 4885 for a maximum of 30 seconds. 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4898 If successful and the recording is terminated by DTMF, the following 4899 is returned in a dialogexit : 4901 4902 4903 4904 4905 4907 4908 4909 4910 4912 6.2.4. Runtime controls 4914 In this example, a prompt is played with collect and runtime controls 4915 are activated. 4917 4918 4919 4920 4921 4922 4923 4925 4926 4927 4928 4930 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 4931 execute runtime controls on the prompt queue. The keys do not cause 4932 bargein to occur. If the user presses any other key, then the prompt 4933 is interrupted and DTMF collect begins. Note that runtime controls 4934 are not active during the collect operation. 4936 When the dialog is completed successfully, then both control and 4937 collect information is reported. 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4953 6.2.5. Subscriptions and notifications 4955 In this example, a looped dialog is started with subscription for 4956 notifications each time the user input matches the collect grammar: 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4969 Each time the user input the DTMF matching the grammar, the following 4970 notification event would be sent: 4972 4973 4974 4976 4977 4979 If no user input was provided, or the input did not match the 4980 grammar, the dialog would continue to loop until terminated (or an 4981 error occurred). 4983 6.3. Other Dialog Languages 4985 The following example requests that a VoiceXML dialog is started: 4987 4988 4993 4994 nfs://nas01/media1.3gp 4995 nfs://nas01/media2.3gp 4996 4997 4998 5000 If the MS does not support this dialog language, then the response 5001 would have the status code 421 (Section 4.5). However, if it does 5002 support the VoiceXML dialog language, it would respond with a 200 5003 status, activate the VoiceXML dialog and make the available 5004 to the VoiceXML script as described in Section 12. 5006 When the VoiceXML dialog exits, exit namelist parameters are 5007 specified using in the dialogexit event: 5009 5010 5011 5012 5013 peter 5014 1234 5015 5016 5017 5018 5020 6.4. Foreign Namespace Attributes and Elements 5022 An MS can support attributes and elements from foreign namespaces 5023 within the element. For example, the MS could support a 5024 element (in a foreign namespace) for speech recognition by 5025 analogy to how support DTMF collection. 5027 In the following example, a prompt and collect request is extended 5028 with a element: 5030 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5045 In the root element, the xmlns:ex attribute declares that 5046 "ex" is associated with the foreign namespace URI 5047 "http://www.example.com/mediactrl/extensions/1". The , 5048 its attributes and child elements are associated with this namespace. 5049 This could be defined so that it activates an SRGS grammar 5050 and listens for user input matching the grammar in a similar manner 5051 to DTMF collection. 5053 If an MS receives this request but does not support the 5054 element, then it would send a 431 response: 5056 5057 5059 5061 If the MS does support this foreign element, it would send a 200 5062 response and start the dialog with speech recognition. When the 5063 dialog exits, it provides information about the execution 5064 within , again using elements in a foreign namespace such 5065 as below: 5067 5069 5070 5071 5072 5073 5074 5076 Note that in reply the AS sends a Control Framework 200 response even 5077 though the notification event contains an element in a foreign 5078 namespace which it might not understand. 5080 7. Security Considerations 5082 As this control package processes XML markup, implementations MUST 5083 address the security considerations of [RFC3023]. 5085 Implementations of this control package MUST address security, 5086 confidentiality and integrity of messages transported over the 5087 control channel as described in Section 11 of the Media Control 5088 channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), 5089 including Transport Level Protection, Control Channel Policy 5090 Management and Session Establishment. In addition, implementations 5091 MUST address security, confidentiality and integrity of User Agent 5092 sessions with the MS, both in terms of SIP signaling and associated 5093 RTP media flow; see [I-D.ietf-mediactrl-sip-control-framework] for 5094 further details on this topic. 5096 Adequate transport protection and authentication are critical, 5097 especially when the implementation is deployed in open networks. If 5098 the implementation fails to correctly address these issues, it risks 5099 exposure to malicious attacks, including (but not limited to): 5101 Denial of Service: An attacker could insert a request message into 5102 the transport stream causing specific dialogs on the MS to be 5103 terminated immediately. For example, , where the value of "XXXX" could 5105 be guessed or discovered by auditing active dialogs on the MS 5106 using an request. Likewise, an attacker could impersonate 5107 the MS and insert error responses into the transport stream so 5108 denying the AS access to package capabilities. 5110 Resource Exhaustion: An attacker could insert into the control 5111 channel new request messages (or modify existing ones) with, for 5112 instance, elements with a very long fetchtimeout 5113 attribute and a bogus source URL. At some point this will exhaust 5114 the number of connections that the MS is able to make. 5116 Phishing: An attacker with access to the control channel could 5117 modify the "loc" attribute of the element in a dialog to 5118 point to some other audio file that had different information from 5119 the original. This modified file could include a different phone 5120 number for people to call if they want more information or need to 5121 provide additional information (such as governmental, corporate or 5122 financial information). 5124 Data Theft: An attacker could modify a element in the 5125 control channel so as to add a new recording location: 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5138 The recorded data would be uploaded to two locations indicated by 5139 the "{Good URI}" and the "{Attacker's URI}". This allows the 5140 attacker to steal the recorded audio (which could include 5141 sensitive or confidential information) without the originator of 5142 the request necessarily being aware of the theft. 5144 The Media Control Channel Framework permits additional security 5145 policy management, including resource access and control channel 5146 usage, to be specified at the control package level beyond that 5147 specified for the Media Control Channel Framework (see Section 11.3 5148 of [I-D.ietf-mediactrl-sip-control-framework]). 5150 Since creation of IVR dialogs is associated with media processing 5151 resources (e.g. DTMF detectors, media playback and recording, etc) 5152 on the MS, the security policy for this control package needs to 5153 address how such dialogs are securely managed across more than one 5154 control channels. Such a security policy is only useful for secure, 5155 confidential and integrity protected channels. The identity of 5156 control channels is determined by the channel identifier: i.e. the 5157 value of the cfw-id attribute in the SDP and Dialog-ID header in the 5158 channel protocol (see [I-D.ietf-mediactrl-sip-control-framework]). 5159 Channels are the same if they have the same identifier; otherwise, 5160 they are different. This control package imposes the following 5161 additional security policies: 5163 Responses: The MS MUST only send a response to a dialog management 5164 or audit request using the same control channel as the one used to 5165 send the request. 5167 Notifications: The MS MUST only send notification events for a 5168 dialog using the same control channel as it received the request 5169 creating the dialog. 5171 Auditing: The MS MUST only provide audit information about dialogs 5172 which have been created on the same control channel as the one 5173 upon the request is sent. 5175 Rejection: The MS SHOULD reject requests to audit or manipulate an 5176 existing dialog on the MS if the channel is not the same as the 5177 one used when the dialog was created. The MS rejects a request by 5178 sending a Control Framework 403 response (see Section 7.4 and 5179 Section 11.3 of [I-D.ietf-mediactrl-sip-control-framework]). For 5180 example, if a channel with identifier 'cfw1234' has been used to 5181 send a request to create a particular dialog and the MS receives 5182 on channel 'cfw98969' a request to audit or terminate the dialog, 5183 then the MS sends a 403 framework response. 5185 There can be valid reasons why an implementation does not reject an 5186 audit or dialog manipulation request on a different channel from the 5187 one which created the dialog. For example, a system administrator 5188 might require a separate channel to audit dialog resources created by 5189 system users and to terminate dialogs consuming excessive system 5190 resources. Alternatively, a system monitor or resource broker might 5191 require a separate channel to audit dialogs managed by this package 5192 on a MS. However, the full implications need to be understood by the 5193 implementation and carefully weighted before accepting these reasons 5194 as valid. If the reasons are not valid in their particular 5195 circumstances, the MS rejects such requests. 5197 There can also be valid reasons for 'channel handover' including high 5198 availability support or where one AS needs to take over management of 5199 dialogs after the AS which created them has failed. This could be 5200 achieved by the control channels using the same channel identifier, 5201 one after another. For example, assume a channel is created with the 5202 identifier 'cfw1234' and the channel is used to create dialogs on the 5203 MS. This channel (and associated SIP dialog) then terminates due to 5204 a failure on the AS. As permitted by the Control Framework, the 5205 channel identifier 'cfw1234' could then be reused so that another 5206 channel is created with the same identifier 'cfw1234', allowing it to 5207 'take over' management of the dialogs on the MS. Again, the 5208 implementation needs to understand the full implications and 5209 carefully weight them before accepting these reasons as valid. If 5210 the reasons are not valid for their particular circumstances, the MS 5211 uses the appropriate SIP mechanisms to prevent session establishment 5212 when the same channel identifier is used in setting up another 5213 control channel (see Section 4 of 5214 [I-D.ietf-mediactrl-sip-control-framework]). 5216 8. IANA Considerations 5218 This specification instructs IANA to register a new Media Control 5219 Channel Framework Package, a new XML namespace and a new MIME type. 5221 8.1. Control Package Registration 5223 Control Package name: msc-ivr/1.0 5225 8.2. URN Sub-Namespace Registration 5227 XML namespace: urn:ietf:params:xml:ns:msc-ivr 5229 8.3. MIME Type Registration 5231 MIME type: application/msc-ivr+xml 5233 9. Change Summary 5235 Note to RFC Editor: Please remove this whole section. 5237 The following are the changes between the -05 and -04 versions. 5239 o Corrected syntax errors in examples: 4.1, 6.2.2, 6.2.5, 6.3 5241 o 6.3: Corrected error status code for unsupported dialog 5243 o 4.4.2.2.2: : corrected text to reflect that no 5244 additional grammar types need be specified. 5246 o Schema: corrected schema to allow with no children, 5247 and renamed to to align with text. 5248 Fixed problem with non-deterministic content models. 5250 o 7. Security Considerations: Added requirement that 5251 implementations need to secure SIP and RTP sessions with User 5252 Agents. 5254 The following are the changes between the -04 and -03 versions. 5256 o 4.2.2.2: Clarified that media stream direction is relative to the 5257 dialog (the examples showed this but not the definition). 5259 o 4.3.1.2: Clarified that speed. volume and seek 5260 operations beyond the platform's capability are automatically 5261 limited to the platform's minimum/maximum. Also clarified that 5262 when the output is paused, then the MS resumes output 5263 automatically on speed, volume and seek control operations. 5265 o 6.2.5: Corrected syntax error in example 5267 o 7 Security: Added a denial of service example where the attacker 5268 impersonates the MS. 5270 o 7 Security: Clarified that the package security policy for 5271 multiple channels is only useful if the channels themselves are 5272 secured. 5274 o Added reference for VoiceXML 3.0 5276 o Updated acknowledgements. 5278 o Appendix A: 12.2: Corrected syntax error in example 5279 o Appendix A: 12.2.1: Changed behavior for how VoiceXML session 5280 information is populated for a conference; session.conference.name 5281 is specified. Added session.connection.originator variable for a 5282 connection (MS receives inbound connections but does not create 5283 outbound connections). 5285 o Appendix A: 12.2.2: Added session.conference.media for conference 5286 media information. Clarified that direction is relative to the 5287 dialog. 5289 o Appendix A: 12.2.2: Corrected syntax error in example 5291 o Appendix A: 12.2.3: Changed session parameter mapping to 5292 session.values using an associative array. 5294 o Appendix A: 12.5: Changed behavior for handling VoiceXML Call 5295 Transfer requests to raising an error.unsupported.transfer event. 5297 The following are the major changes between the -03 and -02 versions. 5299 o Conformance language: Removed unnecessary MUSTs, especially for 5300 error codes. Removed lowercase 'should', 'must' and 'may'. 5302 o Introduction: Clarified which MediaCtrl IVR Requirements are 5303 satisfied by this package. Added link to Security Considerations 5304 Section (also in Section 4.0 and 4.4). 5306 o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS 5307 support of communication protocols in URIs. 5309 o 4.2.2:: Changed RECOMMENDED to MAY for MS support of 5310 multiple dialogs on same connection or conference. Changed 5311 RECOMMENDED to MUST for using in cases where connection 5312 has multiple streams of the same type. 5314 o 4.2.2.2:: Changed RECOMMENDED to MUST for use of common 5315 media attribute values. 5317 o 4.2.2.1: : Clarified that if the MS does not support a 5318 subscription specified in a foreign namespace, then the MS 5319 generates a 431 error response. 5321 o 4.2.4: : Clarified that a dialogid with an empty string 5322 value is used when the request is syntactically invalid. 5324 o 4.2.5.1: : Added reserved range of status codes, and 5325 tightened up the wording. 5327 o 4.3.1.3:: Clarified that termtimeout attribute default of 5328 0s meaning no delay. 5330 o 4.3.1.1.1: : Changed RECOMMENDED to MAY for MS support 5331 of date, time and digits s. Clarified value attribute 5332 format for date, time and digits. 5334 o 4.3.1.1.3: : Removed RECOMMENDED for MS support of parallel 5335 playback of different media. Added error response code (435) if 5336 MS does not support parallel playback configuraton. 5338 o 4.3.1.1.3.1: : Removed RECOMMENDED for MS support of 5339 sequential playback of same media within a (error case 5340 already covered by configuration not supported response 5341 code). 5343 o 4.3.1.4:: Removed RECOMMENDED for MS support of parallel 5344 recording of different media. Clarified wording around uploading 5345 recording data to a media resource location. 5347 o 4.3.1.4: : Clarified the definition of vadinitial and 5348 vadfinal. Changed the default values to false. Added a response 5349 error (434) for when the MS does not support VAD. 5351 o 4.3.1.5: . Removed unnecesaary SHOULD for MS ignoring 5352 fetchtimeout, soundLevel, clipBegin and clipEnd when used 5353 for recording. Clarified definition of loc and type attributes 5354 with stronger conformance language. Similar clarifications of 5355 type attributes in , and . 5357 o 4.3.2.4.1: : Clarified usage and strengthen conformance 5358 language. 5360 o 4.4.2.22: : Changed MUST to MUST NOT for inclusion 5361 of mandatory SRGS grammar format. Updated examples. 5363 o Updated schema. 5365 o Security Considerations: Major update. Added examples showing 5366 malicious attacks when channel security is not correctly 5367 addressed. Added more details on multiple channel cases including 5368 administrator and monitor channels as well as channel handover. 5370 o Removed affliations in Contributors and Acknowledgements sections. 5372 o Added Appendix A describing how to use VoiceXML with this package 5373 if it is supported by the MS. 5375 o Corrected typos and nits. 5377 The following are the major changes between the -02 and -01 versions. 5379 o corrected typos. 5381 o Section 3: Aligned Control Package definitions with requirements 5382 in Section 8 of the Control Framework. 5384 o Section 4.2.2.2: Added child element to 5385 element (alignment with mixer package). 5387 o Following October Interim meeting discussion on response codes, 5388 generally clarified usage of error status codes, modified some 5389 codes and re-organized the response codes section (Section 4.5) 5390 with more guidance and details. 5392 o Section 4.3.1.5: Following October Interim meeting request for 5393 parallel playback and record, created a generalized version of 5394 used for both playback and record. The 'src' attribute is 5395 renamed to 'loc'. Updated and definitions as 5396 described below. 5398 o Sections 4.3.1.1/4.3.1.1.4: : Added child element to 5399 allow parallel playback of separate media resources. The 5400 element has a child element to allow a sequence of media 5401 resources to be played at the same time as other resources are 5402 played in parallel. 5404 o Sections 4.3.1.4/4.3.1.4.1: : Removed 'dest' and 'type' 5405 attributes. Added child elements to support parallel 5406 recording to separate media resource locations. 5408 o Sections 4.3.2.4/4.3.2.4.1: : Removed 'dest', 'type' 5409 and 'size' attribute. Added child elements with 5410 'loc', 'type' and 'size' attributes. 5412 o Section 4.4.2.2.4: Renamed to to 5413 clarify distinction with . 5415 o Sections 4.3.1.4: : Clarified RFC2119 language around 5416 vadinitial and vadfinal behavior. 5418 o Updated schema. Removed some element-specific syntactic 5419 constraint statements which are already covered in the schema. 5421 o 4.3.1: occurrence of without a no longer 5422 treated as a syntax error - instead runtime controls are simply 5423 ignored. 5425 o 5427 The following are the major changes between the -01 and -00 versions. 5429 o 7: Updated security section referencing control framework security 5430 and adding policy requirement to address dialog resource 5431 management over multiple channels. 5433 o corrected typos and example errors 5435 o 4.2: [IVR-200] Added state machine for dialog lifecycle. 5437 o 4.2: clarified dialog identifier assignment and use, including MS 5438 assignment of dialogid in and . 5440 o 4.2/4.2.3: clarified behavior when dialog is not 5441 in a STARTED state. 5443 o 1/4.2: Clarified concept of dialog language and replaced 5444 references to 'dialog types' with dialog languages. Replaced 5445 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that 5446 IVR is inline and other supported dialog languages are 5447 specified by reference. Removed default type values for 5448 and . 5450 o 4.4.2.2.1: clarified that the inline dialog language () 5451 must not be listed as an additional supported dialog language. 5453 o 4.2.2.2: [IVR-201] Added element to so that 5454 dialog video output can be directed to a specific region a 5455 conference video layout. 5457 o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format 5458 for digits. 5460 o 4.4.2.1.1:[IVR-203]: added to to allow additional 5461 codec information to be specified. 5463 o 4.5: added error status code for unsupported URI (415), invalid 5464 region identifier (416), fetchtimeout exceeded (417), syntactic 5465 constraint violation (418), unsupported media format (419), 5466 unsupported grammar format (420), unsupported variable 5467 announcement (421), unsupported DTMF tone generation (422), 5468 conflict with control key values (423), unsupported recording 5469 format (424). 5471 o Generally, replaced 'it is an error ...' language with RFC2119 5472 language, making error codes more explicit. 5474 o 4.3.1: Clarified that an MS MAY support and 5475 elements co-occurring in a element, but the MS MUST send 5476 an error response if they are not supported. Clarified that MS 5477 MUST send an error response if is specified without a 5478 element. 5480 o 4.2.5.2: clarified that the timestamp in is that of 5481 the last DTMF in a matching input sequence. 5483 o References: more references now normative. 5485 o 4.3: Replaced passive voice language with active voice language in 5486 the description of execution models. 5488 o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is 5489 completely unrelated to the term 'SIP dialog'. 5491 o 4: Added clarification that elements with URI attributes are 5492 recommended to support one or more communication protocols 5493 suitable for fetching resources. 5495 o 4.3.1.4: clarified MS MAY support upload of recording 5496 data during recording, and that upload errors (e.g. authentication 5497 failures, communication errors, etc) are execution errors. Added 5498 'append' attribute to control behavior when a recorded resource 5499 already exists at the recording location. 5501 o 4.2.2: Clarified that an error is reported if with 5502 contains parameters which the MS cannot process for the 5503 given dialog language. 5505 o 4.2.6.1: removed 'valuetype' attribute and clarified that 5506 the type attribute indicates the MIME media type associated with 5507 the inline value. 5509 o 4.3.1.4: Added append attribute to to control whether 5510 recordings are appended or not to the recording location resource. 5512 o 4.3.1.1.1: Added clipEnd attribute to to control when 5513 playback of the media ends. 5515 o 4.3.1: Clarified that when there are multiple iterations of a 5516 dialog (using repeatCount attribute) only the results of the last 5517 dialog iteration are reported. 5519 o 4.4.2.2: Added ability to audit capability, as well as 5520 maximum duration of prepared dialogs and of recordings. 5522 o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in 5523 and how reports its status. 5525 o 4: Changed handling of unsupported foreign namespace elements and 5526 attributes. The MS send a 426 error response if it encounters 5527 foreign elements and attributes it does not support. 5529 The following are the major changes between the -00 of this work 5530 group item draft and the individual submission -05 version. 5532 o [IVR01] When the MS sends a notification event in a CONTROL, the 5533 AS sends mandatory 200 response (no extended transaction). 5535 o [IVR23] Added a top-level container element, , with 5536 version attribute. 5538 o Removed term 'basic' in title, description, elements and IANA 5539 registration. Control package name is now 'msc-ivr/1.0'. 5540 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 5541 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 5542 'dialog' and moved version attribute to mscivr element. 5544 o [IVR15] Updated and simplified XML schema. Ordering of child 5545 elements is significant. 5547 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 5548 'soundLevel' and 'clipBegin' to media element. 5550 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 5551 Added 'repeatCount' and 'repeatDur' to dialog element. 5553 o Moved VCR commands from into separate element. 5554 Defined controlinfo element to report runtime control match 5555 information. 5557 o [IVR05] Added to where AS can subscribe 5558 to DTMF key presses (all, control match only, collect match only). 5559 Extended to support associated notification. 5561 o Moved definition of into a separate section. 5563 o [IVR21] Added audit capability: auditing of package capabilities 5564 and managed dialogs 5566 o [IVR21] Explicitly stated that an error must be reported if the 5567 connection or conference referenced in a is not 5568 available at the time the request is processed on the MS. 5570 o Clarified that the rendering mechanism is MS 5571 implementation specific. 5573 o [IVR09]/[IVR10] Clarified attribute definitions and 5574 added 'gender' attribute. 5576 o [IVR16] Clarified that info must be reported in dialogexit, if the 5577 corresponding element is specified in a . For example, if 5578 is specified, then must be specified if the 5579 dialog terminates normally. 5581 o [IVR18] Added 'inactive' value for direction attribute of 5582 . 5584 o [IVR19] Clarified case of on connection/conference 5585 with multiple streams of the same type: recommended to be set 5586 explicitly with s. 5588 o [IVR02] Clarified that multiple dialogs may started simultaneously 5589 on the same connection or conference. 5591 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 5592 in the PREPARED state. 5594 o Added in and for input/output 5595 in other dialog types 5597 o [IVR22] Added fetchtimeout parameter to dialogprepare, 5598 dialogstart, media and grammar elements. 5600 o [IVR04] Added dialogexit status to indicate the connection or 5601 conference has been terminated. Added others status errors. 5603 o [IVR08] Clarified that the operation does not interrupt 5604 playing prompts and that matched DTMF is not available to 5605 or operations during prompt playback. 5607 o [IVR11] Added runtime controls for speed, goto start/end and 5608 external controls. 5610 o Clarified that recordings can be uploaded to dest during or after 5611 the recording operation. 5613 o /: clarified timer handling - timeout refers to 5614 waiting time for collect/record to begin. 5616 o Clarified behavior of immediate attribute on . 5618 o clarified dialogid lifecycle: dialogids can be re-cycled. 5620 o Clarified error handling. 5622 o Editorial tidy up of sections. 5624 o dialogid attribute on is now mandatory. 5626 o Clarified that the duration specified in finalsilence attribute of 5627 is not part of the final recording. 5629 o Clarified that the SRGS XML grammar format is mandatory 5631 The following are the major changes between the -06 of the draft and 5632 the -05 version. 5634 o Event notifications are sent in CONTROL messages with the MS 5635 acting as Control Framework Client. Compared with the previous 5636 approach, this means that a transaction is now 5637 complete when the MS sends a . A new transaction is 5638 initiated by the MS each time the MS sends a notification 5639 to the AS. 5641 o Changed conf-id to conferenceid and connection-id to connectionid. 5643 o Clarification of the state model for dialogs 5645 o : modified definition of src attribute to allow 5646 reference to external dialog documents; added (MIME) type 5647 attribute; removed child element. 5649 o : modified definition of src attribute to allow 5650 reference to external dialog documents; added (MIME) type 5651 attribute; removed child element; 5653 o : modified so that a dialogexit event is always 5654 sent for active dialogs (i.e. the dialogexit event is a 5655 terminating notification) 5657 o notification simplified and make more extensible. Manual 5658 notifications (via element) are removed from the basic 5659 package. A event is defined as child and it 5660 can be extended with additional child elements 5662 o element is removed. 5664 o element removed. 5666 o Replaced dialog templates with a general element. It has 5667 child elements for playing media resource (), collecting 5668 DTMF () and recording (). The functionality is 5669 largely unchanged. 5671 o and are extended with child 5672 element. 5674 o is extended with a element which contains 5675 status and reported information (replacement for output parameters 5676 in template dialogs) 5678 o Prompts: now structured as a element with , 5679 and children. The element has xml:base 5680 attribute, bargein, iterations, duration, volume and offset 5681 attributes. The speed attribute is removed. A element 5682 has src and type attributes. The maxage and maxstale attributes 5683 are removed. 5685 o DTMF input: parameters now specified as attributes of a 5686 element. Custom grammar specified with a element as 5687 child of element. Added 'escapekey' to allow the dialog 5688 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 5689 to allow the prompts to paused/resumed. Added 'volumeinterval', 5690 'volupkey' and voldnkey' to add prompt volume to be increased/ 5691 decreased. Moved 'bargein' attribute to prompt. 5693 o Recording: parameters now specified as attributes of 5694 element. Added 'dest' and 'beep' attributes. 5696 The following are the major changes between the -05 of the draft and 5697 the -04 version. 5699 o Mainly an alignment/evaluation exercise with requirements produced 5700 by MEDIACTRL IVR design team. 5702 o playannouncement parameters from Table 7 of '04' version are now 5703 reflected in text - schema to be updated. 5705 o Added VCR commands based on MSCML. 5707 The following are the major changes between the -04 of the draft and 5708 the -03 version. 5710 o None. 5712 The following are the major changes between the -03 of the draft and 5713 the -02 version. 5715 o added "basicivr:" protocol to template dialog types which must be 5716 supported as values of the "src" attribute in and 5717 . Note alternative: "/basicivr/playannouncement" 5718 offered in [RFC4240]. 5720 o added "basicivr:" URI schema to IANA considerations 5722 o Added mimetype, vadinitial and vadfinal parameters to 5723 'promptandrecord' dialog type 5725 o updated references 5727 The following are the major changes between the -02 of the draft and 5728 the -01 version. 5730 o added version 1.0 to package name 5732 o separate section for element definitions 5734 o dialogterminate treated as request rather than notification 5736 o simplified responses: single element 5738 o removed response elements: , , 5739 , 5741 o simplified event notifications to single element carried 5742 in a REPORT 5744 o element replaced with 5746 o removed element 5748 o added element as child of 5750 o removed 'type' attribute from and 5752 o added dialogid attribute to and 5754 o removed template "Sample Implementation" section 5756 o renamed to 5757 o re-organized so that template details after general package 5758 framework and element description. 5760 The following are the primary changes between the -01 of the draft 5761 and the -00 version. 5763 o Removed requirement for VoiceXML dialog support 5765 o Added requirement for template dialog support 5767 10. Contributors 5769 Asher Shiratzky provided valuable support and contributions to the 5770 early versions of this document. 5772 The authors would like to thank the IVR design team consisting of 5773 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary 5774 Barnes and Steve Buko who provided valuable feedback, input and text 5775 to this document. 5777 11. Acknowledgments 5779 The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave 5780 Burke, Dan York and Steve Buko for expert reviews of this work. 5782 Ben Campbell carried out the RAI expert review on this specification 5783 and provided a great deal of invaluable input. Donald Eastlake 5784 carried out a thorough security review. 5786 12. Appendix A: Using VoiceXML as a dialog language 5788 The IVR control package allows, but does not require, the MS to 5789 support other dialog languages by referencing an external dialog 5790 document. This appendix provides MS implementations which support 5791 the VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with 5792 additional details about using these dialogs in this package. 5794 This appendix covers preparing (Section 12.1), starting 5795 (Section 12.2), terminating (Section 12.3) and exiting (Section 12.4) 5796 VoiceXML dialogs as well as handling VoiceXML call transfer 5797 (Section 12.5). 5799 12.1. Preparing a VoiceXML dialog 5801 A VoiceXML dialog is prepared by sending the MS a request containing 5802 a element (Section 4.2.1). The type attribute is set 5803 to "application/voicexml+xml" and the src attribute to the URI of the 5804 VoiceXML document which is to be prepared by the MS. For example: 5806 5807 5810 5812 The VoiceXML dialog environment uses the request as 5813 an opportunity to fetch and validate the initial document indicated 5814 by the src attribute along with any resources referenced in the 5815 VoiceXML document marked as prefetchable. Note that the fetchtimeout 5816 attribute is not defined in VoiceXML for an initial document but the 5817 MS MUST support this attribute in its VoiceXML environment. 5819 The success or failure of the VoiceXML document preparation is 5820 reported in the MS response. For example, if the VoiceXML document 5821 cannot be retrieved, then a 407 error response is returned. If the 5822 document is syntactically invalid according to VoiceXML, then a 400 5823 response is returned. If successful, the response includes a 5824 dialogid attribute whose value the AS can use in 5825 element to start the prepared dialog. 5827 12.2. Starting a VoiceXML dialog 5829 A VoiceXML dialog is started by sending the MS a request containing a 5830 element (Section 4.2.2). If a VoiceXML dialog has 5831 already been prepared using , then the MS starts the 5832 dialog indicated by the prepareddialogid attribute. Otherwise, a new 5833 VoiceXML dialog can be started by setting the type attribute to 5834 "application/voicexml+xml" and the src attribute to the URI of the 5835 VoiceXML document. For example: 5837 5838 5842 5844 Note that the fetchtimeout attribute is not defined in VoiceXML for 5845 an initial document but the MS MUST support this attribute in its 5846 VoiceXML environment. Note also that support for 5847 subscriptions (Section 4.2.2.1.1) and their associated dialog 5848 notification events is not defined in VoiceXML. If such a 5849 subscription is specified in a request, then the MS 5850 sends a 439 error response (see Section 4.5). 5852 The success or failure of starting a VoiceXML dialog is reported in 5853 the MS response as described in Section 4.2.2. 5855 When the MS starts a VoiceXML dialog, the MS MUST map session 5856 information into VoiceXML session variable object. There are 3 types 5857 of session information: protocol information (Section 12.2.1), media 5858 stream information (Section 12.2.2) and parameter information 5859 (Section 12.2.3). 5861 12.2.1. Session protocol information 5863 If the connectionid attribute is specified, the MS assigns protocol 5864 information from the SIP dialog associated with the connection to the 5865 following session variables in VoiceXML: 5867 session.connection.local.uri Evaluates to the SIP URI specified in 5868 the To: header of the initial INVITE 5870 session.connection.remote.uri Evaluates to the SIP URI specified in 5871 the From: header of the initial INVITE 5873 session.connection.originator Evaluates to the value of 5874 session.connection.remote (MS receives inbound connections but 5875 does not create outbound connections) 5877 session.connection.protocol.name Evaluates to "sip". Note that this 5878 is intended to reflect the use of SIP in general, and does not 5879 distinguish between whether the connection accesses the MS via SIP 5880 or SIPS procedures. 5882 session.connection.protocol.version Evaluates to "2.0". 5884 session.connection.redirect This array is populated by information 5885 contained in the History-Info ([RFC4244]) header in the initial 5886 INVITE or is otherwise undefined. Each entry (hi-entry) in the 5887 History-Info header is mapped, in reverse order, into an element 5888 of the session.connection.redirect array. Properties of each 5889 element of the array are determined as follows: 5891 uri Set to the hi-targeted-to-uri value of the History-Info entry 5893 pi Set to 'true' if hi-targeted-to-uri contains a 5894 'Privacy=history' parameter, or if the INVITE Privacy header 5895 includes 'history'; 'false' otherwise 5897 si Set to the value of the 'si' parameter if it exists, undefined 5898 otherwise 5900 reason Set verbatim to the value of the 'Reason' parameter of hi- 5901 targeted-to-uri 5903 session.connection.aai Evaluates to the value of a SIP header with 5904 the name "aai" if present; otherwise undefined. 5906 session.connection.protocol.sip.requesturi This is an associative 5907 array where the array keys and values are formed from the URI 5908 parameters on the SIP Request-URI of the initial INVITE. The 5909 array key is the URI parameter name. The corresponding array 5910 value is obtained by evaluating the URI parameter value as a 5911 string. In addition, the array's toString() function returns the 5912 full SIP Request-URI. 5914 session.connection.protocol.sip.headers This is an associative array 5915 where each key in the array is the non-compact name of a SIP 5916 header in the initial INVITE converted to lower-case (note the 5917 case conversion does not apply to the header value). If multiple 5918 header fields of the same field name are present, the values are 5919 combined into a single comma-separated value. Implementations 5920 MUST at a minimum include the Call-ID header and MAY include other 5921 headers. For example, 5922 session.connection.protocol.sip.headers["call-id"] evaluates to 5923 the Call-ID of the SIP dialog. 5925 If a conferenceid attribute is specified, then the MS populates the 5926 following session variables in VoiceXML: 5928 session.conference.name Evaluates to the value of the conferenceid 5929 attribute 5931 12.2.2. Session media stream information 5933 The media streams of the connection or conference to use for the 5934 dialog are described in Section 4.2.2, including use of 5935 elements (Section 4.2.2.2) if specified. The MS maps media stream 5936 information into the VoiceXML session variable 5937 session.connection.protocol.sip.media for a connection, and 5938 session.conference.media for a conference. In both variables, the 5939 value of the variable is an array where each array element is an 5940 object with the following properties: 5942 type This required property indicates the type of the media 5943 associated with the stream (see Section 4.2.2.2 type 5944 attribute definition) 5946 direction This required property indicates the directionality of the 5947 media relative to the dialog (see Section 4.2.2.2 5948 direction attribute definition). 5950 format This property is optional. If defined, the value of the 5951 property is an array. Each array element is an object which 5952 specifies information about one format of the media stream. The 5953 object contains at least one property called name whose value is 5954 the subtype of the media format ([RFC4855]). Other properties may 5955 be defined with string values; these correspond to required and, 5956 if defined, optional parameters of the format. 5958 As a consequence of this definition, when a connectionid is specified 5959 there is an array entry in session.connection.protocol.sip.media for 5960 each media stream used by the VoiceXML dialog. For an example, 5961 consider a connection with bi-directional G.711 mu-law audio sampled 5962 at 8kHz where the dialog is started with 5964 5965 5969 5970 5971 5973 In this case, session.connection.protocol.sip.media[0].type evaluates 5974 to "audio", session.connection.protocol.sip.media[0].direction to 5975 "sendonly" (i.e. this dialog only sends media to the connection - it 5976 does not receive media from the connection), and 5977 session.connection.protocol.sip.media[0].format[0].name evaluates to 5978 "audio/PCMU" and 5979 session.connection.protocol.sip.media[0].format[0].rate evaluates to 5980 "8000". 5982 Note that the session variable is updated if the connection or 5983 conference media session characteristics for the VoiceXML dialog 5984 change (e.g. due to a SIP re-INVITE). 5986 12.2.3. Session parameter information 5988 Parameter information is specified in the child element of 5989 , where each parameter is specified using a 5990 element. The MS maps parameter information into VoiceXML session 5991 variables as follows: 5993 session.values This is an associative array mapped to the 5994 element. It is undefined if a element is not specified. 5995 Array keys and values are formed from children of the 5996 element. Each array key is the value of the name 5997 attribute of a element. If the same name is used in more 5998 than one element, then the array key is associated with 5999 the last in document order. The corresponding value for 6000 each key is an object with two required properties: a "type" 6001 property evaluating to the value of the type attribute; and a 6002 "content" property evaluating to the content of the . In 6003 addition, this object's toString() function returns the value of 6004 the "content" property as a string. 6006 For example, a VoiceXML dialog started with one parameter: 6008 6009 6013 6014 playannouncement 6015 6016 6017 6019 In this case, session.values would be defined with one item in the 6020 array where session.values['mode'].type evaluates to "text/plain" 6021 (the default value), session.values['mode'].content evaluates to 6022 "playannouncement" and session.values['mode'].toString() also 6023 evaluates to "playannouncement". 6025 The MS sends an error response (see Section 4.2.2) if a is 6026 not supported by the MS (e.g. the parameter type is not supported). 6028 12.3. Terminating a VoiceXML dialog 6030 When the MS receives a request with a element 6031 (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event 6032 into the specified VoiceXML dialog. Note that if the immediate 6033 attribute has the value true, then the MS MUST NOT return 6034 information when the VoiceXML dialog exits (even if the VoiceXML 6035 dialog provides such information) - see Section 12.4. 6037 If the connection or conference associated with the VoiceXML dialog 6038 terminates, then the MS throws a 'connection.disconnect.hangup' event 6039 into the specified VoiceXML dialog. 6041 12.4. Exiting a VoiceXML dialog 6043 The MS sends a notification event (Section 4.2.5.1) when 6044 the VoiceXML dialog is complete, has been terminated or because it 6045 exits due to an error. The status attribute specifies 6046 the status of the VoiceXML dialog when it exits and its 6047 child element specifies information, if any, returned from the 6048 VoiceXML dialog. 6050 A VoiceXML dialog exits when it processes a element, a 6051 element or an implicit exit according to the VoiceXML FIA. If 6052 the VoiceXML dialog executes a and then subsequently 6053 executes an with namelist information, the namelist 6054 information from the element is discarded. 6056 The MS reports namelist variables in the element of the 6057 . Each reports on a namelist variable. The MS 6058 set the name attribute to the name of the VoiceXML variable. 6059 The MS sets the type attribute according to the type of the 6060 VoiceXML variable. The MS sets the type to 'text/plain' when 6061 the VoiceXML variable is a simple ECMAScript value. If the VoiceXML 6062 variable is a recording, the MS sets the type to the MIME 6063 media type of the recording and encodes the recorded content as CDATA 6064 in the (see Section 4.2.6.1 for an example). If the VoiceXML 6065 variable is a complex ECMAScript value (e.g. object, array, etc), the 6066 MS sets the type to 'application/json' and converts the 6067 variable value to its JSON value equivalent ([RFC4627]. The behavior 6068 resulting from specifying an ECMAScript object with circular 6069 references is not defined. 6071 If the expr attribute is specified on the VoiceXML element 6072 instead of the namelist attribute, the MS creates a element 6073 with the reserved name '__exit', the type 'text/plain' and the 6074 content of the expr attribute. To allow the AS to differentiate 6075 between a notification event resulting from a VoiceXML 6076 from one resulting from an , the MS creates a 6077 with the reserved name '__reason', the type 'text/plain', and 6078 a value of "disconnect" (without brackets) to reflect the use of 6079 VoiceXML's element, and the value of "exit" (without 6080 brackets) to an explicit in the VoiceXML dialog. If the 6081 VoiceXML session terminates for other reasons (such as encountering 6082 an error), this parameter MAY be omitted or take on platform-specific 6083 values prefixed with an underscore. 6085 Table 2 provides some examples of VoiceXML usage and the 6086 corresponding element in the notification 6087 event. It assumes the following VoiceXML variable names and values: 6088 userAuthorized=true, pin=1234 and errors=0. The type 6089 attributes ('text/plain') are omitted for clarity. 6091 +------------------------+------------------------------------------+ 6092 | Usage | Result | 6093 +------------------------+------------------------------------------+ 6094 | | exit | 6096 | | | 6097 | | exit 5 | 6100 | | | 6101 | | exit 'done' | 6104 | | | 6105 | | name="__reason">exit true | 6108 | | | 6109 | | name="__reason">exit 1234 0 | 6113 +------------------------+------------------------------------------+ 6115 Table 2: VoiceXML mapping examples 6117 12.5. Call Transfer 6119 While VoiceXML is at its core a dialog language, it also provides 6120 optional call transfer capability. It is NOT RECOMMENDED to use 6121 VoiceXML's call transfer capability in networks involving Application 6122 Servers. Rather, the AS itself can provide call routing 6123 functionality by taking signaling actions based on the data returned 6124 to it, either through VoiceXML's own data submission mechanisms or 6125 through the mechanism described in Section 12.4. If the MS 6126 encounters a VoiceXML dialog requesting call transfer capability, the 6127 MS SHOULD raise an error event in the VoiceXML dialog execution 6128 context: an error.unsupported.transfer.blind event if blind transfer 6129 is requested, error.unsupported.transfer.bridge if bridge transfer is 6130 requested, or error.unsupported.transfer.consultation if consultation 6131 transfer is requested. 6133 13. References 6135 13.1. Normative References 6137 [I-D.ietf-mediactrl-sip-control-framework] 6138 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 6139 Control Channel Framework", 6140 draft-ietf-mediactrl-sip-control-framework-09 (work in 6141 progress), February 2009. 6143 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 6144 Requirement Levels", BCP 14, RFC 2119, March 1997. 6146 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 6147 Types", RFC 3023, January 2001. 6149 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 6150 Resource Identifier (URI): Generic Syntax", STD 66, 6151 RFC 3986, January 2005. 6153 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 6154 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 6156 [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying 6157 Languages", BCP 47, RFC 4646, September 2006. 6159 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 6160 BCP 47, RFC 4647, September 2006. 6162 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 6163 Specification Version 1.0", W3C Recommendation, 6164 March 2004. 6166 [W3C.REC-SMIL2-20051213] 6167 Bulterman, D., Layaida, N., Jansen, J., Michel, T., 6168 Zucker, D., Mullender, S., Koivisto, A., and G. Grassel, 6169 "Synchronized Multimedia Integration Language (SMIL 2.1)", 6170 World Wide Web Consortium Recommendation REC-SMIL2- 6171 20051213, December 2005, 6172 . 6174 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 6175 and F. Yergeau, "Extensible Markup Language (XML) 1.0 6176 (Third Edition)", W3C Recommendation, February 2004. 6178 [XMLSchema:Part2] 6179 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 6180 Second Edition", W3C Recommendation, October 2004. 6182 13.2. Informative References 6184 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 6185 1.0", W3C Working Draft (work in progress), January 2007. 6187 [H.248.9] "Gateway control protocol: Advanced media server 6188 packages", ITU-T Recommendation H.248.9. 6190 [I-D.ietf-xcon-common-data-model] 6191 Novo, O., Camarillo, G., Morgan, D., Even, R., and J. 6192 Urpalainen, "Conference Information Data Model for 6193 Centralized Conferencing (XCON)", 6194 draft-ietf-xcon-common-data-model-12 (work in progress), 6195 October 2008. 6197 [IANA] "IANA registry for RTP Payload Types", 6198 . 6200 [MIME.mediatypes] 6201 "IANA registry for MIME Media Types", 6202 . 6204 [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session 6205 Markup Language (MSML)", draft-saleem-msml-08 (work in 6206 progress), February 2009. 6208 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 6209 Package", RFC 2897, August 2000. 6211 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 6212 A., Peterson, J., Sparks, R., Handley, M., and E. 6213 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 6214 June 2002. 6216 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 6217 Media Services with SIP", RFC 4240, December 2005. 6219 [RFC4244] Barnes, M., "An Extension to the Session Initiation 6220 Protocol (SIP) for Request History Information", RFC 4244, 6221 November 2005. 6223 [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media 6224 Types: application/voicexml+xml, application/ssml+xml, 6225 application/srgs, application/srgs+xml, application/ 6226 ccxml+xml, and application/pls+xml", RFC 4267, 6227 November 2005. 6229 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 6230 Parameter for "Bucket" Media Types", RFC 4281, 6231 November 2005. 6233 [RFC4627] Crockford, D., "The application/json Media Type for 6234 JavaScript Object Notation (JSON)", RFC 4627, July 2006. 6236 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 6237 (SIP) Event Package for Key Press Stimulus (KPML)", 6238 RFC 4730, November 2006. 6240 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 6241 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 6242 December 2006. 6244 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 6245 Formats", RFC 4855, February 2007. 6247 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 6248 Control Markup Language (MSCML) and Protocol", RFC 5022, 6249 September 2007. 6251 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 6252 Requirements", RFC 5167, March 2008. 6254 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 6255 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 6256 and S. Tryphonas, "Voice Extensible Markup Language 6257 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 6259 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 6260 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 6261 A., Porter, B., and K. Rehor, "Voice Extensible Markup 6262 Language (VoiceXML) Version 2.1", W3C Recommendation, 6263 June 2007. 6265 [VXML30] McGlashan, S., Auburn, RJ., Baggia, P., Barnett, J., 6266 Bodell, M., Burnett, D., Carter, J., Oshry, M., Rehor, K., 6267 Young, M., and R. Hosn, "Voice Extensible Markup Language 6268 (VoiceXML) Version 3.0", W3C Working Draft, December 2008. 6270 Authors' Addresses 6272 Scott McGlashan 6273 Hewlett-Packard 6274 Gustav III:s boulevard 36 6275 SE-16985 Stockholm, Sweden 6277 Email: scott.mcglashan@hp.com 6279 Tim Melanchuk 6280 Rain Willow Communications 6282 Email: tim.melanchuk@gmail.com 6284 Chris Boulton 6285 NS-Technologies 6287 Email: chris@ns-technologies.com