Network Working Group C. Boulton Internet-Draft Avaya Intended status: Standards Track T. Melanchuk Expires: August 26, 2008 Rain Willow Communications S. McGlashan Hewlett-Packard February 23, 2008 A Basic Interactive Voice Response (IVR) Control Package for the Media Control Channel Framework draft-boulton-ivr-control-package-06 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on August 26, 2008. Copyright Notice Copyright (C) The IETF Trust (2008). Boulton, et al. Expires August 26, 2008 [Page 1] Internet-Draft Media Server Control Package February 2008 Abstract This document defines a Media Control Channel Framework Package for basic Interactive Voice Response (IVR) interaction. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 7 3. Control Package Definition . . . . . . . . . . . . . . . . . . 8 3.1. Control Package Name . . . . . . . . . . . . . . . . . . . 8 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 8 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . . 9 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . . 9 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 9 4. Dialog Management Element Definitions . . . . . . . . . . . . 11 4.1. Requests . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.1. . . . . . . . . . . . . . . . . . . . 12 4.1.2. . . . . . . . . . . . . . . . . . . . . 13 4.1.3. . . . . . . . . . . . . . . . . . . 16 4.2. Responses . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.1. . . . . . . . . . . . . . . . . . . . . . . 17 4.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 19 4.3.1. . . . . . . . . . . . . . . . . . . . . . . . 19 4.3.2. . . . . . . . . . . . . . . . . . . . . . 19 5. Basic IVR Dialog Element Definitions . . . . . . . . . . . . . 21 5.1. . . . . . . . . . . . . . . . . . . . . . . . . 23 5.2. . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.2.1. . . . . . . . . . . . . . . . . . . . . . . . 25 5.2.2. . . . . . . . . . . . . . . . . . . . . . . 26 5.2.3. . . . . . . . . . . . . . . . . . . . . . . . . 27 5.3. . . . . . . . . . . . . . . . . . . . . . . . . 28 5.3.1. . . . . . . . . . . . . . . . . . . . . . . 31 5.4. . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.5. Exit Information . . . . . . . . . . . . . . . . . . . . . 36 5.5.1. . . . . . . . . . . . . . . . . . . . . . 37 5.5.2. . . . . . . . . . . . . . . . . . . . . 37 5.5.3. . . . . . . . . . . . . . . . . . . . . . 37 6. AS-MS Dialog Interaction Examples . . . . . . . . . . . . . . 39 6.1. Starting an IVR dialog . . . . . . . . . . . . . . . . . . 39 6.2. IVR dialog fails to start . . . . . . . . . . . . . . . . 39 6.3. Preparing and starting an IVR dialog . . . . . . . . . . . 40 6.4. Terminating a dialog . . . . . . . . . . . . . . . . . . . 41 7. Basic IVR Dialog Examples . . . . . . . . . . . . . . . . . . 43 7.1. Playing announcements . . . . . . . . . . . . . . . . . . 43 7.2. Prompt and collect . . . . . . . . . . . . . . . . . . . . 44 7.3. Prompt and record . . . . . . . . . . . . . . . . . . . . 45 Boulton, et al. Expires August 26, 2008 [Page 2] Internet-Draft Media Server Control Package February 2008 8. Type Definitions . . . . . . . . . . . . . . . . . . . . . . . 46 9. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 48 9.1. msc-ivr-common.xsd . . . . . . . . . . . . . . . . . . . . 48 9.2. msc-ivr-basic.xsd . . . . . . . . . . . . . . . . . . . . 55 10. Security Considerations . . . . . . . . . . . . . . . . . . . 67 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 68 11.1. Control Package Registration . . . . . . . . . . . . . . . 68 11.2. URN Sub-Namespace Registration . . . . . . . . . . . . . . 68 11.3. Mime Type Registration . . . . . . . . . . . . . . . . . . 68 12. Change Summary . . . . . . . . . . . . . . . . . . . . . . . . 69 13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 72 14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 73 15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 74 15.1. Normative References . . . . . . . . . . . . . . . . . . . 74 15.2. Informative References . . . . . . . . . . . . . . . . . . 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 76 Intellectual Property and Copyright Statements . . . . . . . . . . 77 Boulton, et al. Expires August 26, 2008 [Page 3] Internet-Draft Media Server Control Package February 2008 1. Introduction The Media Control Channel Framework [MCCF] provides a generic approach for establishment and reporting capabilities of remotely initiated commands. The Framework utilizes many functions provided by the Session Initiation Protocol [RFC3261] (SIP) for the rendezvous and establishment of a reliable channel for control interactions. The Control Framework also introduces the concept of a Control Package. A Control Package is an explicit usage of the Control Framework for a particular interaction set. This document defines a Control Package for basic IVR dialogs. This package has been designed to satisfy the IETF MediaCtrl requirements ([I-D.ietf-mediactrl-requirements]) by building upon two major approaches to IVR dialog design. These approaches address a wide range of IVR use cases and are used in many applications which are extensively deployed today. First, the package is designed to provide the major IVR functionality of SIP Media Server languages such as netann ([RFC4240]), MSCML ([RFC5022]) and MSML ([MSML]) which themselves build upon more traditional non-SIP languages ([H.248.9], [RFC2897]). A key differentiator is that this package provides the functionality using the Media Control Channel Framework. Second, its design is aligned with key concepts in W3C Voice Browser languages. The key dialog management mechanism is closely aligned with CCXML ([CCXML10]). The basic dialog functionality in this package can be seen as a subset of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, DTMF collection and media recording features are incorporated, but not any advanced VoiceXML constructs (such as
, its interpretation algorithm, or a dynamic data model). As W3C develops VoiceXML 3.0, we expect to see further alignment, especially in providing a set of basic independent primitive elements (such as prompt, collect and record) which can be re-used in different dialog languages. By reusing and building upon design patterns from these approaches to IVR languages, this package is intended to provide a foundation which is familiar to current IVR developers and sufficient for 'basic' IVR applications, as well as a path to other languages - including control packages which extend this package - which address more advanced applications. The scope of this package is 'basic' IVR functionality of a media server which includes: Boulton, et al. Expires August 26, 2008 [Page 4] Internet-Draft Media Server Control Package February 2008 o playing one or more media resources as a prompt to the user o collecting DTMF input from the user according to a grammar o recording user media input Out of scope of this package are more advanced functions including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), VoiceXML, fax and media transformation. Such functionality may be addressed by extension packages. This functionality of this package is defined by messages, containing XML [XML] elements, transported using the Media Control Channel Framework. The XML elements can be divided into two types: dialog management elements; and carried within those, elements which define the specific IVR operations for the dialog. Dialog management elements are designed to manage the general lifecycle of a dialog. Elements are provided for preparing a dialog, starting the dialog on a conference or connection, and terminating execution of a dialog. Each of these elements is contained in a Media Control Channel Framework CONTROL message sent to the media server. When the appropriate action has been executed, the media server sends a REPORT message (or a 200 if it can execute in time) with a response element indicating whether the operation was successful or not (e.g. if the dialog cannot be started, then the error is reported in this response). Once a dialog has been successfully started, the media server may send further event notifications in a framework CONTROL message. This package defines one event notification, namely a dialogexit event indicating that the dialog has exited. If the dialog has executed successful, the dialogexit event includes information collected during the dialog. If an error occurs during execution (e.g. a media resource failed to play, no recording resource available, etc), then error information is reported in the dialogexit event. Once a dialogexit event is sent, the dialog lifecycle is terminated. Specific dialog types are referenced or contained within dialog management elements for preparing and starting dialogs. This package defines a basic IVR dialog type which contains child elements for playing prompts to the user, collects DTMF input from the user and recording media input from the user. The child elements can co-occur in the basic IVR dialog type so as to provide 'play announcement', 'prompt and collect' as well as 'prompt and record' functionality. Implementation of this control package MUST adhere to the syntax and semantics of XML elements described in this document. In cases where there is a difference in constraints between the XML schema and the Boulton, et al. Expires August 26, 2008 [Page 5] Internet-Draft Media Server Control Package February 2008 textual description of elements, the textual definition takes priority. Other control packages MAY extend this package. Two extension points are RECOMMENDED: 1. Retaining the dialog management capability but extending the basic IVR dialog type by adding new capabilities. For example, adding speech recognition capability. 2. Extending the dialog management capability with alternative dialog types. For example, using the VoiceXML dialog type rather than the basic IVR dialog type ([VXMLCP]). Otherwise, extension control packages MUST respect the syntax and semantics of this control package. This document specifies how the basic IVR control package fulfills the requirements of the Media Control Channel Framework control packages (Section 3), the dialog management elements defined by the package (Section 4), the basic IVR dialog type definitions (Section 5) as well as providing examples (Section 6, Section 7), type definitions (Section 8) and XML schema (Section 9). Boulton, et al. Expires August 26, 2008 [Page 6] Internet-Draft Media Server Control Package February 2008 2. Conventions and Terminology In this document, BCP 14/RFC 2119 [RFC2119] defines the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In addition, BCP 15 indicates requirement levels for compliant implementations. The following additional terms are defined for use in this document: Dialog: A dialog performs media interaction with a user. A dialog is specified as inline XML, or via a URI reference to an external XML document type. Dialogs typically feature basic capabilities such as playing audio prompts, collecting DTMF input and recording audio input from the user. More advanced dialogs may also feature synthesized speech, recording and playback of video, recognition of spoken input, and mixed initiative conversations. Application server: A SIP [RFC3261] application server (AS) hosts and executes services such as interactive media and conferencing in an operator's network. An AS influences and impacts the SIP session, in particular by terminating SIP sessions on a media server, which is under its control. Media Server: A media server (MS) processes media streams on behalf of an AS by offering functionality such as interactive media, conferencing, and transcoding to the end user. Interactive media functionality is realized by way of dialogs which are initiated by the application server. Boulton, et al. Expires August 26, 2008 [Page 7] Internet-Draft Media Server Control Package February 2008 3. Control Package Definition This section fulfills the mandatory requirement for information that MUST be specified during the definition of a Control Framework Package, as detailed in Section 8 of [MCCF]. 3.1. Control Package Name The Control Framework requires a Control Package to specify and register a unique name and version. The name and version of this Control Package is "msc-ivr-basic/1.0" (Media Server Control - Interactive Voice Response - Basic - version 1.0). Its IANA registration is specified in Section 11.1. 3.2. Framework Message Usage The Control Framework requires a Control Package to explicitly detail the control messages that can be used as well as provide an indication of directionality between entities. This will include which role type is allowed to initiate a request type. This package defines XML elements for dialog management in Section 4; these elements specify dialog requests, responses and event notifications. The package also defined elements for the basic IVR dialog type in Section 5. The basic IVR dialog elements are contained inside dialog management elements. XML Schema for all XML elements defined in this package are specified in Section 9. In this package, the MS operates as a Control Framework Server in receiving requests from, and sending responses to, the AS (operating as Control Framework Client). These requests are carried in CONTROL message bodies from AS to MS; , and elements are defined as package requests. Responses to these requests are carried either in REPORT messages or Control Framework 200 response bodies with element payload. Note that package responses are different from framework response codes. Framework error response codes (see Section 8 of [MCCF]) are used when the request or event notification is invalid; for example, a request is invalid XML (400), or not understood (500). Package responses are carried in 200 response or REPORT message bodies. This package's response codes are defined in Section 4.2.1. The MS also operates as a Control Framework Client in sending event notifications to the AS (Control Framework Server). Event notifications are carried in CONTROL message bodies; the Boulton, et al. Expires August 26, 2008 [Page 8] Internet-Draft Media Server Control Package February 2008 element is defined for package event notifications. AS responses are carried in Control Framework responses or, if the transaction is extended, in REPORT messages. 3.3. Common XML Support The Control Framework requires a Control Package definition to specify if the attributes for media dialog or conference references are required. This package requires that the XML Schema in Section 16.1 of [MCCF] MUST be supported for media dialogs and conferences. The package schema uses "connectionid" and "conferenceid" attributes which are imported from the XML schema. 3.4. CONTROL Message Body The Control Framework requires a Control Package to define the control body that can be contained within a CONTROL command request and to indicate the location of detailed syntax definitions and semantics for the appropriate body types. When operating as Control Framework Server, the MS receives CONTROL messages with a body containing a valid , or request element. The syntax and semantics of these elements are defined in Section 4.1. When operating as Control Framework Client, the MS sends CONTROL messages with a body containing a valid notification element. The syntax and semantics of this element is defined in Section 4.3. 3.5. REPORT Message Body The Control Framework requires a control package definition to define the REPORT body that can be contained within a REPORT command request, or that no report package body is required. This section should indicate the location of detailed syntax definitions and semantics for the appropriate body types. When operating as Control Framework Server, the MS sends REPORT bodies containing a valid element. The syntax and semantics of this element is specified in Section 4.2. When operating as Control Framework Client, the MS receives REPORT messages which SHOULD NOT contain a body. [Editors Note:IVR01 need to clarify the behavior when the MS receives Boulton, et al. Expires August 26, 2008 [Page 9] Internet-Draft Media Server Control Package February 2008 a REPORT in response to sending an event notification CONTROL.] Boulton, et al. Expires August 26, 2008 [Page 10] Internet-Draft Media Server Control Package February 2008 4. Dialog Management Element Definitions This section defines the dialog management XML messages for this control package. These messages are divided into requests (Section 4.1), responses (Section 4.2) and notifications (Section 4.3). 4.1. Requests Requests are send to the MS (operating as a Control Framework Server) in the body of CONTROL messages. The following request elements are defined: : prepare an IVR dialog for later execution : start an IVR dialog on a connection or conference : terminate an IVR dialog These elements control the life cycle of a dialog. Each dialog has the following states: IDLE: the dialog is uninitialized. PREPARING: the dialog is being prepared. If an error occurs the dialog transitions to the TERMINATED state. PREPARED: the dialog has been successfully prepared and has a valid dialog identifier. STARTING: the dialog is being started. If an error occurs the dialog transitions to the TERMINATED state. STARTED: the dialog has been successfully started and is now active. When the dialog exits (normally or terminated), or due to an error, a dialogexit notification event is sent and the dialog transitions to the TERMINATED state. TERMINATED: the dialog is terminated and its dialogid is no longer valid. No further dialog notifications are sent for this dialog. As a consequence, it is an error if the same dialog is prepared or started more than once. Boulton, et al. Expires August 26, 2008 [Page 11] Internet-Draft Media Server Control Package February 2008 4.1.1. The request is sent to the MS to request preparation of an IVR dialog. Dialog preparation consists of (a) retrieving an external dialog document (if specified), and (b) validating the document both syntactically and semantically. A prepared dialog is executed when the AS sends a request referencing the prepared dialog (see Section 4.1.2). A element has the following attributes: src: specifies the location of an external dialog document to prepare. A valid value is a URI (see Section 8.9). It is an error if the document cannot be retrieved or processed (e.g. URI protocol not supported). The attribute is optional. type: specifies the type of the external dialog document indicated in the 'src' attribute. A valid value is a MIME type (see Section 8.10). The attribute is optional. dialogid: string indicating a unique name for the dialog. If this attribute is not specified, the MS creates a unique name for the dialog. The value is used in subsequent references to the dialog (e.g. as dialogid in a ). It is an error if a dialog with the same name already exists on the MS. The attribute is optional. The element in this package is extended with the the child element for inline Basic IVR dialog (see Section 5.1). Other packages which extend this package MAY use alternative dialog types. The dialog to prepare can either be specified inline as a child element or externally using the src attribute (but not both). It is an error if both an inline dialog element and a src attribute are specified. When an MS receives a request, the dialog is in a PREPARING state. If dialog preparation was successful, the dialog is in a PREPARED state; otherwise the dialog is in a TERMINATED state. The MS MUST reply to request with a element (Section 4.2), reporting whether dialog preparation was successful or not. Example: in CONTROL message from AS to MS, the following request prepares a basic IVR dialog where a single prompt is played once: Boulton, et al. Expires August 26, 2008 [Page 12] Internet-Draft Media Server Control Package February 2008 Alternatively, the same dialog could be referenced: if the dialog is prepared successful, then a Control Framework 200 or a REPORT message for the same transaction would contain a response such as: The Control Framework transaction is then complete. See Section 6 and Section 7 for further examples. 4.1.2. The element is sent by the AS to start a dialog. The dialog may be specified in the request itself, or reference a previously prepared dialog. Starting a dialog consists of (a) retrieving any resources (e.g. media, grammar, etc) associated with the dialog, and (b) activating these resources according to the dialog type. For example, with , retrieving media resources and playing them to the user. The element has the following attributes: src: specifies the location of an external dialog document to start. A valid value is a URI (see Section 8.9). It is an error if the document cannot be retrieved or processed (e.g. URI protocol not supported). The attribute is optional. type: specifies the type of the external dialog document indicated in the 'src' attribute. A valid value is a MIME type (see Section 8.10). The attribute is optional. Boulton, et al. Expires August 26, 2008 [Page 13] Internet-Draft Media Server Control Package February 2008 dialogid: string indicating a unique name for the dialog. If this attribute is not specified, the MS creates a unique name for the dialog. The value is used in subsequent references to the dialog (e.g. as dialogid in a ). It is an error if a dialog with the same name already exists on the MS. The attribute is optional. prepareddialogid: string identifying a dialog previously prepared using a dialogprepare request. The attribute is optional. connectionid: string identifying the SIP dialog connection on which this dialog is to be started (see Section 16.1 of [MCCF]). The attribute is optional. conferenceid: string identifying the conference on which this dialog is to be started (see Section 16.1 of [MCCF]). The attribute is optional. Exactly one of the connectionid or conferenceid attributes MUST be specified. It is an error to specify both connectionid and conferenceid attributes or neither. The element has the following child elements defined: : contains the following attributes: media: a string indicating the type of media associated with the stream. It is strongly RECOMMENDED that the following values are used for common types of media: "audio" for audio media, and "video" for video media. The attribute is mandatory. label: a string indicating the SDP label associated with a media stream ([RFC4574]). The attribute is optional. direction: a string indicating the direction of the media flow between a dialog and its end point conference or connection. Defined values are: "sendrecv" (media can be sent and received), "sendonly" (media can only be sent), and "recvonly" (media can only be received). The default value is "sendrecv". The attribute is optional. One or more elements may be specified so that individual media streams can be controlled independently; for example, audio only for transmission, but video only for reception. The element is optional. If no elements are specified, then the default is the media configuration of the connection or conference. It is an error if a element is in conflict with (a) another element, (b) with dialog, connection or Boulton, et al. Expires August 26, 2008 [Page 14] Internet-Draft Media Server Control Package February 2008 conference media capabilities, or (c) with a SDP label value as part of the connectionid (see Section 16.1 of [MCCF]). The element in this package is extended with the the child element for inline Basic IVR dialog (see Section 5.1). Other packages which extend this package MAY use alternative dialog types. The dialog to start can be specified either inline, or externally, or reference a previously prepared dialog. Exactly one of the src attribute, the prepareddialogid or a dialog type child element MUST be specified. If the prepareddialogid is specified, it is an error to specify the src attribute, the dialogid attribute or a dialog type child element. If the src attribute is specified, it is an error to specify the prepareddialogid attribute, or a dialog type child element. If a dialog type child element is specified, it is an error to specify the src attribute or the prepareddialogid attribute. When an MS receives a request, the dialog is either in an IDLE or PREPARED state (if a previously prepared dialog is being started). If in the IDLE state, then the dialog is first prepared and if successful, transitions to the PREPARED state. When the prepared dialog is started it transitions to the STARTING state and, if the dialog is started successfully, the dialog then transition to the STARTED state. If a error occurs during dialog preparation or starting, then the error MUST be reported, and the dialog transitions to a TERMINATED state. The MS MUST reply to request with a element (Section 4.2), reporting whether the dialog was started successful or not. [Editors Note:IVR02 This specification does not defined the behavior when more than one dialog is started on the same connection or conference. Various models could be applied: reject: only one dialog per connection or conference replace: the current dialog is stopped and the new one started queue: the new dialog is queued for starting after current dialog exits. mix: multiple dialogs are permitted with the same connection or conference: input is passed to both dialog; and dialog output is mixed. We also need to take into account that the element can be used to specify that different dialogs affect different media streams of the same connection or conference. For example, one dialog that Boulton, et al. Expires August 26, 2008 [Page 15] Internet-Draft Media Server Control Package February 2008 only generates output, and another dialog on the same connection only receives input. Workgroup input on this issue is required. ] Example: in CONTROL message from AS to MS, the following request starts a basic ivr recording dialog on a conference: Alternatively, the same dialog could be referenced: if the dialog is started successfully, then a Control Framework 200 or a REPORT message for the same transaction would contain a response such as: The Control Framework transaction is then complete. See Section 6 and Section 7 for further examples. 4.1.3. A dialog that has been successfully prepared or started can be terminated by sending a request element to the MS. The element has the following attributes: dialogid: string identifying the dialog to terminate. The attribute is mandatory. immediate: indicates whether the dialog is to be terminated immediately or not. A valid value is a boolean (see Section 8.1). A value of true indicates that the dialog is terminated and a dialogexit notification MUST be sent immediately. A value of false indicates that the dialog terminates normally, sending a dialogexit notification is sent when the dialog has exited. The attribute is optional. The default value is false. It is an error if the dialogid is invalid. Boulton, et al. Expires August 26, 2008 [Page 16] Internet-Draft Media Server Control Package February 2008 When an MS receives a request, the dialog MUST be in a PREPARED, STARTING or STARTED states. If it is in a PREPARED state, then it transitions immediately to the TERMINATED state. If it is in STARTING state, then any further starting (or preparation) of the dialog is canceled, the response of the dialogstart command reporting that the dialog is terminated, and the dialog transitions to the TERMINATED state. If the dialog is in a STARTED state, then the dialog is terminated according to the value of the immediate attribute, and when the dialogexit notification is sent, the dialog moves into the TERMINATED state. The MS MUST reply to request with a element (Section 4.2), reporting whether the dialog was stopped successful or not. Example: in CONTROL message from AS to MS, the following request terminate a dialog with dialogid "vxi1": if the dialog is terminated successfully, then a Control Framework 200 or a REPORT message for the same transaction would contain a response such as: The Control Framework transaction is then complete. See Section 6 and Section 7 for further examples. 4.2. Responses Responses are generated in response to , and requests. Responses are specified in a element. 4.2.1. Responses to requests are indicated by a element. The element has following attributes: status: numeric code indicating the response status. The attribute is mandatory. Boulton, et al. Expires August 26, 2008 [Page 17] Internet-Draft Media Server Control Package February 2008 reason: string specifying a reason for the response status. The attribute is optional. dialogid: string identifying the dialog. The attribute is optional. connectionid: string identifying the SIP dialog connection associated with the dialog (see Section 16.1 of [MCCF]). The attribute is optional. conferenceid: string identifying the conference associated with the dialog (see Section 16.1 of [MCCF]). The attribute is optional. The following status codes are defined: +-----------+-------------------------------------------------------+ | code | description | +-----------+-------------------------------------------------------+ | 200 | OK | | | | | 401 | dialogid already exists | | | | | 402 | dialogid does not exist | | | | | 403 | connectionid does not exist | | | | | 404 | conferenceid does not exist | | | | | 405 | Unknown or unsupported element | | | | | 406 | Element required | | | | | 407 | Unknown or unsupported attribute | | | | | 408 | Attribute required | | | | | 409 | dialog type not supported | | | | | 410 | Retrieving document resource failed | | | | | 411 | Invalid attribute value | | | | | 499 | other error | +-----------+-------------------------------------------------------+ Table 1: status codes [Editors Note:IVR03 more status codes may need to be defined.] Boulton, et al. Expires August 26, 2008 [Page 18] Internet-Draft Media Server Control Package February 2008 For example, a response when a dialog was prepared successfully: The response if dialog preparation failed due to an unsupported dialog type: For example, a response when the dialog was started successfully. See Section 6 and Section 7 for further examples. 4.3. Notifications Event notifications are specified in an element. Event notifications MUST NOT be sent unless the dialog is in a STARTED state. 4.3.1. When a dialog generates a notification event, the MS sends the event to the AS using an element. The element has the following attributes: dialogid: string identifying the dialog which generated the event. The attribute is mandatory. The element has the following child elements: : indicates that the dialog has exited. The element is optional. Extension packages may define other child elements for notifications which they support. See Section 6 and Section 7 for examples. 4.3.2. The event indicates that an active dialog has exited because it is complete, has been terminated, or because an error Boulton, et al. Expires August 26, 2008 [Page 19] Internet-Draft Media Server Control Package February 2008 occurred during execution (for example, a media resource cannot be played). This event MUST be sent by the MS when the dialog exits. Once the dialogexit event is sent, the dialog transitions from the STARTED state to the TERMINATED state. The MS MUST NOT send any further notifications for a dialog in the TERMINATED state. The element has the following attributes: status: a status code indicating success or failure of the dialog. A valid value is a non-negative integer (see Section 8.4). A value of 0 indicates that the dialog has been terminated externally. A value of 1 indicates success. Any other value indicate an error. The attribute is mandatory. reason: a textual description providing a reason for the status code; e.g. details about an error. A valid value is a string (see Section 8.6). The attribute is optional. There is no default value. [Editors Note:IVR04 do we need to specify specific error codes?] The element in this package is extended with child elements for reporting prompt, collect and record information (see Section 5.5) of the basic IVR dialog type. Other packages which extend this package MAY use alternative child elements. Example: when a STARTED dialog exits normally the MS sends a dialogexit : See Section 6 and Section 7 for further examples. Boulton, et al. Expires August 26, 2008 [Page 20] Internet-Draft Media Server Control Package February 2008 5. Basic IVR Dialog Element Definitions The basic IVR dialog is an instance of a dialog described in Section 4.1. The MS MUST support the Basic IVR dialog type in this package. A basic IVR dialog is specified inline or by reference in (Section 4.1.1) or (Section 4.1.2) elements. Inline basic ivr dialogs are specified in a child of these elements. The basic IVR dialog is a simple XML container - - for executing basic IVR operations of playing prompts ( - see Section 5.2), collecting DTMF ( - see Section 5.3),and recording user input ( - see Section 5.4. Results of the dialog execution are reported in a dialogexit notification event. Three execution models are defined: playannouncements: only a element is specified in the container. The prompt media resources are played in sequence. promptandcollect: a element is specified and, optionally, a element. If a element is specified and bargein is enabled, playing of the prompt is terminated when bargein occurs, and DTMF collection is initiated; otherwise, the prompt is played to completion before DTMF collection is initiated. If no prompt element is specified, DTMF collection is initiated immediately. promptandrecord: a element is specified and, optionally, a element. If a element is specified and bargein is enabled, playing of the prompt is terminated when bargein occurs, and recording is initiated; otherwise, the prompt is played to completion before recording is initiated. If no prompt element is specified, recording is initiated immediately. Each of the core elements - , and - are specified so that their execution and reporting is largely self- contained. This facilitates their re-use in other dialog container elements. Execution results are reported in the notification event whose definition is extended with the elements defined in Section 5.5. If the dialog terminated normally (i.e. not due to an error or to a request), then the MS MUST report the results for at least the core operation: Boulton, et al. Expires August 26, 2008 [Page 21] Internet-Draft Media Server Control Package February 2008 only: (see Section 5.5.1) with at least the termmode attribute specified. : (see Section 5.5.2) with the dtmf and termmode attributes specified. : (see Section 5.5.3) with at least the recording, type and termmode attributes specified. The media format requirements for basic IVR dialogs are undefined. This package is agnostic to the media types and codecs for media resources and recording which need to be supported by an implementation. For example, a MS implementation may choose to support only audio and in particular the 'audio/basic' codec for media playback and recording. However, if an MS encounters when executing a dialog a media type or codec which it cannot process, the MS MUST stop further processing and report an error to the AS using the dialogexit notification. The implementation of basic IVR dialogs MUST adhere to the syntax and semantics described in this section. Implementations MAY support additional (non-basicivr namespace) attributes and elements of these dialogs. If an implementation encounters additional (non-basicivr namespace) elements or attributes which it cannot process, it MUST ignore them and continue processing. [Editors Note:IVR05 One use case which is not covered by this specification is that of attaching a dialog to a connection, which itself is attached to a conference, and allowing that dialog to repeatedly collect and return matching DTMF without terminating. The current specification requires that the dialog exits at the end of its DTMF collection. For the next collection cycle, a new dialog would need to be started. If the use case is in scope for this package, then the definition of could be modified as follows: 1. A signalmode attribute/element is added to indicating the conditions under which the dialog sends a (non-terminating) notification event (TBD). If any of its child elements completes with a termmode value matching a condition (e.g. a 'match' from ), then information collected by the children is returned to the AS in a notification event. The dialog is always restarted and it needs to be terminated by the AS (unless an error occurs). 2. If the signalmode attribute/element is not specified, then the behavior is as currently defined. Boulton, et al. Expires August 26, 2008 [Page 22] Internet-Draft Media Server Control Package February 2008 3. Note that if media prompts were specified, the same prompts would play repeatedly - a more sophisticated approach would be required to play different prompts on different termmodes like nomatch, noinput, etc Working Group input is needed to determined if this use case is in scope for this package and whether this type of solution is adequate.] 5.1. A dialog to play prompts to the user, collect DTMF or record input. The dialog is specified using a element with the namespace defined in Section 11.2. A element has the following attributes: version: a string specifying the version of the basicivr package. The attribute is optional. The default value is '1.0'. The element has the following child elements: : defines media resources to play in sequence (see Section 5.2). The element is optional. : defines how DTMF is collected (see Section 5.3). The element is optional. : defines how recording takes place (see Section 5.4). The element is optional. It is an error if no child element is specified. The behavior is not defined if both and are specified. 5.2. The element specifies a sequence of media resources to play. A element has the following attributes: xml:base: A string declaring the base URI from which relative URIs in child elements are resolved. A valid value is a URI (see Section 8.9). The attribute is optional. bargein: Indicates whether user input stops prompt playback. A valid value is a boolean (see Section 8.1). A value of true indicates that bargein is permitted and prompt playback is stopped. A value of false indicates that bargein is not Boulton, et al. Expires August 26, 2008 [Page 23] Internet-Draft Media Server Control Package February 2008 permitted: user input does not terminate prompt playback. The attribute is optional. The default value is true. iterations: number of times the prompt is to be played. A valid value is a non-negative integer (see Section 8.4). A value of 0 indicates that the prompt is repeated until halted by other means. The attribute is optional. The default value is 1. duration: maximum duration for the prompt playback. A valid value is a Time Designation (see Section 8.7). If no value is specified, then there is no limit on the duration of the prompt. The attribute is optional. There is no default value. volume: playback volume for the prompt. A valid value is a percentage (see Section 8.4). The value indicates increase or decrease relative to the original recorded volume of the media. A value of 100% (the default) plays the media at its recorded volume, a value of 200% will play the media twice recorded volume, 50% at half its recorded volume, and so on. The attribute is optional. The default value is 100%. offset: offset to begin playing the prompt. A valid value is a Time Designation (see Section 8.7). The offset is measured in normal media playback time from the beginning of the media resource. The attribute is optional. The default value is 0s. The duration attribute takes priority over the iterations attribute in determining maximum duration of the prompt. [Editors Note:IVR06 iterations could be replaced with 'repeatCount', duration with 'repeatDur', volume could be replaced with 'soundLevel' and offset with 'clipBegin' for better alignment with SMIL and possibly VoiceXML.] [Editors Note:IVR07 should volume use a linear or logarithmic scaling?] The element has the following child elements: : media resource (see Section 5.2.1) to play. Multiple instances of this element are permitted. The element is optional. : specifies a variable media announcement (see Section 5.2.2) to play. Multiple instances of this element are permitted. The element is optional. Boulton, et al. Expires August 26, 2008 [Page 24] Internet-Draft Media Server Control Package February 2008 : generates one or more DTMF tones (see Section 5.2.3) to play. Multiple instances of this element are permitted. The element is optional. It is an error if no child element is specified. Prompt playing has the following execution model upon initialization: 1. If an error occurs during execution, then playback terminates and the error is reported in the status attribute (see Section 5.5) of the event. 2. A iterations counter is initialized to 0. 3. A timer is started for the value of the duration attribute. If the timer expires before playback is complete, then playback terminates and the dialogexit result contains the termmode attribute set to maxduration (see Section 5.5.1). 4. A playback cycle is initiated playing each , and in document order. The value of the volume attribute is applied to each and if they are rendered as audio media. If the offset attribute is specified, playback begins at that offset. If the offset is greater than the cumulative duration of the child elements, then no prompts are played in the cycle. 5. If the value of the bargein attribute is true, then user input causes playback to terminate and the dialogexit result contains the termmode attribute is set to bargein (see Section 5.5.1). 6. If the playback cycle completes successfully, then the iterations counter is updated. If the counter reaches the value of the iterations attribute, then playback is terminated and the dialogexit result contains a termmode attribute set to completed (see Section 5.5.1). Otherwise, another playback cycle is initiated. [Editors Note:IVR08 Need to clarify that DTMF used for VCR controls does not cause playback to be stopped, but causes the appropriate operation to be applied to the playing prompts. ] 5.2.1. The element specifies a media resource to play. A element has the following attributes: Boulton, et al. Expires August 26, 2008 [Page 25] Internet-Draft Media Server Control Package February 2008 src: specifies the location of the media resource. A valid value is a URI (see Section 8.9). The attribute is mandatory. type: specifies the type of the media resource indicated in the 'src' attribute. The type value may include additional parameters for guiding playback; for example, [RFC4281] defines a 'codec' parameter for 'bucket' media types like video/3gpp. A valid value is a MIME type (see Section 8.10). The attribute is optional. There is no default value. The element has no children. It is an error if the media resource cannot be retrieved or played. 5.2.2. The element specifies variable announcements using predefined media resources. Each variable has at least a type (e.g. date) and a value (e.g. 2008-02-25). The value is rendered according to the variable type (e.g. 25th February 2008) as well as other defined attributes. A element has the following attributes: value: specifies the string to be rendered. A valid value is a string (see Section 8.6). The attribute is mandatory. type: specifies the type to use for rendering. A valid value is a string (see Section 8.6). The attribute is mandatory. format: specifies format information to use in conjunction with the type for the rendering. A valid value is a string (see Section 8.6). The attribute is optional. There is no default value. xml:lang: specifies the language to use when rendering the variable. A valid value is a language identifier (see Section 8.11). The attribute is optional. The default value is platform-specific. [Editors Note:IVR09 do we need a gender attribute for variable announcements? ] The element has no children. This package is agnostic to which values, types and formats are supported by an implementation. However it is RECOMMENDED that an implementation support the following type/format combinations: Boulton, et al. Expires August 26, 2008 [Page 26] Internet-Draft Media Server Control Package February 2008 type=date Supported formats: "mdy", "ymd", "dym" type=time Supported formats: "t12", "t24" type=digits Supported formats: "gen", "ndn", "crn", "ord" [Editors Note:IVR10 Further work needed on these definitions. Which other types and formats need to, or can, be specified? ] This specification is agnostic to the type and codec of media resources into which variable are rendered. For example, an MS choosing to support audio may render the into one or more audio media resources. It is an error if a element cannot be rendered successfully. Execution of this element can seen, at least logically, as conversion of a into a list of elements. For example, could be transformed into audio saying "twenty-fifth of February two thousand and eight" using a list of resources: 5.2.3. The element specifies a sequence of DTMF tones for output. DTMF tones could be generated using resources where the output is transported as RTP audio packets. However, resources are not sufficient for cases where DTMF tones are to be transported as DTMF RTP ([RFC2833]) or in event packages. A element has the following attributes: digits: specifies the DTMF sequence to output. A valid value is a DTMF string (see Section 8.3). The attribute is mandatory. Boulton, et al. Expires August 26, 2008 [Page 27] Internet-Draft Media Server Control Package February 2008 level: used to define the power level for which the DTMF tones will be generated. Values are expressed in dBm0. A valid value is an integer in the range of 0 to -96 (dBm0). Larger negative values express lower power levels. Note that values lower than -55 dBm0 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). The attribute is optional. The default value is -6 (dBm0). duration: specifies the duration for which each DTMF tone is generated. A valid value is a time designation (see Section 8.7). Implementations may round the value if they only support discrete durations. The attribute is optional. The default value is 100ms. interval: specifies the duration of a silence interval following each generated DTMF tone. A valid value is a time designation (see Section 8.7). Implementations may round the value if they only support discrete durations. The attribute is optional. The default value is 100ms. The element has no children. It is an error if a element cannot be processed successfully. 5.3. The element defines how DTMF input is collected. The element has the following attributes: cleardigitbuffer: indicates whether the digit buffer is to be cleared. A valid value is a boolean (see Section 8.1). A value of true indicates that the digit buffer is to be cleared. A value of false indicates that the digit buffer is not to be cleared. The attribute is optional. The default value is true. timeout: indicates the time to wait for user input. A valid value is a Time Designation (see Section 8.7). The attribute is optional. The default value is 5s. interdigittimeout: indicates inter-digit timeout value to use when recognizing DTMF input. A valid value is a Time Designation (see Section 8.7). The attribute is optional. The default value is 2s. termtimeout: indicates the terminating timeout value to use when recognizing DTMF input. A valid value is a Time Designation (see Section 8.7). The attribute is optional. The default value is 0s. Boulton, et al. Expires August 26, 2008 [Page 28] Internet-Draft Media Server Control Package February 2008 escapekey: specifies a DTMF key that indicates the DTMF collection is to be re-initiated. A valid value is a DTMF Character (see Section 8.2). The attribute is optional. There is no default value. termchar: specifies a DTMF character for terminating DTMF input collection using the internal grammar. A valid value is a DTMF character (see Section 8.2). To disable termination by a conventional DTMF character, set the parameter to an unconventional character like 'A'. The attribute is optional. The default value is '#'. maxdigits: The maximum number of digits to collect using an internal digits (0-9 only) grammar. A valid value is a positive integer (see Section 8.5). The attribute is optional. The default value is 5. skipinterval: indicates how far a MS should skip backwards or forwards through prompt playback when the rewind (rwkey) of fast forward key (ffkey) is pressed. A valid value is a Time Designation (see Section 8.7). The attribute is optional. The default value is 6s. ffkey: maps a DTMF key to a fast forward operation equal to the value of 'skipinterval'. A valid value is a DTMF Character (see Section 8.2). The attribute is optional. There is no default value. rwkey: maps a DTMF key to a rewind operation equal to the value of 'skipinterval'. A valid value is a DTMF Character (see Section 8.2). The attribute is optional. There is no default value. pauseinterval: indicates how long a MS should pause prompt playback when the pausekey is pressed. A valid value is a Time Designation (see Section 8.7). The attribute is optional. The default value is 10s. pausekey: maps a DTMF key to a pause operation equal to the value of 'pauseinterval'. A valid value is a DTMF Character (see Section 8.2). The attribute is optional. There is no default value. resumekey: maps a DTMF key to a resume operation. A valid value is a DTMF Character (see Section 8.2). The attribute is optional. There is no default value. Boulton, et al. Expires August 26, 2008 [Page 29] Internet-Draft Media Server Control Package February 2008 volumeinterval: indicates the increase or decrease in playback volume (relative to the current volume) when the volupkey or voldnkey is pressed. A valid value is a percentage (see Section 8.8). The attribute is optional. The default value is 10%. volupkey: maps a DTMF key to a volume increase operation equal to the value of 'volumeinterval'. A valid value is a DTMF Character (see Section 8.2). The attribute is optional. There is no default value. voldnkey: maps a DTMF key to a volume decrease operation equal to the value of 'volumeinterval'.A valid value is a DTMF Character (see Section 8.2). The attribute is optional. There is no default value. It is an error if any VCR key (ffkey, rwkey, pausekey, resumekey, volupkey, voldnkey) is specified with the same value except that the pausekey and resumekey may have the same value. [Editors Note:IVR11 Do we need a speed VCR control as well? ] [Editors Note:IVR12 it has been proposed that termchar should be replaced by termkeys (DTMF string value) to allow termination by multiple characters (e.g. '**'). An additional attribute would probably also be need to control interdigit timing within this string. Is this functionality required for this package?] The element has the following child elements: : indicates a custom grammar format (see Section 5.3.1). The element is optional. The custom grammar takes priority over the internal grammar. If a element is specified, it MUST be used for DTMF collection. DTMF collection has the following execution model upon initialization: 1. If an error occurs during execution, then collection terminates and the error is reported in the status attribute (see Section 5.5) of the event. 2. The digit buffer is cleared if the value of the cleardigitbuffer attribute is true. 3. A timer with the duration of the value of the timeout attribute is activated. If the timer expires before DTMF input collection Boulton, et al. Expires August 26, 2008 [Page 30] Internet-Draft Media Server Control Package February 2008 has completed, then collection execution terminates and the dialogexit result contains a (see Section 5.5.2) with the termmode attribute set to noinput. 4. If DTMF input matches any VCR keys (for example the ffkey), then the appropriate operation is applied to the active prompts; this is a no-op if a prompt is not specified, or there are no active prompts. If a seek operation (ffkey, rwkey) attempts to go beyond the beginning or end of the prompt queue, then it is automatically truncated to the prompt beginning or end respectively. If the pause operation attempts to pause output when it is already paused, then the operation is ignored. If the resume operation attempts to resume when the prompts are not paused, then the operation is ignored. If a volume operations attempts to go beyond the minimum or maximum volume supported by the platform, then the operation is ignored. DTMF input matching VCR controls is ignored for grammar matching. 5. If DTMF input matches the value of the escapekey attribute, then the timer is canceled and DTMF collection is re-initialized. 6. Other DTMF input is matched to the grammar. Valid DTMF patterns are either a simple digit string where the maximum length is determined by the maxdigits attribute and may be terminated by the character in the termchar attribute; or a custom DTMF grammar specified with the element. The attributes interdigittimeout and termtimeout control interdigit timeout and the terminating timeout respectively. 7. If the input completely matches the grammar, the timer is canceled, collection execution terminates and the dialogexit result contains a (see Section 5.5.2) with the termmode attribute set to match. 8. If the input does not match the grammar, the timer is canceled, collection execution terminates and the dialogexit result contains a (see Section 5.5.2) with the termmode attribute set to nomatch. 5.3.1. The element allows a custom grammar, inline or external, to be specified. Custom grammars permit the full range of DTMF characters including '*' and '#' to be specified for DTMF pattern matching. The element has the following attributes: Boulton, et al. Expires August 26, 2008 [Page 31] Internet-Draft Media Server Control Package February 2008 src: specifies the location of an external grammar. A valid value is a URI (see Section 8.9). The attribute is optional. There is no default value. type: identifies the preferred type of the grammar document identified by the src attribute. A valid value is a MIME type (see Section 8.10). The attribute is optional. There is no default value. The element allows inline grammars to be specified. XML grammar formats MUST use a namespace other than the one used in this specification. Non-XML grammar formats MAY use a CDATA section. The MS MUST support the [SRGS] grammar format and MS MAY support KPML ([RFC4730]) or other grammar formats. It is an error if a grammar format is specified which is not supported by the MS. [Editors Note:IVR13 One drawback of using with an inline custom grammar is that nested elements are needed for SRGS: i.e. custom element and inside that a element in the SRGS namespace. The alternative would be (a) element is only for external grammars, and (b) inline grammars are specified as children of (with suitable co-occurrence restrictions). Feedback is required to determined if the nesting is confusing or not. ] Example: in CONTROL message from AS to MS, the following request starts a dialog where DTMF collection is determined by an inline SRGS grammar: Boulton, et al. Expires August 26, 2008 [Page 32] Internet-Draft Media Server Control Package February 2008 0 1 2 3 4 5 6 7 8 9 # * 9 The same grammar could also be referenced externally (and take advantage of HTTP caching): Boulton, et al. Expires August 26, 2008 [Page 33] Internet-Draft Media Server Control Package February 2008 | | (terminate) | | <---------------------------------------- | | | | (4) 200 | | ----------------------------------------> | | | | (5) CONTROL: | | | | <---------------------------------------- | | | | (6) 200 | | ----------------------------------------> | | | 6.2. IVR dialog fails to start An IVR dialog fails to start due to an unknown dialog type. Boulton, et al. Expires August 26, 2008 [Page 39] Internet-Draft Media Server Control Package February 2008 Application Server (AS) Media Server (MS) | | | (1) CONTROL: | | ----------------------------------------> | | | | (2) 202 | | <--------------------------------------- | | | | (3) REPORT: | | (terminate) | | <---------------------------------------- | | | | (4) 200 | | ----------------------------------------> | | | 6.3. Preparing and starting an IVR dialog An IVR dialog is prepared and started successfully, and then the dialog exits normally. Boulton, et al. Expires August 26, 2008 [Page 40] Internet-Draft Media Server Control Package February 2008 Application Server (AS) Media Server (MS) | | | (1) CONTROL: | | ----------------------------------------> | | | | (2) 202 | | <--------------------------------------- | | | | (3) REPORT: | | (terminate) | | <---------------------------------------- | | | | (4) 200 | | ----------------------------------------> | | | | (5) CONTROL: | | ----------------------------------------> | | | | (6) 202 | | <--------------------------------------- | | | | (7) REPORT: | | (terminate) | | <---------------------------------------- | | | | (8) 200 | | ----------------------------------------> | | | | (9) CONTROL: | | <---------------------------------------- | | | | (10) 200 | | ----------------------------------------> | | | 6.4. Terminating a dialog An IVR dialog is started successfully, and then terminated by the AS. The dialogexit event is sent by to the AS when the dialog exits. Boulton, et al. Expires August 26, 2008 [Page 41] Internet-Draft Media Server Control Package February 2008 Application Server (AS) Media Server (MS) | | | (1) CONTROL: | | ----------------------------------------> | | | | (2) 202 | | <--------------------------------------- | | | | (3) REPORT: | | (terminate) | | <---------------------------------------- | | | | (4) 200 | | ----------------------------------------> | | | | (5) CONTROL: | | ----------------------------------------> | | | | (6) 200: | | <---------------------------------------- | | | | (7) CONTROL: | | <---------------------------------------- | | | | (8) 200 | | ----------------------------------------> | | | Note that in (6) the payload to the request is carried on a framework 200 response since it could complete the requested operation before the transaction timeout. Boulton, et al. Expires August 26, 2008 [Page 42] Internet-Draft Media Server Control Package February 2008 7. Basic IVR Dialog Examples The following examples show how is used with , and elements to play prompts, collect DTMF input and record user input. The examples do not specify all messages between the AS and MS. 7.1. Playing announcements This example prepares an announcement composed of two prompts. If the dialog is prepared successfully, a with status 200 is returned: The prepared dialog is then started on a conference playing the prompts twice: In the case of a successful dialog, the output is provided in ; for example Boulton, et al. Expires August 26, 2008 [Page 43] Internet-Draft Media Server Control Package February 2008 7.2. Prompt and collect This example plays no prompts and just waits for DTMF input from the user: If the dialog is successful, then "dialogexit" contains the dtmf collected in its result parameter: In this example, a prompt is played and then we wait for 3 hours for a two digit sequence: If no user input is collected within 3 hours, then following would be returned: And finally in this example, one of the input parameters is invalid: Boulton, et al. Expires August 26, 2008 [Page 44] Internet-Draft Media Server Control Package February 2008 The error is reported in a the response: 7.3. Prompt and record In this example, the user is prompted, then their input is recorded for a maximum of 30 seconds. If successful, the following is returned in a dialogexit : Boulton, et al. Expires August 26, 2008 [Page 45] Internet-Draft Media Server Control Package February 2008 8. Type Definitions This section defines types referenced in attribute definitions. 8.1. Boolean The value space of boolean is the set {true, false}. 8.2. DTMFChar A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, #, *, A, B, C, D}. 8.3. DTMFString A String composed of one or more DTMFChars. 8.4. Non-Negative Integer The value space of non-negative integer is the infinite set {0,1,2,...}. 8.5. Positive Integer The value space of positive integer is the infinite set {1,2,...}. 8.6. String A string in the character encoding associated with the XML element. 8.7. Time Designation A time designation consists of a non-negative real number followed by a time unit identifier. The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 8.8. Percentage A percentage consists of a Positive Integer followed by "%". Examples include: "100%", "500%" and "10%". Boulton, et al. Expires August 26, 2008 [Page 46] Internet-Draft Media Server Control Package February 2008 8.9. URI Uniform Resource Indicator as defined in [RFC3986]. 8.10. mimetype A string formated as a IANA mimetype. 8.11. Language Identifier A language identifier labels information content as being of a particular human language variant. Following the XML specification for language identification [XML], a legal language identifier is identified by a RFC3066 ([RFC3066]) code where the language code is required and a country code or other subtag identifier is optional. Boulton, et al. Expires August 26, 2008 [Page 47] Internet-Draft Media Server Control Package February 2008 9. Formal Syntax This package defines two XML schema: 1. msc-ivr-common.xsd: defines the common datatypes, attributes and dialog management elements. It does not use a namespace. 2. msc-ivr-basic.xsd: defines the basic ivr elements and uses schema redefinition to extend dialog management elements. All elements in this schema, including the imported dialog management elements, are in the urn:ietf:params:xml:ns:msc-ivr-basic namespace. The schema are dependent upon the schema (framework.xsd) defined in Section 16.1 of the Control Framework [MCCF] Both schema are fully extensible: attributes and elements from other namespaces are permitted, and extensions can be specified using the mechanism. The schema of extension control packages MUST imported one of these schema and specify how they extend the elements. Extensions to the element use msc-ivr-basic.xsd. Extensions to the dialog management elements use msc-ivr-common.xsd. [Editors Note:IVR14 A later version of this document may provide a RelaxNG schema which provides better support for co-occurrence constraints than XML schema. Does anyone want/need such a schema?] 9.1. msc-ivr-common.xsd IETF MediaCtrl IVR Common 1.0 (20080225) This is the common core schema of the IVR packages defined as part of the Basic IVR Control Package. It specifies common datatypes, attributes and dialog control element definitions. This import brings in the framework attributes for conferenceid and connectionid. This import brings in the XML attributes for xml:base, xml:lang, etc See http://www.w3.org/2001/xml.xsd for latest version Boulton, et al. Expires August 26, 2008 [Page 51] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 52] Internet-Draft Media Server Control Package February 2008 group allowing attributes from other namespaces group allowing elements from other namespaces Time designation following Time in CSS2 DTMF character [0-9#*A-D] Boulton, et al. Expires August 26, 2008 [Page 54] Internet-Draft Media Server Control Package February 2008 DTMF sequence [0-9#*A-D] whole integer followed by '%' 9.2. msc-ivr-basic.xsd IETF MediaCtrl IVR Basic 1.0 (20080225) This is the schema of the Basic IVR control package. It imports the msc-ivr-common schema (dialogprepare, etc) and specifies basicivr, prompt, collect and record elements. The schema namespace is urn:ietf:params:xml:ns:msc-ivr-basic This import brings in the XML attributes for xml:base, xml:lang, etc See http://www.w3.org/2001/xml.xsd for latest version This import brings in the IVR common package and redefines some elements as follows: [1] adds basicivr element to dialogprepare [2] adds basicivr element to dialogstart [3] adds promptinfo, collectinfo and recordinfo as children of dialogexit element Boulton, et al. Expires August 26, 2008 [Page 56] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 57] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 58] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 59] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 60] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 61] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 62] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 63] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 64] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 65] Internet-Draft Media Server Control Package February 2008 Boulton, et al. Expires August 26, 2008 [Page 66] Internet-Draft Media Server Control Package February 2008 10. Security Considerations As this control package uses XML markup, implementation MUST address the security considerations of [RFC3023]. Boulton, et al. Expires August 26, 2008 [Page 67] Internet-Draft Media Server Control Package February 2008 11. IANA Considerations This specification instructs IANA to register a new Media Control Channel Framework Package, a new XML namespace and a new mime type. 11.1. Control Package Registration Control Package name: msc-ivr-basic/1.0 11.2. URN Sub-Namespace Registration XML namespace: urn:ietf:params:xml:ns:msc-ivr-basic 11.3. Mime Type Registration MIME type: application/msc-ivr-basic+xml Boulton, et al. Expires August 26, 2008 [Page 68] Internet-Draft Media Server Control Package February 2008 12. Change Summary Note to RFC Editor: Please remove this whole section. The following are the major changes between the -06 of the draft and the -05 version. o Event notifications are sent in CONTROL messages with the MS acting as Control Framework Client. Compared with the previous approach, this means that a transaction is now complete when the MS sends a . A new transaction is initiated by the MS each time the MS sends a notification to the AS. o Changed conf-id to conferenceid and connection-id to connectionid. o Clarification of the state model for dialogs o : modified definition of src attribute to allow reference to external dialog documents; added (MIME) type attribute; removed child element. o : modified definition of src attribute to allow reference to external dialog documents; added (MIME) type attribute; removed child element; o : modified so that a dialogexit event is always sent for active dialogs (i.e. the dialogexit event is a terminating notification) o notification simplified and make more extensible. Manual notifications (via element) are removed from the basic package. A event is defined as child and it can be extended with additional child elements o element is removed. o element removed. o Replaced dialog templates with a general element. It has child elements for playing media resource (), collecting DTMF () and recording (). The functionality is largely unchanged. o and are extended with child element. Boulton, et al. Expires August 26, 2008 [Page 69] Internet-Draft Media Server Control Package February 2008 o is extended with a element which contains status and reported information (replacement for output parameters in template dialogs) o Prompts: now structured as a element with , and children. The element has xml:base attribute, bargein, iterations, duration, volume and offset attributes. The speed attribute is removed. A element has src and type attributes. The maxage and maxstale attributes are removed. o DTMF input: parameters now specified as attributes of a element. Custom grammar specified with a element as child of element. Added 'escapekey' to allow the dialog to be retried. Added 'pauseinterval', 'pausekey' and 'resumekey' to allow the prompts to paused/resumed. Added 'volumeinterval', 'volupkey' and voldnkey' to add prompt volume to be increased/ decreased. Moved 'bargein' attribute to prompt. o Recording: parameters now specified as attributes of element. Added 'dest' and 'beep' attributes. The following are the major changes between the -05 of the draft and the -04 version. o Mainly an alignment/evaluation exercise with requirements produced by MEDIACTRL IVR design team. o playannouncement parameters from Table 7 of '04' version are now reflected in text - schema to be updated. o Added VCR commands based on MSCML. The following are the major changes between the -04 of the draft and the -03 version. o None. The following are the major changes between the -03 of the draft and the -02 version. o added "basicivr:" protocol to template dialog types which must be supported as values of the "src" attribute in and . Note alternative: "/basicivr/playannouncement" offered in [RFC4240]. o added "basicivr:" URI schema to IANA considerations Boulton, et al. Expires August 26, 2008 [Page 70] Internet-Draft Media Server Control Package February 2008 o Added mimetype, vadinitial and vadfinal parameters to 'promptandrecord' dialog type o updated references The following are the major changes between the -02 of the draft and the -01 version. o added version 1.0 to package name o separate section for element definitions o dialogterminate treated as request rather than notification o simplified responses: single element o removed response elements: , , , o simplified event notifications to single element carried in a REPORT o element replaced with o removed element o added element as child of o removed 'type' attribute from and o added dialogid attribute to and o removed template "Sample Implementation" section o renamed to o re-organized so that template details after general package framework and element description. The following are the primary changes between the -01 of the draft and the -00 version. o Removed requirement for VoiceXML dialog support o Added requirement for template dialog support Boulton, et al. Expires August 26, 2008 [Page 71] Internet-Draft Media Server Control Package February 2008 13. Contributors Asher Shiratzky from Radvision provided valuable support and contributions to the early versions of this document. The authors would like to thank the IVR design team consisting of Roni Even, Lorenzo Miniero, Adnan Saleem and Diego Besprosvan who provided valuable feedback, input and text to this document. Boulton, et al. Expires August 26, 2008 [Page 72] Internet-Draft Media Server Control Package February 2008 14. Acknowledgments The authors would like to thank Adnan Saleem of Radisys, Gene Shtirmer of Intel, Dave Burke of Google and Dan York of Voxeo for useful reviews of this work. Boulton, et al. Expires August 26, 2008 [Page 73] Internet-Draft Media Server Control Package February 2008 15. References 15.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 15.2. Informative References [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 1.0", W3C Working Draft (work in progress), January 2007. [H.248.1] "Gateway control protocol: Version 3", ITU-T Recommendation H.248.1. [H.248.9] "Gateway control protocol: Advanced media server packages", ITU-T Recommendation H.248.9. [I-D.ietf-mediactrl-requirements] Dolly, M. and R. Even, "Media Server Control Protocol Requirements", draft-ietf-mediactrl-requirements-03 (work in progress), December 2007. [MCCF] Boulton, C., Melanchuk, T., McGlashan, S., and A. Shiratzky, "Media Control Channel Framework", draft-ietf-mediactrl-sip-control-framework-01 (work in progress), February 2008. [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session Markup Language (MSML)", draft-saleem-msml-06 (work in progress), February 2008. [RFC2833] Schulzrinne, H. and S. Petrack, "RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals", RFC 2833, May 2000. [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio Package", RFC 2897, August 2000. [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001. [RFC3066] Alvestrand, H., "Tags for the Identification of Languages", RFC 3066, January 2001. [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, Boulton, et al. Expires August 26, 2008 [Page 74] Internet-Draft Media Server Control Package February 2008 June 2002. [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005. [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network Media Services with SIP", RFC 4240, December 2005. [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs Parameter for "Bucket" Media Types", RFC 4281, November 2005. [RFC4574] Levin, O. and G. Camarillo, "The Session Description Protocol (SDP) Label Attribute", RFC 4574, August 2006. [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol (SIP) Event Package for Key Press Stimulus (KPML)", RFC 4730, November 2006. [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server Control Markup Language (MSCML) and Protocol", RFC 5022, September 2007. [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar Specification Version 1.0", W3C Recommendation, March 2004. [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., and S. Tryphonas, "Voice Extensible Markup Language (VoiceXML) Version 2.0", W3C Recommendation, March 2004. [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, A., Porter, B., and K. Rehor, "Voice Extensible Markup Language (VoiceXML) Version 2.1", W3C Recommendation, June 2007. [VXMLCP] Boulton, C., Melanchuk, T., and S. McGlashan, "A VoiceXML Interactive Voice Response (IVR) Control Package for the Media Control Channel Framework", draft-boulton-ivr-vxml-control-package-04 (work in progress), February 2008. [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., and F. Yergeau, "Extensible Markup Language (XML) 1.0 (Third Edition)", W3C Recommendation, February 2004. Boulton, et al. Expires August 26, 2008 [Page 75] Internet-Draft Media Server Control Package February 2008 Authors' Addresses Chris Boulton Avaya Building 3 Wern Fawr Lane St Mellons Cardiff, South Wales CF3 5EA Email: cboulton@avaya.com Tim Melanchuk Rain Willow Communications Email: tim.melanchuk@gmail.com Scott McGlashan Hewlett-Packard Gustav III:s boulevard 36 SE-16985 Stockholm, Sweden Email: scott.mcglashan@hp.com Boulton, et al. Expires August 26, 2008 [Page 76] Internet-Draft Media Server Control Package February 2008 Full Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Boulton, et al. Expires August 26, 2008 [Page 77]