[Docs] [txt|pdf] [Tracker] [Email] [Diff1] [Diff2] [Nits]

Versions: 00 01 02 03 04 05 06

Network Working Group                                         C. Boulton
Internet-Draft                             Ubiquity Software Corporation
Expires: September 9, 2006                                  T. Melanchuk
                                                              BlankSpace
                                                            S. McGlashan
                                                         Hewlett-Packard
                                                            A. Shiratzky
                                                               Radvision
                                                           March 8, 2006


A Basic Interactive Voice Response (IVR) Control Package for the Session
                       Initiation Protocol (SIP)
                  draft-boulton-ivr-control-package-01

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 September 9, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document defines a Session Initiation (SIP) Control Package for
   basic Interactive Voice Response (IVR) interaction.  The control of



Boulton, et al.         Expires September 9, 2006               [Page 1]


Internet-Draft        Media Server Control Package            March 2006


   Media Servers and their related resources in decomposed network
   architectures plays an important role in various Next Generation
   Networks.  This Control Package provides IVR functionality using the
   SIP Control Framework [16].


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Conventions and Terminology  . . . . . . . . . . . . . . . . .  5
   3.  IVR Template Dialogs . . . . . . . . . . . . . . . . . . . . .  5
     3.1.  Play Announcement  . . . . . . . . . . . . . . . . . . . .  6
     3.2.  Prompt and Collect . . . . . . . . . . . . . . . . . . . .  9
     3.3.  Prompt and Record  . . . . . . . . . . . . . . . . . . . . 15
     3.4.  Status Codes . . . . . . . . . . . . . . . . . . . . . . . 19
     3.5.  Type Definitions . . . . . . . . . . . . . . . . . . . . . 19
     3.6.  Sample Implementation  . . . . . . . . . . . . . . . . . . 20
   4.  Control Package Definition . . . . . . . . . . . . . . . . . . 20
     4.1.  Control Package Name . . . . . . . . . . . . . . . . . . . 20
     4.2.  Common XML Support . . . . . . . . . . . . . . . . . . . . 21
     4.3.  Framework Message Usage  . . . . . . . . . . . . . . . . . 21
     4.4.  CONTROL Message Body . . . . . . . . . . . . . . . . . . . 22
       4.4.1.  dialogprepare  . . . . . . . . . . . . . . . . . . . . 22
       4.4.2.  dialogstart  . . . . . . . . . . . . . . . . . . . . . 23
       4.4.3.  dialoguser . . . . . . . . . . . . . . . . . . . . . . 24
       4.4.4.  dialogterminate  . . . . . . . . . . . . . . . . . . . 25
     4.5.  REPORT Message Body  . . . . . . . . . . . . . . . . . . . 25
       4.5.1.  dialogprepared . . . . . . . . . . . . . . . . . . . . 25
       4.5.2.  dialogstarted  . . . . . . . . . . . . . . . . . . . . 26
       4.5.3.  dialogexit . . . . . . . . . . . . . . . . . . . . . . 26
       4.5.4.  dialoguser . . . . . . . . . . . . . . . . . . . . . . 27
       4.5.5.  Error Messages . . . . . . . . . . . . . . . . . . . . 27
   5.  Namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
   6.  Template Dialog Examples . . . . . . . . . . . . . . . . . . . 28
     6.1.  playannouncement . . . . . . . . . . . . . . . . . . . . . 29
     6.2.  promptandcollect . . . . . . . . . . . . . . . . . . . . . 30
     6.3.  promptandrecord  . . . . . . . . . . . . . . . . . . . . . 31
   7.  AS-MS Interaction Examples . . . . . . . . . . . . . . . . . . 32
     7.1.  Starting an IVR dialog . . . . . . . . . . . . . . . . . . 32
     7.2.  IVR dialog fails to start  . . . . . . . . . . . . . . . . 33
     7.3.  Preparing and starting an IVR dialog . . . . . . . . . . . 34
     7.4.  Terminating a dialog non-immediately . . . . . . . . . . . 36
     7.5.  Terminating a dialog immediately . . . . . . . . . . . . . 36
   8.  Formal Syntax  . . . . . . . . . . . . . . . . . . . . . . . . 37
   9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 41
   10. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 42
     10.1. Control Package Registration . . . . . . . . . . . . . . . 42
     10.2. MIME Registration  . . . . . . . . . . . . . . . . . . . . 42



Boulton, et al.         Expires September 9, 2006               [Page 2]


Internet-Draft        Media Server Control Package            March 2006


     10.3. URN Sub-Namespace Registration . . . . . . . . . . . . . . 42
   11. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 42
   12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 42
     12.1. Normative References . . . . . . . . . . . . . . . . . . . 42
     12.2. Informative References . . . . . . . . . . . . . . . . . . 42
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45
   Intellectual Property and Copyright Statements . . . . . . . . . . 46












































Boulton, et al.         Expires September 9, 2006               [Page 3]


Internet-Draft        Media Server Control Package            March 2006


