Network Working Group                                         C. Boulton
Internet-Draft                             Ubiquity Software Corporation
Expires: June 26, 2006                                      T. Melanchuk
                                                              BlankSpace
                                                            S. McGlashan
                                                         Hewlett-Packard
                                                            A. Shiratzky
                                                               Radvision
                                                       December 23, 2005


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

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 June 26, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

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



Boulton, et al.           Expires June 26, 2006                 [Page 1]


Internet-Draft        Media Server Control Package         December 2005


   Servers and their related resources in decomposed network
   architectures plays an important role in various Next Generation
   Networks.  This Control Package aims to fulfill IVR requirements
   using the SIP Control Framework [7].


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Conventions and Terminology  . . . . . . . . . . . . . . . . .  3
   3.  Control Package Definition . . . . . . . . . . . . . . . . . .  4
     3.1.  Control Package Name . . . . . . . . . . . . . . . . . . .  4
     3.2.  Framework Message Usage  . . . . . . . . . . . . . . . . .  4
     3.3.  CONTROL Message Body . . . . . . . . . . . . . . . . . . .  5
       3.3.1.  dialogprepare  . . . . . . . . . . . . . . . . . . . .  6
       3.3.2.  dialogstart  . . . . . . . . . . . . . . . . . . . . .  8
       3.3.3.  dialoguser . . . . . . . . . . . . . . . . . . . . . . 10
       3.3.4.  dialogterminate  . . . . . . . . . . . . . . . . . . . 11
     3.4.  REPORT Message Body  . . . . . . . . . . . . . . . . . . . 11
       3.4.1.  dialogprepared . . . . . . . . . . . . . . . . . . . . 11
       3.4.2.  dialogstarted  . . . . . . . . . . . . . . . . . . . . 12
       3.4.3.  dialogexit . . . . . . . . . . . . . . . . . . . . . . 12
       3.4.4.  dialoguser . . . . . . . . . . . . . . . . . . . . . . 12
       3.4.5.  errordialognotprepared . . . . . . . . . . . . . . . . 13
       3.4.6.  errordialogwrongstate  . . . . . . . . . . . . . . . . 13
       3.4.7.  errordialognotstarted  . . . . . . . . . . . . . . . . 13
       3.4.8.  errordialog  . . . . . . . . . . . . . . . . . . . . . 14
   4.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     4.1.  Starting an IVR dialog . . . . . . . . . . . . . . . . . . 14
     4.2.  IVR dialog fails to start  . . . . . . . . . . . . . . . . 15
     4.3.  Preparing and starting an IVR dialog . . . . . . . . . . . 16
     4.4.  Terminating a dialog non-immediately . . . . . . . . . . . 18
     4.5.  Terminating a dialog immediately . . . . . . . . . . . . . 18
   5.  Formal Syntax  . . . . . . . . . . . . . . . . . . . . . . . . 19
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 19
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 19
     7.1.  Control Package Registration . . . . . . . . . . . . . . . 20
     7.2.  MIME Registration  . . . . . . . . . . . . . . . . . . . . 20
     7.3.  URN Sub-Namespace Registration . . . . . . . . . . . . . . 20
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 20
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 20
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 20
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 22
   Intellectual Property and Copyright Statements . . . . . . . . . . 23






Boulton, et al.           Expires June 26, 2006                 [Page 2]


Internet-Draft        Media Server Control Package         December 2005


1.  Introduction

   The SIP Control Framework [7] provides a generic template 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
   IVR.

   The scope of the package is control of media server functions for
   interactive media (e.g. play a prompt, interpret DTMF, etc) as well
   as notifications related to these functions.  The functions are
   defined as messages in XML [11].

   This package uses XML messages modeled on dialog elements defined in
   CCXML [8] but adapted for over-the-wire transport.  IVR dialogs can
   be specified in VoiceXML [9].  Media Server Control Protocol [10]
   adopts a similar approach, but this package uses the transport
   channel and transaction models defined in the SIP Control Framework
   [7].

   [Editors Note: Further work is required on the definition and usage
   of some XML element and attributes.  In particular, the definition of
   the contextid attribute so it can be used to reference SIP dialog as
   well as the relationship between a dialog's media support and the SIP
   dialog's SDP media labels.  In addition, later versions will address
   how this package can be extended (e.g. for support of VoiceXML's
   transfer functionality) and its relationship to the MSC conferencing
   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
      specified by a dialog language, e.g.  VoiceXML 2.0 [9], and is
      identified by a URI.  Dialogs typically feature synthesized
      speech, digitized audio and video, recognition of spoken and DTMF
      key input, recording of audio and video input, and mixed



Boulton, et al.           Expires June 26, 2006                 [Page 3]


Internet-Draft        Media Server Control Package         December 2005


      initiative conversations.
   Connection: A connection refers to two or more independent
      unidirectional media streams and its associated network signaling
      traffic.  For the purposes of this specification, a connection
      consists of a SIP dialog and its associated multimedia session.
   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.  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 [7].

3.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" (Media Server Control -
   Interactive Voice Response).  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 [7].

