idnits 2.17.00 (12 Aug 2021) /tmp/idnits15187/draft-ietf-mediactrl-ivr-control-package-03.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 6143. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 6154. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 6161. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 6167. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 22 instances of lines with non-RFC2606-compliant FQDNs in the document. == There are 14 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (November 28, 2008) is 4921 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 4514, but not defined == Missing Reference: 'IVR-200' is mentioned on line 5292, but not defined == Missing Reference: 'IVR-201' is mentioned on line 5310, but not defined == Missing Reference: 'IVR01' is mentioned on line 5389, but not defined == Missing Reference: 'IVR23' is mentioned on line 5392, but not defined == Missing Reference: 'IVR15' is mentioned on line 5401, but not defined == Missing Reference: 'IVR06' is mentioned on line 5404, but not defined == Missing Reference: 'IVR05' is mentioned on line 5414, but not defined == Missing Reference: 'IVR21' is mentioned on line 5423, but not defined == Missing Reference: 'IVR16' is mentioned on line 5433, but not defined == Missing Reference: 'IVR18' is mentioned on line 5438, but not defined == Missing Reference: 'IVR19' is mentioned on line 5441, but not defined == Missing Reference: 'IVR02' is mentioned on line 5445, but not defined == Missing Reference: 'IVR20' is mentioned on line 5448, but not defined == Missing Reference: 'IVR22' is mentioned on line 5454, but not defined == Missing Reference: 'IVR04' is mentioned on line 5457, but not defined == Missing Reference: 'IVR08' is mentioned on line 5460, but not defined == Missing Reference: 'IVR11' is mentioned on line 5464, but not defined -- Looks like a reference, but probably isn't: '0' on line 5866 == Outdated reference: draft-ietf-mediactrl-sip-control-framework has been published as RFC 6230 ** Obsolete normative reference: RFC 3023 (Obsoleted by RFC 7303) ** Obsolete normative reference: RFC 4646 (Obsoleted by RFC 5646) -- Possible downref: Non-RFC (?) normative reference: ref. 'SRGS' -- Possible downref: Non-RFC (?) normative reference: ref. 'XML' == Outdated reference: draft-ietf-xcon-common-data-model has been published as RFC 6501 == Outdated reference: draft-saleem-msml has been published as RFC 5707 -- Obsolete informational reference (is this intentional?): RFC 4244 (Obsoleted by RFC 7044) -- Obsolete informational reference (is this intentional?): RFC 4281 (Obsoleted by RFC 6381) -- Obsolete informational reference (is this intentional?): RFC 4627 (Obsoleted by RFC 7158, RFC 7159) Summary: 3 errors (**), 0 flaws (~~), 25 warnings (==), 14 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: June 1, 2009 Rain Willow Communications 6 C. Boulton 7 Avaya 8 November 28, 2008 10 An Interactive Voice Response (IVR) Control Package for the Media 11 Control Channel Framework 12 draft-ietf-mediactrl-ivr-control-package-03 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 June 1, 2009. 39 Abstract 41 This document defines a Media Control Channel Framework Package for 42 Interactive Voice Response (IVR) dialog interaction on media 43 connections and conferences. The package defines dialog management 44 request elements for preparing, starting and terminating dialog 45 interactions, as well as associated responses and notifications. 46 Dialog interactions are specified in a dialog language. This package 47 defines a lightweight IVR dialog language (supporting prompt 48 playback, runtime controls, DTMF collect and media recording) and 49 allows other dialog languages to be used. The package also defines 50 elements for auditing package capabilities and IVR dialogs. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 55 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9 56 3. Control Package Definition . . . . . . . . . . . . . . . . . 10 57 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10 58 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 59 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 60 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 61 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 62 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 63 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12 64 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13 65 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 13 66 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15 67 4.2.1. . . . . . . . . . . . . . . . . . . . 18 68 4.2.2. . . . . . . . . . . . . . . . . . . . . 20 69 4.2.2.1. . . . . . . . . . . . . . . . . . . . 23 70 4.2.2.1.1. . . . . . . . . . . . . . . . . . . 24 71 4.2.2.2. . . . . . . . . . . . . . . . . . . . . 25 72 4.2.2.2.1. . . . . . . . . . . . . . . . . . . 26 73 4.2.2.2.2. . . . . . . . . . . . . . . . . . 26 74 4.2.3. . . . . . . . . . . . . . . . . . . 27 75 4.2.4. . . . . . . . . . . . . . . . . . . . . . 27 76 4.2.5. . . . . . . . . . . . . . . . . . . . . . . . 29 77 4.2.5.1. . . . . . . . . . . . . . . . . . . 29 78 4.2.5.2. . . . . . . . . . . . . . . . . . . 31 79 4.2.6. . . . . . . . . . . . . . . . . . . . . . . 31 80 4.2.6.1. . . . . . . . . . . . . . . . . . . . . . 32 81 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 33 82 4.3.1. . . . . . . . . . . . . . . . . . . . . . . 34 83 4.3.1.1. . . . . . . . . . . . . . . . . . . . . 36 84 4.3.1.1.1. . . . . . . . . . . . . . . . . . 38 85 4.3.1.1.2. . . . . . . . . . . . . . . . . . . . 39 86 4.3.1.1.3. . . . . . . . . . . . . . . . . . . . . 40 87 4.3.1.1.3.1. . . . . . . . . . . . . . . . . . . 42 88 4.3.1.2. . . . . . . . . . . . . . . . . . . . . 43 89 4.3.1.3. . . . . . . . . . . . . . . . . . . . . 46 90 4.3.1.3.1. . . . . . . . . . . . . . . . . . . 48 91 4.3.1.4. . . . . . . . . . . . . . . . . . . . . 50 92 4.3.1.5. . . . . . . . . . . . . . . . . . . . . . 53 93 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 94 4.3.2.1. . . . . . . . . . . . . . . . . . . 55 95 4.3.2.2. . . . . . . . . . . . . . . . . . . 55 96 4.3.2.2.1. . . . . . . . . . . . . . . . 55 97 4.3.2.3. . . . . . . . . . . . . . . . . . . 56 98 4.3.2.4. . . . . . . . . . . . . . . . . . . 56 99 4.3.2.4.1. . . . . . . . . . . . . . . . . . 56 100 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 57 101 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 57 102 4.4.2. . . . . . . . . . . . . . . . . . . . 59 103 4.4.2.1. . . . . . . . . . . . . . . . . . . . . 60 104 4.4.2.1.1. . . . . . . . . . . . . . . . . . . . 61 105 4.4.2.2. . . . . . . . . . . . . . . . . . 62 106 4.4.2.2.1. . . . . . . . . . . . . . . 63 107 4.4.2.2.2. . . . . . . . . . . . . . . . 64 108 4.4.2.2.3. . . . . . . . . . . . . . . . . 64 109 4.4.2.2.4. . . . . . . . . . . . . . . . . 64 110 4.4.2.2.5. . . . . . . . . . . . . . . . . . 65 111 4.4.2.2.5.1. . . . . . . . . . . . . . 65 112 4.4.2.2.6. . . . . . . . . . . . . 66 113 4.4.2.2.7. . . . . . . . . . . . . . 66 114 4.4.2.3. . . . . . . . . . . . . . . . . . . . . 66 115 4.4.2.3.1. . . . . . . . . . . . . . . . . 66 116 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 67 117 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 74 118 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76 119 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 101 120 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 101 121 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 101 122 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 102 123 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 102 124 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 103 125 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 104 126 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 104 127 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 105 128 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 107 129 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 108 130 6.2.5. Subscriptions and notifications . . . . . . . . . . . 109 131 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 109 132 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 110 133 7. Security Considerations . . . . . . . . . . . . . . . . . . . 113 134 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 116 135 8.1. Control Package Registration . . . . . . . . . . . . . . 116 136 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 116 137 8.3. MIME Type Registration . . . . . . . . . . . . . . . . . 116 138 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 117 139 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 127 140 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 128 141 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 129 142 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 136 143 13.1. Normative References . . . . . . . . . . . . . . . . . . 136 144 13.2. Informative References . . . . . . . . . . . . . . . . . 137 145 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 139 146 Intellectual Property and Copyright Statements . . . . . . . . . 140 148 1. Introduction 150 The Media Control Channel Framework 151 ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic 152 approach for establishment and reporting capabilities of remotely 153 initiated commands. The Control Framework utilizes many functions 154 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 155 rendezvous and establishment of a reliable channel for control 156 interactions. The Control Framework also introduces the concept of a 157 Control Package. A Control Package is an explicit usage of the 158 Control Framework for a particular interaction set. This document 159 defines a Control Package for Interactive Voice Response (IVR) 160 dialogs on media connections and conferences. The term 'dialog' in 161 this document refers to an IVR dialog and is completely unrelated to 162 the notion of a SIP dialog. The term 'IVR' is used in its inclusive 163 sense, allowing media other than voice for dialog interaction. 165 The package defines dialog management request elements for preparing, 166 starting and terminating dialog interactions, as well as associated 167 responses and notifications. Dialog interactions are specified using 168 a dialog language where the language specifies a well-defined syntax 169 and semantics for permitted operations (play a prompt, record input 170 from the user, etc). This package defines a lightweight IVR dialog 171 language (supporting prompt playback, runtime controls, DTMF collect 172 and media recording) and allows other dialog languages to be used. 173 These dialog languages are specified inside dialog management 174 elements for preparing and starting dialog interactions. The package 175 also defines elements for auditing package capabilities and IVR 176 dialogs. 178 This package has been designed to satisfy IVR requirements documented 179 in the Media Server Control Protocol Requirements document 180 ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. 181 It achieves this by building upon two major approaches to IVR dialog 182 design. These approaches address a wide range of IVR use cases and 183 are used in many applications which are extensively deployed today. 185 First, the package is designed to provide the major IVR functionality 186 of SIP Media Server languages such as netann ([RFC4240]), MSCML 187 ([RFC5022]) and MSML ([MSML]) which themselves build upon more 188 traditional non-SIP languages ([H.248.9], [RFC2897]). A key 189 differentiator is that this package provides IVR functionality using 190 the Media Control Channel Framework. 192 Second, its design is aligned with key concepts of the web model as 193 defined in W3C Voice Browser languages. The key dialog management 194 mechanism is closely aligned with CCXML ([CCXML10]). The dialog 195 functionality defined in this package can be largely seen as a subset 196 of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, 197 DTMF collection and media recording features are incorporated, but 198 not any advanced VoiceXML constructs (such as
, its 199 interpretation algorithm, or a dynamic data model). As W3C develops 200 VoiceXML 3.0, we expect to see further alignment, especially in 201 providing a set of basic independent primitive elements (such as 202 prompt, collect, record and runtime controls) which can be re-used in 203 different dialog languages. 205 By reusing and building upon design patterns from these approaches to 206 IVR languages, this package is intended to provide a foundation which 207 is familiar to current IVR developers and sufficient for most IVR 208 applications, as well as a path to other languages which address more 209 advanced applications. 211 This control package defines a lightweight IVR dialog language. The 212 scope of this dialog language is the following IVR functionality: 214 o playing one or more media resources as a prompt to the user 216 o runtime controls (including VCR controls like speed and volume) 218 o collecting DTMF input from the user according to a grammar 220 o recording user media input 222 Out of scope for this dialog language are more advanced functions 223 including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), 224 fax, automatic prompt recovery ('media fallback') and media 225 transformation. Such functionality can be addressed by other dialog 226 languages (such as VoiceXML) used with this package, extensions to 227 this package (addition of foreign elements or attributes from another 228 namespace) or other control packages. 230 The functionality of this package is defined by messages, containing 231 XML [XML] elements, transported using the Media Control Channel 232 Framework. The XML elements can be divided into three types: dialog 233 management elements; a dialog element which defines a lightweight IVR 234 dialog language used with dialog management elements; and finally, 235 elements for auditing package capabilities as well as dialogs managed 236 by the package. 238 Dialog management elements are designed to manage the general 239 lifecycle of a dialog. Elements are provided for preparing a dialog, 240 starting the dialog on a conference or connection, and terminating 241 execution of a dialog. Each of these elements is contained in a 242 Media Control Channel Framework CONTROL message sent to the media 243 server. When the appropriate action has been executed, the media 244 server sends a REPORT message (or a 200 response to the CONTROL if it 245 can execute in time) with a response element indicating whether the 246 operation was successful or not (e.g. if the dialog cannot be 247 started, then the error is reported in this response). Once a dialog 248 has been successfully started, the media server can send further 249 event notifications in a framework CONTROL message. This package 250 defines two event notifications: a DTMF event indicating the DTMF 251 activity; and a dialogexit event indicating that the dialog has 252 exited. If the dialog has executed successful, the dialogexit event 253 includes information collected during the dialog. If an error occurs 254 during execution (e.g. a media resource failed to play, no recording 255 resource available, etc), then error information is reported in the 256 dialogexit event. Once a dialogexit event is sent, the dialog 257 lifecycle is terminated. 259 The dialog management elements for preparing and starting a dialog 260 specify the dialog using a dialog language. A dialog language has 261 well-defined syntax and semantics for defined dialog operations. 262 Typically dialog languages are written in XML where the root element 263 has a designated XML namespace and, when used as standalone 264 documents, have an associated MIME media type. For example, VoiceXML 265 is an XML dialog language with the root element with the 266 designated namespace 'http://www.w3.org/2001/vxml' and standalone 267 documents are associated with the MIME media type 'application/ 268 vxml+xml' ([RFC4267]). 270 This control package defines its own lightweight IVR dialog language. 271 The language has a root element () with the same designated 272 namespace as used for other elements defined in this package (see 273 Section 8.2). The root element contains child elements for playing 274 prompts to the user, specifying runtime controls, collecting DTMF 275 input from the user and recording media input from the user. The 276 child elements can co-occur so as to provide 'play announcement', 277 'prompt and collect' as well as 'prompt and record' functionality. 279 The dialog management elements for preparing and starting a dialog 280 can specify the dialog language either by including inline a fragment 281 with the root element or by referencing an external dialog document. 282 The dialog language defined in this package is specified inline. 283 Other dialog languages, such as VoiceXML, can be used by referencing 284 an external dialog document. 286 The document is organized as follows. Section 3 describes how this 287 control package fulfills the requirements for a Media Control Channel 288 Framework control package. Section 4 describes the syntax and 289 semantics of defined elements, including dialog management 290 (Section 4.2), the IVR dialog element (Section 4.3) and audit 291 elements (Section 4.4). Section 5 describes an XML schema for these 292 elements and provides extensibility by allowing attributes and 293 elements from other namespaces. Section 6 provides examples of 294 package usage. Section 7 describes important security considerations 295 for use of this control package. Section 8 provides information on 296 IANA registration of this control package, including its name, XML 297 namespace and MIME media type. Finally, Section 12 provides 298 additional information on using VoiceXML when supported as an 299 external dialog language. 301 2. Conventions and Terminology 303 In this document, BCP 14 [RFC2119] defines the key words "MUST", 304 "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 305 "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In 306 addition, BCP 15 indicates requirement levels for compliant 307 implementations. 309 The following additional terms are defined for use in this document: 311 Dialog: A dialog performs media interaction with a user following 312 the concept of an IVR (Interactive Voice Response) dialog (this 313 sense of 'dialog' is completely unrelated to a SIP dialog). A 314 dialog is specified as inline XML, or via a URI reference to an 315 external dialog document. Traditional IVR dialogs typically 316 feature capabilities such as playing audio prompts, collecting 317 DTMF input and recording audio input from the user. More 318 inclusive definitions include support for other media types, 319 runtime controls, synthesized speech, recording and playback of 320 video, recognition of spoken input, and mixed initiative 321 conversations. 323 Application server: A SIP [RFC3261] application server (AS) hosts 324 and executes services such as interactive media and conferencing 325 in an operator's network. An AS influences and impacts the SIP 326 session, in particular by terminating SIP sessions on a media 327 server, which is under its control. 329 Media Server: A media server (MS) processes media streams on behalf 330 of an AS by offering functionality such as interactive media, 331 conferencing, and transcoding to the end user. Interactive media 332 functionality is realized by way of dialogs which are initiated by 333 the application server. 335 3. Control Package Definition 337 This section fulfills the mandatory requirement for information that 338 MUST be specified during the definition of a Control Framework 339 Package, as detailed in Section 8 of 340 [I-D.ietf-mediactrl-sip-control-framework]. 342 3.1. Control Package Name 344 The Control Framework requires a Control Package to specify and 345 register a unique name and version. 347 The name and version of this Control Package is "msc-ivr/1.0" (Media 348 Server Control - Interactive Voice Response - version 1.0). Its IANA 349 registration is specified in Section 8.1. 351 Since this is the initial ("1.0") version of the control package, 352 there are no backwards compatibility issues to address. 354 3.2. Framework Message Usage 356 The Control Framework requires a Control Package to explicitly detail 357 the control messages that can be used as well as provide an 358 indication of directionality between entities. This will include 359 which role type is allowed to initiate a request type. 361 This package specifies CONTROL and response messages in terms of XML 362 elements defined in Section 4, where the message bodies have the MIME 363 media type defined in Section 8.3. These elements describe requests, 364 response and notifications and all are contained within a root 365 element (Section 4.1). 367 In this package, the MS operates as a Control Server in receiving 368 requests from, and sending responses to, the AS (operating as Control 369 Client). Dialog management requests and responses are defined in 370 Section 4.2. Audit requests and responses are defined in 371 Section 4.4. dialog management and audit responses are carried in a 372 framework 200 response or REPORT message bodies. This package's 373 response codes are defined in Section 4.5. 375 Note that package responses are different from framework response 376 codes. Framework error response codes (see Section 8 of 377 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 378 or event notification is invalid; for example, a request is invalid 379 XML (400), or not understood (500). 381 The MS also operates as a Control Client in sending event 382 notification to the AS (Control Server). Event notifications 383 (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST 384 respond with a Control Framework 200 response. 386 3.3. Common XML Support 388 The Control Framework requires a Control Package definition to 389 specify if the attributes for media dialog or conference references 390 are required. 392 This package requires that the XML Schema in Section 17.1 of 393 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 394 media dialogs and conferences. 396 The package uses "connectionid" and "conferenceid" attributes for 397 various element definitions (Section 4). The XML schema (Section 5) 398 imports the definitions of these attributes from the framework 399 schema. 401 3.4. CONTROL Message Body 403 The Control Framework requires a Control Package to define the 404 control body that can be contained within a CONTROL command request 405 and to indicate the location of detailed syntax definitions and 406 semantics for the appropriate body types. 408 When operating as Control Server, the MS receives CONTROL messages 409 body with the MIME media type defined in Section 8.3 and containing 410 an element (Section 4.1) with either a dialog management or 411 audit request child element. 413 The following dialog management request elements are carried in 414 CONTROL message bodies to MS: (Section 4.2.1), 415 (Section 4.2.2) and 416 (Section 4.2.3)elements. 418 The request element (Section 4.4.1) is also carried in 419 CONTROL message bodies. 421 When operating as Control Client, the MS sends CONTROL messages with 422 the MIME media type defined in Section 8.3 and a body containing an 423 element (Section 4.1) with a notification child 424 element (Section 4.2.5). 426 3.5. REPORT Message Body 428 The Control Framework requires a control package definition to define 429 the REPORT body that can be contained within a REPORT command 430 request, or that no report package body is required. This section 431 indicates the location of detailed syntax definitions and semantics 432 for the appropriate body types. 434 When operating as Control Server, the MS sends REPORT bodies with the 435 MIME media type defined in Section 8.3 and containing a 436 element (Section 4.1) with a response child element. The response 437 element for dialog management requests is a element 438 (Section 4.2.4). The response element for an audit request is a 439 element (Section 4.4.2). 441 3.6. Audit 443 The Control Framework encourages Control Packages to specify whether 444 auditing is available, how it is triggered as well as the query/ 445 response formats. 447 This Control Packages supports auditing of package capabilities and 448 dialogs on the MS. An audit request is carried in a CONTROL message 449 (see Section 3.4) and an audit response in a REPORT message (or a 200 450 response to the CONTROL if it can execute the audit in time) (see 451 Section 3.5). 453 The syntax and semantics of audit request and response elements is 454 defined in Section 4.4. 456 3.7. Examples 458 The Control Framework recommends Control Packages to provide a range 459 of message flows that represent common flows using the package and 460 this framework document. 462 This Control Package provides examples of such message flows in 463 Section 6. 465 4. Element Definitions 467 This section defines the XML elements for this package. The elements 468 are defined in the XML namespace specified in Section 8.2. 470 The root element is (Section 4.1). All other XML elements 471 (requests, responses and notification elements) are contained within 472 it. Child elements describe dialog management (Section 4.2) and 473 audit (Section 4.4) functionality. The IVR dialog element (contained 474 within dialog management elements) is defined in Section 4.3. 475 Response status codes are defined in Section 4.5 and type definitions 476 in Section 4.6. 478 Implementation of this control package MUST address the Security 479 Considerations described in Section 7 ). 481 Implementation of this control package MUST adhere to the syntax and 482 semantics of XML elements defined in this section and the schema 483 (Section 5). Since XML Schema is unable to support some types of 484 syntactic constraints (such as attribute and element co-occurrence), 485 some elements in this package specify additional syntactic 486 constraints in their textual definition. If there is a difference in 487 constraints between the XML schema and the textual description of 488 elements in this section, the textual definition takes priority. 490 The XML schema supports extensibility by allowing attributes and 491 elements from other namespaces. Implementations MAY support 492 additional capabilities by means of attributes and elements from 493 other (foreign) namespaces. Attributes and elements from foreign 494 namespaces are not described in this section. 496 Some elements in this control package contain attributes whose value 497 is a URI. These elements include: (Section 4.2.1), 498 (Section 4.2.2), (Section 4.3.1.5), 499 (Section 4.3.1.3.1), and (Section 4.3.1.4). The MS MUST 500 support one or more schemes using communication protocols suitable 501 for fetching resources (e.g. HTTP). 503 Usage examples are provided in Section 6. 505 4.1. 507 The element has the following attributes (in addition to 508 standard XML namespace attributes such as xmlns): 510 version: a string specifying the mscivr package version. The value 511 is fixed as '1.0' for this version of the package. The attribute 512 is mandatory. 514 The element has the following defined child elements, only 515 one of which can occur: 517 1. dialog management elements defined in Section 4.2: 519 prepare a dialog. See Section 4.2.1 521 start a dialog. See Section 4.2.2 523 terminate a dialog. See Section 4.2.3 525 response to a dialog request. See Section 4.2.4 527 dialog or subscription notification. See Section 4.2.5 529 2. audit elements defined in Section 4.4: 531 audit package capabilities and managed dialogs. See 532 Section 4.4.1 534 response to an audit request. See Section 4.4.2 536 For example, a request to the MS to start an IVR dialog playing a 537 prompt: 539 540 541 542 543 544 545 546 547 549 and a response from the MS that the dialog started successfully: 551 552 553 555 and finally a notification from the MS indicating that the dialog 556 exited upon completion of playing the prompt: 558 559 560 561 562 563 564 566 4.2. Dialog Management Elements 568 This section defines the dialog management XML elements for this 569 control package. These elements are divided into requests, responses 570 and notifications. 572 Request elements are sent to the MS to request a specific dialog 573 operation to be executed. The following request elements are 574 defined: 576 : prepare a dialog for later execution 578 : start a (prepared) dialog on a connection or 579 conference 581 : terminate a dialog 583 Responses from the MS describe the status of the requested operation. 584 Responses are specified in a element (Section 4.2.4) which 585 includes a mandatory attribute describing the status in terms of a 586 numeric code. Response status codes are defined in Section 4.5. The 587 MS MUST respond to a request message with a response message. If the 588 MS is not able to process the request and carry out the dialog 589 operation, the request has failed and the MS MUST indicate the class 590 of failure using an appropriate 4xx response code. Unless an error 591 response code is specified for a class of error within this section, 592 implementations follow Section 4.5 in determining the appropriate 593 status code for the response. 595 Notifications are sent from the MS to provide updates on the status 596 of a dialog or operations defined within the dialog. Notifications 597 are specified in an element (Section 4.2.5). 599 +---------+ 600 | IDLE | 601 +---------+ 602 | | 603 | | 604 /| |/ 605 | | 606 +---------+ | | +---------+ 607 +-----<--| |<--------+ +------------>| |+------>-+ 608 | +-<----|PREPARING| |STARTING | | 609 | | | | ----------->| |---->--+ | 610 | | +---------+ / +---------+ | | 611 | | | / | | | 612 | | |/200 response / /200 response| | | 613 | | | / | | | 614 | | | / | | | 615 | | | / | | | 616 V V v // v | | 617 | | +---------+ / +---------+ | | 618 | | | |--------+ +----| | | | 619 | | |PREPARED |---------+ | | STARTED | | | 620 | | | | | +--->| | | | 621 | | | |--------+| /| | | | 622 | | +---------+ || 200 response +---------+ | | 623 | | || | | | 624 | | /dialogexit notification|| | | | 625 | | (timeout) || | | | 626 | | || | | | 627 | | || | | | 628 | | || | | | 629 | | ||/ | | | 630 | | || 200 response | | | 631 | | || |/dialogexit | | 632 | | || | notification | | 633 | | || | | | 634 | | || | | | 635 | | vv | | | 636 | | /ERROR response +-----------+ | | | 637 | +---------------------->| |<----------+ /ERROR response| | 638 +------------------------>|TERMINATED |<---------------------------+ | 639 / | |<-----------------------------+ 640 410 response +-----------+ /410 response 642 Figure 1: Dialog Lifecycle 644 The MS implementation MUST adhere to the dialog lifecycle shown in 645 Figure 1, where each dialog has the following states: 647 IDLE: the dialog is uninitialized. 649 PREPARING: the dialog is being prepared. The dialog is assigned a 650 valid dialog identifier (see below). If an error occurs the 651 dialog transitions to the TERMINATED state and the MS MUST send a 652 response indicating the error. If the dialog is terminated before 653 preparation is complete, the dialog transitions to the TERMINATED 654 state and the MS MUST send a 410 response (Section 4.5) for the 655 prepare request. 657 PREPARED: the dialog has been successfully prepared and the MS MUST 658 send a 200 response indicating the prepare operation was 659 successful. If the dialog is then terminated, the dialog 660 transitions to the TERMINATED state. If the duration the dialog 661 remains in the PREPARED state exceeds the maximum preparation 662 duration, the dialog transitions to the TERMINATED state and the 663 MS MUST send a dialogexit notification with the appropriate error 664 status code (see Section 4.2.5.1). A maximum preparation duration 665 of 30s is RECOMMENDED. 667 STARTING: the dialog is being started. If the dialog has not 668 already been prepared, it is first prepared and assigned a valid 669 dialog identifier (see below). If an error occurs the dialog 670 transitions to the TERMINATED state and the MS MUST send a 671 response indicating the error. If the dialog is terminated, the 672 dialog transitions to the TERMINATED state and the MS MUST send a 673 410 response (Section 4.5) for the start request. 675 STARTED: the dialog has been successfully started and is now active. 676 The MS MUST send a 200 response indicating the start operation was 677 successful. If any dialog events occurs which were subscribed to, 678 the MS MUST send a notifications when the dialog event occurs. 679 When the dialog exits (due to normal termination, an error or a 680 terminate request), the MS MUST send a dialogexit notification 681 event (see Section 4.2.5.1) and the dialog transitions to the 682 TERMINATED state. 684 TERMINATED: the dialog is terminated and its dialog identifier is no 685 longer valid. Dialog notifications MUST NOT be sent for this 686 dialog. 688 Each dialog has a valid identifier until it transitions to a 689 TERMINATED state. The dialog identifier is assigned by the MS unless 690 the or request already specifies a 691 identifier (dialogid) which is not associated with any other dialog 692 on the MS. Once a dialog is in a TERMINATED state, its dialog 693 identifier is no longer valid and can be reused for another dialog. 695 The identifier is used to reference the dialog in subsequent 696 requests, responses and notifications. In a request, 697 the dialog identifier can be specified in the prepareddialogid 698 attribute indicating the prepared dialog to start. In 699 and requests, the dialog identifier is 700 specified in the dialogid attribute, indicating which dialog is to be 701 terminated or audited respectively. If these requests specify a 702 dialog identifier already associated with another dialog on the MS, 703 the MS sends a response with a 405 status code (see Section 4.5) and 704 the same dialogid as in the request. The MS MUST specify a dialog 705 identifier in notifications associated with the dialog. The MS MUST 706 specify a dialog identifier in responses unless it is a response to a 707 syntactically invalid request. 709 For a given dialog, the or request 710 elements specify the dialog content to execute either by including 711 inline a element (the dialog language defined in this 712 package, see Section 4.3) or by referencing an external dialog 713 document (a dialog language defined outside this package). When 714 referencing an external dialog document, the request element contains 715 a URI reference to the remote document (specifying the dialog 716 definition) and, optionally, a type attribute indicating the MIME 717 media type associated with the dialog document. Consequently, the 718 dialog language associated with a dialog on the MS is identified 719 either inline by a child element or by a src attribute 720 referencing a document containing the dialog language. The MS MUST 721 support inline the IVR dialog language defined in Section 4.3. The 722 MS MAY support other dialog languages by reference. 724 4.2.1. 726 The request is sent to the MS to request preparation 727 of a dialog. Dialog preparation consists of (a) retrieving external 728 dialog document and resources (if required), and (b) validating the 729 dialog document syntactically and semantically. 731 A prepared dialog is executed when the MS receives a 732 request referencing the prepared dialog identifier (see 733 Section 4.2.2). 735 The element has the following attributes: 737 src: specifies the location of an external dialog document to 738 prepare. A valid value is a URI (see Section 4.6.9). If the URI 739 scheme is unsupported, the MS sends a with a 420 status 740 code (Section 4.5). If the document cannot be retrieved within 741 the timeout interval, the MS sends a with a 409 status 742 code. If the document contains a type of dialog language which 743 the MS does not supported, the MS sends a with a 421 744 status code. The attribute is optional. There is no default 745 value. 747 type: specifies the type of the external dialog document indicated 748 in the 'src' attribute. A valid value is a MIME media type (see 749 Section 4.6.10). If the URI scheme used in the src attribute 750 defines a mechanism for establishing the authoratitive MIME media 751 type of the media resource, the value returned by that mechanism 752 takes precedence over this attribute. The attribute is optional. 753 There is no default value. 755 fetchtimeout: the maximum timeout interval to wait when fetching an 756 external dialog document. A valid value is a Time Designation 757 (see Section 4.6.7). The attribute is optional. The default 758 value is 30s. 760 dialogid: string indicating a unique name for the dialog. If a 761 dialog with the same name already exists on the MS, the MS sends a 762 with a 405 status code (Section 4.5). If this 763 attribute is not specified, the MS MUST create a unique name for 764 the dialog (see Section 4.2 for dialog identifier assignment). 765 The attribute is optional. There is no default value. 767 The element has one optional child element: 769 an IVR dialog (Section 4.3) to prepare. The element is 770 optional. 772 The dialog to prepare can either be specified inline with a 773 child element or externally (for dialog languages defined outside 774 this specification) using the src attribute. It is a syntax error if 775 both an inline element element and a src attribute are 776 specified and the MS sends a with a 400 status code (see 777 Section 4.5). The type and fetchtimeout attributes are only relevant 778 when a dialog is specified as an external document. 780 For example, a request to prepare an inline IVR 781 dialog with a single prompt: 783 784 785 786 787 788 789 790 792 794 In this example, a request with a specified dialogid to prepare a 795 VoiceXML dialog document located externally: 797 798 801 803 Since MS support for dialog languages other than the IVR dialog 804 language defined in this package is optional, if the MS does not 805 support the dialog language it would send a response with the status 806 code 409 (Section 4.5). Further information on using VoiceXML can be 807 found in Section 12. 809 4.2.2. 811 The element is sent to the MS to start a dialog. If 812 the dialog has not been prepared, the dialog is prepared (retrieving 813 an external document and resources if necessary, and the dialog 814 document validated syntactically and semantically). Media processors 815 (e.g. DTMF and prompt queue) are activated and associated with the 816 specified connection or conference. 818 The element has the following attributes: 820 src: specifies the location of an external dialog document to start. 821 A valid value is a URI (see Section 4.6.9). If the URI scheme is 822 unsupported, the MS sends a with a 420 status code 823 (Section 4.5). If the document cannot be retrieved with the 824 timeout interval, the MS sends a with a 409 status 825 code. If the document contains a type of dialog language which 826 the MS does not supported, the MS sends a with a 421 827 status code. The attribute is optional. There is no default 828 value. 830 type: specifies the type of the external dialog document indicated 831 in the 'src' attribute. A valid value is a MIME media type (see 832 Section 4.6.10). If the URI scheme used in the src attribute 833 defines a mechanism for establishing the authoratitive MIME media 834 type of the media resource, the value returned by that mechanism 835 takes precedence over this attribute. The attribute is optional. 836 There is no default value. 838 fetchtimeout: the maximum timeout interval to wait when fetching an 839 external dialog document. A valid value is a Time Designation 840 (see Section 4.6.7). The attribute is optional. The default 841 value is 30s. 843 dialogid: string indicating a unique name for the dialog. If a 844 dialog with the same name already exists on the MS, the MS sends a 845 with a 405 status code (Section 4.5). If neither the 846 dialogid attribute nor the prepareddialogid attribute is 847 specified, the MS MUST create a unique name for the dialog (see 848 Section 4.2 for dialog identifier assignment). The attribute is 849 optional. There is no default value. 851 prepareddialogid: string identifying a dialog previously prepared 852 using a dialogprepare (Section 4.2.1) request. If neither the 853 dialogid attribute nor the prepareddialogid attribute is 854 specified, the MS MUST create a unique name for the dialog (see 855 Section 4.2 for dialog identifier assignment). The attribute is 856 optional. There is no default value. 858 connectionid: string identifying the SIP dialog connection on which 859 this dialog is to be started (see Section 17.1 of 860 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 861 optional. There is no default value. 863 conferenceid: string identifying the conference on which this dialog 864 is to be started (see Section 17.1 of 865 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 866 optional. There is no default value. 868 Exactly one of the connectionid or conferenceid attributes MUST be 869 specified. If both connectionid and conferenceid attributes are 870 specified or neither are specified, it is a syntax error and the MS 871 sends a with a 400 status code (Section 4.5). 873 It is an error if the connection or conference referenced by a 874 specific connectionid or conferenceid attribute is not available on 875 the MS at the time the request is executed. If an 876 invalid connectionid is specified, the MS sends a with a 877 407 status code (Section 4.5). If an invalid conferenceid is 878 specified, the MS sends a with a 408 status code. 880 The element has the following sequence of child 881 elements: 883 : specifies an IVR dialog (Section 4.3) to execute. The 884 element is optional. 886 : specifies subscriptions to dialog events 887 (Section 4.2.2.1). The element is optional. 889 : specifies input parameters (Section 4.2.6) for a dialog 890 languages defined outside this specification. The element is 891 optional. If a parameter is not supported by the MS for the 892 external dialog language, the MS sends a with a 427 893 status code (Section 4.5). 895 : determines the media stream(s) associated with the 896 connection or conference on which the dialog is executed 897 (Section 4.2.2.2). The element is optional. Multiple 898 elements can be specified. 900 The dialog to start can be specified either (a) inline with a 901 child element, or (b) externally using the src attribute 902 (for dialog languages defined outside this specification), or (c) 903 reference a previously prepared dialog using the prepareddialogid 904 attribute. If exactly one of the src attribute, the prepareddialogid 905 or a child element is not specified, it is a syntax error 906 and the MS sends a with a 400 status code (Section 4.5). 907 If the prepareddialogid and dialogid attributes are specified, it is 908 also a syntax error and the MS sends a with a 400 status 909 code. The type and fetchtimeout attributes are only relevant when a 910 dialog is specified as an external document. 912 The element provides explicit control over which media 913 streams on the connection or conference are used during dialog 914 execution. For example, if a connection supports both audio and 915 video streams, a element could be used to indicate that only 916 the audio stream is used in receive mode. In cases where there are 917 multiple media streams of the same type for a dialog, the AS MUST use 918 elements to explicitly specify the configuration. If no 919 elements are specified, then the default media configuration 920 is that defined for the connection or conference. 922 If a element is in conflict with (a) another 923 element, (b) with specified connection or conference media 924 capabilities, (c) with a SDP label value as part of the connectionid 925 (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) then 926 the MS sends a with a 411 status code (Section 4.5). If 927 the media stream configuration is not supported by the MS, then the 928 MS sends a with a 428 status code (Section 4.5). 930 The MS MAY support multiple, simultaneous dialogs being started on 931 the same connection or conference. For example, the same connection 932 can receive different media streams (e.g. audio and video) from 933 different dialogs, or receive (and implicitly mix where appropriate) 934 the same type of media streams from different dialogs. If the MS 935 does not support starting another dialog on the same connection or 936 conference, it sends a with a 432 status code 937 (Section 4.5) when it receives the second (or subsequent) dialog 938 request. 940 For example, a request to start an ivr dialog on a connection 941 subscribing to DTMF notifications: 943 944 945 946 947 948 949 950 951 952 953 954 955 957 In this example, the dialog is started on a conference where only 958 audio media stream is received: 960 961 962 963 964 965 966 968 4.2.2.1. 970 The element allows the AS to subscribe to, and be 971 notified of, specific events which occur during execution of the 972 dialog. Notifications of dialog events are delivered using the 973 element (see Section 4.2.5). 975 The element has no attributes. 977 The element has the following sequence of child elements 978 (0 or more occurrences): 980 : Subscription to DTMF input during the dialog 981 (Section 4.2.2.1.1). The element is optional. 983 The MS MUST support subscription for the IVR dialog 984 language defined in this specification (Section 4.3). It MAY support 985 other dialog subscriptions (specified using attributes and child 986 elements from a foreign namespace). If the MS does not support a 987 subscription specified in a foreign namespace, the MS sends a 988 response with a 431 status code (see Section 4.5). 990 4.2.2.1.1. 992 The element has the following attributes: 994 matchmode: controls which DTMF input are subscribed to. Valid 995 values are: "all" - notify all DTMF key presses received during 996 the dialog; "collect" - notify only DTMF input matched by the 997 collect operation (Section 4.3.1.3); and "control" - notify only 998 DTMF input matched by the runtime control operation 999 (Section 4.3.1.2). The attribute is optional. The default value 1000 is "all". 1002 The element has no child elements. 1004 DTMF notifications are delivered in the element 1005 (Section 4.2.5.2). 1007 For example, the AS wishes to subscribe to DTMF key press matching a 1008 runtime control: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1024 Each time a '2' or '3' DTMF input is received, the MS sends a 1025 notification event: 1027 1028 1029 1031 /event> 1032 1034 4.2.2.2. 1036 The element has the following attributes: 1038 media: a string indicating the type of media associated with the 1039 stream. The following values MUST be used for common types of 1040 media: "audio" for audio media, and "video" for video media. The 1041 attribute is mandatory. 1043 label: a string indicating the SDP label associated with a media 1044 stream ([RFC4574]). The attribute is optional. 1046 direction: a string indicating the direction of the media flow 1047 between a dialog and its end point conference or connection. 1048 Defined values are: "sendrecv" (media can be sent and received), 1049 "sendonly" (media can only be sent), "recvonly" (media can only be 1050 received) and "inactive" (stream is not to be used). The default 1051 value is "sendrecv". The attribute is optional. 1053 The element has the following sequence of child elements: 1055 : an element to specify the region within a mixer video 1056 layout where a media stream is displayed (Section 4.2.2.2.1). The 1057 element is optional. 1059 : an element to configure priority associated with the 1060 stream in the conference mix (Section 4.2.2.2.2). The element is 1061 optional. 1063 If conferenceid is not specified or if the "media" attribute does not 1064 have the value of "video", then the MS ignores the and 1065 elements. 1067 For example, assume a user agent connection with multiple audio and 1068 video streams associated with the user and a separate web camera. In 1069 this case, the dialog could be started to record only the audio and 1070 video streams associated with the user: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1083 Using the element, the dialog can be started on a conference 1084 mixer so that the video output from the dialog is directed to a 1085 specific region within a video layout. For example: 1087 1088 1089 1090 1091 1092 1093 1094 1095 r1 1096 1097 1099 4.2.2.2.1. 1101 The element is used to specify the region within a video 1102 layout where a video media stream is displayed. 1104 The element has no attributes and its content model 1105 specifies the name of the region layout. 1107 If the region name is invalid, then the MS reports a 416 status code 1108 (Section 4.5) in the response to the request element containing the 1109 element. 1111 4.2.2.2.2. 1113 The element is used to explicitly specify the priority of 1114 the dialog for presentation in a conference mix. 1116 The element has no attributes and its content model 1117 specifies a positive integer (see Section 4.6.5). The lower the 1118 value, the higher the priority. 1120 4.2.3. 1122 A dialog can be terminated by sending a request 1123 element to the MS. 1125 The element has the following attributes: 1127 dialogid: string identifying the dialog to terminate. If the 1128 specified dialog identifier is invalid, the MS sends a response 1129 with a 405 status code (Section 4.5). The attribute is mandatory. 1131 immediate: indicates whether a dialog in the STARTED state is to be 1132 terminated immediately or not (in other states, termination is 1133 always immediate). A valid value is a boolean (see 1134 Section 4.6.1). A value of true indicates that the dialog is 1135 terminated immediately and the MS MUST send a dialogexit 1136 notification (Section 4.2.5.1) without report information. A 1137 value of false indicates that the dialog terminates after the 1138 current iteration and the MS MUST send a dialogexit notification 1139 with report information. The attribute is optional. The default 1140 value is false. 1142 The MS MUST reply to request with a 1143 element (Section 4.2.4), reporting whether the dialog was terminated 1144 successful or not. 1146 For example, immediately terminating a STARTED dialog with dialogid 1147 "d4": 1149 1150 1151 1153 If the dialog is terminated successfully, then the response to the 1154 dialogterminate request would be: 1156 1157 1158 1160 4.2.4. 1162 Responses to dialog management requests are specified with a 1163 element. 1165 The element has following attributes: 1167 status: numeric code indicating the response status. Valid values 1168 are defined in Section 4.5. The attribute is mandatory. 1170 reason: string specifying a reason for the response status. The 1171 attribute is optional. There is no default value. 1173 dialogid: string identifying the dialog. If the request specifies a 1174 dialogid, then that value is used. Otherwise, with 1175 and requests, the dialogid generated 1176 by the MS is used. If there is no available dialogid because the 1177 request is syntactically invalid (e.g. a request 1178 with no dialogid attribute specified), then the value is the empty 1179 string. The attribute is mandatory. 1181 connectionid: string identifying the SIP dialog connection 1182 associated with the dialog (see Section 17.1 of 1183 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1184 optional. There is no default value. 1186 conferenceid: string identifying the conference associated with the 1187 dialog (see Section 17.1 of 1188 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1189 optional. There is no default value. 1191 For example, a response when a dialog was prepared successfully: 1193 1194 1195 1197 The response if dialog preparation failed due to an unsupported 1198 dialog language: 1200 1201 1203 1205 In this example a request does not specify a 1206 dialogid: 1208 1209 1210 1212 The response status indicates a 400 (Syntax error) status code and 1213 dialogid attribute has an empty string value: 1215 1216 1218 1220 4.2.5. 1222 When a dialog generates a notification event, the MS sends the event 1223 using an element. 1225 The element has the following attributes: 1227 dialogid: string identifying the dialog which generated the event. 1228 The attribute is mandatory. 1230 The element has the following child elements, only one of 1231 which can occur: 1233 : indicates that the dialog has exited 1234 (Section 4.2.5.1). 1236 : indicates that a DTMF key press occurred 1237 (Section 4.2.5.2). 1239 4.2.5.1. 1241 The event indicates that a prepared or active dialog has 1242 exited because it is complete, has been terminated, or because an 1243 error occurred during execution (for example, a media resource cannot 1244 be played). This event MUST be sent by the MS when the dialog exits. 1246 The element has the following attributes: 1248 status: a status code indicating the status of the dialog when it 1249 exits. A valid value is a non-negative integer (see 1250 Section 4.6.4). The MS MUST support the following values: 1252 0 indicates the dialog has been terminated by a 1253 request. 1255 1 indicates successful completion of the dialog. 1257 2 indicates the dialog terminated because the connection or 1258 conference associated with the dialog has terminated. 1260 3 indicates the dialog terminated due to exceeding its maximum 1261 duration. 1263 4 indicates the dialog terminated due to an execution error. 1265 5 Reserved for future use. 1267 6 Reserved for future use. 1269 7 Reserved for future use. 1271 8 Reserved for future use. 1273 9 Reserved for future use. 1275 The MS MAY define other values. The AS MUST treat any status code 1276 it does not recognize as being equivalent to 4 (dialog execution 1277 error). The attribute is mandatory. 1279 reason: a textual description which the MS SHOULD use to provide a 1280 reason for the status code; e.g. details about an error. A valid 1281 value is a string (see Section 4.6.6). The attribute is optional. 1282 There is no default value. 1284 The element has the following sequence of child 1285 elements: 1287 : report information (Section 4.3.2.1) about the prompt 1288 execution in an IVR . The element is optional. 1290 : reports information (Section 4.3.2.2) about the 1291 control execution in an IVR . The element is optional. 1293 : reports information (Section 4.3.2.3) about the 1294 collect execution in an IVR . The element is optional. 1296 : reports information (Section 4.3.2.4) about the record 1297 execution in an IVR . The element is optional. 1299 : reports exit parameters (Section 4.2.6) for a dialog 1300 language defined outside this specification. The element is 1301 optional. 1303 For example, an active exits normally the MS sends a 1304 dialogexit reporting information: 1306 1307 1308 1309 1310 1311 1312 1314 4.2.5.2. 1316 The element provide a notification of DTMF input 1317 received during the active dialog as requested by a 1318 subscription (Section 4.2.2.1). 1320 The element has the following attributes: 1322 matchmode: indicates the matching mode specified in the subscription 1323 request. Valid values are: "all" - all DTMF key presses notified 1324 individually; "collect" - only DTMF input matched by the collect 1325 operation notified; and "control" - only DTMF input matched by the 1326 control operation notified. The attribute is optional. The 1327 default value is "all". 1329 dtmf: DTMF key presses received according to the matchmode. A valid 1330 value is a DTMF string (see Section 4.6.3) with no space between 1331 characters. The attribute is mandatory. 1333 timestamp: indicates the time (on the MS) at which the last key 1334 press occurred according to the matchmode. A valid value is a 1335 dateTime expression (Section 4.6.12). The attribute is mandatory. 1337 For example, a notification of DTMF input matched during the collect 1338 operation: 1340 1341 1342 1344 /event> 1345 1347 4.2.6. 1349 The element is a container for elements 1350 (Section 4.2.6.1). 1352 The element has no attributes, but the following child 1353 elements are defined (0 or more): 1355 : specifies a parameter name and value (Section 4.2.6.1). 1357 For example, usage with a dialog language defined outside this 1358 specification to send additional parameters into the dialog: 1360 1361 1363 1364 playannouncement 1365 nfs://nas01/media1.3gp 1366 nfs://nas01/media2.3gp 1367 1368 1369 1371 4.2.6.1. 1373 The element describes a parameter name and value. 1375 The element has the following attributes: 1377 name: a string indicating the name of the parameter. The attribute 1378 is mandatory. 1380 type: specifies a type indicating how the inline value of the 1381 parameter is to be interpreted. A valid value is a MIME media 1382 type (see Section 4.6.10). The attribute is optional. The 1383 default value is "text/plain". 1385 The element content model is the value of the parameter. 1386 Note that a value which contains XML characters (e.g. "<") needs to 1387 be escaped following standard XML conventions. 1389 For example, usage with a dialog language defined outside this 1390 specification to receive parameters from the dialog when it exits: 1392 1393 1394 1395 1396 recording 1397 1399 1403 1404 1405 1406 1407 1409 4.3. IVR Dialog Elements 1411 This section describes the IVR dialog language defined as part of 1412 this specification. The MS MUST support this dialog language. 1414 The element is an execution container for operations of 1415 playing prompts (Section 4.3.1.1), runtime controls 1416 (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording 1417 user input (Section 4.3.1.4. Results of the dialog execution 1418 (Section 4.3.2) are reported in a dialogexit notification event. 1420 Using these elements, three common dialog models are supported: 1422 playannouncements: only a element is specified in the 1423 container. The prompt media resources are played in sequence. 1425 promptandcollect: a element is specified and, optionally, 1426 a element. If a element is specified and 1427 bargein is enabled, playing of the prompt is terminated when 1428 bargein occurs, and DTMF collection is initiated; otherwise, the 1429 prompt is played to completion before DTMF collection is 1430 initiated. If no prompt element is specified, DTMF collection is 1431 initiated immediately. 1433 promptandrecord: a element is specified and, optionally, a 1434 element. If a element is specified and bargein 1435 is enabled, playing of the prompt is terminated when bargein 1436 occurs, and recording is initiated; otherwise, the prompt is 1437 played to completion before recording is initiated. If no prompt 1438 element is specified, recording is initiated immediately. 1440 In addition, this dialog language supports runtime ('VCR') controls 1441 enabling a user to control prompt playback using DTMF. 1443 Each of the core elements - , , and 1444 - are specified so that their execution and reporting is 1445 largely self-contained. This facilitates their re-use in other 1446 dialog container elements. Note that DTMF and bargein behavior 1447 affects multiple elements and is addressed in the relevant element 1448 definitions. 1450 Execution results are reported in the notification event 1451 with child elements defined in Section 4.3.2. If the dialog 1452 terminated normally (i.e. not due to an error or to a 1453 request), then the MS MUST report the results for 1454 the operations specified in the dialog: 1456 : (see Section 4.3.2.1) with at least the 1457 termmode attribute specified. 1459 : (see Section 4.3.2.2) if any runtime 1460 controls are matched. 1462 : (see Section 4.3.2.3) with the dtmf and 1463 termmode attributes specified. 1465 : (see Section 4.3.2.4) with at least the 1466 termmode attribute and one element specified. 1468 The media format requirements for IVR dialogs are undefined. This 1469 package is agnostic to the media types and codecs for media resources 1470 and recording which need to be supported by an implementation. For 1471 example, a MS implementation might only support audio and in 1472 particular the 'audio/basic' codec for media playback and recording. 1473 However, when executing a dialog, if an MS encounters a media type or 1474 codec which it cannot process, the MS MUST stop further processing 1475 and report the error using the dialogexit notification. 1477 4.3.1. 1479 An IVR dialog to play prompts to the user, allow runtime controls, 1480 collect DTMF or record input. The dialog is specified using a 1481 element. 1483 A element has the following attributes: 1485 repeatCount: number of times the dialog is to be executed. A valid 1486 value is a non-negative integer (see Section 4.6.4). A value of 0 1487 indicates that the dialog is repeated until halted by other means. 1488 The attribute is optional. The default value is 1. 1490 repeatDur: maximum duration for dialog execution. A valid value is 1491 a Time Designation (see Section 4.6.7). If no value is specified, 1492 then there is no limit on the duration of the dialog. The 1493 attribute is optional. There is no default value. 1495 The repeatDur attribute takes priority over the repeatCount attribute 1496 in determining maximum duration of the dialog. See 'repeatCount' and 1497 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 1498 information. In the situation where a dialog is repeated more than 1499 once, only the results of operations in the last dialog iteration are 1500 reported. 1502 The element has the following sequence of child elements (at 1503 least one, any order): 1505 : defines media resources to play in sequence (see 1506 Section 4.3.1.1). The element is optional. 1508 : defines how DTMF is used for runtime controls (see 1509 Section 4.3.1.2). The element is optional. 1511 : defines how DTMF is collected (see Section 4.3.1.3). The 1512 element is optional. 1514 : defines how recording takes place (see Section 4.3.1.4). 1515 The element is optional. 1517 Although the behavior when both and elements are 1518 specified in a request is not defined in this control package, the MS 1519 MAY support this configuration. If the MS does not support this 1520 configuration, the MS sends a with a 433 status code. 1522 The MS has the following execution model for the IVR dialog after 1523 initialization (initialization errors are reported by the MS in the 1524 response): 1526 1. If an error occurs during execution, then the MS terminates the 1527 dialog and reports the error in the event by setting 1528 the status attribute (see Section 4.3.2). Details about the 1529 error are specified in the reason attribute. 1531 2. The MS initializes a counter to 0. 1533 3. The MS starts a duration timer for the value of the repeatDur 1534 attribute. If the timer expires before the dialog is complete, 1535 then the MS terminates the dialog and sends a dialogexit whose 1536 status attribute is set to 3 (see Section 4.2.5.1). The MS MAY 1537 report information in the dialogexit gathered in the last 1538 execution cycle (if any). 1540 4. The MS initiates a dialog execution cycle. Each cycle executes 1541 the operations associated with the child elements of the dialog. 1542 If a element is specified, then execute the element's 1543 prompt playing operation and activate any controls (if the 1544 element is specified). If no is specified or 1545 when a specified terminates, then start the collect 1546 operation or the record operation if the or 1547 elements respectively are specified. If subscriptions are 1548 specified for the dialog, then the MS sends a notification event 1549 when the specified event occurs. If execution of a child element 1550 results in an error, the MS terminates dialog execution (and 1551 stops other child element operations) and the MS sends a 1552 dialogexit status event, reporting any information gathered. 1554 5. If the dialog execution cycle completes successfully, then the MS 1555 increments the counter by one. If the value of the repeatCount 1556 attribute is greater than zero and the counter is equal to the 1557 value of the repeatCount attribute, then the MS terminates dialog 1558 execution and the sends a dialogexit (with a status of 1) 1559 reporting operation information collected in the last dialog 1560 execution cycle only. Otherwise, another dialog execution cycle 1561 is initiated. 1563 4.3.1.1. 1565 The element specifies a sequence of media resources to play 1566 back in document order. 1568 A element has the following attributes: 1570 xml:base: A string declaring the base URI from which relative URIs 1571 in child elements are resolved prior to fetching. A valid value 1572 is a URI (see Section 4.6.9). The attribute is optional. There 1573 is no default value. 1575 bargein: Indicates whether user input stops prompt playback unless 1576 the input is associated with a specified runtime 1577 operation (input matching control operations never interrupts 1578 prompt playback). A valid value is a boolean (see Section 4.6.1). 1579 A value of true indicates that bargein is permitted and prompt 1580 playback is stopped. A value of false indicates that bargein is 1581 not permitted: user input does not terminate prompt playback. The 1582 attribute is optional. The default value is true. 1584 The element has the following child elements (at least one, 1585 any order, multiple occurrences of elements permitted): 1587 : specifies a media resource (see Section 4.3.1.5) to play. 1588 The element is optional. 1590 : specifies a variable media announcement (see 1591 Section 4.3.1.1.1) to play. The element is optional. 1593 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1594 play. The element is optional. 1596 : specifies media resources to play in parallel (see 1597 Section 4.3.1.1.3). The element is optional. 1599 If the MS does not support the configuration required for prompt 1600 playback to the output media streams and a more specific error code 1601 is not defined for its child elements, the MS sends a with 1602 a 429 status code (Section 4.5). The MS MAY support transcoding 1603 between the media resource format and the output stream format. 1605 The MS has the following execution model for prompt playing after 1606 initialization: 1608 1. The MS initiates prompt playback playing its child elements 1609 (, , and ) one after another in 1610 document order. 1612 2. If any error (including fetching and rendering errors) occurs 1613 during prompt execution, then the MS terminates playback and 1614 reports its error status to the dialog container (see 1615 Section 4.3) with a (see Section 4.3.2.1) where the 1616 termmode attribute is set to stopped and any additional 1617 information is set. 1619 3. If DTMF input is received and the value of the bargein attribute 1620 is true, then the MS terminates prompt playback and reports its 1621 execution status to the dialog container (see Section 4.3) with a 1622 (see Section 4.3.2.1) where the termmode attribute 1623 is set to bargein and any additional information is set. 1625 4. If prompt playback is stopped by the dialog container, then the 1626 MS reports its execution status to the dialog container (see 1627 Section 4.3) with a (see Section 4.3.2.1) where the 1628 termmode attribute is set to stopped and any additional 1629 information is set. 1631 5. If prompt playback completes successfully, then the MS reports 1632 its execution status to the dialog container (see Section 4.3) 1633 with a (see Section 4.3.2.1) where the termmode 1634 attribute is set to completed and any additional information is 1635 set. 1637 4.3.1.1.1. 1639 The element specifies variable announcements using 1640 predefined media resources. Each variable has at least a type (e.g. 1641 date) and a value (e.g. 2008-02-25). The value is rendered according 1642 to the variable type (e.g. 25th February 2008) as well as other 1643 defined attributes. The precise mechanism for generating variable 1644 announcements (including the location of associated media resources) 1645 is implementation specific. 1647 A element has the following attributes: 1649 value: specifies the string to be rendered. A valid value is a 1650 string (see Section 4.6.6). The attribute is mandatory. 1652 type: specifies the type to use for rendering. A valid value is a 1653 string (see Section 4.6.6). The attribute is mandatory. 1655 format: specifies format information to use in conjunction with the 1656 type for the rendering. A valid value is a string (see 1657 Section 4.6.6). The attribute is optional. There is no default 1658 value. 1660 gender: specifies the gender to use when rendering the variable. 1661 Valid values are "male" or "female". The attribute is optional. 1662 There is no default value. 1664 xml:lang: specifies the language to use when rendering the variable. 1665 A valid value is a language identifier (see Section 4.6.11). The 1666 attribute is optional. There is no default value. 1668 The element has no children. 1670 This package is agnostic to which values, types and 1671 formats are supported by an implementation. If a element 1672 configuration specified in a request is not supported by the MS, the 1673 MS sends a with a 425 status code (Section 4.5). 1675 For example, the MS could support type/format combinations 1676 such as: 1678 type=date Supported formats: "mdy" (month day year), "ymd" (year 1679 month day), "dym" (day month year), "dm" (day month). The value 1680 attribute has the format YYYY-MM-DD (4 digit year, 2 digit month, 1681 2 digit day). 1683 type=time Supported formats: "t12" (12 hour format with am/pm), 1684 "t24" (24 hour format). The value attribute has the format HH:MM 1685 (2 digit hours, 2 digit minutes). 1687 type=digits Supported formats: "gen" (general digit string), "crn" 1688 (cardinal), "ord" (ordinal). The value attribute has the format 1689 of "D+" (one or more digits). 1691 This specification is agnostic to the type and codec of media 1692 resources into which variable are rendered as well as the rendering 1693 mechanism itself. For example, an MS implementation supporting audio 1694 rendering could map the into one or more audio media 1695 resources. 1697 Depending on the specific implementation of the rendering 1698 on the MS, execution of this element can be seen as conversion of a 1699 into a list of elements. For example, 1701 1704 could be transformed into audio saying "twenty-fifth of February two 1705 thousand and eight" using a list of resources: 1707 1708 1709 1710 1711 1712 1714 4.3.1.1.2. 1716 The element specifies a sequence of DTMF tones for output. 1718 DTMF tones could be generated using resources where the 1719 output is transported as RTP audio packets. However, 1720 resources are not sufficient for cases where DTMF tones are to be 1721 transported as DTMF RTP ([RFC4733]) or in event packages. 1723 A element has the following attributes: 1725 digits: specifies the DTMF sequence to output. A valid value is a 1726 DTMF string (see Section 4.6.3). The attribute is mandatory. 1728 level: used to define the power level for which the DTMF tones will 1729 be generated. Values are expressed in dBm0. A valid value is an 1730 integer in the range of 0 to -96 (dBm0). Larger negative values 1731 express lower power levels. Note that values lower than -55 dBm0 1732 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). 1733 The attribute is optional. The default value is -6 (dBm0). 1735 duration: specifies the duration for which each DTMF tone is 1736 generated. A valid value is a time designation (see 1737 Section 4.6.7). The MS MAY round the value if it only supports 1738 discrete durations. The attribute is optional. The default value 1739 is 100ms. 1741 interval: specifies the duration of a silence interval following 1742 each generated DTMF tone. A valid value is a time designation 1743 (see Section 4.6.7). The MS MAY round the value if it only 1744 supports discrete durations. The attribute is optional. The 1745 default value is 100ms. 1747 The element has no children. 1749 If a element configuration is not supported, the MS sends a 1750 with a 426 status code (Section 4.5). 1752 4.3.1.1.3. 1754 The element allows media resources to be played in parallel. 1755 Each of its child elements specify a media resource (or a sequence of 1756 media resources using the element). When playback of the 1757 element is initiated, the MS begins playback of all its child 1758 elements at the same time. This element is modeled after the 1759 element in SMIL ([W3C.REC-SMIL2-20051213]). 1761 The element has the following attributes: 1763 endsync: indicates when playback of the element is complete. Valid 1764 values are: "first" - indicates that the element is complete when 1765 any child element reports that it is complete; "last" - indicates 1766 it is complete when every child elements are complete. The 1767 attribute is optional. The default value is "last". 1769 If the value is "first", then playback of other child element is 1770 stopped when one child element reports it is complete. 1772 The element has the following child elements (at least one, any 1773 order, multiple occurrences of each element permitted): 1775 : specifies a sequence of media resources to play in a parallel 1776 with other child elements (see Section 4.3.1.1.3.1). The 1777 element is optional. 1779 : specifies a media resource (see Section 4.3.1.5) to play. 1780 The element is optional. 1782 : specifies a variable media announcement (see 1783 Section 4.3.1.1.1) to play. The element is optional. 1785 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1786 play. The element is optional. 1788 If a element configuration is not supported, the MS sends a 1789 with a 435 status code (Section 4.5). 1791 Runtime s (Section 4.3.1.2) apply to each child element 1792 playing parallel. For example, pause and resume controls cause all 1793 child elements to be paused and resumed respectively. 1795 If the element is stopped by the prompt container (e.g. bargein 1796 or dialog termination), then playback of all child elements is 1797 stopped. The playback duration (Section 4.3.2.1) reported for the 1798 element is the duration of parallel playback, not the 1799 cumulative duration of each child element played in parallel. 1801 For example, a request to playback audio and video media in parallel: 1803 1804 1805 1806 1807 1808 1810 1813 1814 1815 1816 1818 When the element is executed, it begins playback of its 1819 child element in document order sequence. In this case, there is 1820 only one child element, a element itself containing audio and 1821 video child element. Consequently playback of both audio and 1822 video media resources is initiated at the same time. Since the 1823 endsync attribute is not specified, the default value "last" applies. 1824 The element playback is complete when the media resource with 1825 the longest duration is complete. 1827 4.3.1.1.3.1. 1829 The element specifies media resources to be played back in 1830 sequence. This allows a sequence of media resources to be played at 1831 the same time as other children of a element are played in 1832 parallel. For example, a sequence of audio resources while a video 1833 resource is played in parallel. This element is modeled after the 1834 element in SMIL ([W3C.REC-SMIL2-20051213]). 1836 The element has no attributes. 1838 The element has the following child elements (at least one, any 1839 order, multiple occurrences of each element permitted): 1841 : specifies a media resource (see Section 4.3.1.5) to play. 1842 The element is optional. 1844 : specifies a variable media announcement (see 1845 Section 4.3.1.1.1) to play. The element is optional. 1847 : generates one or more DTMF tones (see Section 4.3.1.1.2) to 1848 play. The element is optional. 1850 Playback of a element is complete when all child elements in 1851 the sequence are complete. If the element is stopped by the 1852 container, then playback of the current child element is 1853 stopped (remaining child elements in the sequence are not played). 1855 For example, a request to play a sequence of audio resources in 1856 parallel with a video media: 1858 1859 1860 1861 1862 1863 1864 1866 1868 1870 1872 1873 1876 1877 1878 1879 1881 When the element is executed, it begins playback of the 1882 element containing a element and a video element. 1883 The element itself contains a sequence of audio 1884 elements. Consequently playback of the video media resource is 1885 initiated at the same time as playback of the sequence of the audio 1886 media resources is initiated. Each audio resource is played back 1887 after the previous one completes. Since the endsync attribute is set 1888 to "first", the element playback is complete when either all 1889 the audio resources in have been played to completion or the 1890 video is complete, whichever occurs first. 1892 4.3.1.2. 1894 The element defines how DTMF input is mapped to runtime 1895 controls, including prompt playback controls. 1897 DTMF input matching these controls MUST NOT cause prompt playback to 1898 interrupted (i.e. no prompt bargein), but causes the appropriate 1899 operation to be applied; for examples, speeding up prompt playback. 1901 DTMF input matching these controls has priority over input 1902 for the duration of prompt playback. If incoming DTMF matches a 1903 specified runtime control, then the DTMF is not available to the 1904 operation, including its digit buffer. Once prompt 1905 playback is complete, runtime controls are no longer active. 1907 The element has the following attributes: 1909 gotostartkey: maps a DTMF key to skip directly to the start of the 1910 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1911 The attribute is optional. There is no default value. 1913 gotoendkey: maps a DTMF key to skip directly to the end of the 1914 prompt. A valid value is a DTMF Character (see Section 4.6.2). 1915 The attribute is optional. There is no default value. 1917 skipinterval: indicates how far a MS skips backwards or forwards 1918 through prompt playback when the rewind (rwkey) of fast forward 1919 key (ffkey) is pressed. A valid value is a Time Designation (see 1920 Section 4.6.7). The attribute is optional. The default value is 1921 6s. 1923 ffkey: maps a DTMF key to a fast forward operation equal to the 1924 value of 'skipinterval'. A valid value is a DTMF Character (see 1925 Section 4.6.2). The attribute is optional. There is no default 1926 value. 1928 rwkey: maps a DTMF key to a rewind operation equal to the value of 1929 'skipinterval'. A valid value is a DTMF Character (see 1930 Section 4.6.2). The attribute is optional. There is no default 1931 value. 1933 pauseinterval: indicates how long a MS pauses prompt playback when 1934 the pausekey is pressed. A valid value is a Time Designation (see 1935 Section 4.6.7). The attribute is optional. The default value is 1936 10s. 1938 pausekey: maps a DTMF key to a pause operation equal to the value of 1939 'pauseinterval'. A valid value is a DTMF Character (see 1940 Section 4.6.2). The attribute is optional. There is no default 1941 value. 1943 resumekey: maps a DTMF key to a resume operation. A valid value is 1944 a DTMF Character (see Section 4.6.2). The attribute is optional. 1945 There is no default value. 1947 volumeinterval: indicates the increase or decrease in playback 1948 volume (relative to the current volume) when the volupkey or 1949 voldnkey is pressed. A valid value is a percentage (see 1950 Section 4.6.8). The attribute is optional. The default value is 1951 10%. 1953 volupkey: maps a DTMF key to a volume increase operation equal to 1954 the value of 'volumeinterval'. A valid value is a DTMF Character 1955 (see Section 4.6.2). The attribute is optional. There is no 1956 default value. 1958 voldnkey: maps a DTMF key to a volume decrease operation equal to 1959 the value of 'volumeinterval'. A valid value is a DTMF Character 1960 (see Section 4.6.2). The attribute is optional. There is no 1961 default value. 1963 speedinterval: indicates the increase or decrease in playback speed 1964 (relative to the current speed) when the speedupkey or speeddnkey 1965 is pressed. A valid value is a percentage (see Section 4.6.8). 1966 The attribute is optional. The default value is 10%. 1968 speedupkey: maps a DTMF key to a speed increase operation equal to 1969 the value of the speedinterval attribute. A valid value is a DTMF 1970 Character (see Section 4.6.2). The attribute is optional. There 1971 is no default value. 1973 speeddnkey: maps a DTMF key to a speed decrease operation equal to 1974 the value of the speedinterval attribute. A valid value is a DTMF 1975 Character (see Section 4.6.2). The attribute is optional. There 1976 is no default value. 1978 external: allows one or more DTMF keys to be declared as external 1979 controls (for example: video camera controls); the MS can send 1980 notifications when a matching key is activated using 1981 (Section 4.2.5.2). A valid value is a DTMF String (see 1982 Section 4.6.3). The attribute is optional. There is no default 1983 value. 1985 If the same DTMF is specified in more than one DTMF key control 1986 attribute - except the pausekey and resumekey attributes - the MS 1987 sends a with a 413 status code (Section 4.5). 1989 The MS has the following execution model for runtime control after 1990 initialization: 1992 1. If an error occurs during execution, then the MS terminates 1993 runtime control and the error is reported to the dialog 1994 container. The MS MAY report controls executed successfully 1995 before the error in (see Section 4.3.2.2). 1997 2. Runtime controls are active only during prompt playback (if no 1998 element is specified, then runtime controls are 1999 ignored). If DTMF input matches any specified keys (for example 2000 the ffkey), then the appropriate operation is applied 2001 immediately. If a seek operation (ffkey, rwkey) attempts to go 2002 beyond the beginning or end of the prompt queue, then it is 2003 automatically truncated to the prompt beginning or end 2004 respectively. If the pause operation attempts to pause output 2005 when it is already paused, then the operation is ignored. If the 2006 resume operation attempts to resume when the prompts are not 2007 paused, then the operation is ignored. If a volume operations 2008 attempts to go beyond the minimum or maximum volume supported by 2009 the platform, then the operation is ignored. 2011 3. If DTMF control subscription has been specified for the dialog, 2012 then each DTMF match of a control operation is reported in a 2013 notification event (Section 4.2.5.2). 2015 4. When the dialog exits, all control matches are reported in a 2016 element (Section 4.3.2.2). 2018 4.3.1.3. 2020 The element defines how DTMF input is collected. 2022 The element has the following attributes: 2024 cleardigitbuffer: indicates whether the digit buffer is to be 2025 cleared. A valid value is a boolean (see Section 4.6.1). A value 2026 of true indicates that the digit buffer is to be cleared. A value 2027 of false indicates that the digit buffer is not to be cleared. 2028 The attribute is optional. The default value is true. 2030 timeout: indicates the maximum time to wait for user input to begin. 2031 A valid value is a Time Designation (see Section 4.6.7). The 2032 attribute is optional. The default value is 5s. 2034 interdigittimeout: indicates inter-digit timeout value to use when 2035 recognizing DTMF input. A valid value is a Time Designation (see 2036 Section 4.6.7). The attribute is optional. The default value is 2037 2s. 2039 termtimeout: indicates the terminating timeout value to use when 2040 recognizing DTMF input. A valid value is a Time Designation (see 2041 Section 4.6.7). The attribute is optional. The default value is 2042 0s (no delay). 2044 escapekey: specifies a DTMF key that indicates the DTMF collection 2045 is to be re-initiated. A valid value is a DTMF Character (see 2046 Section 4.6.2). The attribute is optional. There is no default 2047 value. 2049 termchar: specifies a DTMF character for terminating DTMF input 2050 collection using the internal grammar. A valid value is a DTMF 2051 character (see Section 4.6.2). To disable termination by a 2052 conventional DTMF character, set the parameter to an 2053 unconventional character like 'A'. The attribute is optional. 2054 The default value is '#'. 2056 maxdigits: The maximum number of digits to collect using an internal 2057 digits (0-9 only) grammar. A valid value is a positive integer 2058 (see Section 4.6.5). The attribute is optional. The default 2059 value is 5. 2061 The element has the following child elements: 2063 : indicates a custom grammar format (see 2064 Section 4.3.1.3.1). The element is optional. 2066 The custom grammar takes priority over the internal grammar. If a 2067 element is specified, the MS MUST use it for DTMF 2068 collection. 2070 The MS has the following execution model for DTMF collection after 2071 initialization: 2073 1. The DTMF collection buffer MUST NOT receive DTMF input matching 2074 operations (see Section 4.3.1.2). 2076 2. If an error occurs during execution, then the MS terminates 2077 collection and reports the error to the dialog container (see 2078 Section 4.3). The MS MAY report DTMF collected before the error 2079 in (see Section 4.3.2.3). 2081 3. The MS clears the digit buffer if the value of the 2082 cleardigitbuffer attribute is true. 2084 4. The MS activates a timer with the duration of the value of the 2085 timeout attribute. If the timer expires before DTMF input 2086 collection begins, then collection execution terminates, the 2087 (see Section 4.3.2.3) has the termmode attribute 2088 set to noinput and the execution status reported to the dialog 2089 container. 2091 5. If DTMF collect input matches the value of the escapekey 2092 attribute, then the MS cancels the timer and re-initializes DTMF 2093 collection. 2095 6. Other DTMF collect input is matched to the grammar. Valid DTMF 2096 patterns are either a simple digit string where the maximum 2097 length is determined by the maxdigits attribute and which can be 2098 terminated by the character in the termchar attribute; or a 2099 custom DTMF grammar specified with the element. The 2100 attributes interdigittimeout and termtimeout control interdigit 2101 timeout and the terminating timeout respectively. 2103 7. If the collect input completely matches the grammar, the timer is 2104 canceled, the MS terminates collection execution and reports 2105 execution status to the dialog container with (see 2106 Section 4.3.2.3) where the termmode attribute set to match. 2108 8. If the collect input does not match the grammar, the MS cancels 2109 the timer, terminates collection execution and reports execution 2110 status to the dialog container with a (see 2111 Section 4.3.2.3) where the termmode attribute set to nomatch. 2113 4.3.1.3.1. 2115 The element allows a custom grammar, inline or external, to 2116 be specified. Custom grammars permit the full range of DTMF 2117 characters including '*' and '#' to be specified for DTMF pattern 2118 matching. 2120 The element has the following attributes: 2122 src: specifies the location of an external grammar document. A 2123 valid value is a URI (see Section 4.6.9). If the URI scheme is 2124 unsupported, the MS sends a with a 420 status code 2125 (Section 4.5). If the resource cannot be retrieved within the 2126 timeout interval, the MS sends a with a 409 status 2127 code. If the grammar format is not supported, the MS sends a 2128 with a 424 status code. The attribute is optional. 2129 There is no default value. 2131 type: identifies the preferred type of the grammar document 2132 identified by the src attribute. A valid value is a MIME media 2133 type (see Section 4.6.10). If the URI scheme used in the src 2134 attribute defines a mechanism for establishing the authoratitive 2135 MIME media type of the media resource, the value returned by that 2136 mechanism takes precedence over this attribute. The attribute is 2137 optional. There is no default value. 2139 fetchtimeout: the maximum interval to wait when fetching a grammar 2140 resource. A valid value is a Time Designation (see 2141 Section 4.6.7). The attribute is optional. The default value is 2142 30s. 2144 The element allows inline grammars to be specified. XML 2145 grammar formats MUST use a namespace other than the one used in this 2146 specification. Non-XML grammar formats MAY use a CDATA section. 2148 The MS MUST support the [SRGS] XML grammar format ("application/ 2149 srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar 2150 formats. If the grammar format is not supported by the MS, then the 2151 MS sends a with a 424 status code (Section 4.5). 2153 For example, the following fragment shows DTMF collection with an 2154 inline SRGS grammar: 2156 2158 2159 2161 2162 2163 0 2164 1 2165 2 2166 3 2167 4 2168 5 2169 6 2170 7 2171 8 2172 9 2173 2174 2176 2177 2178 2179 2180 2181 # 2182 * 9 2183 2184 2186 2187 2188 2190 The same grammar could also be referenced externally (and take 2191 advantage of HTTP caching): 2193 2194 2196 2198 4.3.1.4. 2200 The element specifies how media input is recorded. 2202 The element has the following attributes: 2204 timeout: indicates the time to wait for user input to begin. A 2205 valid value is a Time Designation (see Section 4.6.7). The 2206 attribute is optional. The default value is 5s. 2208 vadinitial: Control whether voice activity detection (VAD) is used 2209 to initiate the recording operation. A valid value is a boolean 2210 (see Section 4.6.1). A value of true indicates the MS MUST 2211 initiate recording if the VAD detects voice on the configured 2212 inbound audio streams. A value of false indicates that the MS 2213 MUST NOT initiate recording using VAD. The attribute is optional. 2214 The default value is false. 2216 vadfinal: Control whether voice activity detection (VAD) is used to 2217 terminate the recording operation. A valid value is a boolean 2218 (see Section 4.6.1). A value of true indicates the MS MUST 2219 terminate recording if the VAD detects a period of silence (whose 2220 duration is specified by the finalsilence attribute) on configured 2221 inbound audio streams. A value of false indicates that the MS 2222 MUST NOT terminate recording using VAD. The attribute is 2223 optional. The default value is false. 2225 dtmfterm: Indicates whether the recording operation is terminated by 2226 DTMF input. A valid value is a boolean (see Section 4.6.1). A 2227 value of true indicates that recording is terminated by DTMF 2228 input. A value of false indicates that recording is not 2229 terminated by DTMF input. The attribute is optional. The default 2230 value is true. 2232 maxtime: indicates The maximum duration of the recording. A valid 2233 value is a Time Designation (see Section 4.6.7). The attribute is 2234 optional. The default value is 15s. 2236 beep: indicates whether a 'beep' is to be played immediately prior 2237 to initiation of the recording operation. A valid value is a 2238 boolean (see Section 4.6.1). The attribute is optional. The 2239 default value is false. 2241 finalsilence: indicates the interval of silence that indicates the 2242 end of voice input. This interval is not part of the recording 2243 itself. This parameter is ignored if the vadfinal attribute has 2244 the value false. A valid value is a Time Designation (see 2245 Section 4.6.7). The attribute is optional. The default value is 2246 5s. 2248 append: indicates whether recorded data is appended or not to a 2249 recording location if a resource already exists. A valid value is 2250 a boolean (see Section 4.6.1). A value of true indicates that 2251 recorded data is appended to the existing resource at a recording 2252 location. A value of false indicates that recorded data is to 2253 overwrite the existing resource. The attribute is optional. The 2254 default value is false. 2256 If either the vadinitial or vadfinal attribute is set to true and the 2257 MS does not support VAD, the MS sends a with a 434 status 2258 code (Section 4.5). 2260 The element has the following child element (0 or more 2261 occurrences): 2263 : specifies the location and type of the media resource for 2264 uploading recorded data (see Section 4.3.1.5). The MS uploads 2265 recorded data to this resource as soon as possible after recording 2266 is complete. The element is optional. 2268 If multiple elements are specified, then media input is to be 2269 recorded in parallel to multiple resource locations. 2271 If no child element is specified, the MS MUST provide a 2272 recording location where the recording format is implementation- 2273 specific. The recording location and format are reported in 2274 (Section 4.3.2.4) when the dialog terminates. The 2275 recording MUST be available from this location until the connection 2276 or conference associated with the dialog on the MS terminates. 2278 If the MS does not support the configuration required for recording 2279 from the input media streams to one or more elements and a 2280 more specific error code is not defined for its child elements, the 2281 MS sends a with a 423 status code (Section 4.5). 2283 Note that an MS MAY support uploading recorded data to recording 2284 locations at the same time the recording operation takes place. Such 2285 implementations need to be aware of the requirements of certain 2286 recording formats (e.g. WAV) for metadata at the beginning of the 2287 uploaded file, that the finalsilence interval is not part of the 2288 recording and how these requirements interact with the URI scheme. 2290 The MS has the following execution model for recording after 2291 initialization: 2293 1. If an error occurs during execution (e.g. authentication or 2294 communication error when trying to upload to a recording 2295 location), then the MS terminates record execution and reports 2296 the error to the dialog container (see Section 4.3). The MS MAY 2297 report data recorded before the error in (see 2298 Section 4.3.2.4). 2300 2. If DTMF input (not matching a operation) is received 2301 during prompt playback and the prompt bargein attribute is set to 2302 true, then the MS activates the record execution. Otherwise, the 2303 MS activates it after the completion of prompt playback. 2305 3. If a beep attribute with the value of true is specified, then the 2306 MS plays a beep tone. 2308 4. The MS activates a timer with the duration of the value of the 2309 timeout attribute. If the timer expires before the recording 2310 operation begins, then the MS terminates the recording execution 2311 and reports the status to dialog container with (see 2312 Section 4.3.2.4) where the termmode attribute is set to noinput. 2314 5. Initiation of the recording operation depends on the value of the 2315 vadinitial attribute. If vadinitial has the value false, then 2316 the recording operation is initiated immediately. Otherwise, the 2317 recording operation is initiated when voice activity is detected. 2319 6. When the recording operation is initiated, a timer is started for 2320 the value of the maxtime attribute (maximum duration of the 2321 recording). If the timer expires before the recording operation 2322 is complete, then the MS terminates recording execution and 2323 reports the execution status to the dialog container with 2324 (see Section 4.3.2.4) where the termmode attribute 2325 set to maxtime. 2327 7. During the record operation input media streams are recording to 2328 a location and format specified in one or more child 2329 elements. If no child element is specified, the MS 2330 records input to an implementation-specific location and format. 2332 8. If the dtmfterm attribute has the value true and DTMF input is 2333 detected during the record operation, then the MS terminates 2334 recording and its status is reported to the dialog container with 2335 a (see Section 4.3.2.4) where the termmode attribute 2336 is set to dtmf. 2338 9. If vadfinal attribute has the value true, then the MS terminates 2339 the recording operation when a period of silence, with the 2340 duration specified by the value of the finalsilence attribute, is 2341 detected. This period of silence is not part of the final 2342 recording. The status is reported to the dialog container with a 2343 (see Section 4.3.2.4) where the termmode attribute 2344 is set to finalsilence. 2346 For example, a request to record audio and video input to separate 2347 locations: 2349 2350 2351 2352 2353 2355 2357 2358 2359 2360 2362 When the element is executed, it immediately begins 2363 recording of the audio and video (since vadinitial is false) where 2364 the destination locations are specified in the child 2365 elements. Recording is completed when the duration reaches 30s or 2366 the connection is terminated. 2368 4.3.1.5. 2370 The element specifies a media resource to playback from (see 2371 Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback 2372 case, the resource is retrieved and in the recording case, recording 2373 data is uploaded to the resource location. 2375 A element has the following attributes: 2377 loc: specifies the location of the media resource. A valid value is 2378 a URI (see Section 4.6.9) including authentication information if 2379 defined by the URI scheme (e.g. basic access authentication in 2380 HTTP). If the URI scheme is not supported by the MS, the MS sends 2381 a with a 420 status code (Section 4.5). If the 2382 resource is to be retrieved but the MS cannot retrieve it within 2383 the timeout interval, the MS sends a with a 409 status 2384 code. If the format of the media resource is not supported, the 2385 MS sends a with a 429 status code. The attribute is 2386 mandatory. 2388 type: specifies the type of the media resource indicated in the loc 2389 attribute. A valid value is a MIME media type (see 2390 Section 4.6.10) which, depending on its definition, can include 2391 additional parameters (e.g. [RFC4281]). If the URI scheme used 2392 in the loc attribute defines a mechanism for establishing the 2393 authoratitive MIME media type of the media resource, the value 2394 returned by that mechanism takes precedence over this attribute. 2395 If additional media parameters are specified, the MS MUST use them 2396 to determine media processing. For example, [RFC4281] defines a 2397 'codec' parameter for media types like video/3gpp which would 2398 determine which media streams are played or recorded. The 2399 attribute is optional. There is no default value. 2401 fetchtimeout: the maximum interval to wait when fetching a media 2402 resource. A valid value is a Time Designation (see 2403 Section 4.6.7). The attribute is optional. The default value is 2404 30s. 2406 soundLevel: playback soundLevel (volume) for the media resource. A 2407 valid value is a percentage (see Section 4.6.4). The value 2408 indicates increase or decrease relative to the original recorded 2409 volume of the media. A value of 100% (the default) plays the 2410 media at its recorded volume, a value of 200% will play the media 2411 twice recorded volume, 50% at half its recorded volume, a value of 2412 0% will play the media silently, and so on. See 'soundLevel' in 2413 SMIL ([W3C.REC-SMIL2-20051213]) for further information. The 2414 attribute is optional. The default value is 100%. 2416 clipBegin: offset from start of media resource to begin playback. A 2417 valid value is a Time Designation (see Section 4.6.7). The offset 2418 is measured in normal media playback time from the beginning of 2419 the media resource. If the clipBegin offset is after the end of 2420 media (or the clipEnd offset), no media is played. See 2421 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further 2422 information. The attribute is optional. The default value is 0s. 2424 clipEnd: offset from start of media resource to end playback. A 2425 valid value is a Time Designation (see Section 4.6.7). The offset 2426 is measured in normal media playback time from the beginning of 2427 the media resource. If the clipEnd offset is after the end of 2428 media, then the media is played to the end. If clipBegin is after 2429 clipEnd, then no media is played. See 'clipEnd' in SMIL 2430 ([W3C.REC-SMIL2-20051213]) for further information. The attribute 2431 is optional. There is no default value. 2433 The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are 2434 only relevant in the playback use case. The MS ignores these 2435 attributes when using the for recording. 2437 The element has no children. 2439 4.3.2. Exit Information 2441 When the dialog exits, information about the specified operations is 2442 reported in a notification event (Section 4.2.5.1). 2444 4.3.2.1. 2446 The element reports the information about prompt 2447 execution. It has the following attributes: 2449 duration: indicates the duration of prompt playback in milliseconds. 2450 A valid value is a non-negative integer (see Section 4.6.4). The 2451 attribute is optional. There is no default value. 2453 termmode: indicates how playback was terminated. Valid values are: 2454 'stopped', 'completed' or 'bargein'. The attribute is mandatory. 2456 The element has no child elements. 2458 4.3.2.2. 2460 The element reports information about control 2461 execution. 2463 The element has no attributes and has 0 or more 2464 child elements each describing an individual runtime 2465 control match. 2467 4.3.2.2.1. 2469 The element has the following attributes: 2471 dtmf: DTMF input triggering the runtime control. A valid value is a 2472 DTMF string (see Section 4.6.3) with no space between characters. 2473 The attribute is mandatory. 2475 timestamp: indicates the time (on the MS) at which the control was 2476 triggered. A valid value is an dateTime expression 2477 (Section 4.6.12). The attribute is mandatory. 2479 The element has no child elements. 2481 4.3.2.3. 2483 The element reports the information about collect 2484 execution. 2486 The element has the following attributes: 2488 dtmf: DTMF input collected from the user. A valid value is a DTMF 2489 string (see Section 4.6.3) with no space between characters. The 2490 attribute is optional. There is no default value. 2492 termmode: indicates how collection was terminated. Valid values 2493 are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is 2494 mandatory. 2496 The element has no child elements. 2498 4.3.2.4. 2500 The element reports information about record execution 2501 (Section 4.3.1.4). 2503 The element has the following attributes: 2505 termmode: indicates how recording was terminated. Valid values are: 2506 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The 2507 attribute is mandatory. 2509 duration: indicates the duration of the recording in milliseconds. 2510 A valid value is a non-negative integer (see Section 4.6.4). The 2511 attribute is optional. There is no default value. 2513 The element has the following child element (0 or more 2514 occurrences): 2516 : indicates information about a recorded media resource 2517 (see Section 4.3.2.4.1). The element is optional. 2519 When the record operation is successful, the MS MUST specify a 2520 element for each recording location. For example, if the 2521 element contained three child elements, then the 2522 would contain three child elements. 2524 4.3.2.4.1. 2526 The element reports information about a recorded media 2527 resource. 2529 The element has the following attributes: 2531 loc: indicates the location of the media resource. A valid value is 2532 a URI (see Section 4.6.9). The attribute is mandatory. 2534 type: indicates the format of the media resource. A valid value is 2535 a MIME media type (see Section 4.6.10). The attribute is 2536 mandatory. 2538 size: indicates the size of the media resource in bytes. A valid 2539 value is a non-negative integer (see Section 4.6.4). The 2540 attribute is optional. There is no default value. 2542 4.4. Audit Elements 2544 The audit elements defined in this section allow the MS to be audited 2545 for package capabilities as well as dialogs managed by the package. 2546 Auditing is particularly important for two use cases. First, it 2547 enables discovery of package capabilities supported on an MS before 2548 an AS starts a dialog on connection or conference. The AS can then 2549 use this information to create request elements using supported 2550 capabilities and, in the case of codecs, to negotiate an appropriate 2551 SDP for a user agent's connection. Second, auditing enables 2552 discovery of the existence and status of dialogs currently managed by 2553 the package on the MS. This could be used when one AS takes over 2554 management of the dialogs if the AS which initiated the dialogs fails 2555 or is no longer available (see Security Considerations described in 2556 Section 7 ). 2558 4.4.1. 2560 The request element is sent to the MS to request information 2561 about the capabilities of, and dialogs currently managed with, this 2562 control package. Capabilities include supported dialog languages, 2563 grammar formats, record and media types as well as codecs. Dialog 2564 information includes the status of managed dialogs as well as codecs. 2566 The element has the following attributes: 2568 capabilities: indicates whether package capabilities are to be 2569 audited. A valid value is a boolean (see Section 4.6.1). A value 2570 of true indicates that capability information is to be reported. 2571 A value of false indicates that capability information is not to 2572 be reported. The attribute is optional. The default value is 2573 true. 2575 dialogs: indicates whether dialogs currently managed by the package 2576 are to be audited. A valid value is a boolean (see 2577 Section 4.6.1). A value of true indicates that dialog information 2578 is to be reported. A value of false indicates that dialog 2579 information is not to be reported. The attribute is optional. 2580 The default value is true. 2582 dialogid: string identifying a specific dialog to audit. The MS 2583 sends a response with a 406 status code (Section 4.5) if the 2584 specified dialog identifier is invalid. The attribute is 2585 optional. There is no default value. 2587 If the dialogs attribute has the value true and dialogid attribute is 2588 specified, then only audit information about the specified dialog is 2589 reported. If the dialogs attribute has the value false, then no 2590 dialog audit information is reported even if a dialogid attribute is 2591 specified. 2593 The element has no child elements. 2595 When the MS receives an request, it MUST reply with a 2596 element (Section 4.4.2) which includes a mandatory 2597 attribute describing the status in terms of a numeric code. Response 2598 status codes are defined in Section 4.5. If the request is 2599 successful, the contains (depending on attribute 2600 values) a element (Section 4.4.2.2) reporting package 2601 capabilities and a element (Section 4.4.2.3) reporting 2602 managed dialog information. If the MS is not able to process the 2603 request and carry out the audit operation, the audit request has 2604 failed and the MS MUST indicate the class of failure using an 2605 appropriate 4xx response code. Unless an error response code is 2606 specified for a class of error within this section, implementations 2607 follow Section 4.5 in determining the appropriate status code for the 2608 response. 2610 For example, a request to audit capabilities and dialogs managed by 2611 the package: 2613 2614 2615 2617 In this example, only capabilities are to be audited: 2619 2620 2621 2622 With this example, only a specific dialog is to be audited: 2624 2625 2626 2628 4.4.2. 2630 The element describes a response to a 2631 request. 2633 The element has the following attributes: 2635 status: numeric code indicating the audit response status. The 2636 attribute is mandatory. Valid values are defined in Section 4.5. 2638 reason: string specifying a reason for the status. The attribute is 2639 optional. 2641 The element has the following sequence of child 2642 elements: 2644 element (Section 4.4.2.2) describing capabilities of 2645 the package. The element is optional. 2647 element (Section 4.4.2.3) describing information about 2648 managed dialogs. The element is optional. 2650 For example, a successful response to a request requesting 2651 capabilities and dialogs information: 2653 2654 2655 2656 2657 application/voicexml+xml 2658 2659 2660 2661 audio/x-wav 2662 video/3gpp 2663 2664 2665 audio/x-wav 2666 video/3gpp 2667 2668 2669 2670 mdy 2671 ymd 2672 dmy 2673 dm 2674 2675 2676 600s 2677 1800s 2678 2679 2680 H.263 2681 2682 2683 H.264 2684 2685 2686 PCMU 2687 2688 2689 PCMA 2690 2691 2692 telephone-event 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 PCMA 2703 2704 2705 telephone-event 2706 2707 2708 2709 2710 2711 2713 4.4.2.1. 2715 The provides audit information about codecs. 2717 The element has no attributes. 2719 The element has the following sequence of child elements (0 2720 or more occurrences): 2722 : audit information for a codec (Section 4.4.2.1.1). The 2723 element is optional. 2725 For example, a fragment describing two codecs: 2727 2728 2729 PCMA 2730 2731 2732 telephone-event 2733 2734 2736 4.4.2.1.1. 2738 The element describes a codec on the MS. The element is 2739 modeled on the element in the XCON conference information 2740 data model ([I-D.ietf-xcon-common-data-model]) but allows addition 2741 information (e.g. rate, speed, etc) to be specified. 2743 The element has no attributes. 2745 The element has the following sequence of child elements: 2747 : element describing the codec's name. The possible values 2748 of this element are the values of the 'subtype' column of the RTP 2749 Payload Format media types per [RFC4855] defined in IANA ([IANA]). 2750 The element is mandatory. 2752 : element (Section 4.2.6) describing additional information 2753 about the codec. This package is agnostic to the names and values 2754 of the codec parameters supported by an implementation. The 2755 element is optional. 2757 For example, a fragment with a element describing the H.263 2758 codec: 2760 2761 H.263 2762 2764 4.4.2.2. 2766 The element provides audit information about package 2767 capabilities. 2769 The element has no attributes. 2771 The element has the following sequence of child 2772 elements: 2774 : element (Section 4.4.2.2.1) describing additional 2775 dialog languages supported by the MS. The element is mandatory. 2777 : element (Section 4.4.2.2.2) describing supported 2778 (Section 4.3.1.3.1) format types. The element is 2779 mandatory. 2781 : element (Section 4.4.2.2.3) describing 2782 (Section 4.3.1.5) format types supported for 2783 (Section 4.3.1.4). The element is mandatory. 2785 : element (Section 4.4.2.2.4) describing supported 2786 (Section 4.3.1.5) format types for playback within a 2787 (Section 4.3.1.1). The element is mandatory. 2789 : element (Section 4.4.2.2.5) describing supported types 2790 and formats for the element (Section 4.4.2.2.5). The 2791 element is mandatory. 2793 : element (Section 4.4.2.2.6) describing the 2794 supported maximum duration for a prepared dialog following a 2795 (Section 4.2.1) request. The element is 2796 mandatory. 2798 : element (Section 4.4.2.2.7) describing the 2799 supported maximum duration for a recording 2800 Section 4.3.1.4) request. The element is mandatory. 2802 : element (Section 4.4.2.1) describing codecs available to 2803 the package. The element is mandatory. 2805 For example, a fragment describing capabilities: 2807 2808 2809 application/voicexml+xml 2810 2811 2812 2813 audio/x-wav 2814 video/3gpp 2815 2816 2817 audio/x-wav 2818 video/3gpp 2819 2820 2821 30s 2822 60s 2823 2824 2825 H.263 2826 2827 2828 H.264 2829 2830 2831 PCMU 2832 2833 2834 PCMA 2835 2836 2837 telephone-event 2838 2839 2840 2842 4.4.2.2.1. 2844 The element provides information about additional 2845 dialog languages supported by the package. Dialog languages are 2846 identified by their associated MIME media types. The MS MUST NOT 2847 include the mandatory dialog language for this package (Section 4.3). 2849 The element has no attributes. 2851 The element has the following sequence of child 2852 elements (0 or more occurrences): 2854 : element whose content model describes a MIME media type 2855 (Section 4.6.10) associated with a supported dialog language. The 2856 element is optional. 2858 4.4.2.2.2. 2860 The element provides information about 2861 format types supported by the package. The MS MUST NOT include the 2862 mandatory SRGS format type, "application/srgs+xml" 2863 (Section 4.3.1.3.1). 2865 The element has no attributes. 2867 The element has the following sequence of child 2868 elements (1 or more occurrences): 2870 : element whose content model describes a mime type 2871 (Section 4.6.10). The element is optional. 2873 4.4.2.2.3. 2875 The element provides information about media resource 2876 format types of supported by the package (Section 4.3.1.4). 2878 The element has no attributes. 2880 The element has the following sequence of child 2881 elements (0 or more occurrences): 2883 : element whose content model describes a mime type 2884 (Section 4.6.10). The element is optional. 2886 4.4.2.2.4. 2888 The element provides information about media resource 2889 format types of supported by the package (Section 4.3.1.1). 2891 The element has no attributes. 2893 The element has the following sequence of child 2894 elements (0 or more occurrences): 2896 : element whose content model describes a mime type 2897 (Section 4.6.10). The element is optional. 2899 4.4.2.2.5. 2901 The element provides information about types and formats 2902 for the element (Section 4.4.2.2.5) supported by the 2903 package. 2905 The element has no attributes. 2907 The element has the following sequence of child elements 2908 (0 or more occurrences): 2910 : element describing the formats support for a given 2911 type (Section 4.4.2.2.5.1). The element is optional. 2913 For example, a fragment describing support for with a 2914 "date" type in some common formats. 2916 2917 2918 mdy 2919 ymd 2920 dmy 2921 dm 2922 2923 2925 4.4.2.2.5.1. 2927 The element describes the formats supported for 2928 supported type. 2930 The element has the following attributes: 2932 type: indicates a supported value associated with the type attribute 2933 of element.The attribute is manadatory. 2935 desc: a string providing some textual description of the type and 2936 format. The attribute is optional. 2938 The element has the following sequence of child 2939 elements (0 or more occurrences): 2941 : element with a desc attribute (optional description) and a 2942 content model describing a supported format in the 2943 format attribute. The element is optional. 2945 4.4.2.2.6. 2947 The element describes the maximum duration for 2948 a dialog to remain in the prepared state (Section 4.2) following a 2949 (Section 4.2.1) request. 2951 The element has no attributes. 2953 The element has a content model describing the 2954 maximum prepared dialog duration as a time designation 2955 (Section 4.6.7). 2957 4.4.2.2.7. 2959 The element describes the maximum recording 2960 duration for Section 4.3.1.4) request supported by the MS. 2962 The element has no attributes. 2964 The element has a content model describing the 2965 maximum duration of recording as a time designation (Section 4.6.7). 2967 4.4.2.3. 2969 The element provides audit information about dialogs. 2971 The element has no attributes. 2973 The element has the following sequence of child elements (0 2974 or more occurrences): 2976 : audit information for a dialog (Section 4.4.2.3.1). 2977 The element is optional. 2979 4.4.2.3.1. 2981 The element has the following attributes: 2983 dialogid: string identifying the dialog. The attribute is 2984 mandatory. 2986 state: string indicating the state of the dialog. Valid values are: 2987 preparing, prepared, starting, started. The attribute is 2988 mandatory. 2990 connectionid: string identifying the SIP dialog connection 2991 associated with the dialog (see Section 17.1 of 2992 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2993 optional. There is no default value. 2995 conferenceid: string identifying the conference associated with the 2996 dialog (see Section 17.1 of 2997 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2998 optional. There is no default value. 3000 The element has the following child element: 3002 element describing codecs used in the dialog. See 3003 Section 4.4.2.1. The element is optional. 3005 For example, a fragment describing a started dialog which is using 3006 PCMU and telephony-event codecs: 3008 3009 3010 3011 PCMU 3012 3013 3014 telephone-event 3015 3016 3017 3019 4.5. Response Status Codes 3021 This section describes the response codes in Table 1 for the status 3022 attribute of dialog management (Section 4.2.4) and audit 3023 (Section 4.4.2) responses. The MS MUST support these 3024 status response codes. The MS MAY support other response codes. The 3025 AS MUST treat any responses it does not recognize as being equivalent 3026 to the x00 response code for all classes. For example, if an AS 3027 receives an unrecognized response code of 499, it can safely assume 3028 that there was something wrong with its request and treat the 3029 response as if it had received a 400 (Syntax error) response code. 3031 4xx responses are definite failure responses from a particular MS. 3032 The reason attribute in the response SHOULD identify the failure in 3033 more detail, for example, "Mandatory attribute missing: src in media 3034 element" for a 400 (Syntax error) response code. 3036 The AS SHOULD NOT retry the same request without modification (for 3037 example, correcting a syntax error or changing the connectionid to 3038 use one available on the MS). However, the same request to a 3039 different MS might be successful; for example, if another MS supports 3040 a capability required in the request. 3042 4xx failure responses can be grouped into three classes: failure due 3043 to a syntax error in the request (400); failure due to an error 3044 executing the request on the MS (405-419); and failure due to the 3045 request requiring a capability not supported by the MS (420-439). 3047 In cases where more than one request code could be reported for a 3048 failure, the MS SHOULD use the most specific error code of the 3049 failure class for the detected error. For example, if the MS detects 3050 that the dialogid in the request is invalid, then it uses a 406 3051 status code. However, if the MS merely detects that an execution 3052 error occurred, then 419 is used. 3054 +------+---------------+-----------------------+--------------------+ 3055 | Code | Summary | Description | Informational: AS | 3056 | | | | Possible Recovery | 3057 | | | | Action | 3058 +------+---------------+-----------------------+--------------------+ 3059 | 200 | OK | request has succeeded | | 3060 | | | | | 3061 | 400 | Syntax error | request is | Change the request | 3062 | | | syntactically | so that it is | 3063 | | | invalid: it is not | syntactically | 3064 | | | valid with respect to | valid. | 3065 | | | the XML schema | | 3066 | | | specified in | | 3067 | | | Section 5 or it | | 3068 | | | violates a | | 3069 | | | co-occurrence | | 3070 | | | constraint for a | | 3071 | | | request element | | 3072 | | | defined in Section 4. | | 3073 | | | | | 3074 | 401 | Reserved for | | | 3075 | | future use | | | 3076 | | | | | 3077 | 402 | Reserved for | | | 3078 | | future use | | | 3079 | | | | | 3080 | 403 | Reserved for | | | 3081 | | future use | | | 3082 | | | | | 3083 | 404 | Reserved for | | | 3084 | | future use | | | 3085 | | | | | 3086 | 405 | dialogid | request uses a | Send an | 3087 | | already | dialogid identifier | request | 3088 | | exists | for a new dialog | (Section 4.4.1) | 3089 | | | which is already used | requesting the | 3090 | | | by another dialog on | list of dialog | 3091 | | | the MS (see | identifiers | 3092 | | | Section 4.2). | already used by | 3093 | | | | the MS and then | 3094 | | | | use a dialog | 3095 | | | | identifier which | 3096 | | | | is not listed. | 3097 | | | | | 3098 | 406 | dialogid does | request uses a | Send an | 3099 | | not exist | dialogid identifier | request | 3100 | | | for an dialog which | (Section 4.4.1) | 3101 | | | does not exist on the | requesting the | 3102 | | | MS (see Section 4.2). | list of dialog | 3103 | | | | identifiers | 3104 | | | | already used by | 3105 | | | | the MS and then | 3106 | | | | use one of the | 3107 | | | | listed dialog | 3108 | | | | identifiers. | 3109 | | | | | 3110 | 407 | connectionid | request uses a | Use another method | 3111 | | does not | connectionid | to determine which | 3112 | | exist | identifier for a | connections are | 3113 | | | connection which does | available on the | 3114 | | | not exist on the MS. | MS. | 3115 | | | | | 3116 | 408 | conferenceid | request uses a | Use another method | 3117 | | does not | conferenceid | to determine which | 3118 | | exist | identifier for a | conferences are | 3119 | | | conference which does | available on the | 3120 | | | not exist on the MS. | MS. | 3121 | | | | | 3122 | 409 | Resource | request use a URI to | Check that the | 3123 | | cannot be | reference an external | resource URI is | 3124 | | retrieved | resource (e.g. | valid, can be | 3125 | | | dialog, media or | reached from the | 3126 | | | grammar) which cannot | MS, and that the | 3127 | | | be retrieved within | appropriate | 3128 | | | the timeout interval | authentication is | 3129 | | | | used. | 3130 | | | | | 3131 | 410 | Dialog | request to prepare or | | 3132 | | execution | start a dialog which | | 3133 | | canceled | has been terminated | | 3134 | | | by a | | 3135 | | | | | 3136 | | | request (see | | 3137 | | | Section 4.2) | | 3138 | | | | | 3139 | 411 | Incompatible | request specifies a | Change the media | 3140 | | stream | media stream | stream | 3141 | | configuration | configuration which | configuration to | 3142 | | | is in conflict with | match the | 3143 | | | itself, or the | capabilities of | 3144 | | | connection or | the connection or | 3145 | | | conference | conference | 3146 | | | capabilities (see | | 3147 | | | Section 4.2.2) | | 3148 | | | | | 3149 | 412 | Media stream | request specifies an | Check the media | 3150 | | not available | operation for which a | stream capability | 3151 | | | media stream is not | of the connection | 3152 | | | available. For | or conference and | 3153 | | | example, playing a | use an operation | 3154 | | | video media resource | which only uses | 3155 | | | on an connection or | these capabilities | 3156 | | | conference without | | 3157 | | | video streams. | | 3158 | | | | | 3159 | 413 | Control keys | the request contains | Use different keys | 3160 | | with same | a element | for the different | 3161 | | value | (Section 4.3.1.2) | control | 3162 | | | where some keys have | operations. | 3163 | | | the same value | | 3164 | | | | | 3165 | 414 | Reserved for | | | 3166 | | future use | | | 3167 | | | | | 3168 | 415 | Reserved for | | | 3169 | | future use | | | 3170 | | | | | 3171 | 416 | Reserved for | | | 3172 | | future use | | | 3173 | | | | | 3174 | 417 | Reserved for | | | 3175 | | future use | | | 3176 | | | | | 3177 | 418 | Reserved for | | | 3178 | | future use | | | 3179 | 419 | Other | requested operation | | 3180 | | execution | cannot be executed by | | 3181 | | error | the MS. | | 3182 | | | | | 3183 | 420 | Unsupported | request specifies a | Use a URI scheme | 3184 | | URI scheme | URI whose scheme is | which is | 3185 | | | not supported by the | supported. | 3186 | | | MS | | 3187 | | | | | 3188 | 421 | Unsupported | request references an | Send an | 3189 | | dialog | external dialog | request | 3190 | | language | language not | (Section 4.4.1) | 3191 | | | supported by the MS | requesting the MS | 3192 | | | | capabilities and | 3193 | | | | then use one of | 3194 | | | | the listed dialog | 3195 | | | | languages. | 3196 | | | | | 3197 | 422 | Unsupported | request references a | Send an | 3198 | | playback | media resource for | request | 3199 | | format | playback whose format | (Section 4.4.1) | 3200 | | | is not supported by | requesting the MS | 3201 | | | the MS | capabilities and | 3202 | | | | then use one of | 3203 | | | | the listed | 3204 | | | | playback media | 3205 | | | | formats. | 3206 | | | | | 3207 | 423 | Unsupported | request references a | Send an | 3208 | | record format | media resource for | request | 3209 | | | recording whose | (Section 4.4.1) | 3210 | | | format is not | requesting the MS | 3211 | | | supported by the MS | capabilities and | 3212 | | | | then use one of | 3213 | | | | the listed record | 3214 | | | | media formats. | 3215 | | | | | 3216 | 424 | Unsupported | request references a | Send an | 3217 | | grammar | grammar whose format | request | 3218 | | format | is not supported by | (Section 4.4.1) | 3219 | | | the MS | requesting the MS | 3220 | | | | capabilities and | 3221 | | | | then use one of | 3222 | | | | the listed grammar | 3223 | | | | types. | 3224 | | | | | 3225 | 425 | Unsupported | request contains a | Send an | 3226 | | variable | prompt | request | 3227 | | configuration | element | (Section 4.4.1) | 3228 | | | (Section 4.3.1.1.1) | requesting the MS | 3229 | | | not supported by the | capabilities and | 3230 | | | MS | then use one of | 3231 | | | | the listed | 3232 | | | | variable types. | 3233 | | | | | 3234 | 426 | Unsupported | request contains a | | 3235 | | DTMF | prompt element | | 3236 | | configuration | (Section 4.3.1.1.2) | | 3237 | | | not supported by the | | 3238 | | | MS | | 3239 | | | | | 3240 | 427 | Unsupported | request contains a | | 3241 | | parameter | element | | 3242 | | | (Section 4.2.6.1) not | | 3243 | | | supported by the MS | | 3244 | | | | | 3245 | 428 | Unsupported | request contains a | | 3246 | | media stream | element | | 3247 | | configuration | (Section 4.2.2.2) | | 3248 | | | whose configuration | | 3249 | | | is not supported by | | 3250 | | | the MS. | | 3251 | | | | | 3252 | 429 | Unsupported | request contains a | | 3253 | | playback | element | | 3254 | | configuration | (Section 4.3.1.1) | | 3255 | | | which the MS is | | 3256 | | | unable to play on the | | 3257 | | | available output | | 3258 | | | media streams | | 3259 | | | | | 3260 | 430 | Unsupported | request contains a | | 3261 | | record | element | | 3262 | | configuration | (Section 4.3.1.1) | | 3263 | | | which the MS is | | 3264 | | | unable to record with | | 3265 | | | on the available | | 3266 | | | input media streams | | 3267 | | | | | 3268 | 431 | Unsupported | the request contains | | 3269 | | foreign | attributes or | | 3270 | | namespace | elements from another | | 3271 | | attribute or | namespace which the | | 3272 | | element | MS does not support | | 3273 | 432 | Unsupported | the request tries to | | 3274 | | multiple | start another dialog | | 3275 | | dialog | on the same | | 3276 | | capability | conference or | | 3277 | | | connection where a | | 3278 | | | dialog is already | | 3279 | | | running | | 3280 | | | | | 3281 | 433 | Unsupported | the request contains | | 3282 | | collect and | and | | 3283 | | record | elements and | | 3284 | | capability | the MS does support | | 3285 | | | these operations | | 3286 | | | simultaneously | | 3287 | | | | | 3288 | 434 | Unsupported | the request contains | | 3289 | | VAD | a element | | 3290 | | capability | where Voice Activity | | 3291 | | | Detection (VAD) is | | 3292 | | | required, but the MS | | 3293 | | | does not support VAD. | | 3294 | | | | | 3295 | 435 | Unsupported | the request contains | | 3296 | | parallel | a prompt | | 3297 | | playback | element whose | | 3298 | | | configuration is not | | 3299 | | | supported by the MS. | | 3300 | | | | | 3301 | 436 | Reserved for | | | 3302 | | future use | | | 3303 | | | | | 3304 | 437 | Reserved for | | | 3305 | | future use | | | 3306 | | | | | 3307 | 438 | Reserved for | | | 3308 | | future use | | | 3309 | | | | | 3310 | 439 | Other | request requires | | 3311 | | unsupported | another capability | | 3312 | | capability | not supported by the | | 3313 | | | MS | | 3314 +------+---------------+-----------------------+--------------------+ 3316 Table 1: status codes 3318 4.6. Type Definitions 3320 This section defines types referenced in attribute and element 3321 definitions. 3323 4.6.1. Boolean 3325 The value space of boolean is the set {true, false}. 3327 4.6.2. DTMFChar 3329 A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 3330 7, 8, 9, #, *, A, B, C, D}. 3332 4.6.3. DTMFString 3334 A String composed of one or more DTMFChars. 3336 4.6.4. Non-Negative Integer 3338 The value space of non-negative integer is the infinite set 3339 {0,1,2,...}. 3341 4.6.5. Positive Integer 3343 The value space of positive integer is the infinite set {1,2,...}. 3345 4.6.6. String 3347 A string in the character encoding associated with the XML element. 3349 4.6.7. Time Designation 3351 A time designation consists of a non-negative real number followed by 3352 a time unit identifier. 3354 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 3356 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 3358 4.6.8. Percentage 3360 A percentage consists of a Positive Integer followed by "%". 3362 Examples include: "100%", "500%" and "10%". 3364 4.6.9. URI 3366 Uniform Resource Indicator as defined in [RFC3986]. 3368 4.6.10. MIME Media Type 3370 A string formated as a IANA MIME media type ([MIME.mediatypes]). 3372 4.6.11. Language Identifier 3374 A language identifier labels information content as being of a 3375 particular human language variant. Following the XML specification 3376 for language identification [XML], a legal language identifier is 3377 identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code 3378 where the language code is required and a country code or other 3379 subtag identifier is optional. 3381 4.6.12. DateTime 3383 A string formated according to the XML schema definition of a 3384 dateTime type ([XMLSchema:Part2]). 3386 5. Formal Syntax 3388 This section defines the XML schema for IVR Control Package. 3390 The schema defines datatypes, attributes, dialog management and IVR 3391 dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In 3392 most elements the order of child elements is significant. The schema 3393 is extensible: elements allow attributes and child elements from 3394 other namespaces. Elements from outside this package's namespace can 3395 occur after elements defined in this package. 3397 The schema is dependent upon the schema (framework.xsd) defined in 3398 Section 17.1 of the Control Framework 3399 [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent 3400 upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. 3401 xml:base). 3403 3404 3410 3411 3412 IETF MediaCtrl IVR 1.0 (20081118) 3414 This is the schema of the IETF MediaCtrl IVR control 3415 package. 3417 The schema namespace is urn:ietf:params:xml:ns:msc-ivr 3419 3420 3422 3430 3432 3433 3434 This import brings in the XML attributes for 3435 xml:base, xml:lang, etc 3437 See http://www.w3.org/2001/xml.xsd for latest version 3438 3439 3440 3442 3445 3446 3447 This import brings in the framework attributes for 3448 conferenceid and connectionid. 3449 3450 3451 3453 3461 3462 3463 3464 This type is extended by other component types to 3465 allow elements and attributes from other namespaces 3466 to be added. 3467 3468 3469 3470 3472 3473 3474 3476 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3497 3498 3499 3501 3502 3503 3505 3507 3515 3517 3518 3519 3520 3521 3523 3526 3527 3528 3529 3531 3533 3534 3535 3537 3539 3541 3542 3543 3544 3545 3547 3549 3551 3553 3555 3556 3557 3558 3560 3562 3564 3565 3566 3567 3569 3571 3573 3574 3575 3576 3578 3580 3581 3582 3584 3586 3588 3589 3590 3591 3593 3594 3596 3597 3598 3599 3601 3603 3605 3606 3607 3608 3609 3610 3612 3614 3616 3617 3618 3620 3621 3623 3625 3627 3629 3630 3631 3632 3633 3635 3637 3639 3641 3643 3645 3646 3648 3649 3650 3651 3653 3655 3657 3658 3659 3660 3662 3664 3666 3667 3668 3669 3671 3673 3674 3675 3676 3678 3680 3681 3682 3684 3686 3688 3689 3690 3691 3692 3694 3696 3697 3698 3699 3701 3703 3705 3706 3707 3708 3710 3711 3712 3714 3716 3718 3720 3721 3722 3723 3725 3727 3728 3729 3731 3733 3735 3736 3737 3738 3739 3741 3743 3744 3746 3748 3749 3750 3752 3754 3756 3757 3758 3759 3761 3763 3765 3766 3767 3769 3771 3773 3774 3775 3776 3777 3779 3781 3782 3783 3784 3786 3788 3790 3791 3792 3793 3795 3796 3797 3799 3801 3802 3803 3804 3805 3806 3808 3810 3811 3812 3813 3815 3817 3818 3819 3820 3821 3823 3824 3825 3826 3827 3829 3831 3833 3834 3835 3836 3837 3839 3841 3843 3844 3846 3847 3849 3850 3851 3852 3854 3855 3856 3857 3859 3861 3862 3863 3864 3866 3868 3870 3871 3872 3873 3874 3876 3878 3880 3882 3884 3885 3887 3889 3890 3891 3893 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3906 3907 3908 3910 3911 3912 3914 3916 3918 3919 3920 3921 3923 3924 3926 3928 3930 3932 3933 3934 3936 3938 3940 3941 3942 3943 3945 3947 3948 3949 3950 3951 3952 3954 3956 3958 3959 3960 3961 3963 3965 3967 3969 3970 3971 3973 3975 3977 3978 3979 3980 3981 3982 3983 3984 3985 3987 3988 3989 3991 3993 3995 3997 3998 3999 4000 4001 4002 4003 4004 4006 4007 4008 4009 4011 4013 4015 4016 4017 4018 4020 4021 4022 4024 4026 4028 4030 4032 4034 4036 4038 4040 4042 4044 4046 4047 4048 4050 4052 4054 4055 4056 4057 4058 4060 4062 4063 4065 4067 4069 4071 4073 4075 4077 4078 4079 4081 4083 4084 4085 4086 4087 4089 4090 4091 4092 4094 4095 4097 4099 4101 4102 4103 4104 4105 4107 4109 4110 4112 4114 4116 4118 4120 4122 4124 4126 4127 4128 4130 4132 4139 4141 4142 4143 4144 4146 4148 4150 4151 4152 4154 4156 4158 4159 4160 4161 4162 4164 4166 4168 4169 4171 4172 4173 4174 4176 4178 4180 4181 4182 4183 4184 4186 4188 4190 4191 4192 4193 4195 4197 4199 4200 4201 4203 4205 4207 4208 4209 4210 4211 4213 4215 4216 4217 4218 4220 4222 4224 4225 4226 4227 4228 4230 4232 4234 4236 4238 4240 4242 4244 4246 4247 4248 4249 4251 4253 4255 4257 4259 4260 4261 4262 4263 4265 4267 4268 4269 4270 4272 4273 4275 4276 4277 4278 4279 4281 4283 4284 4285 4286 4288 4290 4292 4293 4294 4295 4296 4298 4300 4301 4302 4303 4305 4307 4309 4310 4311 4312 4313 4315 4317 4318 4320 4321 4323 4325 4327 4328 4329 4330 4331 4333 4335 4336 4337 4338 4340 4342 4343 4344 4345 4346 4348 4350 4351 4352 4353 4354 4355 4357 4359 4360 4361 4363 4364 4365 4366 4367 4369 4371 4374 4376 4379 4381 4382 4383 4384 4385 4387 4389 4390 4391 4392 4394 4396 4398 4399 4400 4401 4402 4404 4406 4407 4409 4411 4413 4414 4415 4417 4419 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 Time designation following Time in CSS2 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 DTMF character [0-9#*A-D] 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 DTMF sequence [0-9#*A-D] 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 whole integer followed by '%' 4511 4512 4513 4514 4515 4516 4518 4519 4520 4521 4522 4523 4524 4526 4527 4528 4529 4530 4531 4532 4533 4535 4536 4537 4538 4539 4540 4541 4542 4543 4545 4546 4547 4548 4549 4550 4551 4553 4554 6. Examples 4556 This section provides examples of the IVR Control package. 4558 6.1. AS-MS Dialog Interaction Examples 4560 The following example assume a control channel has been established 4561 and synced as described in the Media Control Channel Framework 4562 ([I-D.ietf-mediactrl-sip-control-framework]). 4564 The XML messages are in angled brackets (with the root 4565 omitted); the REPORT status is in round brackets. Other aspects of 4566 the protocol are omitted for readability. 4568 6.1.1. Starting an IVR dialog 4570 An IVR dialog is started successfully, and dialogexit notification 4571 is sent from the MS to the AS when the dialog exits normally. 4573 Application Server (AS) Media Server (MS) 4574 | | 4575 | (1) CONTROL: | 4576 | ----------------------------------------> | 4577 | | 4578 | (2) 202 | 4579 | <--------------------------------------- | 4580 | | 4581 | | 4582 | (3) REPORT: | 4583 | (terminate) | 4584 | <---------------------------------------- | 4585 | | 4586 | (4) 200 | 4587 | ----------------------------------------> | 4588 | | 4589 | (5) CONTROL: | 4590 | | 4591 | <---------------------------------------- | 4592 | | 4593 | (6) 200 | 4594 | ----------------------------------------> | 4595 | | 4597 6.1.2. IVR dialog fails to start 4599 An IVR dialog fails to start due to an unknown dialog language. The 4600 is reported in a framework 200 message. 4602 Application Server (AS) Media Server (MS) 4603 | | 4604 | (1) CONTROL: | 4605 | ----------------------------------------> | 4606 | | 4607 | (2) 200: | 4608 | <---------------------------------------- | 4609 | | 4611 6.1.3. Preparing and starting an IVR dialog 4613 An IVR dialog is prepared and started successfully, and then the 4614 dialog exits normally. 4616 Application Server (AS) Media Server (MS) 4617 | | 4618 | (1) CONTROL: | 4619 | ----------------------------------------> | 4620 | | 4621 | (2) 202 | 4622 | <--------------------------------------- | 4623 | | 4624 | (3) REPORT: | 4625 | (terminate) | 4626 | <---------------------------------------- | 4627 | | 4628 | (4) 200 | 4629 | ----------------------------------------> | 4630 | | 4631 | (5) CONTROL: | 4632 | ----------------------------------------> | 4633 | | 4634 | (6) 202 | 4635 | <--------------------------------------- | 4636 | | 4637 | (7) REPORT: | 4638 | (terminate) | 4639 | <---------------------------------------- | 4640 | | 4641 | (8) 200 | 4642 | ----------------------------------------> | 4643 | | 4644 | (9) CONTROL: | 4645 | <---------------------------------------- | 4646 | | 4647 | (10) 200 | 4648 | ----------------------------------------> | 4649 | | 4651 6.1.4. Terminating a dialog 4653 An IVR dialog is started successfully, and then terminated by the AS. 4654 The dialogexit event is sent to the AS when the dialog exits. 4656 Application Server (AS) Media Server (MS) 4657 | | 4658 | (1) CONTROL: | 4659 | ----------------------------------------> | 4660 | | 4661 | (2) 202 | 4662 | <--------------------------------------- | 4663 | | 4664 | (3) REPORT: | 4665 | (terminate) | 4666 | <---------------------------------------- | 4667 | | 4668 | (4) 200 | 4669 | ----------------------------------------> | 4670 | | 4671 | (5) CONTROL: | 4672 | ----------------------------------------> | 4673 | | 4674 | (6) 200: | 4675 | <---------------------------------------- | 4676 | | 4677 | (7) CONTROL: | 4678 | <---------------------------------------- | 4679 | | 4680 | (8) 200 | 4681 | ----------------------------------------> | 4682 | | 4684 Note that in (6) the payload to the 4685 request is carried on a framework 200 response since it could 4686 complete the requested operation before the transaction timeout. 4688 6.2. IVR Dialog Examples 4690 The following examples show how is used with 4691 , and elements to play prompts, 4692 set runtime controls, collect DTMF input and record user input. 4694 The examples do not specify all messages between the AS and MS. 4696 6.2.1. Playing announcements 4698 This example prepares an announcement composed of two prompts where 4699 the dialog repeatCount set to 2. 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4712 If the dialog is prepared successfully, a is returned with 4713 status 200 and a dialog identifier assigned by the MS: 4715 4716 4717 4719 The prepared dialog is then started on a conference playing the 4720 prompts twice: 4722 4723 4724 4726 In the case of a successful dialog, the output is provided in 4727 ; for example 4729 4730 4731 4732 4733 4734 4735 4737 6.2.2. Prompt and collect 4739 In this example, a prompt is played and then the MS waits for 30s for 4740 a two digit sequence: 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4753 If no user input is collected within 30s, then following notification 4754 event would be returned: 4756 4757 4758 4759 4760 4761 4762 4764 The collect operation can be specified without a prompt. Here the MS 4765 just waits for DTMF input from the user: 4767 4768 4769 4770 4771 4772 4773 4775 If the dialog is successful, then dialogexit contains the 4776 dtmf collected in its result parameter: 4778 4779 4780 4781 4782 4783 4784 /mscivr> 4786 And finally in this example, one of the input parameters is invalid: 4788 4789 4790 4791 4792 4793 4794 4797 4798 4799 4801 The error is reported in the response: 4803 4804 4806 4808 6.2.3. Prompt and record 4810 In this example, the user is prompted, then their input is recorded 4811 for a maximum of 30 seconds. 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4824 If successful and the recording is terminated by DTMF, the following 4825 is returned in a dialogexit : 4827 4828 4829 4830 4831 4833 4834 4835 4836 4838 6.2.4. Runtime controls 4840 In this example, a prompt is played with collect and runtime controls 4841 are activated. 4843 4844 4845 4846 4847 4848 4849 4851 4852 4853 4854 4856 Once the dialog is active, the user can press keys 3, 4, 5 and 6 to 4857 execute runtime controls on the prompt queue. The keys do not cause 4858 bargein to occur. If the user presses any other key, then the prompt 4859 is interrupted and DTMF collect begins. Note that runtime controls 4860 are not active during the collect operation. 4862 When the dialog is completed successfully, then both control and 4863 collect information is reported. 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4879 6.2.5. Subscriptions and notifications 4881 In this example, a looped dialog is started with subscription for 4882 notifications each time the user input matches the collect grammar: 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4895 Each time the user input the DTMF matching the grammar, the following 4896 notification event would be sent: 4898 4899 4900 4902 4903 4905 If no user input was provided, or the input did not match the 4906 grammar, the dialog would continue to loop until terminated (or an 4907 error occurred). 4909 6.3. Other Dialog Languages 4911 The following example requests that a VoiceXML dialog is started: 4913 4914 4917 4918 nfs://nas01/media1.3gp" 4919 nfs://nas01/media2.3gp" 4920 4921 4922 4924 If the MS does not support this dialog language, then the response 4925 would have the status code 409 (Section 4.5). However, if it does 4926 support the VoiceXML dialog language, it would respond with a 200 4927 status, activate the VoiceXML dialog and make the available 4928 to the VoiceXML script as described in Section 12. 4930 When the VoiceXML dialog exits, exit namelist parameters are 4931 specified using in the dialogexit event: 4933 4934 4935 4936 4937 peter 4938 1234 4939 4940 4941 4942 4944 6.4. Foreign Namespace Attributes and Elements 4946 An MS can support attributes and elements from foreign namespaces 4947 within the element. For example, the MS could support a 4948 element (in a foreign namespace) for speech recognition by 4949 analogy to how support DTMF collection. 4951 In the following example, a prompt and collect request is extended 4952 with a element: 4954 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4969 In the root element, the xmlns:ex attribute declares that 4970 "ex" is associated with the foreign namespace URI 4971 "http://www.example.com/mediactrl/extensions/1". The , 4972 its attributes and child elements are associated with this namespace. 4973 This could be defined so that it activates an SRGS grammar 4974 and listens for user input matching the grammar in a similar manner 4975 to DTMF collection. 4977 If an MS receives this request but does not support the 4978 element, then it would send a 431 response: 4980 4981 4983 4985 If the MS does support this foreign element, it would send a 200 4986 response and start the dialog with speech recognition. When the 4987 dialog exits, it provides information about the execution 4988 within , again using elements in a foreign namespace such 4989 as below: 4991 4993 4994 4995 4996 4997 4998 5000 Note that in reply the AS sends a Control Framework 200 response even 5001 though the notification event contains an element in a foreign 5002 namespace which it might not understand. 5004 7. Security Considerations 5006 As this control package processes XML markup, implementations MUST 5007 address the security considerations of [RFC3023]. 5009 Implementations of this control package MUST address security, 5010 confidentiality and integrity of messages transported over the 5011 control channel as described in Section 11 of the Media Control 5012 channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), 5013 including Transport Level Protection, Control Channel Policy 5014 Management and Session Establishment. 5016 Adequate transport protection and authentication are critical, 5017 especially when the implementation is deployed in open networks. If 5018 the implementation fails to correctly address these issues, it risks 5019 exposure to malicious attacks, including (but not limited to): 5021 Denial of Service: An attacker could insert a request message into 5022 the transport stream causing specific dialogs on the MS to be 5023 terminated immediately. For example, , where the value of "XXXX" could 5025 be guessed or discovered by auditing active dialogs on the MS 5026 using an request. 5028 Resource Exhaustion: An attacker could insert into the control 5029 channel new request messages (or modify existing ones) with, for 5030 instance, elements with a very long fetchtimeout 5031 attribute and a bogus source URL. At some point this will exhaust 5032 the number of connections that the MS is able to make. 5034 Phishing: An attacker with access to the control channel could 5035 modify the "loc" attribute of the element in a dialog to 5036 point to some other audio file that had different information from 5037 the original. This modified file could include a different phone 5038 number for people to call if they want more information or need to 5039 provide additional information (such as governmental, corporate or 5040 financial information). 5042 Data Theft: An attacker could modify a element in the 5043 control channel so as to add a new recording location: 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5056 The recorded data would be uploaded to two locations indicated by 5057 the "{Good URI}" and the "{Attacker's URI}". This allows the 5058 attacker to steal the recorded audio (which could include 5059 sensitive or confidential information) without the originator of 5060 the request necessarily being aware of the theft. 5062 The Media Control Channel Framework permits additional security 5063 policy management, including resource access and control channel 5064 usage, to be specified at the control package level beyond that 5065 specified for the Media Control Channel Framework (see Section 11.3 5066 of [I-D.ietf-mediactrl-sip-control-framework]). 5068 Since creation of IVR dialogs is associated with media processing 5069 resources (e.g. DTMF detectors, media playback and recording, etc) 5070 on the MS, the security policy for this control package needs to 5071 address how such dialogs are securely managed across more than one 5072 control channels. The identity of control channels is determined by 5073 the channel identifier: i.e. the value of the cfw-id attribute in the 5074 SDP and Dialog-ID header in the channel protocol (see 5075 [I-D.ietf-mediactrl-sip-control-framework]). Channels are the same 5076 if they have the same identifier; otherwise, they are different. 5077 This control package imposes the following additional security 5078 policies: 5080 Responses: The MS MUST only send a response to a dialog management 5081 or audit request using the same control channel as the one used to 5082 send the request. 5084 Notifications: The MS MUST only send notification events for a 5085 dialog using the same control channel as it received the request 5086 creating the dialog. 5088 Auditing: The MS MUST only provide audit information about dialogs 5089 which have been created on the same control channel as the one 5090 upon the request is sent. 5092 Rejection: The MS SHOULD reject requests to audit or manipulate an 5093 existing dialog on the MS if the channel is not the same as the 5094 one used when the dialog was created. The MS rejects a request by 5095 sending a Control Framework 403 response (see Section 7.4 and 5096 Section 11.3 of [I-D.ietf-mediactrl-sip-control-framework]). For 5097 example, if a channel with identifier 'cfw1234' has been used to 5098 send a request to create a particular dialog and the MS receives 5099 on channel 'cfw98969' a request to audit or terminate the dialog, 5100 then the MS sends a 403 framework response. 5102 There can be valid reasons why an implementation does not reject an 5103 audit or dialog manipulation request on a different channel from the 5104 one which created the dialog. For example, a system administrator 5105 might require a separate channel to audit dialog resources created by 5106 system users and to terminate dialogs consuming excessive system 5107 resources. Alternatively, a system monitor or resource broker might 5108 require a separate channel to audit dialogs managed by this package 5109 on a MS. However, the full implications need to be understood by the 5110 implementation and carefully weighted before accepting these reasons 5111 as valid. If the reasons are not valid in their particular 5112 circumstances, the MS rejects such requests. 5114 There can also be valid reasons for 'channel handover' including high 5115 availability support or where one AS needs to take over management of 5116 dialogs after the AS which created them has failed. This could be 5117 achieved by the control channels using the same channel identifier, 5118 one after another. For example, assume a channel is created with the 5119 identifier 'cfw1234' and the channel is used to create dialogs on the 5120 MS. This channel (and associated SIP dialog) then terminates due to 5121 a failure on the AS. As permitted by the Control Framework, the 5122 channel identifier 'cfw1234' could then be reused so that another 5123 channel is created with the same identifier 'cfw1234', allowing it to 5124 'take over' management of the dialogs on the MS. Again, the 5125 implementation needs to understand the full implications and 5126 carefully weight them before accepting these reasons as valid. If 5127 the reasons are not valid for their particular circumstances, the MS 5128 uses the appropriate SIP mechanisms to prevent session establishment 5129 when the same channel identifier is used in setting up another 5130 control channel (see Section 4 of 5131 [I-D.ietf-mediactrl-sip-control-framework]). 5133 8. IANA Considerations 5135 This specification instructs IANA to register a new Media Control 5136 Channel Framework Package, a new XML namespace and a new MIME type. 5138 8.1. Control Package Registration 5140 Control Package name: msc-ivr/1.0 5142 8.2. URN Sub-Namespace Registration 5144 XML namespace: urn:ietf:params:xml:ns:msc-ivr 5146 8.3. MIME Type Registration 5148 MIME type: application/msc-ivr+xml 5150 9. Change Summary 5152 Note to RFC Editor: Please remove this whole section. 5154 The following are the major changes between the -03 and -02 versions. 5156 o Conformance language: Removed unnecessary MUSTs, especially for 5157 error codes. Removed lowercase 'should', 'must' and 'may'. 5159 o Introduction: Clarified which MediaCtrl IVR Requirements are 5160 satisfied by this package. Added link to Security Considerations 5161 Section (also in Section 4.0 and 4.4). 5163 o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS 5164 support of communication protocols in URIs. 5166 o 4.2.2:: Changed RECOMMENDED to MAY for MS support of 5167 multiple dialogs on same connection or conference. Changed 5168 RECOMMENDED to MUST for using in cases where connection 5169 has multiple streams of the same type. 5171 o 4.2.2.2:: Changed RECOMMENDED to MUST for use of common 5172 media attribute values. 5174 o 4.2.2.1: : Clarified that if the MS does not support a 5175 subscription specified in a foreign namespace, then the MS 5176 generates a 431 error response. 5178 o 4.2.4: : Clarified that a dialogid with an empty string 5179 value is used when the request is syntactically invalid. 5181 o 4.2.5.1: : Added reserved range of status codes, and 5182 tightened up the wording. 5184 o 4.3.1.3:: Clarified that termtimeout attribute default of 5185 0s meaning no delay. 5187 o 4.3.1.1.1: : Changed RECOMMENDED to MAY for MS support 5188 of date, time and digits s. Clarified value attribute 5189 format for date, time and digits. 5191 o 4.3.1.1.3: : Removed RECOMMENDED for MS support of parallel 5192 playback of different media. Added error response code (435) if 5193 MS does not support parallel playback configuraton. 5195 o 4.3.1.1.3.1: : Removed RECOMMENDED for MS support of 5196 sequential playback of same media within a (error case 5197 already covered by configuration not supported response 5198 code). 5200 o 4.3.1.4:: Removed RECOMMENDED for MS support of parallel 5201 recording of different media. Clarified wording around uploading 5202 recording data to a media resource location. 5204 o 4.3.1.4: : Clarified the definition of vadinitial and 5205 vadfinal. Changed the default values to false. Added a response 5206 error (434) for when the MS does not support VAD. 5208 o 4.3.1.5: . Removed unnecesaary SHOULD for MS ignoring 5209 fetchtimeout, soundLevel, clipBegin and clipEnd when used 5210 for recording. Clarified definition of loc and type attributes 5211 with stronger conformance language. Similar clarifications of 5212 type attributes in , and . 5214 o 4.3.2.4.1: : Clarified usage and strengthen conformance 5215 language. 5217 o 4.4.2.22: : Changed MUST to MUST NOT for inclusion 5218 of mandatory SRGS grammar format. Updated examples. 5220 o Updated schema. 5222 o Security Considerations: Major update. Added examples showing 5223 malicious attacks when channel security is not correctly 5224 addressed. Added more details on multiple channel cases including 5225 administrator and monitor channels as well as channel handover. 5227 o Removed affliations in Contributors and Acknowledgements sections. 5229 o Added Appendix A describing how to use VoiceXML with this package 5230 if it is supported by the MS. 5232 o Corrected typos and nits. 5234 The following are the major changes between the -02 and -01 versions. 5236 o corrected typos. 5238 o Section 3: Aligned Control Package definitions with requirements 5239 in Section 8 of the Control Framework. 5241 o Section 4.2.2.2: Added child element to 5242 element (alignment with mixer package). 5244 o Following October Interim meeting discussion on response codes, 5245 generally clarified usage of error status codes, modified some 5246 codes and re-organized the response codes section (Section 4.5) 5247 with more guidance and details. 5249 o Section 4.3.1.5: Following October Interim meeting request for 5250 parallel playback and record, created a generalized version of 5251 used for both playback and record. The 'src' attribute is 5252 renamed to 'loc'. Updated and definitions as 5253 described below. 5255 o Sections 4.3.1.1/4.3.1.1.4: : Added child element to 5256 allow parallel playback of separate media resources. The 5257 element has a child element to allow a sequence of media 5258 resources to be played at the same time as other resources are 5259 played in parallel. 5261 o Sections 4.3.1.4/4.3.1.4.1: : Removed 'dest' and 'type' 5262 attributes. Added child elements to support parallel 5263 recording to separate media resource locations. 5265 o Sections 4.3.2.4/4.3.2.4.1: : Removed 'dest', 'type' 5266 and 'size' attribute. Added child elements with 5267 'loc', 'type' and 'size' attributes. 5269 o Section 4.4.2.2.4: Renamed to to 5270 clarify distinction with . 5272 o Sections 4.3.1.4: : Clarified RFC2119 language around 5273 vadinitial and vadfinal behavior. 5275 o Updated schema. Removed some element-specific syntactic 5276 constraint statements which are already covered in the schema. 5278 o 4.3.1: occurrence of without a no longer 5279 treated as a syntax error - instead runtime controls are simply 5280 ignored. 5282 o 5284 The following are the major changes between the -01 and -00 versions. 5286 o 7: Updated security section referencing control framework security 5287 and adding policy requirement to address dialog resource 5288 management over multiple channels. 5290 o corrected typos and example errors 5292 o 4.2: [IVR-200] Added state machine for dialog lifecycle. 5294 o 4.2: clarified dialog identifier assignment and use, including MS 5295 assignment of dialogid in and . 5297 o 4.2/4.2.3: clarified behavior when dialog is not 5298 in a STARTED state. 5300 o 1/4.2: Clarified concept of dialog language and replaced 5301 references to 'dialog types' with dialog languages. Replaced 5302 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that 5303 IVR is inline and other supported dialog languages are 5304 specified by reference. Removed default type values for 5305 and . 5307 o 4.4.2.2.1: clarified that the inline dialog language () 5308 must not be listed as an additional supported dialog language. 5310 o 4.2.2.2: [IVR-201] Added element to so that 5311 dialog video output can be directed to a specific region a 5312 conference video layout. 5314 o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format 5315 for digits. 5317 o 4.4.2.1.1:[IVR-203]: added to to allow additional 5318 codec information to be specified. 5320 o 4.5: added error status code for unsupported URI (415), invalid 5321 region identifier (416), fetchtimeout exceeded (417), syntactic 5322 constraint violation (418), unsupported media format (419), 5323 unsupported grammar format (420), unsupported variable 5324 announcement (421), unsupported DTMF tone generation (422), 5325 conflict with control key values (423), unsupported recording 5326 format (424). 5328 o Generally, replaced 'it is an error ...' language with RFC2119 5329 language, making error codes more explicit. 5331 o 4.3.1: Clarified that an MS MAY support and 5332 elements co-occurring in a element, but the MS MUST send 5333 an error response if they are not supported. Clarified that MS 5334 MUST send an error response if is specified without a 5335 element. 5337 o 4.2.5.2: clarified that the timestamp in is that of 5338 the last DTMF in a matching input sequence. 5340 o References: more references now normative. 5342 o 4.3: Replaced passive voice language with active voice language in 5343 the description of execution models. 5345 o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is 5346 completely unrelated to the term 'SIP dialog'. 5348 o 4: Added clarification that elements with URI attributes are 5349 recommended to support one or more communication protocols 5350 suitable for fetching resources. 5352 o 4.3.1.4: clarified MS MAY support upload of recording 5353 data during recording, and that upload errors (e.g. authentication 5354 failures, communication errors, etc) are execution errors. Added 5355 'append' attribute to control behavior when a recorded resource 5356 already exists at the recording location. 5358 o 4.2.2: Clarified that an error is reported if with 5359 contains parameters which the MS cannot process for the 5360 given dialog language. 5362 o 4.2.6.1: removed 'valuetype' attribute and clarified that 5363 the type attribute indicates the MIME media type associated with 5364 the inline value. 5366 o 4.3.1.4: Added append attribute to to control whether 5367 recordings are appended or not to the recording location resource. 5369 o 4.3.1.1.1: Added clipEnd attribute to to control when 5370 playback of the media ends. 5372 o 4.3.1: Clarified that when there are multiple iterations of a 5373 dialog (using repeatCount attribute) only the results of the last 5374 dialog iteration are reported. 5376 o 4.4.2.2: Added ability to audit capability, as well as 5377 maximum duration of prepared dialogs and of recordings. 5379 o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in 5380 and how reports its status. 5382 o 4: Changed handling of unsupported foreign namespace elements and 5383 attributes. The MS send a 426 error response if it encounters 5384 foreign elements and attributes it does not support. 5386 The following are the major changes between the -00 of this work 5387 group item draft and the individual submission -05 version. 5389 o [IVR01] When the MS sends a notification event in a CONTROL, the 5390 AS sends mandatory 200 response (no extended transaction). 5392 o [IVR23] Added a top-level container element, , with 5393 version attribute. 5395 o Removed term 'basic' in title, description, elements and IANA 5396 registration. Control package name is now 'msc-ivr/1.0'. 5397 Namespace is now 'urn:ietf:params:xml:ns:msc-ivr'. Mime type is 5398 now 'application/msc-ivr+xml'. Renamed 'basicivr' element to 5399 'dialog' and moved version attribute to mscivr element. 5401 o [IVR15] Updated and simplified XML schema. Ordering of child 5402 elements is significant. 5404 o [IVR06] Removed 'volume' and 'offset' from prompt element. Added 5405 'soundLevel' and 'clipBegin' to media element. 5407 o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. 5408 Added 'repeatCount' and 'repeatDur' to dialog element. 5410 o Moved VCR commands from into separate element. 5411 Defined controlinfo element to report runtime control match 5412 information. 5414 o [IVR05] Added to where AS can subscribe 5415 to DTMF key presses (all, control match only, collect match only). 5416 Extended to support associated notification. 5418 o Moved definition of into a separate section. 5420 o [IVR21] Added audit capability: auditing of package capabilities 5421 and managed dialogs 5423 o [IVR21] Explicitly stated that an error must be reported if the 5424 connection or conference referenced in a is not 5425 available at the time the request is processed on the MS. 5427 o Clarified that the rendering mechanism is MS 5428 implementation specific. 5430 o [IVR09]/[IVR10] Clarified attribute definitions and 5431 added 'gender' attribute. 5433 o [IVR16] Clarified that info must be reported in dialogexit, if the 5434 corresponding element is specified in a . For example, if 5435 is specified, then must be specified if the 5436 dialog terminates normally. 5438 o [IVR18] Added 'inactive' value for direction attribute of 5439 . 5441 o [IVR19] Clarified case of on connection/conference 5442 with multiple streams of the same type: recommended to be set 5443 explicitly with s. 5445 o [IVR02] Clarified that multiple dialogs may started simultaneously 5446 on the same connection or conference. 5448 o [IVR20] Added maximum duration (10 minutes) for a dialog to remain 5449 in the PREPARED state. 5451 o Added in and for input/output 5452 in other dialog types 5454 o [IVR22] Added fetchtimeout parameter to dialogprepare, 5455 dialogstart, media and grammar elements. 5457 o [IVR04] Added dialogexit status to indicate the connection or 5458 conference has been terminated. Added others status errors. 5460 o [IVR08] Clarified that the operation does not interrupt 5461 playing prompts and that matched DTMF is not available to 5462 or operations during prompt playback. 5464 o [IVR11] Added runtime controls for speed, goto start/end and 5465 external controls. 5467 o Clarified that recordings can be uploaded to dest during or after 5468 the recording operation. 5470 o /: clarified timer handling - timeout refers to 5471 waiting time for collect/record to begin. 5473 o Clarified behavior of immediate attribute on . 5475 o clarified dialogid lifecycle: dialogids can be re-cycled. 5477 o Clarified error handling. 5479 o Editorial tidy up of sections. 5481 o dialogid attribute on is now mandatory. 5483 o Clarified that the duration specified in finalsilence attribute of 5484 is not part of the final recording. 5486 o Clarified that the SRGS XML grammar format is mandatory 5488 The following are the major changes between the -06 of the draft and 5489 the -05 version. 5491 o Event notifications are sent in CONTROL messages with the MS 5492 acting as Control Framework Client. Compared with the previous 5493 approach, this means that a transaction is now 5494 complete when the MS sends a . A new transaction is 5495 initiated by the MS each time the MS sends a notification 5496 to the AS. 5498 o Changed conf-id to conferenceid and connection-id to connectionid. 5500 o Clarification of the state model for dialogs 5502 o : modified definition of src attribute to allow 5503 reference to external dialog documents; added (MIME) type 5504 attribute; removed child element. 5506 o : modified definition of src attribute to allow 5507 reference to external dialog documents; added (MIME) type 5508 attribute; removed child element; 5510 o : modified so that a dialogexit event is always 5511 sent for active dialogs (i.e. the dialogexit event is a 5512 terminating notification) 5514 o notification simplified and make more extensible. Manual 5515 notifications (via element) are removed from the basic 5516 package. A event is defined as child and it 5517 can be extended with additional child elements 5519 o element is removed. 5521 o element removed. 5523 o Replaced dialog templates with a general element. It has 5524 child elements for playing media resource (), collecting 5525 DTMF () and recording (). The functionality is 5526 largely unchanged. 5528 o and are extended with child 5529 element. 5531 o is extended with a element which contains 5532 status and reported information (replacement for output parameters 5533 in template dialogs) 5535 o Prompts: now structured as a element with , 5536 and children. The element has xml:base 5537 attribute, bargein, iterations, duration, volume and offset 5538 attributes. The speed attribute is removed. A element 5539 has src and type attributes. The maxage and maxstale attributes 5540 are removed. 5542 o DTMF input: parameters now specified as attributes of a 5543 element. Custom grammar specified with a element as 5544 child of element. Added 'escapekey' to allow the dialog 5545 to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' 5546 to allow the prompts to paused/resumed. Added 'volumeinterval', 5547 'volupkey' and voldnkey' to add prompt volume to be increased/ 5548 decreased. Moved 'bargein' attribute to prompt. 5550 o Recording: parameters now specified as attributes of 5551 element. Added 'dest' and 'beep' attributes. 5553 The following are the major changes between the -05 of the draft and 5554 the -04 version. 5556 o Mainly an alignment/evaluation exercise with requirements produced 5557 by MEDIACTRL IVR design team. 5559 o playannouncement parameters from Table 7 of '04' version are now 5560 reflected in text - schema to be updated. 5562 o Added VCR commands based on MSCML. 5564 The following are the major changes between the -04 of the draft and 5565 the -03 version. 5567 o None. 5569 The following are the major changes between the -03 of the draft and 5570 the -02 version. 5572 o added "basicivr:" protocol to template dialog types which must be 5573 supported as values of the "src" attribute in and 5574 . Note alternative: "/basicivr/playannouncement" 5575 offered in [RFC4240]. 5577 o added "basicivr:" URI schema to IANA considerations 5579 o Added mimetype, vadinitial and vadfinal parameters to 5580 'promptandrecord' dialog type 5582 o updated references 5584 The following are the major changes between the -02 of the draft and 5585 the -01 version. 5587 o added version 1.0 to package name 5589 o separate section for element definitions 5591 o dialogterminate treated as request rather than notification 5593 o simplified responses: single element 5595 o removed response elements: , , 5596 , 5598 o simplified event notifications to single element carried 5599 in a REPORT 5601 o element replaced with 5603 o removed element 5605 o added element as child of 5607 o removed 'type' attribute from and 5609 o added dialogid attribute to and 5611 o removed template "Sample Implementation" section 5613 o renamed to 5615 o re-organized so that template details after general package 5616 framework and element description. 5618 The following are the primary changes between the -01 of the draft 5619 and the -00 version. 5621 o Removed requirement for VoiceXML dialog support 5623 o Added requirement for template dialog support 5625 10. Contributors 5627 Asher Shiratzky provided valuable support and contributions to the 5628 early versions of this document. 5630 The authors would like to thank the IVR design team consisting of 5631 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary 5632 Barnes and Steve Buko who provided valuable feedback, input and text 5633 to this document. 5635 11. Acknowledgments 5637 The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave 5638 Burke, Dan York and Steve Buko for expert reviews of this work. 5640 Ben Campbell carried out the RAI expert review on this specification 5641 and provided a great deal of invaluable input. 5643 12. Appendix A: Using VoiceXML as a dialog language 5645 The IVR control package allows, but does not require, the MS to 5646 support other dialog languages by referencing an external dialog 5647 document. This appendix provides MS implementations which support 5648 the VoiceXML dialog language ([VXML20], [VXML21]) with additional 5649 details about using these dialogs in this package. 5651 This appendix covers preparing (Section 12.1), starting 5652 (Section 12.2), terminating (Section 12.3) and exiting (Section 12.4) 5653 VoiceXML dialogs as well as handling VoiceXML call transfer 5654 (Section 12.5). 5656 12.1. Preparing a VoiceXML dialog 5658 A VoiceXML dialog is prepared by sending the MS a request containing 5659 a element (Section 4.2.1). The type attribute is set 5660 to "application/voicexml+xml" and the src attribute to the URI of the 5661 VoiceXML document which is to be prepared by the MS. For example: 5663 5664 5667 5669 The VoiceXML dialog environment uses the request as 5670 an opportunity to fetch and validate the initial document indicated 5671 by the src attribute along with any resources referenced in the 5672 VoiceXML document marked as prefetchable. Note that the fetchtimeout 5673 attribute is not defined in VoiceXML for an initial document but the 5674 MS MUST support this attribute in its VoiceXML environment. 5676 The success or failure of the VoiceXML document preparation is 5677 reported in the MS response. For example, if the VoiceXML document 5678 cannot be retrieved, then a 407 error response is returned. If the 5679 document is syntactically invalid according to VoiceXML, then a 400 5680 response is returned. If successful, the response includes a 5681 dialogid attribute whose value the AS can use in 5682 element to start the prepared dialog. 5684 12.2. Starting a VoiceXML dialog 5686 A VoiceXML dialog is started by sending the MS a request containing a 5687 element (Section 4.2.2). If a VoiceXML dialog has 5688 already been prepared using , then the MS starts the 5689 dialog indicated by the prepareddialogid attribute. Otherwise, a new 5690 VoiceXML dialog can be started by setting the type attribute to 5691 "application/voicexml+xml" and the src attribute to the URI of the 5692 VoiceXML document. For example: 5694 5695 5698 5700 Note that the fetchtimeout attribute is not defined in VoiceXML for 5701 an initial document but the MS MUST support this attribute in its 5702 VoiceXML environment. Note also that support for 5703 subscriptions (Section 4.2.2.1.1) and their associated dialog 5704 notification events is not defined in VoiceXML. If such a 5705 subscription is specified in a request, then the MS 5706 sends a 439 error response (see Section 4.5). 5708 The success or failure of starting a VoiceXML dialog is reported in 5709 the MS response as described in Section 4.2.2. 5711 When the MS starts a VoiceXML dialog, the MS MUST map session 5712 information into VoiceXML session variable object. There are 3 types 5713 of session information: protocol information (Section 12.2.1), media 5714 stream information (Section 12.2.2) and parameter information 5715 (Section 12.2.3). 5717 12.2.1. Session protocol information 5719 If the connectionid attribute is specified, the MS assigns protocol 5720 information from the SIP dialog associated with the connection to the 5721 following session variables in VoiceXML: 5723 session.connection.local.uri Evaluates to the SIP URI specified in 5724 the To: header of the initial INVITE 5726 session.connection.remote.uri Evaluates to the SIP URI specified in 5727 the From: header of the initial INVITE 5729 session.connection.protocol.name Evaluates to "sip". Note that this 5730 is intended to reflect the use of SIP in general, and does not 5731 distinguish between whether the connection accesses the MS via SIP 5732 or SIPS procedures. 5734 session.connection.protocol.version Evaluates to "2.0". 5736 session.connection.redirect This array is populated by information 5737 contained in the History-Info ([RFC4244]) header in the initial 5738 INVITE or is otherwise undefined. Each entry (hi-entry) in the 5739 History-Info header is mapped, in reverse order, into an element 5740 of the session.connection.redirect array. Properties of each 5741 element of the array are determined as follows: 5743 uri Set to the hi-targeted-to-uri value of the History-Info entry 5745 pi Set to 'true' if hi-targeted-to-uri contains a 5746 'Privacy=history' parameter, or if the INVITE Privacy header 5747 includes 'history'; 'false' otherwise 5749 si Set to the value of the 'si' parameter if it exists, undefined 5750 otherwise 5752 reason Set verbatim to the value of the 'Reason' parameter of hi- 5753 targeted-to-uri 5755 session.connection.aai Evaluates to the value of a SIP header with 5756 the name "aai" if present; otherwise undefined. 5758 session.connection.protocol.sip.requesturi This is an associative 5759 array where the array keys and values are formed from the URI 5760 parameters on the SIP Request-URI of the initial INVITE. The 5761 array key is the URI parameter name. The corresponding array 5762 value is obtained by evaluating the URI parameter value as a 5763 string. In addition, the array's toString() function returns the 5764 full SIP Request-URI. 5766 session.connection.protocol.sip.headers This is an associative array 5767 where each key in the array is the non-compact name of a SIP 5768 header in the initial INVITE converted to lower-case (note the 5769 case conversion does not apply to the header value). If multiple 5770 header fields of the same field name are present, the values are 5771 combined into a single comma-separated value. Implementations 5772 MUST at a minimum include the Call-ID header and MAY include other 5773 headers. For example, 5774 session.connection.protocol.sip.headers["call-id"] evaluates to 5775 the Call-ID of the SIP dialog. 5777 If a conferenceid attribute is specified and the MS supports using a 5778 VoiceXML dialog on a conference, then the MS populates the VoiceXML 5779 session protocol variables using an implementation specific 5780 mechanism. Otherwise, the MS sends an 439 error response 5781 (Section 4.5). 5783 12.2.2. Session media stream information 5785 The media streams of the connection or conference to use for the 5786 dialog are described in Section 4.2.2, including use of 5787 elements (Section 4.2.2.2) if specified. The MS maps media stream 5788 information into VoiceXML session variables as follows: 5790 session.connection.protocol.sip.media This is an array where each 5791 array element is an object with the following properties: 5793 type This required property indicates the type of the media 5794 associated with the stream (see Section 4.2.2.2 type 5795 attribute definition) 5797 direction This required property indicates the directionality of 5798 the media relative to session.connection.originator (see 5799 Section 4.2.2.2 direction attribute definition). 5801 format This property is optional. If defined, the value of the 5802 property is an array. Each array element is an object which 5803 specifies information about one format of the media stream. 5804 The object contains at least one property called name whose 5805 value is the subtype of the media format ([RFC4855]). Other 5806 properties may be defined with string values; these correspond 5807 to required and, if defined, optional parameters of the format. 5809 As a consequence of this definition, there is an array entry in 5810 session.connection.protocol.sip.media for each media stream used by 5811 the VoiceXML dialog. For an example, consider a connection with bi- 5812 directional G.711 mu-law audio sampled at 8kHz where the dialog is 5813 started with 5815 5816 5819 5820 5821 5823 In this case, session.connection.protocol.sip.media[0].type evaluates 5824 to "audio", session.connection.protocol.sip.media[0].direction to 5825 "sendonly", and 5826 session.connection.protocol.sip.media[0].format[0].name evaluates to 5827 "audio/PCMU" and 5828 session.connection.protocol.sip.media[0].format[0].rate evaluates to 5829 "8000". 5831 Note that this session variable is updated if the connection or 5832 conference media session characteristics for the VoiceXML dialog 5833 change (i.e. due to a SIP re-INVITE). 5835 12.2.3. Session parameter information 5837 Parameter information is specified in the child element of 5838 , where each parameter is specified using a 5839 element. The MS maps parameter information into VoiceXML session 5840 variables as follows: 5842 session.connection.params This is an array mapped to the 5843 element. It is undefined if a element is not specified. 5844 Each object in the array corresponds to a child of the 5845 element. Each object contains three required properties: 5846 a "name" property evaluating to the value of the name attribute of 5847 the element: a "type" property evaluating to the value of 5848 the type attribute; and a "content" property evaluating to the 5849 content of the . 5851 For example, a VoiceXML dialog started with one parameter: 5853 5854 5857 5858 playannouncement 5859 5860 5861 5863 In this case, session.connection.params would be defined with one 5864 object in the array where session.connection.params[0].name evaluates 5865 to "mode", session.connection.params[0].type evaluates to "text/ 5866 plain" (the default value) and session.connection.params[0].content 5867 evaluates to "playannouncement". 5869 The MS sends an error response (see Section 4.2.2) if a is 5870 not supported by the MS (e.g. the parameter type is not supported). 5872 12.3. Terminating a VoiceXML dialog 5874 When the MS receives a request with a element 5875 (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event 5876 into the specified VoiceXML dialog. Note that if the immediate 5877 attribute has the value true, then the MS MUST NOT return 5878 information when the VoiceXML dialog exits (even if the VoiceXML 5879 dialog provides such information) - see Section 12.4. 5881 If the connection or conference associated with the VoiceXML dialog 5882 terminates, then the MS throws a 'connection.disconnect.hangup' event 5883 into the specified VoiceXML dialog. 5885 12.4. Exiting a VoiceXML dialog 5887 The MS sends a notification event (Section 4.2.5.1) when 5888 the VoiceXML dialog is complete, has been terminated or because it 5889 exits due to an error. The status attribute specifies 5890 the status of the VoiceXML dialog when it exits and its 5891 child element specifies information, if any, returned from the 5892 VoiceXML dialog. 5894 A VoiceXML dialog exits when it processes a element, a 5895 element or an implicit exit according to the VoiceXML FIA. If 5896 the VoiceXML dialog executes a and then subsequently 5897 executes an with namelist information, the namelist 5898 information from the element is discarded. 5900 The MS reports namelist variables in the element of the 5901 . Each reports on a namelist variable. The MS 5902 set the name attribute to the name of the VoiceXML variable. 5903 The MS sets the type attribute according to the type of the 5904 VoiceXML variable. The MS sets the type to 'text/plain' when 5905 the VoiceXML variable is a simple ECMAScript value. If the VoiceXML 5906 variable is a recording, the MS sets the type to the MIME 5907 media type of the recording and encodes the recorded content as CDATA 5908 in the (see Section 4.2.6.1 for an example). If the VoiceXML 5909 variable is a complex ECMAScript value (e.g. object, array, etc), the 5910 MS sets the type to 'application/json' and converts the 5911 variable value to its JSON value equivalent ([RFC4627]. The behavior 5912 resulting from specifying an ECMAScript object with circular 5913 references is not defined. 5915 If the expr attribute is specified on the VoiceXML element 5916 instead of the namelist attribute, the MS creates a element 5917 with the reserved name '__exit', the type 'text/plain' and the 5918 content of the expr attribute. To allow the AS to differentiate 5919 between a notification event resulting from a VoiceXML 5920 from one resulting from an , the MS creates a 5921 with the reserved name '__reason', the type 'text/plain', and 5922 a value of "disconnect" (without brackets) to reflect the use of 5923 VoiceXML's element, and the value of "exit" (without 5924 brackets) to an explicit in the VoiceXML dialog. If the 5925 VoiceXML session terminates for other reasons (such as encountering 5926 an error), this parameter MAY be omitted or take on platform-specific 5927 values prefixed with an underscore. 5929 Table 2 provides some examples of VoiceXML usage and the 5930 corresponding element in the notification 5931 event. It assumes the following VoiceXML variable names and values: 5932 userAuthorized=true, pin=1234 and errors=0. The type 5933 attributes ('text/plain') are omitted for clarity. 5935 +------------------------+------------------------------------------+ 5936 | Usage | Result | 5937 +------------------------+------------------------------------------+ 5938 | | exit | 5940 | | | 5941 | | exit 5 | 5944 | | | 5945 | | exit 'done' | 5948 | | | 5949 | | name="__reason">exit true | 5952 | | | 5953 | | name="__reason">exit 1234 0 | 5957 +------------------------+------------------------------------------+ 5959 Table 2: VoiceXML mapping examples 5961 12.5. Call Transfer 5963 While VoiceXML is at its core a dialog language, it also provides 5964 optional call transfer capability. It is NOT RECOMMENDED to use 5965 VoiceXML's call transfer capability in networks involving Application 5966 Servers. Rather, the AS itself can provide call routing 5967 functionality by taking signaling actions based on the data returned 5968 to it, either through VoiceXML's own data submission mechanisms or 5969 through the mechanism described in Section 12.4. If the MS 5970 encounters a VoiceXML dialog using call transfer capability, the MS 5971 SHOULD terminate the VoiceXML dialog and return a 5972 notification event reporting an execution error. 5974 13. References 5976 13.1. Normative References 5978 [I-D.ietf-mediactrl-sip-control-framework] 5979 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 5980 Control Channel Framework", 5981 draft-ietf-mediactrl-sip-control-framework-07 (work in 5982 progress), November 2008. 5984 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 5985 Requirement Levels", BCP 14, RFC 2119, March 1997. 5987 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 5988 Types", RFC 3023, January 2001. 5990 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 5991 Resource Identifier (URI): Generic Syntax", STD 66, 5992 RFC 3986, January 2005. 5994 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 5995 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 5997 [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying 5998 Languages", BCP 47, RFC 4646, September 2006. 6000 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 6001 BCP 47, RFC 4647, September 2006. 6003 [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar 6004 Specification Version 1.0", W3C Recommendation, 6005 March 2004. 6007 [W3C.REC-SMIL2-20051213] 6008 Zucker, D., Michel, T., Jansen, J., Mullender, S., 6009 Layaida, N., Grassel, G., Koivisto, A., and D. Bulterman, 6010 "Synchronized Multimedia Integration Language (SMIL 2.1)", 6011 World Wide Web Consortium Recommendation REC-SMIL2- 6012 20051213, December 2005, 6013 . 6015 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 6016 and F. Yergeau, "Extensible Markup Language (XML) 1.0 6017 (Third Edition)", W3C Recommendation, February 2004. 6019 [XMLSchema:Part2] 6020 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 6021 Second Edition", W3C Recommendation, October 2004. 6023 13.2. Informative References 6025 [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 6026 1.0", W3C Working Draft (work in progress), January 2007. 6028 [H.248.9] "Gateway control protocol: Advanced media server 6029 packages", ITU-T Recommendation H.248.9. 6031 [I-D.ietf-xcon-common-data-model] 6032 Novo, O., Camarillo, G., Morgan, D., Even, R., and J. 6033 Urpalainen, "Conference Information Data Model for 6034 Centralized Conferencing (XCON)", 6035 draft-ietf-xcon-common-data-model-12 (work in progress), 6036 October 2008. 6038 [IANA] "IANA registry for RTP Payload Types", 6039 . 6041 [MIME.mediatypes] 6042 "IANA registry for MIME Media Types", 6043 . 6045 [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session 6046 Markup Language (MSML)", draft-saleem-msml-07 (work in 6047 progress), August 2008. 6049 [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio 6050 Package", RFC 2897, August 2000. 6052 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 6053 A., Peterson, J., Sparks, R., Handley, M., and E. 6054 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 6055 June 2002. 6057 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 6058 Media Services with SIP", RFC 4240, December 2005. 6060 [RFC4244] Barnes, M., "An Extension to the Session Initiation 6061 Protocol (SIP) for Request History Information", RFC 4244, 6062 November 2005. 6064 [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media 6065 Types: application/voicexml+xml, application/ssml+xml, 6066 application/srgs, application/srgs+xml, application/ 6067 ccxml+xml, and application/pls+xml", RFC 4267, 6068 November 2005. 6070 [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs 6071 Parameter for "Bucket" Media Types", RFC 4281, 6072 November 2005. 6074 [RFC4627] Crockford, D., "The application/json Media Type for 6075 JavaScript Object Notation (JSON)", RFC 4627, July 2006. 6077 [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol 6078 (SIP) Event Package for Key Press Stimulus (KPML)", 6079 RFC 4730, November 2006. 6081 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 6082 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 6083 December 2006. 6085 [RFC4855] Casner, S., "Media Type Registration of RTP Payload 6086 Formats", RFC 4855, February 2007. 6088 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 6089 Control Markup Language (MSCML) and Protocol", RFC 5022, 6090 September 2007. 6092 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 6093 Requirements", RFC 5167, March 2008. 6095 [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., 6096 Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., 6097 and S. Tryphonas, "Voice Extensible Markup Language 6098 (VoiceXML) Version 2.0", W3C Recommendation, March 2004. 6100 [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., 6101 Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, 6102 A., Porter, B., and K. Rehor, "Voice Extensible Markup 6103 Language (VoiceXML) Version 2.1", W3C Recommendation, 6104 June 2007. 6106 Authors' Addresses 6108 Scott McGlashan 6109 Hewlett-Packard 6110 Gustav III:s boulevard 36 6111 SE-16985 Stockholm, Sweden 6113 Email: scott.mcglashan@hp.com 6115 Tim Melanchuk 6116 Rain Willow Communications 6118 Email: tim.melanchuk@gmail.com 6120 Chris Boulton 6121 Avaya 6122 Building 3 6123 Wern Fawr Lane 6124 St Mellons 6125 Cardiff, South Wales CF3 5EA 6127 Email: cboulton@avaya.com 6129 Full Copyright Statement 6131 Copyright (C) The IETF Trust (2008). 6133 This document is subject to the rights, licenses and restrictions 6134 contained in BCP 78, and except as set forth therein, the authors 6135 retain all their rights. 6137 This document and the information contained herein are provided on an 6138 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 6139 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 6140 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 6141 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 6142 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 6143 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 6145 Intellectual Property 6147 The IETF takes no position regarding the validity or scope of any 6148 Intellectual Property Rights or other rights that might be claimed to 6149 pertain to the implementation or use of the technology described in 6150 this document or the extent to which any license under such rights 6151 might or might not be available; nor does it represent that it has 6152 made any independent effort to identify any such rights. Information 6153 on the procedures with respect to rights in RFC documents can be 6154 found in BCP 78 and BCP 79. 6156 Copies of IPR disclosures made to the IETF Secretariat and any 6157 assurances of licenses to be made available, or the result of an 6158 attempt made to obtain a general license or permission for the use of 6159 such proprietary rights by implementers or users of this 6160 specification can be obtained from the IETF on-line IPR repository at 6161 http://www.ietf.org/ipr. 6163 The IETF invites any interested party to bring to its attention any 6164 copyrights, patents or patent applications, or other proprietary 6165 rights that may cover technology that may be required to implement 6166 this standard. Please address the information to the IETF at 6167 ietf-ipr@ietf.org.