idnits 2.17.00 (12 Aug 2021) /tmp/idnits24809/draft-ietf-mediactrl-ivr-control-package-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 19. -- Found old boilerplate from RFC 3978, Section 5.5, updated by RFC 4748 on line 5012. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 5023. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 5030. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 5036. 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 6 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 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 (October 7, 2008) is 4973 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 3957, but not defined == Missing Reference: 'IVR-200' is mentioned on line 4503, but not defined == Missing Reference: 'IVR-201' is mentioned on line 4521, but not defined == Missing Reference: 'IVR01' is mentioned on line 4600, but not defined == Missing Reference: 'IVR23' is mentioned on line 4603, but not defined == Missing Reference: 'IVR15' is mentioned on line 4612, but not defined == Missing Reference: 'IVR06' is mentioned on line 4615, but not defined == Missing Reference: 'IVR05' is mentioned on line 4625, but not defined == Missing Reference: 'IVR21' is mentioned on line 4634, but not defined == Missing Reference: 'IVR16' is mentioned on line 4644, but not defined == Missing Reference: 'IVR18' is mentioned on line 4649, but not defined == Missing Reference: 'IVR19' is mentioned on line 4652, but not defined == Missing Reference: 'IVR02' is mentioned on line 4656, but not defined == Missing Reference: 'IVR20' is mentioned on line 4659, but not defined == Missing Reference: 'IVR22' is mentioned on line 4665, but not defined == Missing Reference: 'IVR04' is mentioned on line 4668, but not defined == Missing Reference: 'IVR08' is mentioned on line 4671, but not defined == Missing Reference: 'IVR11' is mentioned on line 4675, but not defined == 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 4281 (Obsoleted by RFC 6381) Summary: 3 errors (**), 0 flaws (~~), 24 warnings (==), 11 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group S. McGlashan 3 Internet-Draft Hewlett-Packard 4 Intended status: Standards Track T. Melanchuk 5 Expires: April 10, 2009 Rain Willow Communications 6 C. Boulton 7 Avaya 8 October 7, 2008 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-01 14 Status of this Memo 16 By submitting this Internet-Draft, each author represents that any 17 applicable patent or other IPR claims of which he or she is aware 18 have been or will be disclosed, and any of which he or she becomes 19 aware will be disclosed, in accordance with Section 6 of BCP 79. 21 Internet-Drafts are working documents of the Internet Engineering 22 Task Force (IETF), its areas, and its working groups. Note that 23 other groups may also distribute working documents as Internet- 24 Drafts. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference 29 material or to cite them other than as "work in progress." 31 The list of current Internet-Drafts can be accessed at 32 http://www.ietf.org/ietf/1id-abstracts.txt. 34 The list of Internet-Draft Shadow Directories can be accessed at 35 http://www.ietf.org/shadow.html. 37 This Internet-Draft will expire on April 10, 2009. 39 Abstract 41 This document defines a Media Control Channel Framework Package for 42 Interactive Voice Response (IVR) dialog interaction on media 43 connections and conferences. The package defines dialog management 44 request elements for preparing, starting and terminating dialog 45 interactions, as well as associated responses and notifications. 46 Dialog interactions are specified in a dialog language. This package 47 defines a lightweight IVR dialog language (supporting prompt 48 playback, runtime controls, DTMF collect and media recording) and 49 allows other dialog languages to be used. The package also defines 50 elements for auditing package capabilities and IVR dialogs. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 55 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9 56 3. Control Package Definition . . . . . . . . . . . . . . . . . 10 57 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10 58 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 59 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 60 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 61 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 62 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 63 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13 64 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 13 65 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15 66 4.2.1. . . . . . . . . . . . . . . . . . . . 18 67 4.2.2. . . . . . . . . . . . . . . . . . . . . 20 68 4.2.2.1. . . . . . . . . . . . . . . . . . . . 23 69 4.2.2.1.1. . . . . . . . . . . . . . . . . . . 24 70 4.2.2.2. . . . . . . . . . . . . . . . . . . . . 25 71 4.2.2.2.1. . . . . . . . . . . . . . . . . . . 26 72 4.2.3. . . . . . . . . . . . . . . . . . . 26 73 4.2.4. . . . . . . . . . . . . . . . . . . . . . 27 74 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 29 75 4.2.5.1. . . . . . . . . . . . . . . . . . . 29 76 4.2.5.2. . . . . . . . . . . . . . . . . . . 30 77 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 31 78 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 31 79 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 32 80 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 34 81 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 36 82 4.3.1.1.1. . . . . . . . . . . . . . . . . . . . 37 83 4.3.1.1.2. . . . . . . . . . . . . . . . . . 38 84 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . 40 85 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 41 86 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 43 87 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 45 88 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 47 89 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 51 90 4.3.2.1. . . . . . . . . . . . . . . . . . . 51 91 4.3.2.2. . . . . . . . . . . . . . . . . . . 51 92 4.3.2.2.1. . . . . . . . . . . . . . . . 51 93 4.3.2.3. . . . . . . . . . . . . . . . . . . 51 94 4.3.2.4. . . . . . . . . . . . . . . . . . . 52 95 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 52 96 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 53 97 4.4.2. . . . . . . . . . . . . . . . . . . . 54 98 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 56 99 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 56 100 4.4.2.2. . . . . . . . . . . . . . . . . . 57 101 4.4.2.2.1. . . . . . . . . . . . . . . 59 102 4.4.2.2.2. . . . . . . . . . . . . . . . 60 103 4.4.2.2.3. . . . . . . . . . . . . . . . . 60 104 4.4.2.2.4. . . . . . . . . . . . . . . . . 60 105 4.4.2.2.5. . . . . . . . . . . . . . . . . . 61 106 4.4.2.2.5.1. . . . . . . . . . . . . . 61 107 4.4.2.2.6. . . . . . . . . . . . . 62 108 4.4.2.2.7. . . . . . . . . . . . . . 62 109 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 62 110 4.4.2.3.1. . . . . . . . . . . . . . . . . 62 111 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 63 112 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 65 113 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 67 114 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 91 115 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 91 116 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 91 117 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 92 118 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 92 119 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 93 120 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 94 121 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 94 122 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 95 123 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 97 124 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 98 125 6.2.5. Subscriptions and notifications . . . . . . . . . . . 98 126 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 99 127 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 100 128 7. Security Considerations . . . . . . . . . . . . . . . . . . . 102 129 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 103 130 8.1. Control Package Registration . . . . . . . . . . . . . . 103 131 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 103 132 8.3. Mime Type Registration . . . . . . . . . . . . . . . . . 103 133 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 104 134 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 112 135 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 113 136 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 114 137 12.1. Normative References . . . . . . . . . . . . . . . . . . 114 138 12.2. Informative References . . . . . . . . . . . . . . . . . 115 139 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 117 140 Intellectual Property and Copyright Statements . . . . . . . . . 118 142 1. Introduction 144 The Media Control Channel Framework 145 ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic 146 approach for establishment and reporting capabilities of remotely 147 initiated commands. The Control Framework utilizes many functions 148 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 149 rendezvous and establishment of a reliable channel for control 150 interactions. The Control Framework also introduces the concept of a 151 Control Package. A Control Package is an explicit usage of the 152 Control Framework for a particular interaction set. This document 153 defines a Control Package for Interactive Voice Response (IVR) 154 dialogs on media connections and conferences. The term 'dialog' in 155 this document refers to an IVR dialog and is completely unrelated to 156 the notion of a SIP dialog. The term 'IVR' is used in its inclusive 157 sense, allowing media other than voice for dialog interaction. 159 The package defines dialog management request elements for preparing, 160 starting and terminating dialog interactions, as well as associated 161 responses and notifications. Dialog interactions are specified using 162 a dialog language where the language specifies a well-defined syntax 163 and semantics for permitted operations (play a prompt, record input 164 from the user, etc). This package defines a own lightweight IVR 165 dialog language (supporting prompt playback, runtime controls, DTMF 166 collect and media recording) and allows other dialog languages to be 167 used. These dialog languages are specified inside dialog management 168 elements for preparing and starting dialog interactions. The package 169 also defines elements for auditing package capabilities and IVR 170 dialogs. 172 This package has been designed to satisfy the IETF MediaCtrl 173 requirements ([RFC5167]) by building upon two major approaches to IVR 174 dialog design. These approaches address a wide range of IVR use 175 cases and are used in many applications which are extensively 176 deployed today. 178 First, the package is designed to provide the major IVR functionality 179 of SIP Media Server languages such as netann ([RFC4240]), MSCML 180 ([RFC5022]) and MSML ([MSML]) which themselves build upon more 181 traditional non-SIP languages ([H.248.9], [RFC2897]). A key 182 differentiator is that this package provides IVR functionality using 183 the Media Control Channel Framework. 185 Second, its design is aligned with key concepts of web model as 186 defined in W3C Voice Browser languages. The key dialog management 187 mechanism is closely aligned with CCXML ([CCXML10]). The dialog 188 functionality defined in this package can be largely seen as a subset 189 of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, 190 DTMF collection and media recording features are incorporated, but 191 not any advanced VoiceXML constructs (such as
, its 192 interpretation algorithm, or a dynamic data model). As W3C develops 193 VoiceXML 3.0, we expect to see further alignment, especially in 194 providing a set of basic independent primitive elements (such as 195 prompt, collect, record and runtime controls) which can be re-used in 196 different dialog languages. 198 By reusing and building upon design patterns from these approaches to 199 IVR languages, this package is intended to provide a foundation which 200 is familiar to current IVR developers and sufficient for most IVR 201 applications, as well as a path to other languages which address more 202 advanced applications. 204 This control package defines a lightweight IVR dialog language. The 205 scope of this dialog language is the following IVR functionality: 207 o playing one or more media resources as a prompt to the user 209 o runtime controls (including VCR controls like speed and volume) 211 o collecting DTMF input from the user according to a grammar 213 o recording user media input 215 Out of scope for this dialog language are more advanced functions 216 including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), 217 VoiceXML, fax and media transformation. Such functionality may be 218 addressed by other dialog languages (such as VoiceXML) used with this 219 package, extensions to this package (addition of foreign elements or 220 attributes from another namespace) or other control packages. 222 The functionality of this package is defined by messages, containing 223 XML [XML] elements, transported using the Media Control Channel 224 Framework. The XML elements can be divided into three types: dialog 225 management elements; a dialog element which defines a lightweight IVR 226 dialog language used with dialog management elements; and finally, 227 elements for auditing package capabilities as well as dialogs managed 228 by the package. 230 Dialog management elements are designed to manage the general 231 lifecycle of a dialog. Elements are provided for preparing a dialog, 232 starting the dialog on a conference or connection, and terminating 233 execution of a dialog. Each of these elements is contained in a 234 Media Control Channel Framework CONTROL message sent to the media 235 server. When the appropriate action has been executed, the media 236 server sends a REPORT message (or a 200 response to the CONTROL if it 237 can execute in time) with a response element indicating whether the 238 operation was successful or not (e.g. if the dialog cannot be 239 started, then the error is reported in this response). Once a dialog 240 has been successfully started, the media server may send further 241 event notifications in a framework CONTROL message. This package 242 defines two event notifications: a DTMF event indicating the DTMF 243 activity; and a dialogexit event indicating that the dialog has 244 exited. If the dialog has executed successful, the dialogexit event 245 includes information collected during the dialog. If an error occurs 246 during execution (e.g. a media resource failed to play, no recording 247 resource available, etc), then error information is reported in the 248 dialogexit event. Once a dialogexit event is sent, the dialog 249 lifecycle is terminated. 251 The dialog management elements for preparing and starting a dialog 252 specify the dialog using a dialog language. A dialog language has 253 well-defined syntax and semantics for defined dialog operations. 254 Typically dialog languages are written in XML where the root element 255 has a designated XML namespace and, when used as standalone 256 documents, have an associated MIME media type. For example, VoiceXML 257 is an XML dialog language with the root element with the 258 designated namespace 'http://www.w3.org/2001/vxml' and standalone 259 documents are associated with the MIME media type 'application/ 260 vxml+xml' ([RFC4267]). 262 This control package defines its own lightweight IVR dialog language. 263 The language has a root element () with the same designated 264 namespace as used for other elements defined in this package (see 265 Section 8.2). The root element contains child elements for playing 266 prompts to the user, specifying runtime controls, collecting DTMF 267 input from the user and recording media input from the user. The 268 child elements can co-occur so as to provide 'play announcement', 269 'prompt and collect' as well as 'prompt and record' functionality. 271 The dialog management elements for preparing and starting a dialog 272 can specify the dialog language either by including inline a fragment 273 with the root element or by referencing an external dialog document. 274 The dialog language defined in this package is specified inline. 275 Other dialog languages, such as VoiceXML, can be used by referencing 276 an external dialog document. 278 The document is organized as follows. Section 3 describes how this 279 control package fulfills the requirements for a Media Control Channel 280 Framework control package. Section 4 describes the syntax and 281 semantics of defined elements, including dialog management 282 (Section 4.2), the IVR dialog element (Section 4.3) and audit 283 elements (Section 4.4). Section 5 describes an XML schema for these 284 elements and provides extensibility by allowing attributes and 285 elements from other namespaces. Section 6 provides examples of 286 package usage. 288 2. Conventions and Terminology 290 In this document, BCP 14 [RFC2119] defines the key words "MUST", 291 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 292 "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In 293 addition, BCP 15 indicates requirement levels for compliant 294 implementations. 296 The following additional terms are defined for use in this document: 298 Dialog: A dialog performs media interaction with a user following 299 the concept of an IVR (Interactive Voice Response) dialog (this 300 sense of 'dialog' is completely unrelated to a SIP dialog). A 301 dialog is specified as inline XML, or via a URI reference to an 302 external dialog document. Traditional IVR dialogs typically 303 feature capabilities such as playing audio prompts, collecting 304 DTMF input and recording audio input from the user. More 305 inclusive definitions may include support for other media types, 306 runtime controls, synthesized speech, recording and playback of 307 video, recognition of spoken input, and mixed initiative 308 conversations. 310 Application server: A SIP [RFC3261] application server (AS) hosts 311 and executes services such as interactive media and conferencing 312 in an operator's network. An AS influences and impacts the SIP 313 session, in particular by terminating SIP sessions on a media 314 server, which is under its control. 316 Media Server: A media server (MS) processes media streams on behalf 317 of an AS by offering functionality such as interactive media, 318 conferencing, and transcoding to the end user. Interactive media 319 functionality is realized by way of dialogs which are initiated by 320 the application server. 322 3. Control Package Definition 324 This section fulfills the mandatory requirement for information that 325 MUST be specified during the definition of a Control Framework 326 Package, as detailed in Section 8 of 327 [I-D.ietf-mediactrl-sip-control-framework]. 329 3.1. Control Package Name 331 The Control Framework requires a Control Package to specify and 332 register a unique name and version. 334 The name and version of this Control Package is "msc-ivr/1.0" (Media 335 Server Control - Interactive Voice Response - version 1.0). Its IANA 336 registration is specified in Section 8.1. 338 3.2. Framework Message Usage 340 The Control Framework requires a Control Package to explicitly detail 341 the control messages that can be used as well as provide an 342 indication of directionality between entities. This will include 343 which role type is allowed to initiate a request type. 345 This package specifies CONTROL and response messages in terms of XML 346 elements defined in Section 4. These elements describe requests, 347 response and notifications and all are contained within a root 348 element (Section 4.1). 350 In this package, the MS operates as a Control Framework Server in 351 receiving requests from, and sending responses to, the AS (operating 352 as Control Framework Client). Dialog management requests and 353 responses are defined in Section 4.2. Audit requests and responses 354 are defined in Section 4.4. dialog management and audit responses are 355 carried in a framework 200 response or REPORT message bodies. This 356 package's response codes are defined in Section 4.5. 358 Note that package responses are different from framework response 359 codes. Framework error response codes (see Section 8 of 360 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 361 or event notification is invalid; for example, a request is invalid 362 XML (400), or not understood (500). 364 The MS also operates as a Control Framework Client in sending event 365 notification to the AS (Control Framework Server). Event 366 notifications (Section 4.2.5) are carried in CONTROL message bodies. 367 The AS MUST respond with a Control Framework 200 response. 369 3.3. Common XML Support 371 The Control Framework requires a Control Package definition to 372 specify if the attributes for media dialog or conference references 373 are required. 375 This package requires that the XML Schema in Section 17.1 of 376 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 377 media dialogs and conferences. 379 The package uses "connectionid" and "conferenceid" attributes for 380 various element definitions (Section 4). The XML schema (Section 5) 381 imports the definitions of these attributes from the framework 382 schema. 384 3.4. CONTROL Message Body 386 The Control Framework requires a Control Package to define the 387 control body that can be contained within a CONTROL command request 388 and to indicate the location of detailed syntax definitions and 389 semantics for the appropriate body types. 391 When operating as Control Framework Server, the MS receives CONTROL 392 messages body containing an element with either a dialog 393 management or audit request child element. 395 The following dialog management request elements are carried in 396 CONTROL message bodies to MS: (Section 4.2.1), 397 (Section 4.2.2) and 398 (Section 4.2.3)elements. 400 The request element (Section 4.4.1) is also carried in 401 CONTROL message bodies. 403 When operating as Control Framework Client, the MS sends CONTROL 404 messages with a body containing a notification element 405 (Section 4.2.5). 407 3.5. REPORT Message Body 409 The Control Framework requires a control package definition to define 410 the REPORT body that can be contained within a REPORT command 411 request, or that no report package body is required. This section 412 should indicate the location of detailed syntax definitions and 413 semantics for the appropriate body types. 415 When operating as Control Framework Server, the MS sends REPORT 416 bodies containing a element with a response child element. 418 The response element for dialog management requests is a 419 element (Section 4.2.4). The response element for an audit request 420 is a element (Section 4.4.2). 422 3.6. Audit 424 The Control Framework encourages Control Packages to specify whether 425 auditing is available, how it is triggered as well as the query/ 426 response formats. 428 This Control Packages supports auditing of package capabilities and 429 dialogs on the MS. An audit request is carried in a CONTROL messages 430 and an audit response in a REPORT message (or a 200 response to the 431 CONTROL if it can execute the audit in time). 433 The syntax and semantics of audit request and response elements is 434 defined in Section 4.4. 436 4. Element Definitions 438 This section defines the XML elements for this package. The elements 439 are defined in the XML namespace specified in Section 8.2. 441 The root element is (Section 4.1). All other XML elements 442 (requests, responses and notification elements) are contained within 443 it. Child elements describe dialog management (Section 4.2) and 444 audit (Section 4.4) functionality. The IVR dialog element (contained 445 within dialog management elements) is defined in Section 4.3. 446 Response status codes are defined in Section 4.5 and type definitions 447 in Section 4.6. 449 Implementation of this control package MUST adhere to the syntax and 450 semantics of XML elements defined in this section and the schema 451 (Section 5). The XML schema supports extensibility by allowing 452 attributes and elements from other namespaces. Implementations MAY 453 support attributes and elements from other (foreign) namespaces. If 454 an MS implementation receives a element containing 455 attributes or elements from another namespace which it does not 456 support, the MS MUST send a 426 response (Section 4.5). 458 Attributes and elements from foreign namespaces are not described in 459 this section. In all other cases where there is a difference in 460 constraints between the XML schema and the textual description of 461 elements in this section, the textual definition takes priority. 463 Some elements in this control package contain attributes whose value 464 is a URI. These elements include: (Section 4.2.1), 465 (Section 4.2.2), (Section 4.3.1.1.1), 466 (Section 4.3.1.3.1), and (Section 4.3.1.4). While this 467 package is agnostic to the URI schemes supported by the MS, it is 468 RECOMMENDED that the MS support one or more schemes using 469 communication protocols suitable for fetching resources (e.g. HTTP). 471 Usage examples are provided in Section 6. 473 4.1. 475 The element has the following attributes (in addition to 476 standard XML namespace attributes such as xmlns): 478 version: a string specifying the mscivr package version. The value 479 is fixed as '1.0' for this version of the package. The attribute 480 is mandatory. 482 The element has the following defined child elements, only 483 one of which can occur: 485 1. dialog management elements defined in Section 4.2: 487 prepare a dialog. See Section 4.2.1 489 start a dialog. See Section 4.2.2 491 terminate a dialog. See Section 4.2.3 493 response to a dialog request. See Section 4.2.4 495 dialog or subscription notification. See Section 4.2.5 497 2. audit elements defined in Section 4.4: 499 audit package capabilities and managed dialogs. See 500 Section 4.4.1 502 response to an audit request. See Section 4.4.2 504 For example, a request to the MS to start an IVR dialog playing a 505 prompt: 507 508 509 510 511 512 513 514 516 and a response from the MS that the dialog started successfully: 518 519 520 522 and finally a notification from the MS indicating that the dialog 523 exited upon completion of playing the prompt: 525 526 527 528 529 530 531 533 4.2. Dialog Management Elements 535 This section defines the dialog management XML elements for this 536 control package. These elements are divided into requests, responses 537 and notifications. 539 Request elements are sent to the MS to request a specific dialog 540 operation to be executed. The following request elements are 541 defined: 543 : prepare a dialog for later execution 545 : start a (prepared) dialog on a connection or 546 conference 548 : terminate a dialog 550 Responses from the MS describe the status of the requested operation. 551 Responses are specified in a element (Section 4.2.4). The 552 MS MUST respond to a request message with a response message. If the 553 MS is not able to process the request and carry out the dialog 554 operation, it is an error and the MS MUST indicate the error in the 555 status code of the response. Both general error codes (e.g. syntax 556 errors such as missing elements or attributes) as well as request- 557 specific status codes (e.g. invalid connectionid) are defined in 558 Section 4.5 560 Notifications are sent from the MS to provide updates on the status 561 of a dialog or operations defined within the dialog. Notifications 562 are specified in an element (Section 4.2.5). 564 +---------+ 565 | IDLE | 566 +---------+ 567 | | 568 | | 569 /| |/ 570 | | 571 +---------+ | | +---------+ 572 +-----<--| |<--------+ +------------>| |+------>-+ 573 | +-<----|PREPARING| |STARTING | | 574 | | | | ----------->| |---->--+ | 575 | | +---------+ / +---------+ | | 576 | | | / | | | 577 | | |/200 response / /200 response| | | 578 | | | / | | | 579 | | | / | | | 580 | | | / | | | 581 V V v // v | | 582 | | +---------+ / +---------+ | | 583 | | | |--------+ +----| | | | 584 | | |PREPARED |---------+ | | STARTED | | | 585 | | | | | +--->| | | | 586 | | | |--------+| /| | | | 587 | | +---------+ || 200 response +---------+ | | 588 | | || | | | 589 | | /dialogexit notification|| | | | 590 | | (timeout) || | | | 591 | | || | | | 592 | | || | | | 593 | | || | | | 594 | | ||/ | | | 595 | | || 200 response | | | 596 | | || |/dialogexit | | 597 | | || | notification | | 598 | | || | | | 599 | | || | | | 600 | | vv | | | 601 | | /ERROR response +-----------+ | | | 602 | +---------------------->| |<----------+ /ERROR response| | 603 +------------------------>|TERMINATED |<---------------------------+ | 604 / | |<-----------------------------+ 605 414 response +-----------+ /414 response 607 Figure 1: Dialog Lifecycle 609 The MS implementation MUST adhere to the dialog lifecycle shown in 610 Figure 1, where each dialog has the following states: 612 IDLE: the dialog is uninitialized. 614 PREPARING: the dialog is being prepared. The dialog is assigned a 615 valid dialog identifier (see below). If an error occurs the 616 dialog transitions to the TERMINATED state and the MS MUST send a 617 response indicating the error type. If the dialog is terminated 618 before preparation is complete, the dialog transitions to the 619 TERMINATED state and the MS MUST send a 414 response (Section 4.5) 620 for the prepare request. 622 PREPARED: the dialog has been successfully prepared and the MS MUST 623 send a response indicating the prepare operation was successful. 624 If the dialog is then terminated, the dialog transitions to the 625 TERMINATED state. If the duration the dialog remains in the 626 PREPARED state exceeds the maximum preparation duration, the 627 dialog transitions to the TERMINATED state and the MS MUST send a 628 dialogexit notification with an error status code (Section 4.5). 629 A maximum preparation duration of 30s is RECOMMENDED. 631 STARTING: the dialog is being started. If the dialog has not 632 already been prepared, it is first prepared and assigned a valid 633 dialog identifier (see below). If an error occurs the dialog 634 transitions to the TERMINATED state and the MS MUST send a 635 response indicating the error type. If the dialog is terminated, 636 the dialog transitions to the TERMINATED state and the MS MUST a 637 414 response (Section 4.5) for the start request. 639 STARTED: the dialog has been successfully started and is now active. 640 The MS MUST send a response indicating the start operation was 641 successful. If any dialog events occurs which were subscribed to, 642 the MS MUST send a notifications when the dialog event occurs. 643 When the dialog exits (due to normal termination, an error or a 644 terminate request), the MS MUST send a dialogexit notification 645 event and the dialog transitions to the TERMINATED state. 647 TERMINATED: the dialog is terminated and its dialog identifier is no 648 longer valid. Dialog notifications MUST NOT be sent for this 649 dialog. 651 Each dialog has a valid identifier until it transitions to a 652 TERMINATED state. The dialog identifier is assigned by the MS unless 653 the or request already specifies a 654 identifier (dialogid) which is not associated with any other dialog 655 on the MS. Once a dialog is in a TERMINATED state, its dialog 656 identifier is no longer valid and can be reused for another dialog. 658 The identifier is used to reference the dialog in subsequent 659 requests, responses and notifications. In a request, 660 the dialog identifier can be specified in the prepareddialogid 661 attribute indicating the prepared dialog to start. In 662 and requests, the dialog identifier is 663 specified in the dialogid attribute, indicating which dialog is to be 664 terminated or audited respectively. If these requests specify a 665 dialog identifier already associated with another dialog, the MS MUST 666 send a response with a 401 status code (Section 4.5) and the same 667 dialogid as in the request. The MS MUST specify a dialog identifier 668 in notifications associated with the dialog. The MS MUST specify a 669 dialog identifier in responses unless it is a response to a 670 request without any dialog identifier specified. 672 For a given dialog, the or request 673 elements specify the dialog content to execute either by including 674 inline a element (the dialog language defined in this 675 package, see Section 4.3) or by referencing an external dialog 676 document (a dialog language defined outside this package). When 677 referencing an external dialog document, the request element contains 678 a URI reference to the remote document (specifying the dialog 679 definition) and, optionally, a type attribute indicating the MIME 680 media type associated with the dialog document. Consequently, the 681 dialog language associated with a dialog on the MS is identified 682 either inline by a child element or by a src attribute 683 referencing a document containing the dialog language. The MS MUST 684 support inline the IVR dialog language defined in Section 4.3. The 685 MS MAY support other dialog languages by reference. 687 4.2.1. 689 The request is sent to the MS to request preparation 690 of a dialog. Dialog preparation consists of (a) retrieving external 691 dialog document and resources (if required), and (b) validating the 692 dialog document syntactically and semantically. 694 A prepared dialog is executed when the MS receives a 695 request referencing the prepared dialog identifier (see 696 Section 4.2.2). 698 The element has the following attributes: 700 src: specifies the location of an external dialog document to 701 prepare. A valid value is a URI (see Section 4.6.9). If the URI 702 scheme is unknown or unsupported, the MS MUST send a 703 with a 415 status code (Section 4.5). If the document cannot be 704 retrieved, the MS MUST send a with a 410 status code. 705 If the document contains a type of dialog which the MS does not 706 supported, the MS MUST send a with a 409 status code. 707 The attribute is optional. There is no default value. 709 type: specifies the type of the external dialog document indicated 710 in the 'src' attribute. A valid value is a MIME media type (see 711 Section 4.6.10). The MS MAY use the value to assist the remote 712 source in selecting the appropriate resource type (e.g. with HTTP 713 'accept' header) and to determine how the document is to be 714 processed if the protocol does not provide an authoritative MIME 715 media type for the returned resource. The attribute is optional. 717 fetchtimeout: the maximum interval to wait when fetching an external 718 dialog document. A valid value is a Time Designation (see 719 Section 4.6.7). If the external document cannot be fetched within 720 the maximum interval, the MS MUST send a with a 417 721 status code (Section 4.5). The attribute is optional. The 722 default value is 30s. 724 dialogid: string indicating a unique name for the dialog. If a 725 dialog with the same name already exists on the MS, the MS MUST 726 send a with a 401 status code (Section 4.5). If this 727 attribute is not specified, the MS MUST create a unique name for 728 the dialog (see Section 4.2 for dialog identifier assignment). 729 The attribute is optional. There is no default value. 731 The element has one optional child element: 733 an IVR dialog (Section 4.3) to prepare. The element is 734 optional. 736 The dialog to prepare can either be specified inline with a 737 child element or externally (for dialog languages defined outside 738 this specification) using the src attribute. It is a syntax error if 739 both an inline element element and a src attribute are 740 specified and the MS MUST send a with a 418 status code 741 (Section 4.5). The type and fetchtimeout attributes are only 742 relevant when a dialog is specified as an external document. 744 For example, a request to prepare an inline IVR 745 dialog with a single prompt: 747 748 749 750 751 752 753 754 755 756 In this example, a request with a specified dialogid to prepare a 757 VoiceXML dialog document located externally: 759 760 763 765 Since MS support for dialog languages other than the IVR dialog 766 language defined in this package is optional, if the MS does not 767 support the dialog language it would send a response with the status 768 code 409 (Section 4.5). 770 4.2.2. 772 The element is sent to the MS to start a dialog. If 773 the dialog has not been prepared, the dialog is prepared (retrieving 774 an external document and resources if necessary, and the dialog 775 document validated syntactically and semantically). Media processors 776 (e.g. DTMF and prompt queue) are activated and associated with the 777 specified connection or conference. 779 The element has the following attributes: 781 src: specifies the location of an external dialog document to start. 782 A valid value is a URI (see Section 4.6.9). If the URI scheme is 783 unknown or unsupported, the MS MUST send a with a 415 784 status code (Section 4.5). If the document cannot be retrieved, 785 the MS MUST send a with a 410 status code. If the 786 document contains a type of dialog which the MS does not 787 supported, the MS MUST send a with a 409 status code. 788 The attribute is optional. There is no default value. 790 type: specifies the type of the external dialog document indicated 791 in the 'src' attribute. A valid value is a MIME media type (see 792 Section 4.6.10). The MS MAY use the value to assist the remote 793 source in selecting the appropriate resource type (e.g. with HTTP 794 'accept' header) and to determine how the document is to be 795 processed if the protocol does not provide an authoritative MIME 796 media type for the returned resource. The attribute is optional. 798 fetchtimeout: the maximum interval to wait when fetching an external 799 dialog document. A valid value is a Time Designation (see 800 Section 4.6.7). If the external document cannot be fetched within 801 the maximum interval, the MS MUST send a with a 417 802 status code (Section 4.5). The attribute is optional. The 803 default value is 30s. 805 dialogid: string indicating a unique name for the dialog. If a 806 dialog with the same name already exists on the MS, the MS MUST 807 send a with a 401 status code (Section 4.5). If 808 neither the dialogid attribute nor the prepareddialogid attribute 809 is specified, the MS MUST create a unique name for the dialog (see 810 Section 4.2 for dialog identifier assignment). The attribute is 811 optional. There is no default value. 813 prepareddialogid: string identifying a dialog previously prepared 814 using a dialogprepare (Section 4.2.1) request. If neither the 815 dialogid attribute nor the prepareddialogid attribute is 816 specified, the MS MUST create a unique name for the dialog (see 817 Section 4.2 for dialog identifier assignment). The attribute is 818 optional. There is no default value. 820 connectionid: string identifying the SIP dialog connection on which 821 this dialog is to be started (see Section 17.1 of 822 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 823 optional. There is no default value. 825 conferenceid: string identifying the conference on which this dialog 826 is to be started (see Section 17.1 of 827 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 828 optional. There is no default value. 830 Exactly one of the connectionid or conferenceid attributes MUST be 831 specified. If both connectionid and conferenceid attributes are 832 specified or neither are specified, it is a syntax error and the MS 833 MUST send a with a 418 status code (Section 4.5). 835 It is an error if the connection or conference referenced by a 836 specific connectionid or conferenceid attribute is not available on 837 the MS at the time the request is executed. If an 838 invalid connectionid is specified, the MS MUST send a with 839 a 403 status code (Section 4.5). If an invalid conferenceid is 840 specified, the MS MUST send a with a 404 status code. 842 The element has the following sequence of child 843 elements: 845 : specifies an IVR dialog (Section 4.3) to execute. The 846 element is optional. 848 : specifies subscriptions to dialog events 849 (Section 4.2.2.1). The element is optional. 851 : specifies input parameters (Section 4.2.6) for a dialog 852 languages defined outside this specification. The element is 853 optional. If a parameter cannot be understood or processed by the 854 MS for the external dialog language, the MS MUST send a 855 with a 425 status code (Section 4.5). 857 : determines the media stream(s) associated with the 858 connection or conference on which the dialog is executed 859 (Section 4.2.2.2). The element is optional. Multiple 860 elements may be specified. 862 The dialog to start can be specified either (a) inline with a 863 child element, or (b) externally using the src attribute 864 (for dialog languages defined outside this specification), or (c) 865 reference a previously prepared dialog using the prepareddialogid 866 attribute. If exactly one of the src attribute, the prepareddialogid 867 or a child element is not specified, it is a syntax error 868 and the MS MUST send a with a 418 status code 869 (Section 4.5). If the prepareddialogid and dialogid attributes are 870 specified, it is also a syntax error and the MS MUST send a 871 with a 418 status code. The type and fetchtimeout 872 attributes are only relevant when a dialog is specified as an 873 external document. 875 The element provides explicit control over which media 876 streams on the connection or conference are used during dialog 877 execution. For example, if a connection supports both audio and 878 video streams, a element could be used to indicate that only 879 the audio stream is used in receive mode. In cases where there are 880 multiple media streams of the same type for a dialog, it is 881 RECOMMENDED that the configuration is explicitly specified using 882 elements. If no elements are specified, then the 883 default media configuration is that defined for the connection or 884 conference. 886 If a element is in conflict with (a) another 887 element, (b) with specified connection or conference media 888 capabilities, (c) with a SDP label value as part of the connectionid 889 (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) or 890 (d) if the media stream configuration is not supported by the MS, 891 then the MS MUST send a with a 413 status code 892 (Section 4.5). 894 This specification allows multiple, simultaneous dialogs to be 895 started on the same connection or conference. It is RECOMMENDED the 896 MS support the following cases: 898 1. different media streams used in different dialogs; e.g. audio 899 only on one dialog and video only on another dialog 901 2. the same media stream received by different dialogs 903 3. use of implicit mixing (where appropriate) when the same type of 904 media stream is sent from different dialogs 906 If the MS does not support starting another dialog on the same 907 connection or conference it MUST report an error when starting that 908 dialog. 910 For example, a request to start an ivr dialog on a connection 911 subscribing to DTMF notifications: 913 914 915 916 917 918 919 920 921 922 923 924 925 927 In this example, the dialog is started on a conference where only 928 audio media stream is received: 930 931 932 933 934 935 936 938 4.2.2.1. 940 The element allows the AS to subscribe to, and be 941 notified of, specific events which occur during execution of the 942 dialog. Notifications of dialog events are delivered using the 943 element (see Section 4.2.5). 945 The element has no attributes. 947 The element has the following sequence of child elements 948 (0 or more occurrences): 950 : Subscription to DTMF input during the dialog 951 (Section 4.2.2.1.1). The element is optional. 953 The MS MUST support a subscription. It MAY support other 954 dialog subscriptions. If the MS does not support a requested 955 subscription, it MUST send a with a 412 status code 956 (Section 4.5). 958 4.2.2.1.1. 960 The element has the following attributes: 962 matchmode: controls which DTMF input are subscribed to. Valid 963 values are: "all" - notify all DTMF key presses received during 964 the dialog; "collect" - notify only DTMF input matched by the 965 collect operation (Section 4.3.1.3); and "control" - notify only 966 DTMF input matched by the runtime control operation 967 (Section 4.3.1.2). The attribute is optional. The default value 968 is "all". 970 The element has no child elements. 972 DTMF notifications are delivered in the element 973 (Section 4.2.5.2). 975 For example, the AS wishes to subscribe to DTMF key press matching a 976 runtime control: 978 979 980 981 982 983 984 985 986 987 988 989 990 992 Each time a '2' or '3' DTMF input is received, the MS sends a 993 notification event: 995 996 997 999 /event> 1000 1002 4.2.2.2. 1004 The element has the following attributes: 1006 media: a string indicating the type of media associated with the 1007 stream. It is strongly RECOMMENDED that the following values are 1008 used for common types of media: "audio" for audio media, and 1009 "video" for video media. The attribute is mandatory. 1011 label: a string indicating the SDP label associated with a media 1012 stream ([RFC4574]). The attribute is optional. 1014 direction: a string indicating the direction of the media flow 1015 between a dialog and its end point conference or connection. 1016 Defined values are: "sendrecv" (media can be sent and received), 1017 "sendonly" (media can only be sent), "recvonly" (media can only be 1018 received) and "inactive" (stream is not to be used). The default 1019 value is "sendrecv". The attribute is optional. 1021 The element has the following child element: 1023 : an element to specify the region within a mixer video 1024 layout where a media stream is displayed (Section 4.2.2.2.1). The 1025 element is optional. 1027 If conferenceid is not specified or if the "media" attribute does not 1028 have the value of "video", then the MS MUST ignored the 1029 element. 1031 For example, assume a user agent connection with multiple audio and 1032 video streams associated with the user and a separate web camera. In 1033 this case, the dialog could be started to record only the audio and 1034 video streams associated with the user: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1047 Using the element, the dialog can be started on a conference 1048 mixer so that the video output from the dialog is directed to a 1049 specific region within a video layout. For example: 1051 1052 1053 1054 1055 1056 1057 1058 1059 r1 1060 1061 1063 4.2.2.2.1. 1065 The element is used to specify the region within a video 1066 layout where a video media stream is displayed. 1068 The element has no attributes and its content model 1069 specifies the name of the region layout. 1071 If the region name is invalid, then the MS MUST report a 416 status 1072 code (Section 4.5) in the response to the request element containing 1073 the element. 1075 4.2.3. 1077 A dialog can be terminated by sending a request 1078 element to the MS. 1080 The element has the following attributes: 1082 dialogid: string identifying the dialog to terminate. The MS MUST 1083 send a response with a 402 status code (Section 4.5) if the 1084 specified dialog identifier is invalid. The attribute is 1085 mandatory. 1087 immediate: indicates whether a dialog in the STARTED state is to be 1088 terminated immediately or not (in other states, termination is 1089 always immediate). A valid value is a boolean (see 1090 Section 4.6.1). A value of true indicates that the dialog is 1091 terminated immediately and the MS MUST send a dialogexit 1092 notification without report information. A value of false 1093 indicates that the dialog terminates after the current iteration 1094 and the MS MUST send a dialogexit notification with report 1095 information. The attribute is optional. The default value is 1096 false. 1098 The MS MUST reply to request with a 1099 element (Section 4.2.4), reporting whether the dialog was terminated 1100 successful or not. 1102 For example, immediately terminating a STARTED dialog with dialogid 1103 "d4": 1105 1106 1107 1109 If the dialog is terminated successfully, then the response to the 1110 dialogterminate request would be: 1112 1113 1114 1116 4.2.4. 1118 Responses to dialog management requests are specified with a 1119 element. 1121 The element has following attributes: 1123 status: numeric code indicating the response status. Valid values 1124 are defined in Section 4.5. The attribute is mandatory. 1126 reason: string specifying a reason for the response status. The 1127 attribute is optional. There is no default value. 1129 dialogid: string identifying the dialog. If the request specifies a 1130 dialogid, then that value is used. Otherwise, with 1131 and requests, the dialogid generated 1132 by the MS is used. If there is no available dialogid (e.g. a 1133 request with no dialogid attribute specified), 1134 then the value is the empty string. The attribute is mandatory. 1136 connectionid: string identifying the SIP dialog connection 1137 associated with the dialog (see Section 17.1 of 1138 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1139 optional. There is no default value. 1141 conferenceid: string identifying the conference associated with the 1142 dialog (see Section 17.1 of 1143 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1144 optional. There is no default value. 1146 For example, a response when a dialog was prepared successfully: 1148 1149 1150 1152 The response if dialog preparation failed due to an unsupported 1153 dialog language: 1155 1156 1158 1160 In this example a request does not specify a 1161 dialogid: 1163 1164 1165 1167 The response status indicates a 409 (attribute required) error status 1168 code and dialogid attribute has an empty string value: 1170 1171 1173 1175 4.2.5. 1177 When a dialog generates a notification event, the MS sends the event 1178 using an element. 1180 The element has the following attributes: 1182 dialogid: string identifying the dialog which generated the event. 1183 The attribute is mandatory. 1185 The element has the following child elements, only one of 1186 which can occur: 1188 : indicates that the dialog has exited 1189 (Section 4.2.5.1). 1191 : indicates that a DTMF key press occurred 1192 (Section 4.2.5.2). 1194 4.2.5.1. 1196 The event indicates that a prepared or active dialog has 1197 exited because it is complete, has been terminated, or because an 1198 error occurred during execution (for example, a media resource cannot 1199 be played). This event MUST be sent by the MS when the dialog exits. 1201 The element has the following attributes: 1203 status: a status code indicating success or failure of the dialog. 1204 A valid value is a non-negative integer (see Section 4.6.4). A 1205 value of 0 indicates that the dialog has been terminated by a 1206 request. A value of 1 indicates success. A 1207 value of 2 indicates that the dialog terminated because the 1208 connection or conference associated with the dialog has 1209 terminated. A value of 3 indicates the dialog terminated due to 1210 exceeding its maximum duration. A value of 4 indicates the dialog 1211 terminated due to an execution error. Any other value indicates 1212 an error defined by the MS. The attribute is mandatory. 1214 reason: a textual description providing a reason for the status 1215 code; e.g. details about an error. A valid value is a string (see 1216 Section 4.6.6). The attribute is optional. There is no default 1217 value. 1219 The element has the following sequence of child 1220 elements: 1222 : report information (Section 4.3.2.1) about the prompt 1223 execution in an IVR . The element is optional. 1225 : reports information (Section 4.3.2.2) about the 1226 control execution in an IVR . The element is optional. 1228 : reports information (Section 4.3.2.3) about the 1229 collect execution in an IVR . The element is optional. 1231 : reports information (Section 4.3.2.4) about the record 1232 execution in an IVR . The element is optional. 1234 : reports exit parameters (Section 4.2.6) for a dialog 1235 language defined outside this specification. The element is 1236 optional. 1238 For example, an active exits normally the MS sends a 1239 dialogexit reporting information: 1241 1242 1243 1244 1245 1246 1248 4.2.5.2. 1250 The element provide a notification of DTMF input 1251 received during the active dialog as requested by a 1252 subscription (Section 4.2.2.1). 1254 The element has the following attributes: 1256 matchmode: indicates the matching mode specified in the subscription 1257 request. Valid values are: "all" - all DTMF key presses notified 1258 individually; "collect" - only DTMF input matched by the collect 1259 operation notified; and "control" - only DTMF input matched by the 1260 control operation notified. The attribute is optional. The 1261 default value is "all". 1263 dtmf: DTMF key presses received according to the matchmode. A valid 1264 value is a DTMF string (see Section 4.6.3) with no space between 1265 characters. The attribute is mandatory. 1267 timestamp: indicates the time (on the MS) at which the last key 1268 press occurred according to the matchmode. A valid value is a 1269 dateTime expression (Section 4.6.12). The attribute is mandatory. 1271 For example, a notification of DTMF input matched during the collect 1272 operation: 1274 1275 1276 1278 /event> 1279 1281 4.2.6. 1283 The element is a container for elements 1284 (Section 4.2.6.1). 1286 The element has no attributes, but the following child 1287 elements are defined (0 or more): 1289 : specifies a parameter name and value (Section 4.2.6.1). 1291 For example, usage with a dialog language defined outside this 1292 specification to send additional parameters into the dialog: 1294 1295 1297 1298 playannouncement 1299 nfs://nas01/media1.3gp 1300 nfs://nas01/media2.3gp 1301 1302 1303 1305 4.2.6.1. 1307 The element describes a parameter name and value. 1309 The element has the following attributes: 1311 name: a string indicating the name of the parameter. The attribute 1312 is mandatory. 1314 type: specifies a type indicating how the inline value of the 1315 parameter is to be interpreted. A valid value is a MIME media 1316 type (see Section 4.6.10). The attribute is optional. The 1317 default value is "text/plain". 1319 The element content model is the value of the parameter. 1320 Note that a value which contains XML characters (e.g. "<") needs to 1321 be escaped following standard XML conventions. 1323 For example, usage with a dialog language defined outside this 1324 specification to receive parameters from the dialog when it exits: 1326 1327 1328 1329 1330 recording 1331 1333 1337 1338 1339 1340 1341 1343 4.3. IVR Dialog Elements 1345 This section describes the IVR dialog language defined as part of 1346 this specification. The MS MUST support this dialog language. 1348 The element is an execution container for operations of 1349 playing prompts (Section 4.3.1.1), runtime controls 1350 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1351 user input (Section 4.3.1.4. Results of the dialog execution 1352 (Section 4.3.2) are reported in a dialogexit notification event. 1354 Using these elements, three common dialog models are supported: 1356 playannouncements: only a element is specified in the 1357 container. The prompt media resources are played in sequence. 1359 promptandcollect: a element is specified and, optionally, 1360 a element. If a element is specified and 1361 bargein is enabled, playing of the prompt is terminated when 1362 bargein occurs, and DTMF collection is initiated; otherwise, the 1363 prompt is played to completion before DTMF collection is 1364 initiated. If no prompt element is specified, DTMF collection is 1365 initiated immediately. 1367 promptandrecord: a element is specified and, optionally, a 1368 element. If a element is specified and bargein 1369 is enabled, playing of the prompt is terminated when bargein 1370 occurs, and recording is initiated; otherwise, the prompt is 1371 played to completion before recording is initiated. If no prompt 1372 element is specified, recording is initiated immediately. 1374 In addition, this dialog language supports runtime ('VCR') controls 1375 enabling a user to control prompt playback using DTMF. 1377 Each of the core elements - , , and 1378 - are specified so that their execution and reporting is 1379 largely self-contained. This facilitates their re-use in other 1380 dialog container elements. Note that DTMF and bargein behavior 1381 affects multiple elements and is addressed in the relevant element 1382 definitions. 1384 Execution results are reported in the notification event 1385 with child elements defined in Section 4.3.2. If the dialog 1386 terminated normally (i.e. not due to an error or to a 1387 request), then the MS MUST report the results for 1388 the operations specified in the dialog: 1390 : (see Section 4.3.2.1) with at least the 1391 termmode attribute specified. 1393 : (see Section 4.3.2.2) if any runtime 1394 controls are matched. 1396 : (see Section 4.3.2.3) with the dtmf and 1397 termmode attributes specified. 1399 : (see Section 4.3.2.4) with at least the 1400 recording, type and termmode attributes specified. 1402 The media format requirements for IVR dialogs are undefined. This 1403 package is agnostic to the media types and codecs for media resources 1404 and recording which need to be supported by an implementation. For 1405 example, a MS implementation may choose to support only audio and in 1406 particular the 'audio/basic' codec for media playback and recording. 1408 However, when executing a dialog, if an MS encounters a media type or 1409 codec which it cannot process, the MS MUST stop further processing 1410 and report the error using the dialogexit notification. 1412 4.3.1. 1414 An IVR dialog to play prompts to the user, allow runtime controls, 1415 collect DTMF or record input. The dialog is specified using a 1416 element. 1418 A element has the following attributes: 1420 repeatCount: number of times the dialog is to be executed. A valid 1421 value is a non-negative integer (see Section 4.6.4). A value of 0 1422 indicates that the dialog is repeated until halted by other means. 1423 The attribute is optional. The default value is 1. 1425 repeatDur: maximum duration for dialog execution. A valid value is 1426 a Time Designation (see Section 4.6.7). If no value is specified, 1427 then there is no limit on the duration of the dialog. The 1428 attribute is optional. There is no default value. 1430 The repeatDur attribute takes priority over the repeatCount attribute 1431 in determining maximum duration of the dialog. See 'repeatCount' and 1432 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1433 information. In the situation where a dialog is repeated more than 1434 once, only the results of operations in the last dialog iteration are 1435 reported. 1437 The element has the following sequence of child elements: 1439 : defines media resources to play in sequence (see 1440 Section 4.3.1.1). The element is optional. 1442 : defines how DTMF is used for runtime controls (see 1443 Section 4.3.1.2). The element is optional. 1445 : defines how DTMF is collected (see Section 4.3.1.3). The 1446 element is optional. 1448 : defines how recording takes place (see Section 4.3.1.4). 1449 The element is optional. 1451 The MS MUST send a with a 418 status code (Section 4.5) if 1452 no child element is specified or a element is specified but 1453 not a element. Although the behavior when both 1454 and elements are specified is not defined in this control 1455 package, the MS MAY support this configuration. If the MS does not 1456 support this configuration, the MS MUST send a with a 418 1457 status code. 1459 The MS has the following execution model for the IVR dialog after 1460 initialization (initialization errors are reported by the MS in the 1461 response): 1463 1. If an error occurs during execution, then the MS terminates the 1464 dialog and reports the error in the event by setting 1465 the status attribute (see Section 4.3.2). Details about the 1466 error are specified in the reason attribute. 1468 2. The MS initializes a counter to 0. 1470 3. The MS starts a duration timer for the value of the repeatDur 1471 attribute. If the timer expires before the dialog is complete, 1472 then the MS terminates the dialog and sends a dialogexit whose 1473 status attribute is set to 3 (see Section 4.2.5.1). The MS MAY 1474 report information in the dialogexit gathered in the last 1475 execution cycle (if any). 1477 4. The MS initiates a dialog execution cycle. Each cycle executes 1478 the operations associated with the child elements of the dialog. 1479 If a element is specified, then execute the element's 1480 prompt playing operation and activate any controls (if the 1481 element is specified). If no is specified or 1482 when a specified terminates, then start the collect 1483 operation or the record operation if the or 1484 elements respectively are specified. If subscriptions are 1485 specified for the dialog, then the MS sends a notification event 1486 when the specified event occurs. If execution of a child element 1487 results in an error, the MS terminates dialog execution (and 1488 stops other child element operations) and the MS sends a 1489 dialogexit status event, reporting any information gathered. 1491 5. If the dialog execution cycle completes successfully, then the MS 1492 increments the counter by one. If the value of the repeatCount 1493 attribute is greater than zero and the counter is equal to the 1494 value of the repeatCount attribute, then the MS terminates dialog 1495 execution and the sends a dialogexit (with a status of 1) 1496 reporting operation information collected in the last dialog 1497 execution cycle only. Otherwise, another dialog execution cycle 1498 is initiated. 1500 4.3.1.1. 1502 The element specifies a sequence of media resources to play. 1504 A element has the following attributes: 1506 xml:base: A string declaring the base URI from which relative URIs 1507 in child elements are resolved prior to fetching. A valid value 1508 is a URI (see Section 4.6.9). The attribute is optional. There 1509 is no default value. 1511 bargein: Indicates whether user input stops prompt playback unless 1512 the input is associated with a specified runtime 1513 operation (input matching control operations never interrupts 1514 prompt playback). A valid value is a boolean (see Section 4.6.1). 1515 A value of true indicates that bargein is permitted and prompt 1516 playback is stopped. A value of false indicates that bargein is 1517 not permitted: user input does not terminate prompt playback. The 1518 attribute is optional. The default value is true. 1520 The element has the following child elements (any order, 1521 multiple occurrences of each element permitted): 1523 : media resource (see Section 4.3.1.1.1) to play. The 1524 element is optional. 1526 : specifies a variable media announcement (see 1527 Section 4.3.1.1.2) to play. The element is optional. 1529 : generates one or more DTMF tones (see Section 4.3.1.1.3) to 1530 play. The element is optional. 1532 If no child element is specified, then the MS MUST send a 1533 with a 418 status code (Section 4.5). 1535 The MS has the following execution model for prompt playing after 1536 initialization: 1538 1. The MS initiates prompt playback playing each , 1539 and in document order. 1541 2. If any error (including fetching and rendering errors) occurs 1542 during prompt execution, then the MS terminates playback and 1543 reports its error status to the dialog container (see 1544 Section 4.3) with a (see Section 4.3.2.1) where the 1545 termmode attribute is set to stopped and any additional 1546 information is set. 1548 3. If DTMF input is received and the value of the bargein attribute 1549 is true, then the MS terminates prompt playback and reports its 1550 execution status to the dialog container (see Section 4.3) with a 1551 (see Section 4.3.2.1) where the termmode attribute 1552 is set to bargein and any additional information is set. 1554 4. If prompt playback is stopped by the dialog container, then the 1555 MS reports its execution status to the dialog container (see 1556 Section 4.3) with a (see Section 4.3.2.1) where the 1557 termmode attribute is set to stopped and any additional 1558 information is set. 1560 5. If prompt playback completes successfully, then the MS reports 1561 its execution status to the dialog container (see Section 4.3) 1562 with a (see Section 4.3.2.1) where the termmode 1563 attribute is set to completed and any additional information is 1564 set. 1566 4.3.1.1.1. 1568 The element specifies a media resource to play. 1570 A element has the following attributes: 1572 src: specifies the location of the media resource. A valid value is 1573 a URI (see Section 4.6.9). If the URI scheme is unknown or 1574 unsupported, the MS MUST send a with a 415 status code 1575 (Section 4.5). If the resource cannot be retrieved, the MS MUST 1576 send a with a 410 status code. If the format of the 1577 media resource is not supported, the MS MUST send a 1578 with a 419 status code. The attribute is mandatory. 1580 type: specifies the type of the media resource indicated in the 1581 'src' attribute. The MS MAY use the value to assist the remote 1582 source in selecting the appropriate resource type (e.g. with HTTP 1583 'accept' header) and to determine how the resource is to be 1584 processed if the protocol does not provide an authoritative MIME 1585 media type for the returned resource. The value may include 1586 additional parameters for guiding playback; for example, [RFC4281] 1587 defines a 'codec' parameter for 'bucket' media types like video/ 1588 3gpp. A valid value is a MIME media type (see Section 4.6.10). 1589 The attribute is optional. There is no default value. 1591 fetchtimeout: the maximum interval to wait when fetching a media 1592 resource. A valid value is a Time Designation (see 1593 Section 4.6.7). If the resource cannot be fetched within the 1594 maximum interval, the MS MUST send a with a 417 status 1595 code (Section 4.5). The attribute is optional. The default value 1596 is 30s. 1598 soundLevel: playback soundLevel (volume) for the media resource. A 1599 valid value is a percentage (see Section 4.6.4). The value 1600 indicates increase or decrease relative to the original recorded 1601 volume of the media. A value of 100% (the default) plays the 1602 media at its recorded volume, a value of 200% will play the media 1603 twice recorded volume, 50% at half its recorded volume, a value of 1604 0% will play the media silently, and so on. See 'soundLevel' in 1605 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 1606 attribute is optional. The default value is 100%. 1608 clipBegin: offset from start of media resource to begin playing. A 1609 valid value is a Time Designation (see Section 4.6.7). The offset 1610 is measured in normal media playback time from the beginning of 1611 the media resource. If the clipBegin offset is after the end of 1612 media (or the clipEnd offset), no media is played. See 1613 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1614 information. The attribute is optional. The default value is 0s. 1616 clipEnd: offset from start of media resource to end playing. A 1617 valid value is a Time Designation (see Section 4.6.7). The offset 1618 is measured in normal media playback time from the beginning of 1619 the media resource. If the clipEnd offset is after the end of 1620 media, then the media is played to the end. If clipBegin is after 1621 clipEnd, then no media is played. See 'clipEnd' in SMIL 1622 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 1623 is optional. There is no default value. 1625 The element has no children. 1627 4.3.1.1.2. 1629 The element specifies variable announcements using 1630 predefined media resources. Each variable has at least a type (e.g. 1631 date) and a value (e.g. 2008-02-25). The value is rendered according 1632 to the variable type (e.g. 25th February 2008) as well as other 1633 defined attributes. The precise mechanism for generating variable 1634 announcements (including the location of associated media resources) 1635 is implementation specific. 1637 A element has the following attributes: 1639 value: specifies the string to be rendered. A valid value is a 1640 string (see Section 4.6.6). The attribute is mandatory. 1642 type: specifies the type to use for rendering. A valid value is a 1643 string (see Section 4.6.6). The attribute is mandatory. 1645 format: specifies format information to use in conjunction with the 1646 type for the rendering. A valid value is a string (see 1647 Section 4.6.6). The attribute is optional. There is no default 1648 value. 1650 gender: specifies the gender to use when rendering the variable. 1651 Valid values are "male" or "female". The attribute is optional. 1652 There is no default value. 1654 xml:lang: specifies the language to use when rendering the variable. 1655 A valid value is a language identifier (see Section 4.6.11). The 1656 attribute is optional. There is no default value. 1658 The element has no children. 1660 This package is agnostic to which values, types and 1661 formats are supported by an implementation. However it is 1662 RECOMMENDED that an implementation support the following type/format 1663 combinations: 1665 type=date Supported formats: "mdy" (month day year), "ymd" (year 1666 month day), "dym" (day month year), "dm" (day month) 1668 type=time Supported formats: "t12" (12 hour format with am/pm), 1669 "t24" (24 hour format) 1671 type=digits Supported formats: "gen" (general digit string), "crn" 1672 (cardinal), "ord" (ordinal) 1674 This specification is agnostic to the type and codec of media 1675 resources into which variable are rendered as well as the rendering 1676 mechanism itself. For example, an MS implementation supporting audio 1677 rendering may map the into one or more audio media 1678 resources. 1680 If a element configuration is not supported by the MS, the 1681 MS MUST send a with a 421 status code (Section 4.5). 1683 Depending on the specific implementation of the rendering 1684 on the MS, execution of this element may be seen as conversion of a 1685 into a list of elements. For example, 1687 1690 could be transformed into audio saying "twenty-fifth of February two 1691 thousand and eight" using a list of resources: 1693 1694 1695 1696 1697 1698 1700 4.3.1.1.3. 1702 The element specifies a sequence of DTMF tones for output. 1704 DTMF tones could be generated using resources where the 1705 output is transported as RTP audio packets. However, 1706 resources are not sufficient for cases where DTMF tones are to be 1707 transported as DTMF RTP ([RFC4733]) or in event packages. 1709 A element has the following attributes: 1711 digits: specifies the DTMF sequence to output. A valid value is a 1712 DTMF string (see Section 4.6.3). The attribute is mandatory. 1714 level: used to define the power level for which the DTMF tones will 1715 be generated. Values are expressed in dBm0. A valid value is an 1716 integer in the range of 0 to -96 (dBm0). Larger negative values 1717 express lower power levels. Note that values lower than -55 dBm0 1718 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1719 The attribute is optional. The default value is -6 (dBm0). 1721 duration: specifies the duration for which each DTMF tone is 1722 generated. A valid value is a time designation (see 1723 Section 4.6.7). Implementations may round the value if they only 1724 support discrete durations. The attribute is optional. The 1725 default value is 100ms. 1727 interval: specifies the duration of a silence interval following 1728 each generated DTMF tone. A valid value is a time designation 1729 (see Section 4.6.7). Implementations may round the value if they 1730 only support discrete durations. The attribute is optional. The 1731 default value is 100ms. 1733 The element has no children. 1735 If a element configuration is not supported, the MS MUST send 1736 a with a 422 status code (Section 4.5). 1738 4.3.1.2. 1740 The element defines how DTMF input is mapped to runtime 1741 controls, including prompt playback controls. 1743 DTMF input matching these controls MUST NOT cause prompt playback to 1744 interrupted (i.e. no prompt bargein), but causes the appropriate 1745 operation to be applied; for examples, speeding up prompt playback. 1747 DTMF input matching these controls has priority over input 1748 for the duration of prompt playback. If incoming DTMF matches a 1749 specified runtime control, then the DTMF is not available to the 1750 operation, including its digit buffer. Once prompt 1751 playback is complete, runtime controls are no longer active. 1753 The element has the following attributes: 1755 gotostartkey: maps a DTMF key to skip directly to the start of the 1756 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1757 The attribute is optional. There is no default value. 1759 gotoendkey: maps a DTMF key to skip directly to the end of the 1760 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1761 The attribute is optional. There is no default value. 1763 skipinterval: indicates how far a MS should skip backwards or 1764 forwards through prompt playback when the rewind (rwkey) of fast 1765 forward key (ffkey) is pressed. A valid value is a Time 1766 Designation (see Section 4.6.7). The attribute is optional. The 1767 default value is 6s. 1769 ffkey: maps a DTMF key to a fast forward operation equal to the 1770 value of 'skipinterval'. A valid value is a DTMF Character (see 1771 Section 4.6.2). The attribute is optional. There is no default 1772 value. 1774 rwkey: maps a DTMF key to a rewind operation equal to the value of 1775 'skipinterval'. A valid value is a DTMF Character (see 1776 Section 4.6.2). The attribute is optional. There is no default 1777 value. 1779 pauseinterval: indicates how long a MS should pause prompt playback 1780 when the pausekey is pressed. A valid value is a Time Designation 1781 (see Section 4.6.7). The attribute is optional. The default 1782 value is 10s. 1784 pausekey: maps a DTMF key to a pause operation equal to the value of 1785 'pauseinterval'. A valid value is a DTMF Character (see 1786 Section 4.6.2). The attribute is optional. There is no default 1787 value. 1789 resumekey: maps a DTMF key to a resume operation. A valid value is 1790 a DTMF Character (see Section 4.6.2). The attribute is optional. 1791 There is no default value. 1793 volumeinterval: indicates the increase or decrease in playback 1794 volume (relative to the current volume) when the volupkey or 1795 voldnkey is pressed. A valid value is a percentage (see 1796 Section 4.6.8). The attribute is optional. The default value is 1797 10%. 1799 volupkey: maps a DTMF key to a volume increase operation equal to 1800 the value of 'volumeinterval'. A valid value is a DTMF Character 1801 (see Section 4.6.2). The attribute is optional. There is no 1802 default value. 1804 voldnkey: maps a DTMF key to a volume decrease operation equal to 1805 the value of 'volumeinterval'. A valid value is a DTMF Character 1806 (see Section 4.6.2). The attribute is optional. There is no 1807 default value. 1809 speedinterval: indicates the increase or decrease in playback speed 1810 (relative to the current speed) when the speedupkey or speeddnkey 1811 is pressed. A valid value is a percentage (see Section 4.6.8). 1812 The attribute is optional. The default value is 10%. 1814 speedupkey: maps a DTMF key to a speed increase operation equal to 1815 the value of the speedinterval attribute. A valid value is a DTMF 1816 Character (see Section 4.6.2). The attribute is optional. There 1817 is no default value. 1819 speeddnkey: maps a DTMF key to a speed decrease operation equal to 1820 the value of the speedinterval attribute. A valid value is a DTMF 1821 Character (see Section 4.6.2). The attribute is optional. There 1822 is no default value. 1824 external: allows one or more DTMF keys to be declared as external 1825 controls (for example: video camera controls); the MS can send 1826 notifications when a matching key is activated using 1827 (Section 4.2.5.2). A valid value is a DTMF String (see 1828 Section 4.6.3). The attribute is optional. There is no default 1829 value. 1831 If the same DTMF is specified in more than one DTMF key control 1832 attribute - except the pausekey and resumekey attributes - the MS 1833 MUST send a with a 423 status code (Section 4.5). 1835 The MS has the following execution model for runtime control after 1836 initialization: 1838 1. If an error occurs during execution, then the MS terminates 1839 runtime control and the error is reported to the dialog 1840 container. The MS MAY report controls executed successfully 1841 before the error in (see Section 4.3.2.2). 1843 2. Runtime controls are active only during prompt playback. If DTMF 1844 input matches any specified keys (for example the ffkey), then 1845 the appropriate operation is applied immediately. If a seek 1846 operation (ffkey, rwkey) attempts to go beyond the beginning or 1847 end of the prompt queue, then it is automatically truncated to 1848 the prompt beginning or end respectively. If the pause operation 1849 attempts to pause output when it is already paused, then the 1850 operation is ignored. If the resume operation attempts to resume 1851 when the prompts are not paused, then the operation is ignored. 1852 If a volume operations attempts to go beyond the minimum or 1853 maximum volume supported by the platform, then the operation is 1854 ignored. 1856 3. If DTMF control subscription has been specified for the dialog, 1857 then each DTMF match of a control operation is reported in a 1858 notification event (Section 4.2.5.2). 1860 4. When the dialog exits, all control matches are reported in a 1861 element (Section 4.3.2.2). 1863 4.3.1.3. 1865 The element defines how DTMF input is collected. 1867 The element has the following attributes: 1869 cleardigitbuffer: indicates whether the digit buffer is to be 1870 cleared. A valid value is a boolean (see Section 4.6.1). A value 1871 of true indicates that the digit buffer is to be cleared. A value 1872 of false indicates that the digit buffer is not to be cleared. 1873 The attribute is optional. The default value is true. 1875 timeout: indicates the maximum time to wait for user input to begin. 1876 A valid value is a Time Designation (see Section 4.6.7). The 1877 attribute is optional. The default value is 5s. 1879 interdigittimeout: indicates inter-digit timeout value to use when 1880 recognizing DTMF input. A valid value is a Time Designation (see 1881 Section 4.6.7). The attribute is optional. The default value is 1882 2s. 1884 termtimeout: indicates the terminating timeout value to use when 1885 recognizing DTMF input. A valid value is a Time Designation (see 1886 Section 4.6.7). The attribute is optional. The default value is 1887 0s. 1889 escapekey: specifies a DTMF key that indicates the DTMF collection 1890 is to be re-initiated. A valid value is a DTMF Character (see 1891 Section 4.6.2). The attribute is optional. There is no default 1892 value. 1894 termchar: specifies a DTMF character for terminating DTMF input 1895 collection using the internal grammar. A valid value is a DTMF 1896 character (see Section 4.6.2). To disable termination by a 1897 conventional DTMF character, set the parameter to an 1898 unconventional character like 'A'. The attribute is optional. 1899 The default value is '#'. 1901 maxdigits: The maximum number of digits to collect using an internal 1902 digits (0-9 only) grammar. A valid value is a positive integer 1903 (see Section 4.6.5). The attribute is optional. The default 1904 value is 5. 1906 The element has the following child elements: 1908 : indicates a custom grammar format (see 1909 Section 4.3.1.3.1). The element is optional. 1911 The custom grammar takes priority over the internal grammar. If a 1912 element is specified, the MS MUST use it for DTMF 1913 collection. 1915 The MS has the following execution model for DTMF collection after 1916 initialization: 1918 1. The DTMF collection buffer MUST NOT receive DTMF input matching 1919 operations (see Section 4.3.1.2). 1921 2. If an error occurs during execution, then the MS terminates 1922 collection and reports the error to the dialog container (see 1923 Section 4.3). The MS may report DTMF collected before the error 1924 in (see Section 4.3.2.3). 1926 3. The MS clears the digit buffer if the value of the 1927 cleardigitbuffer attribute is true. 1929 4. The MS activates a timer with the duration of the value of the 1930 timeout attribute. If the timer expires before DTMF input 1931 collection begins, then collection execution terminates, the 1932 (see Section 4.3.2.3) has the termmode attribute 1933 set to noinput and the execution status reported to the dialog 1934 container. 1936 5. If DTMF collect input matches the value of the escapekey 1937 attribute, then the MS cancels the timer and re-initializes DTMF 1938 collection. 1940 6. Other DTMF collect input is matched to the grammar. Valid DTMF 1941 patterns are either a simple digit string where the maximum 1942 length is determined by the maxdigits attribute and may be 1943 terminated by the character in the termchar attribute; or a 1944 custom DTMF grammar specified with the element. The 1945 attributes interdigittimeout and termtimeout control interdigit 1946 timeout and the terminating timeout respectively. 1948 7. If the collect input completely matches the grammar, the timer is 1949 canceled, the MS terminates collection execution and reports 1950 execution status to the dialog container with (see 1951 Section 4.3.2.3) where the termmode attribute set to match. 1953 8. If the collect input does not match the grammar, the MS cancels 1954 the timer, terminates collection execution and reports execution 1955 status to the dialog container with a (see 1956 Section 4.3.2.3) where the termmode attribute set to nomatch. 1958 4.3.1.3.1. 1960 The element allows a custom grammar, inline or external, to 1961 be specified. Custom grammars permit the full range of DTMF 1962 characters including '*' and '#' to be specified for DTMF pattern 1963 matching. 1965 The element has the following attributes: 1967 src: specifies the location of an external grammar document. A 1968 valid value is a URI (see Section 4.6.9). If the URI scheme is 1969 unknown or unsupported, the MS MUST send a with a 415 1970 status code (Section 4.5). If the resource cannot be retrieved, 1971 the MS MUST send a with a 410 status code. If the 1972 grammar format is not supported, the MS MUST send a 1973 with a 420 status code. The attribute is optional. There is no 1974 default value. 1976 type: identifies the preferred type of the grammar document 1977 identified by the src attribute. The MS MAY use the value to 1978 assist the remote source in selecting the appropriate resource 1979 type (e.g. with HTTP 'accept' header) and to determine how the 1980 document is processed if the protocol does not provide an 1981 authoritative MIME media type for the returned resource. A valid 1982 value is a MIME media type (see Section 4.6.10). The attribute is 1983 optional. There is no default value. 1985 fetchtimeout: the maximum interval to wait when fetching a grammar 1986 resource. A valid value is a Time Designation (see 1987 Section 4.6.7). If the resource cannot be fetched within the 1988 maximum interval, the MS MUST send a with a 417 status 1989 code (Section 4.5). The attribute is optional. The default value 1990 is 30s. 1992 The element allows inline grammars to be specified. XML 1993 grammar formats MUST use a namespace other than the one used in this 1994 specification. Non-XML grammar formats MAY use a CDATA section. 1996 The MS MUST support the [SRGS] XML grammar format ("application/ 1997 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 1998 formats. If the grammar format is not supported by the MS, then the 1999 MS MUST send a with a 420 status code (Section 4.5). 2001 For example, the following fragment shows DTMF collection with an 2002 inline SRGS grammar: 2004 2006 2007 2009 2010 2011 0 2012 1 2013 2 2014 3 2015 4 2016 5 2017 6 2018 7 2019 8 2020 9 2021 2022 2024 2025 2026 2027 2028 2029 # 2030 * 9 2031 2032 2034 2035 2036 2038 The same grammar could also be referenced externally (and take 2039 advantage of HTTP caching): 2041 2042 2044 2046 4.3.1.4. 2048 The element defines how media input is recorded. 2050 The element has the following attributes: 2052 dest: specifies the location where recorded data is to be stored. 2053 The MS MUST have uploaded the recorded data to this location as 2054 soon as possible after recording is complete. A valid value is a 2055 URI (see Section 4.6.9). If the URI scheme is unknown or 2056 unsupported, the MS MUST send a with a 415 status code 2057 (Section 4.5). If The attribute is optional. The MS SHOULD 2058 support the inclusion of authentication information in the URI if 2059 the URI scheme supports it (e.g. basic access authentication in 2060 HTTP). The MS MAY support more advanced authentication 2061 mechanisms. If the dest attribute not specified, the MS MUST 2062 provide a local recording location (reporting the local URI in the 2063 recording attribute of in Section 4.3.2.4); the 2064 recording MUST be available from this location until the 2065 connection or conference associated with the dialog on the MS 2066 terminates. 2068 type: specifies the type of the recording format. The type value 2069 may include additional parameters for guiding recording; for 2070 example, [RFC4281] defines a 'codec' parameter for 'bucket' media 2071 types like video/3gpp. A valid value is a MIME media type (see 2072 Section 4.6.10). If the specified recording format is not 2073 supported, the MS MUST send a with a 424 status code 2074 (Section 4.5). The attribute is optional. There is no default 2075 value (recording format is MS implementation-dependent if a value 2076 is not specified). 2078 timeout: indicates the time to wait for user input to begin. A 2079 valid value is a Time Designation (see Section 4.6.7). The 2080 attribute is optional. The default value is 5s. 2082 vadinitial: Control whether voice activity detection can be used to 2083 initiate the recording operation. A valid value is a boolean (see 2084 Section 4.6.1). A value of true indicates recording may be 2085 initiated using voice activity detection. A value of false 2086 indicates that recording must not be initiated using voice 2087 activity detection. The attribute is optional. The default value 2088 is true. 2090 vadfinal: Control whether voice activity detection can be used to 2091 terminate the recording operation. A valid value is a boolean 2092 (see Section 4.6.1). A value of true indicates recording may be 2093 terminated using voice activity detection. A value of false 2094 indicates that recording must not be terminated using voice 2095 activity detection. The attribute is optional. The default value 2096 is true. 2098 dtmfterm: Indicates whether the recording operation is terminated by 2099 DTMF input. A valid value is a boolean (see Section 4.6.1). A 2100 value of true indicates that recording is terminated by DTMF 2101 input. A value of false indicates that recording is not 2102 terminated by DTMF input. The attribute is optional. The default 2103 value is true. 2105 maxtime: indicates The maximum duration of the recording. A valid 2106 value is a Time Designation (see Section 4.6.7). The attribute is 2107 optional. The default value is 15s. 2109 beep: indicates whether a 'beep' should be played immediately prior 2110 to initiation of the recording operation. A valid value is a 2111 boolean (see Section 4.6.1). The attribute is optional. The 2112 default value is false. 2114 finalsilence: indicates the interval of silence that indicates end 2115 of speech. This interval is not part of the recording itself. 2116 This parameter is ignored if the vadfinal attribute has the value 2117 false. A valid value is a Time Designation (see Section 4.6.7). 2118 The attribute is optional. The default value is 5s. 2120 append: indicates whether recorded data should be appended or not to 2121 the recording location if a resource already exists. A valid 2122 value is a boolean (see Section 4.6.1). A value of true indicates 2123 that recorded data is appended to the existing resource at the 2124 recording location. A value of false indicates that recorded data 2125 is to overwrite the existing resource. The attribute is optional. 2126 The default value is false. 2128 The element has no child elements. 2130 Note that an MS MAY support uploading recorded data to the recording 2131 location at the same time the recording operation takes place. Such 2132 implementations should be aware of the requirements of certain 2133 recording formats (e.g. WAV) for metadata at the beginning of the 2134 uploaded file, that the finalsilence interval is not part of the 2135 recording and how these requirements interact with the URI scheme. 2137 The MS has the following execution model for recording after 2138 initialization: 2140 1. If an error occurs during execution (e.g. authentication or 2141 communication error when trying to upload to a recording 2142 location), then the MS terminates record execution and reports 2143 the error to the dialog container (see Section 4.3). The MS MAY 2144 report data recorded before the error in (see 2145 Section 4.3.2.4). 2147 2. If DTMF input (not matching a operation) is received 2148 during prompt playback and the prompt bargein attribute is set to 2149 true, then the MS activates the record execution. Otherwise, the 2150 MS activates it after the completion of prompt playback. 2152 3. If a beep attribute with the value of true is specified, then the 2153 MS plays a beep tone. 2155 4. The MS activates a timer with the duration of the value of the 2156 timeout attribute. If the timer expires before the recording 2157 operation begins, then the MS terminates the recording execution 2158 and reports the status to dialog container with (see 2159 Section 4.3.2.4) where the termmode attribute is set to noinput. 2161 5. Initiation of the recording operation depends on the value of the 2162 vadinitial attribute. If vadinitial has the value false, then 2163 the recording operation is initiated immediately. Otherwise, the 2164 recording operation is initiated when voice activity is detected. 2166 6. When the recording operation is initiated, a timer is started for 2167 the value of the maxtime attribute (maximum duration of the 2168 recording). If the timer expires before the recording operation 2169 is complete, then the MS terminates recording execution and 2170 reports the execution status to the dialog container with 2171 (see Section 4.3.2.4) where the termmode attribute 2172 set to maxtime. 2174 7. During the record operation user media input is recording in the 2175 format specified by the value of the type attribute. If the dest 2176 attribute is specified, then recorded input is sent to that 2177 location. Otherwise, MS uses an internal location. 2179 8. If the dtmfterm attribute has the value true and DTMF input is 2180 detected during the record operation, then the MS terminates 2181 recording and and its status is reported to the dialog container 2182 with a (see Section 4.3.2.4) where the termmode 2183 attribute is set to dtmf. 2185 9. If vadfinal attribute has the value true, then the MS terminates 2186 a recording operation when a period of silence, with the duration 2187 specified by the value of the finalsilence attribute, is 2188 detected. This period of silence is not part of the final 2189 recording. The status is reported to the dialog container with a 2190 (see Section 4.3.2.4) where the termmode attribute 2191 is set to finalsilence. 2193 4.3.2. Exit Information 2195 When the dialog exits, information about the specified operations is 2196 reported in a notification event (Section 4.2.5.1). 2198 4.3.2.1. 2200 The element reports the information about prompt 2201 execution. It has the following attributes: 2203 duration: indicates the duration of prompt playback in milliseconds. 2204 A valid value is a non-negative integer (see Section 4.6.4). The 2205 attribute is optional. There is no default value. 2207 termmode: indicates how playback was terminated. Valid values are: 2208 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 2210 The element has no child elements. 2212 4.3.2.2. 2214 The element reports information about control 2215 execution. 2217 The element has no attributes and has 0 or more 2218 child elements each describing an individual runtime 2219 control match. 2221 4.3.2.2.1. 2223 The element has the following attributes: 2225 dtmf: DTMF input triggering the runtime control. A valid value is a 2226 DTMF string (see Section 4.6.3) with no space between characters. 2227 The attribute is mandatory. 2229 timestamp: indicates the time (on the MS) at which the control was 2230 triggered. A valid value is an dateTime expression 2231 (Section 4.6.12). The attribute is mandatory. 2233 The element has no child elements. 2235 4.3.2.3. 2237 The element reports the information about collect 2238 execution. 2240 The element has the following attributes: 2242 dtmf: DTMF input collected from the user. A valid value is a DTMF 2243 string (see Section 4.6.3) with no space between characters. The 2244 attribute is optional. There is no default value. 2246 termmode: indicates how collection was terminated. Valid values 2247 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2248 mandatory. 2250 The element has no child elements. 2252 4.3.2.4. 2254 The element reports the information about record 2255 execution. 2257 The element has the following attributes: 2259 recording: references the location to which media is recorded. A 2260 valid value is a URI (see Section 4.6.9). The attribute is 2261 optional. There is no default value. 2263 type: indicates the format of the recording. A valid value is a 2264 MIME media type (see Section 4.6.10). The attribute is optional. 2265 There is no default value. 2267 duration: indicates the duration of the recording in milliseconds. 2268 A valid value is a non-negative integer (see Section 4.6.4). The 2269 attribute is optional. There is no default value. 2271 size: indicates the size of the recording in bytes. A valid value 2272 is a non-negative integer (see Section 4.6.4). The attribute is 2273 optional. There is no default value. 2275 termmode: indicates how recording was terminated. Valid values are: 2276 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2277 attribute is mandatory. 2279 The element has no child elements. 2281 4.4. Audit Elements 2283 The audit elements defined in this section allow the MS to be audited 2284 for package capabilities as well as dialogs managed by the package. 2285 Auditing is particularly important for two use cases. First, it 2286 enables discovery of package capabilities supported on an MS before 2287 an AS starts a dialog on connection or conference. The AS may then 2288 use this information to create request elements using supported 2289 capabilities and, in the case of codecs, to negotiate an appropriate 2290 SDP for a user agent's connection. Second, auditing enables 2291 discovery of the existence and status of dialogs currently managed by 2292 the package on the MS. This allows one AS to take over management of 2293 the dialogs when the AS which initiated the dialogs fails or is no 2294 longer available. 2296 4.4.1. 2298 The request element is sent to the MS to request information 2299 about the capabilities of, and dialogs currently managed with, this 2300 control package. Capabilities include supported dialog languages, 2301 grammar formats, record and media types as well as codecs. Dialog 2302 information includes the status of managed dialogs as well as codecs. 2304 The element has the following attributes: 2306 capabilities: indicates whether package capabilities are to be 2307 audited. A valid value is a boolean (see Section 4.6.1). A value 2308 of true indicates that capability information is to be reported. 2309 A value of false indicates that capability information is not to 2310 be reported. The attribute is optional. The default value is 2311 true. 2313 dialogs: indicates whether dialogs currently managed by the package 2314 are to be audited. A valid value is a boolean (see 2315 Section 4.6.1). A value of true indicates that dialog information 2316 is to be reported. A value of false indicates that dialog 2317 information is not to be reported. The attribute is optional. 2318 The default value is true. 2320 dialogid: string identifying a specific dialog to audit. The MS 2321 MUST send a response with a 402 status code (Section 4.5) if the 2322 specified dialog identifier is invalid. The attribute is 2323 optional. There is no default value. 2325 If the dialogs attribute has the value true and dialogid attribute is 2326 specified, then only audit information about the specified dialog is 2327 reported. If the dialogs attribute has the value false, then no 2328 dialog audit information is reported even if a dialogid attribute is 2329 specified. 2331 The element has no child elements. 2333 When the MS receives a request, it MUST reply with a 2334 element (Section 4.4.2). If the request is 2335 successful, contain (depending on attribute values) a 2336 element (Section 4.4.2.2) reporting package 2337 capabilities and a element (Section 4.4.2.3) reporting 2338 managed dialog information. 2340 For example, a request to audit capabilities and dialogs managed by 2341 the package: 2343 2344 2345 2347 In this example, only capabilities are to be audited: 2349 2350 2351 2353 With this example, only a specific dialog is to be audited: 2355 2356 2357 2359 4.4.2. 2361 The element describes a response to a 2362 request. 2364 The element has the following attributes: 2366 status: numeric code indicating the audit response status. The 2367 attribute is mandatory. Valid values are defined in Section 4.5. 2369 reason: string specifying a reason for the status. The attribute is 2370 optional. 2372 The element has the following sequence of child 2373 elements: 2375 element (Section 4.4.2.2) describing capabilities of 2376 the package. The element is optional. 2378 element (Section 4.4.2.3) describing information about 2379 managed dialogs. The element is optional. 2381 For example, a successful response to a request requesting 2382 capabilities and dialogs information: 2384 2385 2386 2387 2388 application/voicexml+xml 2389 2390 2391 application/srgs+xml 2392 2393 2394 application/x-wav 2395 video/3gpp 2396 2397 2398 application/x-wav 2399 video/3gpp 2400 2401 2402 2403 mdy 2404 ymd 2405 dmy 2406 dm 2407 2408 2409 600s 2410 1800s 2411 2412 2413 H.263 2414 2415 2416 H.264 2417 2418 2419 PCMU 2420 2421 2422 PCMA 2423 2424 2425 telephone-event 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 PCMA 2436 2437 2438 telephone-event 2439 2440 2441 2442 2443 2444 2446 4.4.2.1. 2448 The provides audit information about codecs. 2450 The element has no attributes. 2452 The element has the following sequence of child elements (0 2453 or more occurrences): 2455 : audit information for a codec (Section 4.4.2.1.1). The 2456 element is optional. 2458 For example, a fragment describing two codecs: 2460 2461 2462 PCMA 2463 2464 2465 telephone-event 2466 2467 2469 4.4.2.1.1. 2471 The element describes a codec on the MS. The element is 2472 modeled on the element in the XCON conference information 2473 data model ([I-D.ietf-xcon-common-data-model]) but allows addition 2474 information (e.g. rate, speed, etc) to be specified. 2476 The element has no attributes. 2478 The element has the following sequence of child elements: 2480 : element describing the codec's name. The possible values 2481 of this element are the values of the 'subtype' column of the RTP 2482 Payload Format media types per [RFC4855] defined in IANA ([IANA]). 2483 The element is mandatory. 2485 : element (Section 4.2.6) describing additional information 2486 about the codec. This package is agnostic to the names and values 2487 of the codec parameters supported by an implementation. The 2488 element is optional. 2490 For example, a fragment with a element describing the H.263 2491 codec: 2493 2494 H.263 2495 2497 4.4.2.2. 2499 The element provides audit information about package 2500 capabilities. 2502 The element has no attributes. 2504 The element has the following sequence of child 2505 elements: 2507 : element (Section 4.4.2.2.1) describing additional 2508 dialog languages supported by the MS. The element is mandatory. 2510 : element (Section 4.4.2.2.2) describing supported 2511 (Section 4.3.1.3.1) format types. The element is 2512 mandatory. 2514 : element (Section 4.4.2.2.3) describing supported 2515 (Section 4.3.1.4) format types. The element is 2516 mandatory. 2518 : element (Section 4.4.2.2.4) describing supported 2519 (Section 4.3.1.1.1) format types. The element is 2520 mandatory. 2522 : element (Section 4.4.2.2.5) describing supported types 2523 and formats for the element (Section 4.4.2.2.5). The 2524 element is mandatory. 2526 : element (Section 4.4.2.2.6) describing the 2527 supported maximum duration for a prepared dialog following a 2528 (Section 4.2.1) request. The element is 2529 mandatory. 2531 : element (Section 4.4.2.2.7) describing the 2532 supported maximum duration for a recording 2533 Section 4.3.1.4) request. The element is mandatory. 2535 : element (Section 4.4.2.1) describing codecs available to 2536 the package. The element is mandatory. 2538 For example, a fragment describing capabilities: 2540 2541 2542 application/voicexml+xml 2543 2544 2545 application/srgs+xml 2546 2547 2548 application/x-wav 2549 video/3gpp 2550 2551 2552 application/x-wav 2553 video/3gpp 2554 2555 2556 30s 2557 60s 2558 2559 2560 H.263 2561 2562 2563 H.264 2564 2565 2566 PCMU 2567 2568 2569 PCMA 2570 2571 2572 telephone-event 2573 2574 2575 2577 4.4.2.2.1. 2579 The element provides information about additional 2580 dialog languages supported by the package. Dialog languages are 2581 identified by their associated MIME media types. The MS MUST NOT 2582 include the mandatory dialog language for this package (Section 4.3). 2584 The element has no attributes. 2586 The element has the following sequence of child 2587 elements (0 or more occurrences): 2589 : element whose content model describes a MIME media type 2590 (Section 4.6.10) associated with a supported dialog language. The 2591 element is optional. 2593 4.4.2.2.2. 2595 The element provides information about 2596 format types supported by the package. The MS MUST include the 2597 mandatory SRGS format type, "application/srgs+xml" 2598 (Section 4.3.1.3.1). 2600 The element has no attributes. 2602 The element has the following sequence of child 2603 elements (1 or more occurrences): 2605 : element whose content model describes a mime type 2606 (Section 4.6.10). The element is optional. 2608 4.4.2.2.3. 2610 The element provides information about format 2611 types supported by the package (Section 4.3.1.4). 2613 The element has no attributes. 2615 The element has the following sequence of child 2616 elements (0 or more occurrences): 2618 : element whose content model describes a mime type 2619 (Section 4.6.10). The element is optional. 2621 4.4.2.2.4. 2623 The element provides information about format 2624 types supported by the package (Section 4.3.1.1.1). 2626 The element has no attributes. 2628 The element has the following sequence of child elements 2629 (0 or more occurrences): 2631 : element whose content model describes a mime type 2632 (Section 4.6.10). The element is optional. 2634 4.4.2.2.5. 2636 The element provides information about types and formats 2637 for the element (Section 4.4.2.2.5) supported by the 2638 package. 2640 The element has no attributes. 2642 The element has the following sequence of child elements 2643 (0 or more occurrences): 2645 : element describing the formats support for a given 2646 type (Section 4.4.2.2.5.1). The element is optional. 2648 For example, a fragment describing support for with a 2649 "date" type in some common formats. 2651 2652 2653 mdy 2654 ymd 2655 dmy 2656 dm 2657 2658 2660 4.4.2.2.5.1. 2662 The element describes the formats supported for 2663 supported type. 2665 The element has the following attributes: 2667 type: indicates a supported value associated with the type attribute 2668 of element.The attribute is manadatory. 2670 desc: a string providing some textual description of the type and 2671 format. The attribute is optional. 2673 The element has the following sequence of child 2674 elements (0 or more occurrences): 2676 : element with a desc attribute (optional description) and a 2677 content model describing a supported format in the 2678 format attribute. The element is optional. 2680 4.4.2.2.6. 2682 The element describes the maximum duration for 2683 a dialog to remain in the prepared state (Section 4.2) following a 2684 (Section 4.2.1) request. 2686 The element has no attributes. 2688 The element has a content model describing the 2689 maximum prepared dialog duration as a time designation 2690 (Section 4.6.7). 2692 4.4.2.2.7. 2694 The element describes the maximum recording 2695 duration for Section 4.3.1.4) request supported by the MS. 2697 The element has no attributes. 2699 The element has a content model describing the 2700 maximum duration of recording as a time designation (Section 4.6.7). 2702 4.4.2.3. 2704 The element provides audit information about dialogs. 2706 The element has no attributes. 2708 The element has the following sequence of child elements (0 2709 or more occurrences): 2711 : audit information for a dialog (Section 4.4.2.3.1). 2712 The element is optional. 2714 4.4.2.3.1. 2716 The element has the following attributes: 2718 dialogid: string identifying the dialog. The attribute is 2719 mandatory. 2721 state: string indicating the state of the dialog. Valid values are: 2722 preparing, prepared, starting, started. The attribute is 2723 mandatory. 2725 connectionid: string identifying the SIP dialog connection 2726 associated with the dialog (see Section 17.1 of 2727 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2728 optional. There is no default value. 2730 conferenceid: string identifying the conference associated with the 2731 dialog (see Section 17.1 of 2732 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2733 optional. There is no default value. 2735 The element has the following child element: 2737 element describing codecs used in the dialog. See 2738 Section 4.4.2.1. The element is optional. 2740 For example, a fragment describing a started dialog which is using 2741 PCMU and telephony-event codecs: 2743 2744 2745 2746 PCMU 2747 2748 2749 telephone-event 2750 2751 2752 2754 4.5. Response Status Codes 2756 The following status codes for dialog management (Section 4.2.4) and 2757 audit (Section 4.4.2) responses are defined: 2759 +-----------+-------------------------------------------------------+ 2760 | code | description | 2761 +-----------+-------------------------------------------------------+ 2762 | 200 | OK | 2763 | | | 2764 | 401 | dialogid already exists | 2765 | | | 2766 | 402 | dialogid does not exist | 2767 | | | 2768 | 403 | connectionid does not exist | 2769 | | | 2770 | 404 | conferenceid does not exist | 2771 | | | 2772 | 405 | Unknown or unsupported element | 2773 | 406 | Element required | 2774 | | | 2775 | 407 | Unknown or unsupported attribute | 2776 | | | 2777 | 408 | Attribute required | 2778 | | | 2779 | 409 | Dialog language not supported | 2780 | | | 2781 | 410 | Retrieving resource failed | 2782 | | | 2783 | 411 | Invalid attribute value | 2784 | | | 2785 | 412 | Subscription not supported | 2786 | | | 2787 | 413 | Invalid stream configuration | 2788 | | | 2789 | 414 | Dialog execution canceled | 2790 | | | 2791 | 415 | Unsupported URI scheme | 2792 | | | 2793 | 416 | Invalid region identifier | 2794 | | | 2795 | 417 | Resource cannot be retrieved within timeout interval | 2796 | | | 2797 | 418 | Syntax constraint violation | 2798 | | | 2799 | 419 | Media format not supported | 2800 | | | 2801 | 420 | Grammar format not supported | 2802 | | | 2803 | 421 | Variable announcement not supported | 2804 | | | 2805 | 422 | DTMF tone not supported | 2806 | | | 2807 | 423 | Control keys with same value | 2808 | | | 2809 | 424 | Recording format not supported | 2810 | | | 2811 | 425 | Unsupported param parameter | 2812 | | | 2813 | 426 | Unsupported foreign namespace attribute or element | 2814 | | | 2815 | 499 | Other error | 2816 +-----------+-------------------------------------------------------+ 2818 Table 1: status codes 2820 The MS MAY define other status codes. 2822 4.6. Type Definitions 2824 This section defines types referenced in attribute definitions. 2826 4.6.1. Boolean 2828 The value space of boolean is the set {true, false}. 2830 4.6.2. DTMFChar 2832 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 2833 7, 8, 9, #, *, A, B, C, D}. 2835 4.6.3. DTMFString 2837 A String composed of one or more DTMFChars. 2839 4.6.4. Non-Negative Integer 2841 The value space of non-negative integer is the infinite set 2842 {0,1,2,...}. 2844 4.6.5. Positive Integer 2846 The value space of positive integer is the infinite set {1,2,...}. 2848 4.6.6. String 2850 A string in the character encoding associated with the XML element. 2852 4.6.7. Time Designation 2854 A time designation consists of a non-negative real number followed by 2855 a time unit identifier. 2857 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 2859 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 2861 4.6.8. Percentage 2863 A percentage consists of a Positive Integer followed by "%". 2865 Examples include: "100%", "500%" and "10%". 2867 4.6.9. URI 2869 Uniform Resource Indicator as defined in [RFC3986]. 2871 4.6.10. MIME Media Type 2873 A string formated as a IANA MIME media type ([MIME.mediatypes]). 2875 4.6.11. Language Identifier 2877 A language identifier labels information content as being of a 2878 particular human language variant. Following the XML specification 2879 for language identification [XML], a legal language identifier is 2880 identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code 2881 where the language code is required and a country code or other 2882 subtag identifier is optional. 2884 4.6.12. DateTime 2886 A string formated according to the XML schema definition of a 2887 dateTime type ([XMLSchema:Part2]). 2889 5. Formal Syntax 2891 This section defines the XML schema for IVR Control Package. 2893 The schema defines datatypes, attributes, dialog management and IVR 2894 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 2895 most elements the order of child elements is significant. The schema 2896 is extensible: elements allow attributes and child elements from 2897 other namespaces. Elements from outside this package's namespace can 2898 occur after elements defined in this package. 2900 The schema is dependent upon the schema (framework.xsd) defined in 2901 Section 17.1 of the Control Framework 2902 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 2903 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 2904 xml:base). 2906 2907 2913 2914 2915 IETF MediaCtrl IVR 1.0 (20081003) 2917 This is the schema of the IETF MediaCtrl IVR control 2918 package. 2920 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 2922 2923 2925 2933 2935 2936 2937 This import brings in the XML attributes for 2938 xml:base, xml:lang, etc 2940 See http://www.w3.org/2001/xml.xsd for latest version 2941 2942 2943 2945 2948 2949 2950 This import brings in the framework attributes for 2951 conferenceid and connectionid. 2952 2953 2954 2956 2964 2965 2966 2967 This type is extended by other component types to 2968 allow elements and attributes from other namespaces 2969 to be added. 2970 2971 2972 2973 2975 2976 2977 2979 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3001 3002 3003 3005 3006 3007 3009 3011 3019 3021 3022 3023 3024 3025 3028 3030 3031 3032 3033 3035 3037 3038 3039 3041 3043 3045 3046 3047 3048 3049 3051 3053 3055 3057 3059 3060 3061 3062 3064 3066 3068 3069 3070 3071 3073 3075 3076 3077 3078 3079 3081 3083 3084 3085 3087 3089 3091 3092 3093 3094 3096 3097 3099 3100 3101 3102 3104 3106 3108 3109 3110 3111 3112 3113 3115 3117 3119 3120 3121 3123 3125 3126 3128 3130 3132 3133 3134 3135 3136 3138 3140 3142 3144 3146 3148 3149 3151 3152 3153 3154 3156 3158 3160 3161 3162 3163 3165 3167 3169 3170 3171 3172 3174 3176 3177 3178 3179 3181 3183 3184 3185 3187 3189 3191 3192 3193 3194 3195 3197 3199 3200 3201 3202 3204 3206 3208 3209 3210 3211 3213 3214 3215 3217 3219 3221 3223 3224 3225 3226 3228 3230 3231 3232 3234 3236 3238 3239 3240 3241 3242 3243 3245 3247 3249 3250 3251 3253 3255 3257 3258 3259 3260 3261 3263 3265 3266 3267 3268 3270 3272 3274 3275 3276 3277 3279 3280 3281 3283 3285 3286 3287 3288 3289 3290 3292 3294 3295 3296 3297 3299 3301 3302 3303 3304 3305 3307 3308 3309 3310 3311 3313 3315 3317 3318 3319 3320 3321 3323 3325 3326 3328 3329 3331 3332 3333 3335 3337 3338 3339 3340 3342 3344 3346 3347 3348 3349 3350 3352 3354 3356 3358 3360 3361 3363 3365 3366 3367 3369 3371 3373 3374 3375 3376 3377 3378 3379 3380 3382 3383 3384 3386 3387 3388 3390 3392 3394 3395 3396 3397 3399 3400 3402 3404 3406 3408 3409 3410 3412 3414 3416 3417 3418 3419 3421 3423 3424 3425 3426 3427 3428 3430 3432 3434 3435 3436 3437 3439 3441 3443 3446 3447 3448 3450 3452 3454 3455 3456 3457 3459 3460 3461 3463 3465 3467 3469 3471 3473 3475 3477 3479 3481 3483 3485 3486 3487 3489 3491 3492 3493 3494 3495 3496 3498 3500 3501 3503 3505 3507 3509 3511 3513 3515 3516 3517 3519 3521 3522 3523 3524 3525 3527 3528 3529 3530 3532 3533 3535 3537 3539 3540 3541 3542 3544 3545 3546 3548 3550 3552 3554 3556 3558 3560 3561 3562 3564 3566 3574 3576 3577 3578 3579 3581 3583 3585 3586 3588 3590 3592 3594 3595 3596 3597 3598 3600 3602 3604 3605 3607 3608 3609 3610 3612 3614 3616 3617 3618 3619 3620 3622 3624 3626 3627 3628 3629 3630 3631 3633 3635 3636 3637 3638 3640 3642 3644 3645 3646 3647 3648 3650 3652 3653 3654 3655 3657 3659 3661 3662 3663 3664 3665 3667 3669 3671 3673 3675 3677 3679 3681 3683 3684 3685 3686 3688 3690 3692 3694 3696 3697 3698 3699 3700 3702 3704 3705 3706 3707 3709 3711 3713 3714 3715 3716 3717 3719 3721 3722 3723 3724 3726 3727 3729 3730 3731 3732 3733 3735 3737 3738 3739 3740 3742 3744 3746 3747 3748 3749 3750 3752 3754 3755 3756 3757 3759 3761 3763 3764 3765 3766 3767 3769 3771 3772 3773 3775 3777 3779 3780 3781 3782 3783 3785 3787 3788 3789 3790 3791 3792 3794 3796 3797 3798 3800 3801 3802 3803 3805 3807 3809 3812 3814 3817 3819 3820 3821 3822 3823 3825 3827 3828 3829 3830 3832 3834 3836 3837 3838 3839 3840 3842 3844 3845 3847 3849 3850 3851 3852 3854 3856 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 Time designation following Time in CSS2 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 DTMF character [0-9#*A-D] 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 DTMF sequence [0-9#*A-D] 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 whole integer followed by '%' 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3968 3969 3970 3971 3972 3973 3974 3975 3977 3978 3979 3980 3981 3982 3983 3984 3985 3987 3988 3989 3990 3991 3992 3993 3995 3996 6. Examples 3998 This section provides examples of the IVR Control package. 4000 6.1. AS-MS Dialog Interaction Examples 4002 The following example assume a control channel has been established 4003 and synced as described in the Media Control Channel Framework 4004 ([I-D.ietf-mediactrl-sip-control-framework]). 4006 The XML messages are in angled brackets (with the root 4007 omitted); the REPORT status is in round brackets. Other aspects of 4008 the protocol are omitted for readability. 4010 6.1.1. Starting an IVR dialog 4012 An IVR dialog is started successfully, and dialogexit notification 4013 is sent from the MS to the AS when the dialog exits normally. 4015 Application Server (AS) Media Server (MS) 4016 | | 4017 | (1) CONTROL: | 4018 | ----------------------------------------> | 4019 | | 4020 | (2) 202 | 4021 | <--------------------------------------- | 4022 | | 4023 | | 4024 | (3) REPORT: | 4025 | (terminate) | 4026 | <---------------------------------------- | 4027 | | 4028 | (4) 200 | 4029 | ----------------------------------------> | 4030 | | 4031 | (5) CONTROL: | 4032 | | 4033 | <---------------------------------------- | 4034 | | 4035 | (6) 200 | 4036 | ----------------------------------------> | 4037 | | 4039 6.1.2. IVR dialog fails to start 4041 An IVR dialog fails to start due to an unknown dialog language. The 4042 is reported in a framework 200 message. 4044 Application Server (AS) Media Server (MS) 4045 | | 4046 | (1) CONTROL: | 4047 | ----------------------------------------> | 4048 | | 4049 | (2) 200: | 4050 | <---------------------------------------- | 4051 | | 4053 6.1.3. Preparing and starting an IVR dialog 4055 An IVR dialog is prepared and started successfully, and then the 4056 dialog exits normally. 4058 Application Server (AS) Media Server (MS) 4059 | | 4060 | (1) CONTROL: | 4061 | ----------------------------------------> | 4062 | | 4063 | (2) 202 | 4064 | <--------------------------------------- | 4065 | | 4066 | (3) REPORT: | 4067 | (terminate) | 4068 | <---------------------------------------- | 4069 | | 4070 | (4) 200 | 4071 | ----------------------------------------> | 4072 | | 4073 | (5) CONTROL: | 4074 | ----------------------------------------> | 4075 | | 4076 | (6) 202 | 4077 | <--------------------------------------- | 4078 | | 4079 | (7) REPORT: | 4080 | (terminate) | 4081 | <---------------------------------------- | 4082 | | 4083 | (8) 200 | 4084 | ----------------------------------------> | 4085 | | 4086 | (9) CONTROL: | 4087 | <---------------------------------------- | 4088 | | 4089 | (10) 200 | 4090 | ----------------------------------------> | 4091 | | 4093 6.1.4. Terminating a dialog 4095 An IVR dialog is started successfully, and then terminated by the AS. 4096 The dialogexit event is sent by to the AS when the dialog exits. 4098 Application Server (AS) Media Server (MS) 4099 | | 4100 | (1) CONTROL: | 4101 | ----------------------------------------> | 4102 | | 4103 | (2) 202 | 4104 | <--------------------------------------- | 4105 | | 4106 | (3) REPORT: | 4107 | (terminate) | 4108 | <---------------------------------------- | 4109 | | 4110 | (4) 200 | 4111 | ----------------------------------------> | 4112 | | 4113 | (5) CONTROL: | 4114 | ----------------------------------------> | 4115 | | 4116 | (6) 200: | 4117 | <---------------------------------------- | 4118 | | 4119 | (7) CONTROL: | 4120 | <---------------------------------------- | 4121 | | 4122 | (8) 200 | 4123 | ----------------------------------------> | 4124 | | 4126 Note that in (6) the payload to the 4127 request is carried on a framework 200 response since it could 4128 complete the requested operation before the transaction timeout. 4130 6.2. IVR Dialog Examples 4132 The following examples show how is used with 4133 , and elements to play prompts, 4134 set runtime controls, collect DTMF input and record user input. 4136 The examples do not specify all messages between the AS and MS. 4138 6.2.1. Playing announcements 4140 This example prepares an announcement composed of two prompts where 4141 the dialog repeatCount set to 2. 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4154 If the dialog is prepared successfully, a is returned with 4155 status 200 and a dialog identifier assigned by the MS: 4157 4158 4159 4161 The prepared dialog is then started on a conference playing the 4162 prompts twice: 4164 4165 4166 4168 In the case of a successful dialog, the output is provided in 4169 ; for example 4171 4172 4173 4174 4175 4176 4177 4179 6.2.2. Prompt and collect 4181 In this example, a prompt is played and then the MS waits for 30s for 4182 a two digit sequence: 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4195 If no user input is collected within 30s, then following notification 4196 event would be returned: 4198 4199 4200 4201 4202 4203 4204 4206 The collect operation can be specified without a prompt. Here the MS 4207 just waits for DTMF input from the user: 4209 4210 4211 4212 4213 4214 4215 4217 If the dialog is successful, then dialogexit contains the 4218 dtmf collected in its result parameter: 4220 4221 4222 4223 4224 4225 4226 /mscivr> 4228 And finally in this example, one of the input parameters is invalid: 4230 4231 4232 4233 4234 4235 4236 4239 4240 4241 4243 The error is reported in the response: 4245 4246 4248 4250 6.2.3. Prompt and record 4252 In this example, the user is prompted, then their input is recorded 4253 for a maximum of 30 seconds. 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4266 If successful and the recording is terminated by DTMF, the following 4267 is returned in a dialogexit : 4269 4270 4271 4272 4274 4275 4277 4279 6.2.4. Runtime controls 4281 In this example, a prompt is played with collect and runtime controls 4282 are activated. 4284 4285 4286 4287 4288 4289 4290 4292 4293 4294 4295 4297 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 4298 execute runtime controls on the prompt queue. The keys do not cause 4299 bargein to occur. If the user presses any other key, then the prompt 4300 is interrupted and DTMF collect begins. Note that runtime controls 4301 are not active during the collect operation. 4303 When the dialog is completed successfully, then both control and 4304 collect information is reported. 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4320 6.2.5. Subscriptions and notifications 4322 In this example, a looped dialog is started with subscription for 4323 notifications each time the user input matches the collect grammar: 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4336 Each time the user input the DTMF matching the grammar, the following 4337 notification event would be sent: 4339 4340 4341 4343 4344 4346 If no user input was provided, or the input did not match the 4347 grammar, the dialog would continue to loop until terminated (or an 4348 error occurred). 4350 6.3. Other Dialog Languages 4352 The following example requests that a VoiceXML dialog is started: 4354 4355 4358 4359 nfs://nas01/media1.3gp" 4360 nfs://nas01/media2.3gp" 4361 4362 4363 4365 If the MS does not support this dialog language, then the response 4366 would have the status code 409 (Section 4.5). However, if it does 4367 support the VoiceXML dialog language, it would respond with a 200 4368 status, activate the VoiceXML dialog and make the available 4369 in the VoiceXML script through the "connection.ccxml.values" object. 4371 When the VoiceXML dialog exits, exit namelist parameters are 4372 specified using in the dialogexit event: 4374 4375 4376 4377 4378 peter 4379 1234 4380 4381 4382 4383 4385 6.4. Foreign Namespace Attributes and Elements 4387 An MS may support attributes and elements from foreign namespaces 4388 within the element. For example, it may support a 4389 element (in a foreign namespace) for speech recognition by analogy to 4390 how support DTMF collection. 4392 In the following example, a prompt and collect request is extended 4393 with a element: 4395 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4410 In the root element, the xmlns:ex attribute declares that 4411 "ex" is associated with the foreign namespace URI "http// 4412 www.example.com/mediactrl/extensions/1". The , its 4413 attributes and child elements are associated with this namespace. 4414 This could be defined so that it activates an SRGS grammar 4415 and listens for user input matching the grammar in a similar manner 4416 to DTMF collection. 4418 If an MS receives this request but does not support the 4419 element, then it would send a 426 response: 4421 4422 4424 4426 If the MS does support this foreign element, it would send a 200 4427 response and start the dialog with speech recognition. When the 4428 dialog exits, it may provide information about the execution 4429 within , again using elements in a foreign namespace such 4430 as below: 4432 4434 4435 4436 4437 4438 4439 4441 Note that in reply the AS must send a Control Framework 200 response 4442 even though the notification event contains an element in a foreign 4443 namespace which it may not understand. 4445 7. Security Considerations 4447 As this control package processes XML markup, implementations MUST 4448 address the security considerations of [RFC3023]. 4450 As a Control Package of the Media Control Channel Framework, 4451 security, confidentiality and integrity of messages transported over 4452 the control channel MUST be addressed as described in Section 11 of 4453 the Media Control channel Framework 4454 ([I-D.ietf-mediactrl-sip-control-framework]), including Session 4455 Establishment, Transport Level Protection and Control Channel Policy 4456 Management. 4458 The Media Control Channel Framework permits additional policy 4459 management, including resource access and control channel usage, to 4460 be specified at the control package level beyond that specified for 4461 the Media Control Channel Framework (see Section 11.3 of 4462 [I-D.ietf-mediactrl-sip-control-framework]). 4464 Since creation of IVR dialogs is associated with media processing 4465 resources (e.g. DTMF detectors, media playback and recording, etc) 4466 on the MS, policy management for this control package MUST address 4467 how such dialogs are managed across multiple control channels. This 4468 includes which channels are used to deliver dialog event 4469 notifications, and whether channels are permitted to originate 4470 requests managing a dialog which was not created through that channel 4471 (e.g. a dialog has been prepared or started via channel X and a 4472 request to terminate the dialog originates from channel Y). 4474 8. IANA Considerations 4476 This specification instructs IANA to register a new Media Control 4477 Channel Framework Package, a new XML namespace and a new mime type. 4479 8.1. Control Package Registration 4481 Control Package name: msc-ivr/1.0 4483 8.2. URN Sub-Namespace Registration 4485 XML namespace: urn:ietf:params:xml:ns:msc-ivr 4487 8.3. Mime Type Registration 4489 MIME type: application/msc-ivr+xml 4491 9. Change Summary 4493 Note to RFC Editor: Please remove this whole section. 4495 The following are the major changes between the -01 and -00 versions. 4497 o 7: Updated security section referencing control framework security 4498 and adding policy requirement to address dialog resource 4499 management over multiple channels. 4501 o corrected typos and example errors 4503 o 4.2: [IVR-200] Added state machine for dialog lifecycle. 4505 o 4.2: clarified dialog identifier assignment and use, including MS 4506 assignment of dialogid in and . 4508 o 4.2/4.2.3: clarified behavior when dialog is not 4509 in a STARTED state. 4511 o 1/4.2: Clarified concept of dialog language and replaced 4512 references to 'dialog types' with dialog languages. Replaced 4513 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that 4514 IVR is inline and other supported dialog languages are 4515 specified by reference. Removed default type values for 4516 and . 4518 o 4.4.2.2.1: clarified that the inline dialog language () 4519 must not be listed as an additional supported dialog language. 4521 o 4.2.2.2: [IVR-201] Added element to so that 4522 dialog video output can be directed to a specific region a 4523 conference video layout. 4525 o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format 4526 for digits. 4528 o 4.4.2.1.1:[IVR-203]: added to to allow additional 4529 codec information to be specified. 4531 o 4.5: added error status code for unsupported URI (415), invalid 4532 region identifier (416), fetchtimeout exceeded (417), syntactic 4533 constraint violation (418), unsupported media format (419), 4534 unsupported grammar format (420), unsupported variable 4535 announcement (421), unsupported DTMF tone generation (422), 4536 conflict with control key values (423), unsupported recording 4537 format (424). 4539 o Generally, replaced 'it is an error ...' language with RFC2119 4540 language, making error codes more explicit. 4542 o 4.3.1: Clarified that an MS MAY support and 4543 elements co-occurring in a element, but the MS MUST send 4544 an error response if they are not supported. Clarified that MS 4545 MUST send an error response if is specified without a 4546 &l;prompt> element. 4548 o 4.2.5.2: clarified that the timestamp in is that of 4549 the last DTMF in a matching input sequence. 4551 o References: more references now normative. 4553 o 4.3: Replaced passive voice language with active voice language in 4554 the description of execution models. 4556 o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is 4557 completely unrelated to the term 'SIP dialog'. 4559 o 4: Added clarification that elements with URI attributes are 4560 recommended to support one or more communication protocols 4561 suitable for fetching resources. 4563 o 4.3.1.4: clarified MS MAY support upload of recording 4564 data during recording, and that upload errors (e.g. authentication 4565 failures, communication errors, etc) are execution errors. Added 4566 'append' attribute to control behavior when a recorded resource 4567 already exists at the recording location. 4569 o 4.2.2: Clarified that an error is reported if with 4570 contains parameters which the MS cannot process for the 4571 given dialog language. 4573 o 4.2.6.1: removed 'valuetype' attribute and clarified that 4574 the type attribute indicates the MIME media type associated with 4575 the inline value. 4577 o 4.3.1.4: Added append attribute to to control whether 4578 recordings are appended or not to the recording location resource. 4580 o 4.3.1.1.1: Added clipEnd attribute to to control when 4581 playback of the media ends. 4583 o 4.3.1: Clarified that when there are multiple iterations of a 4584 dialog (using repeatCount attribute) only the results of the last 4585 dialog iteration are reported. 4587 o 4.4.2.2: Added ability to audit capability, as well as 4588 maximum duration of prepared dialogs and of recordings. 4590 o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in 4591 and how &llt;prompt> reports its status. 4593 o 4: Changed handling of unsupported foreign namespace elements and 4594 attributes. The MS send a 426 error response if it encounters 4595 foreign elements and attributes it does not support. 4597 The following are the major changes between the -00 of this work 4598 group item draft and the individual submission -05 version. 4600 o [IVR01] When the MS sends a notification event in a CONTROL, the 4601 AS sends mandatory 200 response (no extended transaction). 4603 o [IVR23] Added a top-level container element, , with 4604 version attribute. 4606 o Removed term 'basic' in title, description, elements and IANA 4607 registration. Control package name is now 'msc-ivr/1.0'. 4608 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 4609 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 4610 'dialog' and moved version attribute to mscivr element. 4612 o [IVR15] Updated and simplified XML schema. Ordering of child 4613 elements is significant. 4615 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 4616 'soundLevel' and 'clipBegin' to media element. 4618 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 4619 Added 'repeatCount' and 'repeatDur' to dialog element. 4621 o Moved VCR commands from into separate element. 4622 Defined controlinfo element to report runtime control match 4623 information. 4625 o [IVR05] Added to where AS can subscribe 4626 to DTMF key presses (all, control match only, collect match only). 4627 Extended to support associated notification. 4629 o Moved definition of into a separate section. 4631 o [IVR21] Added audit capability: auditing of package capabilities 4632 and managed dialogs 4634 o [IVR21] Explicitly stated that an error must be reported if the 4635 connection or conference referenced in a is not 4636 available at the time the request is processed on the MS. 4638 o Clarified that the rendering mechanism is MS 4639 implementation specific. 4641 o [IVR09]/[IVR10] Clarified attribute definitions and 4642 added 'gender' attribute. 4644 o [IVR16] Clarified that info must be reported in dialogexit, if the 4645 corresponding element is specified in a . For example, if 4646 is specified, then must be specified if the 4647 dialog terminates normally. 4649 o [IVR18] Added 'inactive' value for direction attribute of 4650 . 4652 o [IVR19] Clarified case of on connection/conference 4653 with multiple streams of the same type: recommended to be set 4654 explicitly with s. 4656 o [IVR02] Clarified that multiple dialogs may started simultaneously 4657 on the same connection or conference. 4659 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 4660 in the PREPARED state. 4662 o Added in and for input/output 4663 in other dialog types 4665 o [IVR22] Added fetchtimeout parameter to dialogprepare, 4666 dialogstart, media and grammar elements. 4668 o [IVR04] Added dialogexit status to indicate the connection or 4669 conference has been terminated. Added others status errors. 4671 o [IVR08] Clarified that the operation does not interrupt 4672 playing prompts and that matched DTMF is not available to 4673 or operations during prompt playback. 4675 o [IVR11] Added runtime controls for speed, goto start/end and 4676 external controls. 4678 o Clarified that recordings can be uploaded to dest during or after 4679 the recording operation. 4681 o /: clarified timer handling - timeout refers to 4682 waiting time for collect/record to begin. 4684 o Clarified behavior of immediate attribute on . 4686 o clarified dialogid lifecycle: dialogids can be re-cycled. 4688 o Clarified error handling. 4690 o Editorial tidy up of sections. 4692 o dialogid attribute on is now mandatory. 4694 o Clarified that the duration specified in finalsilence attribute of 4695 is not part of the final recording. 4697 o Clarified that the SRGS XML grammar format is mandatory 4699 The following are the major changes between the -06 of the draft and 4700 the -05 version. 4702 o Event notifications are sent in CONTROL messages with the MS 4703 acting as Control Framework Client. Compared with the previous 4704 approach, this means that a transaction is now 4705 complete when the MS sends a . A new transaction is 4706 initiated by the MS each time the MS sends a notification 4707 to the AS. 4709 o Changed conf-id to conferenceid and connection-id to connectionid. 4711 o Clarification of the state model for dialogs 4713 o : modified definition of src attribute to allow 4714 reference to external dialog documents; added (MIME) type 4715 attribute; removed child element. 4717 o : modified definition of src attribute to allow 4718 reference to external dialog documents; added (MIME) type 4719 attribute; removed child element; 4721 o : modified so that a dialogexit event is always 4722 sent for active dialogs (i.e. the dialogexit event is a 4723 terminating notification) 4725 o notification simplified and make more extensible. Manual 4726 notifications (via element) are removed from the basic 4727 package. A event is defined as child and it 4728 can be extended with additional child elements 4730 o element is removed. 4732 o element removed. 4734 o Replaced dialog templates with a general element. It has 4735 child elements for playing media resource (), collecting 4736 DTMF () and recording (). The functionality is 4737 largely unchanged. 4739 o and are extended with child 4740 element. 4742 o is extended with a element which contains 4743 status and reported information (replacement for output parameters 4744 in template dialogs) 4746 o Prompts: now structured as a element with , 4747 and children. The element has xml:base 4748 attribute, bargein, iterations, duration, volume and offset 4749 attributes. The speed attribute is removed. A element 4750 has src and type attributes. The maxage and maxstale attributes 4751 are removed. 4753 o DTMF input: parameters now specified as attributes of a 4754 element. Custom grammar specified with a element as 4755 child of element. Added 'escapekey' to allow the dialog 4756 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 4757 to allow the prompts to paused/resumed. Added 'volumeinterval', 4758 'volupkey' and voldnkey' to add prompt volume to be increased/ 4759 decreased. Moved 'bargein' attribute to prompt. 4761 o Recording: parameters now specified as attributes of 4762 element. Added 'dest' and 'beep' attributes. 4764 The following are the major changes between the -05 of the draft and 4765 the -04 version. 4767 o Mainly an alignment/evaluation exercise with requirements produced 4768 by MEDIACTRL IVR design team. 4770 o playannouncement parameters from Table 7 of '04' version are now 4771 reflected in text - schema to be updated. 4773 o Added VCR commands based on MSCML. 4775 The following are the major changes between the -04 of the draft and 4776 the -03 version. 4778 o None. 4780 The following are the major changes between the -03 of the draft and 4781 the -02 version. 4783 o added "basicivr:" protocol to template dialog types which must be 4784 supported as values of the "src" attribute in and 4785 . Note alternative: "/basicivr/playannouncement" 4786 offered in [RFC4240]. 4788 o added "basicivr:" URI schema to IANA considerations 4790 o Added mimetype, vadinitial and vadfinal parameters to 4791 'promptandrecord' dialog type 4793 o updated references 4795 The following are the major changes between the -02 of the draft and 4796 the -01 version. 4798 o added version 1.0 to package name 4800 o separate section for element definitions 4802 o dialogterminate treated as request rather than notification 4804 o simplified responses: single element 4806 o removed response elements: , , 4807 , 4809 o simplified event notifications to single element carried 4810 in a REPORT 4812 o element replaced with 4814 o removed element 4816 o added element as child of 4818 o removed 'type' attribute from and 4820 o added dialogid attribute to and 4822 o removed template "Sample Implementation" section 4824 o renamed to 4825 o re-organized so that template details after general package 4826 framework and element description. 4828 The following are the primary changes between the -01 of the draft 4829 and the -00 version. 4831 o Removed requirement for VoiceXML dialog support 4833 o Added requirement for template dialog support 4835 10. Contributors 4837 Asher Shiratzky from Radvision provided valuable support and 4838 contributions to the early versions of this document. 4840 The authors would like to thank the IVR design team consisting of 4841 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan and Mary 4842 Barnes who provided valuable feedback, input and text to this 4843 document. 4845 11. Acknowledgments 4847 The authors would like to thank Adnan Saleem of Radisys, Gene 4848 Shtirmer of Intel, Dave Burke of Google, Dan York of Voxeo and Steve 4849 Buko of Dialogic for expert reviews of this work. 4851 12. References 4853 12.1. Normative References 4855 [I-D.ietf-mediactrl-sip-control-framework] 4856 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 4857 Control Channel Framework", 4858 draft-ietf-mediactrl-sip-control-framework-04 (work in 4859 progress), August 2008. 4861 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4862 Requirement Levels", BCP 14, RFC 2119, March 1997. 4864 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 4865 Types", RFC 3023, January 2001. 4867 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 4868 Resource Identifier (URI): Generic Syntax", STD 66, 4869 RFC 3986, January 2005. 4871 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 4872 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 4874 [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying 4875 Languages", BCP 47, RFC 4646, September 2006. 4877 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 4878 BCP 47, RFC 4647, September 2006. 4880 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 4881 Specification Version 1.0", W3C Recommendation, 4882 March 2004. 4884 [W3C.REC-SMIL2-20051213] 4885 Bulterman, D., Jansen, J., Zucker, D., Layaida, N., 4886 Michel, T., Mullender, S., Koivisto, A., and G. Grassel, 4887 "Synchronized Multimedia Integration Language (SMIL 2.1)", 4888 World Wide Web Consortium Recommendation REC-SMIL2- 4889 20051213, December 2005, 4890 . 4892 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 4893 and F. Yergeau, "Extensible Markup Language (XML) 1.0 4894 (Third Edition)", W3C Recommendation, February 2004. 4896 [XMLSchema:Part2] 4897 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 4898 Second Edition", W3C Recommendation, October 2004. 4900 12.2. Informative References 4902 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 4903 1.0", W3C Working Draft (work in progress), January 2007. 4905 [H.248.9] "Gateway control protocol: Advanced media server 4906 packages", ITU-T Recommendation H.248.9. 4908 [I-D.ietf-xcon-common-data-model] 4909 Novo, O., Camarillo, G., Morgan, D., and R. Even, 4910 "Conference Information Data Model for Centralized 4911 Conferencing (XCON)", draft-ietf-xcon-common-data-model-11 4912 (work in progress), June 2008. 4914 [IANA] "IANA registry for RTP Payload Types", 4915 . 4917 [MIME.mediatypes] 4918 "IANA registry for MIME Media Types", 4919 . 4921 [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session 4922 Markup Language (MSML)", draft-saleem-msml-07 (work in 4923 progress), August 2008. 4925 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 4926 Package", RFC 2897, August 2000. 4928 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 4929 A., Peterson, J., Sparks, R., Handley, M., and E. 4930 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 4931 June 2002. 4933 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 4934 Media Services with SIP", RFC 4240, December 2005. 4936 [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media 4937 Types: application/voicexml+xml, application/ssml+xml, 4938 application/srgs, application/srgs+xml, application/ 4939 ccxml+xml, and application/pls+xml", RFC 4267, 4940 November 2005. 4942 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 4943 Parameter for "Bucket" Media Types", RFC 4281, 4944 November 2005. 4946 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 4947 (SIP) Event Package for Key Press Stimulus (KPML)", 4948 RFC 4730, November 2006. 4950 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 4951 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 4952 December 2006. 4954 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 4955 Formats", RFC 4855, February 2007. 4957 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 4958 Control Markup Language (MSCML) and Protocol", RFC 5022, 4959 September 2007. 4961 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 4962 Requirements", RFC 5167, March 2008. 4964 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 4965 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 4966 and S. Tryphonas, "Voice Extensible Markup Language 4967 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 4969 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 4970 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 4971 A., Porter, B., and K. Rehor, "Voice Extensible Markup 4972 Language (VoiceXML) Version 2.1", W3C Recommendation, 4973 June 2007. 4975 Authors' Addresses 4977 Scott McGlashan 4978 Hewlett-Packard 4979 Gustav III:s boulevard 36 4980 SE-16985 Stockholm, Sweden 4982 Email: scott.mcglashan@hp.com 4984 Tim Melanchuk 4985 Rain Willow Communications 4987 Email: tim.melanchuk@gmail.com 4989 Chris Boulton 4990 Avaya 4991 Building 3 4992 Wern Fawr Lane 4993 St Mellons 4994 Cardiff, South Wales CF3 5EA 4996 Email: cboulton@avaya.com 4998 Full Copyright Statement 5000 Copyright (C) The IETF Trust (2008). 5002 This document is subject to the rights, licenses and restrictions 5003 contained in BCP 78, and except as set forth therein, the authors 5004 retain all their rights. 5006 This document and the information contained herein are provided on an 5007 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 5008 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 5009 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 5010 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 5011 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 5012 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 5014 Intellectual Property 5016 The IETF takes no position regarding the validity or scope of any 5017 Intellectual Property Rights or other rights that might be claimed to 5018 pertain to the implementation or use of the technology described in 5019 this document or the extent to which any license under such rights 5020 might or might not be available; nor does it represent that it has 5021 made any independent effort to identify any such rights. Information 5022 on the procedures with respect to rights in RFC documents can be 5023 found in BCP 78 and BCP 79. 5025 Copies of IPR disclosures made to the IETF Secretariat and any 5026 assurances of licenses to be made available, or the result of an 5027 attempt made to obtain a general license or permission for the use of 5028 such proprietary rights by implementers or users of this 5029 specification can be obtained from the IETF on-line IPR repository at 5030 http://www.ietf.org/ipr. 5032 The IETF invites any interested party to bring to its attention any 5033 copyrights, patents or patent applications, or other proprietary 5034 rights that may cover technology that may be required to implement 5035 this standard. Please address the information to the IETF at 5036 ietf-ipr@ietf.org.