idnits 2.17.00 (12 Aug 2021) /tmp/idnits33328/draft-ietf-mediactrl-ivr-control-package-02.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 5594. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 5605. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 5612. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 5618. 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 (November 3, 2008) is 4946 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 4486, but not defined == Missing Reference: 'IVR-200' is mentioned on line 5084, but not defined == Missing Reference: 'IVR-201' is mentioned on line 5102, but not defined == Missing Reference: 'IVR01' is mentioned on line 5181, but not defined == Missing Reference: 'IVR23' is mentioned on line 5184, but not defined == Missing Reference: 'IVR15' is mentioned on line 5193, but not defined == Missing Reference: 'IVR06' is mentioned on line 5196, but not defined == Missing Reference: 'IVR05' is mentioned on line 5206, but not defined == Missing Reference: 'IVR21' is mentioned on line 5215, but not defined == Missing Reference: 'IVR16' is mentioned on line 5225, but not defined == Missing Reference: 'IVR18' is mentioned on line 5230, but not defined == Missing Reference: 'IVR19' is mentioned on line 5233, but not defined == Missing Reference: 'IVR02' is mentioned on line 5237, but not defined == Missing Reference: 'IVR20' is mentioned on line 5240, but not defined == Missing Reference: 'IVR22' is mentioned on line 5246, but not defined == Missing Reference: 'IVR04' is mentioned on line 5249, but not defined == Missing Reference: 'IVR08' is mentioned on line 5252, but not defined == Missing Reference: 'IVR11' is mentioned on line 5256, 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: May 7, 2009 Rain Willow Communications 6 C. Boulton 7 Avaya 8 November 3, 2008 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-02 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 May 7, 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 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12 64 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13 65 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 13 66 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15 67 4.2.1. . . . . . . . . . . . . . . . . . . . 18 68 4.2.2. . . . . . . . . . . . . . . . . . . . . 20 69 4.2.2.1. . . . . . . . . . . . . . . . . . . . 24 70 4.2.2.1.1. . . . . . . . . . . . . . . . . . . 24 71 4.2.2.2. . . . . . . . . . . . . . . . . . . . . 25 72 4.2.2.2.1. . . . . . . . . . . . . . . . . . . 27 73 4.2.2.2.2. . . . . . . . . . . . . . . . . . 27 74 4.2.3. . . . . . . . . . . . . . . . . . . 27 75 4.2.4. . . . . . . . . . . . . . . . . . . . . . 28 76 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 29 77 4.2.5.1. . . . . . . . . . . . . . . . . . . 30 78 4.2.5.2. . . . . . . . . . . . . . . . . . . 31 79 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 31 80 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 32 81 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 33 82 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 34 83 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 36 84 4.3.1.1.1. . . . . . . . . . . . . . . . . . 38 85 4.3.1.1.2. . . . . . . . . . . . . . . . . . . . 39 86 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . . 40 87 4.3.1.1.3.1. . . . . . . . . . . . . . . . . . . 42 88 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 43 89 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 46 90 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 48 91 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 50 92 4.3.1.5. . . . . . . . . . . . . . . . . . . . . . 53 93 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 94 4.3.2.1. . . . . . . . . . . . . . . . . . . 55 95 4.3.2.2. . . . . . . . . . . . . . . . . . . 55 96 4.3.2.2.1. . . . . . . . . . . . . . . . 55 97 4.3.2.3. . . . . . . . . . . . . . . . . . . 56 98 4.3.2.4. . . . . . . . . . . . . . . . . . . 56 99 4.3.2.4.1. . . . . . . . . . . . . . . . . . 56 100 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 57 101 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 57 102 4.4.2. . . . . . . . . . . . . . . . . . . . 59 103 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 61 104 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 61 105 4.4.2.2. . . . . . . . . . . . . . . . . . 62 106 4.4.2.2.1. . . . . . . . . . . . . . . 63 107 4.4.2.2.2. . . . . . . . . . . . . . . . 64 108 4.4.2.2.3. . . . . . . . . . . . . . . . . 64 109 4.4.2.2.4. . . . . . . . . . . . . . . . . 64 110 4.4.2.2.5. . . . . . . . . . . . . . . . . . 65 111 4.4.2.2.5.1. . . . . . . . . . . . . . 65 112 4.4.2.2.6. . . . . . . . . . . . . 66 113 4.4.2.2.7. . . . . . . . . . . . . . 66 114 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 66 115 4.4.2.3.1. . . . . . . . . . . . . . . . . 66 116 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 67 117 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 73 118 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76 119 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 101 120 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 101 121 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 101 122 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 102 123 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 102 124 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 103 125 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 104 126 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 104 127 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 105 128 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 107 129 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 108 130 6.2.5. Subscriptions and notifications . . . . . . . . . . . 109 131 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 109 132 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 110 133 7. Security Considerations . . . . . . . . . . . . . . . . . . . 113 134 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 114 135 8.1. Control Package Registration . . . . . . . . . . . . . . 114 136 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 114 137 8.3. Mime Type Registration . . . . . . . . . . . . . . . . . 114 138 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 115 139 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 124 140 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 125 141 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 126 142 12.1. Normative References . . . . . . . . . . . . . . . . . . 126 143 12.2. Informative References . . . . . . . . . . . . . . . . . 127 144 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 129 145 Intellectual Property and Copyright Statements . . . . . . . . . 130 147 1. Introduction 149 The Media Control Channel Framework 150 ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic 151 approach for establishment and reporting capabilities of remotely 152 initiated commands. The Control Framework utilizes many functions 153 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 154 rendezvous and establishment of a reliable channel for control 155 interactions. The Control Framework also introduces the concept of a 156 Control Package. A Control Package is an explicit usage of the 157 Control Framework for a particular interaction set. This document 158 defines a Control Package for Interactive Voice Response (IVR) 159 dialogs on media connections and conferences. The term 'dialog' in 160 this document refers to an IVR dialog and is completely unrelated to 161 the notion of a SIP dialog. The term 'IVR' is used in its inclusive 162 sense, allowing media other than voice for dialog interaction. 164 The package defines dialog management request elements for preparing, 165 starting and terminating dialog interactions, as well as associated 166 responses and notifications. Dialog interactions are specified using 167 a dialog language where the language specifies a well-defined syntax 168 and semantics for permitted operations (play a prompt, record input 169 from the user, etc). This package defines a own lightweight IVR 170 dialog language (supporting prompt playback, runtime controls, DTMF 171 collect and media recording) and allows other dialog languages to be 172 used. These dialog languages are specified inside dialog management 173 elements for preparing and starting dialog interactions. The package 174 also defines elements for auditing package capabilities and IVR 175 dialogs. 177 This package has been designed to satisfy the IETF MediaCtrl 178 requirements ([RFC5167]) by building upon two major approaches to IVR 179 dialog design. These approaches address a wide range of IVR use 180 cases and are used in many applications which are extensively 181 deployed today. 183 First, the package is designed to provide the major IVR functionality 184 of SIP Media Server languages such as netann ([RFC4240]), MSCML 185 ([RFC5022]) and MSML ([MSML]) which themselves build upon more 186 traditional non-SIP languages ([H.248.9], [RFC2897]). A key 187 differentiator is that this package provides IVR functionality using 188 the Media Control Channel Framework. 190 Second, its design is aligned with key concepts of web model as 191 defined in W3C Voice Browser languages. The key dialog management 192 mechanism is closely aligned with CCXML ([CCXML10]). The dialog 193 functionality defined in this package can be largely seen as a subset 194 of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, 195 DTMF collection and media recording features are incorporated, but 196 not any advanced VoiceXML constructs (such as
, its 197 interpretation algorithm, or a dynamic data model). As W3C develops 198 VoiceXML 3.0, we expect to see further alignment, especially in 199 providing a set of basic independent primitive elements (such as 200 prompt, collect, record and runtime controls) which can be re-used in 201 different dialog languages. 203 By reusing and building upon design patterns from these approaches to 204 IVR languages, this package is intended to provide a foundation which 205 is familiar to current IVR developers and sufficient for most IVR 206 applications, as well as a path to other languages which address more 207 advanced applications. 209 This control package defines a lightweight IVR dialog language. The 210 scope of this dialog language is the following IVR functionality: 212 o playing one or more media resources as a prompt to the user 214 o runtime controls (including VCR controls like speed and volume) 216 o collecting DTMF input from the user according to a grammar 218 o recording user media input 220 Out of scope for this dialog language are more advanced functions 221 including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), 222 VoiceXML, fax and media transformation. Such functionality may be 223 addressed by other dialog languages (such as VoiceXML) used with this 224 package, extensions to this package (addition of foreign elements or 225 attributes from another namespace) or other control packages. 227 The functionality of this package is defined by messages, containing 228 XML [XML] elements, transported using the Media Control Channel 229 Framework. The XML elements can be divided into three types: dialog 230 management elements; a dialog element which defines a lightweight IVR 231 dialog language used with dialog management elements; and finally, 232 elements for auditing package capabilities as well as dialogs managed 233 by the package. 235 Dialog management elements are designed to manage the general 236 lifecycle of a dialog. Elements are provided for preparing a dialog, 237 starting the dialog on a conference or connection, and terminating 238 execution of a dialog. Each of these elements is contained in a 239 Media Control Channel Framework CONTROL message sent to the media 240 server. When the appropriate action has been executed, the media 241 server sends a REPORT message (or a 200 response to the CONTROL if it 242 can execute in time) with a response element indicating whether the 243 operation was successful or not (e.g. if the dialog cannot be 244 started, then the error is reported in this response). Once a dialog 245 has been successfully started, the media server may send further 246 event notifications in a framework CONTROL message. This package 247 defines two event notifications: a DTMF event indicating the DTMF 248 activity; and a dialogexit event indicating that the dialog has 249 exited. If the dialog has executed successful, the dialogexit event 250 includes information collected during the dialog. If an error occurs 251 during execution (e.g. a media resource failed to play, no recording 252 resource available, etc), then error information is reported in the 253 dialogexit event. Once a dialogexit event is sent, the dialog 254 lifecycle is terminated. 256 The dialog management elements for preparing and starting a dialog 257 specify the dialog using a dialog language. A dialog language has 258 well-defined syntax and semantics for defined dialog operations. 259 Typically dialog languages are written in XML where the root element 260 has a designated XML namespace and, when used as standalone 261 documents, have an associated MIME media type. For example, VoiceXML 262 is an XML dialog language with the root element with the 263 designated namespace 'http://www.w3.org/2001/vxml' and standalone 264 documents are associated with the MIME media type 'application/ 265 vxml+xml' ([RFC4267]). 267 This control package defines its own lightweight IVR dialog language. 268 The language has a root element () with the same designated 269 namespace as used for other elements defined in this package (see 270 Section 8.2). The root element contains child elements for playing 271 prompts to the user, specifying runtime controls, collecting DTMF 272 input from the user and recording media input from the user. The 273 child elements can co-occur so as to provide 'play announcement', 274 'prompt and collect' as well as 'prompt and record' functionality. 276 The dialog management elements for preparing and starting a dialog 277 can specify the dialog language either by including inline a fragment 278 with the root element or by referencing an external dialog document. 279 The dialog language defined in this package is specified inline. 280 Other dialog languages, such as VoiceXML, can be used by referencing 281 an external dialog document. 283 The document is organized as follows. Section 3 describes how this 284 control package fulfills the requirements for a Media Control Channel 285 Framework control package. Section 4 describes the syntax and 286 semantics of defined elements, including dialog management 287 (Section 4.2), the IVR dialog element (Section 4.3) and audit 288 elements (Section 4.4). Section 5 describes an XML schema for these 289 elements and provides extensibility by allowing attributes and 290 elements from other namespaces. Section 6 provides examples of 291 package usage. 293 2. Conventions and Terminology 295 In this document, BCP 14 [RFC2119] defines the key words "MUST", 296 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 297 "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In 298 addition, BCP 15 indicates requirement levels for compliant 299 implementations. 301 The following additional terms are defined for use in this document: 303 Dialog: A dialog performs media interaction with a user following 304 the concept of an IVR (Interactive Voice Response) dialog (this 305 sense of 'dialog' is completely unrelated to a SIP dialog). A 306 dialog is specified as inline XML, or via a URI reference to an 307 external dialog document. Traditional IVR dialogs typically 308 feature capabilities such as playing audio prompts, collecting 309 DTMF input and recording audio input from the user. More 310 inclusive definitions may include support for other media types, 311 runtime controls, synthesized speech, recording and playback of 312 video, recognition of spoken input, and mixed initiative 313 conversations. 315 Application server: A SIP [RFC3261] application server (AS) hosts 316 and executes services such as interactive media and conferencing 317 in an operator's network. An AS influences and impacts the SIP 318 session, in particular by terminating SIP sessions on a media 319 server, which is under its control. 321 Media Server: A media server (MS) processes media streams on behalf 322 of an AS by offering functionality such as interactive media, 323 conferencing, and transcoding to the end user. Interactive media 324 functionality is realized by way of dialogs which are initiated by 325 the application server. 327 3. Control Package Definition 329 This section fulfills the mandatory requirement for information that 330 MUST be specified during the definition of a Control Framework 331 Package, as detailed in Section 8 of 332 [I-D.ietf-mediactrl-sip-control-framework]. 334 3.1. Control Package Name 336 The Control Framework requires a Control Package to specify and 337 register a unique name and version. 339 The name and version of this Control Package is "msc-ivr/1.0" (Media 340 Server Control - Interactive Voice Response - version 1.0). Its IANA 341 registration is specified in Section 8.1. 343 Since this is the initial ("1.0") version of the control package, 344 there are no backwards compatibility issues to address. 346 3.2. Framework Message Usage 348 The Control Framework requires a Control Package to explicitly detail 349 the control messages that can be used as well as provide an 350 indication of directionality between entities. This will include 351 which role type is allowed to initiate a request type. 353 This package specifies CONTROL and response messages in terms of XML 354 elements defined in Section 4, where the message bodies have the MIME 355 media type defined in Section 8.3. These elements describe requests, 356 response and notifications and all are contained within a root 357 element (Section 4.1). 359 In this package, the MS operates as a Control Server in receiving 360 requests from, and sending responses to, the AS (operating as Control 361 Client). Dialog management requests and responses are defined in 362 Section 4.2. Audit requests and responses are defined in 363 Section 4.4. dialog management and audit responses are carried in a 364 framework 200 response or REPORT message bodies. This package's 365 response codes are defined in Section 4.5. 367 Note that package responses are different from framework response 368 codes. Framework error response codes (see Section 8 of 369 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 370 or event notification is invalid; for example, a request is invalid 371 XML (400), or not understood (500). 373 The MS also operates as a Control Client in sending event 374 notification to the AS (Control Server). Event notifications 375 (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST 376 respond with a Control Framework 200 response. 378 3.3. Common XML Support 380 The Control Framework requires a Control Package definition to 381 specify if the attributes for media dialog or conference references 382 are required. 384 This package requires that the XML Schema in Section 17.1 of 385 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 386 media dialogs and conferences. 388 The package uses "connectionid" and "conferenceid" attributes for 389 various element definitions (Section 4). The XML schema (Section 5) 390 imports the definitions of these attributes from the framework 391 schema. 393 3.4. CONTROL Message Body 395 The Control Framework requires a Control Package to define the 396 control body that can be contained within a CONTROL command request 397 and to indicate the location of detailed syntax definitions and 398 semantics for the appropriate body types. 400 When operating as Control Server, the MS receives CONTROL messages 401 body with the MIME media type defined in Section 8.3 and containing 402 an element (Section 4.1) with either a dialog management or 403 audit request child element. 405 The following dialog management request elements are carried in 406 CONTROL message bodies to MS: (Section 4.2.1), 407 (Section 4.2.2) and 408 (Section 4.2.3)elements. 410 The request element (Section 4.4.1) is also carried in 411 CONTROL message bodies. 413 When operating as Control Client, the MS sends CONTROL messages with 414 the MIME media type defined in Section 8.3 and a body containing an 415 element (Section 4.1) with a notification child 416 element (Section 4.2.5). 418 3.5. REPORT Message Body 420 The Control Framework requires a control package definition to define 421 the REPORT body that can be contained within a REPORT command 422 request, or that no report package body is required. This section 423 should indicate the location of detailed syntax definitions and 424 semantics for the appropriate body types. 426 When operating as Control Server, the MS sends REPORT bodies with the 427 MIME media type defined in Section 8.3 and containing a 428 element (Section 4.1) with a response child element. The response 429 element for dialog management requests is a element 430 (Section 4.2.4). The response element for an audit request is a 431 element (Section 4.4.2). 433 3.6. Audit 435 The Control Framework encourages Control Packages to specify whether 436 auditing is available, how it is triggered as well as the query/ 437 response formats. 439 This Control Packages supports auditing of package capabilities and 440 dialogs on the MS. An audit request is carried in a CONTROL message 441 (see Section 3.4) and an audit response in a REPORT message (or a 200 442 response to the CONTROL if it can execute the audit in time) (see 443 Section 3.5). 445 The syntax and semantics of audit request and response elements is 446 defined in Section 4.4. 448 3.7. Examples 450 The Control Framework recommends Control Packages to provide a range 451 of message flows that represent common flows using the package and 452 this framework document. 454 This Control Package provides examples of such message flows in 455 Section 6. 457 4. Element Definitions 459 This section defines the XML elements for this package. The elements 460 are defined in the XML namespace specified in Section 8.2. 462 The root element is (Section 4.1). All other XML elements 463 (requests, responses and notification elements) are contained within 464 it. Child elements describe dialog management (Section 4.2) and 465 audit (Section 4.4) functionality. The IVR dialog element (contained 466 within dialog management elements) is defined in Section 4.3. 467 Response status codes are defined in Section 4.5 and type definitions 468 in Section 4.6. 470 Implementation of this control package MUST adhere to the syntax and 471 semantics of XML elements defined in this section and the schema 472 (Section 5). Since XML Schema is unable to support some types of 473 syntactic constraints (such as attribute and element co-occurrence), 474 some elements in this package specify additional syntactic 475 constraints in their textual definition. If there is a difference in 476 constraints between the XML schema and the textual description of 477 elements in this section, the textual definition takes priority. 479 The XML schema supports extensibility by allowing attributes and 480 elements from other namespaces. Implementations MAY support 481 additional capabilities by means of attributes and elements from 482 other (foreign) namespaces. Attributes and elements from foreign 483 namespaces are not described in this section. 485 Some elements in this control package contain attributes whose value 486 is a URI. These elements include: (Section 4.2.1), 487 (Section 4.2.2), (Section 4.3.1.5), 488 (Section 4.3.1.3.1), and (Section 4.3.1.4). While this 489 package is agnostic to the URI schemes supported by the MS, it is 490 RECOMMENDED that the MS support one or more schemes using 491 communication protocols suitable for fetching resources (e.g. HTTP). 493 Usage examples are provided in Section 6. 495 4.1. 497 The element has the following attributes (in addition to 498 standard XML namespace attributes such as xmlns): 500 version: a string specifying the mscivr package version. The value 501 is fixed as '1.0' for this version of the package. The attribute 502 is mandatory. 504 The element has the following defined child elements, only 505 one of which can occur: 507 1. dialog management elements defined in Section 4.2: 509 prepare a dialog. See Section 4.2.1 511 start a dialog. See Section 4.2.2 513 terminate a dialog. See Section 4.2.3 515 response to a dialog request. See Section 4.2.4 517 dialog or subscription notification. See Section 4.2.5 519 2. audit elements defined in Section 4.4: 521 audit package capabilities and managed dialogs. See 522 Section 4.4.1 524 response to an audit request. See Section 4.4.2 526 For example, a request to the MS to start an IVR dialog playing a 527 prompt: 529 530 531 532 533 534 535 536 538 and a response from the MS that the dialog started successfully: 540 541 542 544 and finally a notification from the MS indicating that the dialog 545 exited upon completion of playing the prompt: 547 548 549 550 551 552 554 556 4.2. Dialog Management Elements 558 This section defines the dialog management XML elements for this 559 control package. These elements are divided into requests, responses 560 and notifications. 562 Request elements are sent to the MS to request a specific dialog 563 operation to be executed. The following request elements are 564 defined: 566 : prepare a dialog for later execution 568 : start a (prepared) dialog on a connection or 569 conference 571 : terminate a dialog 573 Responses from the MS describe the status of the requested operation. 574 Responses are specified in a element (Section 4.2.4) which 575 includes a mandatory attribute describing the status in terms of a 576 numeric code. Response status codes are defined in Section 4.5. The 577 MS MUST respond to a request message with a response message. If the 578 MS is not able to process the request and carry out the dialog 579 operation, the request has failed and the MS MUST indicate the class 580 of failure using an appropriate 4xx response code. Unless an error 581 response code is mandated for a specific class of error within this 582 section, implementations follow Section 4.5 in determining the 583 appropriate status code for the response. 585 Notifications are sent from the MS to provide updates on the status 586 of a dialog or operations defined within the dialog. Notifications 587 are specified in an element (Section 4.2.5). 589 +---------+ 590 | IDLE | 591 +---------+ 592 | | 593 | | 594 /| |/ 595 | | 596 +---------+ | | +---------+ 597 +-----<--| |<--------+ +------------>| |+------>-+ 598 | +-<----|PREPARING| |STARTING | | 599 | | | | ----------->| |---->--+ | 600 | | +---------+ / +---------+ | | 601 | | | / | | | 602 | | |/200 response / /200 response| | | 603 | | | / | | | 604 | | | / | | | 605 | | | / | | | 606 V V v // v | | 607 | | +---------+ / +---------+ | | 608 | | | |--------+ +----| | | | 609 | | |PREPARED |---------+ | | STARTED | | | 610 | | | | | +--->| | | | 611 | | | |--------+| /| | | | 612 | | +---------+ || 200 response +---------+ | | 613 | | || | | | 614 | | /dialogexit notification|| | | | 615 | | (timeout) || | | | 616 | | || | | | 617 | | || | | | 618 | | || | | | 619 | | ||/ | | | 620 | | || 200 response | | | 621 | | || |/dialogexit | | 622 | | || | notification | | 623 | | || | | | 624 | | || | | | 625 | | vv | | | 626 | | /ERROR response +-----------+ | | | 627 | +---------------------->| |<----------+ /ERROR response| | 628 +------------------------>|TERMINATED |<---------------------------+ | 629 / | |<-----------------------------+ 630 410 response +-----------+ /410 response 632 Figure 1: Dialog Lifecycle 634 The MS implementation MUST adhere to the dialog lifecycle shown in 635 Figure 1, where each dialog has the following states: 637 IDLE: the dialog is uninitialized. 639 PREPARING: the dialog is being prepared. The dialog is assigned a 640 valid dialog identifier (see below). If an error occurs the 641 dialog transitions to the TERMINATED state and the MS MUST send a 642 response indicating the error. If the dialog is terminated before 643 preparation is complete, the dialog transitions to the TERMINATED 644 state and the MS MUST send a 410 response (Section 4.5) for the 645 prepare request. 647 PREPARED: the dialog has been successfully prepared and the MS MUST 648 send a 200 response indicating the prepare operation was 649 successful. If the dialog is then terminated, the dialog 650 transitions to the TERMINATED state. If the duration the dialog 651 remains in the PREPARED state exceeds the maximum preparation 652 duration, the dialog transitions to the TERMINATED state and the 653 MS MUST send a dialogexit notification with the appropriate error 654 status code (see Section 4.2.5.1). A maximum preparation duration 655 of 30s is RECOMMENDED. 657 STARTING: the dialog is being started. If the dialog has not 658 already been prepared, it is first prepared and assigned a valid 659 dialog identifier (see below). If an error occurs the dialog 660 transitions to the TERMINATED state and the MS MUST send a 661 response indicating the error. If the dialog is terminated, the 662 dialog transitions to the TERMINATED state and the MS MUST a 410 663 response (Section 4.5) for the start request. 665 STARTED: the dialog has been successfully started and is now active. 666 The MS MUST send a 200 response indicating the start operation was 667 successful. If any dialog events occurs which were subscribed to, 668 the MS MUST send a notifications when the dialog event occurs. 669 When the dialog exits (due to normal termination, an error or a 670 terminate request), the MS MUST send a dialogexit notification 671 event (see Section 4.2.5.1) and the dialog transitions to the 672 TERMINATED state. 674 TERMINATED: the dialog is terminated and its dialog identifier is no 675 longer valid. Dialog notifications MUST NOT be sent for this 676 dialog. 678 Each dialog has a valid identifier until it transitions to a 679 TERMINATED state. The dialog identifier is assigned by the MS unless 680 the or request already specifies a 681 identifier (dialogid) which is not associated with any other dialog 682 on the MS. Once a dialog is in a TERMINATED state, its dialog 683 identifier is no longer valid and can be reused for another dialog. 685 The identifier is used to reference the dialog in subsequent 686 requests, responses and notifications. In a request, 687 the dialog identifier can be specified in the prepareddialogid 688 attribute indicating the prepared dialog to start. In 689 and requests, the dialog identifier is 690 specified in the dialogid attribute, indicating which dialog is to be 691 terminated or audited respectively. If these requests specify a 692 dialog identifier already associated with another dialog on the MS, 693 the MS MUST send a response with a 405 status code (see Section 4.5) 694 and the same dialogid as in the request. The MS MUST specify a 695 dialog identifier in notifications associated with the dialog. The 696 MS MUST specify a dialog identifier in responses unless it is a 697 response to a request without a valid dialog 698 identifier specified. 700 For a given dialog, the or request 701 elements specify the dialog content to execute either by including 702 inline a element (the dialog language defined in this 703 package, see Section 4.3) or by referencing an external dialog 704 document (a dialog language defined outside this package). When 705 referencing an external dialog document, the request element contains 706 a URI reference to the remote document (specifying the dialog 707 definition) and, optionally, a type attribute indicating the MIME 708 media type associated with the dialog document. Consequently, the 709 dialog language associated with a dialog on the MS is identified 710 either inline by a child element or by a src attribute 711 referencing a document containing the dialog language. The MS MUST 712 support inline the IVR dialog language defined in Section 4.3. The 713 MS MAY support other dialog languages by reference. 715 4.2.1. 717 The request is sent to the MS to request preparation 718 of a dialog. Dialog preparation consists of (a) retrieving external 719 dialog document and resources (if required), and (b) validating the 720 dialog document syntactically and semantically. 722 A prepared dialog is executed when the MS receives a 723 request referencing the prepared dialog identifier (see 724 Section 4.2.2). 726 The element has the following attributes: 728 src: specifies the location of an external dialog document to 729 prepare. A valid value is a URI (see Section 4.6.9). If the URI 730 scheme is unsupported, the MS MUST send a with a 420 731 status code (Section 4.5). If the document cannot be retrieved 732 within the timeout interval, the MS MUST send a with a 733 409 status code. If the document contains a type of dialog 734 language which the MS does not supported, the MS MUST send a 735 with a 421 status code. The attribute is optional. 736 There is no default value. 738 type: specifies the type of the external dialog document indicated 739 in the 'src' attribute. A valid value is a MIME media type (see 740 Section 4.6.10). The MS MAY use the value to assist the remote 741 source in selecting the appropriate resource type (e.g. with HTTP 742 'accept' header) and to determine how the document is to be 743 processed if the protocol does not provide an authoritative MIME 744 media type for the returned resource. The attribute is optional. 746 fetchtimeout: the maximum timeout interval to wait when fetching an 747 external dialog document. A valid value is a Time Designation 748 (see Section 4.6.7). The attribute is optional. The default 749 value is 30s. 751 dialogid: string indicating a unique name for the dialog. If a 752 dialog with the same name already exists on the MS, the MS MUST 753 send a with a 405 status code (Section 4.5). If this 754 attribute is not specified, the MS MUST create a unique name for 755 the dialog (see Section 4.2 for dialog identifier assignment). 756 The attribute is optional. There is no default value. 758 The element has one optional child element: 760 an IVR dialog (Section 4.3) to prepare. The element is 761 optional. 763 The dialog to prepare can either be specified inline with a 764 child element or externally (for dialog languages defined outside 765 this specification) using the src attribute. It is a syntax error if 766 both an inline element element and a src attribute are 767 specified and the MS MUST send a with a 400 status code 768 (see Section 4.5). The type and fetchtimeout attributes are only 769 relevant when a dialog is specified as an external document. 771 For example, a request to prepare an inline IVR 772 dialog with a single prompt: 774 775 776 777 778 779 780 781 782 784 In this example, a request with a specified dialogid to prepare a 785 VoiceXML dialog document located externally: 787 788 791 793 Since MS support for dialog languages other than the IVR dialog 794 language defined in this package is optional, if the MS does not 795 support the dialog language it would send a response with the status 796 code 409 (Section 4.5). 798 4.2.2. 800 The element is sent to the MS to start a dialog. If 801 the dialog has not been prepared, the dialog is prepared (retrieving 802 an external document and resources if necessary, and the dialog 803 document validated syntactically and semantically). Media processors 804 (e.g. DTMF and prompt queue) are activated and associated with the 805 specified connection or conference. 807 The element has the following attributes: 809 src: specifies the location of an external dialog document to start. 810 A valid value is a URI (see Section 4.6.9). If the URI scheme is 811 unsupported, the MS MUST send a with a 420 status code 812 (Section 4.5). If the document cannot be retrieved with the 813 timeout interval, the MS MUST send a with a 409 status 814 code. If the document contains a type of dialog language which 815 the MS does not supported, the MS MUST send a with a 816 421 status code. The attribute is optional. There is no default 817 value. 819 type: specifies the type of the external dialog document indicated 820 in the 'src' attribute. A valid value is a MIME media type (see 821 Section 4.6.10). The MS MAY use the value to assist the remote 822 source in selecting the appropriate resource type (e.g. with HTTP 823 'accept' header) and to determine how the document is to be 824 processed if the protocol does not provide an authoritative MIME 825 media type for the returned resource. The attribute is optional. 827 fetchtimeout: the maximum timeout interval to wait when fetching an 828 external dialog document. A valid value is a Time Designation 829 (see Section 4.6.7). The attribute is optional. The default 830 value is 30s. 832 dialogid: string indicating a unique name for the dialog. If a 833 dialog with the same name already exists on the MS, the MS MUST 834 send a with a 405 status code (Section 4.5). If 835 neither the dialogid attribute nor the prepareddialogid attribute 836 is specified, the MS MUST create a unique name for the dialog (see 837 Section 4.2 for dialog identifier assignment). The attribute is 838 optional. There is no default value. 840 prepareddialogid: string identifying a dialog previously prepared 841 using a dialogprepare (Section 4.2.1) request. If neither the 842 dialogid attribute nor the prepareddialogid attribute is 843 specified, the MS MUST create a unique name for the dialog (see 844 Section 4.2 for dialog identifier assignment). The attribute is 845 optional. There is no default value. 847 connectionid: string identifying the SIP dialog connection on which 848 this dialog is to be started (see Section 17.1 of 849 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 850 optional. There is no default value. 852 conferenceid: string identifying the conference on which this dialog 853 is to be started (see Section 17.1 of 854 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 855 optional. There is no default value. 857 Exactly one of the connectionid or conferenceid attributes MUST be 858 specified. If both connectionid and conferenceid attributes are 859 specified or neither are specified, it is a syntax error and the MS 860 MUST send a with a 400 status code (Section 4.5). 862 It is an error if the connection or conference referenced by a 863 specific connectionid or conferenceid attribute is not available on 864 the MS at the time the request is executed. If an 865 invalid connectionid is specified, the MS MUST send a with 866 a 407 status code (Section 4.5). If an invalid conferenceid is 867 specified, the MS MUST send a with a 408 status code. 869 The element has the following sequence of child 870 elements: 872 : specifies an IVR dialog (Section 4.3) to execute. The 873 element is optional. 875 : specifies subscriptions to dialog events 876 (Section 4.2.2.1). The element is optional. 878 : specifies input parameters (Section 4.2.6) for a dialog 879 languages defined outside this specification. The element is 880 optional. If a parameter is not supported by the MS for the 881 external dialog language, the MS MUST send a with a 427 882 status code (Section 4.5). 884 : determines the media stream(s) associated with the 885 connection or conference on which the dialog is executed 886 (Section 4.2.2.2). The element is optional. Multiple 887 elements may be specified. 889 The dialog to start can be specified either (a) inline with a 890 child element, or (b) externally using the src attribute 891 (for dialog languages defined outside this specification), or (c) 892 reference a previously prepared dialog using the prepareddialogid 893 attribute. If exactly one of the src attribute, the prepareddialogid 894 or a child element is not specified, it is a syntax error 895 and the MS MUST send a with a 400 status code 896 (Section 4.5). If the prepareddialogid and dialogid attributes are 897 specified, it is also a syntax error and the MS MUST send a 898 with a 400 status code. The type and fetchtimeout 899 attributes are only relevant when a dialog is specified as an 900 external document. 902 The element provides explicit control over which media 903 streams on the connection or conference are used during dialog 904 execution. For example, if a connection supports both audio and 905 video streams, a element could be used to indicate that only 906 the audio stream is used in receive mode. In cases where there are 907 multiple media streams of the same type for a dialog, it is 908 RECOMMENDED that the configuration is explicitly specified using 909 elements. If no elements are specified, then the 910 default media configuration is that defined for the connection or 911 conference. 913 If a element is in conflict with (a) another 914 element, (b) with specified connection or conference media 915 capabilities, (c) with a SDP label value as part of the connectionid 916 (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) then 917 the MS MUST send a with a 411 status code (Section 4.5). 918 If the media stream configuration is not supported by the MS, then 919 the MS MUST send a with a 428 status code (Section 4.5). 921 This specification allows multiple, simultaneous dialogs to be 922 started on the same connection or conference. It is RECOMMENDED the 923 MS support the following cases: 925 1. different media streams used in different dialogs; e.g. audio 926 only on one dialog and video only on another dialog 928 2. the same media stream received by different dialogs 930 3. use of implicit mixing (where appropriate) when the same type of 931 media stream is sent from different dialogs 933 If the MS does not support starting another dialog on the same 934 connection or conference it MUST send a with a 432 status 935 code (Section 4.5) when it receives the second dialog request. 937 For example, a request to start an ivr dialog on a connection 938 subscribing to DTMF notifications: 940 941 942 943 944 945 946 947 948 949 950 951 952 954 In this example, the dialog is started on a conference where only 955 audio media stream is received: 957 958 959 960 961 962 964 966 4.2.2.1. 968 The element allows the AS to subscribe to, and be 969 notified of, specific events which occur during execution of the 970 dialog. Notifications of dialog events are delivered using the 971 element (see Section 4.2.5). 973 The element has no attributes. 975 The element has the following sequence of child elements 976 (0 or more occurrences): 978 : Subscription to DTMF input during the dialog 979 (Section 4.2.2.1.1). The element is optional. 981 The MS MUST support a subscription. It MAY support other 982 dialog subscriptions (using elements and attributes from a foreign 983 namespace). 985 4.2.2.1.1. 987 The element has the following attributes: 989 matchmode: controls which DTMF input are subscribed to. Valid 990 values are: "all" - notify all DTMF key presses received during 991 the dialog; "collect" - notify only DTMF input matched by the 992 collect operation (Section 4.3.1.3); and "control" - notify only 993 DTMF input matched by the runtime control operation 994 (Section 4.3.1.2). The attribute is optional. The default value 995 is "all". 997 The element has no child elements. 999 DTMF notifications are delivered in the element 1000 (Section 4.2.5.2). 1002 For example, the AS wishes to subscribe to DTMF key press matching a 1003 runtime control: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1019 Each time a '2' or '3' DTMF input is received, the MS sends a 1020 notification event: 1022 1023 1024 1026 /event> 1027 1029 4.2.2.2. 1031 The element has the following attributes: 1033 media: a string indicating the type of media associated with the 1034 stream. It is strongly RECOMMENDED that the following values are 1035 used for common types of media: "audio" for audio media, and 1036 "video" for video media. The attribute is mandatory. 1038 label: a string indicating the SDP label associated with a media 1039 stream ([RFC4574]). The attribute is optional. 1041 direction: a string indicating the direction of the media flow 1042 between a dialog and its end point conference or connection. 1043 Defined values are: "sendrecv" (media can be sent and received), 1044 "sendonly" (media can only be sent), "recvonly" (media can only be 1045 received) and "inactive" (stream is not to be used). The default 1046 value is "sendrecv". The attribute is optional. 1048 The element has the following sequence of child elements: 1050 : an element to specify the region within a mixer video 1051 layout where a media stream is displayed (Section 4.2.2.2.1). The 1052 element is optional. 1054 : an element to configure priority associated with the 1055 stream in the conference mix (Section 4.2.2.2.2). The element is 1056 optional. 1058 If conferenceid is not specified or if the "media" attribute does not 1059 have the value of "video", then the MS MUST ignored the and 1060 elements. 1062 For example, assume a user agent connection with multiple audio and 1063 video streams associated with the user and a separate web camera. In 1064 this case, the dialog could be started to record only the audio and 1065 video streams associated with the user: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1078 Using the element, the dialog can be started on a conference 1079 mixer so that the video output from the dialog is directed to a 1080 specific region within a video layout. For example: 1082 1083 1084 1085 1086 1087 1088 1089 1090 r1 1091 1092 1094 4.2.2.2.1. 1096 The element is used to specify the region within a video 1097 layout where a video media stream is displayed. 1099 The element has no attributes and its content model 1100 specifies the name of the region layout. 1102 If the region name is invalid, then the MS MUST report a 416 status 1103 code (Section 4.5) in the response to the request element containing 1104 the element. 1106 4.2.2.2.2. 1108 The element is used to explicitly specify the priority of 1109 the dialog for presentation in a conference mix. 1111 The element has no attributes and its content model 1112 specifies a positive integer (see Section 4.6.5). The lower the 1113 value, the higher the priority. 1115 4.2.3. 1117 A dialog can be terminated by sending a request 1118 element to the MS. 1120 The element has the following attributes: 1122 dialogid: string identifying the dialog to terminate. If the 1123 specified dialog identifier is invalid, the MS MUST send a 1124 response with a 405 status code (Section 4.5). The attribute is 1125 mandatory. 1127 immediate: indicates whether a dialog in the STARTED state is to be 1128 terminated immediately or not (in other states, termination is 1129 always immediate). A valid value is a boolean (see 1130 Section 4.6.1). A value of true indicates that the dialog is 1131 terminated immediately and the MS MUST send a dialogexit 1132 notification (Section 4.2.5.1)without report information. A value 1133 of false indicates that the dialog terminates after the current 1134 iteration and the MS MUST send a dialogexit notification with 1135 report information. The attribute is optional. The default value 1136 is false. 1138 The MS MUST reply to request with a 1139 element (Section 4.2.4), reporting whether the dialog was terminated 1140 successful or not. 1142 For example, immediately terminating a STARTED dialog with dialogid 1143 "d4": 1145 1146 1147 1149 If the dialog is terminated successfully, then the response to the 1150 dialogterminate request would be: 1152 1153 1154 1156 4.2.4. 1158 Responses to dialog management requests are specified with a 1159 element. 1161 The element has following attributes: 1163 status: numeric code indicating the response status. Valid values 1164 are defined in Section 4.5. The attribute is mandatory. 1166 reason: string specifying a reason for the response status. The 1167 attribute is optional. There is no default value. 1169 dialogid: string identifying the dialog. If the request specifies a 1170 dialogid, then that value is used. Otherwise, with 1171 and requests, the dialogid generated 1172 by the MS is used. If there is no available dialogid (e.g. a 1173 request with no dialogid attribute specified), 1174 then the value is the empty string. The attribute is mandatory. 1176 connectionid: string identifying the SIP dialog connection 1177 associated with the dialog (see Section 17.1 of 1178 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1179 optional. There is no default value. 1181 conferenceid: string identifying the conference associated with the 1182 dialog (see Section 17.1 of 1183 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1184 optional. There is no default value. 1186 For example, a response when a dialog was prepared successfully: 1188 1189 1191 1193 The response if dialog preparation failed due to an unsupported 1194 dialog language: 1196 1197 1199 1201 In this example a request does not specify a 1202 dialogid: 1204 1205 1206 1208 The response status indicates a 400 (Syntax error) status code and 1209 dialogid attribute has an empty string value: 1211 1212 1214 1216 4.2.5. 1218 When a dialog generates a notification event, the MS sends the event 1219 using an element. 1221 The element has the following attributes: 1223 dialogid: string identifying the dialog which generated the event. 1224 The attribute is mandatory. 1226 The element has the following child elements, only one of 1227 which can occur: 1229 : indicates that the dialog has exited 1230 (Section 4.2.5.1). 1232 : indicates that a DTMF key press occurred 1233 (Section 4.2.5.2). 1235 4.2.5.1. 1237 The event indicates that a prepared or active dialog has 1238 exited because it is complete, has been terminated, or because an 1239 error occurred during execution (for example, a media resource cannot 1240 be played). This event MUST be sent by the MS when the dialog exits. 1242 The element has the following attributes: 1244 status: a status code indicating success or failure of the dialog. 1245 A valid value is a non-negative integer (see Section 4.6.4). A 1246 value of 0 indicates that the dialog has been terminated by a 1247 request. A value of 1 indicates success. A 1248 value of 2 indicates that the dialog terminated because the 1249 connection or conference associated with the dialog has 1250 terminated. A value of 3 indicates the dialog terminated due to 1251 exceeding its maximum duration. A value of 4 indicates the dialog 1252 terminated due to an execution error. Any other value indicates 1253 an error defined by the MS. The attribute is mandatory. 1255 reason: a textual description providing a reason for the status 1256 code; e.g. details about an error. A valid value is a string (see 1257 Section 4.6.6). The attribute is optional. There is no default 1258 value. 1260 The element has the following sequence of child 1261 elements: 1263 : report information (Section 4.3.2.1) about the prompt 1264 execution in an IVR . The element is optional. 1266 : reports information (Section 4.3.2.2) about the 1267 control execution in an IVR . The element is optional. 1269 : reports information (Section 4.3.2.3) about the 1270 collect execution in an IVR . The element is optional. 1272 : reports information (Section 4.3.2.4) about the record 1273 execution in an IVR . The element is optional. 1275 : reports exit parameters (Section 4.2.6) for a dialog 1276 language defined outside this specification. The element is 1277 optional. 1279 For example, an active exits normally the MS sends a 1280 dialogexit reporting information: 1282 1283 1284 1285 1286 1287 1288 1290 4.2.5.2. 1292 The element provide a notification of DTMF input 1293 received during the active dialog as requested by a 1294 subscription (Section 4.2.2.1). 1296 The element has the following attributes: 1298 matchmode: indicates the matching mode specified in the subscription 1299 request. Valid values are: "all" - all DTMF key presses notified 1300 individually; "collect" - only DTMF input matched by the collect 1301 operation notified; and "control" - only DTMF input matched by the 1302 control operation notified. The attribute is optional. The 1303 default value is "all". 1305 dtmf: DTMF key presses received according to the matchmode. A valid 1306 value is a DTMF string (see Section 4.6.3) with no space between 1307 characters. The attribute is mandatory. 1309 timestamp: indicates the time (on the MS) at which the last key 1310 press occurred according to the matchmode. A valid value is a 1311 dateTime expression (Section 4.6.12). The attribute is mandatory. 1313 For example, a notification of DTMF input matched during the collect 1314 operation: 1316 1317 1318 1320 /event> 1321 1323 4.2.6. 1325 The element is a container for elements 1326 (Section 4.2.6.1). 1328 The element has no attributes, but the following child 1329 elements are defined (0 or more): 1331 : specifies a parameter name and value (Section 4.2.6.1). 1333 For example, usage with a dialog language defined outside this 1334 specification to send additional parameters into the dialog: 1336 1337 1339 1340 playannouncement 1341 nfs://nas01/media1.3gp 1342 nfs://nas01/media2.3gp 1343 1344 1345 1347 4.2.6.1. 1349 The element describes a parameter name and value. 1351 The element has the following attributes: 1353 name: a string indicating the name of the parameter. The attribute 1354 is mandatory. 1356 type: specifies a type indicating how the inline value of the 1357 parameter is to be interpreted. A valid value is a MIME media 1358 type (see Section 4.6.10). The attribute is optional. The 1359 default value is "text/plain". 1361 The element content model is the value of the parameter. 1362 Note that a value which contains XML characters (e.g. "<") needs to 1363 be escaped following standard XML conventions. 1365 For example, usage with a dialog language defined outside this 1366 specification to receive parameters from the dialog when it exits: 1368 1369 1370 1371 1372 recording 1373 1375 1379 1380 1381 1382 1383 1385 4.3. IVR Dialog Elements 1387 This section describes the IVR dialog language defined as part of 1388 this specification. The MS MUST support this dialog language. 1390 The element is an execution container for operations of 1391 playing prompts (Section 4.3.1.1), runtime controls 1392 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1393 user input (Section 4.3.1.4. Results of the dialog execution 1394 (Section 4.3.2) are reported in a dialogexit notification event. 1396 Using these elements, three common dialog models are supported: 1398 playannouncements: only a element is specified in the 1399 container. The prompt media resources are played in sequence. 1401 promptandcollect: a element is specified and, optionally, 1402 a element. If a element is specified and 1403 bargein is enabled, playing of the prompt is terminated when 1404 bargein occurs, and DTMF collection is initiated; otherwise, the 1405 prompt is played to completion before DTMF collection is 1406 initiated. If no prompt element is specified, DTMF collection is 1407 initiated immediately. 1409 promptandrecord: a element is specified and, optionally, a 1410 element. If a element is specified and bargein 1411 is enabled, playing of the prompt is terminated when bargein 1412 occurs, and recording is initiated; otherwise, the prompt is 1413 played to completion before recording is initiated. If no prompt 1414 element is specified, recording is initiated immediately. 1416 In addition, this dialog language supports runtime ('VCR') controls 1417 enabling a user to control prompt playback using DTMF. 1419 Each of the core elements - , , and 1420 - are specified so that their execution and reporting is 1421 largely self-contained. This facilitates their re-use in other 1422 dialog container elements. Note that DTMF and bargein behavior 1423 affects multiple elements and is addressed in the relevant element 1424 definitions. 1426 Execution results are reported in the notification event 1427 with child elements defined in Section 4.3.2. If the dialog 1428 terminated normally (i.e. not due to an error or to a 1429 request), then the MS MUST report the results for 1430 the operations specified in the dialog: 1432 : (see Section 4.3.2.1) with at least the 1433 termmode attribute specified. 1435 : (see Section 4.3.2.2) if any runtime 1436 controls are matched. 1438 : (see Section 4.3.2.3) with the dtmf and 1439 termmode attributes specified. 1441 : (see Section 4.3.2.4) with at least the 1442 termmode attribute and one element specified. 1444 The media format requirements for IVR dialogs are undefined. This 1445 package is agnostic to the media types and codecs for media resources 1446 and recording which need to be supported by an implementation. For 1447 example, a MS implementation may choose to support only audio and in 1448 particular the 'audio/basic' codec for media playback and recording. 1449 However, when executing a dialog, if an MS encounters a media type or 1450 codec which it cannot process, the MS MUST stop further processing 1451 and report the error using the dialogexit notification. 1453 4.3.1. 1455 An IVR dialog to play prompts to the user, allow runtime controls, 1456 collect DTMF or record input. The dialog is specified using a 1457 element. 1459 A element has the following attributes: 1461 repeatCount: number of times the dialog is to be executed. A valid 1462 value is a non-negative integer (see Section 4.6.4). A value of 0 1463 indicates that the dialog is repeated until halted by other means. 1464 The attribute is optional. The default value is 1. 1466 repeatDur: maximum duration for dialog execution. A valid value is 1467 a Time Designation (see Section 4.6.7). If no value is specified, 1468 then there is no limit on the duration of the dialog. The 1469 attribute is optional. There is no default value. 1471 The repeatDur attribute takes priority over the repeatCount attribute 1472 in determining maximum duration of the dialog. See 'repeatCount' and 1473 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1474 information. In the situation where a dialog is repeated more than 1475 once, only the results of operations in the last dialog iteration are 1476 reported. 1478 The element has the following sequence of child elements (at 1479 least one, any order): 1481 : defines media resources to play in sequence (see 1482 Section 4.3.1.1). The element is optional. 1484 : defines how DTMF is used for runtime controls (see 1485 Section 4.3.1.2). The element is optional. 1487 : defines how DTMF is collected (see Section 4.3.1.3). The 1488 element is optional. 1490 : defines how recording takes place (see Section 4.3.1.4). 1491 The element is optional. 1493 Although the behavior when both and elements are 1494 specified in a request is not defined in this control package, the MS 1495 MAY support this configuration. If the MS does not support this 1496 configuration, the MS MUST send a with a 433 status code. 1498 The MS has the following execution model for the IVR dialog after 1499 initialization (initialization errors are reported by the MS in the 1500 response): 1502 1. If an error occurs during execution, then the MS terminates the 1503 dialog and reports the error in the event by setting 1504 the status attribute (see Section 4.3.2). Details about the 1505 error are specified in the reason attribute. 1507 2. The MS initializes a counter to 0. 1509 3. The MS starts a duration timer for the value of the repeatDur 1510 attribute. If the timer expires before the dialog is complete, 1511 then the MS terminates the dialog and sends a dialogexit whose 1512 status attribute is set to 3 (see Section 4.2.5.1). The MS MAY 1513 report information in the dialogexit gathered in the last 1514 execution cycle (if any). 1516 4. The MS initiates a dialog execution cycle. Each cycle executes 1517 the operations associated with the child elements of the dialog. 1518 If a element is specified, then execute the element's 1519 prompt playing operation and activate any controls (if the 1520 element is specified). If no is specified or 1521 when a specified terminates, then start the collect 1522 operation or the record operation if the or 1523 elements respectively are specified. If subscriptions are 1524 specified for the dialog, then the MS sends a notification event 1525 when the specified event occurs. If execution of a child element 1526 results in an error, the MS terminates dialog execution (and 1527 stops other child element operations) and the MS sends a 1528 dialogexit status event, reporting any information gathered. 1530 5. If the dialog execution cycle completes successfully, then the MS 1531 increments the counter by one. If the value of the repeatCount 1532 attribute is greater than zero and the counter is equal to the 1533 value of the repeatCount attribute, then the MS terminates dialog 1534 execution and the sends a dialogexit (with a status of 1) 1535 reporting operation information collected in the last dialog 1536 execution cycle only. Otherwise, another dialog execution cycle 1537 is initiated. 1539 4.3.1.1. 1541 The element specifies a sequence of media resources to play 1542 back in document order. 1544 A element has the following attributes: 1546 xml:base: A string declaring the base URI from which relative URIs 1547 in child elements are resolved prior to fetching. A valid value 1548 is a URI (see Section 4.6.9). The attribute is optional. There 1549 is no default value. 1551 bargein: Indicates whether user input stops prompt playback unless 1552 the input is associated with a specified runtime 1553 operation (input matching control operations never interrupts 1554 prompt playback). A valid value is a boolean (see Section 4.6.1). 1555 A value of true indicates that bargein is permitted and prompt 1556 playback is stopped. A value of false indicates that bargein is 1557 not permitted: user input does not terminate prompt playback. The 1558 attribute is optional. The default value is true. 1560 The element has the following child elements (at least one, 1561 any order, multiple occurrences of elements permitted): 1563 : specifies a media resource (see Section 4.3.1.5) to play. 1564 The element is optional. 1566 : specifies a variable media announcement (see 1567 Section 4.3.1.1.1) to play. The element is optional. 1569 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1570 play. The element is optional. 1572 : specifies media resources to play in parallel (see 1573 Section 4.3.1.1.3). The element is optional. 1575 If the MS does not support the configuration required for prompt 1576 playback to the output media streams, the MS MUST send a 1577 with a 429 status code (Section 4.5). The MS MAY support transcoding 1578 between the media resource format and the output stream format. 1580 The MS has the following execution model for prompt playing after 1581 initialization: 1583 1. The MS initiates prompt playback playing its child elements 1584 (, , and ) one after another in 1585 document order. 1587 2. If any error (including fetching and rendering errors) occurs 1588 during prompt execution, then the MS terminates playback and 1589 reports its error status to the dialog container (see 1590 Section 4.3) with a (see Section 4.3.2.1) where the 1591 termmode attribute is set to stopped and any additional 1592 information is set. 1594 3. If DTMF input is received and the value of the bargein attribute 1595 is true, then the MS terminates prompt playback and reports its 1596 execution status to the dialog container (see Section 4.3) with a 1597 (see Section 4.3.2.1) where the termmode attribute 1598 is set to bargein and any additional information is set. 1600 4. If prompt playback is stopped by the dialog container, then the 1601 MS reports its execution status to the dialog container (see 1602 Section 4.3) with a (see Section 4.3.2.1) where the 1603 termmode attribute is set to stopped and any additional 1604 information is set. 1606 5. If prompt playback completes successfully, then the MS reports 1607 its execution status to the dialog container (see Section 4.3) 1608 with a (see Section 4.3.2.1) where the termmode 1609 attribute is set to completed and any additional information is 1610 set. 1612 4.3.1.1.1. 1614 The element specifies variable announcements using 1615 predefined media resources. Each variable has at least a type (e.g. 1616 date) and a value (e.g. 2008-02-25). The value is rendered according 1617 to the variable type (e.g. 25th February 2008) as well as other 1618 defined attributes. The precise mechanism for generating variable 1619 announcements (including the location of associated media resources) 1620 is implementation specific. 1622 A element has the following attributes: 1624 value: specifies the string to be rendered. A valid value is a 1625 string (see Section 4.6.6). The attribute is mandatory. 1627 type: specifies the type to use for rendering. A valid value is a 1628 string (see Section 4.6.6). The attribute is mandatory. 1630 format: specifies format information to use in conjunction with the 1631 type for the rendering. A valid value is a string (see 1632 Section 4.6.6). The attribute is optional. There is no default 1633 value. 1635 gender: specifies the gender to use when rendering the variable. 1636 Valid values are "male" or "female". The attribute is optional. 1637 There is no default value. 1639 xml:lang: specifies the language to use when rendering the variable. 1640 A valid value is a language identifier (see Section 4.6.11). The 1641 attribute is optional. There is no default value. 1643 The element has no children. 1645 This package is agnostic to which values, types and 1646 formats are supported by an implementation. However it is 1647 RECOMMENDED that an implementation support the following type/format 1648 combinations: 1650 type=date Supported formats: "mdy" (month day year), "ymd" (year 1651 month day), "dym" (day month year), "dm" (day month) 1653 type=time Supported formats: "t12" (12 hour format with am/pm), 1654 "t24" (24 hour format) 1656 type=digits Supported formats: "gen" (general digit string), "crn" 1657 (cardinal), "ord" (ordinal) 1659 This specification is agnostic to the type and codec of media 1660 resources into which variable are rendered as well as the rendering 1661 mechanism itself. For example, an MS implementation supporting audio 1662 rendering may map the into one or more audio media 1663 resources. 1665 If a element configuration is not supported by the MS, the 1666 MS MUST send a with a 425 status code (Section 4.5). 1668 Depending on the specific implementation of the rendering 1669 on the MS, execution of this element may be seen as conversion of a 1670 into a list of elements. For example, 1672 1675 could be transformed into audio saying "twenty-fifth of February two 1676 thousand and eight" using a list of resources: 1678 1679 1680 1681 1682 1683 1685 4.3.1.1.2. 1687 The element specifies a sequence of DTMF tones for output. 1689 DTMF tones could be generated using resources where the 1690 output is transported as RTP audio packets. However, 1691 resources are not sufficient for cases where DTMF tones are to be 1692 transported as DTMF RTP ([RFC4733]) or in event packages. 1694 A element has the following attributes: 1696 digits: specifies the DTMF sequence to output. A valid value is a 1697 DTMF string (see Section 4.6.3). The attribute is mandatory. 1699 level: used to define the power level for which the DTMF tones will 1700 be generated. Values are expressed in dBm0. A valid value is an 1701 integer in the range of 0 to -96 (dBm0). Larger negative values 1702 express lower power levels. Note that values lower than -55 dBm0 1703 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1704 The attribute is optional. The default value is -6 (dBm0). 1706 duration: specifies the duration for which each DTMF tone is 1707 generated. A valid value is a time designation (see 1708 Section 4.6.7). Implementations may round the value if they only 1709 support discrete durations. The attribute is optional. The 1710 default value is 100ms. 1712 interval: specifies the duration of a silence interval following 1713 each generated DTMF tone. A valid value is a time designation 1714 (see Section 4.6.7). Implementations may round the value if they 1715 only support discrete durations. The attribute is optional. The 1716 default value is 100ms. 1718 The element has no children. 1720 If a element configuration is not supported, the MS MUST send 1721 a with a 426 status code (Section 4.5). 1723 4.3.1.1.3. 1725 The element allows media resources to be played in parallel. 1726 Each of its child elements specify a media resource (or a sequence of 1727 media resources using the element). When playback of the 1728 element is initiated, the MS begins playback of all its child 1729 elements at the same time. This element is modeled after the 1730 element in SMIL ([W3C.REC-SMIL2-20051213]). 1732 The element has the following attributes: 1734 endsync: indicates when playback of the element is complete. Valid 1735 values are: "first" - indicates that the element is complete when 1736 any child element reports that it is complete; "last" - indicates 1737 it is complete when every child elements are complete. The 1738 attribute is optional. The default value is "last". 1740 If the value is "first", then playback of other child element is 1741 stopped when one child element reports it is complete. 1743 The element has the following child elements (at least one, any 1744 order, multiple occurrences of each element permitted): 1746 : specifies a sequence of media resources to play in a parallel 1747 with other child elements (see Section 4.3.1.1.3.1). The 1748 element is optional. 1750 : specifies a media resource (see Section 4.3.1.5) to play. 1751 The element is optional. 1753 : specifies a variable media announcement (see 1754 Section 4.3.1.1.1) to play. The element is optional. 1756 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1757 play. The element is optional. 1759 It is RECOMMENDED that the MS implementation at least supports 1760 playback different media (e.g. audio and video) in parallel where 1761 mixing of media on the same stream is not required. The MS MAY 1762 support transcoding between the media resource format and the output 1763 stream format. 1765 Runtime s (Section 4.3.1.2) apply to each child element 1766 playing parallel. For example, pause and resume controls cause all 1767 child elements to be paused and resumed respectively. 1769 If the element is stopped by the prompt container (e.g. bargein 1770 or dialog termination), then playback of all child elements is 1771 stopped. The playback duration (Section 4.3.2.1) reported for the 1772 element is the duration of parallel playback, not the 1773 cumulative duration of each child element played in parallel. 1775 For example, a request to playback audio and video media in parallel: 1777 1778 1779 1780 1781 1782 1784 1787 1788 1789 1790 1792 When the element is executed, it begins playback of its 1793 child element in document order sequence. In this case, there is 1794 only one child element, a element itself containing audio and 1795 video child element. Consequently playback of both audio and 1796 video media resources is initiated at the same time. Since the 1797 endsync attribute is not specified, the default value "last" applies. 1798 The element playback is complete when the media resource with 1799 the longest duration is complete. 1801 4.3.1.1.3.1. 1803 The element specifies media resources to be played back in 1804 sequence. This allows a sequence of media resources to be played at 1805 the same time as other children of a element are played in 1806 parallel. For example, a sequence of audio resources while a video 1807 resource is played in parallel. This element is modeled after the 1808 element in SMIL ([W3C.REC-SMIL2-20051213]). 1810 The element has no attributes. 1812 The element has the following child elements (at least one, any 1813 order, multiple occurrences of each element permitted): 1815 : specifies a media resource (see Section 4.3.1.5) to play. 1816 The element is optional. 1818 : specifies a variable media announcement (see 1819 Section 4.3.1.1.1) to play. The element is optional. 1821 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1822 play. The element is optional. 1824 It is RECOMMENDED that the MS implementation at least supports 1825 playback of the same media (e.g. audio only) within a element. 1827 Playback of a element is complete when all child elements in 1828 the sequence are complete. If the element is stopped by the 1829 container, then playback of the current child element is 1830 stopped (remaining child elements in the sequence are not played). 1832 For example, a request to play a sequence of audio resources in 1833 parallel with a video media: 1835 1836 1837 1838 1839 1840 1841 1843 1845 1847 1849 1850 1853 1854 1855 1856 1858 When the element is executed, it begins playback of the 1859 element containing a element and a video element. 1860 The element itself contains a sequence of audio 1861 elements. Consequently playback of the video media resource is 1862 initiated at the same time as playback of the sequence of the audio 1863 media resources is initiated. Each audio resource is played back 1864 after the previous one completes. Since the endsync attribute is set 1865 to "first", the element playback is complete when either all 1866 the audio resources in have been played to completion or the 1867 video is complete, whichever occurs first. 1869 4.3.1.2. 1871 The element defines how DTMF input is mapped to runtime 1872 controls, including prompt playback controls. 1874 DTMF input matching these controls MUST NOT cause prompt playback to 1875 interrupted (i.e. no prompt bargein), but causes the appropriate 1876 operation to be applied; for examples, speeding up prompt playback. 1878 DTMF input matching these controls has priority over input 1879 for the duration of prompt playback. If incoming DTMF matches a 1880 specified runtime control, then the DTMF is not available to the 1881 operation, including its digit buffer. Once prompt 1882 playback is complete, runtime controls are no longer active. 1884 The element has the following attributes: 1886 gotostartkey: maps a DTMF key to skip directly to the start of the 1887 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1888 The attribute is optional. There is no default value. 1890 gotoendkey: maps a DTMF key to skip directly to the end of the 1891 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1892 The attribute is optional. There is no default value. 1894 skipinterval: indicates how far a MS should skip backwards or 1895 forwards through prompt playback when the rewind (rwkey) of fast 1896 forward key (ffkey) is pressed. A valid value is a Time 1897 Designation (see Section 4.6.7). The attribute is optional. The 1898 default value is 6s. 1900 ffkey: maps a DTMF key to a fast forward operation equal to the 1901 value of 'skipinterval'. A valid value is a DTMF Character (see 1902 Section 4.6.2). The attribute is optional. There is no default 1903 value. 1905 rwkey: maps a DTMF key to a rewind operation equal to the value of 1906 'skipinterval'. A valid value is a DTMF Character (see 1907 Section 4.6.2). The attribute is optional. There is no default 1908 value. 1910 pauseinterval: indicates how long a MS should pause prompt playback 1911 when the pausekey is pressed. A valid value is a Time Designation 1912 (see Section 4.6.7). The attribute is optional. The default 1913 value is 10s. 1915 pausekey: maps a DTMF key to a pause operation equal to the value of 1916 'pauseinterval'. A valid value is a DTMF Character (see 1917 Section 4.6.2). The attribute is optional. There is no default 1918 value. 1920 resumekey: maps a DTMF key to a resume operation. A valid value is 1921 a DTMF Character (see Section 4.6.2). The attribute is optional. 1922 There is no default value. 1924 volumeinterval: indicates the increase or decrease in playback 1925 volume (relative to the current volume) when the volupkey or 1926 voldnkey is pressed. A valid value is a percentage (see 1927 Section 4.6.8). The attribute is optional. The default value is 1928 10%. 1930 volupkey: maps a DTMF key to a volume increase operation equal to 1931 the value of 'volumeinterval'. A valid value is a DTMF Character 1932 (see Section 4.6.2). The attribute is optional. There is no 1933 default value. 1935 voldnkey: maps a DTMF key to a volume decrease operation equal to 1936 the value of 'volumeinterval'. A valid value is a DTMF Character 1937 (see Section 4.6.2). The attribute is optional. There is no 1938 default value. 1940 speedinterval: indicates the increase or decrease in playback speed 1941 (relative to the current speed) when the speedupkey or speeddnkey 1942 is pressed. A valid value is a percentage (see Section 4.6.8). 1943 The attribute is optional. The default value is 10%. 1945 speedupkey: maps a DTMF key to a speed increase operation equal to 1946 the value of the speedinterval attribute. A valid value is a DTMF 1947 Character (see Section 4.6.2). The attribute is optional. There 1948 is no default value. 1950 speeddnkey: maps a DTMF key to a speed decrease operation equal to 1951 the value of the speedinterval attribute. A valid value is a DTMF 1952 Character (see Section 4.6.2). The attribute is optional. There 1953 is no default value. 1955 external: allows one or more DTMF keys to be declared as external 1956 controls (for example: video camera controls); the MS can send 1957 notifications when a matching key is activated using 1958 (Section 4.2.5.2). A valid value is a DTMF String (see 1959 Section 4.6.3). The attribute is optional. There is no default 1960 value. 1962 If the same DTMF is specified in more than one DTMF key control 1963 attribute - except the pausekey and resumekey attributes - the MS 1964 MUST send a with a 413 status code (Section 4.5). 1966 The MS has the following execution model for runtime control after 1967 initialization: 1969 1. If an error occurs during execution, then the MS terminates 1970 runtime control and the error is reported to the dialog 1971 container. The MS MAY report controls executed successfully 1972 before the error in (see Section 4.3.2.2). 1974 2. Runtime controls are active only during prompt playback (if no 1975 element is specified, then runtime controls are 1976 ignored). If DTMF input matches any specified keys (for example 1977 the ffkey), then the appropriate operation is applied 1978 immediately. If a seek operation (ffkey, rwkey) attempts to go 1979 beyond the beginning or end of the prompt queue, then it is 1980 automatically truncated to the prompt beginning or end 1981 respectively. If the pause operation attempts to pause output 1982 when it is already paused, then the operation is ignored. If the 1983 resume operation attempts to resume when the prompts are not 1984 paused, then the operation is ignored. If a volume operations 1985 attempts to go beyond the minimum or maximum volume supported by 1986 the platform, then the operation is ignored. 1988 3. If DTMF control subscription has been specified for the dialog, 1989 then each DTMF match of a control operation is reported in a 1990 notification event (Section 4.2.5.2). 1992 4. When the dialog exits, all control matches are reported in a 1993 element (Section 4.3.2.2). 1995 4.3.1.3. 1997 The element defines how DTMF input is collected. 1999 The element has the following attributes: 2001 cleardigitbuffer: indicates whether the digit buffer is to be 2002 cleared. A valid value is a boolean (see Section 4.6.1). A value 2003 of true indicates that the digit buffer is to be cleared. A value 2004 of false indicates that the digit buffer is not to be cleared. 2005 The attribute is optional. The default value is true. 2007 timeout: indicates the maximum time to wait for user input to begin. 2008 A valid value is a Time Designation (see Section 4.6.7). The 2009 attribute is optional. The default value is 5s. 2011 interdigittimeout: indicates inter-digit timeout value to use when 2012 recognizing DTMF input. A valid value is a Time Designation (see 2013 Section 4.6.7). The attribute is optional. The default value is 2014 2s. 2016 termtimeout: indicates the terminating timeout value to use when 2017 recognizing DTMF input. A valid value is a Time Designation (see 2018 Section 4.6.7). The attribute is optional. The default value is 2019 0s. 2021 escapekey: specifies a DTMF key that indicates the DTMF collection 2022 is to be re-initiated. A valid value is a DTMF Character (see 2023 Section 4.6.2). The attribute is optional. There is no default 2024 value. 2026 termchar: specifies a DTMF character for terminating DTMF input 2027 collection using the internal grammar. A valid value is a DTMF 2028 character (see Section 4.6.2). To disable termination by a 2029 conventional DTMF character, set the parameter to an 2030 unconventional character like 'A'. The attribute is optional. 2031 The default value is '#'. 2033 maxdigits: The maximum number of digits to collect using an internal 2034 digits (0-9 only) grammar. A valid value is a positive integer 2035 (see Section 4.6.5). The attribute is optional. The default 2036 value is 5. 2038 The element has the following child elements: 2040 : indicates a custom grammar format (see 2041 Section 4.3.1.3.1). The element is optional. 2043 The custom grammar takes priority over the internal grammar. If a 2044 element is specified, the MS MUST use it for DTMF 2045 collection. 2047 The MS has the following execution model for DTMF collection after 2048 initialization: 2050 1. The DTMF collection buffer MUST NOT receive DTMF input matching 2051 operations (see Section 4.3.1.2). 2053 2. If an error occurs during execution, then the MS terminates 2054 collection and reports the error to the dialog container (see 2055 Section 4.3). The MS may report DTMF collected before the error 2056 in (see Section 4.3.2.3). 2058 3. The MS clears the digit buffer if the value of the 2059 cleardigitbuffer attribute is true. 2061 4. The MS activates a timer with the duration of the value of the 2062 timeout attribute. If the timer expires before DTMF input 2063 collection begins, then collection execution terminates, the 2064 (see Section 4.3.2.3) has the termmode attribute 2065 set to noinput and the execution status reported to the dialog 2066 container. 2068 5. If DTMF collect input matches the value of the escapekey 2069 attribute, then the MS cancels the timer and re-initializes DTMF 2070 collection. 2072 6. Other DTMF collect input is matched to the grammar. Valid DTMF 2073 patterns are either a simple digit string where the maximum 2074 length is determined by the maxdigits attribute and may be 2075 terminated by the character in the termchar attribute; or a 2076 custom DTMF grammar specified with the element. The 2077 attributes interdigittimeout and termtimeout control interdigit 2078 timeout and the terminating timeout respectively. 2080 7. If the collect input completely matches the grammar, the timer is 2081 canceled, the MS terminates collection execution and reports 2082 execution status to the dialog container with (see 2083 Section 4.3.2.3) where the termmode attribute set to match. 2085 8. If the collect input does not match the grammar, the MS cancels 2086 the timer, terminates collection execution and reports execution 2087 status to the dialog container with a (see 2088 Section 4.3.2.3) where the termmode attribute set to nomatch. 2090 4.3.1.3.1. 2092 The element allows a custom grammar, inline or external, to 2093 be specified. Custom grammars permit the full range of DTMF 2094 characters including '*' and '#' to be specified for DTMF pattern 2095 matching. 2097 The element has the following attributes: 2099 src: specifies the location of an external grammar document. A 2100 valid value is a URI (see Section 4.6.9). If the URI scheme is 2101 unsupported, the MS MUST send a with a 420 status code 2102 (Section 4.5). If the resource cannot be retrieved within the 2103 timeout interval, the MS MUST send a with a 409 status 2104 code. If the grammar format is not supported, the MS MUST send a 2105 with a 424 status code. The attribute is optional. 2106 There is no default value. 2108 type: identifies the preferred type of the grammar document 2109 identified by the src attribute. The MS MAY use the value to 2110 assist the remote source in selecting the appropriate resource 2111 type (e.g. with HTTP 'accept' header) and to determine how the 2112 document is processed if the protocol does not provide an 2113 authoritative MIME media type for the returned resource. A valid 2114 value is a MIME media type (see Section 4.6.10). The attribute is 2115 optional. There is no default value. 2117 fetchtimeout: the maximum interval to wait when fetching a grammar 2118 resource. A valid value is a Time Designation (see 2119 Section 4.6.7). The attribute is optional. The default value is 2120 30s. 2122 The element allows inline grammars to be specified. XML 2123 grammar formats MUST use a namespace other than the one used in this 2124 specification. Non-XML grammar formats MAY use a CDATA section. 2126 The MS MUST support the [SRGS] XML grammar format ("application/ 2127 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 2128 formats. If the grammar format is not supported by the MS, then the 2129 MS MUST send a with a 424 status code (Section 4.5). 2131 For example, the following fragment shows DTMF collection with an 2132 inline SRGS grammar: 2134 2136 2137 2139 2140 2141 0 2142 1 2143 2 2144 3 2145 4 2146 5 2147 6 2148 7 2149 8 2150 9 2151 2152 2154 2155 2156 2157 2158 2159 # 2160 * 9 2161 2162 2164 2165 2166 2168 The same grammar could also be referenced externally (and take 2169 advantage of HTTP caching): 2171 2172 2174 2176 4.3.1.4. 2178 The element specifies how media input is recorded. 2180 The element has the following attributes: 2182 timeout: indicates the time to wait for user input to begin. A 2183 valid value is a Time Designation (see Section 4.6.7). The 2184 attribute is optional. The default value is 5s. 2186 vadinitial: Control whether voice activity detection can be used to 2187 initiate the recording operation. A valid value is a boolean (see 2188 Section 4.6.1). A value of true indicates the MS MAY initiate 2189 recording using voice activity detection. A value of false 2190 indicates that the MS MUST NOT initiate recording using voice 2191 activity detection. The attribute is optional. The default value 2192 is true. 2194 vadfinal: Control whether voice activity detection can be used to 2195 terminate the recording operation. A valid value is a boolean 2196 (see Section 4.6.1). A value of true indicates the MS MAY 2197 terminate recording using voice activity detection. A value of 2198 false indicates that the MS MUST NOT terminate recording using 2199 voice activity detection. The attribute is optional. The default 2200 value is true. 2202 dtmfterm: Indicates whether the recording operation is terminated by 2203 DTMF input. A valid value is a boolean (see Section 4.6.1). A 2204 value of true indicates that recording is terminated by DTMF 2205 input. A value of false indicates that recording is not 2206 terminated by DTMF input. The attribute is optional. The default 2207 value is true. 2209 maxtime: indicates The maximum duration of the recording. A valid 2210 value is a Time Designation (see Section 4.6.7). The attribute is 2211 optional. The default value is 15s. 2213 beep: indicates whether a 'beep' should be played immediately prior 2214 to initiation of the recording operation. A valid value is a 2215 boolean (see Section 4.6.1). The attribute is optional. The 2216 default value is false. 2218 finalsilence: indicates the interval of silence that indicates end 2219 of speech. This interval is not part of the recording itself. 2220 This parameter is ignored if the vadfinal attribute has the value 2221 false. A valid value is a Time Designation (see Section 4.6.7). 2222 The attribute is optional. The default value is 5s. 2224 append: indicates whether recorded data should be appended or not to 2225 a recording location if a resource already exists. A valid value 2226 is a boolean (see Section 4.6.1). A value of true indicates that 2227 recorded data is appended to the existing resource at a recording 2228 location. A value of false indicates that recorded data is to 2229 overwrite the existing resource. The attribute is optional. The 2230 default value is false. 2232 The element has the following child element (0 or more 2233 occurrences): 2235 : specifies the location and type of the media resource for 2236 uploading recorded data (see Section 4.3.1.5). The MS MUST have 2237 uploaded the recorded data to this resource as soon as possible 2238 after recording is complete. The element is optional. 2240 If multiple elements are specified, then media input is to be 2241 recorded in parallel to multiple resource locations. 2243 If no child element is specified, the MS MUST provide a 2244 recording location where the recording format is implementation- 2245 specific. The recording location and format are reported in 2246 (Section 4.3.2.4) when the dialog terminates. The 2247 recording MUST be available from this location until the connection 2248 or conference associated with the dialog on the MS terminates. 2250 If the MS does not support the configuration required for recording 2251 from the input media streams to one or more elements, the MS 2252 MUST send a with a 423 status code (Section 4.5). It is 2253 RECOMMENDED that the MS implementation at least supports recording 2254 different media (e.g. audio and video) in parallel to different 2255 locations. The MS MAY support transcoding between the input stream 2256 format and the recording location format. 2258 Note that an MS MAY support uploading recorded data to recording 2259 locations at the same time the recording operation takes place. Such 2260 implementations should be aware of the requirements of certain 2261 recording formats (e.g. WAV) for metadata at the beginning of the 2262 uploaded file, that the finalsilence interval is not part of the 2263 recording and how these requirements interact with the URI scheme. 2265 The MS has the following execution model for recording after 2266 initialization: 2268 1. If an error occurs during execution (e.g. authentication or 2269 communication error when trying to upload to a recording 2270 location), then the MS terminates record execution and reports 2271 the error to the dialog container (see Section 4.3). The MS MAY 2272 report data recorded before the error in (see 2273 Section 4.3.2.4). 2275 2. If DTMF input (not matching a operation) is received 2276 during prompt playback and the prompt bargein attribute is set to 2277 true, then the MS activates the record execution. Otherwise, the 2278 MS activates it after the completion of prompt playback. 2280 3. If a beep attribute with the value of true is specified, then the 2281 MS plays a beep tone. 2283 4. The MS activates a timer with the duration of the value of the 2284 timeout attribute. If the timer expires before the recording 2285 operation begins, then the MS terminates the recording execution 2286 and reports the status to dialog container with (see 2287 Section 4.3.2.4) where the termmode attribute is set to noinput. 2289 5. Initiation of the recording operation depends on the value of the 2290 vadinitial attribute. If vadinitial has the value false, then 2291 the recording operation is initiated immediately. Otherwise, the 2292 recording operation is initiated when voice activity is detected. 2294 6. When the recording operation is initiated, a timer is started for 2295 the value of the maxtime attribute (maximum duration of the 2296 recording). If the timer expires before the recording operation 2297 is complete, then the MS terminates recording execution and 2298 reports the execution status to the dialog container with 2299 (see Section 4.3.2.4) where the termmode attribute 2300 set to maxtime. 2302 7. During the record operation input media streams are recording to 2303 a location and format specified in one or more child 2304 elements. If no child element is specified, the MS 2305 records input to an implementation-specific location and format. 2307 8. If the dtmfterm attribute has the value true and DTMF input is 2308 detected during the record operation, then the MS terminates 2309 recording and its status is reported to the dialog container with 2310 a (see Section 4.3.2.4) where the termmode attribute 2311 is set to dtmf. 2313 9. If vadfinal attribute has the value true, then the MS terminates 2314 the recording operation when a period of silence, with the 2315 duration specified by the value of the finalsilence attribute, is 2316 detected. This period of silence is not part of the final 2317 recording. The status is reported to the dialog container with a 2318 (see Section 4.3.2.4) where the termmode attribute 2319 is set to finalsilence. 2321 For example, a request to record audio and video input to separate 2322 locations: 2324 2325 2326 2327 2328 2330 2332 2333 2334 2335 2337 When the element is executed, it immediately begins 2338 recording of the audio and video (since vadinitial is false) where 2339 the destination locations are specified in the child 2340 elements. Recording is completed when the duration reaches 30s or 2341 the connection is terminated. 2343 4.3.1.5. 2345 The element specifies a media resource to playback from (see 2346 Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback 2347 case, the resource is retrieved and in the recording case, recording 2348 data is uploaded to the resource location. 2350 A element has the following attributes: 2352 loc: specifies the location of the media resource. A valid value is 2353 a URI (see Section 4.6.9). The MS SHOULD support the inclusion of 2354 authentication information in the URI if the URI scheme supports 2355 it (e.g. basic access authentication in HTTP). The MS MAY support 2356 more advanced authentication mechanisms. If the URI scheme is not 2357 supported by the MS, the MS MUST send a with a 420 2358 status code (Section 4.5). If the resource is to be retrieved but 2359 the MS cannot retrieve it within the timeout interval, the MS MUST 2360 send a with a 409 status code. If the format of the 2361 media resource is not supported, the MS MUST send a 2362 with a 429 status code. The attribute is mandatory. 2364 type: specifies the type of the media resource indicated in the ref 2365 attribute. A valid value is a MIME media type (see 2366 Section 4.6.10). The value can include additional parameters 2367 (e.g. [RFC4281]) to guide the MS in using the media resource. If 2368 the resource is retrieved from the location, the MS MAY use the 2369 value to assist the remote source in selecting the appropriate 2370 resource type (e.g. with HTTP 'accept' header) and to determine 2371 how the resource is to be processed if the protocol does not 2372 provide an authoritative MIME media type for the returned resource 2373 If data is to be uploaded to the resource location, the MS MAY use 2374 the parameters to determine which media streams are to be used; 2375 for example, using a 'codec' parameter for 'bucket' media types 2376 like video/3gpp. The attribute is optional. There is no default 2377 value. 2379 fetchtimeout: the maximum interval to wait when fetching a media 2380 resource. A valid value is a Time Designation (see 2381 Section 4.6.7). The attribute is optional. The default value is 2382 30s. 2384 soundLevel: playback soundLevel (volume) for the media resource. A 2385 valid value is a percentage (see Section 4.6.4). The value 2386 indicates increase or decrease relative to the original recorded 2387 volume of the media. A value of 100% (the default) plays the 2388 media at its recorded volume, a value of 200% will play the media 2389 twice recorded volume, 50% at half its recorded volume, a value of 2390 0% will play the media silently, and so on. See 'soundLevel' in 2391 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 2392 attribute is optional. The default value is 100%. 2394 clipBegin: offset from start of media resource to begin playback. A 2395 valid value is a Time Designation (see Section 4.6.7). The offset 2396 is measured in normal media playback time from the beginning of 2397 the media resource. If the clipBegin offset is after the end of 2398 media (or the clipEnd offset), no media is played. See 2399 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further 2400 information. The attribute is optional. The default value is 0s. 2402 clipEnd: offset from start of media resource to end playback. A 2403 valid value is a Time Designation (see Section 4.6.7). The offset 2404 is measured in normal media playback time from the beginning of 2405 the media resource. If the clipEnd offset is after the end of 2406 media, then the media is played to the end. If clipBegin is after 2407 clipEnd, then no media is played. See 'clipEnd' in SMIL 2408 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 2409 is optional. There is no default value. 2411 The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are 2412 only relevant in the playback use case. The MS SHOULD ignore these 2413 attributes when using the for recording. 2415 The element has no children. 2417 4.3.2. Exit Information 2419 When the dialog exits, information about the specified operations is 2420 reported in a notification event (Section 4.2.5.1). 2422 4.3.2.1. 2424 The element reports the information about prompt 2425 execution. It has the following attributes: 2427 duration: indicates the duration of prompt playback in milliseconds. 2428 A valid value is a non-negative integer (see Section 4.6.4). The 2429 attribute is optional. There is no default value. 2431 termmode: indicates how playback was terminated. Valid values are: 2432 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 2434 The element has no child elements. 2436 4.3.2.2. 2438 The element reports information about control 2439 execution. 2441 The element has no attributes and has 0 or more 2442 child elements each describing an individual runtime 2443 control match. 2445 4.3.2.2.1. 2447 The element has the following attributes: 2449 dtmf: DTMF input triggering the runtime control. A valid value is a 2450 DTMF string (see Section 4.6.3) with no space between characters. 2451 The attribute is mandatory. 2453 timestamp: indicates the time (on the MS) at which the control was 2454 triggered. A valid value is an dateTime expression 2455 (Section 4.6.12). The attribute is mandatory. 2457 The element has no child elements. 2459 4.3.2.3. 2461 The element reports the information about collect 2462 execution. 2464 The element has the following attributes: 2466 dtmf: DTMF input collected from the user. A valid value is a DTMF 2467 string (see Section 4.6.3) with no space between characters. The 2468 attribute is optional. There is no default value. 2470 termmode: indicates how collection was terminated. Valid values 2471 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2472 mandatory. 2474 The element has no child elements. 2476 4.3.2.4. 2478 The element reports information about record execution. 2480 The element has the following attributes: 2482 termmode: indicates how recording was terminated. Valid values are: 2483 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2484 attribute is mandatory. 2486 duration: indicates the duration of the recording in milliseconds. 2487 A valid value is a non-negative integer (see Section 4.6.4). The 2488 attribute is optional. There is no default value. 2490 The element has the following child element (0 or more 2491 occurrences): 2493 : indicates information about a recorded media resource 2494 (see Section 4.3.2.4.1). The element is optional. 2496 When the record operation is successful, the MS SHOULD specify the 2497 same number of child elements as recorded media 2498 destinations in (Section 4.3.1.4). 2500 4.3.2.4.1. 2502 The element reports information about a recorded media 2503 resource. 2505 The element has the following attributes: 2507 loc: indicates the location of the media resource. A valid value is 2508 a URI (see Section 4.6.9). The attribute is mandatory. 2510 type: indicates the format of the media resource. A valid value is 2511 a MIME media type (see Section 4.6.10). The attribute is 2512 mandatory. 2514 size: indicates the size of the media resource in bytes. A valid 2515 value is a non-negative integer (see Section 4.6.4). The 2516 attribute is optional. There is no default value. 2518 4.4. Audit Elements 2520 The audit elements defined in this section allow the MS to be audited 2521 for package capabilities as well as dialogs managed by the package. 2522 Auditing is particularly important for two use cases. First, it 2523 enables discovery of package capabilities supported on an MS before 2524 an AS starts a dialog on connection or conference. The AS may then 2525 use this information to create request elements using supported 2526 capabilities and, in the case of codecs, to negotiate an appropriate 2527 SDP for a user agent's connection. Second, auditing enables 2528 discovery of the existence and status of dialogs currently managed by 2529 the package on the MS. This allows one AS to take over management of 2530 the dialogs when the AS which initiated the dialogs fails or is no 2531 longer available. 2533 4.4.1. 2535 The request element is sent to the MS to request information 2536 about the capabilities of, and dialogs currently managed with, this 2537 control package. Capabilities include supported dialog languages, 2538 grammar formats, record and media types as well as codecs. Dialog 2539 information includes the status of managed dialogs as well as codecs. 2541 The element has the following attributes: 2543 capabilities: indicates whether package capabilities are to be 2544 audited. A valid value is a boolean (see Section 4.6.1). A value 2545 of true indicates that capability information is to be reported. 2546 A value of false indicates that capability information is not to 2547 be reported. The attribute is optional. The default value is 2548 true. 2550 dialogs: indicates whether dialogs currently managed by the package 2551 are to be audited. A valid value is a boolean (see 2552 Section 4.6.1). A value of true indicates that dialog information 2553 is to be reported. A value of false indicates that dialog 2554 information is not to be reported. The attribute is optional. 2555 The default value is true. 2557 dialogid: string identifying a specific dialog to audit. The MS 2558 MUST send a response with a 406 status code (Section 4.5) if the 2559 specified dialog identifier is invalid. The attribute is 2560 optional. There is no default value. 2562 If the dialogs attribute has the value true and dialogid attribute is 2563 specified, then only audit information about the specified dialog is 2564 reported. If the dialogs attribute has the value false, then no 2565 dialog audit information is reported even if a dialogid attribute is 2566 specified. 2568 The element has no child elements. 2570 When the MS receives an request, it MUST reply with a 2571 element (Section 4.4.2) which includes a mandatory 2572 attribute describing the status in terms of a numeric code. Response 2573 status codes are defined in Section 4.5. If the request is 2574 successful, the contains (depending on attribute 2575 values) a element (Section 4.4.2.2) reporting package 2576 capabilities and a element (Section 4.4.2.3) reporting 2577 managed dialog information. If the MS is not able to process the 2578 request and carry out the audit operation, the audit request has 2579 failed and the MS MUST indicate the class of failure using an 2580 appropriate 4xx response code. Unless an error response code is 2581 mandated for a specific class of error within this section, 2582 implementations follow Section 4.5 in determining the appropriate 2583 status code for the response. 2585 For example, a request to audit capabilities and dialogs managed by 2586 the package: 2588 2589 2590 2592 In this example, only capabilities are to be audited: 2594 2595 2596 2597 With this example, only a specific dialog is to be audited: 2599 2600 2601 2603 4.4.2. 2605 The element describes a response to a 2606 request. 2608 The element has the following attributes: 2610 status: numeric code indicating the audit response status. The 2611 attribute is mandatory. Valid values are defined in Section 4.5. 2613 reason: string specifying a reason for the status. The attribute is 2614 optional. 2616 The element has the following sequence of child 2617 elements: 2619 element (Section 4.4.2.2) describing capabilities of 2620 the package. The element is optional. 2622 element (Section 4.4.2.3) describing information about 2623 managed dialogs. The element is optional. 2625 For example, a successful response to a request requesting 2626 capabilities and dialogs information: 2628 2629 2630 2631 2632 application/voicexml+xml 2633 2634 2635 application/srgs+xml 2636 2637 2638 audio/x-wav 2639 video/3gpp 2640 2641 2642 audio/x-wav 2643 video/3gpp 2644 2645 2646 2647 mdy 2648 ymd 2649 dmy 2650 dm 2651 2652 2653 600s 2654 1800s 2655 2656 2657 H.263 2658 2659 2660 H.264 2661 2662 2663 PCMU 2664 2665 2666 PCMA 2667 2668 2669 telephone-event 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 PCMA 2680 2681 2682 telephone-event 2683 2684 2685 2686 2687 2688 2690 4.4.2.1. 2692 The provides audit information about codecs. 2694 The element has no attributes. 2696 The element has the following sequence of child elements (0 2697 or more occurrences): 2699 : audit information for a codec (Section 4.4.2.1.1). The 2700 element is optional. 2702 For example, a fragment describing two codecs: 2704 2705 2706 PCMA 2707 2708 2709 telephone-event 2710 2711 2713 4.4.2.1.1. 2715 The element describes a codec on the MS. The element is 2716 modeled on the element in the XCON conference information 2717 data model ([I-D.ietf-xcon-common-data-model]) but allows addition 2718 information (e.g. rate, speed, etc) to be specified. 2720 The element has no attributes. 2722 The element has the following sequence of child elements: 2724 : element describing the codec's name. The possible values 2725 of this element are the values of the 'subtype' column of the RTP 2726 Payload Format media types per [RFC4855] defined in IANA ([IANA]). 2727 The element is mandatory. 2729 : element (Section 4.2.6) describing additional information 2730 about the codec. This package is agnostic to the names and values 2731 of the codec parameters supported by an implementation. The 2732 element is optional. 2734 For example, a fragment with a element describing the H.263 2735 codec: 2737 2738 H.263 2739 2741 4.4.2.2. 2743 The element provides audit information about package 2744 capabilities. 2746 The element has no attributes. 2748 The element has the following sequence of child 2749 elements: 2751 : element (Section 4.4.2.2.1) describing additional 2752 dialog languages supported by the MS. The element is mandatory. 2754 : element (Section 4.4.2.2.2) describing supported 2755 (Section 4.3.1.3.1) format types. The element is 2756 mandatory. 2758 : element (Section 4.4.2.2.3) describing 2759 (Section 4.3.1.5) format types supported for 2760 (Section 4.3.1.4). The element is mandatory. 2762 : element (Section 4.4.2.2.4) describing supported 2763 (Section 4.3.1.5) format types for playback within a 2764 (Section 4.3.1.1). The element is mandatory. 2766 : element (Section 4.4.2.2.5) describing supported types 2767 and formats for the element (Section 4.4.2.2.5). The 2768 element is mandatory. 2770 : element (Section 4.4.2.2.6) describing the 2771 supported maximum duration for a prepared dialog following a 2772 (Section 4.2.1) request. The element is 2773 mandatory. 2775 : element (Section 4.4.2.2.7) describing the 2776 supported maximum duration for a recording 2777 Section 4.3.1.4) request. The element is mandatory. 2779 : element (Section 4.4.2.1) describing codecs available to 2780 the package. The element is mandatory. 2782 For example, a fragment describing capabilities: 2784 2785 2786 application/voicexml+xml 2787 2788 2789 application/srgs+xml 2790 2791 2792 audio/x-wav 2793 video/3gpp 2794 2795 2796 audio/x-wav 2797 video/3gpp 2798 2799 2800 30s 2801 60s 2802 2803 2804 H.263 2805 2806 2807 H.264 2808 2809 2810 PCMU 2811 2812 2813 PCMA 2814 2815 2816 telephone-event 2817 2818 2819 2821 4.4.2.2.1. 2823 The element provides information about additional 2824 dialog languages supported by the package. Dialog languages are 2825 identified by their associated MIME media types. The MS MUST NOT 2826 include the mandatory dialog language for this package (Section 4.3). 2828 The element has no attributes. 2830 The element has the following sequence of child 2831 elements (0 or more occurrences): 2833 : element whose content model describes a MIME media type 2834 (Section 4.6.10) associated with a supported dialog language. The 2835 element is optional. 2837 4.4.2.2.2. 2839 The element provides information about 2840 format types supported by the package. The MS MUST include the 2841 mandatory SRGS format type, "application/srgs+xml" 2842 (Section 4.3.1.3.1). 2844 The element has no attributes. 2846 The element has the following sequence of child 2847 elements (1 or more occurrences): 2849 : element whose content model describes a mime type 2850 (Section 4.6.10). The element is optional. 2852 4.4.2.2.3. 2854 The element provides information about media resource 2855 format types of supported by the package (Section 4.3.1.4). 2857 The element has no attributes. 2859 The element has the following sequence of child 2860 elements (0 or more occurrences): 2862 : element whose content model describes a mime type 2863 (Section 4.6.10). The element is optional. 2865 4.4.2.2.4. 2867 The element provides information about media resource 2868 format types of supported by the package (Section 4.3.1.1). 2870 The element has no attributes. 2872 The element has the following sequence of child 2873 elements (0 or more occurrences): 2875 : element whose content model describes a mime type 2876 (Section 4.6.10). The element is optional. 2878 4.4.2.2.5. 2880 The element provides information about types and formats 2881 for the element (Section 4.4.2.2.5) supported by the 2882 package. 2884 The element has no attributes. 2886 The element has the following sequence of child elements 2887 (0 or more occurrences): 2889 : element describing the formats support for a given 2890 type (Section 4.4.2.2.5.1). The element is optional. 2892 For example, a fragment describing support for with a 2893 "date" type in some common formats. 2895 2896 2897 mdy 2898 ymd 2899 dmy 2900 dm 2901 2902 2904 4.4.2.2.5.1. 2906 The element describes the formats supported for 2907 supported type. 2909 The element has the following attributes: 2911 type: indicates a supported value associated with the type attribute 2912 of element.The attribute is manadatory. 2914 desc: a string providing some textual description of the type and 2915 format. The attribute is optional. 2917 The element has the following sequence of child 2918 elements (0 or more occurrences): 2920 : element with a desc attribute (optional description) and a 2921 content model describing a supported format in the 2922 format attribute. The element is optional. 2924 4.4.2.2.6. 2926 The element describes the maximum duration for 2927 a dialog to remain in the prepared state (Section 4.2) following a 2928 (Section 4.2.1) request. 2930 The element has no attributes. 2932 The element has a content model describing the 2933 maximum prepared dialog duration as a time designation 2934 (Section 4.6.7). 2936 4.4.2.2.7. 2938 The element describes the maximum recording 2939 duration for Section 4.3.1.4) request supported by the MS. 2941 The element has no attributes. 2943 The element has a content model describing the 2944 maximum duration of recording as a time designation (Section 4.6.7). 2946 4.4.2.3. 2948 The element provides audit information about dialogs. 2950 The element has no attributes. 2952 The element has the following sequence of child elements (0 2953 or more occurrences): 2955 : audit information for a dialog (Section 4.4.2.3.1). 2956 The element is optional. 2958 4.4.2.3.1. 2960 The element has the following attributes: 2962 dialogid: string identifying the dialog. The attribute is 2963 mandatory. 2965 state: string indicating the state of the dialog. Valid values are: 2966 preparing, prepared, starting, started. The attribute is 2967 mandatory. 2969 connectionid: string identifying the SIP dialog connection 2970 associated with the dialog (see Section 17.1 of 2971 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2972 optional. There is no default value. 2974 conferenceid: string identifying the conference associated with the 2975 dialog (see Section 17.1 of 2976 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2977 optional. There is no default value. 2979 The element has the following child element: 2981 element describing codecs used in the dialog. See 2982 Section 4.4.2.1. The element is optional. 2984 For example, a fragment describing a started dialog which is using 2985 PCMU and telephony-event codecs: 2987 2988 2989 2990 PCMU 2991 2992 2993 telephone-event 2994 2995 2996 2998 4.5. Response Status Codes 3000 This section describes the response codes in Table 1 for the status 3001 attribute of dialog management (Section 4.2.4) and audit 3002 (Section 4.4.2) responses. The MS MUST support these 3003 status response codes. The MS MAY support other response codes. The 3004 AS MUST treat any responses it does not recognize as being equivalent 3005 to the x00 response code for all classes. For example, if an AS 3006 receives an unrecognized response code of 499, it can safely assume 3007 that there was something wrong with its request and treat the 3008 response as if it had received a 400 (Syntax error) response code. 3010 4xx responses are definite failure responses from a particular MS. 3011 The reason attribute in the response SHOULD identify the failure in 3012 more detail, for example, "Mandatory attribute missing: src in media 3013 element" for a 400 (Syntax error) response code. 3015 The AS SHOULD NOT retry the same request without modification (for 3016 example, correcting a syntax error or changing the connectionid to 3017 use one available on the MS). However, the same request to a 3018 different MS might be successful; for example, if another MS supports 3019 a capability required in the request. 3021 4xx failure responses can be grouped into three classes: failure due 3022 to a syntax error in the request (400); failure due to an error 3023 executing the request on the MS (405-419); and failure due to the 3024 request requiring a capability not supported by the MS (420-439). 3026 In cases where more than one request code could be reported for a 3027 failure, the MS SHOULD use the most specific error code of the 3028 failure class for the detected error. For example, if the MS detects 3029 that the dialogid in the request is invalid, then it uses a 406 3030 status code. However, if the MS merely detects that an execution 3031 error occurred, then 419 is used. 3033 +------+---------------+-----------------------+--------------------+ 3034 | Code | Summary | Description | Informational: AS | 3035 | | | | Possible Recovery | 3036 | | | | Action | 3037 +------+---------------+-----------------------+--------------------+ 3038 | 200 | OK | request has succeeded | | 3039 | | | | | 3040 | 400 | Syntax error | request is | Change the request | 3041 | | | syntactically | so that it is | 3042 | | | invalid: it is not | syntactically | 3043 | | | valid with respect to | valid. | 3044 | | | the XML schema | | 3045 | | | specified in | | 3046 | | | Section 5 or it | | 3047 | | | violates a | | 3048 | | | co-occurrence | | 3049 | | | constraint for a | | 3050 | | | request element | | 3051 | | | defined in Section 4. | | 3052 | | | | | 3053 | 401 | Reserved for | | | 3054 | | future use | | | 3055 | | | | | 3056 | 402 | Reserved for | | | 3057 | | future use | | | 3058 | | | | | 3059 | 403 | Reserved for | | | 3060 | | future use | | | 3061 | | | | | 3062 | 404 | Reserved for | | | 3063 | | future use | | | 3064 | | | | | 3065 | 405 | dialogid | request uses a | Send an | 3066 | | already | dialogid identifier | request | 3067 | | exists | for a new dialog | (Section 4.4.1) | 3068 | | | which is already used | requesting the | 3069 | | | by another dialog on | list of dialog | 3070 | | | the MS (see | identifiers | 3071 | | | Section 4.2). | already used by | 3072 | | | | the MS and then | 3073 | | | | use a dialog | 3074 | | | | identifier which | 3075 | | | | is not listed. | 3076 | | | | | 3077 | 406 | dialogid does | request uses a | Send an | 3078 | | not exist | dialogid identifier | request | 3079 | | | for an dialog which | (Section 4.4.1) | 3080 | | | does not exist on the | requesting the | 3081 | | | MS (see Section 4.2). | list of dialog | 3082 | | | | identifiers | 3083 | | | | already used by | 3084 | | | | the MS and then | 3085 | | | | use one of the | 3086 | | | | listed dialog | 3087 | | | | identifiers. | 3088 | | | | | 3089 | 407 | connectionid | request uses a | Use another method | 3090 | | does not | connectionid | to determine which | 3091 | | exist | identifier for a | connections are | 3092 | | | connection which does | available on the | 3093 | | | not exist on the MS. | MS. | 3094 | | | | | 3095 | 408 | conferenceid | request uses a | Use another method | 3096 | | does not | conferenceid | to determine which | 3097 | | exist | identifier for a | conferences are | 3098 | | | conference which does | available on the | 3099 | | | not exist on the MS. | MS. | 3100 | | | | | 3101 | 409 | Resource | request use a URI to | Check that the | 3102 | | cannot be | reference an external | resource URI is | 3103 | | retrieved | resource (e.g. | valid, can be | 3104 | | | dialog, media or | reached from the | 3105 | | | grammar) which cannot | MS, and that the | 3106 | | | be retrieved within | appropriate | 3107 | | | the timeout interval | authentication is | 3108 | | | | used. | 3109 | | | | | 3110 | 410 | Dialog | request to prepare or | | 3111 | | execution | start a dialog which | | 3112 | | canceled | has been terminated | | 3113 | | | by a | | 3114 | | | | | 3115 | | | request (see | | 3116 | | | Section 4.2) | | 3117 | | | | | 3118 | 411 | Incompatible | request specifies a | Change the media | 3119 | | stream | media stream | stream | 3120 | | configuration | configuration which | configuration to | 3121 | | | is in conflict with | match the | 3122 | | | itself, or the | capabilities of | 3123 | | | connection or | the connection or | 3124 | | | conference | conference | 3125 | | | capabilities (see | | 3126 | | | Section 4.2.2) | | 3127 | | | | | 3128 | 412 | Media stream | request specifies an | Check the media | 3129 | | not available | operation for which a | stream capability | 3130 | | | media stream is not | of the connection | 3131 | | | available. For | or conference and | 3132 | | | example, playing a | use an operation | 3133 | | | video media resource | which only uses | 3134 | | | on an connection or | these capabilities | 3135 | | | conference without | | 3136 | | | video streams. | | 3137 | | | | | 3138 | 413 | Control keys | the request contains | Use different keys | 3139 | | with same | a element | for the different | 3140 | | value | (Section 4.3.1.2) | control | 3141 | | | where some keys have | operations. | 3142 | | | the same value | | 3143 | | | | | 3144 | 414 | Reserved for | | | 3145 | | future use | | | 3146 | | | | | 3147 | 415 | Reserved for | | | 3148 | | future use | | | 3149 | | | | | 3150 | 416 | Reserved for | | | 3151 | | future use | | | 3152 | | | | | 3153 | 417 | Reserved for | | | 3154 | | future use | | | 3155 | | | | | 3156 | 418 | Reserved for | | | 3157 | | future use | | | 3158 | 419 | Other | requested operation | | 3159 | | execution | cannot be executed by | | 3160 | | error | the MS. | | 3161 | | | | | 3162 | 420 | Unsupported | request specifies a | Use a URI scheme | 3163 | | URI scheme | URI whose scheme is | which is | 3164 | | | not supported by the | supported. | 3165 | | | MS | | 3166 | | | | | 3167 | 421 | Unsupported | request references an | Send an | 3168 | | dialog | external dialog | request | 3169 | | language | language not | (Section 4.4.1) | 3170 | | | supported by the MS | requesting the MS | 3171 | | | | capabilities and | 3172 | | | | then use one of | 3173 | | | | the listed dialog | 3174 | | | | languages. | 3175 | | | | | 3176 | 422 | Unsupported | request references a | Send an | 3177 | | playback | media resource for | request | 3178 | | format | playback whose format | (Section 4.4.1) | 3179 | | | is not supported by | requesting the MS | 3180 | | | the MS | capabilities and | 3181 | | | | then use one of | 3182 | | | | the listed | 3183 | | | | playback media | 3184 | | | | formats. | 3185 | | | | | 3186 | 423 | Unsupported | request references a | Send an | 3187 | | record format | media resource for | request | 3188 | | | recording whose | (Section 4.4.1) | 3189 | | | format is not | requesting the MS | 3190 | | | supported by the MS | capabilities and | 3191 | | | | then use one of | 3192 | | | | the listed record | 3193 | | | | media formats. | 3194 | | | | | 3195 | 424 | Unsupported | request references a | Send an | 3196 | | grammar | grammar whose format | request | 3197 | | format | is not supported by | (Section 4.4.1) | 3198 | | | the MS | requesting the MS | 3199 | | | | capabilities and | 3200 | | | | then use one of | 3201 | | | | the listed grammar | 3202 | | | | types. | 3203 | | | | | 3204 | 425 | Unsupported | request contains a | Send an | 3205 | | variable | prompt | request | 3206 | | configuration | element | (Section 4.4.1) | 3207 | | | (Section 4.3.1.1.1) | requesting the MS | 3208 | | | not supported by the | capabilities and | 3209 | | | MS | then use one of | 3210 | | | | the listed | 3211 | | | | variable types. | 3212 | | | | | 3213 | 426 | Unsupported | request contains a | | 3214 | | DTMF | prompt element | | 3215 | | configuration | (Section 4.3.1.1.2) | | 3216 | | | not supported by the | | 3217 | | | MS | | 3218 | | | | | 3219 | 427 | Unsupported | request contains a | | 3220 | | parameter | element | | 3221 | | | (Section 4.2.6.1) not | | 3222 | | | supported by the MS | | 3223 | | | | | 3224 | 428 | Unsupported | request contains a | | 3225 | | media stream | element | | 3226 | | configuration | (Section 4.2.2.2) | | 3227 | | | whose configuration | | 3228 | | | is not supported by | | 3229 | | | the MS. | | 3230 | | | | | 3231 | 429 | Unsupported | request contains a | | 3232 | | playback | element | | 3233 | | configuration | (Section 4.3.1.1) | | 3234 | | | which the MS is | | 3235 | | | unable to play on the | | 3236 | | | available output | | 3237 | | | media streams | | 3238 | | | | | 3239 | 430 | Unsupported | request contains a | | 3240 | | record | element | | 3241 | | configuration | (Section 4.3.1.1) | | 3242 | | | which the MS is | | 3243 | | | unable to record with | | 3244 | | | on the available | | 3245 | | | input media streams | | 3246 | | | | | 3247 | 431 | Unsupported | the request contains | | 3248 | | foreign | attributes or | | 3249 | | namespace | elements from another | | 3250 | | attribute or | namespace which the | | 3251 | | element | MS does not support | | 3252 | 432 | Unsupported | the request tries to | | 3253 | | multiple | start another dialog | | 3254 | | dialog | on the same | | 3255 | | capability | conference or | | 3256 | | | connection where a | | 3257 | | | dialog is already | | 3258 | | | running | | 3259 | | | | | 3260 | 433 | Unsupported | the request contains | | 3261 | | collect and | and | | 3262 | | record | elements and | | 3263 | | capability | the MS does support | | 3264 | | | these operations | | 3265 | | | simultaneously | | 3266 | | | | | 3267 | 434 | Reserved for | | | 3268 | | future use | | | 3269 | | | | | 3270 | 435 | Reserved for | | | 3271 | | future use | | | 3272 | | | | | 3273 | 436 | Reserved for | | | 3274 | | future use | | | 3275 | | | | | 3276 | 437 | Reserved for | | | 3277 | | future use | | | 3278 | | | | | 3279 | 438 | Reserved for | | | 3280 | | future use | | | 3281 | | | | | 3282 | 439 | Other | request requires | | 3283 | | unsupported | another capability | | 3284 | | capability | not supported by the | | 3285 | | | MS | | 3286 +------+---------------+-----------------------+--------------------+ 3288 Table 1: status codes 3290 4.6. Type Definitions 3292 This section defines types referenced in attribute and element 3293 definitions. 3295 4.6.1. Boolean 3297 The value space of boolean is the set {true, false}. 3299 4.6.2. DTMFChar 3301 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 3302 7, 8, 9, #, *, A, B, C, D}. 3304 4.6.3. DTMFString 3306 A String composed of one or more DTMFChars. 3308 4.6.4. Non-Negative Integer 3310 The value space of non-negative integer is the infinite set 3311 {0,1,2,...}. 3313 4.6.5. Positive Integer 3315 The value space of positive integer is the infinite set {1,2,...}. 3317 4.6.6. String 3319 A string in the character encoding associated with the XML element. 3321 4.6.7. Time Designation 3323 A time designation consists of a non-negative real number followed by 3324 a time unit identifier. 3326 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 3328 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 3330 4.6.8. Percentage 3332 A percentage consists of a Positive Integer followed by "%". 3334 Examples include: "100%", "500%" and "10%". 3336 4.6.9. URI 3338 Uniform Resource Indicator as defined in [RFC3986]. 3340 4.6.10. MIME Media Type 3342 A string formated as a IANA MIME media type ([MIME.mediatypes]). 3344 4.6.11. Language Identifier 3346 A language identifier labels information content as being of a 3347 particular human language variant. Following the XML specification 3348 for language identification [XML], a legal language identifier is 3349 identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code 3350 where the language code is required and a country code or other 3351 subtag identifier is optional. 3353 4.6.12. DateTime 3355 A string formated according to the XML schema definition of a 3356 dateTime type ([XMLSchema:Part2]). 3358 5. Formal Syntax 3360 This section defines the XML schema for IVR Control Package. 3362 The schema defines datatypes, attributes, dialog management and IVR 3363 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 3364 most elements the order of child elements is significant. The schema 3365 is extensible: elements allow attributes and child elements from 3366 other namespaces. Elements from outside this package's namespace can 3367 occur after elements defined in this package. 3369 The schema is dependent upon the schema (framework.xsd) defined in 3370 Section 17.1 of the Control Framework 3371 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 3372 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 3373 xml:base). 3375 3376 3382 3383 3384 IETF MediaCtrl IVR 1.0 (20081103) 3386 This is the schema of the IETF MediaCtrl IVR control 3387 package. 3389 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 3391 3392 3394 3402 3404 3405 3406 This import brings in the XML attributes for 3407 xml:base, xml:lang, etc 3409 See http://www.w3.org/2001/xml.xsd for latest version 3410 3411 3412 3414 3417 3418 3419 This import brings in the framework attributes for 3420 conferenceid and connectionid. 3421 3422 3423 3425 3433 3434 3435 3436 This type is extended by other component types to 3437 allow elements and attributes from other namespaces 3438 to be added. 3439 3440 3441 3442 3444 3445 3446 3448 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3469 3470 3471 3473 3474 3475 3477 3479 3487 3489 3490 3491 3492 3493 3495 3498 3499 3500 3501 3503 3505 3506 3507 3509 3511 3513 3514 3515 3516 3517 3519 3521 3523 3525 3527 3528 3529 3530 3532 3534 3536 3537 3538 3539 3541 3543 3545 3546 3547 3548 3550 3552 3553 3554 3556 3558 3560 3561 3562 3563 3565 3566 3568 3569 3570 3571 3573 3575 3577 3578 3579 3580 3581 3582 3584 3586 3588 3589 3590 3592 3593 3595 3597 3599 3601 3602 3603 3604 3605 3607 3609 3611 3613 3615 3617 3618 3620 3621 3622 3623 3625 3627 3629 3630 3631 3632 3634 3636 3638 3639 3640 3641 3643 3645 3646 3647 3648 3650 3652 3653 3654 3656 3658 3660 3661 3662 3663 3664 3666 3668 3669 3670 3671 3673 3675 3677 3678 3679 3680 3682 3683 3684 3686 3688 3690 3692 3693 3694 3695 3697 3699 3700 3701 3703 3705 3707 3708 3709 3710 3711 3713 3715 3716 3718 3720 3721 3722 3724 3726 3728 3729 3730 3731 3733 3735 3737 3738 3739 3741 3743 3745 3746 3747 3748 3749 3751 3753 3754 3755 3756 3758 3760 3762 3763 3764 3765 3767 3768 3769 3771 3773 3774 3775 3776 3777 3778 3780 3782 3783 3784 3785 3787 3789 3790 3791 3792 3793 3795 3796 3797 3798 3799 3801 3803 3805 3806 3807 3808 3809 3811 3813 3815 3816 3818 3819 3821 3822 3823 3824 3826 3827 3828 3829 3831 3833 3834 3835 3836 3838 3840 3842 3843 3844 3845 3846 3848 3850 3852 3854 3856 3857 3859 3861 3862 3863 3865 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3878 3879 3880 3882 3883 3884 3886 3888 3890 3891 3892 3893 3895 3896 3898 3900 3902 3904 3905 3906 3908 3910 3912 3913 3914 3915 3917 3919 3920 3921 3922 3923 3924 3926 3928 3930 3931 3932 3933 3935 3937 3939 3941 3942 3943 3945 3947 3949 3950 3951 3952 3953 3954 3955 3956 3957 3959 3960 3961 3963 3965 3967 3969 3970 3971 3972 3973 3974 3975 3976 3978 3979 3980 3981 3983 3985 3987 3988 3989 3990 3992 3993 3994 3996 3998 4000 4002 4004 4006 4008 4010 4012 4014 4016 4018 4019 4020 4022 4024 4026 4027 4028 4029 4030 4032 4034 4035 4037 4039 4041 4043 4045 4047 4049 4050 4051 4053 4055 4056 4057 4058 4059 4061 4062 4063 4064 4066 4067 4069 4071 4073 4074 4075 4076 4077 4079 4081 4082 4084 4086 4088 4090 4092 4094 4096 4098 4099 4100 4102 4104 4111 4113 4114 4115 4116 4118 4120 4122 4123 4124 4126 4128 4130 4131 4132 4133 4134 4136 4138 4140 4141 4143 4144 4145 4146 4148 4150 4152 4153 4154 4155 4156 4158 4160 4162 4163 4164 4165 4167 4169 4171 4172 4173 4175 4177 4179 4180 4181 4182 4183 4185 4187 4188 4189 4190 4192 4194 4196 4197 4198 4199 4200 4202 4204 4206 4208 4210 4212 4214 4216 4218 4219 4220 4221 4223 4225 4227 4229 4231 4232 4233 4234 4235 4237 4239 4240 4241 4242 4244 4245 4247 4248 4249 4250 4251 4253 4255 4256 4257 4258 4260 4262 4264 4265 4266 4267 4268 4270 4272 4273 4274 4275 4277 4279 4281 4282 4283 4284 4285 4287 4289 4290 4292 4293 4295 4297 4299 4300 4301 4302 4303 4305 4307 4308 4309 4310 4312 4314 4315 4316 4317 4318 4320 4322 4323 4324 4325 4326 4327 4329 4331 4332 4333 4335 4336 4337 4338 4339 4341 4343 4346 4348 4351 4353 4354 4355 4356 4357 4359 4361 4362 4363 4364 4366 4368 4370 4371 4372 4373 4374 4376 4378 4379 4381 4383 4385 4386 4387 4389 4391 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 Time designation following Time in CSS2 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 DTMF character [0-9#*A-D] 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 DTMF sequence [0-9#*A-D] 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 whole integer followed by '%' 4483 4484 4485 4486 4487 4488 4490 4491 4492 4493 4494 4495 4496 4498 4499 4500 4501 4502 4503 4504 4505 4507 4508 4509 4510 4511 4512 4513 4514 4515 4517 4518 4519 4520 4521 4522 4523 4525 4526 6. Examples 4528 This section provides examples of the IVR Control package. 4530 6.1. AS-MS Dialog Interaction Examples 4532 The following example assume a control channel has been established 4533 and synced as described in the Media Control Channel Framework 4534 ([I-D.ietf-mediactrl-sip-control-framework]). 4536 The XML messages are in angled brackets (with the root 4537 omitted); the REPORT status is in round brackets. Other aspects of 4538 the protocol are omitted for readability. 4540 6.1.1. Starting an IVR dialog 4542 An IVR dialog is started successfully, and dialogexit notification 4543 is sent from the MS to the AS when the dialog exits normally. 4545 Application Server (AS) Media Server (MS) 4546 | | 4547 | (1) CONTROL: | 4548 | ----------------------------------------> | 4549 | | 4550 | (2) 202 | 4551 | <--------------------------------------- | 4552 | | 4553 | | 4554 | (3) REPORT: | 4555 | (terminate) | 4556 | <---------------------------------------- | 4557 | | 4558 | (4) 200 | 4559 | ----------------------------------------> | 4560 | | 4561 | (5) CONTROL: | 4562 | | 4563 | <---------------------------------------- | 4564 | | 4565 | (6) 200 | 4566 | ----------------------------------------> | 4567 | | 4569 6.1.2. IVR dialog fails to start 4571 An IVR dialog fails to start due to an unknown dialog language. The 4572 is reported in a framework 200 message. 4574 Application Server (AS) Media Server (MS) 4575 | | 4576 | (1) CONTROL: | 4577 | ----------------------------------------> | 4578 | | 4579 | (2) 200: | 4580 | <---------------------------------------- | 4581 | | 4583 6.1.3. Preparing and starting an IVR dialog 4585 An IVR dialog is prepared and started successfully, and then the 4586 dialog exits normally. 4588 Application Server (AS) Media Server (MS) 4589 | | 4590 | (1) CONTROL: | 4591 | ----------------------------------------> | 4592 | | 4593 | (2) 202 | 4594 | <--------------------------------------- | 4595 | | 4596 | (3) REPORT: | 4597 | (terminate) | 4598 | <---------------------------------------- | 4599 | | 4600 | (4) 200 | 4601 | ----------------------------------------> | 4602 | | 4603 | (5) CONTROL: | 4604 | ----------------------------------------> | 4605 | | 4606 | (6) 202 | 4607 | <--------------------------------------- | 4608 | | 4609 | (7) REPORT: | 4610 | (terminate) | 4611 | <---------------------------------------- | 4612 | | 4613 | (8) 200 | 4614 | ----------------------------------------> | 4615 | | 4616 | (9) CONTROL: | 4617 | <---------------------------------------- | 4618 | | 4619 | (10) 200 | 4620 | ----------------------------------------> | 4621 | | 4623 6.1.4. Terminating a dialog 4625 An IVR dialog is started successfully, and then terminated by the AS. 4626 The dialogexit event is sent by to the AS when the dialog exits. 4628 Application Server (AS) Media Server (MS) 4629 | | 4630 | (1) CONTROL: | 4631 | ----------------------------------------> | 4632 | | 4633 | (2) 202 | 4634 | <--------------------------------------- | 4635 | | 4636 | (3) REPORT: | 4637 | (terminate) | 4638 | <---------------------------------------- | 4639 | | 4640 | (4) 200 | 4641 | ----------------------------------------> | 4642 | | 4643 | (5) CONTROL: | 4644 | ----------------------------------------> | 4645 | | 4646 | (6) 200: | 4647 | <---------------------------------------- | 4648 | | 4649 | (7) CONTROL: | 4650 | <---------------------------------------- | 4651 | | 4652 | (8) 200 | 4653 | ----------------------------------------> | 4654 | | 4656 Note that in (6) the payload to the 4657 request is carried on a framework 200 response since it could 4658 complete the requested operation before the transaction timeout. 4660 6.2. IVR Dialog Examples 4662 The following examples show how is used with 4663 , and elements to play prompts, 4664 set runtime controls, collect DTMF input and record user input. 4666 The examples do not specify all messages between the AS and MS. 4668 6.2.1. Playing announcements 4670 This example prepares an announcement composed of two prompts where 4671 the dialog repeatCount set to 2. 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4684 If the dialog is prepared successfully, a is returned with 4685 status 200 and a dialog identifier assigned by the MS: 4687 4688 4689 4691 The prepared dialog is then started on a conference playing the 4692 prompts twice: 4694 4695 4696 4698 In the case of a successful dialog, the output is provided in 4699 ; for example 4701 4702 4703 4704 4705 4706 4707 4709 6.2.2. Prompt and collect 4711 In this example, a prompt is played and then the MS waits for 30s for 4712 a two digit sequence: 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4725 If no user input is collected within 30s, then following notification 4726 event would be returned: 4728 4729 4730 4731 4732 4733 4734 4736 The collect operation can be specified without a prompt. Here the MS 4737 just waits for DTMF input from the user: 4739 4740 4741 4742 4743 4744 4745 4747 If the dialog is successful, then dialogexit contains the 4748 dtmf collected in its result parameter: 4750 4751 4752 4753 4754 4755 4756 /mscivr> 4758 And finally in this example, one of the input parameters is invalid: 4760 4761 4762 4763 4764 4765 4766 4769 4770 4771 4773 The error is reported in the response: 4775 4776 4778 4780 6.2.3. Prompt and record 4782 In this example, the user is prompted, then their input is recorded 4783 for a maximum of 30 seconds. 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4796 If successful and the recording is terminated by DTMF, the following 4797 is returned in a dialogexit : 4799 4800 4801 4802 4803 4805 4806 4807 4808 4810 6.2.4. Runtime controls 4812 In this example, a prompt is played with collect and runtime controls 4813 are activated. 4815 4816 4817 4818 4819 4820 4821 4823 4824 4825 4826 4828 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 4829 execute runtime controls on the prompt queue. The keys do not cause 4830 bargein to occur. If the user presses any other key, then the prompt 4831 is interrupted and DTMF collect begins. Note that runtime controls 4832 are not active during the collect operation. 4834 When the dialog is completed successfully, then both control and 4835 collect information is reported. 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4851 6.2.5. Subscriptions and notifications 4853 In this example, a looped dialog is started with subscription for 4854 notifications each time the user input matches the collect grammar: 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4867 Each time the user input the DTMF matching the grammar, the following 4868 notification event would be sent: 4870 4871 4872 4874 4875 4877 If no user input was provided, or the input did not match the 4878 grammar, the dialog would continue to loop until terminated (or an 4879 error occurred). 4881 6.3. Other Dialog Languages 4883 The following example requests that a VoiceXML dialog is started: 4885 4886 4889 4890 nfs://nas01/media1.3gp" 4891 nfs://nas01/media2.3gp" 4892 4893 4894 4896 If the MS does not support this dialog language, then the response 4897 would have the status code 409 (Section 4.5). However, if it does 4898 support the VoiceXML dialog language, it would respond with a 200 4899 status, activate the VoiceXML dialog and make the available 4900 in the VoiceXML script through the "connection.ccxml.values" object. 4902 When the VoiceXML dialog exits, exit namelist parameters are 4903 specified using in the dialogexit event: 4905 4906 4907 4908 4909 peter 4910 1234 4911 4912 4913 4914 4916 6.4. Foreign Namespace Attributes and Elements 4918 An MS may support attributes and elements from foreign namespaces 4919 within the element. For example, it may support a 4920 element (in a foreign namespace) for speech recognition by analogy to 4921 how support DTMF collection. 4923 In the following example, a prompt and collect request is extended 4924 with a element: 4926 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4941 In the root element, the xmlns:ex attribute declares that 4942 "ex" is associated with the foreign namespace URI 4943 "http://www.example.com/mediactrl/extensions/1". The , 4944 its attributes and child elements are associated with this namespace. 4945 This could be defined so that it activates an SRGS grammar 4946 and listens for user input matching the grammar in a similar manner 4947 to DTMF collection. 4949 If an MS receives this request but does not support the 4950 element, then it would send a 431 response: 4952 4953 4955 4957 If the MS does support this foreign element, it would send a 200 4958 response and start the dialog with speech recognition. When the 4959 dialog exits, it may provide information about the execution 4960 within , again using elements in a foreign namespace such 4961 as below: 4963 4965 4966 4967 4968 4969 4970 4972 Note that in reply the AS must send a Control Framework 200 response 4973 even though the notification event contains an element in a foreign 4974 namespace which it may not understand. 4976 7. Security Considerations 4978 As this control package processes XML markup, implementations MUST 4979 address the security considerations of [RFC3023]. 4981 As a Control Package of the Media Control Channel Framework, 4982 security, confidentiality and integrity of messages transported over 4983 the control channel MUST be addressed as described in Section 11 of 4984 the Media Control channel Framework 4985 ([I-D.ietf-mediactrl-sip-control-framework]), including Session 4986 Establishment, Transport Level Protection and Control Channel Policy 4987 Management. 4989 The Media Control Channel Framework permits additional policy 4990 management, including resource access and control channel usage, to 4991 be specified at the control package level beyond that specified for 4992 the Media Control Channel Framework (see Section 11.3 of 4993 [I-D.ietf-mediactrl-sip-control-framework]). 4995 Since creation of IVR dialogs is associated with media processing 4996 resources (e.g. DTMF detectors, media playback and recording, etc) 4997 on the MS, policy management for this control package MUST address 4998 how such dialogs are managed across multiple control channels. This 4999 includes which channels are used to deliver dialog event 5000 notifications, and whether channels are permitted to originate 5001 requests managing a dialog which was not created through that channel 5002 (e.g. a dialog has been prepared or started via channel X and a 5003 request to terminate the dialog originates from channel Y). 5005 8. IANA Considerations 5007 This specification instructs IANA to register a new Media Control 5008 Channel Framework Package, a new XML namespace and a new MIME type. 5010 8.1. Control Package Registration 5012 Control Package name: msc-ivr/1.0 5014 8.2. URN Sub-Namespace Registration 5016 XML namespace: urn:ietf:params:xml:ns:msc-ivr 5018 8.3. Mime Type Registration 5020 MIME type: application/msc-ivr+xml 5022 9. Change Summary 5024 Note to RFC Editor: Please remove this whole section. 5026 The following are the major changes between the -02 and -01 versions. 5028 o corrected typos. 5030 o Section 3: Aligned Control Package definitions with requirements 5031 in Section 8 of the Control Framework. 5033 o Section 4.2.2.2: Added child element to 5034 element (alignment with mixer package). 5036 o Following October Interim meeting discussion on response codes, 5037 generally clarified usage of error status codes, modified some 5038 codes and re-organized the response codes section (Section 4.5) 5039 with more guidance and details. 5041 o Section 4.3.1.5: Following October Interim meeting request for 5042 parallel playback and record, created a generalized version of 5043 used for both playback and record. The 'src' attribute is 5044 renamed to 'loc'. Updated and definitions as 5045 described below. 5047 o Sections 4.3.1.1/4.3.1.1.4: : Added child element to 5048 allow parallel playback of separate media resources. The 5049 element has a child element to allow a sequence of media 5050 resources to be played at the same time as other resources are 5051 played in parallel. 5053 o Sections 4.3.1.4/4.3.1.4.1: : Removed 'dest' and 'type' 5054 attributes. Added child elements to support parallel 5055 recording to separate media resource locations. 5057 o Sections 4.3.2.4/4.3.2.4.1: : Removed 'dest', 'type' 5058 and 'size' attribute. Added child elements with 5059 'loc', 'type' and 'size' attributes. 5061 o Section 4.4.2.2.4: Renamed to to 5062 clarify distinction with . 5064 o Sections 4.3.1.4: : Clarified RFC2119 language around 5065 vadinitial and vadfinal behavior. 5067 o Updated schema. Removed some element-specific syntactic 5068 constraint statements which are already covered in the schema. 5070 o 4.3.1: occurrence of without a no longer 5071 treated as a syntax error - instead runtime controls are simply 5072 ignored. 5074 o 5076 The following are the major changes between the -01 and -00 versions. 5078 o 7: Updated security section referencing control framework security 5079 and adding policy requirement to address dialog resource 5080 management over multiple channels. 5082 o corrected typos and example errors 5084 o 4.2: [IVR-200] Added state machine for dialog lifecycle. 5086 o 4.2: clarified dialog identifier assignment and use, including MS 5087 assignment of dialogid in and . 5089 o 4.2/4.2.3: clarified behavior when dialog is not 5090 in a STARTED state. 5092 o 1/4.2: Clarified concept of dialog language and replaced 5093 references to 'dialog types' with dialog languages. Replaced 5094 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that 5095 IVR is inline and other supported dialog languages are 5096 specified by reference. Removed default type values for 5097 and . 5099 o 4.4.2.2.1: clarified that the inline dialog language () 5100 must not be listed as an additional supported dialog language. 5102 o 4.2.2.2: [IVR-201] Added element to so that 5103 dialog video output can be directed to a specific region a 5104 conference video layout. 5106 o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format 5107 for digits. 5109 o 4.4.2.1.1:[IVR-203]: added to to allow additional 5110 codec information to be specified. 5112 o 4.5: added error status code for unsupported URI (415), invalid 5113 region identifier (416), fetchtimeout exceeded (417), syntactic 5114 constraint violation (418), unsupported media format (419), 5115 unsupported grammar format (420), unsupported variable 5116 announcement (421), unsupported DTMF tone generation (422), 5117 conflict with control key values (423), unsupported recording 5118 format (424). 5120 o Generally, replaced 'it is an error ...' language with RFC2119 5121 language, making error codes more explicit. 5123 o 4.3.1: Clarified that an MS MAY support and 5124 elements co-occurring in a element, but the MS MUST send 5125 an error response if they are not supported. Clarified that MS 5126 MUST send an error response if is specified without a 5127 element. 5129 o 4.2.5.2: clarified that the timestamp in is that of 5130 the last DTMF in a matching input sequence. 5132 o References: more references now normative. 5134 o 4.3: Replaced passive voice language with active voice language in 5135 the description of execution models. 5137 o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is 5138 completely unrelated to the term 'SIP dialog'. 5140 o 4: Added clarification that elements with URI attributes are 5141 recommended to support one or more communication protocols 5142 suitable for fetching resources. 5144 o 4.3.1.4: clarified MS MAY support upload of recording 5145 data during recording, and that upload errors (e.g. authentication 5146 failures, communication errors, etc) are execution errors. Added 5147 'append' attribute to control behavior when a recorded resource 5148 already exists at the recording location. 5150 o 4.2.2: Clarified that an error is reported if with 5151 contains parameters which the MS cannot process for the 5152 given dialog language. 5154 o 4.2.6.1: removed 'valuetype' attribute and clarified that 5155 the type attribute indicates the MIME media type associated with 5156 the inline value. 5158 o 4.3.1.4: Added append attribute to to control whether 5159 recordings are appended or not to the recording location resource. 5161 o 4.3.1.1.1: Added clipEnd attribute to to control when 5162 playback of the media ends. 5164 o 4.3.1: Clarified that when there are multiple iterations of a 5165 dialog (using repeatCount attribute) only the results of the last 5166 dialog iteration are reported. 5168 o 4.4.2.2: Added ability to audit capability, as well as 5169 maximum duration of prepared dialogs and of recordings. 5171 o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in 5172 and how reports its status. 5174 o 4: Changed handling of unsupported foreign namespace elements and 5175 attributes. The MS send a 426 error response if it encounters 5176 foreign elements and attributes it does not support. 5178 The following are the major changes between the -00 of this work 5179 group item draft and the individual submission -05 version. 5181 o [IVR01] When the MS sends a notification event in a CONTROL, the 5182 AS sends mandatory 200 response (no extended transaction). 5184 o [IVR23] Added a top-level container element, , with 5185 version attribute. 5187 o Removed term 'basic' in title, description, elements and IANA 5188 registration. Control package name is now 'msc-ivr/1.0'. 5189 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 5190 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 5191 'dialog' and moved version attribute to mscivr element. 5193 o [IVR15] Updated and simplified XML schema. Ordering of child 5194 elements is significant. 5196 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 5197 'soundLevel' and 'clipBegin' to media element. 5199 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 5200 Added 'repeatCount' and 'repeatDur' to dialog element. 5202 o Moved VCR commands from into separate element. 5203 Defined controlinfo element to report runtime control match 5204 information. 5206 o [IVR05] Added to where AS can subscribe 5207 to DTMF key presses (all, control match only, collect match only). 5208 Extended to support associated notification. 5210 o Moved definition of into a separate section. 5212 o [IVR21] Added audit capability: auditing of package capabilities 5213 and managed dialogs 5215 o [IVR21] Explicitly stated that an error must be reported if the 5216 connection or conference referenced in a is not 5217 available at the time the request is processed on the MS. 5219 o Clarified that the rendering mechanism is MS 5220 implementation specific. 5222 o [IVR09]/[IVR10] Clarified attribute definitions and 5223 added 'gender' attribute. 5225 o [IVR16] Clarified that info must be reported in dialogexit, if the 5226 corresponding element is specified in a . For example, if 5227 is specified, then must be specified if the 5228 dialog terminates normally. 5230 o [IVR18] Added 'inactive' value for direction attribute of 5231 . 5233 o [IVR19] Clarified case of on connection/conference 5234 with multiple streams of the same type: recommended to be set 5235 explicitly with s. 5237 o [IVR02] Clarified that multiple dialogs may started simultaneously 5238 on the same connection or conference. 5240 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 5241 in the PREPARED state. 5243 o Added in and for input/output 5244 in other dialog types 5246 o [IVR22] Added fetchtimeout parameter to dialogprepare, 5247 dialogstart, media and grammar elements. 5249 o [IVR04] Added dialogexit status to indicate the connection or 5250 conference has been terminated. Added others status errors. 5252 o [IVR08] Clarified that the operation does not interrupt 5253 playing prompts and that matched DTMF is not available to 5254 or operations during prompt playback. 5256 o [IVR11] Added runtime controls for speed, goto start/end and 5257 external controls. 5259 o Clarified that recordings can be uploaded to dest during or after 5260 the recording operation. 5262 o /: clarified timer handling - timeout refers to 5263 waiting time for collect/record to begin. 5265 o Clarified behavior of immediate attribute on . 5267 o clarified dialogid lifecycle: dialogids can be re-cycled. 5269 o Clarified error handling. 5271 o Editorial tidy up of sections. 5273 o dialogid attribute on is now mandatory. 5275 o Clarified that the duration specified in finalsilence attribute of 5276 is not part of the final recording. 5278 o Clarified that the SRGS XML grammar format is mandatory 5280 The following are the major changes between the -06 of the draft and 5281 the -05 version. 5283 o Event notifications are sent in CONTROL messages with the MS 5284 acting as Control Framework Client. Compared with the previous 5285 approach, this means that a transaction is now 5286 complete when the MS sends a . A new transaction is 5287 initiated by the MS each time the MS sends a notification 5288 to the AS. 5290 o Changed conf-id to conferenceid and connection-id to connectionid. 5292 o Clarification of the state model for dialogs 5294 o : modified definition of src attribute to allow 5295 reference to external dialog documents; added (MIME) type 5296 attribute; removed child element. 5298 o : modified definition of src attribute to allow 5299 reference to external dialog documents; added (MIME) type 5300 attribute; removed child element; 5302 o : modified so that a dialogexit event is always 5303 sent for active dialogs (i.e. the dialogexit event is a 5304 terminating notification) 5306 o notification simplified and make more extensible. Manual 5307 notifications (via element) are removed from the basic 5308 package. A event is defined as child and it 5309 can be extended with additional child elements 5311 o element is removed. 5313 o element removed. 5315 o Replaced dialog templates with a general element. It has 5316 child elements for playing media resource (), collecting 5317 DTMF () and recording (). The functionality is 5318 largely unchanged. 5320 o and are extended with child 5321 element. 5323 o is extended with a element which contains 5324 status and reported information (replacement for output parameters 5325 in template dialogs) 5327 o Prompts: now structured as a element with , 5328 and children. The element has xml:base 5329 attribute, bargein, iterations, duration, volume and offset 5330 attributes. The speed attribute is removed. A element 5331 has src and type attributes. The maxage and maxstale attributes 5332 are removed. 5334 o DTMF input: parameters now specified as attributes of a 5335 element. Custom grammar specified with a element as 5336 child of element. Added 'escapekey' to allow the dialog 5337 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 5338 to allow the prompts to paused/resumed. Added 'volumeinterval', 5339 'volupkey' and voldnkey' to add prompt volume to be increased/ 5340 decreased. Moved 'bargein' attribute to prompt. 5342 o Recording: parameters now specified as attributes of 5343 element. Added 'dest' and 'beep' attributes. 5345 The following are the major changes between the -05 of the draft and 5346 the -04 version. 5348 o Mainly an alignment/evaluation exercise with requirements produced 5349 by MEDIACTRL IVR design team. 5351 o playannouncement parameters from Table 7 of '04' version are now 5352 reflected in text - schema to be updated. 5354 o Added VCR commands based on MSCML. 5356 The following are the major changes between the -04 of the draft and 5357 the -03 version. 5359 o None. 5361 The following are the major changes between the -03 of the draft and 5362 the -02 version. 5364 o added "basicivr:" protocol to template dialog types which must be 5365 supported as values of the "src" attribute in and 5366 . Note alternative: "/basicivr/playannouncement" 5367 offered in [RFC4240]. 5369 o added "basicivr:" URI schema to IANA considerations 5371 o Added mimetype, vadinitial and vadfinal parameters to 5372 'promptandrecord' dialog type 5374 o updated references 5376 The following are the major changes between the -02 of the draft and 5377 the -01 version. 5379 o added version 1.0 to package name 5381 o separate section for element definitions 5383 o dialogterminate treated as request rather than notification 5385 o simplified responses: single element 5387 o removed response elements: , , 5388 , 5390 o simplified event notifications to single element carried 5391 in a REPORT 5393 o element replaced with 5395 o removed element 5397 o added element as child of 5399 o removed 'type' attribute from and 5401 o added dialogid attribute to and 5403 o removed template "Sample Implementation" section 5405 o renamed to 5406 o re-organized so that template details after general package 5407 framework and element description. 5409 The following are the primary changes between the -01 of the draft 5410 and the -00 version. 5412 o Removed requirement for VoiceXML dialog support 5414 o Added requirement for template dialog support 5416 10. Contributors 5418 Asher Shiratzky from Radvision provided valuable support and 5419 contributions to the early versions of this document. 5421 The authors would like to thank the IVR design team consisting of 5422 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary 5423 Barnes and Steve Buko who provided valuable feedback, input and text 5424 to this document. 5426 11. Acknowledgments 5428 The authors would like to thank Adnan Saleem of Radisys, Gene 5429 Shtirmer of Intel, Dave Burke of Google, Dan York of Voxeo and Steve 5430 Buko of Dialogic for expert reviews of this work. 5432 12. References 5434 12.1. Normative References 5436 [I-D.ietf-mediactrl-sip-control-framework] 5437 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 5438 Control Channel Framework", 5439 draft-ietf-mediactrl-sip-control-framework-06 (work in 5440 progress), October 2008. 5442 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 5443 Requirement Levels", BCP 14, RFC 2119, March 1997. 5445 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 5446 Types", RFC 3023, January 2001. 5448 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 5449 Resource Identifier (URI): Generic Syntax", STD 66, 5450 RFC 3986, January 2005. 5452 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 5453 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 5455 [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying 5456 Languages", BCP 47, RFC 4646, September 2006. 5458 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 5459 BCP 47, RFC 4647, September 2006. 5461 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 5462 Specification Version 1.0", W3C Recommendation, 5463 March 2004. 5465 [W3C.REC-SMIL2-20051213] 5466 Grassel, G., Jansen, J., Zucker, D., Bulterman, D., 5467 Layaida, N., Michel, T., Mullender, S., and A. Koivisto, 5468 "Synchronized Multimedia Integration Language (SMIL 2.1)", 5469 World Wide Web Consortium Recommendation REC-SMIL2- 5470 20051213, December 2005, 5471 . 5473 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 5474 and F. Yergeau, "Extensible Markup Language (XML) 1.0 5475 (Third Edition)", W3C Recommendation, February 2004. 5477 [XMLSchema:Part2] 5478 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 5479 Second Edition", W3C Recommendation, October 2004. 5481 12.2. Informative References 5483 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 5484 1.0", W3C Working Draft (work in progress), January 2007. 5486 [H.248.9] "Gateway control protocol: Advanced media server 5487 packages", ITU-T Recommendation H.248.9. 5489 [I-D.ietf-xcon-common-data-model] 5490 Novo, O., Camarillo, G., Morgan, D., Even, R., and J. 5491 Urpalainen, "Conference Information Data Model for 5492 Centralized Conferencing (XCON)", 5493 draft-ietf-xcon-common-data-model-12 (work in progress), 5494 October 2008. 5496 [IANA] "IANA registry for RTP Payload Types", 5497 . 5499 [MIME.mediatypes] 5500 "IANA registry for MIME Media Types", 5501 . 5503 [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session 5504 Markup Language (MSML)", draft-saleem-msml-07 (work in 5505 progress), August 2008. 5507 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 5508 Package", RFC 2897, August 2000. 5510 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 5511 A., Peterson, J., Sparks, R., Handley, M., and E. 5512 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 5513 June 2002. 5515 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 5516 Media Services with SIP", RFC 4240, December 2005. 5518 [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media 5519 Types: application/voicexml+xml, application/ssml+xml, 5520 application/srgs, application/srgs+xml, application/ 5521 ccxml+xml, and application/pls+xml", RFC 4267, 5522 November 2005. 5524 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 5525 Parameter for "Bucket" Media Types", RFC 4281, 5526 November 2005. 5528 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 5529 (SIP) Event Package for Key Press Stimulus (KPML)", 5530 RFC 4730, November 2006. 5532 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 5533 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 5534 December 2006. 5536 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 5537 Formats", RFC 4855, February 2007. 5539 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 5540 Control Markup Language (MSCML) and Protocol", RFC 5022, 5541 September 2007. 5543 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 5544 Requirements", RFC 5167, March 2008. 5546 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 5547 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 5548 and S. Tryphonas, "Voice Extensible Markup Language 5549 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 5551 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 5552 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 5553 A., Porter, B., and K. Rehor, "Voice Extensible Markup 5554 Language (VoiceXML) Version 2.1", W3C Recommendation, 5555 June 2007. 5557 Authors' Addresses 5559 Scott McGlashan 5560 Hewlett-Packard 5561 Gustav III:s boulevard 36 5562 SE-16985 Stockholm, Sweden 5564 Email: scott.mcglashan@hp.com 5566 Tim Melanchuk 5567 Rain Willow Communications 5569 Email: tim.melanchuk@gmail.com 5571 Chris Boulton 5572 Avaya 5573 Building 3 5574 Wern Fawr Lane 5575 St Mellons 5576 Cardiff, South Wales CF3 5EA 5578 Email: cboulton@avaya.com 5580 Full Copyright Statement 5582 Copyright (C) The IETF Trust (2008). 5584 This document is subject to the rights, licenses and restrictions 5585 contained in BCP 78, and except as set forth therein, the authors 5586 retain all their rights. 5588 This document and the information contained herein are provided on an 5589 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 5590 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 5591 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 5592 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 5593 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 5594 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 5596 Intellectual Property 5598 The IETF takes no position regarding the validity or scope of any 5599 Intellectual Property Rights or other rights that might be claimed to 5600 pertain to the implementation or use of the technology described in 5601 this document or the extent to which any license under such rights 5602 might or might not be available; nor does it represent that it has 5603 made any independent effort to identify any such rights. Information 5604 on the procedures with respect to rights in RFC documents can be 5605 found in BCP 78 and BCP 79. 5607 Copies of IPR disclosures made to the IETF Secretariat and any 5608 assurances of licenses to be made available, or the result of an 5609 attempt made to obtain a general license or permission for the use of 5610 such proprietary rights by implementers or users of this 5611 specification can be obtained from the IETF on-line IPR repository at 5612 http://www.ietf.org/ipr. 5614 The IETF invites any interested party to bring to its attention any 5615 copyrights, patents or patent applications, or other proprietary 5616 rights that may cover technology that may be required to implement 5617 this standard. Please address the information to the IETF at 5618 ietf-ipr@ietf.org.