1.  Introduction

   The SIP Control Framework [16] provides a generic approach for
   establishment and reporting capabilities of remotely initiated
   commands.  The Framework utilizes many functions provided by the
   Session Initiation Protocol [3] (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 specification defines a package for
   basic IVR.

   The scope of the package is control of media server functions for
   basic interactive media (e.g. play a prompt, collecting DTMF,
   recording user input) as well as notifications related to these
   functions.

   These functions and notifications are defined as messages in XML
   [21].  The message use XML elements for preparing, starting and
   stopping dialogs, as well as elements for responses and notifications
   ([17], [19] and [20]).

   This basic IVR package uses template dialogs to provide IVR
   functionality.  Three template dialogs are defined:
   playannouncement: a dialog to play one or more prompts to the user
   promptandcollect: a dialog to prompt the user and collect DTMF input
   promptandrecord: a dialog to prompt the user and record their audio
      input

   To use a template dialog, the AS references it by name in an XML
   message for preparing or starting a dialog.  The XML message may also
   contain input parameters to configure specific dialog behavior.
   After the dialog has been executed, it returns template output
   parameters in a dialog exit message to the AS.

   Template dialogs are intended to provide basic IVR functionality
   ([11], [8], [14], [9] and [13]).  The template approach follows
   previous approaches in that it provides IVR functionality which is
   commonly required for applications.  It differs in that the
   functionality is expressed in XML using a reference to the template
   dialog, and parameters expressed in a simple XML data structure.
   This is a lightweight approach since the contents of the dialog
   itself does not need to be transported over the control channel (or
   fetched from an external source), only a template reference plus
   configuration data is required.  From the developer's perspective,
   this simplifies application development: they do not need to write
   their IVR dialog using custom XML elements, they only need to
   reference the template dialog and, if required, populate a simple XML



Boulton, et al.         Expires September 9, 2006               [Page 4]


Internet-Draft        Media Server Control Package            March 2006


   data structure to pass configuration data.

   The implementation of template dialogs requires only that they adhere
   to the syntax and semantics of templates described in this document.

   Other control packages may be defined which extend the capabilities
   of the control package defined in this document.  Such control
   package must respect the syntax and semantics of this control
   package.


2.  Conventions and Terminology

   In this document, BCP 14/RFC 2119 [1] 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
      identified by a URI and has an associated mimetype.  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 [3] 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 identified
      by a URI and initiated by the application server.


3.  IVR Template Dialogs

   The execution of IVR template dialog takes place on the MS.  The AS
   specifies the name of the template and configuration parameters, and
   receives the result from the MS after the dialog has been executed.

   Input parameters are used to configure and customize the behavior of
   the template.  For many input parameters, the templates provide
   default values; a developer can specify an alternative value if the



Boulton, et al.         Expires September 9, 2006               [Page 5]


Internet-Draft        Media Server Control Package            March 2006


   default is not appropriate for their application.  Input parameters
   for templates may be mandatory, requiring a specific value to be
   provided.

   The result of executing a template dialog is reported to the AS using
   output parameters.  These parameters may describe status information,
   error information or information collected from the user.  Output
   parameters are mandatory or optional depending on the specific
   template; mandatory parameters must be specified by the
   implementation.

   Template dialogs are invoked by referencing them in the src attribute
   of <dialogprepare> (Section 4.4.1) or <dialogstart> (Section 4.4.2).
   Input parameters are specified in the <namelist> (Section 5) of these
   elements.  Output parameters are specified in the <namelist> of
   <dialogexit> (Section 4.5.3).  The detailed mapping of template
   dialogs to XML CONTROL and REPORT messages is described in Section 4
   and examples are provided in Section 6.

   The implementation of template dialogs requires only that they adhere
   to the syntax and semantics of templates described in this document.
   The actual implementation may be based on any technology or scripting
   language.  Section 3.6 provides a sample implementation in VoiceXML
   [18].

   The media requirements on the template implementation are restricted
   to the capability to play audio prompts (specified as URIs), collect
   DTMF input, and record audio input.  The implementation must support
   G.711 audio formats.

   [Editors Note: Later versions may consider additional media
   requirements including TTS, ASR, video, etc. ]

3.1.  Play Announcement

   A template dialog to play announcements to the user.

   The template dialog is invoked using the URI "playannouncement".

   The dialog execution model consists of:
   1.  Playing prompts in the order specified until completion.
   2.  Repeating step 1 for the value of iterations.
   3.  Returning status and reason parameters.

   The input and output parameters are summarized and defined below.






Boulton, et al.         Expires September 9, 2006               [Page 6]


Internet-Draft        Media Server Control Package            March 2006


     +------------+-----------+-------------------------+------------+
     | Name       | Direction | Description             | Definition |
     +------------+-----------+-------------------------+------------+
     | prompts    | input     | prompts to play         | Table 2    |
     | iterations | input     | maximum iterations      | Table 3    |
     | status     | output    | status code             | Table 4    |
     | reason     | output    | reason for status       | Table 5    |
     +------------+-----------+-------------------------+------------+

               Table 1: playannouncement parameter overview

   Note that playannouncement requires at least one prompt specified in
   prompts.

   +-------------+-----------------------------------------------------+
   | Name        | prompts                                             |
   +-------------+-----------------------------------------------------+
   | Description | One or more prompts to play                         |
   | Direction   | input                                               |
   | Type        | URIList                                             |
   | Optional    | No                                                  |
   | Possible    | A valid URIList which is non-empty                  |
   | Values      |                                                     |
   | Default     | none                                                |
   +-------------+-----------------------------------------------------+

                             Table 2: prompts

   +-------------+-----------------------------------------------------+
   | Name        | iterations                                          |
   +-------------+-----------------------------------------------------+
   | Description | Maximum number of times the playannouncement dialog |
   |             | is to be played                                     |
   | Direction   | input                                               |
   | Type        | Non-Negative Integer                                |
   | Optional    | Yes                                                 |
   | Possible    | A valid non-negative integer.  A value of 0         |
   | Values      | indicates that the dialog is repeated until halted  |
   |             | by other means.                                     |
   | Default     | 1                                                   |
   +-------------+-----------------------------------------------------+

                            Table 3: iterations








Boulton, et al.         Expires September 9, 2006               [Page 7]


Internet-Draft        Media Server Control Package            March 2006


   +-------------+-----------------------------------------------------+
   | Name        | status                                              |
   +-------------+-----------------------------------------------------+
   | Description | A status code indicating success or failure of the  |
   |             | playannouncement dialog                             |
   | Direction   | output                                              |
   | Type        | Non-Negative Integer                                |
   | Optional    | No                                                  |
   | Possible    | 1 for success; otherwise an error code (600, 601,   |
   | Values      | 602).  See Table 33                                 |
   | Default     | none                                                |
   +-------------+-----------------------------------------------------+

                              Table 4: status

   +-------------+-----------------------------------------------------+
   | Name        | reason                                              |
   +-------------+-----------------------------------------------------+
   | Description | A textual description providing a reason for the    |
   |             | status code; e.g. details about an error            |
   | Direction   | output                                              |
   | Type        | String                                              |
   | Optional    | Yes                                                 |
   | Possible    | A valid String value                                |
   | Values      |                                                     |
   | Default     | Empty string                                        |
   +-------------+-----------------------------------------------------+

                              Table 5: reason

   The following additional input parameters are under consideration for
   later versions:

   +---------------+---------------------------------------------------+
   | Name          | Description                                       |
   +---------------+---------------------------------------------------+
   | duration      | maximum duration for the dialog including         |
   |               | iterations                                        |
   | interval      | time to elapse between successive iterations      |
   | audiomaxage   | maxage cache control for prompts                  |
   | audiomaxstale | maxstale cache control for prompts                |
   | speed         | playback speed for prompts                        |
   | volume        | playback volume for prompts                       |
   | offset        | play from offset in prompts                       |
   | variables     | references to common types such as money, time,   |
   |               | numbers, etc                                      |
   +---------------+---------------------------------------------------+




Boulton, et al.         Expires September 9, 2006               [Page 8]


Internet-Draft        Media Server Control Package            March 2006


              Table 6: Additional playannouncement parameters

3.2.  Prompt and Collect

   A template dialog to play prompts and collect DTMF input.

   The dialog is invoked with the URI "promptandcollect".

   The dialog execution model consists of:
   1.  Clearing the digit buffer depending on the value of
       cleardigitbuffer.
   2.  Playing prompts in the order specified.  The bargein parameter
       determines whether user input can be collected during prompt
       playback stops (if so, prompt playback is stopped).
   3.  Collecting DTMF input from the user.  Valid DTMF patterns are
       either a simple digit string where the maximum length is
       determined by maxdigits and may be terminated by the character in
       termchar; or a custom DTMF grammar specified by grammar.  The
       parameters timeout, interdigittimeout and termtimeout control
       user input timeout, interdigit timeout and the terminating
       timeout respectively.
   4.  If no input is collected or the input is invalid, steps 1 - 3 are
       repeated for the value of iterations.
   5.  Returning status, reason and result parameters.

   The input and output parameter are summarized and defined below.

   +-------------------+-----------+----------------------+------------+
   | Name              | Direction | Description          | Definition |
   +-------------------+-----------+----------------------+------------+
   | prompts           | input     | prompts to play      | Table 8    |
   | iterations        | input     | maximum attempts     | Table 9    |
   | cleardigitbuffer  | input     | dtmf buffer clearing | Table 10   |
   | bargein           | input     | interruption of      | Table 11   |
   |                   |           | prompts              |            |
   | timeout           | input     | timeout for user     | Table 12   |
   |                   |           | input                |            |
   | interdigittimeout | input     | timeout between      | Table 13   |
   |                   |           | digits               |            |
   | termtimeout       | input     | terminating timeout  | Table 14   |
   | termchar          | input     | terminating          | Table 15   |
   |                   |           | character            |            |
   | maxdigits         | input     | maximum number of    | Table 16   |
   |                   |           | digits               |            |
   | grammar           | input     | custom grammar       | Table 17   |
   | status            | output    | status code          | Table 18   |
   | reason            | output    | reason for status    | Table 19   |




Boulton, et al.         Expires September 9, 2006               [Page 9]


Internet-Draft        Media Server Control Package            March 2006


   | result            | output    | input collected      | Table 20   |
   +-------------------+-----------+----------------------+------------+

   +-------------+-----------------------------------------------------+
   | Name        | prompts                                             |
   +-------------+-----------------------------------------------------+
   | Description | Initial prompts to play                             |
   | Direction   | input                                               |
   | Type        | URIList                                             |
   | Optional    | Yes                                                 |
   | Possible    | A valid URIList                                     |
   | Values      |                                                     |
   | Default     | none                                                |
   +-------------+-----------------------------------------------------+

                             Table 8: prompts

   +-------------+-----------------------------------------------------+
   | Name        | iterations                                          |
   +-------------+-----------------------------------------------------+
   | Description | Maximum number of times the promptandcollect dialog |
   |             | is to be played                                     |
   | Direction   | input                                               |
   | Type        | Non-Negative Integer                                |
   | Optional    | Yes                                                 |
   | Possible    | A valid non-negative integer.  A value of 0         |
   | Values      | indicates the dialog is repeated until halted by    |
   |             | other means.                                        |
   | Default     | 0                                                   |
   +-------------+-----------------------------------------------------+

                            Table 9: iterations

   +-------------+-----------------------------------------------------+
   | Name        | cleardigitbuffer                                    |
   +-------------+-----------------------------------------------------+
   | Description | Clear digit buffer prior to prompt playback         |
   | Direction   | input                                               |
   | Type        | Boolean                                             |
   | Optional    | Yes                                                 |
   | Possible    | A valid boolean value.  A value of true indicates   |
   | Values      | that the digitbuffer is to be cleared.  A value of  |
   |             | false indicates that the digitbuffer is not to be   |
   |             | cleared.                                            |
   | Default     | true                                                |
   +-------------+-----------------------------------------------------+

                        Table 10: cleardigitbuffer



Boulton, et al.         Expires September 9, 2006              [Page 10]


Internet-Draft        Media Server Control Package            March 2006


   +-------------+-----------------------------------------------------+
   | Name        | bargein                                             |
   +-------------+-----------------------------------------------------+
   | Description | Indicates whether the user can interrupt the prompt |
   |             | with their input                                    |
   | Direction   | input                                               |
   | Type        | Boolean                                             |
   | Optional    | Yes                                                 |
   | Possible    | A valid boolean value.  A value of true indicates   |
   | Values      | that bargein is permitted.  A value of false        |
   |             | indicates that bargein is not permitted.            |
   | Default     | true                                                |
   +-------------+-----------------------------------------------------+

                             Table 11: bargein

   +-------------+-----------------------------------------------------+
   | Name        | timeout                                             |
   +-------------+-----------------------------------------------------+
   | Description | Indicates the time to wait for user input           |
   | Direction   | input                                               |
   | Type        | Time Designation                                    |
   | Optional    | Yes                                                 |
   | Possible    | A valid TimeDesignation value.                      |
   | Values      |                                                     |
   | Default     | 5s                                                  |
   +-------------+-----------------------------------------------------+

                             Table 12: timeout

   +-------------+-----------------------------------------------------+
   | Name        | interdigittimeout                                   |
   +-------------+-----------------------------------------------------+
   | Description | The inter-digit timeout value to use when           |
   |             | recognizing DTMF input                              |
   | Direction   | input                                               |
   | Type        | Time Designation                                    |
   | Optional    | Yes                                                 |
   | Possible    | A valid TimeDesignation value.                      |
   | Values      |                                                     |
   | Default     | 2s                                                  |
   +-------------+-----------------------------------------------------+

                        Table 13: interdigittimeout







Boulton, et al.         Expires September 9, 2006              [Page 11]


Internet-Draft        Media Server Control Package            March 2006


   +-------------+-----------------------------------------------------+
   | Name        | termtimeout                                         |
   +-------------+-----------------------------------------------------+
   | Description | The terminating timeout to use when recognizing     |
   |             | DTMF input                                          |
   | Direction   | input                                               |
   | Type        | Time Designation                                    |
   | Optional    | Yes                                                 |
   | Possible    | A valid TimeDesignation value.                      |
   | Values      |                                                     |
   | Default     | 0s                                                  |
   +-------------+-----------------------------------------------------+

                           Table 14: termtimeout

   +-------------+-----------------------------------------------------+
   | Name        | termchar                                            |
   +-------------+-----------------------------------------------------+
   | Description | The terminating DTMF character for DTMF input       |
   |             | recognition.  This parameter is ignored if the      |
   |             | grammar parameter is specified.                     |
   | Direction   | input                                               |
   | Type        | DTMFChar                                            |
   | Optional    | Yes                                                 |
   | Possible    | A valid DTMFChar value.  To disable termination by  |
   | Values      | a conventional DTMF character, set the parameter to |
   |             | an unconventional character like 'A'.               |
   | Default     | #                                                   |
   +-------------+-----------------------------------------------------+

                            Table 15: termchar

   +-------------+-----------------------------------------------------+
   | Name        | maxdigits                                           |
   +-------------+-----------------------------------------------------+
   | Description | The maximum number of digits to collect using an    |
   |             | internal digits (0-9 only) grammar.  This parameter |
   |             | is ignored if the grammar parameter is specified.   |
   | Direction   | input                                               |
   | Type        | Positive Integer                                    |
   | Optional    | Yes                                                 |
   | Possible    | A valid positive integer value.                     |
   | Values      |                                                     |
   | Default     | 5                                                   |
   +-------------+-----------------------------------------------------+

                            Table 16: maxdigits




Boulton, et al.         Expires September 9, 2006              [Page 12]


Internet-Draft        Media Server Control Package            March 2006


   +-------------+-----------------------------------------------------+
   | Name        | grammar                                             |
   +-------------+-----------------------------------------------------+
   | Description | A URI reference to a custom DTMF grammar.  If this  |
   |             | parameter is specified, then the referenced DTMF    |
   |             | grammar is used instead of the internal digits      |
   |             | grammar (i.e. maxdigits and termchar are ignored    |
   |             | even if specified).  Custom grammars permit the     |
   |             | full range of DTMF characters including '*' and '#' |
   |             | to be specified for DTMF pattern matching.          |
   | Direction   | input                                               |
   | Type        | URI                                                 |
   | Optional    | Yes                                                 |
   | Possible    | A valid URI value referencing a valid custom DTMF   |
   | Values      | grammar.                                            |
   | Default     | none                                                |
   +-------------+-----------------------------------------------------+

                             Table 17: grammar

   [Editors note: The format of the custom DTMF grammar is not yet
   defined.  Possibilities include: [15], [10], and [12].  If more than
   one format is permitted, then an additional input parameter
   "grammartype" would indicate the format used in the grammar
   parameter.]

   +-------------+-----------------------------------------------------+
   | Name        | status                                              |
   +-------------+-----------------------------------------------------+
   | Description | A status code indicating success or failure of the  |
   |             | promptandcollect dialog                             |
   | Direction   | output                                              |
   | Type        | Non-Negative Integer                                |
   | Optional    | No                                                  |
   | Possible    | 1 for success; otherwise an error code (600, 601,   |
   | Values      | 603).  See Table 33                                 |
   | Default     | none                                                |
   +-------------+-----------------------------------------------------+

                             Table 18: status











Boulton, et al.         Expires September 9, 2006              [Page 13]


Internet-Draft        Media Server Control Package            March 2006


   +-------------+-----------------------------------------------------+
   | Name        | reason                                              |
   +-------------+-----------------------------------------------------+
   | Description | A textual description providing a reason for the    |
   |             | status code; e.g. details on an error               |
   | Direction   | output                                              |
   | Type        | String                                              |
   | Optional    | Yes                                                 |
   | Possible    | A valid String value                                |
   | Values      |                                                     |
   | Default     | Empty string                                        |
   +-------------+-----------------------------------------------------+

                             Table 19: reason

   +-------------+-----------------------------------------------------+
   | Name        | result                                              |
   +-------------+-----------------------------------------------------+
   | Description | The DTMF input collected from the user.             |
   | Direction   | output                                              |
   | Type        | DTMFString                                          |
   | Optional    | The parameter is mandatory if status is 1;          |
   |             | otherwise, optional.                                |
   | Possible    | A valid DTMFString (no spaces between characters).  |
   | Values      |                                                     |
   | Default     | Empty String                                        |
   +-------------+-----------------------------------------------------+

                             Table 20: result

   In addition to the prompt extensions described in Table 6, the
   following parameters are under consideration for later versions:

   +--------------------+----------------------------------------------+
   | Name               | Description                                  |
   +--------------------+----------------------------------------------+
   | nomatchprompts     | prompts to play when input doesn't match the |
   |                    | DTMF grammar                                 |
   | noinputprompts     | prompts to play when there is no user input  |
   | successprompts     | prompts to play when user input is collected |
   | failureprompts     | prompts to play when no valid user input has |
   |                    | been collected after all iterations tried    |
   | escapechar         | character which causes the dialog to restart |
   |                    | without incrementing the iterations counter  |
   | iterationcount     | number of iterations (output)                |
   | promptplayedamount | duration of initial prompts played if prompt |
   |                    | interrupted (output)                         |
   +--------------------+----------------------------------------------+



Boulton, et al.         Expires September 9, 2006              [Page 14]


Internet-Draft        Media Server Control Package            March 2006


3.3.  Prompt and Record

   A template dialog to prompt the user and record their audio input.

   The dialog is invoked with the URI "promptandrecord".

   The dialog execution model consists of:
   1.  Playing prompts in the order specified until completion.
   2.  Recording audio input from the user.  Recording is initiated if
       user input is received before timeout expires.  The recording is
       terminated by DTMF input, the maximum duration being exceeded or
       a final silence after recording, as specified in dtmfterm,
       maxtime and finalsilence parameters respectively.
   3.  If recording is not initiated, steps 1 - 2 are repeated for the
       value of iterations.
   4.  Returning status, reason and result parameters.

   The input and output parameter are summarized and defined below.

   +--------------+-----------+---------------------------+------------+
   | Name         | Direction | Description               | Definition |
   +--------------+-----------+---------------------------+------------+
   | prompts      | input     | prompts to play           | Table 23   |
   | iterations   | input     | maximum attempts          | Table 24   |
   | timeout      | input     | timeout to wait for input | Table 25   |
   | dtmf         | input     | recording terminated by   | Table 26   |
   |              |           | DTMF                      |            |
   | maxtime      | input     | maximum duration of       | Table 27   |
   |              |           | recording                 |            |
   | finalsilence | input     | final silence to          | Table 28   |
   |              |           | terminate recording       |            |
   | status       | output    | status code               | Table 29   |
   | reason       | output    | reason for status         | Table 30   |
   | result       | output    | URI for recording         | Table 31   |
   +--------------+-----------+---------------------------+------------+

   +-------------+-----------------------------------------------------+
   | Name        | prompts                                             |
   +-------------+-----------------------------------------------------+
   | Description | Initial prompts to play                             |
   | Direction   | input                                               |
   | Type        | URIList                                             |
   | Optional    | Yes                                                 |
   | Possible    | A valid URIList                                     |
   | Values      |                                                     |
   | Default     | none                                                |
   +-------------+-----------------------------------------------------+




Boulton, et al.         Expires September 9, 2006              [Page 15]


Internet-Draft        Media Server Control Package            March 2006


                             Table 23: prompts

   +-------------+-----------------------------------------------------+
   | Name        | iterations                                          |
   +-------------+-----------------------------------------------------+
   | Description | Maximum number of times the promptandrecord dialog  |
   |             | is to be played                                     |
   | Direction   | input                                               |
   | Type        | Non-Negative Integer                                |
   | Optional    | Yes                                                 |
   | Possible    | A valid non-negative integer.  A value of 0         |
   | Values      | indicates that the dialog is repeated until halted  |
   |             | by other means.                                     |
   | Default     | 0                                                   |
   +-------------+-----------------------------------------------------+

                           Table 24: iterations

   +-------------+-----------------------------------------------------+
   | Name        | timeout                                             |
   +-------------+-----------------------------------------------------+
   | Description | Indicates the time to wait for user input.          |
   | Direction   | input                                               |
   | Type        | Time Designation                                    |
   | Optional    | Yes                                                 |
   | Possible    | A valid TimeDesignation value.                      |
   | Values      |                                                     |
   | Default     | 5s                                                  |
   +-------------+-----------------------------------------------------+

                             Table 25: timeout

   +-------------+-----------------------------------------------------+
   | Name        | dtmfterm                                            |
   +-------------+-----------------------------------------------------+
   | Description | Indicates whether recording can be terminated by    |
   |             | DTMF input                                          |
   | Direction   | input                                               |
   | Type        | Boolean                                             |
   | Optional    | Yes                                                 |
   | Possible    | A valid Boolean value.  A value of true indicates   |
   | Values      | that recording can be terminated by DTMF.  A value  |
   |             | of false indicates that recording cannot be         |
   |             | terminated by DTMF.                                 |
   | Default     | true                                                |
   +-------------+-----------------------------------------------------+

                            Table 26: dtmfterm



Boulton, et al.         Expires September 9, 2006              [Page 16]


Internet-Draft        Media Server Control Package            March 2006


   +-------------+-----------------------------------------------------+
   | Name        | maxtime                                             |
   +-------------+-----------------------------------------------------+
   | Description | The maximum duration of the recording               |
   | Direction   | input                                               |
   | Type        | Time Designation                                    |
   | Optional    | Yes                                                 |
   | Possible    | A valid TimeDesignation value.                      |
   | Values      |                                                     |
   | Default     | 15s                                                 |
   +-------------+-----------------------------------------------------+

                             Table 27: maxtime

   +-------------+-----------------------------------------------------+
   | Name        | finalsilence                                        |
   +-------------+-----------------------------------------------------+
   | Description | The interval of silence that indicates end of       |
   |             | speech                                              |
   | Direction   | input                                               |
   | Type        | Time Designation                                    |
   | Optional    | Yes                                                 |
   | Possible    | A valid TimeDesignation value.                      |
   | Values      |                                                     |
   | Default     | 5s                                                  |
   +-------------+-----------------------------------------------------+

                          Table 28: finalsilence

   +-------------+-----------------------------------------------------+
   | Name        | status                                              |
   +-------------+-----------------------------------------------------+
   | Description | A status code indicating success or failure of the  |
   |             | promptandrecord dialog                              |
   | Direction   | output                                              |
   | Type        | Non-Negative Integer                                |
   | Optional    | No                                                  |
   | Possible    | 1 for success; otherwise an error code (600, 601,   |
   | Values      | 603).  See Table 33                                 |
   | Default     | none                                                |
   +-------------+-----------------------------------------------------+

                             Table 29: status








Boulton, et al.         Expires September 9, 2006              [Page 17]


Internet-Draft        Media Server Control Package            March 2006


   +-------------+-----------------------------------------------------+
   | Name        | reason                                              |
   +-------------+-----------------------------------------------------+
   | Description | A textual description providing a reason for the    |
   |             | status code; e.g. details on an error               |
   | Direction   | output                                              |
   | Type        | String                                              |
   | Optional    | Yes                                                 |
   | Possible    | A valid String value                                |
   | Values      |                                                     |
   | Default     | Empty string                                        |
   +-------------+-----------------------------------------------------+

                             Table 30: reason

   +-------------+-----------------------------------------------------+
   | Name        | result                                              |
   +-------------+-----------------------------------------------------+
   | Description | A URI referencing the media recording               |
   | Direction   | output                                              |
   | Type        | URI                                                 |
   | Optional    | The parameter is mandatory if status is 1;          |
   |             | otherwise, optional.                                |
   | Possible    | A valid URI value                                   |
   | Values      |                                                     |
   | Default     | Empty string                                        |
   +-------------+-----------------------------------------------------+

                             Table 31: result

   In addition to the prompt extensions described in Table 6, the
   following additional parameters are under consideration for a later
   version.

   +--------------------+----------------------------------------------+
   | Name               | Description                                  |
   +--------------------+----------------------------------------------+
   | destination        | URI to send recording using HTTP             |
   | mimetype           | mimetype to use for recording (including     |
   |                    | media and file formats)                      |
   | beep               | indicates whether a platform-specific beep   |
   |                    | is used immediately prior to recording       |
   | noinputprompts     | prompts to play when there is no user input  |
   | successprompts     | prompts to play when recording is successful |
   | failureprompts     | prompts to play when no recording has been   |
   |                    | made after all the iterations tried          |
   | duration           | duration of the recording (output)           |
   | mimetype           | mimetype of the recording (output)           |



Boulton, et al.         Expires September 9, 2006              [Page 18]


Internet-Draft        Media Server Control Package            March 2006


   | iterationcount     | number of iterations (output)                |
   | terminationmode    | indication of why recording terminated:      |
   |                    | dtmf, maxtime reached, externalevent or      |
   |                    | finalsilence detected (output)               |
   | promptplayedamount | duration of initial prompts played if prompt |
   |                    | interrupted (output)                         |
   +--------------------+----------------------------------------------+

3.4.  Status Codes

   The following table describes the codes returned in the status output
   parameter for template dialogs.

   +-----------+-------------------------------------------------------+
   | status    | description                                           |
   +-----------+-------------------------------------------------------+
   | 1         | success                                               |
   | 600       | unspecified error                                     |
   | 601       | invalid input parameter                               |
   | 602       | no prompts defined (only playannouncement)            |
   | 603       | maximum iterations reached without valid input (not   |
   |           | playannouncement)                                     |
   +-----------+-------------------------------------------------------+

             Table 33: status codes for all templates dialogs

3.5.  Type Definitions

   This section defines types referenced in template parameters.

3.5.1.  Boolean

   The value space of boolean is the set {true, false}.

3.5.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}.

