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-2026 | 2026-04-24 01:31:34 |