3.2.  Framework Message Usage

   IVR functionality includes capabilities such as playing a prompt,
   recording user input, collecting DTMF, TTS, ASR and other media-based
   processing.  These functions are expressed in a dialog script: i.e. a
   script which describes the media operations and associated dialog
   processing.  VoiceXML 2.0 [9] is capable of expressing these
   functions.  For example, a VoiceXML document is able to express
   simple interaction like play a prompt, or prompt and collect, as well
   as more advanced functionality including speech recognition, mixed
   initiative interaction, video playback and record, and so forth.
   While VoiceXML 2.0 may not be able to express all the functions
   described in this specification, they are either on the W3C roadmap
   (see http://www.w3.org/Voice/") for VoiceXML 3.0 (such as fax and
   video), or can be provided by vendor-specific extensions of VoiceXML.



Boulton, et al.           Expires June 26, 2006                 [Page 4]


Internet-Draft        Media Server Control Package         December 2005


   To ensure interoperability between media servers supporting this
   package, VoiceXML 2.0 dialog scripts MUST be supported and other
   dialog script formats MAY be supported.

   The AS can send following CONTROL messages to the MS:
   <dialogprepare>: prepare a dialog script for later execution
   <dialogstart>: execute a dialog script (as defined or previously
      prepared)
   <dialoguser>: send a user-defined message to an active dialog
   <dialogterminate>: terminate a dialog (preparing, 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 5, then 4XX
   response is generated.

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

   For <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 (terminate)
   REPORT with either a <dialogexit> message (if the dialog terminated
   normally) or an <dialogerror> message (if the dialog terminated
   abnormally).  If the dialog does not start, the response is a
   (terminate) REPORT with either <errordialognotstarted> or
   <errordialogwrongstate> messages.

   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:
   <dialoguser>: send a user-defined message from an active dialog

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

3.3.  CONTROL Message Body

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



Boulton, et al.           Expires June 26, 2006                 [Page 5]


Internet-Draft        Media Server Control Package         December 2005


3.3.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 3.3.2).

   A <dialogprepare> element has the following attributes:
   src: string identifying the URI of the dialog document to prepare.
      The parameter is optional.  Exactly one of the src attribute or
      the <src> element MUST be specified; otherwise, it is an error.
   type: string identifying the MIME type of the document.  The default
      value is "application/voicexml+xml".  The attribute is optional.
   contextid: string identifying the context (e.g.  SIP dialog
      connection) for which this dialog is prepared.  If the contextid
      is not specified, then the dialog can be started (see
      Section 3.3.2) in any context.  The parameter is optional.
      [Editors Note: the definition and usage of this attribute requires
      further clarification.]
   maxage: string defining a time interval according to the max-age
      parameter in HTTP 1.1 [2].  The attribute is optional.
   maxstale: string defining a time interval according to the max-stale
      parameter in HTTP 1.1.  The attribute is optional.
   enctype: string identifying the encoding type of the submitted
      document.  The default value is "application/
      x-www-form-url-encoded".  The attribute is optional.
   method: string indicating the HTTP method to use.  Permitted values
      are "post" or "get".  The default value is "get".  The attribute
      is optional.

   Note that maxage, maxstale, enctype and method attributes are only
   relevant when the src attribute is defined with the HTTP protocol.
   In addition, these attributes only apply to the retrieval and caching
   of the initial dialog document.

   [Editors Note: Since the src attribute allows protocols other than
   HTTP, these protocols may require additional attributes (e.g.
   username and password for the ftp protocol). ]

   The <dialogprepare> element has the following child elements:
   <src>: contains the dialog script itself; e.g. a VoiceXML document.
      Exactly one of the src attribute or the <src> element MUST be
      specified; otherwise, it is an error.  The element is optional.
   <namelist>: contains a list of one or more <item> elements where each
      item element has mandatory name and value attributes.  These
      parameters are passed into the dialog script.  In VoiceXML, they
      are exposed via the session level object
      "connection.ccxml.values.*".  The element is optional.



Boulton, et al.           Expires June 26, 2006                 [Page 6]