3.5.3.  DTMFString

   A String composed of one or more DTMFChars.

3.5.4.  Non-Negative Integer

   The value space of non-negative integer is the infinite set
   {0,1,2,...}.




Boulton, et al.         Expires September 9, 2006              [Page 19]


Internet-Draft        Media Server Control Package            March 2006


3.5.5.  Positive Integer

   The value space of positive integer is the infinite set {1,2,...}.

3.5.6.  String

   A string in the character encoding associated with the XML element.

3.5.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".

3.5.8.  URI

   Uniform Resource Indicator as defined in [7].

3.5.9.  URIList

   A list of URIs.

3.6.  Sample Implementation

   TODO


4.  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 [16].

4.1.  Control Package Name

   The Control Framework requires a Control Package definition to
   specify and register a unique name.

   The name of this Control Package is "msc-ivr-basic" (Media Server
   Control - Interactive Voice Response - Basic).  This value appears in
   the 'Control-Packages' SIP header that is present in the INVITE
   dialog request that creates the control channel, as specified in
   [16].





Boulton, et al.         Expires September 9, 2006              [Page 20]


Internet-Draft        Media Server Control Package            March 2006


4.2.  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 12.1 of [16]
   MUST be supported.

4.3.  Framework Message Usage

   IVR functionality includes capabilities such as playing prompts,
   collecting DTMF and recording user input.  These functions are
   expressed in template dialogs (Section 3).

   The AS can send the following CONTROL messages to the MS:
   <dialogprepare>: prepare a dialog for later execution
   <dialogstart>: execute a dialog (as defined or previously prepared)
   <dialoguser>: send a user-defined message to an active dialog
   <dialogterminate>: terminate a dialog (prepared or started)

   The MS response is specified in responses and/or REPORT messages.
   The precise response is depend on the IVR dialog state, and the
   contents of the control message.  If an XML message is not well-
   formed or invalid according to the schema in Section 8, then 4XX
   response is generated.

   For the <dialogprepare> command, the response is a (terminate) REPORT
   with <dialogprepared> message (if the dialog was prepared
   successfully) or with <errordialognotprepared> message (if there was
   an error preparing the dialog).

   For the <dialogstart> command, the response is an (update) REPORT
   with <dialogstarted> message (if the dialog was started
   successfully), then zero or more <dialoguser> (update) REPORT
   messages (reporting information gathered during the dialog) and
   finally a (terminate) REPORT with a <dialogexit> message.  If the
   dialog does not start, the response is a (terminate) REPORT with a
   <errordialognotstarted> message.

   For the <dialoguser> command, the response is 200 if the message is
   understood.

   For the <dialogterminate> command, the response is 200 if the command
   is understood.

   The MS can send following CONTROL message to the AS:




