idnits 2.17.00 (12 Aug 2021) /tmp/idnits32117/draft-ietf-mediactrl-ivr-control-package-00.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 4379. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 4390. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 4397. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 4403. 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 : ---------------------------------------------------------------------------- No issues found here. 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 (June 10, 2008) is 5092 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 3520, but not defined == Missing Reference: 'IVR01' is mentioned on line 3980, but not defined == Missing Reference: 'IVR23' is mentioned on line 3983, but not defined == Missing Reference: 'IVR15' is mentioned on line 3992, but not defined == Missing Reference: 'IVR06' is mentioned on line 3995, but not defined == Missing Reference: 'IVR05' is mentioned on line 4005, but not defined == Missing Reference: 'IVR21' is mentioned on line 4014, but not defined == Missing Reference: 'IVR16' is mentioned on line 4024, but not defined == Missing Reference: 'IVR18' is mentioned on line 4029, but not defined == Missing Reference: 'IVR19' is mentioned on line 4032, but not defined == Missing Reference: 'IVR02' is mentioned on line 4036, but not defined == Missing Reference: 'IVR20' is mentioned on line 4039, but not defined == Missing Reference: 'IVR22' is mentioned on line 4045, but not defined == Missing Reference: 'IVR04' is mentioned on line 4048, but not defined == Missing Reference: 'IVR08' is mentioned on line 4051, but not defined == Missing Reference: 'IVR11' is mentioned on line 4055, but not defined == Outdated reference: draft-ietf-mediactrl-sip-control-framework has been published as RFC 6230 == 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 3023 (Obsoleted by RFC 7303) -- Obsolete informational reference (is this intentional?): RFC 4281 (Obsoleted by RFC 6381) -- Obsolete informational reference (is this intentional?): RFC 4646 (Obsoleted by RFC 5646) Summary: 1 error (**), 0 flaws (~~), 21 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: December 12, 2008 Rain Willow Communications 6 C. Boulton 7 Avaya 8 June 10, 2008 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-00 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 December 12, 2008. 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 elements for preparing, starting and terminating dialog interactions, 45 as well as associated responses and notifications. While other 46 dialog types can be used, this package defines a specific IVR dialog 47 type supporting prompt playback, runtime controls, DTMF collect and 48 media recording. The package also defines elements for auditing 49 package capabilities and dialogs. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 54 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 7 55 3. Control Package Definition . . . . . . . . . . . . . . . . . 8 56 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 8 57 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 8 58 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 9 59 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 9 60 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 9 61 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 10 62 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 11 63 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 11 64 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 13 65 4.2.1. . . . . . . . . . . . . . . . . . . . 14 66 4.2.2. . . . . . . . . . . . . . . . . . . . . 16 67 4.2.2.1. . . . . . . . . . . . . . . . . . . . 19 68 4.2.2.1.1. . . . . . . . . . . . . . . . . . . 19 69 4.2.2.2. . . . . . . . . . . . . . . . . . . . . 20 70 4.2.3. . . . . . . . . . . . . . . . . . . 21 71 4.2.4. . . . . . . . . . . . . . . . . . . . . . 22 72 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 23 73 4.2.5.1. . . . . . . . . . . . . . . . . . . 24 74 4.2.5.2. . . . . . . . . . . . . . . . . . . 25 75 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 26 76 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 26 77 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 27 78 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 28 79 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 30 80 4.3.1.1.1. . . . . . . . . . . . . . . . . . . . 31 81 4.3.1.1.2. . . . . . . . . . . . . . . . . . 32 82 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . 34 83 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 35 84 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 37 85 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 39 87 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 41 88 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 44 89 4.3.2.1. . . . . . . . . . . . . . . . . . . 44 90 4.3.2.2. . . . . . . . . . . . . . . . . . . 44 91 4.3.2.2.1. . . . . . . . . . . . . . . . 45 92 4.3.2.3. . . . . . . . . . . . . . . . . . . 45 93 4.3.2.4. . . . . . . . . . . . . . . . . . . 45 94 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 46 95 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 46 96 4.4.2. . . . . . . . . . . . . . . . . . . . 48 97 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 49 98 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 50 99 4.4.2.2. . . . . . . . . . . . . . . . . . 50 100 4.4.2.2.1. . . . . . . . . . . . . . . . . 52 101 4.4.2.2.2. . . . . . . . . . . . . . . . 52 102 4.4.2.2.3. . . . . . . . . . . . . . . . . 52 103 4.4.2.2.4. . . . . . . . . . . . . . . . . 52 104 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 53 105 4.4.2.3.1. . . . . . . . . . . . . . . . . 53 106 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 54 107 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 55 108 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 58 109 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 81 110 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 81 111 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 81 112 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 82 113 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 82 114 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 83 115 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 84 116 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 84 117 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 85 118 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 87 119 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 88 120 6.2.5. Subscriptions and notifications . . . . . . . . . . . 88 121 6.3. Other Dialog types . . . . . . . . . . . . . . . . . . . 89 122 7. Security Considerations . . . . . . . . . . . . . . . . . . . 91 123 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 92 124 8.1. Control Package Registration . . . . . . . . . . . . . . 92 125 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 92 126 8.3. Mime Type Registration . . . . . . . . . . . . . . . . . 92 127 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 93 128 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 99 129 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 100 130 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 101 131 12.1. Normative References . . . . . . . . . . . . . . . . . . 101 132 12.2. Informative References . . . . . . . . . . . . . . . . . 101 133 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 104 134 Intellectual Property and Copyright Statements . . . . . . . . . 105 136 1. Introduction 138 The Media Control Channel Framework 139 ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic 140 approach for establishment and reporting capabilities of remotely 141 initiated commands. The Control Framework utilizes many functions 142 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 143 rendezvous and establishment of a reliable channel for control 144 interactions. The Control Framework also introduces the concept of a 145 Control Package. A Control Package is an explicit usage of the 146 Control Framework for a particular interaction set. This document 147 defines a Control Package for Interactive Voice Response (IVR) 148 dialogs on media connections and conferences. The term 'IVR' is used 149 in its inclusive sense, allowing media other than voice for dialog 150 interaction. 152 The package defines dialog management elements for preparing, 153 starting and terminating dialog interactions, as well as associated 154 responses and notifications. While other dialog types can be used, 155 this package defines a specific IVR dialog type supporting prompt 156 playback, runtime controls, DTMF collect and media recording. The 157 package also defines elements for auditing package capabilities and 158 dialogs. 160 This package has been designed to satisfy the IETF MediaCtrl 161 requirements ([RFC5167]) by building upon two major approaches to IVR 162 dialog design. These approaches address a wide range of IVR use 163 cases and are used in many applications which are extensively 164 deployed today. 166 First, the package is designed to provide the major IVR functionality 167 of SIP Media Server languages such as netann ([RFC4240]), MSCML 168 ([RFC5022]) and MSML ([MSML]) which themselves build upon more 169 traditional non-SIP languages ([H.248.9], [RFC2897]). A key 170 differentiator is that this package provides IVR functionality using 171 the Media Control Channel Framework. 173 Second, its design is aligned with key concepts of web model as 174 defined in W3C Voice Browser languages. The key dialog management 175 mechanism is closely aligned with CCXML ([CCXML10]). The dialog 176 functionality defined in this package can be largely seen as a subset 177 of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, 178 DTMF collection and media recording features are incorporated, but 179 not any advanced VoiceXML constructs (such as
, its 180 interpretation algorithm, or a dynamic data model). As W3C develops 181 VoiceXML 3.0, we expect to see further alignment, especially in 182 providing a set of basic independent primitive elements (such as 183 prompt, collect, record and runtime controls) which can be re-used in 184 different dialog languages. 186 By reusing and building upon design patterns from these approaches to 187 IVR languages, this package is intended to provide a foundation which 188 is familiar to current IVR developers and sufficient for most IVR 189 applications, as well as a path to other languages which address more 190 advanced applications. 192 This package defines an IVR dialog type. The scope of this dialog 193 type is the following IVR functionality: 195 o playing one or more media resources as a prompt to the user 197 o runtime controls (including VCR controls like speed and volume) 199 o collecting DTMF input from the user according to a grammar 201 o recording user media input 203 Out of scope for this dialog type are more advanced functions 204 including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), 205 VoiceXML, fax and media transformation. Such functionality may be 206 addressed by other dialog types used with this package, extension to 207 this package or other packages. 209 The functionality of this package is defined by messages, containing 210 XML [XML] elements, transported using the Media Control Channel 211 Framework. The XML elements can be divided into three types: dialog 212 management elements; a dialog element which defines the specific IVR 213 operations carried within dialog management elements; and finally, 214 elements for auditing package capabilities as well as dialogs managed 215 by the package. 217 Dialog management elements are designed to manage the general 218 lifecycle of a dialog. Elements are provided for preparing a dialog, 219 starting the dialog on a conference or connection, and terminating 220 execution of a dialog. Each of these elements is contained in a 221 Media Control Channel Framework CONTROL message sent to the media 222 server. When the appropriate action has been executed, the media 223 server sends a REPORT message (or a 200 response to the CONTROL if it 224 can execute in time) with a response element indicating whether the 225 operation was successful or not (e.g. if the dialog cannot be 226 started, then the error is reported in this response). Once a dialog 227 has been successfully started, the media server may send further 228 event notifications in a framework CONTROL message. This package 229 defines two event notifications: a DTMF event indicating the DTMF 230 activity; and a dialogexit event indicating that the dialog has 231 exited. If the dialog has executed successful, the dialogexit event 232 includes information collected during the dialog. If an error occurs 233 during execution (e.g. a media resource failed to play, no recording 234 resource available, etc), then error information is reported in the 235 dialogexit event. Once a dialogexit event is sent, the dialog 236 lifecycle is terminated. 238 Specific dialog types are referenced or contained within dialog 239 management elements for preparing and starting dialogs. While other 240 dialog types defined elsewhere can be used, this package defines a 241 IVR dialog type which contains child elements for playing prompts to 242 the user, specifying runtime controls, collecting DTMF input from the 243 user and recording media input from the user. The child elements can 244 co-occur in this dialog type so as to provide 'play announcement', 245 'prompt and collect' as well as 'prompt and record' functionality. 247 The document is organized as follows. Section 3 descibes how this 248 control package fulfills the requirements for a Media Control Channel 249 Framework control package. Section 4 describes the syntax and 250 semantics of defined elements, including dialog management 251 (Section 4.2), the IVR dialog element (Section 4.3) and audit 252 elements (Section 4.4). Section 5 describes an XML schema for these 253 elements and provides extensibility by allowing attributes and 254 elements from other namespaces. Section 6 provides examples of 255 package usage. 257 2. Conventions and Terminology 259 In this document, BCP 14 [RFC2119] defines the key words "MUST", 260 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 261 "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In 262 addition, BCP 15 indicates requirement levels for compliant 263 implementations. 265 The following additional terms are defined for use in this document: 267 Dialog: A dialog performs media interaction with a user. A dialog 268 is specified as inline XML, or via a URI reference to an external 269 XML document type. Traditional IVR dialogs typically feature 270 capabilities such as playing audio prompts, collecting DTMF input 271 and recording audio input from the user. More inclusive 272 definitions may include support for other media types, runtime 273 controls, synthesized speech, recording and playback of video, 274 recognition of spoken input, and mixed initiative conversations. 276 Application server: A SIP [RFC3261] application server (AS) hosts 277 and executes services such as interactive media and conferencing 278 in an operator's network. An AS influences and impacts the SIP 279 session, in particular by terminating SIP sessions on a media 280 server, which is under its control. 282 Media Server: A media server (MS) processes media streams on behalf 283 of an AS by offering functionality such as interactive media, 284 conferencing, and transcoding to the end user. Interactive media 285 functionality is realized by way of dialogs which are initiated by 286 the application server. 288 3. Control Package Definition 290 This section fulfills the mandatory requirement for information that 291 MUST be specified during the definition of a Control Framework 292 Package, as detailed in Section 8 of 293 [I-D.ietf-mediactrl-sip-control-framework]. 295 3.1. Control Package Name 297 The Control Framework requires a Control Package to specify and 298 register a unique name and version. 300 The name and version of this Control Package is "msc-ivr/1.0" (Media 301 Server Control - Interactive Voice Response - version 1.0). Its IANA 302 registration is specified in Section 8.1. 304 3.2. Framework Message Usage 306 The Control Framework requires a Control Package to explicitly detail 307 the control messages that can be used as well as provide an 308 indication of directionality between entities. This will include 309 which role type is allowed to initiate a request type. 311 This package specifies CONTROL and reponse messages in terms of XML 312 elements defined in Section 4. These elements describe requests, 313 response and notifications and all are contained within a root 314 element (Section 4.1). 316 In this package, the MS operates as a Control Framework Server in 317 receiving requests from, and sending responses to, the AS (operating 318 as Control Framework Client). Dialog management requests and 319 responses are defined in Section 4.2. Audit requests and responses 320 are defined in Section 4.4. dialog management and audit responses are 321 carried in a framework 200 response or REPORT message bodies. This 322 package's response codes are defined in Section 4.5. 324 Note that package responses are different from framework response 325 codes. Framework error response codes (see Section 8 of 326 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 327 or event notification is invalid; for example, a request is invalid 328 XML (400), or not understood (500). 330 The MS also operates as a Control Framework Client in sending event 331 notification to the AS (Control Framework Server). Event 332 notifications (Section 4.2.5) are carried in CONTROL message bodies. 333 The AS MUST respond with a Control Framework 200 response. 335 3.3. Common XML Support 337 The Control Framework requires a Control Package definition to 338 specify if the attributes for media dialog or conference references 339 are required. 341 This package requires that the XML Schema in Section 17.1 of 342 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 343 media dialogs and conferences. 345 The package uses "connectionid" and "conferenceid" attributes for 346 various element definitions (Section 4). The XML schema (Section 5) 347 imports the definitions of these attributes from the framework 348 schema. 350 3.4. CONTROL Message Body 352 The Control Framework requires a Control Package to define the 353 control body that can be contained within a CONTROL command request 354 and to indicate the location of detailed syntax definitions and 355 semantics for the appropriate body types. 357 When operating as Control Framework Server, the MS receives CONTROL 358 messages body containing an element with either a dialog 359 management or audit request child element. 361 The following dialog management request elements are carried in 362 CONTROL message bodies to MS: (Section 4.2.1), 363 (Section 4.2.2) and 364 (Section 4.2.3)elements. 366 The request element (Section 4.4.1) is also carried in 367 CONTROL message bodies. 369 When operating as Control Framework Client, the MS sends CONTROL 370 messages with a body containing a notification element 371 (Section 4.2.5). 373 3.5. REPORT Message Body 375 The Control Framework requires a control package definition to define 376 the REPORT body that can be contained within a REPORT command 377 request, or that no report package body is required. This section 378 should indicate the location of detailed syntax definitions and 379 semantics for the appropriate body types. 381 When operating as Control Framework Server, the MS sends REPORT 382 bodies containing a element with a response child element. 384 The response element for dialog management requests is a 385 element (Section 4.2.4). The response element for an audit request 386 is a element (Section 4.4.2). 388 3.6. Audit 390 The Control Framework encourages Control Packages to specify whether 391 auditing is available, how it is triggered as well as the query/ 392 response formats. 394 This Control Packages supports auditing of package capabilities and 395 dialogs on the MS. An audit request is carried in a CONTROL messages 396 and an audit response in a REPORT message (or a 200 reponse to the 397 CONTROL if it can execute the audit in time). 399 The syntax and semantics of audit request and response elements is 400 defined in Section 4.4. 402 4. Element Definitions 404 This section defines the XML elements for this package. The elements 405 are defined in the XML namespace specified in Section 8.2. 407 The root element is (Section 4.1). All other XML elements 408 (requests, responses and notification elements) are contained within 409 it. Child elements describe dialog management (Section 4.2) and 410 audit (Section 4.4) functionality. The IVR dialog element (contained 411 within dialog management elements) is defined in Section 4.3. 412 Response status codes are defined in Section 4.5 and type definitions 413 in Section 4.6. 415 Implementation of this control package MUST adhere to the syntax and 416 semantics of XML elements defined in this section and the schema 417 (Section 5). The XML schema supports extensibility by allowing 418 attributes and elements from other namespaces. Implementations MAY 419 support attributes and elements from other namespaces. If an 420 implementation encounters attributes or elements from another 421 namespace which it does not understand, it MUST ignore them and 422 continue processing. 424 Extensible attributes and elements are not described in this section. 425 In all other cases where there is a difference in constraints between 426 the XML schema and the textual description of elements in this 427 section, the textual definition takes priority. 429 Usage examples are provided in Section 6. 431 4.1. 433 The element has the following attributes (in addition to 434 standard XML namspace attributes such as xmlns): 436 version: a string specifying the mscivr package version. The value 437 is fixed as '1.0' for this version of the package. The attribute 438 is mandatory. 440 The element has the following defined child elements, only 441 one of which can occur: 443 1. dialog management elements defined in Section 4.2: 445 prepare a dialog. See Section 4.2.1 446 start a dialog. See Section 4.2.2 448 terminate a dialog. See Section 4.2.3 450 response to a dialog request. See Section 4.2.4 452 dialog or subscription notification. See Section 4.2.5 454 2. audit elements defined in Section 4.4: 456 audit package capabilities and managed dialogs. See 457 Section 4.4.1 459 response to an audit request. See Section 4.4.2 461 For example, a request to the MS to start an IVR dialog playing a 462 prompt: 464 465 466 467 468 469 470 471 473 and a response from the MS that the dialog started sucessfully: 475 476 477 479 and finally a notification from the MS indicating that the dialog 480 exited upon completion of playing the prompt: 482 483 484 485 486 487 488 490 4.2. Dialog Management Elements 492 This section defines the dialog management XML elements for this 493 control package. These elements are divided into requests, responses 494 and notifications. 496 Request elements are sent to the MS to request a specific dialog 497 operation to be executed. The following request elements are 498 defined: 500 : prepare a dialog for later execution 502 : start a dialog on a connection or conference 504 : terminate an IVR dialog 506 The MS MUST support the IVR dialog type defined in Section 4.3. The 507 MS MAY support other dialog types. 509 Responses from the MS describe the status of the requested operation. 510 Responses are specified in a element (Section 4.2.4). The 511 MS MUST respond to a request message with a response message. If the 512 MS is not able to carry out the requested dialog operation, it is an 513 error and the MS MUST indicate the error in the status code of the 514 response. 516 Notifications are sent from the MS to provide updates on the status 517 of a dialog or operations defined within the dialog. Notifications 518 are specified in an element (Section 4.2.5). The MS MUST 519 always send a dialog exit notification (Section 4.2.5.1) when the 520 dialog exits, including when runtime errors occur. The MS MUST send 521 DTMF subscription notifications (Section 4.2.5.2) when they occur 522 during the dialog. 524 The MS MUST adhere to the following life cycle for dialog. Each 525 dialog has the following state machine: 527 IDLE: the dialog is uninitialized. 529 PREPARING: the dialog is being prepared. If an error occurs the 530 dialog transitions to the TERMINATED state and the MS MUST send a 531 response indicating the error type. 533 PREPARED: the dialog has been successfully prepared and has a valid 534 dialog identifier. The MS MUST send a response indicating the 535 prepare operation was successful. If the duration the dialog 536 remains in the PREPARED state exceeds the maximum preparation 537 duration, the dialog transitions to the TERMINATED state and the 538 MS MUST send a dialogexit notification with an error status code 539 (Section 4.5). A maximum preparation duration of 30s is 540 RECOMMENDED. 542 STARTING: the dialog is being started. If an error occurs the 543 dialog transitions to the TERMINATED state and the MS MUST send a 544 response indicating the error type. 546 STARTED: the dialog has been successfully started and is now active. 547 The MS MUST send a response indicating the start operation was 548 successful. If any dialog events occurs which were subscribed to, 549 the MS MUST send a notifications when the dialog event occurs. 550 When the dialog exits, the MS MUST send a dialogexit notification 551 event and the dialog transitions to the TERMINATED state. 553 TERMINATED: the dialog is terminated and its dialogid is no longer 554 valid. Dialog notifications MUST NOT be sent for this dialog. 556 It is an error to prepare or start a dialog with the same dialogid as 557 that of a dialog on the MS which is in the state PREPARING, PREPARED, 558 STARTING or STARTED: the MS MUST send a response with a status code 559 401. Once a dialog is in a TERMINATED state, its dialogid can be 560 reused. 562 [Editors note: IVR-200. Would this description benefit from a state 563 machine diagram?] 565 4.2.1. 567 The request is sent to the MS to request preparation 568 of a dialog. Dialog preparation consists of (a) retrieving external 569 dialog document and resources (if required), and (b) validating the 570 dialog document syntactically and semantically. 572 A prepared dialog is executed when the MS receives a 573 request referencing the prepared dialog identifier (see 574 Section 4.2.2). 576 The element has the following attributes: 578 src: specifies the location of an external dialog document to 579 prepare. A valid value is a URI (see Section 4.6.9). It is an 580 error if the document cannot be retrieved or processed (e.g. URI 581 protocol not supported). The attribute is optional. There is no 582 default value. 584 type: specifies the type of the external dialog document indicated 585 in the 'src' attribute. The MS MAY use the value to assist the 586 remote source in selecting the appropriate resource type (e.g. 587 with HTTP 'accept' header) and to determine how the document is to 588 be processed. A valid value is a MIME type (see Section 4.6.10). 589 The attribute is optional. The default value is the mime type 590 "application/msc-ivr+xml" (Section 8.3) associated with the IVR 591 dialog type (Section 4.3). 593 fetchtimeout: the maximum interval to wait when fetching an external 594 dialog document. A valid value is a Time Designation (see 595 Section 4.6.7). The attribute is optional. The default value is 596 30s. 598 dialogid: string indicating a unique name for the dialog. It is an 599 error if a dialog with the same name already exists on the MS. If 600 this attribute is not specified, the MS MUST create a unique name 601 for the dialog. The value is used in subsequent references to the 602 dialog (e.g. as dialogid in a ). The attribute is 603 optional. There is no default value. 605 The element has one optional child element: 607 an IVR dialog (Section 4.3.1) to prepare. The element is 608 optional. 610 The dialog to prepare can either be specified inline as a child 611 element or externally using the src attribute (but not both). It is 612 an error if both an inline element and a src attribute are 613 specified. The type and fetchtimeout attributes are only relevant 614 when a dialog is specified as an external document. 616 For example, a request to prepare an inline IVR 617 dialog with a single prompt: 619 620 621 622 623 624 625 626 627 629 In this example, a request to prepare a dialog type located 630 externally with a specified dialogid; 631 632 635 637 Since MS support for dialog types other than the IVR dialog type is 638 optional, if the MS does not support the dialog type, it MUST send a 639 response with the status code 409 (dialog type not supported). 641 4.2.2. 643 The element is sent to the MS to start a dialog. If 644 the dialog has not been prepared, the dialog is prepared (retrieving 645 an external document and resources if necessary, and the dialog 646 document validated syntactically and semantically). Media processors 647 (e.g. DTMF and prompt queue) are activated and associated with the 648 specified connection or conference. 650 The element has the following attributes: 652 src: specifies the location of an external dialog document to start. 653 A valid value is a URI (see Section 4.6.9). It is an error if the 654 document cannot be retrieved or processed (e.g. URI protocol not 655 supported). The attribute is optional. There is no default 656 value. 658 type: specifies the type of the external dialog document indicated 659 in the 'src' attribute. The MS MAY use the value to assist the 660 remote source in selecting the appropriate resource type (e.g. 661 with HTTP 'accept' header) and to determine how the document is to 662 be processed. A valid value is a MIME type (see Section 4.6.10). 663 The attribute is optional. The default value is the mime type 664 "application/msc-ivr+xml" (Section 8.3) associated with the IVR 665 dialog type (Section 4.3). 667 fetchtimeout: the maximum interval to wait when fetching an external 668 dialog document. A valid value is a Time Designation (see 669 Section 4.6.7). The attribute is optional. The default value is 670 30s. 672 dialogid: string indicating a unique name for the dialog. It is an 673 error if a dialog with the same name already exists on the MS. If 674 neither the dialogid attribute nor the prepareddialogid attribute 675 is specified, the MS MUST create a unique name for the dialog. 676 The value is used in subsequent references to the dialog (e.g. as 677 dialogid in a ). The attribute is optional. There is 678 no default value. 680 prepareddialogid: string identifying a dialog previously prepared 681 using a dialogprepare request. The attribute is optional. There 682 is no default value. 684 connectionid: string identifying the SIP dialog connection on which 685 this dialog is to be started (see Section 17.1 of 686 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 687 optional. There is no default value. 689 conferenceid: string identifying the conference on which this dialog 690 is to be started (see Section 17.1 of 691 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 692 optional. There is no default value. 694 Exactly one of the connectionid or conferenceid attributes MUST be 695 specified. It is an error to specify both connectionid and 696 conferenceid attributes or neither. 698 It is an error if the connection or conference referenced by a 699 specific connectionid or conferenceid attribute is not available on 700 the MS at the time the request is executed. 702 The element has the following sequence of child 703 elements: 705 : specifies the IVR dialog (Section 4.3.1) to execute. The 706 element is optional. 708 : specifies subscriptions to dialog events 709 (Section 4.2.2.1). The element is optional. 711 : specifies input parameters (Section 4.2.6) for a dialog 712 types defined outside this specification. The element is 713 optional. 715 : determines the media stream(s) associated with the 716 connection or conference on which the dialog is executed 717 (Section 4.2.2.2). The element is optional. Multiple 718 elements may be specified. 720 The dialog to start on a connection or conference can be specified 721 either inline, or externally, or reference a previously prepared 722 dialog. Exactly one of the src attribute, the prepareddialogid or a 723 child element MUST be specified. If the prepareddialogid is 724 specified, it is an error to specify the src attribute, the dialogid 725 attribute or a dialog type child element. If the src attribute is 726 specified, it is an error to specify the prepareddialogid attribute, 727 or a dialog type child element. If a child element is 728 specified, it is an error to specify the src attribute or the 729 prepareddialogid attribute. The type and fetchtimeout attributes are 730 only relevant when a dialog is specified as an external document. 732 The element provides explicit control over which media 733 streams on the connection or conference are used during dialog 734 execution. For example, if a connection supports both audio and 735 video streams, a element could be used to indicate that only 736 the audio stream is used in receive mode. In cases where there are 737 multiple media streams of the same type for a dialog, it is 738 RECOMMENDED that the configuration is explicitly specified using 739 elements. If no elements are specified, then the 740 default media configuration is that defined for the connection or 741 conference. 743 It is an error if a element is in conflict with (a) another 744 element, (b) with specified connection or conference media 745 capabilities, (c) with a SDP label value as part of the connectionid 746 (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) or 747 (d) if the media stream configuration is not supported by the MS. If 748 the MS does not support a requested configuration, it MUST 749 response with a with a 413 status code. 751 This specification allows multiple, simultaneous dialogs to be 752 started on the same connection or conference. It is RECOMMENDED the 753 MS support the following cases: 755 1. different media streams used in different dialogs; e.g. audio 756 only on one dialog and video only on another dialog 758 2. the same media stream received by different dialogs 760 3. use of implicit mixing (where appropriate) when the same type of 761 media stream is sent from different dialogs 763 If the MS does not support starting another dialog on the same 764 connection or conference it MUST report an error when starting that 765 dialog. 767 [Editors Note: IVR-201. If the conference mixer package supports 768 video layout regions, then we need a mechanism to specify that the 769 dialog is to be started on a specific region of the conference.] 771 For example, a request to start an ivr dialog on a connection 772 subscribing to DTMF notificatons: 774 775 776 777 778 779 780 781 782 783 784 785 786 788 In this example, the dialog is started on a conference where only 789 audio media stream is received: 791 792 793 794 795 796 797 799 4.2.2.1. 801 The element allows the AS to subscribe to, and be 802 notified of, specific events which occur during execution of the 803 dialog. Notifications of dialog events are delivered using the 804 element (see Section 4.2.5). 806 The element has no attributes. 808 The element has the following sequence of child elements 809 (0 or more occurences): 811 : Subscription to DTMF input during the dialog 812 (Section 4.2.2.1.1). The element is optional. 814 The MS MUST support a subscription. It MAY support other 815 dialog subscriptions. If the MS does not support a requested 816 subscription, it MUST send a with a 412 status code. 818 4.2.2.1.1. 820 The element has the following attributes: 822 matchmode: controls which DTMF input are subscribed to. Valid 823 values are: "all" - notify all DTMF keypresses received during the 824 dialog; "collect" - notify only DTMF input matched by the collect 825 operation (Section 4.3.1.3); and "control" - notify only DTMF 826 input matched by the runtime control operation (Section 4.3.1.2). 827 The attribute is optional. The default value is "all". 829 The element has no child elements. 831 DTMF notifications are delivered in the element 832 (Section 4.2.5.2). 834 For example, the AS wishes to subscribe to DTMF keypress matching a 835 runtime control: 837 838 839 840 841 842 843 844 845 846 847 848 849 851 Each time a '2' or '3' DTMF input is received, the MS sends a 852 notification event: 854 855 856 858 /event> 859 861 4.2.2.2. 863 the element has the following attributes: 865 media: a string indicating the type of media associated with the 866 stream. It is strongly RECOMMENDED that the following values are 867 used for common types of media: "audio" for audio media, and 868 "video" for video media. The attribute is mandatory. 870 label: a string indicating the SDP label associated with a media 871 stream ([RFC4574]). The attribute is optional. 873 direction: a string indicating the direction of the media flow 874 between a dialog and its end point conference or connection. 875 Defined values are: "sendrecv" (media can be sent and received), 876 "sendonly" (media can only be sent), "recvonly" (media can only be 877 received) and "inactive" (stream is not to be used). The default 878 value is "sendrecv". The attribute is optional. 880 the element has no child elements. 882 For example, assume a user agent connection with multiple audio and 883 video streams associated with the user and a separate web camera. In 884 this case, the dialog could be started to record only the audio and 885 video streams associated with the user: 887 888 889 890 891 892 893 894 895 896 898 4.2.3. 900 A dialog that has been successfully prepared or started can be 901 terminated by sending a request element to the MS. 903 The element has the following attributes: 905 dialogid: string identifying the dialog to terminate. It is an 906 error if the dialog identifier is not valid. The attribute is 907 mandatory. 909 immediate: indicates whether the dialog is to be terminated 910 immediately or not. A valid value is a boolean (see 911 Section 4.6.1). A value of true indicates that the dialog is 912 terminated immediately and a dialogexit notification without 913 report information MUST be sent. A value of false indicates that 914 the dialog terminates after the current iteration and the MS MUST 915 send a dialogexit notification with report information. The 916 attribute is optional. The default value is false. 918 When an MS receives a request, the dialog MUST be 919 in a PREPARED, STARTING or STARTED states; otherwise, the MS MUST 920 send a response with the status code 402. If it is in a PREPARED 921 state, then it transitions immediately to the TERMINATED state. If 922 it is in STARTING state, then any further starting (or preparation) 923 of the dialog is canceled, the dialog transitions to the TERMINATED 924 state and the MS MUST send a response with the status code 414 for 925 the dialogstart request. If the dialog is in a STARTED state, then 926 the dialog is terminated according to the value of the immediate 927 attribute. 929 The MS MUST reply to request with a 930 element (Section 4.2.4), reporting whether the dialog was stopped 931 successful or not. 933 For example, immediately terminating a dialog with dialogid "d4": 935 936 937 939 If the dialog is terminated successfully, then the response to the 940 dialogterminate request would be: 942 943 944 945 947 4.2.4. 949 Responses to dialog management requests are specified with a 950 element. 952 The element has following attributes: 954 status: numeric code indicating the response status. Valid values 955 are defined in Section 4.5. The attribute is mandatory. 957 reason: string specifying a reason for the response status. The 958 attribute is optional. There is no default value. 960 dialogid: string identifying the dialog. If the request specifies a 961 dialogid, then that value is used. Otherwise, with 962 and requests, the dialogid generated 963 by the MS is used. If there is no available dialogid (e.g. a 964 request with no dialogid attribute specified), 965 then the value is the empty string. The attribute is mandatory. 967 connectionid: string identifying the SIP dialog connection 968 associated with the dialog (see Section 17.1 of 969 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 970 optional. There is no default value. 972 conferenceid: string identifying the conference associated with the 973 dialog (see Section 17.1 of 974 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 975 optional. There is no default value. 977 For example, a response when a dialog was prepared successfully: 979 980 981 983 The response if dialog preparation failed due to an unsupported 984 dialog type: 986 987 989 991 In this example a request does not specify a 992 dialogid: 994 995 996 998 The response status indicates a 409 error (attribute required) and 999 dialogid attribute has an empty string value: 1001 1002 1004 1006 4.2.5. 1008 When a dialog generates a notification event, the MS sends the event 1009 using an element. 1011 The element has the following attributes: 1013 dialogid: string identifying the dialog which generated the event. 1014 The attribute is mandatory. 1016 The element has the following child elements, only one of 1017 which can occur: 1019 : indicates that the dialog has exited 1020 (Section 4.2.5.1). 1022 : indicates that a DTMF key press occured 1023 (Section 4.2.5.2). 1025 4.2.5.1. 1027 The event indicates that a prepared or active dialog has 1028 exited because it is complete, has been terminated, or because an 1029 error occurred during execution (for example, a media resource cannot 1030 be played). This event MUST be sent by the MS when the dialog exits. 1032 The element has the following attributes: 1034 status: a status code indicating success or failure of the dialog. 1035 A valid value is a non-negative integer (see Section 4.6.4). A 1036 value of 0 indicates that the dialog has been terminated by a 1037 request. A value of 1 indicates success. A 1038 value of 2 indicates that the dialog terminated because the 1039 connection or conference associated with the dialog has 1040 terminated. A value of 3 indicates the dialog terminated due to 1041 exceeding its maximum duration. A value of 4 indicates the dialog 1042 terminated due to an execution error. Any other value indicates 1043 an error defined by the MS. The attribute is mandatory. 1045 reason: a textual description providing a reason for the status 1046 code; e.g. details about an error. A valid value is a string (see 1047 Section 4.6.6). The attribute is optional. There is no default 1048 value. 1050 The element has the following sequence of child 1051 elements: 1053 : report information (Section 4.3.2.1) about the prompt 1054 execution in an IVR . The element is optional. 1056 : reports information (Section 4.3.2.2) about the 1057 control execution in an IVR . The element is optional. 1059 : reports information (Section 4.3.2.3) about the 1060 collect execution in an IVR . The element is optional. 1062 : reports information (Section 4.3.2.4) about the record 1063 execution in an IVR . The element is optional. 1065 : reports exit parameters (Section 4.2.6) for a dialog type 1066 defined outside this specification. The element is optional. 1068 For example, an active exits normally the MS sends a 1069 dialogexit reporting information: 1071 1072 1073 1074 1075 1076 1078 4.2.5.2. 1080 The element provide a notification of DTMF input 1081 received during the active dialog as requested by a 1082 subscription (Section 4.2.2.1). 1084 The element has the following attributes: 1086 matchmode: indicates the matching mode specified in the subscription 1087 request. Valid values are: "all" - all DTMF keypresses notified; 1088 "collect" - only DTMF input matched by the collect operation 1089 notified; and "control" - only DTMF input matched by the control 1090 operation notified. The attribute is optional. The default value 1091 is "all". 1093 dtmf: DTMF keypress received. A valid value is a DTMF string (see 1094 Section 4.6.3) with no space between characters. The attribute is 1095 mandatory. 1097 timestamp: indicates the time (on the MS) at which the key press 1098 occured. A valid value is a dateTime expression (Section 4.6.12). 1099 The attribute is mandatory. 1101 For example, a notification of a DTMF matched during the collect 1102 operation: 1104 1105 1106 1108 /event> 1109 1111 4.2.6. 1113 The element is a container for elements 1114 (Section 4.2.6.1). 1116 The element has no attributes, but the following child 1117 elements are defined (0 or more): 1119 : specifies a parameter name and value (Section 4.2.6.1). 1121 For example, usage with a dialog type defined outside this 1122 specification to send additional parameters into the dialog: 1124 1125 1127 1128 playannouncement 1129 nfs://nas01/media1.3gp" 1130 nfs://nas01/media2.3gp" 1131 1132 1133 1135 4.2.6.1. 1137 The element describes a parameter name and value. 1139 The element has the following attributes: 1141 name: a string indicating the name of the parameter. The attribute 1142 is mandatory. 1144 type: specifies a mimetype of the parameter value. A valid value is 1145 a MIME type (see Section 4.6.10). The attribute is optional. 1146 There is no default value. 1148 valuetype: a string indicating the type of the parameter value. The 1149 attribute is optional. The default value is a string type. 1151 If the MS supports parameters, it MUST support the string valuetype 1152 and MAY support other parameter valuetypes (e.g. base64Binary for 1153 inline binary data, such as a media recording). 1155 The element content model is the value of the parameter. 1157 For example, usage with a dialog type defined outside this 1158 specification to receive parameters from the dialog when it exits: 1160 1161 1162 1163 1164 recording 1165 1167 R0lGODlhZABqALMAAFrMYr/BvlKOVJKOg2xZUKmenMfDw8tgWJpV 1168 1169 1170 1171 1172 1174 4.3. IVR Dialog Elements 1176 This section describes the IVR dialog type. The MS MUST support this 1177 dialog type. 1179 The element is an execution container for operations of 1180 playing prompts (Section 4.3.1.1), runtime controls 1181 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1182 user input (Section 4.3.1.4. Results of the dialog execution 1183 (Section 4.3.2) are reported in a dialogexit notification event. 1185 Using these elements, three common dialog models are supported: 1187 playannouncements: only a element is specified in the 1188 container. The prompt media resources are played in sequence. 1190 promptandcollect: a element is specified and, optionally, 1191 a element. If a element is specified and 1192 bargein is enabled, playing of the prompt is terminated when 1193 bargein occurs, and DTMF collection is initiated; otherwise, the 1194 prompt is played to completion before DTMF collection is 1195 initiated. If no prompt element is specified, DTMF collection is 1196 initiated immediately. 1198 promptandrecord: a element is specified and, optionally, a 1199 element. If a element is specified and bargein 1200 is enabled, playing of the prompt is terminated when bargein 1201 occurs, and recording is initiated; otherwise, the prompt is 1202 played to completion before recording is initiated. If no prompt 1203 element is specified, recording is initiated immediately. 1205 In addition, this dialog type supports runtime ('VCR') controls 1206 enabling a user to control prompt playback using DTMF. 1208 Each of the core elements - , , and 1209 - are specified so that their execution and reporting is 1210 largely self-contained. This facilitates their re-use in other 1211 dialog container elements. Note that DTMF and bargein behavior 1212 affects multiple elements and is addressed in the relevant element 1213 definitions. 1215 Execution results are reported in the notification event 1216 with child elements defined in Section 4.3.2. If the dialog 1217 terminated normally (i.e. not due to an error or to a 1218 request), then the MS MUST report the results for 1219 the operations specified in the dialog: 1221 : (see Section 4.3.2.1) with at least the 1222 termmode attribute specified. 1224 : (see Section 4.3.2.2) if any runtime 1225 controls are matched. 1227 : (see Section 4.3.2.3) with the dtmf and 1228 termmode attributes specified. 1230 : (see Section 4.3.2.4) with at least the 1231 recording, type and termmode attributes specified. 1233 The media format requirements for IVR dialogs are undefined. This 1234 package is agnostic to the media types and codecs for media resources 1235 and recording which need to be supported by an implementation. For 1236 example, a MS implementation may choose to support only audio and in 1237 particular the 'audio/basic' codec for media playback and recording. 1238 However, when executing a dialog, if an MS encounters a media type or 1239 codec which it cannot process, the MS MUST stop further processing 1240 and report the error using the dialogexit notification. 1242 4.3.1. 1244 An IVR dialog to play prompts to the user, allow runtime controls, 1245 collect DTMF or record input. The dialog is specified using a 1246 element. 1248 A element has the following attributes: 1250 repeatCount: number of times the dialog is to be executed. A valid 1251 value is a non-negative integer (see Section 4.6.4). A value of 0 1252 indicates that the dialog is repeated until halted by other means. 1253 The attribute is optional. The default value is 1. 1255 repeatDur: maximum duration for dialog execution. A valid value is 1256 a Time Designation (see Section 4.6.7). If no value is specified, 1257 then there is no limit on the duration of the dialog. The 1258 attribute is optional. There is no default value. 1260 The repeatDur attribute takes priority over the repeatCount attribute 1261 in determining maximum duration of the dialog. See 'repeatCount' and 1262 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1263 information. 1265 The element has the following sequence of child elements: 1267 : defines media resources to play in sequence (see 1268 Section 4.3.1.1). The element is optional. 1270 : defines how DTMF is used for runtime controls (see 1271 Section 4.3.1.2). The element is optional. 1273 : defines how DTMF is collected (see Section 4.3.1.3). The 1274 element is optional. 1276 : defines how recording takes place (see Section 4.3.1.4). 1277 The element is optional. 1279 It is an error if no child element is specified. The behavior is not 1280 defined if both and are specified. 1282 The IVR dialog has the following execution model after initialization 1283 (initialization errors are reported in the response): 1285 1. If an error occurs during execution, then the dialog terminates 1286 and the error is reported in the event by setting 1287 the status attribute (see Section 4.3.2). Details about the 1288 error are specified in the reason attribute. 1290 2. A counter is initialized to 0. 1292 3. A duration timer is started for the value of the repeatDur 1293 attribute. If the timer expires before the dialog is complete, 1294 then dialog is terminated and the dialogexit status attribute is 1295 set to 3 (see Section 4.2.5.1). The dialogexit MAY report 1296 information gathered in the last execution cycle (if any). 1298 4. A dialog execution cycle is initiated. Each cycle executes the 1299 operations associated with the child elements of the dialog. If 1300 subscriptions are specified for the dialog, then a notification 1301 event is sent when the specified event occurs. If a child 1302 element reports an execution error, dialog execution is 1303 terminated (other child element operations are stopped) and the 1304 dialogexit status event sent, reporting any information gathered. 1306 5. If the dialog execution cycle completes successfully, then the 1307 counter is incremented by one. If the value of the repeatCount 1308 attribute is greater than zero and the counter is equal to the 1309 value of the repeatCount attribute, then dialog execution is 1310 terminated and the dialogexit (with a status of 1) reports 1311 operation information collected in the dialog execution cycle. 1312 Otherwise, another dialog execution cycle is initiated. 1314 4.3.1.1. 1316 The element specifies a sequence of media resources to play. 1318 A element has the following attributes: 1320 xml:base: A string declaring the base URI from which relative URIs 1321 in child elements are resolved prior to fetching. A valid value 1322 is a URI (see Section 4.6.9). The attribute is optional. There 1323 is no default value. 1325 bargein: Indicates whether user input stops prompt playback unless 1326 the input is assocated with a specified runtime 1327 operation (input matching control operations never interrupts 1328 prompt playback). A valid value is a boolean (see Section 4.6.1). 1329 A value of true indicates that bargein is permitted and prompt 1330 playback is stopped. A value of false indicates that bargein is 1331 not permitted: user input does not terminate prompt playback. The 1332 attribute is optional. The default value is true. 1334 The element has the following child elements (any order, 1335 multiple occurrences of each element permitted): 1337 : media resource (see Section 4.3.1.1.1) to play. The 1338 element is optional. 1340 : specifies a variable media announcement (see 1341 Section 4.3.1.1.2) to play. The element is optional. 1343 : generates one or more DTMF tones (see Section 4.3.1.1.3) to 1344 play. The element is optional. 1346 It is an error if no child element is specified. 1348 Prompt playing has the following execution model upon initialization: 1350 1. Prompt playback is initiated playing each , and 1351 in document order. 1353 2. If an error (including fetching errors) occurs during execution, 1354 then playback terminates and the error is reported to the dialog 1355 container. The termmode attribute is set to stopped 1356 (see Section 4.3.2.1) and any additional information is set. 1358 3. If the dialog container signals a bargein event and the value of 1359 the bargein attribute is true, then prompt playback is terminated 1360 and the termmode attribute is set to bargein (see 1361 Section 4.3.2.1) and any additional information is set. 1363 4. If prompt playback is stopped by the dialog container, then 1364 termmode attribute is set to stopped (see 1365 Section 4.3.2.1). 1367 5. If prompt playback completes successfully, termmode 1368 attribute set to completed (see Section 4.3.2.1) and any 1369 additional information is set. This completion status is of this 1370 element reported to the dialog. 1372 4.3.1.1.1. 1374 The element specifies a media resource to play. 1376 A element has the following attributes: 1378 src: specifies the location of the media resource. A valid value is 1379 a URI (see Section 4.6.9). The attribute is mandatory. 1381 type: specifies the type of the media resource indicated in the 1382 'src' attribute. The MS MAY use the value to assist the remote 1383 source in selecting the appropriate resource type (e.g. with HTTP 1384 'accept' header) and to determine how the document is to be 1385 processed. The value may include additional parameters for 1386 guiding playback; for example, [RFC4281] defines a 'codec' 1387 parameter for 'bucket' media types like video/3gpp. A valid value 1388 is a MIME type (see Section 4.6.10). The attribute is optional. 1389 There is no default value. 1391 fetchtimeout: the maximum interval to wait when fetching a media 1392 resource. A valid value is a Time Designation (see 1393 Section 4.6.7). The attribute is optional. The default value is 1394 30s. 1396 soundLevel: playback soundLevel (volume) for the media resource. A 1397 valid value is a percentage (see Section 4.6.4). The value 1398 indicates increase or decrease relative to the original recorded 1399 volume of the media. A value of 100% (the default) plays the 1400 media at its recorded volume, a value of 200% will play the media 1401 twice recorded volume, 50% at half its recorded volume, a value of 1402 0% will play the media silently, and so on. See 'soundLevel' in 1403 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 1404 attribute is optional. The default value is 100%. 1406 clipBegin: offset from start of media resource to begin playing. A 1407 valid value is a Time Designation (see Section 4.6.7). The offset 1408 is measured in normal media playback time from the beginning of 1409 the media resource. If the clipBegin offset is after the end of 1410 media, no media is played. See 'clipBegin' in SMIL 1411 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 1412 is optional. The default value is 0s. 1414 The element has no children. 1416 It is an error if the media resource cannot be fetched (e.g. fetch 1417 timeout occurs) or played (e.g. unsupported format). 1419 4.3.1.1.2. 1421 The element specifies variable announcements using 1422 predefined media resources. Each variable has at least a type (e.g. 1423 date) and a value (e.g. 2008-02-25). The value is rendered according 1424 to the variable type (e.g. 25th February 2008) as well as other 1425 defined attributes. The precise mechanism for generating variable 1426 announcements (including the location of associated media resources) 1427 is implementation specific. 1429 A element has the following attributes: 1431 value: specifies the string to be rendered. A valid value is a 1432 string (see Section 4.6.6). The attribute is mandatory. 1434 type: specifies the type to use for rendering. A valid value is a 1435 string (see Section 4.6.6). The attribute is mandatory. 1437 format: specifies format information to use in conjunction with the 1438 type for the rendering. A valid value is a string (see 1439 Section 4.6.6). The attribute is optional. There is no default 1440 value. 1442 gender: specifies the gender to use when rendering the variable. 1443 Valid values are "male" or "female". The attribute is optional. 1444 There is no default value. 1446 xml:lang: specifies the language to use when rendering the variable. 1447 A valid value is a language identifier (see Section 4.6.11). The 1448 attribute is optional. There is no default value. 1450 The element has no children. 1452 This package is agnostic to which values, types and 1453 formats are supported by an implementation. However it is 1454 RECOMMENDED that an implementation support the following type/format 1455 combinations: 1457 type=date Supported formats: "mdy" (month day year), "ymd" (year 1458 month day), "dym" (day month year), "dm" (day month) 1460 type=time Supported formats: "t12" (12 hour format with am/pm), 1461 "t24" (24 hour format) 1463 type=digits Supported formats: "gen" (XXX), "ndn" (XXX), "crn" 1464 (cardinal), "ord" (ordinal) 1466 [Editors Note: IVR-202. What do 'gen' and 'ndn' format mean for 1467 digits? Terms defined in MSCML. ] 1469 This specification is agnostic to the type and codec of media 1470 resources into which variable are rendered as well as the rendering 1471 mechanism itself. For example, an MS implementation supporting audio 1472 rendering may map the into one or more audio media 1473 resources. 1475 It is an error if a element cannot be rendered 1476 successfully on the MS implementation. 1478 Depending on the specific implementation of the rendering 1479 on the MS, execution of this element may be seen as conversion of a 1480 into a list of elements. For example, 1481 1484 could be transformed into audio saying "twenty-fifth of February two 1485 thousand and eight" using a list of resources: 1487 1488 1489 1490 1491 1492 1494 4.3.1.1.3. 1496 The element specifies a sequence of DTMF tones for output. 1498 DTMF tones could be generated using resources where the 1499 output is transported as RTP audio packets. However, 1500 resources are not sufficient for cases where DTMF tones are to be 1501 transported as DTMF RTP ([RFC4733]) or in event packages. 1503 A element has the following attributes: 1505 digits: specifies the DTMF sequence to output. A valid value is a 1506 DTMF string (see Section 4.6.3). The attribute is mandatory. 1508 level: used to define the power level for which the DTMF tones will 1509 be generated. Values are expressed in dBm0. A valid value is an 1510 integer in the range of 0 to -96 (dBm0). Larger negative values 1511 express lower power levels. Note that values lower than -55 dBm0 1512 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1513 The attribute is optional. The default value is -6 (dBm0). 1515 duration: specifies the duration for which each DTMF tone is 1516 generated. A valid value is a time designation (see 1517 Section 4.6.7). Implementations may round the value if they only 1518 support discrete durations. The attribute is optional. The 1519 default value is 100ms. 1521 interval: specifies the duration of a silence interval following 1522 each generated DTMF tone. A valid value is a time designation 1523 (see Section 4.6.7). Implementations may round the value if they 1524 only support discrete durations. The attribute is optional. The 1525 default value is 100ms. 1527 The element has no children. 1529 It is an error if a element cannot be processed successfully. 1531 4.3.1.2. 1533 The element defines how DTMF input is mapped to runtime 1534 controls, including prompt playback controls. 1536 DTMF input matching these controls MUST NOT cause prompt playback to 1537 interrupted (i.e. no prompt bargein), but causes the appropriate 1538 operation to be applied; for examples, speeding up prompt playback. 1540 DTMF input matching these controls has priority over input 1541 for the duration of prompt playback. If incoming DTMF matches a 1542 specified runtime control, then the DTMF is not available to the 1543 operation, including its digit buffer. Once prompt 1544 playback is complete, runtime controls are no longer active. 1546 The element has the following attributes: 1548 gotostartkey: maps a DTMF key to skip directly to the start of the 1549 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1550 The attribute is optional. There is no default value. 1552 gotoendkey: maps a DTMF key to skip directly to the end of the 1553 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1554 The attribute is optional. There is no default value. 1556 skipinterval: indicates how far a MS should skip backwards or 1557 forwards through prompt playback when the rewind (rwkey) of fast 1558 forward key (ffkey) is pressed. A valid value is a Time 1559 Designation (see Section 4.6.7). The attribute is optional. The 1560 default value is 6s. 1562 ffkey: maps a DTMF key to a fast forward operation equal to the 1563 value of 'skipinterval'. A valid value is a DTMF Character (see 1564 Section 4.6.2). The attribute is optional. There is no default 1565 value. 1567 rwkey: maps a DTMF key to a rewind operation equal to the value of 1568 'skipinterval'. A valid value is a DTMF Character (see 1569 Section 4.6.2). The attribute is optional. There is no default 1570 value. 1572 pauseinterval: indicates how long a MS should pause prompt playback 1573 when the pausekey is pressed. A valid value is a Time Designation 1574 (see Section 4.6.7). The attribute is optional. The default 1575 value is 10s. 1577 pausekey: maps a DTMF key to a pause operation equal to the value of 1578 'pauseinterval'. A valid value is a DTMF Character (see 1579 Section 4.6.2). The attribute is optional. There is no default 1580 value. 1582 resumekey: maps a DTMF key to a resume operation. A valid value is 1583 a DTMF Character (see Section 4.6.2). The attribute is optional. 1584 There is no default value. 1586 volumeinterval: indicates the increase or decrease in playback 1587 volume (relative to the current volume) when the volupkey or 1588 voldnkey is pressed. A valid value is a percentage (see 1589 Section 4.6.8). The attribute is optional. The default value is 1590 10%. 1592 volupkey: maps a DTMF key to a volume increase operation equal to 1593 the value of 'volumeinterval'. A valid value is a DTMF Character 1594 (see Section 4.6.2). The attribute is optional. There is no 1595 default value. 1597 voldnkey: maps a DTMF key to a volume decrease operation equal to 1598 the value of 'volumeinterval'. A valid value is a DTMF Character 1599 (see Section 4.6.2). The attribute is optional. There is no 1600 default value. 1602 speedinterval: indicates the increase or decrease in playback speed 1603 (relative to the current speed) when the speedupkey or speeddnkey 1604 is pressed. A valid value is a percentage (see Section 4.6.8). 1605 The attribute is optional. The default value is 10%. 1607 speedupkey: maps a DTMF key to a speed increase operation equal to 1608 the value of the speedinterval attribute. A valid value is a DTMF 1609 Character (see Section 4.6.2). The attribute is optional. There 1610 is no default value. 1612 speeddnkey: maps a DTMF key to a speed decrease operation equal to 1613 the value of the speedinterval attribute. A valid value is a DTMF 1614 Character (see Section 4.6.2). The attribute is optional. There 1615 is no default value. 1617 external: allows one or more DTMF keys to be declared as external 1618 controls (for example: video camera controls); the MS can send 1619 notifications when a matching key is activated using 1620 (Section 4.2.5.2). A valid value is a DTMF String (see 1621 Section 4.6.3). The attribute is optional. There is no default 1622 value. 1624 It is an error if any control key is specified with the same value 1625 except that the pausekey and resumekey may have the same value. 1627 Runtime control has the following execution model upon 1628 initialization: 1630 1. If an error occurs during execution, then runtime control 1631 terminates and the error is reported to the dialog container. 1632 Controls executed successfully before the error MAY be reported 1633 in (see Section 4.3.2.2). 1635 2. Runtime controls are active only during prompt playback. If DTMF 1636 input matches any specified keys (for example the ffkey), then 1637 the appropriate operation is applied immediately. If a seek 1638 operation (ffkey, rwkey) attempts to go beyond the beginning or 1639 end of the prompt queue, then it is automatically truncated to 1640 the prompt beginning or end respectively. If the pause operation 1641 attempts to pause output when it is already paused, then the 1642 operation is ignored. If the resume operation attempts to resume 1643 when the prompts are not paused, then the operation is ignored. 1644 If a volume operations attempts to go beyond the minimum or 1645 maximum volume supported by the platform, then the operation is 1646 ignored. 1648 3. If DTMF control subscription has been specified for the dialog, 1649 then each DTMF match of a control operation is reported in a 1650 notification evemt (Section 4.2.5.2). 1652 4. When the dialog exits, all control matches are reported in a 1653 element (Section 4.3.2.2). 1655 4.3.1.3. 1657 The element defines how DTMF input is collected. 1659 The element has the following attributes: 1661 cleardigitbuffer: indicates whether the digit buffer is to be 1662 cleared. A valid value is a boolean (see Section 4.6.1). A value 1663 of true indicates that the digit buffer is to be cleared. A value 1664 of false indicates that the digit buffer is not to be cleared. 1665 The attribute is optional. The default value is true. 1667 timeout: indicates the maximum time to wait for user input to begin. 1668 A valid value is a Time Designation (see Section 4.6.7). The 1669 attribute is optional. The default value is 5s. 1671 interdigittimeout: indicates inter-digit timeout value to use when 1672 recognizing DTMF input. A valid value is a Time Designation (see 1673 Section 4.6.7). The attribute is optional. The default value is 1674 2s. 1676 termtimeout: indicates the terminating timeout value to use when 1677 recognizing DTMF input. A valid value is a Time Designation (see 1678 Section 4.6.7). The attribute is optional. The default value is 1679 0s. 1681 escapekey: specifies a DTMF key that indicates the DTMF collection 1682 is to be re-initiated. A valid value is a DTMF Character (see 1683 Section 4.6.2). The attribute is optional. There is no default 1684 value. 1686 termchar: specifies a DTMF character for terminating DTMF input 1687 collection using the internal grammar. A valid value is a DTMF 1688 character (see Section 4.6.2). To disable termination by a 1689 conventional DTMF character, set the parameter to an 1690 unconventional character like 'A'. The attribute is optional. 1691 The default value is '#'. 1693 maxdigits: The maximum number of digits to collect using an internal 1694 digits (0-9 only) grammar. A valid value is a positive integer 1695 (see Section 4.6.5). The attribute is optional. The default 1696 value is 5. 1698 The element has the following child elements: 1700 : indicates a custom grammar format (see 1701 Section 4.3.1.3.1). The element is optional. 1703 The custom grammar takes priority over the internal grammar. If a 1704 element is specified, the MS MUST use it for DTMF 1705 collection. 1707 DTMF collection has the following execution model upon 1708 initialization: 1710 1. The DTMF collection buffer MUST NOT receive DTMF input matching 1711 operations (see Section 4.3.1.2). 1713 2. If an error occurs during execution, then collection terminates 1714 and the error is reported to the dialog container. DTMF 1715 collected before the error MAY be reported in (see 1716 Section 4.3.2.3). 1718 3. The digit buffer is cleared if the value of the cleardigitbuffer 1719 attribute is true. 1721 4. A timer with the duration of the value of the timeout attribute 1722 is activated. If the timer expires before DTMF input collection 1723 begins, then collection execution terminates, the 1724 (see Section 4.3.2.3) has the termmode attribute set to noinput 1725 and the execution status reported to the dialog container. 1727 5. If DTMF collect input matches the value of the escapekey 1728 attribute, then the timer is canceled and DTMF collection is re- 1729 initialized. 1731 6. Other DTMF collect input is matched to the grammar. Valid DTMF 1732 patterns are either a simple digit string where the maximum 1733 length is determined by the maxdigits attribute and may be 1734 terminated by the character in the termchar attribute; or a 1735 custom DTMF grammar specified with the element. The 1736 attributes interdigittimeout and termtimeout control interdigit 1737 timeout and the terminating timeout respectively. 1739 7. If the collect input completely matches the grammar, the timer is 1740 canceled, collection execution terminates and the execution 1741 status is reported to the dialog container with 1742 (see Section 4.3.2.3) where the termmode attribute set to match. 1744 8. If the collect input does not match the grammar, the timer is 1745 canceled, collection execution terminates and execution status is 1746 reported to the dialog container with a (see 1747 Section 4.3.2.3) where the termmode attribute set to nomatch. 1749 4.3.1.3.1. 1751 The element allows a custom grammar, inline or external, to 1752 be specified. Custom grammars permit the full range of DTMF 1753 characters including '*' and '#' to be specified for DTMF pattern 1754 matching. 1756 The element has the following attributes: 1758 src: specifies the location of an external grammar document. A 1759 valid value is a URI (see Section 4.6.9). The attribute is 1760 optional. There is no default value. 1762 type: identifies the preferred type of the grammar document 1763 identified by the src attribute. The MS MAY use the value to 1764 assist the remote source in selecting the appropriate resource 1765 type (e.g. with HTTP 'accept' header) and to determine how the 1766 document is processed. A valid value is a MIME type (see 1767 Section 4.6.10). The attribute is optional. There is no default 1768 value. 1770 fetchtimeout: the maximum interval to wait when fetching a grammar 1771 resource. A valid value is a Time Designation (see 1772 Section 4.6.7). The attribute is optional. The default value is 1773 30s. 1775 The element allows inline grammars to be specified. XML 1776 grammar formats MUST use a namespace other than the one used in this 1777 specification. Non-XML grammar formats MAY use a CDATA section. 1779 The MS MUST support the [SRGS] XML grammar format ("application/ 1780 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 1781 formats. 1783 It is an error if a grammar format is specified which is not 1784 supported by the MS. 1786 For example, the following fragment shows DTMF collection with an 1787 inline SRGS grammar: 1789 1791 1792 1794 1795 1796 0 1797 1 1798 2 1799 3 1800 4 1801 5 1802 6 1803 7 1804 8 1805 9 1806 1807 1809 1810 1811 1812 1813 1814 # 1815 * 9 1816 1817 1819 1820 1821 1823 The same grammar could also be referenced externally (and take 1824 advantage of HTTP caching): 1826 1827 1829 1831 4.3.1.4. 1833 The element defines how media input is recorded. 1835 The element has the following attributes: 1837 timeout: indicates the time to wait for user input to begin. A 1838 valid value is a Time Designation (see Section 4.6.7). The 1839 attribute is optional. The default value is 5s. 1841 type: specifies the type of the recording format. The type value 1842 may include additional parameters for guiding recording; for 1843 example, [RFC4281] defines a 'codec' parameter for 'bucket' media 1844 types like video/3gpp. A valid value is a MIME type (see 1845 Section 4.6.10). The attribute is optional. There is no default 1846 value (recording format is MS-specific). 1848 dest: specifies the location where recorded data is to be stored. 1849 The MS uploads the recorded data to this location during or after 1850 the recording operation. A valid value is a URI (see 1851 Section 4.6.9). The attribute is optional. If not specified, the 1852 MS MUST use a local recording location (reported in 1853 Section 4.3.2.4); this recording is available until the connection 1854 or conference associated with the dialog terminates. 1856 vadinitial: Control whether voice activity detection can be used to 1857 initiate the recording operation. A valid value is a boolean (see 1858 Section 4.6.1). A value of true indicates recording may be 1859 initiated using voice activity detection. A value of false 1860 indicates that recording must not be initiated using voice 1861 activity detection. The attribute is optional. The default value 1862 is true. 1864 vadfinal: Control whether voice activity detection can be used to 1865 terminate the recording operation. A valid value is a boolean 1866 (see Section 4.6.1). A value of true indicates recording may be 1867 terminated using voice activity detection. A value of false 1868 indicates that recording must not be terminated using voice 1869 activity detection. The attribute is optional. The default value 1870 is true. 1872 dtmfterm: Indicates whether the recording operation is terminated by 1873 DTMF input. A valid value is a boolean (see Section 4.6.1). A 1874 value of true indicates that recording is terminated by DTMF 1875 input. A value of false indicates that recording is not 1876 terminated by DTMF input. The attribute is optional. The default 1877 value is true. 1879 maxtime: indicates The maximum duration of the recording. A valid 1880 value is a Time Designation (see Section 4.6.7). The attribute is 1881 optional. The default value is 15s. 1883 beep: indicates whether a 'beep' should be played immediately prior 1884 to initiation of the recording operation. A valid value is a 1885 boolean (see Section 4.6.1). The attribute is optional. The 1886 default value is false. 1888 finalsilence: indicates the interval of silence that indicates end 1889 of speech. This interval is not part of the recording itself. 1890 This parameter is ignored if the vadfinal attribute has the value 1891 false. A valid value is a Time Designation (see Section 4.6.7). 1892 The attribute is optional. The default value is 5s. 1894 It is an error if a dest attribute is specified where the MS does not 1895 understand the URI protocol, cannot locate the URI, or cannot send 1896 recorded data successfully to the location. 1898 The element has no child elements. 1900 Recording has the following execution model upon initialization: 1902 1. If an error occurs during execution, then record execution 1903 terminates and the error is reported to the dialog container. 1904 Data recorded before the error MAY be reported in 1905 (see Section 4.3.2.4). 1907 2. If DTMF input (not matching a operation) is received 1908 during prompt playback and the prompt bargein attribute is set to 1909 true, then record execution is activated. Otherwise, it is 1910 activated after the completion of prompt playback. 1912 3. If a beep attribute with the value of true is specified, then a 1913 beep tone is played. 1915 4. A timer with the duration of the value of the timeout attribute 1916 is activated. If the timer expires before the recording 1917 operation begins, then recording execution terminates and the 1918 status is reported to dialog container with (see 1919 Section 4.3.2.4) where the termmode attribute is set to noinput. 1921 5. Initiation of the recording operation depends on the value of the 1922 vadinitial attribute. If vadinitial has the value false, then 1923 the recording operation is initiated immediately. Otherwise, the 1924 recording operations is initiated when voice activity is 1925 detected. 1927 6. When the recording operation is initiated, a timer is started for 1928 the value of the maxtime attribute (maximum duration of the 1929 recording). If the timer expires before the recording operation 1930 is complete, then recording execution terminates and the 1931 dialogexit result contains a (see Section 4.3.2.4) 1932 with the termmode attribute set to maxtime. 1934 7. During the record operation user media input is recording in the 1935 format specified by the value of the type attribute. If the dest 1936 attribute is specified, then recorded input is sent to that 1937 location. Otherwise, MS uses an internal location. 1939 8. If the dtmfterm attribute has the value true and DTMF input is 1940 detected during the record operation, then the recording 1941 terminates and and status is reported to the dialog container 1942 with a (see Section 4.3.2.4) where the termmode 1943 attribute is set to dtmf. 1945 9. If vadfinal attribute has the value true, then the recording 1946 operation is terminated when a period of silence, with the 1947 duration specified by the value of the finalsilence attribute, is 1948 detected. This period of silence is not part of the final 1949 recording. The status is reported to the dialog container with a 1950 (see Section 4.3.2.4) where the termmode attribute 1951 is set to finalsilence. 1953 4.3.2. Exit Information 1955 When the dialog exits, information about the specified operations is 1956 reported in a notification event (Section 4.2.5.1). 1958 4.3.2.1. 1960 The element reports the information about prompt 1961 execution. It has the following attributes: 1963 duration: indicates the duration of prompt playback in milliseconds. 1964 A valid value is a non-negative integer (see Section 4.6.4). The 1965 attribute is optional. There is no default value. 1967 termmode: indicates how playback was terminated. Valid values are: 1968 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 1970 The element has no child elements. 1972 4.3.2.2. 1974 The element reports information about control 1975 execution. 1977 The element has no attributes and has 0 or more 1978 child elements each describing an individual runtime 1979 control match. 1981 4.3.2.2.1. 1983 The element has the following attributes: 1985 dtmf: DTMF input triggering the runtime control. A valid value is a 1986 DTMF string (see Section 4.6.3) with no space between characters. 1987 The attribute is mandatory. 1989 timestamp: indicates the time (on the MS) at which the control was 1990 triggered. A valid value is an dateTime expression 1991 (Section 4.6.12). The attribute is mandatory. 1993 The element has no child elements. 1995 4.3.2.3. 1997 The element reports the information about collect 1998 execution. 2000 The element has the following attributes: 2002 dtmf: DTMF input collected from the user. A valid value is a DTMF 2003 string (see Section 4.6.3) with no space between characters. The 2004 attribute is optional. There is no default value. 2006 termmode: indicates how collection was terminated. Valid values 2007 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2008 mandatory. 2010 The element has no child elements. 2012 4.3.2.4. 2014 The element reports the information about record 2015 execution. 2017 The element has the following attributes: 2019 recording: references the location to which media is recorded. A 2020 valid value is a URI (see Section 4.6.9). The attribute is 2021 optional. There is no default value. 2023 type: indicates the format of the recording. A valid value is a 2024 MIME type (see Section 4.6.10). The attribute is optional. There 2025 is no default value. 2027 duration: indicates the duration of the recording in milliseconds. 2028 A valid value is a non-negative integer (see Section 4.6.4). The 2029 attribute is optional. There is no default value. 2031 size: indicates the size of the recording in bytes. A valid value 2032 is a non-negative integer (see Section 4.6.4). The attribute is 2033 optional. There is no default value. 2035 termmode: indicates how recording was terminated. Valid values are: 2036 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2037 attribute is mandatory. 2039 The element has no child elements. 2041 4.4. Audit Elements 2043 The audit elements defined in this section allow the MS to be audited 2044 for package capabilities as well as dialogs managed by the package. 2045 Auditing is particularly important for two use cases. First, it 2046 enables discovery of package capabilities supported on an MS before 2047 an AS starts a dialog on connection or conference. The AS may then 2048 use this informaton to create request elements using supported 2049 capabilities and, in the case of codecs, to negotiate an appropriate 2050 SDP for a user agent's connection. Second, auditing enables 2051 discovery of the existence and status of dialogs currently managed by 2052 the package on the MS. This allows one AS to take over management of 2053 the dialogs when the AS which initiated the dialogs fails or is no 2054 longer available. 2056 4.4.1. 2058 The request element is sent to the MS to request information 2059 about the capabilities of, and dialogs currently managed with, this 2060 control package. Capabilities include supported dialog types, 2061 grammar formats, record and media types as well as codecs. Dialog 2062 information includes the status of managed dialogs as well as codecs. 2064 The element has the following attributes: 2066 capabilities: indicates whether package capabilities are to be 2067 audited. A valid value is a boolean (see Section 4.6.1). A value 2068 of true indicates that capability information is to be reported. 2069 A value of false indicates that capability information is not to 2070 be reported. The attribute is optional. The default value is 2071 true. 2073 dialogs: indicates whether dialogs currently managed by the package 2074 are to be audited. A valid value is a boolean (see 2075 Section 4.6.1). A value of true indicates that dialog information 2076 is to be reported. A value of false indicates that dialog 2077 information is not to be reported. The attribute is optional. 2078 The default value is true. 2080 dialogid: string identifying a specific dialog to audit. It is an 2081 error if the dialogid attribute is specified and the dialog 2082 identifier is not valid. The attribute is optional. There is no 2083 default value. 2085 If the dialogs attribute has the value true and dialogid attribute is 2086 specified, then only audit information about the specified dialog is 2087 reported. If the dialogs attribute has the value false, then no 2088 dialog audit information is reported even if a dialogid attribute is 2089 specified. 2091 The element has no child elements. 2093 When the MS receives a request, it MUST reply with a 2094 element (Section 4.4.2). If the request is 2095 successful, contain (depending on atrribute values) a 2096 element (Section 4.4.2.2) reporting package 2097 capabilities and a element (Section 4.4.2.3) reporting 2098 managed dialog information. 2100 For example, a request to audit capabilities and dialogs managed by 2101 the package: 2103 2104 2105 2107 In this example, only capabilities are to be audited: 2109 2110 2111 2113 With this example, only a specific dialog is to be audited: 2115 2116 2117 2119 4.4.2. 2121 The element describes a response to a 2122 request. 2124 The element has the following attributes: 2126 status: numeric code indicating the audit response status. The 2127 attribute is mandatory. Valid values are defined in Section 4.5. 2129 reason: string specifying a reason for the status. The attribute is 2130 optional. 2132 The element has the following sequence of child 2133 elements: 2135 element (Section 4.4.2.2) describing capabilities of 2136 the package. The element is optional. 2138 element (Section 4.4.2.3) describing information about 2139 managed dialogs. The element is optional. 2141 For example, a successful response to a request requesting 2142 capabilities and dialogs information: 2144 2145 2146 2147 2148 application/msc-ivr+xml 2149 2150 2151 application/srgs+xml 2152 2153 2154 application/x-wav 2155 video/3gpp 2156 2157 2158 application/x-wav 2159 video/3gpp 2160 2161 2162 2163 H.263 2164 2165 2166 H.264 2168 2169 2170 PCMU 2171 2172 2173 PCMA 2174 2175 2176 telephone-event 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 PCMA 2187 2188 2189 telephone-event 2190 2191 2192 2193 2194 2195 2197 4.4.2.1. 2199 The provides audit information about codecs. 2201 The element has no attributes. 2203 The element has the following sequence of child elements (0 2204 or more occurences): 2206 : audit information for a codec (Section 4.4.2.1.1). The 2207 element is optional. 2209 For example, a fragment describing two codecs: 2211 2212 2213 PCMA 2214 2215 2216 telephone-event 2217 2218 2220 4.4.2.1.1. 2222 The element describes a codec on the MS. The element is 2223 defined in the XCON conference information data model 2224 ([I-D.ietf-xcon-common-data-model]). 2226 Note that additional information about the codec can be provided 2227 through schema extensibility (see Section 5). 2229 [Editors Note: IVR-203. Do we need to define additional information? 2230 specific (rate, speed, etc) or generic using ?] 2232 For example, a fragment with a element describing the H.263 2233 codec: 2235 2236 H.263 2237 2239 4.4.2.2. 2241 The element provides audit information about package 2242 capabilities. 2244 The element has no attributes. 2246 The element has the following sequence of child 2247 elements: 2249 : element (Section 4.4.2.2.1) describing supported 2250 dialog types. The element is mandatory. 2252 : element (Section 4.4.2.2.2) describing supported 2253 (Section 4.3.1.3.1) format types. The element is 2254 mandatory. 2256 : element (Section 4.4.2.2.3) describing supported 2257 (Section 4.3.1.4) format types. The element is 2258 mandatory. 2260 : element (Section 4.4.2.2.4) describing supported 2261 (Section 4.3.1.1.1) format types. The element is 2262 mandatory. 2264 : element (Section 4.4.2.1) describing codecs available to 2265 the package. The element is mandatory. 2267 For example, a fragment describing capabilities: 2269 2270 2271 application/msc-ivr+xml 2272 application/voicexml+xml 2273 2274 2275 application/srgs+xml 2276 2277 2278 application/x-wav 2279 video/3gpp 2280 2281 2282 application/x-wav 2283 video/3gpp 2284 2285 2286 2287 H.263 2288 2289 2290 H.264 2291 2292 2293 PCMU 2294 2295 2296 PCMA 2297 2298 2299 telephone-event 2300 2301 2302 2304 4.4.2.2.1. 2306 The element provides information about dialog types 2307 supported by the package. The MS MUST include the mandatory dialog 2308 type for this package, "application/msc-ivr+xml" (Section 8.3) 2309 associated with the IVR dialog type (Section 4.3). 2311 The element has no attributes. 2313 The element has the following sequence of child 2314 elements (1 or more occurences): 2316 : element whose content model describes a mime type 2317 (Section 4.6.10). The element is optional. 2319 4.4.2.2.2. 2321 The element provides information about 2322 format types supported by the package. The MS MUST include the 2323 mandatory SRGS format type, "application/srgs+xml" 2324 (Section 4.3.1.3.1). 2326 The element has no attributes. 2328 The element has the following sequence of child 2329 elements (1 or more occurences): 2331 : element whose content model describes a mime type 2332 (Section 4.6.10). The element is optional. 2334 4.4.2.2.3. 2336 The element provides information about format 2337 types supported by the package (Section 4.3.1.4). 2339 The element has no attributes. 2341 The element has the following sequence of child 2342 elements (0 or more occurences): 2344 : element whose content model describes a mime type 2345 (Section 4.6.10). The element is optional. 2347 4.4.2.2.4. 2349 The element provides information about format 2350 types supported by the package (Section 4.3.1.1.1). 2352 The element has no attributes. 2354 The element has the following sequence of child elements 2355 (0 or more occurences): 2357 : element whose content model describes a mime type 2358 (Section 4.6.10). The element is optional. 2360 4.4.2.3. 2362 The element provides audit information about dialogs. 2364 The element has no attributes. 2366 The element has the following sequence of child elements (0 2367 or more occurences): 2369 : audit information for a dialog (Section 4.4.2.3.1). 2370 The element is optional. 2372 4.4.2.3.1. 2374 The element has the following attributes: 2376 dialogid: string identifying the dialog. The attribute is 2377 mandatory. 2379 state: string indicating the state of the dialog. Valid values are: 2380 preparing, prepared, starting, started. The attribute is 2381 mandatory. 2383 connectionid: string identifying the SIP dialog connection 2384 associated with the dialog (see Section 17.1 of 2385 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2386 optional. There is no default value. 2388 conferenceid: string identifying the conference associated with the 2389 dialog (see Section 17.1 of 2390 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2391 optional. There is no default value. 2393 The element has the following child element: 2395 element describing codecs used in the dialog. See 2396 Section 4.4.2.1. The element is optional. 2398 For example, a fragment describing a started dialog which is using 2399 PCMU and telephony-event codecs: 2401 2402 2403 2404 PCMU 2405 2406 2407 telephone-event 2408 2409 2410 2412 4.5. Response Status Codes 2414 The following status codes for dialog management (Section 4.2.4) and 2415 audit (Section 4.4.2) responses are defined: 2417 +-----------+-------------------------------------------------------+ 2418 | code | description | 2419 +-----------+-------------------------------------------------------+ 2420 | 200 | OK | 2421 | | | 2422 | 401 | dialogid already exists | 2423 | | | 2424 | 402 | dialogid does not exist | 2425 | | | 2426 | 403 | connectionid does not exist | 2427 | | | 2428 | 404 | conferenceid does not exist | 2429 | | | 2430 | 405 | Unknown or unsupported element | 2431 | | | 2432 | 406 | Element required | 2433 | | | 2434 | 407 | Unknown or unsupported attribute | 2435 | | | 2436 | 408 | Attribute required | 2437 | | | 2438 | 409 | dialog type not supported | 2439 | | | 2440 | 410 | Retrieving resource failed | 2441 | | | 2442 | 411 | Invalid attribute value | 2443 | | | 2444 | 412 | subscription not supported | 2445 | | | 2446 | 413 | invalid stream configuration | 2447 | | | 2448 | 414 | dialog execution cancelled | 2449 | | | 2450 | 499 | other error | 2451 +-----------+-------------------------------------------------------+ 2453 Table 1: status codes 2455 The MS MAY define other status codes. 2457 4.6. Type Definitions 2459 This section defines types referenced in attribute definitions. 2461 4.6.1. Boolean 2463 The value space of boolean is the set {true, false}. 2465 4.6.2. DTMFChar 2467 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 2468 7, 8, 9, #, *, A, B, C, D}. 2470 4.6.3. DTMFString 2472 A String composed of one or more DTMFChars. 2474 4.6.4. Non-Negative Integer 2476 The value space of non-negative integer is the infinite set 2477 {0,1,2,...}. 2479 4.6.5. Positive Integer 2481 The value space of positive integer is the infinite set {1,2,...}. 2483 4.6.6. String 2485 A string in the character encoding associated with the XML element. 2487 4.6.7. Time Designation 2489 A time designation consists of a non-negative real number followed by 2490 a time unit identifier. 2492 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 2494 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 2496 4.6.8. Percentage 2498 A percentage consists of a Positive Integer followed by "%". 2500 Examples include: "100%", "500%" and "10%". 2502 4.6.9. URI 2504 Uniform Resource Indicator as defined in [RFC3986]. 2506 4.6.10. mimetype 2508 A string formated as a IANA mimetype. 2510 4.6.11. Language Identifier 2512 A language identifier labels information content as being of a 2513 particular human language variant. Following the XML specification 2514 for language identification [XML], a legal language identifier is 2515 identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code 2516 where the language code is required and a country code or other 2517 subtag identifier is optional. 2519 4.6.12. DateTime 2521 A string formated according to the XML schema definition of a 2522 dateTime type ([XMLSchema:Part2]). 2524 5. Formal Syntax 2526 This section defines the XML schema for IVR Control Package. 2528 The schema defines datatypes, attributes, dialog management and IVR 2529 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 2530 most elements the order of child elements is significant. The schema 2531 is extensible: elements allow attributes and child elements from 2532 other namespaces. Elements from outside this package's namespace can 2533 occur after elements defined in this package. 2535 The schema is dependent upon the schema (framework.xsd) defined in 2536 Section 17.1 of the Control Framework 2537 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 2538 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 2539 xml:base). 2541 2542 2548 2549 2550 IETF MediaCtrl IVR 1.0 (20080610) 2552 This is the schema of the IETF MediaCtrl IVR control 2553 package. 2555 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 2556 2557 2559 2567 2569 2570 2571 This import brings in the XML attributes for 2572 xml:base, xml:lang, etc 2574 See http://www.w3.org/2001/xml.xsd for latest version 2575 2576 2577 2579 2582 2583 2584 This import brings in the framework attributes for 2585 conferenceid and connectionid. 2586 2587 2588 2590 2598 2599 2600 2601 This type is extended by other component types to 2602 allow elements and attributes from other namespaces 2603 to be added. 2604 2605 2606 2607 2609 2610 2611 2613 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2634 2635 2636 2638 2639 2640 2642 2644 2652 2654 2655 2656 2657 2658 2660 2663 2664 2665 2667 2669 2671 2672 2673 2675 2677 2679 2680 2681 2682 2683 2685 2687 2689 2691 2693 2694 2695 2696 2698 2700 2702 2703 2704 2705 2707 2709 2710 2711 2712 2713 2715 2717 2718 2719 2721 2723 2725 2726 2727 2728 2730 2731 2733 2734 2735 2736 2738 2740 2742 2743 2744 2745 2746 2747 2749 2751 2753 2754 2755 2757 2759 2760 2762 2764 2766 2767 2768 2769 2770 2772 2774 2776 2778 2780 2782 2783 2785 2786 2787 2788 2790 2792 2794 2795 2796 2797 2799 2801 2803 2804 2805 2806 2808 2810 2811 2812 2813 2815 2817 2818 2819 2821 2823 2825 2826 2827 2828 2829 2831 2833 2834 2835 2836 2838 2840 2842 2843 2844 2845 2847 2848 2849 2851 2853 2855 2857 2858 2859 2860 2862 2864 2865 2866 2868 2870 2872 2873 2874 2875 2876 2877 2879 2881 2883 2884 2885 2887 2889 2891 2892 2893 2894 2895 2897 2899 2900 2901 2902 2904 2906 2908 2909 2910 2911 2913 2914 2915 2917 2919 2920 2921 2922 2923 2924 2926 2928 2929 2930 2931 2933 2935 2936 2937 2938 2939 2941 2942 2943 2944 2946 2947 2949 2951 2953 2954 2955 2956 2958 2959 2961 2962 2963 2965 2967 2969 2970 2971 2972 2973 2975 2977 2979 2981 2983 2984 2986 2989 2990 2991 2993 2995 2997 2998 2999 3000 3001 3002 3003 3004 3006 3007 3008 3010 3011 3012 3014 3016 3018 3019 3020 3021 3023 3024 3026 3028 3030 3031 3032 3034 3035 3037 3038 3039 3040 3042 3044 3045 3046 3047 3048 3049 3051 3053 3055 3056 3057 3058 3060 3062 3064 3066 3067 3068 3070 3072 3074 3075 3076 3077 3079 3080 3081 3083 3085 3087 3089 3091 3093 3095 3097 3099 3101 3103 3105 3106 3107 3109 3111 3113 3114 3115 3116 3117 3119 3121 3122 3124 3126 3128 3130 3132 3134 3136 3137 3138 3140 3142 3143 3144 3145 3146 3148 3149 3150 3151 3153 3154 3156 3158 3160 3161 3162 3163 3165 3166 3167 3169 3171 3173 3175 3178 3180 3181 3182 3184 3186 3194 3196 3197 3198 3199 3201 3203 3205 3206 3207 3209 3211 3213 3214 3215 3216 3217 3219 3221 3223 3224 3226 3227 3228 3229 3231 3233 3235 3236 3237 3238 3239 3241 3243 3244 3245 3246 3247 3248 3250 3252 3254 3255 3256 3258 3260 3262 3263 3264 3265 3266 3268 3270 3271 3273 3274 3276 3278 3280 3281 3282 3283 3284 3286 3288 3290 3292 3294 3296 3297 3298 3299 3301 3303 3305 3307 3309 3310 3311 3312 3313 3315 3317 3319 3320 3321 3323 3325 3327 3328 3329 3330 3331 3333 3335 3336 3337 3338 3340 3342 3344 3345 3346 3347 3348 3350 3352 3353 3354 3355 3357 3359 3361 3362 3363 3364 3365 3367 3369 3370 3371 3372 3374 3376 3378 3379 3380 3381 3382 3384 3386 3387 3388 3389 3391 3393 3395 3396 3397 3398 3399 3401 3403 3404 3406 3408 3409 3410 3412 3414 3416 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 Time designation following Time in CSS2 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 DTMF character [0-9#*A-D] 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 DTMF sequence [0-9#*A-D] 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 whole integer followed by '%' 3517 3518 3519 3520 3521 3522 3524 3525 3526 3527 3528 3529 3530 3531 3533 3534 3535 3536 3537 3538 3539 3540 3542 3543 3544 3545 3546 3547 3548 3549 3550 3552 3553 3554 3555 3556 3557 3558 3560 3562 6. Examples 3564 This section provides examples of the IVR Control package. 3566 6.1. AS-MS Dialog Interaction Examples 3568 The following example assume a control channel has been established 3569 and synced as described in the Media Control Channel Framework 3570 ([I-D.ietf-mediactrl-sip-control-framework]). 3572 The XML messages are in angled brackets (with the root 3573 omitted); the REPORT status is in round brackets. Other aspects of 3574 the protocol are omitted for readability. 3576 6.1.1. Starting an IVR dialog 3578 An IVR dialog is started successfully, and dialogexit notification 3579 is sent from the MS to the AS when the dialog exits normally. 3581 Application Server (AS) Media Server (MS) 3582 | | 3583 | (1) CONTROL: | 3584 | ----------------------------------------> | 3585 | | 3586 | (2) 202 | 3587 | <--------------------------------------- | 3588 | | 3589 | | 3590 | (3) REPORT: | 3591 | (terminate) | 3592 | <---------------------------------------- | 3593 | | 3594 | (4) 200 | 3595 | ----------------------------------------> | 3596 | | 3597 | (5) CONTROL: | 3598 | | 3599 | <---------------------------------------- | 3600 | | 3601 | (6) 200 | 3602 | ----------------------------------------> | 3603 | | 3605 6.1.2. IVR dialog fails to start 3607 An IVR dialog fails to start due to an unknown dialog type. The 3608 is reported in a framework 200 message. 3610 Application Server (AS) Media Server (MS) 3611 | | 3612 | (1) CONTROL: | 3613 | ----------------------------------------> | 3614 | | 3615 | (2) 200: | 3616 | <---------------------------------------- | 3617 | | 3619 6.1.3. Preparing and starting an IVR dialog 3621 An IVR dialog is prepared and started successfully, and then the 3622 dialog exits normally. 3624 Application Server (AS) Media Server (MS) 3625 | | 3626 | (1) CONTROL: | 3627 | ----------------------------------------> | 3628 | | 3629 | (2) 202 | 3630 | <--------------------------------------- | 3631 | | 3632 | (3) REPORT: | 3633 | (terminate) | 3634 | <---------------------------------------- | 3635 | | 3636 | (4) 200 | 3637 | ----------------------------------------> | 3638 | | 3639 | (5) CONTROL: | 3640 | ----------------------------------------> | 3641 | | 3642 | (6) 202 | 3643 | <--------------------------------------- | 3644 | | 3645 | (7) REPORT: | 3646 | (terminate) | 3647 | <---------------------------------------- | 3648 | | 3649 | (8) 200 | 3650 | ----------------------------------------> | 3651 | | 3652 | (9) CONTROL: | 3653 | <---------------------------------------- | 3654 | | 3655 | (10) 200 | 3656 | ----------------------------------------> | 3657 | | 3659 6.1.4. Terminating a dialog 3661 An IVR dialog is started successfully, and then terminated by the AS. 3662 The dialogexit event is sent by to the AS when the dialog exits. 3664 Application Server (AS) Media Server (MS) 3665 | | 3666 | (1) CONTROL: | 3667 | ----------------------------------------> | 3668 | | 3669 | (2) 202 | 3670 | <--------------------------------------- | 3671 | | 3672 | (3) REPORT: | 3673 | (terminate) | 3674 | <---------------------------------------- | 3675 | | 3676 | (4) 200 | 3677 | ----------------------------------------> | 3678 | | 3679 | (5) CONTROL: | 3680 | ----------------------------------------> | 3681 | | 3682 | (6) 200: | 3683 | <---------------------------------------- | 3684 | | 3685 | (7) CONTROL: | 3686 | <---------------------------------------- | 3687 | | 3688 | (8) 200 | 3689 | ----------------------------------------> | 3690 | | 3692 Note that in (6) the payload to the 3693 request is carried on a framework 200 response since it could 3694 complete the requested operation before the transaction timeout. 3696 6.2. IVR Dialog Examples 3698 The following examples show how is used with 3699 , and elements to play prompts, 3700 set runtime controls, collect DTMF input and record user input. 3702 The examples do not specify all messages between the AS and MS. 3704 6.2.1. Playing announcements 3706 This example prepares an announcement composed of two prompts. 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3719 If the dialog is prepared successfully, a with status 200 3720 is returned: 3722 3723 3724 3726 The prepared dialog is then started on a conference playing the 3727 prompts twice: 3729 3730 3731 3733 In the case of a successful dialog, the output is provided in 3734 ; for example 3736 3737 3738 3739 3740 3741 3742 3744 6.2.2. Prompt and collect 3746 This example plays no prompts and just waits for DTMF input from the 3747 user: 3749 3750 3751 3752 3753 3754 3756 3758 If the dialog is successful, then dialogexit contains the 3759 dtmf collected in its result parameter: 3761 3762 3763 3764 3765 3766 3767 /mscivr> 3769 In this example, a prompt is played and then we wait for 3 hours for 3770 a two digit sequence: 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3783 If no user input is collected within 3 hours, then following would be 3784 returned: 3786 3787 3788 3789 3790 3791 3792 3794 And finally in this example, one of the input parameters is invalid: 3796 3797 3798 3799 3800 3801 3802 3805 3806 3807 3809 The error is reported in the response: 3811 3812 3814 3816 6.2.3. Prompt and record 3818 In this example, the user is prompted, then their input is recorded 3819 for a maximum of 30 seconds. 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3832 If successful and the recording is terminated by DTMF, the following 3833 is returned in a dialogexit : 3835 3836 3837 3838 3840 3841 3843 3845 6.2.4. Runtime controls 3847 In this example, a prompt is played with collect and runtime controls 3848 are activated. 3850 3851 3852 3853 3854 3855 3856 3858 3859 3860 3861 3863 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 3864 execute runtime controls on the prompt queue. The keys do not cause 3865 bargein to occur. If the user presses any other key, then the prompt 3866 is interrupted and DTMF collect begins. Note that runtime controls 3867 are not active during the collect operation. 3869 When the dialog is completed successfully, then both control and 3870 collect information is reported. 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3886 6.2.5. Subscriptions and notifications 3888 In this example, a looped dialog is started with subscription for 3889 notifications each time the user input matches the collect grammar: 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3902 Each time the user input the DTMF matching the grammar, the following 3903 notification event would be sent: 3905 3906 3907 3909 3910 3912 If no user input was provided, or the input did not match the 3913 grammar, the dialgo would continue to loop until terminated (or an 3914 error occured). 3916 6.3. Other Dialog types 3918 The following example requests that a VoiceXML dialog is started: 3920 3921 3924 3925 nfs://nas01/media1.3gp" 3926 nfs://nas01/media2.3gp" 3927 3928 3929 3931 If the MS does not support this dialog type, rhen the response would 3932 have the status code 409. However, if it does support the VoiceXML 3933 dialog type, it would respond with a 200 status, activate the 3934 VoiceXML dialog and may make the available in the VoiceXML 3935 script through the "connection.ccxml.values" object. 3937 When the VoiceXML dialog exits, exit parameters may be specified on 3938 the dialogexit event: 3940 3941 3942 3943 3944 peter 3945 1234 3946 3947 3948 3949 3951 7. Security Considerations 3953 As this control package uses XML markup, implementation MUST address 3954 the security considerations of [RFC3023]. 3956 8. IANA Considerations 3958 This specification instructs IANA to register a new Media Control 3959 Channel Framework Package, a new XML namespace and a new mime type. 3961 8.1. Control Package Registration 3963 Control Package name: msc-ivr/1.0 3965 8.2. URN Sub-Namespace Registration 3967 XML namespace: urn:ietf:params:xml:ns:msc-ivr 3969 8.3. Mime Type Registration 3971 MIME type: application/msc-ivr+xml 3973 9. Change Summary 3975 Note to RFC Editor: Please remove this whole section. 3977 The following are the major changes between the -00 of this work 3978 group item draft and the individual submission -05 version. 3980 o [IVR01] When the MS sends a notification event in a CONTROL, the 3981 AS sends mandatory 200 response (no extended transaction). 3983 o [IVR23] Added a top-level container element, , with 3984 version attribute. 3986 o Removed term 'basic' in title, description, elements and IANA 3987 registration. Control package name is now 'msc-ivr/1.0'. 3988 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 3989 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 3990 'dialog' and moved version attribute to mscivr element. 3992 o [IVR15] Updated and simplified XML schema. Ordering of child 3993 elements is significant. 3995 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 3996 'soundLevel' and 'clipBegin' to media element. 3998 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 3999 Added 'repeatCount' and 'repeatDur' to dialog element. 4001 o Moved VCR commands from into separate element. 4002 Defined controlinfo element to report rumtime control match 4003 information. 4005 o [IVR05] Added to where AS can subscribe 4006 to DTMF keypresses (all, control match only, collect match only). 4007 Extended to support associated notification. 4009 o Moved definition of into a separate section. 4011 o [IVR21] Added audit capability: auditing of package capabilities 4012 and managed dialogs 4014 o [IVR21] Explicitly stated that an error must be reported if the 4015 connection or conference referenced in a is not 4016 available at the time the request is processed on the MS. 4018 o Clarified that the rendering mechanism is MS 4019 implementation specific. 4021 o [IVR09]/[IVR10] Clarified attribute definitions and 4022 added 'gender' attrribute. 4024 o [IVR16] Clarified that info must be reported in dialogexit, if the 4025 correpsonding element is specified in a . For example, if 4026 is specified, then must be specified if the 4027 dialog terminates normally. 4029 o [IVR18] Added 'inactive' value for direction attribute of 4030 . 4032 o [IVR19] Clarified case of on connection/conference 4033 with multiple streams of the same type: recommended to be set 4034 explcitly with s. 4036 o [IVR02] Clarified that multiple dialogs may started simultaneously 4037 on the same connection or conference. 4039 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 4040 in the PREPARED state. 4042 o Added in and for input/output 4043 in other dialog types 4045 o [IVR22] Added fetchtimeout parameter to dialogprepare, 4046 dialogstart, media and grammar elements. 4048 o [IVR04] Added dialogexit status to indicate the connection or 4049 conference has been terminated. Added others status errors. 4051 o [IVR08] Clarified that the operation does not interrupt 4052 playing prompts and that matched DTMF is not available to 4053 or operations during prompt playback. 4055 o [IVR11] Added runtime controls for speed, goto start/end and 4056 external controls. 4058 o Clarified that recordings can be uploaded to dest during or after 4059 the recording operation. 4061 o /: clarified timer handling - timeout refers to 4062 waiting time for collect/record to begin. 4064 o Clarified behavior of immediate attribute on . 4066 o clarified dialogid lifecycle: dialogids can be re-cycled. 4068 o Clarified error handling. 4070 o Editorial tidy up of sections. 4072 o dialogid attribute on is now mandatory. 4074 o Clarified that the duration specified in finalsilence attribute of 4075 is not part of the final recording. 4077 o Clarified that the SRGS XML grammar format is mandatory 4079 The following are the major changes between the -06 of the draft and 4080 the -05 version. 4082 o Event notifications are sent in CONTROL messages with the MS 4083 acting as Control Framework Client. Compared with the previous 4084 approach, this means that a transaction is now 4085 complete when the MS sends a . A new transaction is 4086 initiated by the MS each time the MS sends a notification 4087 to the AS. 4089 o Changed conf-id to conferenceid and connection-id to connectionid. 4091 o Clarification of the state model for dialogs 4093 o : modified definition of src attribute to allow 4094 reference to external dialog documents; added (MIME) type 4095 attribute; removed child element. 4097 o : modified definition of src attribute to allow 4098 reference to external dialog documents; added (MIME) type 4099 attribute; removed child element; 4101 o : modified so that a dialogexit event is always 4102 sent for active dialogs (i.e. the dialogexit event is a 4103 terminating notification) 4105 o notification simplified and make more extensible. Manual 4106 notifications (via element) are removed from the basic 4107 package. A event is defined as child and it 4108 can be extended with additional child elements 4110 o element is removed. 4112 o element removed. 4114 o Replaced dialog templates with a general element. It has 4115 child elements for playing media resource (), collecting 4116 DTMF () and recording (). The functionality is 4117 largely unchanged. 4119 o and are extended with child 4120 element. 4122 o is extended with a element which contains 4123 status and reported information (replacement for output parameters 4124 in template dialogs) 4126 o Prompts: now structured as a element with , 4127 and children. The element has xml:base 4128 attribute, bargein, iterations, duration, volume and offset 4129 attributes. The speed attribute is removed. A element 4130 has src and type attributes. The maxage and maxstale attributes 4131 are removed. 4133 o DTMF input: parameters now specified as attributes of a 4134 element. Custom grammar specified with a element as 4135 child of element. Added 'escapekey' to allow the dialog 4136 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 4137 to allow the prompts to paused/resumed. Added 'volumeinterval', 4138 'volupkey' and voldnkey' to add prompt volume to be increased/ 4139 decreased. Moved 'bargein' attribute to prompt. 4141 o Recording: parameters now specified as attributes of 4142 element. Added 'dest' and 'beep' attributes. 4144 The following are the major changes between the -05 of the draft and 4145 the -04 version. 4147 o Mainly an alignment/evaluation exercise with requirements produced 4148 by MEDIACTRL IVR design team. 4150 o playannouncement parameters from Table 7 of '04' version are now 4151 reflected in text - schema to be updated. 4153 o Added VCR commands based on MSCML. 4155 The following are the major changes between the -04 of the draft and 4156 the -03 version. 4158 o None. 4160 The following are the major changes between the -03 of the draft and 4161 the -02 version. 4163 o added "basicivr:" protocol to template dialog types which must be 4164 supported as values of the "src" attribute in and 4165 . Note alternative: "/basicivr/playannouncement" 4166 offered in [RFC4240]. 4168 o added "basicivr:" URI schema to IANA considerations 4170 o Added mimetype, vadinitial and vadfinal parameters to 4171 'promptandrecord' dialog type 4173 o updated references 4175 The following are the major changes between the -02 of the draft and 4176 the -01 version. 4178 o added version 1.0 to package name 4180 o separate section for element definitions 4182 o dialogterminate treated as request rather than notification 4184 o simplified responses: single element 4186 o removed response elements: , , 4187 , 4189 o simplified event notifications to single element carried 4190 in a REPORT 4192 o element replaced with 4194 o removed element 4196 o added element as child of 4198 o removed 'type' attribute from and 4200 o added dialogid attribute to and 4202 o removed template "Sample Implementation" section 4204 o renamed to 4206 o re-organized so that template details after general package 4207 framework and element description. 4209 The following are the primary changes between the -01 of the draft 4210 and the -00 version. 4212 o Removed requirement for VoiceXML dialog support 4214 o Added requirement for template dialog support 4216 10. Contributors 4218 Asher Shiratzky from Radvision provided valuable support and 4219 contributions to the early versions of this document. 4221 The authors would like to thank the IVR design team consisting of 4222 Roni Even, Lorenzo Miniero, Adnan Saleem and Diego Besprosvan who 4223 provided valuable feedback, input and text to this document. 4225 11. Acknowledgments 4227 The authors would like to thank Adnan Saleem of Radisys, Gene 4228 Shtirmer of Intel, Dave Burke of Google, Dan York of Voxeo and Steve 4229 Buko of dialogic for expert reviews of this work. 4231 12. References 4233 12.1. Normative References 4235 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4236 Requirement Levels", BCP 14, RFC 2119, March 1997. 4238 12.2. Informative References 4240 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 4241 1.0", W3C Working Draft (work in progress), January 2007. 4243 [H.248.1] "Gateway control protocol: Version 3", ITU-T 4244 Recommendation H.248.1. 4246 [H.248.9] "Gateway control protocol: Advanced media server 4247 packages", ITU-T Recommendation H.248.9. 4249 [I-D.ietf-mediactrl-sip-control-framework] 4250 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 4251 Control Channel Framework", 4252 draft-ietf-mediactrl-sip-control-framework-02 (work in 4253 progress), April 2008. 4255 [I-D.ietf-xcon-common-data-model] 4256 Novo, O., Camarillo, G., Morgan, D., and R. Even, 4257 "Conference Information Data Model for Centralized 4258 Conferencing (XCON)", draft-ietf-xcon-common-data-model-10 4259 (work in progress), March 2008. 4261 [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session 4262 Markup Language (MSML)", draft-saleem-msml-06 (work in 4263 progress), February 2008. 4265 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 4266 Package", RFC 2897, August 2000. 4268 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 4269 Types", RFC 3023, January 2001. 4271 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 4272 A., Peterson, J., Sparks, R., Handley, M., and E. 4273 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 4274 June 2002. 4276 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 4277 Resource Identifier (URI): Generic Syntax", STD 66, 4278 RFC 3986, January 2005. 4280 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 4281 Media Services with SIP", RFC 4240, December 2005. 4283 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 4284 Parameter for "Bucket" Media Types", RFC 4281, 4285 November 2005. 4287 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 4288 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 4290 [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying 4291 Languages", BCP 47, RFC 4646, September 2006. 4293 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 4294 BCP 47, RFC 4647, September 2006. 4296 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 4297 (SIP) Event Package for Key Press Stimulus (KPML)", 4298 RFC 4730, November 2006. 4300 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 4301 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 4302 December 2006. 4304 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 4305 Control Markup Language (MSCML) and Protocol", RFC 5022, 4306 September 2007. 4308 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 4309 Requirements", RFC 5167, March 2008. 4311 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 4312 Specification Version 1.0", W3C Recommendation, 4313 March 2004. 4315 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 4316 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 4317 and S. Tryphonas, "Voice Extensible Markup Language 4318 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 4320 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 4321 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 4322 A., Porter, B., and K. Rehor, "Voice Extensible Markup 4323 Language (VoiceXML) Version 2.1", W3C Recommendation, 4324 June 2007. 4326 [W3C.REC-SMIL2-20051213] 4327 Michel, T., Mullender, S., Jansen, J., Koivisto, A., 4328 Zucker, D., Grassel, G., Bulterman, D., and N. Layaida, 4329 "Synchronized Multimedia Integration Language (SMIL 2.1)", 4330 World Wide Web Consortium Recommendation REC-SMIL2- 4331 20051213, December 2005, 4332 . 4334 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 4335 and F. Yergeau, "Extensible Markup Language (XML) 1.0 4336 (Third Edition)", W3C Recommendation, February 2004. 4338 [XMLSchema:Part2] 4339 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 4340 Second Edition", W3C Recommendation, October 2004. 4342 Authors' Addresses 4344 Scott McGlashan 4345 Hewlett-Packard 4346 Gustav III:s boulevard 36 4347 SE-16985 Stockholm, Sweden 4349 Email: scott.mcglashan@hp.com 4351 Tim Melanchuk 4352 Rain Willow Communications 4354 Email: tim.melanchuk@gmail.com 4356 Chris Boulton 4357 Avaya 4358 Building 3 4359 Wern Fawr Lane 4360 St Mellons 4361 Cardiff, South Wales CF3 5EA 4363 Email: cboulton@avaya.com 4365 Full Copyright Statement 4367 Copyright (C) The IETF Trust (2008). 4369 This document is subject to the rights, licenses and restrictions 4370 contained in BCP 78, and except as set forth therein, the authors 4371 retain all their rights. 4373 This document and the information contained herein are provided on an 4374 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 4375 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 4376 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 4377 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 4378 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 4379 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 4381 Intellectual Property 4383 The IETF takes no position regarding the validity or scope of any 4384 Intellectual Property Rights or other rights that might be claimed to 4385 pertain to the implementation or use of the technology described in 4386 this document or the extent to which any license under such rights 4387 might or might not be available; nor does it represent that it has 4388 made any independent effort to identify any such rights. Information 4389 on the procedures with respect to rights in RFC documents can be 4390 found in BCP 78 and BCP 79. 4392 Copies of IPR disclosures made to the IETF Secretariat and any 4393 assurances of licenses to be made available, or the result of an 4394 attempt made to obtain a general license or permission for the use of 4395 such proprietary rights by implementers or users of this 4396 specification can be obtained from the IETF on-line IPR repository at 4397 http://www.ietf.org/ipr. 4399 The IETF invites any interested party to bring to its attention any 4400 copyrights, patents or patent applications, or other proprietary 4401 rights that may cover technology that may be required to implement 4402 this standard. Please address the information to the IETF at 4403 ietf-ipr@ietf.org.