One document matched: draft-boulton-sipping-endpoint-control-package-00.txt




Network Working Group                                         C. Boulton
Internet-Draft                                           NS-Technologies
Intended status: Standards Track                                I. Evans
Expires: September 27, 2009                                        Avaya
                                                          March 26, 2009


 An Endpoint Control Package for the Session Initiation Protocol (SIP)
           draft-boulton-sipping-endpoint-control-package-00

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and 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 27, 2009.

Copyright Notice

   Copyright (c) 2009 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.








Boulton & Evans        Expires September 27, 2009               [Page 1]

Internet-Draft          Endpoint Control Package              March 2009


Abstract

   This document defines a Session Initiation (SIP) Control Package for
   controlling endpoints.  This Control Package provides a basic set of
   related operations and events that can occur between an endpoint and
   an authorised controlling entity.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Conventions and Terminology  . . . . . . . . . . . . . . . . .  6
   3.  Control Package Definition . . . . . . . . . . . . . . . . . .  7
     3.1.  Control Package Name . . . . . . . . . . . . . . . . . . .  7
     3.2.  Framework Message Usage  . . . . . . . . . . . . . . . . .  7
     3.3.  Common XML Support . . . . . . . . . . . . . . . . . . . .  7
     3.4.  CONTROL Message Body . . . . . . . . . . . . . . . . . . .  8
     3.5.  REPORT Message Body  . . . . . . . . . . . . . . . . . . .  8
     3.6.  Audit  . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     3.7.  Examples . . . . . . . . . . . . . . . . . . . . . . . . .  8
   4.  Element Definitions  . . . . . . . . . . . . . . . . . . . . . 16
     4.1.  Requests . . . . . . . . . . . . . . . . . . . . . . . . . 16
       4.1.1.  <make-call>  . . . . . . . . . . . . . . . . . . . . . 17
       4.1.2.  <answer-call>  . . . . . . . . . . . . . . . . . . . . 17
       4.1.3.  <terminate-call> . . . . . . . . . . . . . . . . . . . 17
       4.1.4.  <hold-call>  . . . . . . . . . . . . . . . . . . . . . 17
       4.1.5.  <unhold-call>  . . . . . . . . . . . . . . . . . . . . 18
       4.1.6.  <transfer-call>  . . . . . . . . . . . . . . . . . . . 18
       4.1.7.  <dialog-subscribe> . . . . . . . . . . . . . . . . . . 18
       4.1.8.  <notification> . . . . . . . . . . . . . . . . . . . . 19
   5.  Responses  . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     5.1.  <response> . . . . . . . . . . . . . . . . . . . . . . . . 20
   6.  Formal Syntax  . . . . . . . . . . . . . . . . . . . . . . . . 22
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 25
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 26
     8.1.  Control Package Registration . . . . . . . . . . . . . . . 26
     8.2.  URN Sub-Namespace Registration . . . . . . . . . . . . . . 26
     8.3.  Mime Type Registration . . . . . . . . . . . . . . . . . . 26
   9.  Change Summary . . . . . . . . . . . . . . . . . . . . . . . . 27
   10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 28
   11. Normative References . . . . . . . . . . . . . . . . . . . . . 29
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30









Boulton & Evans        Expires September 27, 2009               [Page 2]

Internet-Draft          Endpoint Control Package              March 2009


1.  Introduction

   The Media Channel Control Framework
   [I-D.ietf-mediactrl-sip-control-framework] provides a generic
   approach for establishment and reporting capabilities of remotely
   initiated commands.  The Framework utilizes many functions provided
   by the Session Initiation Protocol [RFC3261] (SIP) for the rendezvous
   and establishment of a reliable channel for control interactions.
   The Control Framework also introduces the concept of a Control
   Package.  A Control Package is an explicit usage of the Control
   Framework for a particular interaction set.

   This specification defines a package for controlling endpoints and
   learning specific status information.  Using the Media Channel
   Control Framework provides an appropriate connection establishment
   and reliable interaction with an endpoint.  The requirement for
   endpoint control comes from a plethora of applications that allow an
   authorized user to control an endpoint (for example, using a desktop
   application running on a PC that controls a desk phone).  Use of the
   Media Channel Control Framework provides a number benefits which from
   a SIP perspective include:

   1.  Service location - Use SIP Proxies or Back-to-Back User Agents
       for discovering Control Servers.

   2.  Use of SIP GRUU[I-D.ietf-sip-gruu] allows a controlling entity to
       target a specific device that it wishes to control.  The synergy
       between endpoint selection using SIP for normal multimedia calls
       and also this control package provides a powerful and consistent
       use of location procedures.

   3.  Security mechanisms - Leverage established security mechanisms
       such as Transport Layer Security (TLS) and Client Authentication.

   4.  Connection maintenance - The ability to re-negotiate a
       connection, ensure it is active, and so forth.

   5.  Application agnostic - Generic protocol allows for easy
       extension.

   And from a non-SIP perspective include:

   1.  A reliable channel for exchange endpoint control information.

   2.  In built capability negotiation.

   3.  Highly extensible information exchange format.




