idnits 2.17.1
draft-ietf-sipping-session-indep-policy-01.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
** It looks like you're using RFC 3978 boilerplate. You should update this
to the boilerplate described in the IETF Trust License Policy document
(see https://trustee.ietf.org/license-info), which is required now.
-- Found old boilerplate from RFC 3978, Section 5.1.a on line 21.
-- Found old boilerplate from RFC 3978, Section 5.5 on line 1100.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 1077.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 1084.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 1090.
** The document seems to lack an RFC 3978 Section 5.1 IPR Disclosure
Acknowledgement.
** This document has an original RFC 3978 Section 5.4 Copyright Line,
instead of the newer IETF Trust Copyright according to RFC 4748.
** This document has an original RFC 3978 Section 5.5 Disclaimer, instead
of the newer disclaimer which includes the IETF Trust according to RFC
4748.
** The document uses RFC 3667 boilerplate or RFC 3978-like boilerplate
instead of verbatim RFC 3978 boilerplate. After 6 May 2005, submission
of drafts without verbatim RFC 3978 boilerplate is not accepted.
The following non-3978 patterns matched text found in the document.
That text should be removed or replaced:
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
becomes aware will be disclosed, in accordance with Section 6 of
BCP 79.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
== No 'Intended status' indicated for this document; assuming Proposed
Standard
== The page length should not exceed 58 lines per page, but there was 23
longer pages, the longest (page 9) being 74 lines
== It seems as if not all pages are separated by form feeds - found 0 form
feeds but 24 pages
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
** The document seems to lack separate sections for Informative/Normative
References. All references will be assumed normative when checking for
downward references.
** There are 2 instances of too long lines in the document, the longest one
being 6 characters in excess of 72.
== There are 1 instance of lines with non-RFC6890-compliant IPv4 addresses
in the document. If these are example addresses, they should be changed.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the RFC 3978 Section 5.4 Copyright Line does not
match the current year
== Line 170 has weird spacing: '...otified if...'
== The document seems to lack the recommended RFC 2119 boilerplate, even if
it appears to use RFC 2119 keywords.
(The document does seem to have the reference to RFC 2119 which the
ID-Checklist requires).
-- The document seems to lack a disclaimer for pre-RFC5378 work, but may
have content which was first submitted before 10 November 2008. If you
have contacted all the original authors and they are all willing to grant
the BCP78 rights to the IETF Trust, then this is fine, and you can ignore
this comment. If not, you may need to add the pre-RFC5378 disclaimer.
(See the Legal Provisions document at
https://trustee.ietf.org/license-info for more information.)
-- The document date (October 24, 2004) is 7117 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
== Outdated reference: A later version (-26) exists of
draft-ietf-mmusic-sdp-new-20
-- Possible downref: Non-RFC (?) normative reference: ref. '3'
** Obsolete normative reference: RFC 2141 (ref. '5') (Obsoleted by RFC 8141)
** Downref: Normative reference to an Informational RFC: RFC 2648 (ref. '6')
== Outdated reference: A later version (-18) exists of
draft-ietf-sipping-config-framework-04
== Outdated reference: A later version (-05) exists of
draft-petrie-sipping-profile-datasets-00
** Obsolete normative reference: RFC 3265 (ref. '9') (Obsoleted by RFC 6665)
-- Possible downref: Non-RFC (?) normative reference: ref. '10'
Summary: 10 errors (**), 0 flaws (~~), 10 warnings (==), 9 comments (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Session Initiation Proposal V. Hilt
3 Investigation Working Group Bell Labs/Lucent Technologies
4 Internet-Draft G. Camarillo
5 Expires: April 24, 2005 Ericsson
6 J. Rosenberg
7 Cisco Systems
8 October 24, 2004
10 Session-Independent Session Initiation Protocol (SIP) Policies -
11 Mechanism and Policy Schema
12 draft-ietf-sipping-session-indep-policy-01
14 Status of this Memo
16 This document is an Internet-Draft and is subject to all provisions
17 of section 3 of RFC 3667. By submitting this Internet-Draft, each
18 author represents that any applicable patent or other IPR claims of
19 which he or she is aware have been or will be disclosed, and any of
20 which he or she become aware will be disclosed, in accordance with
21 RFC 3668.
23 Internet-Drafts are working documents of the Internet Engineering
24 Task Force (IETF), its areas, and its working groups. Note that
25 other groups may also distribute working documents as
26 Internet-Drafts.
28 Internet-Drafts are draft documents valid for a maximum of six months
29 and may be updated, replaced, or obsoleted by other documents at any
30 time. It is inappropriate to use Internet-Drafts as reference
31 material or to cite them other than as "work in progress."
33 The list of current Internet-Drafts can be accessed at
34 http://www.ietf.org/ietf/1id-abstracts.txt.
36 The list of Internet-Draft Shadow Directories can be accessed at
37 http://www.ietf.org/shadow.html.
39 This Internet-Draft will expire on April 24, 2005.
41 Copyright Notice
43 Copyright (C) The Internet Society (2004).
45 Abstract
47 This draft specifies an XML schema for profile data for SIP
48 session-policies. It defines a delivery mechanism for SIP
49 session-policies that are independent of a specific SIP session.
51 Table of Contents
53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
54 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
55 3. Session-Independent Policy Mechanism . . . . . . . . . . . . . 4
56 3.1 Subscriber Behavior . . . . . . . . . . . . . . . . . . . 4
57 3.2 Notifier Behavior . . . . . . . . . . . . . . . . . . . . 6
58 4. Session Policy Schemas . . . . . . . . . . . . . . . . . . . . 6
59 4.1 Specifying Constraints . . . . . . . . . . . . . . . . . . 6
60 4.2 Extensibility . . . . . . . . . . . . . . . . . . . . . . 7
61 4.3 General Policy Schema . . . . . . . . . . . . . . . . . . 7
62 4.3.1 Elements and Attributes . . . . . . . . . . . . . . . 8
63 4.4 Media Policy Schema . . . . . . . . . . . . . . . . . . . 9
64 4.4.1 Elements and Attributes . . . . . . . . . . . . . . . 9
65 4.4.2 Conflict Resolution . . . . . . . . . . . . . . . . . 11
66 4.4.3 Example . . . . . . . . . . . . . . . . . . . . . . . 11
67 4.5 Protocol Policy Schema . . . . . . . . . . . . . . . . . . 12
68 4.5.1 Elements and Attributes . . . . . . . . . . . . . . . 12
69 4.5.2 Conflict Resolution . . . . . . . . . . . . . . . . . 14
70 4.5.3 Example . . . . . . . . . . . . . . . . . . . . . . . 15
71 4.6 Media Routing Policy Schema . . . . . . . . . . . . . . . 15
72 4.6.1 Elements and Attributes . . . . . . . . . . . . . . . 16
73 4.6.2 Conflict Resolution . . . . . . . . . . . . . . . . . 17
74 4.6.3 Example . . . . . . . . . . . . . . . . . . . . . . . 17
75 5. Schema Definitions . . . . . . . . . . . . . . . . . . . . . . 18
76 5.1 General Policy Schema . . . . . . . . . . . . . . . . . . 18
77 5.2 Media Policy Schema . . . . . . . . . . . . . . . . . . . 18
78 5.3 Protocol Policy Schema . . . . . . . . . . . . . . . . . . 19
79 5.4 Media Routing Policy Schema . . . . . . . . . . . . . . . 20
80 6. Security Considerations . . . . . . . . . . . . . . . . . . . 22
81 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
82 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 23
83 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22
84 A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 23
85 Intellectual Property and Copyright Statements . . . . . . . . 24
87 1. Introduction
89 Some domains have policies in place, which impact the sessions
90 established using the Session Initiation Protocol (SIP) [10]. These
91 policies are often needed to support the network infrastructure or
92 the execution of services. For example, wireless networks usually
93 have limited resources for media traffic. During periods of high
94 activity, a wireless network provider may want to restrict codec
95 usage on the network to lower rate codecs.
97 In another example, a SIP user agent is using a network which
98 connects to the public Internet through a firewall at the network
99 edge. The provider would like to tell the user agent to direct the
100 media streams to the appropriate open ip/ports on that firewall.
101 Knowing this policy enables these user agents to setup sessions with
102 user agents on the public Internet.
104 In a third example, a domain A has a limited bandwidth pipe to
105 another domain B. The pipe is realized through two routers that are
106 managed. Domain A would like to direct each call to one of the
107 routers based on their capacity. With session policies, the domain
108 can inform the user agent about the route with the most capacity
109 available.
111 Domains sometimes enforce policies they have in place. For example,
112 a domain might have a configuration in which all packets containing a
113 certain audio codec are dropped. Unfortunately, enforcement
114 mechanisms usually do not inform the user about the policies they are
115 enforcing and silently keep the user from doing anything against
116 them. This may lead to the malfunctioning of devices that is
117 incomprehensible to the user. With session policies, the user knows
118 about the restricted codecs and can use a different codec or simply
119 connect to a domain with less stringent policies. Session policies
120 provide an important combination of consent coupled with enforcement.
121 That is, the user becomes aware of the policy and needs to act on it,
122 but the provider still retains the right to enforce the policy.
124 Some policies are created specifically for a certain session. Such
125 policies usually require that the user agent provides information
126 about the session to the network and receives policies that are
127 tailored to this session. Session-specific policies can be set up
128 using the framework for session-specific policies [3].
130 Session policies are often independent of a certain session and
131 generally apply to the sessions that are set up by a user agent. In
132 principle, these policies could also be set up on a
133 session-to-session basis. However, it is much more efficient to
134 enable user agents to obtain the policies relevant for them and to
135 inform the user agents about changes in these policies. This draft
136 defines a mechanism for delivering session-independent policies to
137 user agents.
139 This draft also defines XML schemas for session policies. It defines
140 a general session policy schema acting as a framework for session
141 policies. It also defines schemas for media policies, protocol
142 policies and media routing policies. Policy instance documents can
143 be delivered to user agents as session-independent policies using the
144 mechanisms below or as session-specific policies [3].
146 Note: The difference between session-independent and
147 session-specific policies needs more discussion here.
149 2. Terminology
151 In this document, the key words "MUST", "MUST NOT", "REQUIRED",
152 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
153 RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
154 described in BCP 14, [1] and indicate requirement levels for
155 compliant implementations.
157 3. Session-Independent Policy Mechanism
159 This draft defines a mechanism for the delivery of
160 session-independent policies to UAs. Session-independent policies
161 can be part of the device configuration and reside on the same
162 configuration server. They can be delivered to UAs in conjunction
163 with the device configuration. Session-independent policies may also
164 be independent of other configuration information and reside on
165 different servers.
167 This mechanism enables UAs to indicate their support for session
168 policies and to receive policies from different policy servers. A UA
169 subscribes to session-independent policies. It receives these
170 policies when the subscription is established and is notified if
171 updates to session policies become available. The
172 session-independent policy mechanism is based on the Framework for
173 SIP User Agent Profile Delivery [7] and RFC3265 [9].
175 3.1 Subscriber Behavior
177 A UA can express interest in session-independent policies by
178 subscribing to session policies a policy server. If the UA has
179 already received the URIs of all relevant session policy documents
180 (e.g., through configuration) it SHOULD use these URIs to create a
181 subscription as defined in [7].
183 Session-independent policies are frequently provided to a UA by the
184 following two network domains: the domain a user registers at (i.e.,
185 the domain in the address-of-record (AoR)) and the domain the UA is
186 physically connected to. The AoR-domain may, for example, provide
187 policies that are needed for services the user has subscribed. The
188 domain that provides the physical network connection may hand have
189 policies helping to maintain the functionality of the network, e.g.,
190 by limiting the bandwidth a single UA can consume. A UA can
191 subscribe to these two domains without having previous knowledge
192 about the policy server URI by using the profile-types "user" and
193 "local" defined in [7]. Since a UA has no way of knowing whether a
194 domain has a policy server, it SHOULD attempt to subscribe to these
195 two profile-types if the following events occur:
197 o One (or more) AoRs registered by the UA change. This might be due
198 to a change in the AoR of an existing user or a user is added
199 to/removed from the set of users of a device. The UA SHOULD
200 subscribe each AoR that as changed using the "user" as well as the
201 "local" profile-type. It SHOULD terminate all subscriptions for
202 AoRs not in use any more.
203 o The domain the UA is connected to changes. The UA SHOULD create a
204 subscription for each AoR it maintains using the "local"
205 profile-type. It SHOULD terminate all existing subscriptions for
206 the "local" profile-type.
208 If a subscriber is unable to successfully establish a subscription,
209 it SHOULD NOT attempt to re-try this particular subscription at a
210 later point, unless one of the above events occurs again. This is to
211 limit the number of SUBSCRIBE requests sent within domains that do
212 not support session-policies.
214 A subscriber compliant to this specification MUST indicate its
215 support for session policies by adding the MIME types of supported
216 session policy formats to the Accept header of the SUBSCRIBE request.
217 This specification defines the new MIME type
218 "application/session-policy+xml". All UAs compliant to this
219 specification MUST support this MIME type and MUST include it in the
220 Accept header of SUBSCRIBE requests.
222 OPEN ISSUE: The subscriber also needs to be able to indicate
223 support for a certain XML schema, i.e., an XML namespace!
225 A subscriber may receive a 406 in response to a SUBSCRIBE request.
226 This indicates that the notifier requires the support of a session
227 policy format that was not in the Accept header of the SUBSCRIBE
228 request. This means that the notifier has session policies that are
229 required in the network but not supported by the subscriber. As a
230 consequence, the subscriber may experience difficulties when setting
231 up a session without these policies.
233 3.2 Notifier Behavior
235 A network may have session policies in place that must be supported
236 by a UA. UAs that do not support these policies may experience
237 problems when setting up a session. For example, a network may have
238 a policy enabling firewall traversal.
240 A UA lists all the session policy formats it supports in the Accept
241 header of a SUBSCRIBE request. If the notifier receives a SUBSCRIBE
242 request that does not contain the MIME types of all policy formats
243 required in the network, it MUST reject the request with a 406
244 response. A policy format is required, if the network has policy
245 documents in this format and these documents contain constraints that
246 must be applied by the UA. The notifier SHOULD NOT return a 406 if
247 an unsupported format only contains optional policies.
249 4. Session Policy Schemas
251 The schemas for session policies defined in this document extend the
252 schema for user agent profile data sets [8]. This simplifies the
253 processing of policy data and other user agent configuration data and
254 enables them to share the delivery mechanisms and to co-exist in the
255 same instance documents.
257 This draft specifies a general schema for session policies, which
258 covers the common aspects of session policies. It acts as a
259 framework schema for session policies. Based on this framework,
260 specific session policy schemas can be defined. This draft defines
261 policy schemas for media policies, protocol policies and media
262 routing policies. It is expected that other session policy schemas
263 will be defined in the future.
265 This specification makes use of XML namespaces. The namespace URIs
266 for schemas defined in this specification are URNs [5], using the
267 namespace identifier 'ietf' defined by RFC 2648 [6] and extended by
268 [4].
270 4.1 Specifying Constraints
272 Policies are defined by using the constraint elements defined in [8].
273 The specification of constraints is centered around the concept of a
274 working profile. A working profile is the set of properties a UA is
275 actually using during operation. The following sections defines how
276 session policies constraints influence the working profile of a UA.
278 forbid - the values of elements contained inside of a forbid element
279 MUST NOT be used in the working profile. If a policy element
280 value in a forbid element is in the working profile, it MUST be
281 removed. For example, the forbid element may contain the name of
282 codecs that are prohibited in the local local network. The forbid
283 element can contain empty policy elements. This means that all
284 possible values for that element MUST be removed from the working
285 profile. For example, a element in the forbid container
286 indicates that all codecs must be removed from the working
287 profile. Specific codecs can be added to the working profile
288 again by listing them in a set_all, set_one or set_any element
289 inside the same the same property_set. Policy element values that
290 were removed in one property_set can't be added again by a
291 different property_set. This would constitute a policy conflict
292 between the two property_sets.
293 set_all - the set_all element contains policy element values that
294 MUST be present in the working profile of a UA. They MUST be
295 added to the working profile if they are supported by the UA and
296 not forbidden by another property_set. A policy conflict occurs
297 if they can't be added to the working profile.
298 set_one - the semantics of the set_one element is similar to the
299 set_all element except that the set_one element may contain
300 alternative policy element and the UA MUST apply the first policy
301 element that does not cause conflicts.
302 set_any - the set_any element contains policy element values that
303 SHOULD be added to the working profile if they are supported by
304 the UA and do not conflict with other policies.
306 A UA MUST process the forbid element before processing the set_all,
307 set_one, and set_any elements within a property_set.
309 Note: The structure of the schema and the way constraints are
310 specified has changed significantly since the last revision. The
311 goal was to better align with the profile data set framework and
312 to simplify the specification of policies.
314 4.2 Extensibility
316 Other elements from different namespaces MAY be present within an
317 element of a policy schema for the purposes of extensibility;
318 elements or attributes from unknown namespaces MUST be ignored.
320 4.3 General Policy Schema
322 The general session policy schema defines the elements and attributes
323 that are common to all session policy schemas. All session policy
324 documents MUST import this schema.
326 The namespace of the general session policy schema is:
327 urn:ietf:params:xml:ns:sessionpolicy
329 This document specifies a MIME type for policy instance documents.
330 The new MIME type is:
331 application/session-policy+xml
333 4.3.1 Elements and Attributes
335 The following elements are defined in the session policy schema.
336 They are optional elements that MAY appear once inside a settings
337 element [8]. They do not refer to a particular property set and
338 therefore appear outside of a property_set element.
340 4.3.1.1 Version
342 The version element allows the recipient to properly order setting
343 instances. Versions start at 0, and increment by one for each new
344 document sent to a subscriber. Versions are scoped within a
345 subscription. Versions MUST be representable using a 32 bit integer.
347 4.3.1.2 Domain
349 The domain element contains a URI that identifies the domain to which
350 this setting instance belongs to.
352 4.3.1.3 Entity
354 The entity element contains a URI that identifies the user or device
355 whose policy information is reported in this setting instance. If
356 this element is not present, the setting applies to all entities on a
357 device.
359 4.3.1.4 Include Target
361 The includeTarget element contains a URI that identifies the remote
362 target of a dialog. A setting which in which this element is
363 contained applies to all dialogs which have this URI as their remote
364 target. Missing URI elements MUST match to any value. For example,
365 a URI without a user name matches to all users in this domain.
367 4.3.1.5 Exclude Target
369 The excludeTarget element contains a URI that identifies the remote
370 target of a dialog. The setting in which this element is contained
371 applies to all dialogs which do not have this URI as the remote
372 target. Missing URI elements MUST match to any value. For example,
373 a URI without a user name matches to all users in this domain.
375 4.3.1.6 Info
377 The info element provides a short textual description of the setting
378 that should be intelligible to the human user.
380 4.4 Media Policy Schema
382 The media policy schema defines the elements and attributes needed to
383 describe the characteristics of media streams.
385 The namespace of the media policy schema is:
386 urn:ietf:params:xml:ns:mediapolicy
388 4.4.1 Elements and Attributes
390 The following elements and attributes are defined in the media policy
391 schema.
393 4.4.1.1 Media
395 The media element defines a media policy. A media element MAY appear
396 zero, one or multiple times in a constraint element.
398 The media element has the following sub-elements.
400 4.4.1.1.1 Max Bandwidth
402 The maxBandwidth element defines the maximum bandwidth in kilobits
403 per second an entity can count on.
405 The maxBandwidth element is optional and can only appear once within
406 a media element. All subsequent instances MUST be ignored. It has
407 no meaning and MUST be ignored if it is inside a forbid constraint.
409 4.4.1.1.2 Maxno Streams
411 The maxnoStreams element defines the maximum number of streams an
412 entity is allowed to handle at the same time.
414 The maxnoStreams element is optional and can only appear once within
415 a media element. All subsequent instances MUST be ignored. It has
416 no meaning and MUST be ignored if it is inside a forbid constraint.
418 4.4.1.1.3 Maxno Sessions
420 The maxnoSessions element defines the maximum number of sessions an
421 entity is allowed to establish at the same time.
423 The maxnoSessions element is optional and can only appear once within
424 a media element. All subsequent instances MUST be ignored. It has
425 no meaning and MUST be ignored if it is inside a forbid constraint.
427 4.4.1.1.4 Maxno Streams Session
429 The maxnoStreamsSession element defines the maximum number of streams
430 an entity is allowed to establish within a session.
432 The maxnoStreamsSession element is optional and can only appear once
433 within a media element. All subsequent instances MUST be ignored.
434 It has no meaning and MUST be ignored if it is inside a forbid
435 constraint.
437 4.4.1.1.5 Max Bandwidth Session
439 The maxBandwidthSession element defines the maximum bandwidth in
440 kilobits per second available to the entity within one session.
442 The maxBandwidthSession element is optional and can only appear once
443 within a media element. All subsequent instances MUST be ignored.
444 It has no meaning and MUST be ignored if it is inside a forbid
445 constraint.
447 4.4.1.1.6 Max Bandwidth Stream
449 The maxBandwidthStream element defines the maximum bandwidth in
450 kilobits per second available to the entity for one stream.
452 The maxBandwidthStream element is optional and can only appear once
453 within a media element. All subsequent instances MUST be ignored.
454 It has no meaning and MUST be ignored if it is inside a forbid
455 constraint.
457 4.4.1.1.7 Type
459 The type element identifies a media type. The value of this element
460 MUST be the name of a IANA registered media type (see [2]), such as
461 "audio", "video", "text", or "application".
463 The type element is optional and MAY appear multiple times within a
464 media element.
466 4.4.1.1.8 Codec
468 The codec element identifies a media codec. The value of this
469 element MUST be the name of a registered MIME type for a encoding
470 (see [2]), such as "PCMA", "G729", or "H263".
472 The codec element is optional and MAY appear multiple times within a
473 media element.
475 4.4.1.1.9 Transport
477 The transport element identifies a transport protocol for media
478 streams. The value of this element MUST be the name of a IANA
479 registered protocol (see [2]), such as "udp", "RTP/AVP", or
480 "RTP/SAVP".
482 The transport element has an optional attribute:
484 type - the type attribute identifies the media type to which the
485 transport element applies to. The value of this attribute MUST be
486 a legal type element value.
488 The transport element is optional and MAY appear multiple times
489 within a media element.
491 4.4.1.1.10 Direction
493 The direction element identifies a media stream direction. The value
494 of this element MUST be "sendrec", "sendonly", or "recvonly".
496 The direction element has an optional attribute:
498 type - the type attribute identifies the media type to which the
499 direction element applies to. The value of this attribute MUST be
500 a legal type element value.
502 The direction element is optional and MAY appear multiple times
503 within a media element.
505 4.4.2 Conflict Resolution
507 The UA SHOULD alert the user in case a media policy conflicts with
508 another policy.
510 OPEN ISSUE: Can we be more specific what to do if a conflict
511 occurs in the general case?
513 4.4.3 Example
515 The following example describes a policy that limits the number of
516 streams a UA can create to 4. It only allows audio streams and
517 prohibits the use of the PCMU and PCMA codecs. It requires the UA to
518 support RTP/AVP as a transport and optionally allows RTP/SAVP but no
519 other transport protocols. Audio streams can only be sent.
521
522
523
524
525 PCMU
526 PCMA
527
528
529
530
531
532 4
533 audio
534 RTP/AVP
535 sendonly
536
537
538
539
540 RTP/SAVP
541
542
543
545 4.5 Protocol Policy Schema
547 The protocol policy schema defines the elements and attributes needed
548 to describe protocol characteristics.
550 The namespace of the protocol policy schema is:
551 urn:ietf:params:xml:ns:protocolpolicy
553 4.5.1 Elements and Attributes
555 The following elements and attributes are defined in the protocol
556 policy schema.
558 4.5.1.1 Protocol
560 The protocol element defines a protocol policy. Each protocols
561 element contains the policy related to the usage of a particular
562 protocol. A protocol element MAY appear zero, one or multiple times
563 in a constraint element.
565 The protocol element has an optional attribute:
567 name - the name attribute identifies the name of the protocol, to
568 which the policy of the protocol element is referring to.
570 Each protocol element has the following sub-elements.
572 4.5.1.1.1 Proxy
574 The proxy element identifies the URI of a proxy. The proxy values
575 MUST be used to create a route set.
577 The proxy element is optional and may appear multiple times inside a
578 protocol element. Multiple appearances of this element are ordered.
579 It has no meaning and MUST be ignored if it is inside a forbid
580 constraint.
582 4.5.1.1.2 Method
584 The method element identifies a method. The value of this element
585 MUST be the name of a valid method within the protocol identified by
586 in the protocol element.
588 The method element is optional and MAY appear multiple times within a
589 protocol element.
591 4.5.1.1.3 Option Tag
593 The optionTag element identifies an optionTag. The value of this
594 element MUST be the name of an option tag registered for the protocol
595 identified by in the protocol element in the IANA registry.
597 The optionTag element is optional and MAY appear multiple times
598 within a protocol element.
600 4.5.1.1.4 Transport
602 The transport element identifies a transport protocol for the
603 protocol identified by the protocol element. The value of this
604 element MUST identify a valid transport for the given protocol. For
605 SIP, the value MUST a value that is registered for the transport
606 header field parameter, such as "TCP", "UDP", or "SCTP".
608 The transport element is optional and MAY appear multiple times
609 within a protocol element.
611 4.5.1.1.5 Body-disposition
613 The body-disposition element identifies a body-disposition. The
614 value of this element MUST be a name registered in the IANA registry
615 for Content-Dispositions.
617 The body-disposition element is optional and MAY appear multiple
618 times within a protocol element.
620 4.5.1.1.6 Body-format Element
622 A body-format element identifies a body-format. The value of this
623 element MUST be the name of a MIME type registered in the IANA
624 registry.
626 The body-format element has an optional attribute:
628 body-disposition - the body-disposition attribute identifies the body
629 disposition used with this body-format. The value of this
630 attribute MUST be a value legal for the body-disposition element.
632 The body-format element is optional and MAY appear multiple times
633 within a protocol element.
635 4.5.1.1.7 Body-encryption
637 The body-encryption indicates whether or not encryption is allowed
638 for a particular body disposition. This element MUST NOT have a
639 value.
641 The body-encryption element has the following optional attributes:
643 body-disposition - the body-disposition attribute identifies the body
644 disposition this encryption setting applies to. The value of this
645 attribute MUST be a value legal for the body-disposition element.
646 body-format - the body-format attribute identifies the body format to
647 which this encryption setting applies to. The value of this
648 attribute MUST be a value legal for the body-format element.
650 The body-encryption element is optional and MAY appear multiple times
651 within a protocol element.
653 4.5.2 Conflict Resolution
655 The UA SHOULD alert the user in case a protocol policy conflicts with
656 another policy.
658 OPEN ISSUE: Can we be more specific what to do if a conflict
659 occurs in the general case?
661 4.5.3 Example
663 The following example describes a policy saying that use of the
664 MESSAGE method is prohibited in the network. It states that the use
665 of the option tag 100rel is required and preconditions are allowed.
666 Other option tags are not allowed in the network. The only MIME type
667 for message bodies allowed is "application/sdp" with the
668 body-disposition "session". Encryption is not allowed for bodies
669 with body-disposition "session".
671
672
673
674 MESSAGE
675
676
677
678
679
680
681
682 100rel
683 application/sdp
684
685
686
687
688 preconditions
689
690
691
693 4.6 Media Routing Policy Schema
695 The media routing schema defines the elements and attributes needed
696 to describe address and ports of a media stream. This schema can be
697 used to route the media stream through a NAT, a firewall or a media
698 relay.
700 The namespace of the protocol policy schema is:
701 urn:ietf:params:xml:ns:mediaroutingpolicy
703 OPEN ISSUE: This schema probably needs to go into a separate draft
704 along with some text about the mechanics.
706 4.6.1 Elements and Attributes
708 The following elements and attributes are defined in the protocol
709 policy schema.
711 4.6.1.1 Media Routing
713 The mediaRouting element defines a media routing policy. A media
714 routing element MAY appear zero, one or multiple times in a
715 constraint element.
717 Each protocol element has the following sub-elements.
719 4.6.1.1.1 Address
721 The address element contains the destination address of a media
722 stream, i.e., the address that is contained in an SDP announcement
723 for a media stream.
725 The address element MUST have the following attribute:
727 direction - the direction attribute identifies the direction of a
728 media stream. The value of this element MUST be "send" or "recv".
729 It determines whether the element applies to the session
730 description offer or answer.
732 The address element is optional and MAY appear at most once within a
733 media routing element.
735 4.6.1.1.2 Port
737 The port element identifies the destination port of a media stream,
738 i.e., the address that is contained in an SDP announcement for a
739 media stream.
741 The address element MUST have the following attribute:
743 direction - the direction attribute identifies the direction of a
744 media stream. The value of this element MUST be "send" or "recv".
745 It determines whether the element applies to the session
746 description offer or answer.
748 The port element is optional and MAY appear multiple times within a
749 media routing element.
751 4.6.1.1.3 Port Range
753 The portRange element identifies a range of ports that apply to the
754 destination of a media stream. This can, for example, be used to
755 determine the range of ports that can be used for media streams in
756 SDP announcements.
758 The address element MUST have the following attribute:
760 direction - the direction attribute identifies the direction of a
761 media stream. The value of this element MUST be "send" or "recv".
762 It determines whether the element applies to the session
763 description offer or answer.
765 The portRange element is optional and MAY appear multiple times
766 within a media routing element. It has the following two
767 sub-elements.
769 4.6.1.1.3.1 Start Port
771 The startPort element identifies the lowest port number that belongs
772 to the port range.
774 The startPort element MUST appear exactly once inside a port range
775 element.
777 4.6.1.1.3.2 End Port
779 The endPort element identifies the highest port number that belongs
780 to the port range.
782 The endPort element MUST appear exactly once inside a port range
783 element.
785 4.6.2 Conflict Resolution
787 The UA SHOULD alert the user in case a media route policy conflicts
788 with another policy.
790 OPEN ISSUE: Can we be more specific what to do if a conflict
791 occurs in the general case?
793 4.6.3 Example
795 The following example describes a policy that instructs the UA to use
796 the address 123.124.125.126 and a port in the range of 8000 - 9000 in
797 the session descriptions it creates. This information can assist a
798 UA, for example, to traverse a NAT.
800
801
802
803 123.124.125.126
804
805 8000
806 9000
807
808
809
810
812 5. Schema Definitions
814 5.1 General Policy Schema
816 [TBD.]
818 5.2 Media Policy Schema
820
821
827
829
830
831
833
835
837
839
841
843
845
847
849
851
852
854
855
856
857
858
859
860
862
863
864
865
866
867
868
870
871
872
873
874
875
876
878
880 5.3 Protocol Policy Schema
882
883
889
891
892
893
895
897
899
901
903
905
907
908
909
911
912
913
914
916
917
918
920
921
922
923
925
927
928
929
931
933 5.4 Media Routing Policy Schema
935
936
942
944
946
947
948
950
952
954
955
957
958
959
960
962
963
964
966
967
968
970
972
973
975
977
978
979
980
981
982
984
986 6. Security Considerations
988 Session policy information can be sensitive information. The
989 protocol used to distribute it SHOULD ensure privacy, message
990 integrity and authentication. Furthermore, the protocol SHOULD
991 provide access controls which restrict who can see who else's session
992 policy information.
994 7. IANA Considerations
996 [TBD.]
998 8 References
1000 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
1001 Levels", BCP 14, RFC 2119, March 1997.
1003 [2] Handley, M., Jacobson, V. and C. Perkins, "SDP: Session
1004 Description Protocol", draft-ietf-mmusic-sdp-new-20 (work in
1005 progress), September 2004.
1007 [3] Hilt, V., Camarillo, G. and J. Rosenberg, "A Framework for
1008 Session-Specific Session Policies in the Session Initiation
1009 Protocol (SIP)", October 2004.
1011 [4] Mealling, M., "The IETF XML Registry",
1012 draft-mealling-iana-xmlns-registry-05 (work in progress), June
1013 2003.
1015 [5] Moats, R., "URN Syntax", RFC 2141, May 1997.
1017 [6] Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
1018 August 1999.
1020 [7] Petrie, D., "A Framework for Session Initiation Protocol User
1021 Agent Profile Delivery", draft-ietf-sipping-config-framework-04
1022 (work in progress), July 2004.
1024 [8] Petrie, D., "A Schema for Session Initiation Protocol User
1025 Agent Profile Data Sets",
1026 draft-petrie-sipping-profile-datasets-00 (work in progress),
1027 July 2004.
1029 [9] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
1030 Notification", RFC 3265, June 2002.
1032 [10] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
1033 Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP:
1035 Session Initiation Protocol", RFC 3261, June 2002.
1037 Authors' Addresses
1039 Volker Hilt
1040 Bell Labs/Lucent Technologies
1041 101 Crawfords Corner Rd
1042 Holmdel, NJ 07733
1043 USA
1045 EMail: volkerh@bell-labs.com
1047 Gonzalo Camarillo
1048 Ericsson
1049 Hirsalantie 11
1050 Jorvas 02420
1051 Finland
1053 EMail: Gonzalo.Camarillo@ericsson.com
1055 Jonathan Rosenberg
1056 Cisco Systems
1057 600 Lanidex Plaza
1058 Parsippany, NJ 07054
1059 USA
1061 EMail: jdrosen@dynamicsoft.com
1063 Appendix A. Acknowledgements
1065 Many thanks to Allison Mankin for the discussions and the suggestions
1066 for this draft.
1068 Intellectual Property Statement
1070 The IETF takes no position regarding the validity or scope of any
1071 Intellectual Property Rights or other rights that might be claimed to
1072 pertain to the implementation or use of the technology described in
1073 this document or the extent to which any license under such rights
1074 might or might not be available; nor does it represent that it has
1075 made any independent effort to identify any such rights. Information
1076 on the procedures with respect to rights in RFC documents can be
1077 found in BCP 78 and BCP 79.
1079 Copies of IPR disclosures made to the IETF Secretariat and any
1080 assurances of licenses to be made available, or the result of an
1081 attempt made to obtain a general license or permission for the use of
1082 such proprietary rights by implementers or users of this
1083 specification can be obtained from the IETF on-line IPR repository at
1084 http://www.ietf.org/ipr.
1086 The IETF invites any interested party to bring to its attention any
1087 copyrights, patents or patent applications, or other proprietary
1088 rights that may cover technology that may be required to implement
1089 this standard. Please address the information to the IETF at
1090 ietf-ipr@ietf.org.
1092 Disclaimer of Validity
1094 This document and the information contained herein are provided on an
1095 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1096 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
1097 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
1098 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
1099 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1100 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1102 Copyright Statement
1104 Copyright (C) The Internet Society (2004). This document is subject
1105 to the rights, licenses and restrictions contained in BCP 78, and
1106 except as set forth therein, the authors retain all their rights.
1108 Acknowledgment
1110 Funding for the RFC Editor function is currently provided by the
1111 Internet Society.