Boulton, et al.         Expires September 9, 2006              [Page 21]


Internet-Draft        Media Server Control Package            March 2006


   <dialoguser>: send a user-defined message from an active dialog

   The AS responds with a 200 response if the message was understood.

4.4.  CONTROL Message Body

   A valid CONTROL body message MUST conform to the schema defined in
   Section 8.

4.4.1.  dialogprepare

   The <dialogprepare> request is sent from the AS to the MS to request
   preparation of an IVR dialog.  A prepared dialog is executed when the
   AS sends a <dialogstart> request referencing the prepared dialog (see
   Section 4.4.2).

   A <dialogprepare> element has the following attributes:
   src: string identifying the URI of the dialog document to prepare.
      The attribute is mandatory.  The MS MUST support playannouncement,
      promptandcollect and promptandrecord template dialogs as the value
      for this attribute.
   type: string identifying the MIME type of the document.  The default
      value is "application/ivrtemplate+xml".  The attribute is
      optional.

   The <dialogprepare> element has the following child elements:
   <namelist>: an XML data structure (see Section 5) to pass parameters
      into the dialog.  The element is optional.
   <subscribe>: contains a list of one or more <item> elements where
      each item element has mandatory name and value attributes.  The
      element is optional.  The AS uses this element to subscribe to
      events generated by the MS.  Notifications of dialog events are
      delivered using a <dialoguser> REPORT (see Section 4.4.3).  If the
      MS does not support a specific event notification to which the AS
      subscribes, then the MS MUST ignore the individual <item>.  This
      protocol does not require the MS to support any specific event
      notifications, but the MS MAY support notification events such as
      "dtmf" (indicating that a DTMF key has been pressed), or "tone"
      (indicating that a tone has been detected), "audiostart" (audio
      playback has started), "bargein" (user has barged in), "mark" (a
      mark has been encountered in the output stream), "goto" (dialog
      has transitioned to another location), and so forth.

   For example, a request to prepare a playannouncement dialog where a
   single prompt once:






Boulton, et al.         Expires September 9, 2006              [Page 22]


Internet-Draft        Media Server Control Package            March 2006


   <dialogprepare src="playannouncement" type="application/ivrtemplate+xml">
     <namelist>
        <item name="prompts" value="http://www.example.com/prompt1.wav"/>
        <item name="iterations" value="1"/>
     </namelist>
   </dialogprepare>

   When an MS has received a <dialogprepare> request, it MUST reply with
   a <dialogprepared> or <errordialognotprepared> REPORT message.

4.4.2.  dialogstart

   The <dialogstart> element is sent by the AS to request execution of a
   dialog.  The dialog may be defined in the dialogstart request itself,
   or reference a previously prepared dialog.

   The <dialogstart> element has the following attributes:
   src: string identifying the URI of the dialog document to start.  The
      attribute is optional.  The MS MUST support playannouncement,
      promptandcollect and promptandrecord template dialogs as the value
      for this attribute.
   type: string identifying the MIME type of the document.  The default
      value is "application/ivrtemplate+xml".  The attribute is
      optional.
   prepareddialogid: string identifying a dialog previously prepared
      using a dialogprepare request.  The attribute is optional.
   connection-id: string identifying the SIP dialog connection on which
      this dialog is to be started (see Section 12.1 of [16]).  The
      attribute is optional.
   conf-id: string identifying the conference on which this dialog is to
      be started (see Section 12.1 of [16]).  The attribute is optional.

   If the prepareddialogid is specified, it is an error to specify the
   src attribute or the type attribute.

   Exactly one of the connection-id or conf-id attributes MUST be
   specified.  It is an error to specify both connection-id and conf-id.

   The <dialogstart> element has the following child elements defined:
   <namelist>: an XML data structure (see Section 5) to pass parameters
      into the dialog.  The element is optional.
   <subscribe>: contains a list of one or more <item> elements where
      each item element has mandatory name and value attributes.  The
      element is optional.







Boulton, et al.         Expires September 9, 2006              [Page 23]


Internet-Draft        Media Server Control Package            March 2006


      The AS uses this element to subscribe to events generated by the
      MS.  Notifications of dialog events are delivered using
      <dialoguser> REPORT (see Section 4.4.3).  If the MS does not
      support a specific event notification to which the AS subscribes,
      then the MS MUST ignore the individual <item>.  This protocol does
      not require the MS to support any specific event notifications,
      but the MS MAY support notification events such as "dtmf"
      (indicating that a DTMF key has been pressed), or "tone"
      (indicating that a tone has been detected), "audiostart" (audio
      playback has started), "bargein" (user has barged in), "mark" (a
      mark has been encountered in the output stream), "goto" (dialog
      has transitioned to another location), and so forth.
   If the prepareddialogid is specified and the <dialogprepare>
   contained a <namelist> element, it is an error to specify it in
   <dialogstart>.  Likewise, If the prepareddialogid is specified and
   the <dialogprepare> contained a <subscribe> element, it is an error
   to specify it in <dialogstart>.

   For example, a request to start a promptandrecord template dialog on
   a conference:

    <dialogstart conf-id="conference11" src="playandrecord">
       <namelist>
         <item name="maxtime" value="384000s"/>
       </namelist>
    </dialogstart>

   When an MS has received a <dialogstart> request, it MUST reply with a
   <dialogstarted> or <errordialognotstarted> REPORT message.

4.4.3.  dialoguser

   During execution of a dialog, a <dialoguser> CONTROL can be used to
   pass asynchronous, user-defined events from the AS to the MS, or vice
   versa from the MS to the AS.

   The MS is not required to support receiving or sending asynchronous
   events.  If it does not support receiving asynchronous events, a 4XX
   response will be returned instead of 200.

   The <dialoguser> element has the following attributes:
   name: string indicating the name of event.  The string is restricted
      to a sequence of alphanumeric or "." characters.  The attribute is
      mandatory.