Boulton & Evans        Expires September 27, 2009               [Page 3]

Internet-Draft          Endpoint Control Package              March 2009


   4.  Appropriate security mechanisms for exchanging sensitive
       information.

   5.  The direct connection means that no un-necessary hops are
       traversed.

   6.  Consolidation of information into a single transactional model.

   7.  Light weight protocol/transactional model compared to SIP.

   Figure 1 provides a high level illustration of a an application
   server acting in the role of a Control Client using SIP to establish
   a dedicated control channel to an endpoint.  For more information on
   creating a control channel using SIP take a look at
   [I-D.ietf-mediactrl-sip-control-framework].


          +--------------SIP Traffic--------------+
          |                                       |
          v                                       v
       +-----+                                 +--+--+
       | SIP |                                 | SIP |
       |Stack|                                 |Stack|
   +---+-----+---+                         +---+-----+---+
   | Application |                         | SIP Endpoint|
   |   Server    |                         |  (Control   |
   |  (Control   |                         |   Server)   |
   |   Client)   |<----Control Channel---->|             |
   +-------------+                         +-------------+



                       Figure 1: Basic Architecture

   Endpoint control covers the following basic operations can be issued
   to an endpoint from an application server:

   o  Make Call - The ability to create a new outgoing call from a SIP
      endpoint.

   o  Answer Call - The ability to answer an incoming call at a SIP
      endpoint.

   o  Terminate Call - The ability to terminate an existing call.

   o  Hold Call - The ability to place an existing call in a hold state.





Boulton & Evans        Expires September 27, 2009               [Page 4]

Internet-Draft          Endpoint Control Package              March 2009


   o  UnHold Call - The ability to remove an existing call from a hold
      state.

   o  Transfer Call - The ability to transfer an existing call.

   o  Dialog Subscribe - The ability to subscribe and receive
      notifications of new and existing SIP dialogs.












































Boulton & Evans        Expires September 27, 2009               [Page 5]

Internet-Draft          Endpoint Control Package              March 2009


2.  Conventions and Terminology

   In this document, BCP 14/RFC 2119 [RFC2119] defines the key words
   "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
   "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL".  In addition, BCP 15 indicates requirement levels for
   compliant implementations.

   The following additional terms are defined for use in this document:

   XXX:  TODO.








































Boulton & Evans        Expires September 27, 2009               [Page 6]

Internet-Draft          Endpoint Control Package              March 2009


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
   [I-D.ietf-mediactrl-sip-control-framework].

3.1.  Control Package Name

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

   The name and version of this Control Package is "endpoint-
   control/1.0".

3.2.  Framework Message Usage

   Endpoint control functionality includes capabilities such as basic
   call control operations and related information.

   This package defines XML elements in Section 4 and provides an XML
   Schema in Section 6.

   The XML elements in this package are split into requests, responses
   and event notifications.  Requests are carried in CONTROL message
   bodies; <make-call>, <answer-call>, <terminate-call>, <hold-call>,
   <unhold-call>, and <transfer-call>, <subscribe-dialog> elements are
   defined as package requests.  Event notifications are also carried in
   CONTROL message bodies; the <notification> element is defined for
   package event notifications.  Responses are carried either in REPORT
   message or Control Framework 200 response bodies; the <response>
   element is defined as a package level response.

   Note that package responses are different from framework response
   codes.  Framework error response codes (see Section 7 of
   [I-D.ietf-mediactrl-sip-control-framework]) are used when the request
   or event notification is invalid; for example, a request has invalid
   XML (400), or not understood (500).  Package level responses are
   carried in framework 200 response or REPORT message bodies.  This
   package's response codes are defined in Section 5.

3.3.  Common XML Support

   The Control Framework requires a Control Package definition to
   specify if the attributes for media dialog or conference references
   are required.

   This package requires that the XML Schema in Section 17.1 of



Boulton & Evans        Expires September 27, 2009               [Page 7]