Internet-Draft        Media Server Control Package         December 2005


   <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 3.3.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 dialog where the dialog script is
   indicated using the src attribute:

   <dialogprepare src="http://www.example.com/playprompt.vxml">
     <namelist>
        <item name="audio" value="/media/prompt1.wav"/>
     </namelist>
   </dialogprepare>

   Where the namelist parameter "audio" would be available in the
   VoiceXML script as "connection.ccxml.values.audio" so different
   prompts can be played using the same dialog script.

   In the following example, the VoiceXML dialog script is specified
   inline.

   <dialogprepare>
    <src>
      <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
         <form id='main'>
            <block>
               <audio expr="http://www.example.com/media/prompt1.wav"/>
               <exit/>
             </block>
         </form>
      </vxml>
     </src>
   </dialogprepare>

   When an MS has received a <dialogprepare> request, it MUST reply with
   a <dialogprepared>, <errordialognotprepared> or
   <errordialogwrongstate> response element.




Boulton, et al.           Expires June 26, 2006                 [Page 7]


Internet-Draft        Media Server Control Package         December 2005


3.3.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
      parameter is optional.  If the prepareddialogid is specified, the
      attribute MUST NOT be specified.
   type: string identifying the MIME type of the document.  The default
      value is "application/voicexml+xml".  The attribute is optional.
      If the prepareddialogid is specified, the attribute MUST NOT be
      specified.
   prepareddialogid: string identifying a dialog previously prepared
      using a dialogprepare request.  The parameter is optional.
   contextid: string identifying the context (e.g.  SIP dialog
      connection) on which this dialog is to be started.  The parameter
      is optional.
      If the prepareddialogid is defined, and the dialogprepare request
      specified a contextid, then if this contextid is specified, it
      MUST have the same value; if the contextid is not specified in
      this request, but was specified in the dialogprepare request, then
      the contextid from the dialogprepare request will be used.
      [Editors Note: the definition and usage of this attribute requires
      further clarification.]
   maxage: string defining a time interval according to the max-age
      parameter in HTTP 1.1.  The attribute is optional.  If the
      prepareddialogid is specified, the attribute MUST NOT be
      specified.
   maxstale: string defining a time interval according to the max-stale
      parameter in HTTP 1.1.  The attribute is optional.  If the
      prepareddialogid is specified, the attribute MUST NOT be
      specified.
   enctype: string identifying the media encoding type of the submitted
      document.  The default value is "application/
      x-www-form-url-encoded".  The attribute is optional.  If the
      prepareddialogid is specified, the attribute MUST NOT be
      specified.
   method: string indicating the HTTP method to use.  Permitted values
      are "post" or "get".  The default value is "get".  The attribute
      is optional.  If the prepareddialogid is specified, the attribute
      MUST NOT be specified.

   Note that maxage, maxstale, enctype and method attributes are only
   relevant when the src attribute is defined with the HTTP protocol.
   In addition, they only apply to the retrieval and caching of the
   initial dialog document.



Boulton, et al.           Expires June 26, 2006                 [Page 8]


Internet-Draft        Media Server Control Package         December 2005


   [Editors Note: Since the src attribute allows protocols other than
   HTTP, these protocols may require additional attributes (e.g.
   username and password for the ftp protocol). ]

   The <dialogstart> element has the following child elements defined:
   <src>: contains the dialog script itself; e.g. a VoiceXML document.
      The element is optional.  It is an error to specify both a src
      attribute and <src> element.  If the prepareddialogid is
      specified, this element MUST NOT be specified.
   <namelist>: contains a list of one or more <item> elements where each
      item element has name and value attributes.  These parameters are
      passed into the dialog script.  In VoiceXML, they are exposed via
      the session level object "connection.ccxml.values.*".  The element
      is optional.  If the prepareddialogid is specified, this element
      MUST NOT be specified.
   <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
      <dialoguser> REPORT (see Section 3.3.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, this element MUST NOT be
      specified.

   For example, a request to start a dialog where the dialog script is
   indicated using the src attribute:

    <dialogstart contextid="ctx1" src="http://www.example.com/playprompt.vxml">
       <namelist>
         <item name="media" value="/media/prompt1.3gp"/>
       </namelist>
    </dialogstart>

   Where the namelist parameter "media" would be available in the
   VoiceXML script as "connection.ccxml.values.media" so different
   prompts can be played using the same dialog script.

   In the following example, the VoiceXML dialog script is specified
   inline.



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


Internet-Draft        Media Server Control Package         December 2005


    <dialogstart contextid="ctx2">
       <src>
        <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
         <form id='main'>
            <block>
               <audio expr="http://www.example.com/media/prompt1.3gp"/>
               <exit/>
             </block>
          </form>
        </vxml>
       </src>
     </dialogstart>

   In this example, a previously prepared dialog with the dialogid
   "vxi1" is started.

   <dialogstart prepareddialogid="vxi1" contextid="ctx3"/>

   When an MS has received a <dialogstart> request, it MUST reply with a
   <dialogstarted>, <errordialognotstarted> or <errordialogwrongstate>
   response element.

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

   Note that 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.
   dialogid: string identifying the dialog.  The attribute is mandatory.

   A <dialoguser> element has the following child element:
   <namelist>: contains a list of one or more <item> elements where each
      item element has name and value attributes.  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":






Boulton, et al.           Expires June 26, 2006                [Page 10]


Internet-Draft        Media Server Control Package         December 2005


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

3.3.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 parameter 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).