Boulton, et al.         Expires September 9, 2006              [Page 24]


Internet-Draft        Media Server Control Package            March 2006


   dialogid: string identifying the dialog.  The attribute is mandatory.

   A <dialoguser> element has the following child element:
   <namelist>: an XML data structure (see Section 5) to pass information
      from the AS to the dialog.  The element is optional.

   For example, the AS sends the MS information which may be announced
   to the user in the dialog identified as "vxi1":

    <dialoguser name="alert.priority1" dialogid="vxi1">
      <namelist>
         <item name="message" value="John Donne sent you an IM."/>
      </namelist>
    </dialoguser>

4.4.4.  dialogterminate

   A dialog that has been prepared or has been started can be terminated
   by a <dialogterminate> request element from the AS.

   The <dialogterminate> element has the following attributes:
   dialogid: string identifying the dialog.  The attribute is mandatory.
   immediate: string with the values "true" or "false" indicating
      whether the dialog is to be terminated immediately or not.  The
      default is "false".  The attribute is optional.

   For example, assuming a dialog with the dialogid "vxi1" has been
   started, it can be terminated immediately with the following request:

   <dialogterminate dialogid="vxi1" immediate="true"/>

   The <dialogterminate> request causes execution of the dialog to be
   terminated.  If the request is for immediate termination, then the MS
   sends a 200 response.  If the request is for non-immediate
   termination, then the MS send a <dialogexit> REPORT (or a failure
   message).

4.5.  REPORT Message Body

   A valid REPORT body MUST conform to the schema defined in Section 8.

4.5.1.  dialogprepared

   The <dialogprepared> element has following attributes:







Boulton, et al.         Expires September 9, 2006              [Page 25]


Internet-Draft        Media Server Control Package            March 2006


   dialogid: string identifying the dialog.  The MS assigns a globally
      unique identifier for this dialog and reuses it in subsequent
      references to the dialog; for example, as the prepareddialogid in
      <dialogstart> and in dialog notifications.  The attribute is
      mandatory.

   For example, a response when the dialog was prepared successfully:

   <dialogprepared dialogid="vxi1"/>

4.5.2.  dialogstarted

   The <dialogstarted> element has the following attributes:
   dialogid: string identifying the dialog.  If prepareddialogid is
      specified in the request, then dialogid MUST have the same value.
      If prepareddialogid is not specified, then the MS assigns a
      globally unique identifier for this dialog and reuses it in
      subsequent references to the dialog; for example, in dialog
      notifications.  The attribute is mandatory.

   [Editors Note: do we want to allow dialog names to be defined by the
   AS?]

   For example, a response when the dialog was started successfully.

    <dialogstarted dialogid="vxi1"/>

4.5.3.  dialogexit

   The <dialogexit> element has the following attributes:
   dialogid: string identifying the dialog.  The attribute is mandatory.

   The <dialogexit> element has the following child element:
   <namelist>: an XML data structure (see Section 5) to pass information
      from the dialog to the AS.  The element is optional.

   For example, the dialog exits without data being returned:

   <dialogexit dialogid="vxi1"/>

   The dialog exits and data is returned to the AS:

   <dialogexit dialogid="vxi1">
    <namelist>
      <item name="callerid" value="12345"/>
      <item name="popidolvote" value="Franz Ferdinand"/>
    </namelist>
   </dialogexit>



Boulton, et al.         Expires September 9, 2006              [Page 26]


Internet-Draft        Media Server Control Package            March 2006


4.5.4.  dialoguser

   The <dialoguser> element in a REPORT message can provide asychronous
   user-defined information to the MS during execution of a dialog.

   The <dialoguser> element has the following attributes:
   name: string indicating the name of event.  The string is restricted
      to a sequence of alphanumeric or "." characters.  The attribute is
      mandatory.
   dialogid: string identifying the dialog.  The attribute is mandatory.

   A <dialoguser> element has the following child element:
   <namelist>: an XML data structure (see Section 5) to pass information
      from the AS to the dialog.  The element is optional.

   For example, the MS sends the AS a midcall update on data collected
   so far:

   <dialoguser name="myapp.update" dialogid="vxi1">
     <namelist>
       <item name="city" value="San Francisco"/>
       <item name="state" value="California"/>
     </namelist>
   </dialoguser>

   [Editors note: Since <dialoguser> is available as a CONTROL message,
   it may not be necessary as REPORT message.]

4.5.5.  Error Messages

   [Editors Note: These message may be restructured as a general error
   element with a type attribute (e.g. type="dialognotprepared").]

   The <errordialognotprepared> element has following attributes:
   dialogid: string identifying the dialog.  The attribute is mandatory.
   reason: string specifying the reason why dialog preparation failed.
      The attribute is optional.

   For example, a response when dialog preparation failed due to an
   unknown template:

    <errordialognotprepared dialogid="vxi1"
       reason="Unknown template: promptandrecod"/>

   The <errordialognotstarted> element has the following attributes:






Boulton, et al.         Expires September 9, 2006              [Page 27]


Internet-Draft        Media Server Control Package            March 2006


   dialogid: string identifying the dialog.  The attribute is mandatory.
   reason: string specifying the reason why the dialog failed to start.
      The attribute is optional.

   For example, a response when dialog failed to start due to an unknown
   template dialog reference:

   <errordialognotstarted dialogid="vxi1"
       reason="Unknown template: playanouncement"/>


5.  Namelist

   The <namelist> element is a container for parameter data.

   Each parameter is specified using a top-level <item> element.  The
   name of the parameter is specified in a "name" attribute with a non-
   empty string value.

   A simple value for a parameter is specified using a "value" attribute
   with a string value.  For example:

   <namelist>
      <item name="parametername1" value="parametervalue1"/>
      <item name="parametername2" value="parametervalue2"/>
   </namelist>

   Multiple value parameters, such as a list of prompt URIs, can be
   specified using space separation.  For example:

   <namelist>
    <item name="prompts" value="url1 url2 url3"/>
   </namelist>

   [Editors Note: we may also want to investigate the use of <item>s
   nested within a top-level <item> to specify complex values. ]


6.  Template Dialog Examples

   The following examples show how playannouncement, promptandcollect
   and promptandrecord template dialogs are used with <dialogprepare>,
   <dialogstart> and <dialogexit> elements.

   The examples do not specify all messages between the AS and MS.






Boulton, et al.         Expires September 9, 2006              [Page 28]


Internet-Draft        Media Server Control Package            March 2006


6.1.  playannouncement

   This example prepares an announcement composed of two prompts.


   <dialogprepare src="playannouncement">
       <namelist>
          <item name="prompts"
                value="http://www.example.com/media/Number_09.wav
                       http://www.example.com/media/Number_11.wav"/>
          <item name="iterations" value="2"/>
       </namelist>
   </dialogprepare>


   If the dialog is prepared successfully, a dialogprepared message is
   returned:


   <dialogprepared dialogid="vxi78"/>


   The prepared dialog is then started on a conference playing the
   prompts twice:


   <dialogstart prepareddialogid="vxi78" conf-id="conference11"/>


   In the case of a successful dialog, the output is provided in
   <dialogexit>; for example


   <dialogexit dialogid="vxi78">
       <namelist>
          <item name="status" value="1"/>
       </namelist>
   </dialogexit>


   In this example, the dialog is started on a sip dialog connection,
   but no <namelist> is specified:


   <dialogstart src="playannouncement"
                connection-id="7HDY839~HJKSkyHS~HUwkuh7ns"/>





Boulton, et al.         Expires September 9, 2006              [Page 29]


Internet-Draft        Media Server Control Package            March 2006


   and an error message is returned:


   <dialogexit dialogid="vxi79">
       <namelist>
          <item name="status" value="602"/>
          <item name="reason" value="prompts not defined"/>
       </namelist>
   </dialogexit>