Internet-Draft          Endpoint Control Package              March 2009


   [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for
   media dialogs only as defined by the 'connectionid' attribute.

3.4.  CONTROL Message Body

   A valid CONTROL body message MUST conform to the schema defined in
   Section 6 and described in Section 4.  XML messages appearing in
   CONTROL messages MUST contain either a <make-call>,<answer-call>,
   <terminate-call>, <hold-call>, <unhold-call>, <transfer-call>,
   <dialog-subscribe> or <notification> element.

3.5.  REPORT Message Body

   A valid REPORT body MUST conform to the schema defined in Section 6
   and described in Section 4.  XML messages appearing in REPORT
   messages MUST contain a <response> (Section 5) element.

3.6.  Audit

   TODO.

3.7.  Examples

   The following example provide an abstracted flow of Control Channel
   establishment and Control Framework message exchange.  The SIP
   signaling is prefixed with the token 'SIP'.  All other messages are
   Control Framework interactions defined in this document.

   In this example, the Control Client establishes a control channel,
   SYNCs with the Control Server, and issues a two CONTROL requests.
   The first CONTROL request turns on subscriptions to dialog events as
   discussed later in this document and the second CONTROL instructs the
   endpoint to initiate a call.


            Control Client                                Control Server
                   |                                             |
                   |       (1) SIP INVITE                        |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (2) SIP 200                           |
                   |  <---------------------------------------   |
                   |                                             |
                   |       (3) SIP ACK                           |
                   |  ---------------------------------------->  |
                   |                                             |
                   |==>=======================================>==|
                   |         Control Channel Established         |



Boulton & Evans        Expires September 27, 2009               [Page 8]

Internet-Draft          Endpoint Control Package              March 2009


                   |==>=======================================>==|
                   |                                             |
                   |       (4) SYNC                              |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (5) 200                               |
                   |  <---------------------------------------   |
                   |                                             |
                   |       (6) CONTROL <dialog-subscribe/>       |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (7) 200                               |
                   |  <---------------------------------------   |
                   |                                             |
                   |       (8) CONTROL <notification/>           |
                   |  <---------------------------------------   |
                   |                                             |
                   |       (9) 200                               |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (10) CONTROL <make-call/>             |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (11) 200                              |
                   |  <---------------------------------------   |
                   |                                             |
                   |       (12) CONTROL <notification/>          |
                   |  <---------------------------------------   |
                   |                                             |
                   |       (13) 200                              |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (14) CONTROL <notification/>          |
                   |  <---------------------------------------   |
                   |                                             |
                   |       (15) 200                              |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (16) CONTROL <notification/>          |
                   |  <---------------------------------------   |
                   |                                             |
                   |       (17) 200                              |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (18) SIP BYE                          |
                   |  ---------------------------------------->  |
                   |                                             |
                   |       (19) SIP 200                          |



Boulton & Evans        Expires September 27, 2009               [Page 9]

Internet-Draft          Endpoint Control Package              March 2009


                   |  <---------------------------------------   |
                   |=============================================|
                   |         Control Channel Terminated          |
                   |=============================================|
                   |                                             |



   (1) Control Client->Control Server (SIP): INVITE
   sip:endpoint@example.com

   INVITE sip:endpoint@example.com SIP/2.0
   To: <sip:endpoint@example.com>
   From: <sip:control-client@example.com>;tag=8937498
   Via: SIP/2.0/UDP control-client.example.com;branch=z9hG412345678
   CSeq: 1 INVITE
   Call-ID: 893jhoeihjr8392@example.com
   Contact: <sip:control-client@pc1.example.com>
   Content-Type: application/sdp
   Cotent-Length: [..]

   v=0
   o=originator 2890844526 2890842808 IN IP4 controller.example,com
   s=-
   c=IN IP4 control-client.example.com
   m=application 7575 TCP/CFW
   a=setup:active
   a=connection:new
   a=cfw-id:fndskuhHKsd783hjdla

   (2) Endpoint (Control Server)->Control Client (SIP): 200 OK




















Boulton & Evans        Expires September 27, 2009              [Page 10]

Internet-Draft          Endpoint Control Package              March 2009


   SIP/2.0 200 OK
   To: <sip:endpoint@example.com>;tag=023983774
   From: <sip:control-client@example.com>;tag=8937498
   Via: SIP/2.0/UDP control-client.example.com;branch=z9hG412345678
   CSeq: 1 INVITE
   Call-ID: 893jhoeihjr8392@example.com
   Contact: <sip:control-client@pc2.example.com>
   Content-Type: application/sdp
   Content-Length: [..]

   v=0
   o=originator 2890844526 2890842808 IN IP4 controller.example,com
   s=-
   c=IN IP4 endpoint.example.com
   m=application 7575 TCP/CFW
   a=setup:passive
   a=connection:new
   a=cfw-id:fndskuhHKsd783hjdla


   (3) Control Client->Endpoint(Control Server) (SIP): ACK

   Control Client opens a TCP connection to the Endpoint(Control
   Server).  The connection can now be used to exchange control
   framework messages. (4) Control Client-->Endpoint(Control Server)
   (Control Framework Message): SYNC.

   CFW 8djae7khauj SYNC
   Dialog-ID: fndskuhHKsd783hjdla
   K-alive: 100
   Packages: endpoint-control/1.0

   (5) Control Server-->Control Client (Control Framework Message): 200.

   CFW 8djae7khauj 200
   Keep-Alive: 100
   Packages: endpoint-control/1.0


   Once the SYNC process has completed, the connection can now be used
   to exchange control framework messages. (6) Control Client-->Endpoint
   (Control Server) (Control Framework Message): CONTROL.  This message
   is used to establish a dialog subscription.








Boulton & Evans        Expires September 27, 2009              [Page 11]

Internet-Draft          Endpoint Control Package              March 2009


   CFW i387yeiqyiq CONTROL
   Control-Package: endpoint-control/v1.0
   Content-Type: application/endpoint-control+xml
   Content-Length: [..]

   <?xml version="1.0"?>
       <endpoint-control>
         <dialog-subscribe active=true>
       </endpoint-control>


   (7) Endpoint(Control Server)-->Control Client (Control Framework
   Message): 200.  The

   CFW i387yeiqyiq 200


   (8) Endpoint (Control Client)-->Control Server (Control Framework
   Message): CONTROL.  On creating an active dialog subscription the
   Endpoint must immediately issue a CONTROL message containing current
   dialog state.  Currently there are no active dialogs to reprt.

   CFW 3fk9023dj83 CONTROL
   Control-Package: endpoint-control/v1.0
   Content-Type: application/endpoint-control+xml
   Content-Length: [..]

   <notification>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                      version="0" notify-state="full"
                      entity="sip:endpoint@example.com">
   </dialog-info>
   </notification>

   (9)Control Server-->Endpoint(Control Client) (Control Framework
   Message): 200.  The Control Server issues a 200 response to the
   CONTROL notification from the endpoint.

   CFW 3fk9023dj83 200

   (10) Control Client-->Endpoint (Control Server) (Control Framework
   Message): CONTROL.  This message is used to issue a command to the
   Endpoint to 'Make a Call' to 'sip:chris@example.com'.








Boulton & Evans        Expires September 27, 2009              [Page 12]

Internet-Draft          Endpoint Control Package              March 2009


   CFW 287udh7823h CONTROL
   Control-Package: endpoint-control/v1.0
   Content-Type: example_content/example_content
   Content-Length: [..]

   <?xml version="1.0"?>
       <endpoint-control>
           <make-call>
               <destination>"sip:chris@example.com"</destination>
           <make-call/>
       </endpoint-control>


   (11) Endpoint(Control Server)-->Control Client (Control Framework
   Message): 200.  The endpoint issues a 200 response to the CONTROL
   'Make a Call' operation.  The endpoint is now attempting to initiate
   the call and will report back using dialog events.

   CFW 287udh7823h 200

   (12) Endpoint(Control Client)-->Control Server (Control Framework
   Message): CONTROL.  The dialog events are now being reported using
   CONTROL messages.  This message is reporting that a SIP 100 TRYING
   has been received for the 'Make a Call' request.

   CFW 2138hd78093ui CONTROL
   Control-Package: endpoint-control/v1.0
   Content-Type: application/endpoint-control+xml
   Content-Length: [..]

   <notification>
    <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                      version="0"
                      state="full"
                      entity="sip:endpoint@example.com">
           <dialog id="2398ud289" call-id="9dj83j9283ue"
                   local-tag="193jhe2387h7" direction="initiator">
             <state>trying</state>
           </dialog>
    </dialog-info>
   </notification>


   (13) Control Server-->Endpoint(Control Client) (Control Framework
   Message): 200.  The endpoint issues a 200 response to the CONTROL
   notification.

   CFW 2138hd78093ui 200



Boulton & Evans        Expires September 27, 2009              [Page 13]

Internet-Draft          Endpoint Control Package              March 2009


   (14) Control Client(Endpoint)-->Control Server (Control Framework
   Message): CONTROL.  The dialog events are now being reported using
   CONTROL messages.  This message is reporting that a SIP 180 RINGING
   has been received for the 'Make a Call' request.

   CFW 3fk9023dj83 CONTROL
   Control-Package: endpoint-control/v1.0
   Content-Type:application/endpoint-control+xml
   Content-Length: [..]

   <notification>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                      version="1"
                      state="full"
                      entity="sip:endpoint@example.com">
           <dialog id="2398ud289" call-id="9dj83j9283ue"
                   local-tag="193jhe2387h7" remote-tag="4389jhd892"
                   direction="initiator">
             <state>early</state>
           </dialog>
   </dialog-info>
   </notification>


   (15) Control Server-->Endpoint(Control Client) (Control Framework
   Message): 200.  The endpoint issues a 200 response to the CONTROL
   notification.

   CFW 3fk9023dj83 200

   (16) Control Client(Endpoint)-->Control Server (Control Framework
   Message): CONTROL.  The dialog events are now being reported using
   CONTROL messages.  This message is reporting that a SIP 200 OK has
   been received for the 'Make a Call' request.

















Boulton & Evans        Expires September 27, 2009              [Page 14]

Internet-Draft          Endpoint Control Package              March 2009


   CFW 3fk9023dj83 CONTROL
   Control-Package: endpoint-control/v1.0
   Content-Type: application/endpoint-control+xml
   Content-Length: [..]

   <notification>
         <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
                      version="3"
                      state="partial"
                      entity="sip:endpoint@example.com">
           <dialog id="2398ud289" call-id="9dj83j9283ue"
                   local-tag="193jhe2387h7" remote-tag="4389jhd892"
                   direction="initiator">
             <state>confirmed</state>
           </dialog>
         </dialog-info>
   </notification>


   (17) Control Server-->Endpoint(Control Client) (Control Framework
   Message): 200.  The endpoint issues a 200 response to the CONTROL
   notification.

   CFW 3fk9023dj83 200


   (18)Control Client->Control Server (SIP): BYE

   BYE sip:endpoint@pc2.example.com SIP/2.0
   To: <sip:endpoint@example.com>
   From: <sip:control-client@example.com>;tag=8937498
   Via: SIP/2.0/UDP control-client.example.com;branch=z9hG423456789
   CSeq: 2 BYE
   Call-ID: 893jhoeihjr8392@example.com

   (19)Control Server->Control Client (SIP): 200 OK

   SIP/2.0 200 OK
   To: <sip:endpoint@example.com>;tag=023983774
   From: <sip:control-client@example.com>;tag=8937498
   Via: SIP/2.0/UDP control-client.example.com;branch=z9hG423456789
   CSeq: 2 BYE
   Call-ID: 893jhoeihjr8392@example.com








Boulton & Evans        Expires September 27, 2009              [Page 15]

Internet-Draft          Endpoint Control Package              March 2009


4.  Element Definitions

   This section defines the XML messages for this control package.

4.1.  Requests

   The following request elements are defined:

   <make-call>:  This element provides instructions and information that
      enable an authenticated and authorised controlling entity to
      initiate an outgoing SIP INVITE request.

   <answer-call>:  This element allows an authenticated and authorised
      controlling entity to respond to an incoming SIP INVITE request.

   <terminate-call>:  This element allows an authenticated and
      authorised controlling entity to terminate an existing SIP INVITE
      dialog.

   <hold-call>:  This element allows an authenticated and authorised
      controlling entity to place an existing SIP INVITE into a hold
      state.

   <unhold-call>:  This element allows an authenticated and authorised
      controlling entity to take an existing SIP INVITE off the hold
      state.

   <transfer-call>:  This element allows an authenticated and authorised
      controlling entity to transfer a call.

   <dialog-subscribe>:  This element allows an authenticated and
      authorised controlling entity to subscribe to dialog events from
      the endpoints.

   <notification>:  This element provides notification events either as
      as a result of the <dialog-subscribe> element or request level
      updates using the dialog event format defined in RFC 4235
      [RFC4235].

   [Editors Note: The draft defines a simple set of endpoint control
   primitives.  It could just have easily used the CSTA XML schema if
   deemed appropriate.]  [Editors Note: Include 'reject-call' in the
   next version?]  The remaining sub-sections provide more detail on
   each request type.







Boulton & Evans        Expires September 27, 2009              [Page 16]

Internet-Draft          Endpoint Control Package              March 2009


4.1.1.  <make-call>

   The 'make-call' command is used to initiate a SIP INVITE request at
   the destination being controlled.  The element has the following
   child elements:

   <destination>:  This mandatory element provides a URI indicating
      where the outgoing SIP INVITE should be targeted.  Typically the
      value of this element would populate the SIP R-URI and 'To'
      header.

   <originator>:  This optional element provides a URI indicating where
      the originator of the outgoing SIP INVITE.  Typically the value of
      this element would populate the SIP 'From' header and others that
      are used to distinguish the originator.  Alternatively the
      endpoint might only have a single user or use a default.

4.1.2.  <answer-call>

   The 'answer-call' command is used to initiate a response to a SIP
   INVITE request that has arrived at the endpoint being controlled.
   This results in a SIP 200 OK message being issued.  The element has
   the following attributes: [Editors Note: Should we let a range of SIP
   responses be generated e.g.  Reject etc.]

   <dialog-id>:  This mandatory element provides a concatenated version
      of the SIP dialog identifiers as constructed according to section
      17.1 in [I-D.ietf-mediactrl-sip-control-framework].  It is used to
      reference the incoming SIP INVITE for which the response is being
      generated.

4.1.3.  <terminate-call>

   The 'terminate-call' command is used to terminate an existing SIP
   INVITE dialog.  This results in a SIP BYE message being issued.  The
   element has the following child attributes:

   <dialog-id>:  This mandatory element provides a concatenated version
      of the SIP dialog identifiers as constructed according to section
      17.1 in [I-D.ietf-mediactrl-sip-control-framework].  It is used to
      reference the existing SIP INVITE for which the SIP BYE is being
      generated.

4.1.4.  <hold-call>

   The 'hold-call' command is used to place an existing SIP INVITE
   dialog into a hold state.  The exact mechanism used for achieving
   call hold is implementation specific and not specified.  The element



Boulton & Evans        Expires September 27, 2009              [Page 17]

Internet-Draft          Endpoint Control Package              March 2009


   has the following attributes:

   <dialog-id>:  This mandatory element provides a concatenated version
      of the SIP dialog identifiers as constructed according to section
      17.1 in [I-D.ietf-mediactrl-sip-control-framework].  It is used to
      reference the existing SIP INVITE for which the hold state being
      generated.

4.1.5.  <unhold-call>

   The 'unhold-call' command is used to take an existing SIP INVITE
   dialog out of the hold state.  The exact mechanism used for achieving
   call hold is implementation specific and not specified.  The element
   has the following attributes:

   <dialog-id>:  This mandatory element provides a concatenated version
      of the SIP dialog identifiers as constructed according to section
      17.1 in [I-D.ietf-mediactrl-sip-control-framework].  It is used to
      reference the existing SIP INVITE for which the unhold state being
      generated.

4.1.6.  <transfer-call>

   The 'transfer-call' command is used to transfer the far end of an
   existing SIP INVITE dialog to another location.  The element has the
   following child elements:

   <transfer-to>:  This mandatory attribute provides a URI indicating
      the target that should be used when transferring the other party
      involved in the SIP INVITE dialog.  Typically the value of this
      element would populate the SIP 'Refer-To' header of a SIP REFER
      message.

   This element has the following attributes:

   <dialog-id>:  This mandatory element provides a concatenated version
      of the SIP dialog identifiers as constructed according to section
      17.1 in [I-D.ietf-mediactrl-sip-control-framework].  It is used to
      reference the existing SIP INVITE dialog which is the used for the
      transfer.

4.1.7.  <dialog-subscribe>

   The 'dialog-subscribe' command is used to indicate whether SIP dialog
   events should be sent.  The element has the following child elements:






Boulton & Evans        Expires September 27, 2009              [Page 18]

Internet-Draft          Endpoint Control Package              March 2009


   <user-name>:  This optional element provides a URI indicating the
      target user that should be used when subscribing to events.  Not
      including this elements results in all events being passed to the
      requesting entity for all users.

   This element has the following attributes:

   <active>:  This mandatory element indicates if dialog events should
      be turned on or off (*note - they are off by default).  The
      attribute is a boolean with a value of 'true' indicating that
      dialog events should be turned on and 'false' indicating dialog
      events should be turned off.  Dialog events are delivered in
      CONTROL framework messages that include the <notification>
      element.  An entity could gain dialog event information using the
      SIP dialog event package[RFC4235].

4.1.8.  <notification>

   This control package optionally provides the client issuing requests
   with specific SIP dialog related information.  As previously
   discussed in Section 4.1.7, a client sending a <dialog-subscribe>
   request with to turn dialog notifications both on and off.

   The <notification> element uses the payload format for dialog events
   as specified in RFC 4235 [RFC4235].

   [Editors Note: Need to think about linkage of dialog events and
   commands.  Also need to look at scope of subscription.]























Boulton & Evans        Expires September 27, 2009              [Page 19]

Internet-Draft          Endpoint Control Package              March 2009


5.  Responses

   Responses are specified in a <response> element.

5.1.  <response>

   Reponses to requests are indicated by a <response> element.

   The <response> element has following attributes:

   status:  numeric code indicating the response status.  The attribute
      is mandatory.

   The following status codes are defined:

   +-----------+-------------------------------------------------------+
   | code      | description                                           |
   +-----------+-------------------------------------------------------+
   | 200       | OK                                                    |
   |           |                                                       |
   | 400       | Invalid syntax                                        |
   |           |                                                       |
   | 404       | connection-id does not exist                          |
   |           |                                                       |
   | 405       | Unknown or unsupported request                        |
   |           |                                                       |
   | 406       | Element required                                      |
   |           |                                                       |
   | 407       | Unknown or unsupported attribute                      |
   |           |                                                       |
   | 408       | Attribute required                                    |
   |           |                                                       |
   | 411       | Dialog event subscription not supported               |
   |           |                                                       |
   | 499       | other error                                           |
   +-----------+-------------------------------------------------------+

                     Table 1: <response> status codes

   [Editors Note: more status codes may need to be defined.]

   For example, a response when a request was successfully executed
   would look like:

   <response status="200" requestid="38udaiu38"/>

   The response if the request failed due to an unsupported request
   type:



Boulton & Evans        Expires September 27, 2009              [Page 20]

Internet-Draft          Endpoint Control Package              March 2009


    <response status="405" dialogid="380sdjfeji"/>


















































Boulton & Evans        Expires September 27, 2009              [Page 21]

Internet-Draft          Endpoint Control Package              March 2009


6.  Formal Syntax


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

 <xsd:annotation>
  <xsd:documentation>
      Endpoint Control v1.0
  </xsd:documentation>
 </xsd:annotation>

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

 <xsd:import
       namespace="urn:ietf:params:xml:ns:dialog-info"
           schemaLocation="dialog-info.xsd"/>

 <xs:element name="endpoint-control" type="endpoint-control-type" />

 <xsd:complexType name="endpoint-control-type">
  <xsd:sequence>
  <xsd:choice>
    <xsd:element name="make-call" type="make-call-type" />
    <xsd:element name="answer-call" type="answer-call-type" />
    <xsd:element name="terminate-call" type="terminate-call-type" />
    <xsd:element name="hold-call" type="hold-call-type" />
    <xsd:element name="unhold-call" type="unhold-call-type" />
    <xsd:element name="transfer-call" type="transfer-call-type" />
    <xsd:element name="dialog-subscribe" type="dialog-subscribe-type" />
    <xsd:element name="notification" type="di:dialog-info" />
    <xsd:element name="response" type="response-type" />
    <xsd:any namespace="##other" minOccurs="0"
            maxOccurs="unbounded" processContents="lax" />
  </xsd:choice>
  </xsd:sequence>
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>

     <xsd:complexType name="make-call-type">
          <xsd:sequence>



Boulton & Evans        Expires September 27, 2009              [Page 22]

Internet-Draft          Endpoint Control Package              March 2009


            <xsd:element name="destination" type="xsd:anyURI"
                        minOccurs="1" maxOccurs="1" />
            <xsd:element name="originator" type="xsd:anyURI"
                    minOccurs="0" maxOccurs="1" />
            <xsd:any namespace="##other" minOccurs="0"
                    maxOccurs="unbounded" processContents="lax" />
          </xsd:sequence>
          <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>

     <xsd:complexType name="answer-call-type">
          <xsd:sequence>
            <xsd:any namespace="##other" minOccurs="0"
                        maxOccurs="unbounded" processContents="lax" />
          </xsd:sequence>
          <xsd:attribute name="dialog-id" type="fw:connectionid"/>
          <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>

     <xsd:complexType name="terminate-call-type">
          <xsd:sequence>
            <xsd:any namespace="##other" minOccurs="0"
                        maxOccurs="unbounded" processContents="lax" />
          </xsd:sequence>
          <xsd:attribute name="dialog-id" type="fw:connectionid"/>
     <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>

     <xsd:complexType name="hold-type">
          <xsd:sequence>
                <xsd:any namespace="##other" minOccurs="0"
                        maxOccurs="unbounded" processContents="lax" />
          </xsd:sequence>
          <xsd:attribute name="dialog-id" type="fw:connectionid"/>
     <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>

     <xsd:complexType name="unhold-type">
          <xsd:sequence>
            <xsd:any namespace="##other" minOccurs="0"
                        maxOccurs="unbounded" processContents="lax" />
          </xsd:sequence>
          <xsd:attribute name="dialog-id" type="fw:connectionid"/>
     <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>

     <xsd:complexType name="transfer-type">
          <xsd:sequence>



Boulton & Evans        Expires September 27, 2009              [Page 23]

Internet-Draft          Endpoint Control Package              March 2009


            <xsd:element name="transfer-to" type="xsd:anyURI"
                        minOccurs="1" maxOccurs="1" />
            <xsd:any namespace="##other" minOccurs="0"
                        maxOccurs="unbounded" processContents="lax" />
        </xsd:sequence>
          <xsd:attribute name="dialog-id" type="fw:connectionid"/>
     <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>

     <xsd:complexType name="dialog-subscribe-type">
          <xsd:sequence>
            <xsd:element name="user-name" type="xsd:anyURI"
                        minOccurs="0" maxOccurs="1" />
            <xsd:any namespace="##other" minOccurs="0"
                        maxOccurs="unbounded" processContents="lax" />
          </xsd:sequence>
          <xsd:attribute name="active" type="xsd:boolean"
                  use="required"/>
     <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>

     <xsd:complexType name="response-type">
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:any namespace="##other" processContents="strict"/>
          </xsd:choice>
          <xsd:attribute name="status" type="status.datatype"
                  use="required"/>
          <xsd:anyAttribute namespace="##other" processContents="lax" />
     </xsd:complexType>

 <!-- DATATYPES -->

 <xsd:simpleType name="status.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:pattern value="[0-9][0-9][0-9]"/>
  </xsd:restriction>
 </xsd:simpleType>

</xsd:schema>












Boulton & Evans        Expires September 27, 2009              [Page 24]

Internet-Draft          Endpoint Control Package              March 2009


7.  Security Considerations

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















































Boulton & Evans        Expires September 27, 2009              [Page 25]

Internet-Draft          Endpoint Control Package              March 2009


8.  IANA Considerations

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

8.1.  Control Package Registration

   Control Package name: endpoint-control/1.0

8.2.  URN Sub-Namespace Registration

   XML namespace: urn:ietf:params:xml:ns:endpoint-control

8.3.  Mime Type Registration

   MIME type: application/endpoint-control+xml



































Boulton & Evans        Expires September 27, 2009              [Page 26]

Internet-Draft          Endpoint Control Package              March 2009


9.  Change Summary

   TODO.
















































Boulton & Evans        Expires September 27, 2009              [Page 27]

Internet-Draft          Endpoint Control Package              March 2009


10.  Acknowledgments

   TODO
















































Boulton & Evans        Expires September 27, 2009              [Page 28]

Internet-Draft          Endpoint Control Package              March 2009


11.  Normative References

   [I-D.ietf-mediactrl-sip-control-framework]
              Boulton, C., Melanchuk, T., and S. McGlashan, "Media
              Control Channel Framework",
              draft-ietf-mediactrl-sip-control-framework-10 (work in
              progress), February 2009.

   [I-D.ietf-sip-gruu]
              Rosenberg, J., "Obtaining and Using Globally Routable User
              Agent (UA) URIs (GRUU) in the  Session Initiation Protocol
              (SIP)", draft-ietf-sip-gruu-15 (work in progress),
              October 2007.

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

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

   [RFC4235]  Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE-
              Initiated Dialog Event Package for the Session Initiation
              Protocol (SIP)", RFC 4235, November 2005.


























Boulton & Evans        Expires September 27, 2009              [Page 29]

Internet-Draft          Endpoint Control Package              March 2009


Authors' Addresses

   Chris Boulton
   NS-Technologies

   Email: chris@ns-technologies.com


   Ian Evans
   Avaya
   Building 3
   Wern Fawr Lane
   St Mellons
   Cardiff, South Wales  CF3 5EA

   Email: ievansATavaya.com



































Boulton & Evans        Expires September 27, 2009              [Page 30]



PAFTECH AB 2003-20262026-04-24 01:31:34