Session Initiation Proposal V. Hilt
Investigation Working Group Bell Labs/Lucent Technologies
Internet-Draft G. Camarillo
Expires: April 24, 2005 Ericsson
J. Rosenberg
Cisco Systems
October 24, 2004
Session-Independent Session Initiation Protocol (SIP) Policies -
Mechanism and Policy Schema
draft-ietf-sipping-session-indep-policy-01
Status of this Memo
This document is an Internet-Draft and is subject to all provisions
of section 3 of RFC 3667. 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 become aware will be disclosed, in accordance with
RFC 3668.
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 April 24, 2005.
Copyright Notice
Copyright (C) The Internet Society (2004).
Abstract
This draft specifies an XML schema for profile data for SIP
session-policies. It defines a delivery mechanism for SIP
session-policies that are independent of a specific SIP session.
Hilt, et al. Expires April 24, 2005 [Page 1]
Internet-Draft Session-Independent Policies October 2004
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Session-Independent Policy Mechanism . . . . . . . . . . . . . 4
3.1 Subscriber Behavior . . . . . . . . . . . . . . . . . . . 4
3.2 Notifier Behavior . . . . . . . . . . . . . . . . . . . . 6
4. Session Policy Schemas . . . . . . . . . . . . . . . . . . . . 6
4.1 Specifying Constraints . . . . . . . . . . . . . . . . . . 6
4.2 Extensibility . . . . . . . . . . . . . . . . . . . . . . 7
4.3 General Policy Schema . . . . . . . . . . . . . . . . . . 7
4.3.1 Elements and Attributes . . . . . . . . . . . . . . . 8
4.4 Media Policy Schema . . . . . . . . . . . . . . . . . . . 9
4.4.1 Elements and Attributes . . . . . . . . . . . . . . . 9
4.4.2 Conflict Resolution . . . . . . . . . . . . . . . . . 11
4.4.3 Example . . . . . . . . . . . . . . . . . . . . . . . 11
4.5 Protocol Policy Schema . . . . . . . . . . . . . . . . . . 12
4.5.1 Elements and Attributes . . . . . . . . . . . . . . . 12
4.5.2 Conflict Resolution . . . . . . . . . . . . . . . . . 14
4.5.3 Example . . . . . . . . . . . . . . . . . . . . . . . 15
4.6 Media Routing Policy Schema . . . . . . . . . . . . . . . 15
4.6.1 Elements and Attributes . . . . . . . . . . . . . . . 16
4.6.2 Conflict Resolution . . . . . . . . . . . . . . . . . 17
4.6.3 Example . . . . . . . . . . . . . . . . . . . . . . . 17
5. Schema Definitions . . . . . . . . . . . . . . . . . . . . . . 18
5.1 General Policy Schema . . . . . . . . . . . . . . . . . . 18
5.2 Media Policy Schema . . . . . . . . . . . . . . . . . . . 18
5.3 Protocol Policy Schema . . . . . . . . . . . . . . . . . . 19
5.4 Media Routing Policy Schema . . . . . . . . . . . . . . . 20
6. Security Considerations . . . . . . . . . . . . . . . . . . . 22
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 23
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 23
Intellectual Property and Copyright Statements . . . . . . . . 24
Hilt, et al. Expires April 24, 2005 [Page 2]
Internet-Draft Session-Independent Policies October 2004
1. Introduction
Some domains have policies in place, which impact the sessions
established using the Session Initiation Protocol (SIP) [10]. These
policies are often needed to support the network infrastructure or
the execution of services. For example, wireless networks usually
have limited resources for media traffic. During periods of high
activity, a wireless network provider may want to restrict codec
usage on the network to lower rate codecs.
In another example, a SIP user agent is using a network which
connects to the public Internet through a firewall at the network
edge. The provider would like to tell the user agent to direct the
media streams to the appropriate open ip/ports on that firewall.
Knowing this policy enables these user agents to setup sessions with
user agents on the public Internet.
In a third example, a domain A has a limited bandwidth pipe to
another domain B. The pipe is realized through two routers that are
managed. Domain A would like to direct each call to one of the
routers based on their capacity. With session policies, the domain
can inform the user agent about the route with the most capacity
available.
Domains sometimes enforce policies they have in place. For example,
a domain might have a configuration in which all packets containing a
certain audio codec are dropped. Unfortunately, enforcement
mechanisms usually do not inform the user about the policies they are
enforcing and silently keep the user from doing anything against
them. This may lead to the malfunctioning of devices that is
incomprehensible to the user. With session policies, the user knows
about the restricted codecs and can use a different codec or simply
connect to a domain with less stringent policies. Session policies
provide an important combination of consent coupled with enforcement.
That is, the user becomes aware of the policy and needs to act on it,
but the provider still retains the right to enforce the policy.
Some policies are created specifically for a certain session. Such
policies usually require that the user agent provides information
about the session to the network and receives policies that are
tailored to this session. Session-specific policies can be set up
using the framework for session-specific policies [3].
Session policies are often independent of a certain session and
generally apply to the sessions that are set up by a user agent. In
principle, these policies could also be set up on a
session-to-session basis. However, it is much more efficient to
enable user agents to obtain the policies relevant for them and to
Hilt, et al. Expires April 24, 2005 [Page 3]
Internet-Draft Session-Independent Policies October 2004
inform the user agents about changes in these policies. This draft
defines a mechanism for delivering session-independent policies to
user agents.
This draft also defines XML schemas for session policies. It defines
a general session policy schema acting as a framework for session
policies. It also defines schemas for media policies, protocol
policies and media routing policies. Policy instance documents can
be delivered to user agents as session-independent policies using the
mechanisms below or as session-specific policies [3].
Note: The difference between session-independent and
session-specific policies needs more discussion here.
2. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in BCP 14, [1] and indicate requirement levels for
compliant implementations.
3. Session-Independent Policy Mechanism
This draft defines a mechanism for the delivery of
session-independent policies to UAs. Session-independent policies
can be part of the device configuration and reside on the same
configuration server. They can be delivered to UAs in conjunction
with the device configuration. Session-independent policies may also
be independent of other configuration information and reside on
different servers.
This mechanism enables UAs to indicate their support for session
policies and to receive policies from different policy servers. A UA
subscribes to session-independent policies. It receives these
policies when the subscription is established and is notified if
updates to session policies become available. The
session-independent policy mechanism is based on the Framework for
SIP User Agent Profile Delivery [7] and RFC3265 [9].
3.1 Subscriber Behavior
A UA can express interest in session-independent policies by
subscribing to session policies a policy server. If the UA has
already received the URIs of all relevant session policy documents
(e.g., through configuration) it SHOULD use these URIs to create a
subscription as defined in [7].
Hilt, et al. Expires April 24, 2005 [Page 4]
Internet-Draft Session-Independent Policies October 2004
Session-independent policies are frequently provided to a UA by the
following two network domains: the domain a user registers at (i.e.,
the domain in the address-of-record (AoR)) and the domain the UA is
physically connected to. The AoR-domain may, for example, provide
policies that are needed for services the user has subscribed. The
domain that provides the physical network connection may hand have
policies helping to maintain the functionality of the network, e.g.,
by limiting the bandwidth a single UA can consume. A UA can
subscribe to these two domains without having previous knowledge
about the policy server URI by using the profile-types "user" and
"local" defined in [7]. Since a UA has no way of knowing whether a
domain has a policy server, it SHOULD attempt to subscribe to these
two profile-types if the following events occur:
o One (or more) AoRs registered by the UA change. This might be due
to a change in the AoR of an existing user or a user is added
to/removed from the set of users of a device. The UA SHOULD
subscribe each AoR that as changed using the "user" as well as the
"local" profile-type. It SHOULD terminate all subscriptions for
AoRs not in use any more.
o The domain the UA is connected to changes. The UA SHOULD create a
subscription for each AoR it maintains using the "local"
profile-type. It SHOULD terminate all existing subscriptions for
the "local" profile-type.
If a subscriber is unable to successfully establish a subscription,
it SHOULD NOT attempt to re-try this particular subscription at a
later point, unless one of the above events occurs again. This is to
limit the number of SUBSCRIBE requests sent within domains that do
not support session-policies.
A subscriber compliant to this specification MUST indicate its
support for session policies by adding the MIME types of supported
session policy formats to the Accept header of the SUBSCRIBE request.
This specification defines the new MIME type
"application/session-policy+xml". All UAs compliant to this
specification MUST support this MIME type and MUST include it in the
Accept header of SUBSCRIBE requests.
OPEN ISSUE: The subscriber also needs to be able to indicate
support for a certain XML schema, i.e., an XML namespace!
A subscriber may receive a 406 in response to a SUBSCRIBE request.
This indicates that the notifier requires the support of a session
policy format that was not in the Accept header of the SUBSCRIBE
request. This means that the notifier has session policies that are
required in the network but not supported by the subscriber. As a
consequence, the subscriber may experience difficulties when setting
Hilt, et al. Expires April 24, 2005 [Page 5]
Internet-Draft Session-Independent Policies October 2004
up a session without these policies.
3.2 Notifier Behavior
A network may have session policies in place that must be supported
by a UA. UAs that do not support these policies may experience
problems when setting up a session. For example, a network may have
a policy enabling firewall traversal.
A UA lists all the session policy formats it supports in the Accept
header of a SUBSCRIBE request. If the notifier receives a SUBSCRIBE
request that does not contain the MIME types of all policy formats
required in the network, it MUST reject the request with a 406
response. A policy format is required, if the network has policy
documents in this format and these documents contain constraints that
must be applied by the UA. The notifier SHOULD NOT return a 406 if
an unsupported format only contains optional policies.
4. Session Policy Schemas
The schemas for session policies defined in this document extend the
schema for user agent profile data sets [8]. This simplifies the
processing of policy data and other user agent configuration data and
enables them to share the delivery mechanisms and to co-exist in the
same instance documents.
This draft specifies a general schema for session policies, which
covers the common aspects of session policies. It acts as a
framework schema for session policies. Based on this framework,
specific session policy schemas can be defined. This draft defines
policy schemas for media policies, protocol policies and media
routing policies. It is expected that other session policy schemas
will be defined in the future.
This specification makes use of XML namespaces. The namespace URIs
for schemas defined in this specification are URNs [5], using the
namespace identifier 'ietf' defined by RFC 2648 [6] and extended by
[4].
4.1 Specifying Constraints
Policies are defined by using the constraint elements defined in [8].
The specification of constraints is centered around the concept of a
working profile. A working profile is the set of properties a UA is
actually using during operation. The following sections defines how
session policies constraints influence the working profile of a UA.
Hilt, et al. Expires April 24, 2005 [Page 6]
Internet-Draft Session-Independent Policies October 2004
forbid - the values of elements contained inside of a forbid element
MUST NOT be used in the working profile. If a policy element
value in a forbid element is in the working profile, it MUST be
removed. For example, the forbid element may contain the name of
codecs that are prohibited in the local local network. The forbid
element can contain empty policy elements. This means that all
possible values for that element MUST be removed from the working
profile. For example, a element in the forbid container
indicates that all codecs must be removed from the working
profile. Specific codecs can be added to the working profile
again by listing them in a set_all, set_one or set_any element
inside the same the same property_set. Policy element values that
were removed in one property_set can't be added again by a
different property_set. This would constitute a policy conflict
between the two property_sets.
set_all - the set_all element contains policy element values that
MUST be present in the working profile of a UA. They MUST be
added to the working profile if they are supported by the UA and
not forbidden by another property_set. A policy conflict occurs
if they can't be added to the working profile.
set_one - the semantics of the set_one element is similar to the
set_all element except that the set_one element may contain
alternative policy element and the UA MUST apply the first policy
element that does not cause conflicts.
set_any - the set_any element contains policy element values that
SHOULD be added to the working profile if they are supported by
the UA and do not conflict with other policies.
A UA MUST process the forbid element before processing the set_all,
set_one, and set_any elements within a property_set.
Note: The structure of the schema and the way constraints are
specified has changed significantly since the last revision. The
goal was to better align with the profile data set framework and
to simplify the specification of policies.
4.2 Extensibility
Other elements from different namespaces MAY be present within an
element of a policy schema for the purposes of extensibility;
elements or attributes from unknown namespaces MUST be ignored.
4.3 General Policy Schema
The general session policy schema defines the elements and attributes
that are common to all session policy schemas. All session policy
documents MUST import this schema.
Hilt, et al. Expires April 24, 2005 [Page 7]
Internet-Draft Session-Independent Policies October 2004
The namespace of the general session policy schema is:
urn:ietf:params:xml:ns:sessionpolicy
This document specifies a MIME type for policy instance documents.
The new MIME type is:
application/session-policy+xml
4.3.1 Elements and Attributes
The following elements are defined in the session policy schema.
They are optional elements that MAY appear once inside a settings
element [8]. They do not refer to a particular property set and
therefore appear outside of a property_set element.
4.3.1.1 Version
The version element allows the recipient to properly order setting
instances. Versions start at 0, and increment by one for each new
document sent to a subscriber. Versions are scoped within a
subscription. Versions MUST be representable using a 32 bit integer.
4.3.1.2 Domain
The domain element contains a URI that identifies the domain to which
this setting instance belongs to.
4.3.1.3 Entity
The entity element contains a URI that identifies the user or device
whose policy information is reported in this setting instance. If
this element is not present, the setting applies to all entities on a
device.
4.3.1.4 Include Target
The includeTarget element contains a URI that identifies the remote
target of a dialog. A setting which in which this element is
contained applies to all dialogs which have this URI as their remote
target. Missing URI elements MUST match to any value. For example,
a URI without a user name matches to all users in this domain.
4.3.1.5 Exclude Target
The excludeTarget element contains a URI that identifies the remote
target of a dialog. The setting in which this element is contained
applies to all dialogs which do not have this URI as the remote
target. Missing URI elements MUST match to any value. For example,
a URI without a user name matches to all users in this domain.
Hilt, et al. Expires April 24, 2005 [Page 8]
Internet-Draft Session-Independent Policies October 2004
4.3.1.6 Info
The info element provides a short textual description of the setting
that should be intelligible to the human user.
4.4 Media Policy Schema
The media policy schema defines the elements and attributes needed to
describe the characteristics of media streams.
The namespace of the media policy schema is:
urn:ietf:params:xml:ns:mediapolicy
4.4.1 Elements and Attributes
The following elements and attributes are defined in the media policy
schema.
4.4.1.1 Media
The media element defines a media policy. A media element MAY appear
zero, one or multiple times in a constraint element.
The media element has the following sub-elements.
4.4.1.1.1 Max Bandwidth
The maxBandwidth element defines the maximum bandwidth in kilobits
per second an entity can count on.
The maxBandwidth element is optional and can only appear once within
a media element. All subsequent instances MUST be ignored. It has
no meaning and MUST be ignored if it is inside a forbid constraint.
4.4.1.1.2 Maxno Streams
The maxnoStreams element defines the maximum number of streams an
entity is allowed to handle at the same time.
The maxnoStreams element is optional and can only appear once within
a media element. All subsequent instances MUST be ignored. It has
no meaning and MUST be ignored if it is inside a forbid constraint.
4.4.1.1.3 Maxno Sessions
The maxnoSessions element defines the maximum number of sessions an
entity is allowed to establish at the same time.
Hilt, et al. Expires April 24, 2005 [Page 9]
Internet-Draft Session-Independent Policies October 2004
The maxnoSessions element is optional and can only appear once within
a media element. All subsequent instances MUST be ignored. It has
no meaning and MUST be ignored if it is inside a forbid constraint.
4.4.1.1.4 Maxno Streams Session
The maxnoStreamsSession element defines the maximum number of streams
an entity is allowed to establish within a session.
The maxnoStreamsSession element is optional and can only appear once
within a media element. All subsequent instances MUST be ignored.
It has no meaning and MUST be ignored if it is inside a forbid
constraint.
4.4.1.1.5 Max Bandwidth Session
The maxBandwidthSession element defines the maximum bandwidth in
kilobits per second available to the entity within one session.
The maxBandwidthSession element is optional and can only appear once
within a media element. All subsequent instances MUST be ignored.
It has no meaning and MUST be ignored if it is inside a forbid
constraint.
4.4.1.1.6 Max Bandwidth Stream
The maxBandwidthStream element defines the maximum bandwidth in
kilobits per second available to the entity for one stream.
The maxBandwidthStream element is optional and can only appear once
within a media element. All subsequent instances MUST be ignored.
It has no meaning and MUST be ignored if it is inside a forbid
constraint.
4.4.1.1.7 Type
The type element identifies a media type. The value of this element
MUST be the name of a IANA registered media type (see [2]), such as
"audio", "video", "text", or "application".
The type element is optional and MAY appear multiple times within a
media element.
4.4.1.1.8 Codec
The codec element identifies a media codec. The value of this
element MUST be the name of a registered MIME type for a encoding
(see [2]), such as "PCMA", "G729", or "H263".
Hilt, et al. Expires April 24, 2005 [Page 10]
Internet-Draft Session-Independent Policies October 2004
The codec element is optional and MAY appear multiple times within a
media element.
4.4.1.1.9 Transport
The transport element identifies a transport protocol for media
streams. The value of this element MUST be the name of a IANA
registered protocol (see [2]), such as "udp", "RTP/AVP", or
"RTP/SAVP".
The transport element has an optional attribute:
type - the type attribute identifies the media type to which the
transport element applies to. The value of this attribute MUST be
a legal type element value.
The transport element is optional and MAY appear multiple times
within a media element.
4.4.1.1.10 Direction
The direction element identifies a media stream direction. The value
of this element MUST be "sendrec", "sendonly", or "recvonly".
The direction element has an optional attribute:
type - the type attribute identifies the media type to which the
direction element applies to. The value of this attribute MUST be
a legal type element value.
The direction element is optional and MAY appear multiple times
within a media element.
4.4.2 Conflict Resolution
The UA SHOULD alert the user in case a media policy conflicts with
another policy.
OPEN ISSUE: Can we be more specific what to do if a conflict
occurs in the general case?
4.4.3 Example
The following example describes a policy that limits the number of
streams a UA can create to 4. It only allows audio streams and
prohibits the use of the PCMU and PCMA codecs. It requires the UA to
support RTP/AVP as a transport and optionally allows RTP/SAVP but no
other transport protocols. Audio streams can only be sent.
Hilt, et al. Expires April 24, 2005 [Page 11]
Internet-Draft Session-Independent Policies October 2004
PCMU
PCMA
4
audio
RTP/AVP
sendonly
RTP/SAVP
4.5 Protocol Policy Schema
The protocol policy schema defines the elements and attributes needed
to describe protocol characteristics.
The namespace of the protocol policy schema is:
urn:ietf:params:xml:ns:protocolpolicy
4.5.1 Elements and Attributes
The following elements and attributes are defined in the protocol
policy schema.
4.5.1.1 Protocol
The protocol element defines a protocol policy. Each protocols
element contains the policy related to the usage of a particular
protocol. A protocol element MAY appear zero, one or multiple times
in a constraint element.
The protocol element has an optional attribute:
Hilt, et al. Expires April 24, 2005 [Page 12]
Internet-Draft Session-Independent Policies October 2004
name - the name attribute identifies the name of the protocol, to
which the policy of the protocol element is referring to.
Each protocol element has the following sub-elements.
4.5.1.1.1 Proxy
The proxy element identifies the URI of a proxy. The proxy values
MUST be used to create a route set.
The proxy element is optional and may appear multiple times inside a
protocol element. Multiple appearances of this element are ordered.
It has no meaning and MUST be ignored if it is inside a forbid
constraint.
4.5.1.1.2 Method
The method element identifies a method. The value of this element
MUST be the name of a valid method within the protocol identified by
in the protocol element.
The method element is optional and MAY appear multiple times within a
protocol element.
4.5.1.1.3 Option Tag
The optionTag element identifies an optionTag. The value of this
element MUST be the name of an option tag registered for the protocol
identified by in the protocol element in the IANA registry.
The optionTag element is optional and MAY appear multiple times
within a protocol element.
4.5.1.1.4 Transport
The transport element identifies a transport protocol for the
protocol identified by the protocol element. The value of this
element MUST identify a valid transport for the given protocol. For
SIP, the value MUST a value that is registered for the transport
header field parameter, such as "TCP", "UDP", or "SCTP".
The transport element is optional and MAY appear multiple times
within a protocol element.
4.5.1.1.5 Body-disposition
The body-disposition element identifies a body-disposition. The
value of this element MUST be a name registered in the IANA registry
Hilt, et al. Expires April 24, 2005 [Page 13]
Internet-Draft Session-Independent Policies October 2004
for Content-Dispositions.
The body-disposition element is optional and MAY appear multiple
times within a protocol element.
4.5.1.1.6 Body-format Element
A body-format element identifies a body-format. The value of this
element MUST be the name of a MIME type registered in the IANA
registry.
The body-format element has an optional attribute:
body-disposition - the body-disposition attribute identifies the body
disposition used with this body-format. The value of this
attribute MUST be a value legal for the body-disposition element.
The body-format element is optional and MAY appear multiple times
within a protocol element.
4.5.1.1.7 Body-encryption
The body-encryption indicates whether or not encryption is allowed
for a particular body disposition. This element MUST NOT have a
value.
The body-encryption element has the following optional attributes:
body-disposition - the body-disposition attribute identifies the body
disposition this encryption setting applies to. The value of this
attribute MUST be a value legal for the body-disposition element.
body-format - the body-format attribute identifies the body format to
which this encryption setting applies to. The value of this
attribute MUST be a value legal for the body-format element.
The body-encryption element is optional and MAY appear multiple times
within a protocol element.
4.5.2 Conflict Resolution
The UA SHOULD alert the user in case a protocol policy conflicts with
another policy.
OPEN ISSUE: Can we be more specific what to do if a conflict
occurs in the general case?
Hilt, et al. Expires April 24, 2005 [Page 14]
Internet-Draft Session-Independent Policies October 2004
4.5.3 Example
The following example describes a policy saying that use of the
MESSAGE method is prohibited in the network. It states that the use
of the option tag 100rel is required and preconditions are allowed.
Other option tags are not allowed in the network. The only MIME type
for message bodies allowed is "application/sdp" with the
body-disposition "session". Encryption is not allowed for bodies
with body-disposition "session".
MESSAGE
100rel
application/sdp
preconditions
4.6 Media Routing Policy Schema
The media routing schema defines the elements and attributes needed
to describe address and ports of a media stream. This schema can be
used to route the media stream through a NAT, a firewall or a media
relay.
The namespace of the protocol policy schema is:
urn:ietf:params:xml:ns:mediaroutingpolicy
OPEN ISSUE: This schema probably needs to go into a separate draft
along with some text about the mechanics.
Hilt, et al. Expires April 24, 2005 [Page 15]
Internet-Draft Session-Independent Policies October 2004
4.6.1 Elements and Attributes
The following elements and attributes are defined in the protocol
policy schema.
4.6.1.1 Media Routing
The mediaRouting element defines a media routing policy. A media
routing element MAY appear zero, one or multiple times in a
constraint element.
Each protocol element has the following sub-elements.
4.6.1.1.1 Address
The address element contains the destination address of a media
stream, i.e., the address that is contained in an SDP announcement
for a media stream.
The address element MUST have the following attribute:
direction - the direction attribute identifies the direction of a
media stream. The value of this element MUST be "send" or "recv".
It determines whether the element applies to the session
description offer or answer.
The address element is optional and MAY appear at most once within a
media routing element.
4.6.1.1.2 Port
The port element identifies the destination port of a media stream,
i.e., the address that is contained in an SDP announcement for a
media stream.
The address element MUST have the following attribute:
direction - the direction attribute identifies the direction of a
media stream. The value of this element MUST be "send" or "recv".
It determines whether the element applies to the session
description offer or answer.
The port element is optional and MAY appear multiple times within a
media routing element.
4.6.1.1.3 Port Range
The portRange element identifies a range of ports that apply to the
Hilt, et al. Expires April 24, 2005 [Page 16]
Internet-Draft Session-Independent Policies October 2004
destination of a media stream. This can, for example, be used to
determine the range of ports that can be used for media streams in
SDP announcements.
The address element MUST have the following attribute:
direction - the direction attribute identifies the direction of a
media stream. The value of this element MUST be "send" or "recv".
It determines whether the element applies to the session
description offer or answer.
The portRange element is optional and MAY appear multiple times
within a media routing element. It has the following two
sub-elements.
4.6.1.1.3.1 Start Port
The startPort element identifies the lowest port number that belongs
to the port range.
The startPort element MUST appear exactly once inside a port range
element.
4.6.1.1.3.2 End Port
The endPort element identifies the highest port number that belongs
to the port range.
The endPort element MUST appear exactly once inside a port range
element.
4.6.2 Conflict Resolution
The UA SHOULD alert the user in case a media route policy conflicts
with another policy.
OPEN ISSUE: Can we be more specific what to do if a conflict
occurs in the general case?
4.6.3 Example
The following example describes a policy that instructs the UA to use
the address 123.124.125.126 and a port in the range of 8000 - 9000 in
the session descriptions it creates. This information can assist a
UA, for example, to traverse a NAT.
Hilt, et al. Expires April 24, 2005 [Page 17]
Internet-Draft Session-Independent Policies October 2004
123.124.125.126
8000
9000
5. Schema Definitions
5.1 General Policy Schema
[TBD.]
5.2 Media Policy Schema
5.3 Protocol Policy Schema
Hilt, et al. Expires April 24, 2005 [Page 19]
Internet-Draft Session-Independent Policies October 2004
5.4 Media Routing Policy Schema
Hilt, et al. Expires April 24, 2005 [Page 21]
Internet-Draft Session-Independent Policies October 2004
6. Security Considerations
Session policy information can be sensitive information. The
protocol used to distribute it SHOULD ensure privacy, message
integrity and authentication. Furthermore, the protocol SHOULD
provide access controls which restrict who can see who else's session
policy information.
7. IANA Considerations
[TBD.]
8 References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Handley, M., Jacobson, V. and C. Perkins, "SDP: Session
Description Protocol", draft-ietf-mmusic-sdp-new-20 (work in
progress), September 2004.
[3] Hilt, V., Camarillo, G. and J. Rosenberg, "A Framework for
Session-Specific Session Policies in the Session Initiation
Protocol (SIP)", October 2004.
[4] Mealling, M., "The IETF XML Registry",
draft-mealling-iana-xmlns-registry-05 (work in progress), June
2003.
[5] Moats, R., "URN Syntax", RFC 2141, May 1997.
[6] Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
August 1999.
[7] Petrie, D., "A Framework for Session Initiation Protocol User
Agent Profile Delivery", draft-ietf-sipping-config-framework-04
(work in progress), July 2004.
[8] Petrie, D., "A Schema for Session Initiation Protocol User
Agent Profile Data Sets",
draft-petrie-sipping-profile-datasets-00 (work in progress),
July 2004.
[9] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002.
[10] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP:
Hilt, et al. Expires April 24, 2005 [Page 22]
Internet-Draft Session-Independent Policies October 2004
Session Initiation Protocol", RFC 3261, June 2002.
Authors' Addresses
Volker Hilt
Bell Labs/Lucent Technologies
101 Crawfords Corner Rd
Holmdel, NJ 07733
USA
EMail: volkerh@bell-labs.com
Gonzalo Camarillo
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
EMail: Gonzalo.Camarillo@ericsson.com
Jonathan Rosenberg
Cisco Systems
600 Lanidex Plaza
Parsippany, NJ 07054
USA
EMail: jdrosen@dynamicsoft.com
Appendix A. Acknowledgements
Many thanks to Allison Mankin for the discussions and the suggestions
for this draft.
Hilt, et al. Expires April 24, 2005 [Page 23]
Internet-Draft Session-Independent Policies October 2004
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 (2004). 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.
Hilt, et al. Expires April 24, 2005 [Page 24]