6.2.  promptandcollect

   This example plays no prompts and just waits for input from the user:


   <dialogstart src="promptandcollect"
                connection-id="7HDY839~HJKSkyHS~HUwkuh7ns"/>


   If the dialog is successful, then <dialogexit> contains the dtmf
   collected in its result parameter:


   <dialogexit dialogid="vxi80">
       <namelist>
          <item name="status" value="1"/>
          <item name="result" value="12345"/>
       </namelist>
   </dialogexit>


   In this example, a prompt is played and then we wait for 3 hours for
   a two digit sequence:


   <dialogstart src="promptandcollect"
                connection-id="7HDY839~HJKSkyHS~HUwkuh7ns">
    <namelist>
     <item name="prompts" value="http://www.example.com/prompt1.wav"/>
     <item name="timeout" value="1080s"/>
     <item name="maxdigits" value="2"/>
     <item name="iterations" value="1"/>
    </namelist>
   </dialogstart>


   If no user input is collected within 3 hours, then following would be



Boulton, et al.         Expires September 9, 2006              [Page 30]


Internet-Draft        Media Server Control Package            March 2006


   returned:


   <dialogexit dialogid="vxi81">
       <namelist>
          <item name="status" value="603"/>
       </namelist>
   </dialogexit>


   And finally in this example, one of the input parameters is invalid:


   <dialogstart src="promptandcollect"
                connection-id="7HDY839~HJKSkyHS~HUwkuh7ns">
    <namelist>
      <item name="prompts" value="http://www.example.com/prompt1.wav"/>
      <item name="iterations" value="two"/>
      <item name="cleardigitbuffer" value="true"/>
      <item name="bargein" value="true"/>
      <item name="timeout" value="4s"/>
      <item name="interdigittimeout" value="2s"/>
      <item name="termtimeout" value="0s"/>
      <item name="maxdigits" value="2"/>
    </namelist>
   </dialogstart>


   The error is reported in the <dialogexit>:


   <dialogexit dialogid="vxi82">
       <namelist>
          <item name="status" value="601"/>
          <item name="reason" value="iterations invalid: two"/>
       </namelist>
   </dialogexit>


6.3.  promptandrecord

   In this example, the user is prompted, then their input is recorded
   for a maximum of 30 seconds.








Boulton, et al.         Expires September 9, 2006              [Page 31]


Internet-Draft        Media Server Control Package            March 2006


   <dialogstart src="promptandrecord"
                connection-id="7HDY839~HJKSkyHS~HUwkuh7ns">
       <namelist>
          <item name="prompts"
                value="http://www.example.com/media/sayname.wav
                       http://www.example.com/media/beep.wav"/>
          <item name="dtmfterm" value="false"/>
          <item name="maxtime" value="30s"/>
       </namelist>
   </dialogstart>


   If successful, the following is returned in <dialogexit>:


   <dialogexit dialogid="vxi83">
    <namelist>
     <item name="status" value="1"/>
     <item name="result" value="http://www.example.com/recording1.wav"/>
    </namelist>
   </dialogexit>



7.  AS-MS Interaction Examples

   The following example assume a control channel has been established
   as described in the SIP Control Framework [16].

   The XML messages are in angled brackets; the REPORT status is in
   round brackets.  Other aspects of the protocol are omitted for
   readability.

7.1.  Starting an IVR dialog

   An IVR dialog is started successfully, a single dialoguser
   notification report is send from the MS to the AS and then the dialog
   exits normally.













Boulton, et al.         Expires September 9, 2006              [Page 32]


Internet-Draft        Media Server Control Package            March 2006


             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: (pending)                 |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) REPORT: <dialogstarted> (update)  |
                |  <----------------------------------------  |
                |                                             |
                |       (6) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (7) REPORT: <dialoguser> (update)     |
                |  <----------------------------------------  |
                |                                             |
                |       (8) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (9) REPORT: <dialogexit> (terminate)  |
                |  <----------------------------------------  |
                |                                             |
                |       (10) 200                              |
                |  ---------------------------------------->  |
                |                                             |

7.2.  IVR dialog fails to start

   An IVR dialog fails to start.















Boulton, et al.         Expires September 9, 2006              [Page 33]


Internet-Draft        Media Server Control Package            March 2006


             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: (pending)                 |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) REPORT: <errordialognotstarted>   |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (6) 200                               |
                |  ---------------------------------------->  |
                |                                             |

7.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 September 9, 2006              [Page 34]


Internet-Draft        Media Server Control Package            March 2006


             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogprepare>          |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: (pending)                 |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) REPORT: <dialogprepared>          |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (6) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (7) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (8) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (9) REPORT: (pending)                 |
                |  <----------------------------------------  |
                |                                             |
                |       (10) 200                              |
                |  --------------------------------------->   |
                |                                             |
                |       (11) REPORT: <dialogstarted> (update) |
                |  <----------------------------------------  |
                |                                             |
                |       (12) 200                              |
                |  ---------------------------------------->  |
                |                                             |
                |       (13) REPORT: <dialogexit> (terminate) |
                |  <----------------------------------------  |
                |                                             |
                |       (14) 200                              |
                |  ---------------------------------------->  |
                |                                             |






Boulton, et al.         Expires September 9, 2006              [Page 35]


Internet-Draft        Media Server Control Package            March 2006


7.4.  Terminating a dialog non-immediately

   An IVR dialog is started successfully, and then terminated non-
   immediately by the AS, allowing the MS to send a dialogexit with
   information collected during the dialog before termination.


             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: (pending)                 |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) REPORT: <dialogstarted> (update)  |
                |  <----------------------------------------  |
                |                                             |
                |       (6) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (7) CONTROL: <dialogterminate>        |
                |  ---------------------------------------->  |
                |                                             |
                |       (8) 200                               |
                |  <----------------------------------------  |
                |                                             |
                |       (9) REPORT: <dialogexit> (terminate)  |
                |  <----------------------------------------  |
                |                                             |
                |       (10) 200                              |
                |  ---------------------------------------->  |
                |                                             |

7.5.  Terminating a dialog immediately

   An IVR dialog is started successfully, and then terminated
   immediately by the AS.







Boulton, et al.         Expires September 9, 2006              [Page 36]