3.4.  REPORT Message Body

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

3.4.1.  dialogprepared

   The <dialogprepared> element has following attributes:
   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"/>







Boulton, et al.           Expires June 26, 2006                [Page 11]


Internet-Draft        Media Server Control Package         December 2005


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

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

    <dialogstarted dialogid="vxi1"/>

3.4.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>: contains a list of one or more <item> elements where each
      item element has name and value attributes.  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>

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





Boulton, et al.           Expires June 26, 2006                [Page 12]


Internet-Draft        Media Server Control Package         December 2005


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

   A <dialoguser> element has the following child element:
   <namelist>: contains a list of one or more <item> elements where each
      item element has name and value attributes.  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.]

3.4.5.  errordialognotprepared

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

   For example, a response when dialog preparation failed:

    <errordialognotprepared dialogid="vxi1"
       reason="HTTP 404 error: http://www.example.com/playprompt.vxml"/>

3.4.6.  errordialogwrongstate

   The <errordialogwrongstate> element has following attributes:
   dialogid: string identifying the dialog.  The attribute is mandatory.
   reason: string specifying the reason why dialog was in the wrong
      state.  The attribute is mandatory.

3.4.7.  errordialognotstarted

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

   For example, a response when dialog execution failed:




Boulton, et al.           Expires June 26, 2006                [Page 13]


Internet-Draft        Media Server Control Package         December 2005


   <errordialognotstarted dialogid="vxi1"
       reason="Unhandled VoiceXML error: error.semantic: variable
       xyz not defined"/>

3.4.8.  errordialog

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

   For example, the dialog execution fails:

   <errordialog dialogid="vxi1" reason="hardware error"/>


4.  Examples

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

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

4.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 June 26, 2006                [Page 14]


Internet-Draft        Media Server Control Package         December 2005


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

4.2.  IVR dialog fails to start

   An IVR dialog fails to start.















Boulton, et al.           Expires June 26, 2006                [Page 15]


Internet-Draft        Media Server Control Package         December 2005


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

4.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 June 26, 2006                [Page 16]


Internet-Draft        Media Server Control Package         December 2005


             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 June 26, 2006                [Page 17]


Internet-Draft        Media Server Control Package         December 2005


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

4.5.  Terminating a dialog immediately

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







Boulton, et al.           Expires June 26, 2006                [Page 18]


Internet-Draft        Media Server Control Package         December 2005


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


5.  Formal Syntax

   [Editors note: XML schema goes here.]


6.  Security Considerations

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


7.  IANA Considerations

   This document registers a new SIP Control Framework Package, a new



Boulton, et al.           Expires June 26, 2006                [Page 19]


Internet-Draft        Media Server Control Package         December 2005


   MIME type, and a new XML namespace.

7.1.  Control Package Registration

   Control Package name: msc-ivr

7.2.  MIME Registration

   TODO: application/msc-ivr+xml

7.3.  URN Sub-Namespace Registration

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


8.  Acknowledgments

   TODO


9.  References

9.1.  Normative References

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

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

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

   [7]   Boulton, C., Melanchuk, T., McGlashan, S., and A. Shiratzky, "A



Boulton, et al.           Expires June 26, 2006                [Page 20]


Internet-Draft        Media Server Control Package         December 2005


         Control Framework for the Session Initiation Protocol (SIP)",
         draft-boulton-sip-control-framework-00 (work in progress),
         December 2005.

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

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

   [10]  McGlashan, S., Auburn, R., Burke, D., Candell, E., and R.
         Surapaneni, "Media Server Control Protocol (MSCP)",
         draft-mcglashan-mscp-00 (work in progress), July 2005.

   [11]  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 June 26, 2006                [Page 21]


Internet-Draft        Media Server Control Package         December 2005


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 June 26, 2006                [Page 22]


Internet-Draft        Media Server Control Package         December 2005


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 (2005).  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 June 26, 2006                [Page 23]