Internet-Draft        Media Server Control Package            March 2006


             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: (pending)                 |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) REPORT: <dialogstarted> (update)  |
                |  <----------------------------------------  |
                |                                             |
                |       (6) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (7) CONTROL: <dialogterminate>        |
                |  ---------------------------------------->  |
                |                                             |
                |       (8) 200                               |
                |  <----------------------------------------  |
                |                                             |
                |       (9) REPORT: (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (10) 200                              |
                |  ---------------------------------------->  |
                |                                             |


8.  Formal Syntax

   [Editors note: A later version of the XML schema will provide more
   constraints as expressed in the textual definitions; for example,
   single occurrence of <namelist> elements, co-occurence on attributes,
   etc.]


   <?xml version="1.0" encoding="UTF-8"?>
   <xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr-basic"
   xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes"
   elementFormDefault="qualified" xmlns="urn:ietf:params:xml:ns:msc-ivr-basic"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">




Boulton, et al.         Expires September 9, 2006              [Page 37]


Internet-Draft        Media Server Control Package            March 2006


    <xsd:annotation>
     <xsd:documentation> Basic IVR 1.0 schema (20060308) </xsd:documentation>
    </xsd:annotation>

      <xsd:import namespace="urn:ietf:params:xml:ns:control:framework-attributes"
      schemaLocation="framework.xsd"/>

    <xsd:element name="dialogprepare">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:element ref="namelist"/>
       <xsd:element ref="subscribe"/>
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:attribute name="src" type="URI.datatype" use="required"/>
      <xsd:attribute name="type" type="mime.datatype"
                     default="application/ivrtemplate+xml"/>
      <xsd:anyAttribute namespace="##other" processContents="strict"/>
     </xsd:complexType>

    </xsd:element>

    <xsd:element name="dialogstart">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:element ref="namelist"/>
       <xsd:element ref="subscribe"/>
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:attribute name="src" type="URI.datatype"/>
      <xsd:attribute name="type" type="mime.datatype"
                     default="application/ivrtemplate+xml"/>
      <xsd:attribute name="prepareddialogid" type="xsd:string"/>
      <xsd:attributeGroup ref="fw:framework-attributes"/>
      <xsd:anyAttribute namespace="##other" processContents="strict"/>
     </xsd:complexType>
    </xsd:element>

    <xsd:element name="dialoguser">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:element ref="namelist"/>
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:attribute name="name" type="usereventname.datatype" use="required"/>
      <xsd:attributeGroup ref="dialogid.attribs"/>
     </xsd:complexType>
    </xsd:element>



Boulton, et al.         Expires September 9, 2006              [Page 38]


Internet-Draft        Media Server Control Package            March 2006


    <xsd:element name="dialogterminate">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
     <xsd:attribute name="immediate" type="boolean.datatype" default="false"/>
      <xsd:attributeGroup ref="dialogid.attribs"/>
     </xsd:complexType>
    </xsd:element>


    <xsd:element name="dialogprepared">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:attributeGroup ref="dialogid.attribs"/>
     </xsd:complexType>
    </xsd:element>

    <xsd:element name="dialogstarted">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:attributeGroup ref="dialogid.attribs"/>
     </xsd:complexType>
    </xsd:element>


    <xsd:element name="dialogexit">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:element ref="namelist"/>
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:attributeGroup ref="dialogid.attribs"/>
     </xsd:complexType>
    </xsd:element>






    <xsd:element name="errordialognotprepared">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">



Boulton, et al.         Expires September 9, 2006              [Page 39]


Internet-Draft        Media Server Control Package            March 2006


       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:attribute name="reason" type="xsd:string"/>
      <xsd:attributeGroup ref="dialogid.attribs"/>
     </xsd:complexType>
    </xsd:element>


    <xsd:element name="errordialognotstarted">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:attribute name="reason" type="xsd:string"/>
      <xsd:attributeGroup ref="dialogid.attribs"/>
     </xsd:complexType>
    </xsd:element>



    <!-- DATATYPES -->

       <xsd:simpleType name="URI.datatype">
           <xsd:restriction base="xsd:anyURI"/>
       </xsd:simpleType>

       <xsd:simpleType name="mime.datatype">
           <xsd:restriction base="xsd:string"/>
       </xsd:simpleType>

       <xsd:simpleType name="dialogid.datatype">
           <xsd:restriction base="xsd:string"/>
       </xsd:simpleType>

    <xsd:simpleType name="boolean.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="true"/>
      <xsd:enumeration value="false"/>
     </xsd:restriction>
    </xsd:simpleType>


    <xsd:simpleType name="usereventname.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:pattern value="[a-zA-Z0-9\.]+"/>
     </xsd:restriction>
    </xsd:simpleType>




Boulton, et al.         Expires September 9, 2006              [Page 40]


Internet-Draft        Media Server Control Package            March 2006


    <!-- ATTRIBUTE GROUPS -->

    <xsd:attributeGroup name="dialogid.attribs">
     <xsd:attribute name="dialogid" type="xsd:string" use="required"/>
     <xsd:anyAttribute namespace="##other" processContents="strict"/>
    </xsd:attributeGroup>


    <!-- SHARED ELEMENTS -->

    <xsd:element name="subscribe">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:element ref="item"/>
      </xsd:choice>
      <xsd:anyAttribute namespace="##other" processContents="strict"/>
     </xsd:complexType>
    </xsd:element>

    <xsd:element name="namelist">
     <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
       <xsd:element ref="item"/>
       <xsd:any namespace="##other" processContents="strict"/>
      </xsd:choice>
      <xsd:anyAttribute namespace="##other" processContents="strict"/>
     </xsd:complexType>
    </xsd:element>

    <xsd:element name="item">
     <xsd:complexType>
      <xsd:attribute name="name" type="xsd:string" use="required"/>
      <xsd:attribute name="value" type="xsd:string" use="required"/>
      <xsd:anyAttribute namespace="##other" processContents="strict"/>
     </xsd:complexType>
    </xsd:element>



   </xsd:schema>



9.  Security Considerations

   Security Considerations to be included in later versions of this
   document.




Boulton, et al.         Expires September 9, 2006              [Page 41]


Internet-Draft        Media Server Control Package            March 2006


10.  IANA Considerations

   This document registers a new SIP Control Framework Package, a new
   MIME type, and a new XML namespace.

10.1.  Control Package Registration

   Control Package name: msc-ivr-basic

10.2.  MIME Registration

   TODO: application/ivrtemplate+xml

10.3.  URN Sub-Namespace Registration

   TODO: urn:ietf:params:xml:ns:msc-ivr-basic


11.  Acknowledgments

   The authors would like to thank Adnan Saleem of Convedia and Gene
   Shtirmer of Intel for useful review of this work.


12.  References

12.1.  Normative References

   [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

12.2.  Informative References

   [2]   Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L.,
         Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol --
         HTTP/1.1", RFC 2616, June 1999.

   [3]   Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
         Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
         Session Initiation Protocol", RFC 3261, June 2002.

   [4]   Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional
         Responses in Session Initiation Protocol (SIP)", RFC 3262,
         June 2002.

   [5]   Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol
         (SIP): Locating SIP Servers", RFC 3263, June 2002.




Boulton, et al.         Expires September 9, 2006              [Page 42]


Internet-Draft        Media Server Control Package            March 2006


   [6]   Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
         Session Description Protocol (SDP)", RFC 3264, June 2002.

   [7]   Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
         Resource Identifiers (URI): Generic Syntax", RFC 2396,
         August 1998.

   [8]   Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network Media
         Services with SIP", RFC 4240, December 2005.

   [9]   Cromwell, D., "Proposal for an MGCP Advanced Audio Package",
         RFC 2897, August 2000.

   [10]  "Gateway control protocol: Version 3", ITU-T
         Recommendation H.248.1.

   [11]  "Gateway control protocol: Advanced media server packages",
         ITU-T Recommendation H.248.9.

   [12]  Burger, E. and M. Dolly, "A Session Initiation Protocol (SIP)
         Event Package for  Key Press Stimulus (KPML)",
         draft-ietf-sipping-kpml-07 (work in progress), December 2004.

   [13]  Van Dyke, J., Burger, E., and A. Spitzer, "Media Server Control
         Markup Language (MSCML) and Protocol", draft-vandyke-mscml-06
         (work in progress), December 2004.

   [14]  Saleem, A. and G. Sharratt, "Media Objects Markup Language
         (MOML)", draft-melanchuk-sipping-moml-06 (work in progress),
         October 2005.

   [15]  Hunt, A. and S. McGlashan, "Speech Recognition Grammar
         Specification Version 1.0", W3C Recommendation, March 2004.

   [16]  Boulton, C., Melanchuk, T., McGlashan, S., and A. Shiratzky, "A
         Control Framework for the Session Initiation Protocol (SIP)",
         draft-boulton-sip-control-framework-01 (work in progress),
         March 2006.

   [17]  Auburn, R J., "Voice Browser Call Control: CCXML Version 1.0",
         W3C Working Draft (work in progress), June 2005.

   [18]  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.

   [19]  Melanchuk, T., "Media Session Markup Language (MSML)",



Boulton, et al.         Expires September 9, 2006              [Page 43]


Internet-Draft        Media Server Control Package            March 2006


         draft-melanchuk-sipping-msml-07 (work in progress),
         November 2005.

   [20]  McGlashan, S., Auburn, R., Burke, D., Candell, E., and R.
         Surapaneni, "Media Server Control Protocol (MSCP)",
         draft-mcglashan-mscp-01 (work in progress), January 2006.

   [21]  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 September 9, 2006              [Page 44]


Internet-Draft        Media Server Control Package            March 2006


Authors' Addresses

   Chris Boulton
   Ubiquity Software Corporation
   Building 3
   Wern Fawr Lane
   St Mellons
   Cardiff, South Wales  CF3 5EA

   Email: cboulton@ubiquitysoftware.com


   Tim Melanchuk
   BlankSpace

   Email: tim.melanchuk@gmail.com


   Scott McGlashan
   Hewlett-Packard
   Gustav III:s boulevard 36
   SE-16985 Stockholm, Sweden

   Email: scott.mcglashan@hp.com


   Asher Shiratzky
   Radvision
   24 Raoul Wallenberg st
   Tel-Aviv, Israel

   Email: ashers@radvision.com



















Boulton, et al.         Expires September 9, 2006              [Page 45]


Internet-Draft        Media Server Control Package            March 2006


Intellectual Property Statement

   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.


Disclaimer of Validity

   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 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.


Copyright Statement

   Copyright (C) The Internet Society (2006).  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.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Boulton, et al.         Expires September 9, 2006              [Page 46]


Html markup produced by rfcmarkup 1.129d, available from https://tools.ietf.org/tools/rfcmarkup/