One document matched: draft-ietf-sipping-media-policy-dataset-03.txt
Differences from draft-ietf-sipping-media-policy-dataset-02.txt
SIPPING Working Group V. Hilt
Internet-Draft Bell Labs/Alcatel-Lucent
Expires: August 31, 2007 G. Camarillo
Ericsson
J. Rosenberg
Cisco Systems
February 27, 2007
A User Agent Profile Data Set for Media Policy
draft-ietf-sipping-media-policy-dataset-03
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 31, 2007.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract
This specification defines a document format for the media properties
of Session Initiation Protocol (SIP) sessions such as codecs or media
types used. This format is based on XML and extends the Schema for
SIP User Agent Profile Data Sets. It can be used to describe the
media properties of a specific SIP session and to express media-
Hilt, et al. Expires August 31, 2007 [Page 1]
Internet-Draft Media Policy Dataset February 2007
related policies that can be applied to different SIP sessions.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Design Considerations . . . . . . . . . . . . . . . . . . . . 5
3.1. Namespace . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2. Extensibility . . . . . . . . . . . . . . . . . . . . . . 6
3.3. Inheritance from the Profile Data Set . . . . . . . . . . 6
4. Session Info Documents . . . . . . . . . . . . . . . . . . . . 6
4.1. The <session-info> Element . . . . . . . . . . . . . . . . 7
4.2. Mapping SDP to Session Info Documents . . . . . . . . . . 7
5. Session Policy Documents . . . . . . . . . . . . . . . . . . . 8
5.1. The <session-policy> Element . . . . . . . . . . . . . . . 8
6. XML-encoded Session Properties . . . . . . . . . . . . . . . . 8
6.1. The <media-types> Element . . . . . . . . . . . . . . . . 8
6.1.1. The <media-type> Element . . . . . . . . . . . . . . . 9
6.2. The <codecs> Element . . . . . . . . . . . . . . . . . . . 9
6.2.1. The <codec> Element . . . . . . . . . . . . . . . . . 10
6.3. The <streams> Element . . . . . . . . . . . . . . . . . . 11
6.3.1. The <stream> Element . . . . . . . . . . . . . . . . . 11
6.4. The <max-bandwidth> Element . . . . . . . . . . . . . . . 12
6.5. The <max-session-bandwidth> Element . . . . . . . . . . . 12
6.6. The <max-stream-bandwidth> Element . . . . . . . . . . . . 13
6.7. The <media-intermediaries> Element . . . . . . . . . . . . 13
6.7.1. The <fixed-intermediary> Element . . . . . . . . . . . 14
6.7.2. The <turn-intermediary> Element . . . . . . . . . . . 15
6.8. The <qos-dscp> Element . . . . . . . . . . . . . . . . . . 15
6.9. The <local-ports> Element . . . . . . . . . . . . . . . . 16
6.10. The <context> Element . . . . . . . . . . . . . . . . . . 16
6.10.1. The <domain> Element . . . . . . . . . . . . . . . . . 16
6.10.2. The <contact> Element . . . . . . . . . . . . . . . . 17
6.10.3. The <info> Element . . . . . . . . . . . . . . . . . . 17
6.10.4. The <call-ID> Element . . . . . . . . . . . . . . . . 17
6.10.5. The <request-URI> Element . . . . . . . . . . . . . . 17
6.11. Other Session Properties . . . . . . . . . . . . . . . . . 17
7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.1. Session Policy Documents . . . . . . . . . . . . . . . . . 18
7.2. Session Information Documents . . . . . . . . . . . . . . 19
7.2.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . 19
7.2.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . 20
8. Schema Definition . . . . . . . . . . . . . . . . . . . . . . 22
9. Security Considerations . . . . . . . . . . . . . . . . . . . 26
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26
10.1. MIME Registration for application/session-policy+xml . . . 26
10.2. URN Sub-Namespace Registration for
Hilt, et al. Expires August 31, 2007 [Page 2]
Internet-Draft Media Policy Dataset February 2007
urn:ietf:params:xml:ns:mediadataset . . . . . . . . . . . 27
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 28
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28
11.1. Normative References . . . . . . . . . . . . . . . . . . . 28
11.2. Informative References . . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30
Intellectual Property and Copyright Statements . . . . . . . . . . 31
Hilt, et al. Expires August 31, 2007 [Page 3]
Internet-Draft Media Policy Dataset February 2007
1. Introduction
The Framework for Session Initiation Protocol (SIP) [17] User Agent
Profile Delivery [15] and the Framework for SIP Session Policies [14]
define mechanisms to convey session policies and configuration
information from a network server to a user agent. The media
properties of SIP sessions are an important piece of this policy/
configuration information. Media properties include, for example,
the codecs and media-types used in a session, the media-
intermediaries to be traversed or the maximum bandwidth available for
media streams.
This draft defines a document format for media properties of SIP
sessions, the Media Policy Dataset Format (MPDF). This format can be
used in two ways: first, it can be used to describe the properties of
a given SIP session (e.g. the media types and codecs used) in a
session info document. Session info documents are usually created
based on the session description of a session. Second, the MPDF
format can be used to express policies for SIP sessions in a session
policy document. In this usage, a document defines properties (e.g.
the media types) that can or can not be used in a session,
independent of a specific session description.
If used with the Framework for SIP Session Policies [14], session
info documents are used in conjunction with session-specific
policies. A session info document is created by a UA based on the
current session description and submitted to the policy server. The
policy server examines the session info document, modifies it if
necessary (e.g. by removing video streams if video is not permitted)
and returns the possibly modified session info document to the UA.
Session policy documents on the other hand are used to describe
session-independent policies that can be submitted to the UA
independent of a specific session.
The two types of MPDF documents, session information and session
policy documents, share the same set of XML elements to describe
session properties. Since the usage of these elements differs
between the two document types, they both use different root
elements: <session-info> is the root element for session information
documents and <session-policy> is the root element for session policy
documents. This enables the recipient of a document to determine the
document type and to correctly interpret the media properties
defined.
A user agent may receive multiple session policy documents from
different sources. These documents need to be merged into a single
document the user agent can work with. General rules for merging
session policy documents are described in [11]. Specific merging
Hilt, et al. Expires August 31, 2007 [Page 4]
Internet-Draft Media Policy Dataset February 2007
rules for each of the XML elements are described below.
Merging is not needed for session information documents. If used for
session-specific policies [14], a UA will contact all policy servers
for a session sequentially. It will submit the current session info
document to the first policy server, receive a policy-compliant
version in return, submit this version to the second policy server
and so on.
The MPDF format is based on XML [13] and extends the Schema for SIP
User Agent Profile Data Sets [11] by specifying a data set for media
properties. The format also satisfies the requirements of a minimal
set of media-level session policy elements as described in [16]. It
can be extended through the XML extension mechanisms if additional
media properties are needed.
A MPDF document MUST be well-formed and MUST be valid according to
schemas, including extension schemas, available to the validator and
applicable to the XML document. MPDF documents MUST be based on XML
1.0 and MUST be encoded using UTF-8.
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. Design Considerations
This section discusses design considerations for a session property
language.
3.1. Namespace
This specification makes use of XML namespaces [4]. The namespace
URIs for schemas defined in this specification are URNs [6], using
the namespace identifier 'ietf' defined by [7] and extended by [5].
The namespace URN for the MPDF schema is:
urn:ietf:params:xml:ns:mediadataset
The MIME type for the Media Policy Dataset Format is:
Hilt, et al. Expires August 31, 2007 [Page 5]
Internet-Draft Media Policy Dataset February 2007
application/session-policy+xml
3.2. Extensibility
The MPDF format is an extension of the Schema for SIP User Agent
Profile Data Sets [11]. Elements from the MPDF namespace can be used
in conjunction with elements from other extensions of this schema.
The MPDF format itself can also be extended using XML extension
mechanisms. In particular, elements from different XML namespaces
MAY be present within a MPDF document for the purposes of
extensibility; elements or attributes from unknown namespaces MUST be
ignored.
3.3. Inheritance from the Profile Data Set
The MPDF format inherits the following attributes from the Profile
Data Set Schema [11]:
o Property Access Control: 'visibility' attribute
o Policies: 'policy' and 'excluded-policy' attribute
o Unidirectional Properties: 'direction' attribute
o Preferences: 'q' attribute
The use of these attributes is defined individually for each element
in the XML format below.
The MPDF format also uses the merging algorithms that are specified
in the Profile Data Set Schema. The use of these algorithms is
defined individually for each element in the XML format below.
4. Session Info Documents
Session info documents describe key properties of a SIP session such
as the media streams used in the session. Session info documents are
typically created by a UA based on an SDP [3] session description or
an SDP offer/answer pair [9].
Session info documents are used to exchange session-specific policy
information [14] between a UA and a policy server. In this usage, a
UA creates a session info document based on its SDP description(s)
and sends this document to the policy server. The policy server
modifies this document according to the policies that apply to the
described session and returns a version of the session info document
that is compliant to all policies. For example, if video streams are
not permissible under current policies and the UA submits a session
info document that contains a video stream, the policy server will
Hilt, et al. Expires August 31, 2007 [Page 6]
Internet-Draft Media Policy Dataset February 2007
remove the video stream from the XML markup and return the modified
session info document to the UA.
Session info documents are encoded using the <session-info> element.
4.1. The <session-info> Element
The <session-info> element describes the properties of a specific SIP
session. The <session-info> MAY occur multiple times inside a
<property_set> [11] element.
The <session-info> element MUST contain one <streams> element. It
MAY contain one optional <context>, <max-bandwidth>, <max-session-
bandwidth>, <max-stream-bandwidth>, <media-intermediaries> and <qos-
dscp> element as well as elements from other namespaces. These
elements are defined in Section 6.
4.2. Mapping SDP to Session Info Documents
UAs typically create session info documents based on an SDP [3]
description or the SDP offer/answer pair [9] of a session. If a UA
has an SDP offer as well as an answer, it MUST use the answer to fill
in the elements of a session info document except for the remote-URI
and local-URI elements, which are taken from the remote and local
session description respectively. The local session description is
the one created locally by the UA (i.e. the offer if the UA has
initiated the offer/answer exchange). The remote session description
is the one received from the remote UA.
The following rules apply when creating a session info document based
on SDP description(s):
A UA MUST create a separate <stream> element for each m= line in an
SDP description. It MUST insert the media type from the m= line into
a <media-type> element and MUST create a <codec> element for each
codec listed in the m= line.
The UA MUST create a <local-uri> element for each stream using the
port taken from the m= line and the address from the corresponding c=
line of the local session description. It MUST create a <remote-uri>
element using the port and address from the m= and c= lines for the
same stream taken from the remote session description if this session
description is available.
The mapping from a session info document to a SDP description follows
the same rules in the reverse direction.
Hilt, et al. Expires August 31, 2007 [Page 7]
Internet-Draft Media Policy Dataset February 2007
Issue: we may need to define a mapping for other elements as well
(e.g. bandwidth).
5. Session Policy Documents
Session policy documents describe a policy for SIP sessions. Session
policy documents are created independent of a specific session
description and express policies that can be applied to different SIP
sessions by the recipient of a document.
Session policy documents can be used to encode session-independent
policies [14]. Session-independent policies are typically created by
a policy server and passed to a UA independent of an attempt to
establish a session. A UA can apply the policies defined in a
session policy document to the SIP sessions it is establishing. For
example, a session policy document can contain an element that
prohibits the use of video. To set up a session that is compliant to
this policy, a UA does not include the media type video in its SDP
offer or answer.
Session policy documents are encoded using the <session-policy>
element.
5.1. The <session-policy> Element
The <session-policy> element describes a policy that applies to SIP
sessions. The <session-policy> element MAY occur multiple times
inside a <property_set> [11] element.
The <session-policy> element MAY contain one optional <context> and
multiple (including zero) <media-types>, <codecs>, <max-bandwidth>,
<max-session-bandwidth>, <max-stream-bandwidth>, <media-
intermediaries>, <qos-dscp>, and <local-ports> elements as well as
elements from other namespaces. These elements are defined in
Section 6.
6. XML-encoded Session Properties
This section describes XML elements that are used in session info and
session policy documents to encode the properties of SIP sessions.
6.1. The <media-types> Element
The <media-types> element is a container that is used to define a set
of media types (e.g. audio, video). A specific media type is
included in the set by adding the corresponding <media-type> element
Hilt, et al. Expires August 31, 2007 [Page 8]
Internet-Draft Media Policy Dataset February 2007
to this container.
The <media-types> element can be used in session policy or session
information document. If used in a session policy document (i.e.
inside the <session-policy> container), it defines the media types
that can or cannot be used in a session. In a <session-info>
container, it contains the media types that appear in the
corresponding session description.
This element MAY have the following attribute (see Section 3.3):
direction.
If used in a <session-policy> element, it MAY have the following
additional attributes (see Section 3.3): visibility, excluded-policy.
Multiple <media-types> elements MAY only be present in a container
element if each applies to a different set of streams (e.g. one
<media-types> element for incoming and one for outgoing streams).
The <media-types> element MUST contain one or more <media-type>
elements.
Merging rule (if used in a <session-policy> container): <media-
types> containers are merged using the "Multiple Enumerated Value
Merging Algorithm" defined in [11].
6.1.1. The <media-type> Element
The <media-type> element identifies a specific media type. The value
of this element MUST be the name of a IANA registered media type (see
[3]), such as 'audio', 'video', 'text', or 'application'.
This element MAY have the following attribute (see Section 3.3): q.
If used in a <session-policy> element, this element MAY have the
following additional attribute (see Section 3.3): policy. Media
types that have the policy 'allowed' MAY be used and media types with
the policy 'disallowed' MUST NOT be used.
6.2. The <codecs> Element
The <codecs> element is a container that is used to define a set of
codecs. A specific codec is included in the set by adding the
corresponding <codec> element to this container.
The <codecs> element can be used in a session policy or a session
information document. If used in a <session-policy> element, it
defines the codecs that may or may not be used in a session. A
policy MUST allow the use of at least one codec per media type. If
Hilt, et al. Expires August 31, 2007 [Page 9]
Internet-Draft Media Policy Dataset February 2007
used in a <session-info> element, it describes the codecs that appear
in the corresponding session description.
This element MAY have the following attributes (see Section 3.3):
direction.
If used in a <session-policy> element, this element MAY have the
following additional attributes (see Section 3.3): visibility,
excluded-policy.
Multiple <codecs> elements MAY only be present in a container element
if each applies to a different set of streams (e.g. one <codecs>
element for incoming and one for outgoing streams). The <codecs>
element MUST contain one or more <codec> elements.
Merging rule (if used in a <session-policy> container): <codecs>
containers are merged using the "Multiple Enumerated Value Merging
Algorithm" defined in [11].
6.2.1. The <codec> Element
The <codec> element identifies a specific codec. The content of this
element MUST be a registered MIME type [2] using media-type and
subtype (e.g. audio/PCMA or video/H263) and possibly additional
registered MIME type parameters.
This element MAY have the following attribute (see Section 3.3): q.
If used in a <session-policy> element, this element MAY have the
following additional attribute (see Section 3.3): policy. Codecs
that have the policy 'allowed' MAY be used and codecs with the policy
'disallowed' MUST NOT be used.
The <codec> element MUST contain one <mime-type> element and MAY
contain multiple optional <mime-parameter> elements.
6.2.1.1. The <mime-type> Element
The <mime-type> element contains a MIME type that identifies a codec.
The value of this element MUST be a combination of a registered MIME
media-type and subtype [2] separated by a "/" (e.g. audio/PCMA,
audio/G726-16, video/H263).
6.2.1.2. The <mime-parameter> Element
The <mime-parameter> element may be needed for some codecs to
identify a particular encoding or profile. The value of this element
MUST be a name-value pair containing the name and the value of a
Hilt, et al. Expires August 31, 2007 [Page 10]
Internet-Draft Media Policy Dataset February 2007
registered MIME type parameter for the codec [2]. The name and value
are separated by a "=". For example, the parameter "profile=0" can
be used to specify a specific profile for the codec "video/
H263-2000".
6.3. The <streams> Element
The <streams> element is a container that is used to describe the
media streams used in a session. A <streams> element can contain
multiple <stream> elements. Each <stream> element describes the
properties (e.g. media type, codecs and IP addresses and ports) of a
single media stream.
The <streams> element is only defined for session information
documents (i.e. in a <session-info> container).
The <streams> element MUST contain one or more <stream> elements.
6.3.1. The <stream> Element
The <stream> element describes a specific media stream. It contains
the media type, codecs and media URIs of this stream.
A URI consists of the address and a port number contained in a
session description for this stream. A UA that generates a <stream>
element MUST insert the address/port found in the local session
description for this media stream into the local-uri element. It
MUST insert the address/port of the remote session description into
the remote URI, if this address/port is available to the UA. If not,
the UA generates a stream element that only contains the local-URI.
This element may have the following attributes (see Section 3.3):
direction.
The <stream> element MUST contain one <media-type> element, one or
more <codec> elements and one <local-uri> element. It MAY contain
one optional <remote-uri> element.
6.3.1.1. The <local-uri> Element
The <local-uri> element contains a URI that identifies the IP address
and port number of the media stream in the local session description.
The address part of this URI is contained in the c= element of the
local SDP description. The port number part of the URI is contained
in the m= element of the stream.
Hilt, et al. Expires August 31, 2007 [Page 11]
Internet-Draft Media Policy Dataset February 2007
6.3.1.2. The <remote-uri> Element
The <remote-uri> element is structured exactly as the <local-uri>
element. However, it contains a URI that identifies the IP address
and port number of the described media stream in the remote session
description.
6.4. The <max-bandwidth> Element
The <max-bandwidth> element defines the overall maximum bandwidth in
kilobits per second an entity can/will use for media streams at any
point in time. It defines an upper bound for the media bandwidth
that includes all media streams in all sessions.
This element MAY have the following attribute (see Section 3.3):
direction.
If used in a <session-policy> element, this element MAY have the
following additional attribute (see Section 3.3): visibility.
If the <max-bandwidth> element occurs multiple times in a container
element, each instance MUST apply to a different set of media streams
(i.e. one <max-bandwidth> element for outgoing and one for incoming
streams).
Merging rule (if used in a <session-policy> container): the lowest
max-bandwidth value is used.
6.5. The <max-session-bandwidth> Element
The <max-session-bandwidth> element defines the maximum bandwidth in
kilobits per second an entity can/will use for media streams in one
session. It defines an upper bound for the media bandwidth over all
media streams in a session.
This element MAY have the following attribute (see Section 3.3):
direction.
If used in a <session-policy> element, this element MAY have the
following additional attribute (see Section 3.3): visibility.
If the <max-session-bandwidth> element occurs multiple times in a
container element, each instance MUST apply to a different set of
media streams (i.e. one <max-session-bandwidth> element for outgoing
and one for incoming streams).
Hilt, et al. Expires August 31, 2007 [Page 12]
Internet-Draft Media Policy Dataset February 2007
Merging rule (if used in a <session-policy> container): the lowest
max-session-bandwidth value is used.
6.6. The <max-stream-bandwidth> Element
The <max-stream-bandwidth> element defines the maximum bandwidth in
kilobits per second an entity can/will use for a media stream.
This element MAY have the following attribute (see Section 3.3):
direction.
If used in a <session-policy> element, this element MAY have the
following additional attribute (see Section 3.3): visibility.
If the <max-stream-bandwidth> element occurs multiple times in a
container element, each instance MUST apply to a different set of
media streams (i.e. one <max-stream-bandwidth> element for outgoing
and one for incoming streams).
Merging rule (if used in a <session-policy> container): the lowest
max-stream-bandwidth value is used.
6.7. The <media-intermediaries> Element
The <media-intermediaries> element expresses a policy for routing a
media stream through a media intermediary. The purpose of the
<media-intermediaries> element is to tell the UA to send a media
stream through one (or a chain of) media intermediaries. Instead of
sending the media directly to its final destination, the UA instead
specifies a source route, which touches each intermediary and then
reaches the final recipient. If there are N hops, including the
final recipient, there needs to be a way for the media stream to
specify N destinations.
The <media-intermediaries> element is a container that lists all
media intermediaries to be traversed. Media intermediaries should be
traversed in the order in which they appear in this list. The
topmost entry should be traversed first, the last entry should be
traversed last.
Different types of intermediaries exist. These intermediaries are
not necessarily interoperable and it may not be possible to chain
them in an arbitrary order. A <media-intermediaries> element SHOULD
therefore only contain intermediary elements of the same type.
This element may have the following attributes (see Section 3.3):
direction.
Hilt, et al. Expires August 31, 2007 [Page 13]
Internet-Draft Media Policy Dataset February 2007
If used in a <session-policy> element, this element MAY have the
following additional attribute (see Section 3.3): visibility.
Multiple <media-intermediaries> elements MAY only be present in a
container if each applies to a different set of streams (e.g. one
<media-intermediaries> element for incoming and one for outgoing
streams). The <media-intermediaries> element MUST contain one or
more of the following elements: <fixed-intermediary> and <turn-
intermediary>.
Merging rule (if used in a <session-policy> container): the
intermediaries defined in all policies are traversed. In general,
local intermediaries should be traversed before remote
intermediaries. During the merging process, <media-
intermediaries> element values from different servers are ordered
using the "Closest Value First Merging Algorithm" [11]. The
intermediaries should be traversed in this order.
Note: it is not intended that the <media-intermediaries> element
replaces connectivity discovery mechanisms such as ICE. Instead
of finding media relays that provide connectivity, this element
defines a policy for media intermediaries that should be
traversed. The set of intermediaries defined in the <media-
intermediaries> element and the ones discovered through ICE may
overlap but don't have to.
6.7.1. The <fixed-intermediary> Element
A fixed intermediary relies on pre-configured forwarding rules. The
user agent simply sends media to the first media intermediary listed.
It can assume that this media intermediary has been pre-configured
with a forwarding rule for the media stream and knows where to
forward the packets to. The configuration of forwarding rules in the
intermediary must be done through other means.
The <fixed-intermediary> element is optional and MAY occur multiple
times inside a <media-intermediaries> element. The <fixed-
intermediary> element MUST contain one <int-uri> element and MAY
contain multiple optional <int-addl-port> elements.
6.7.1.1. The <int-uri> Element
The <int-uri> element contains a URI that identifies the IP address
and port number of a media intermediary. The UA uses this URI to
send its media streams to the intermediary. If a protocol uses
multiple subsequent ports (e.g. RTP), the lowest port number SHOULD
be included in the URI. All additional port numbers SHOULD be
identified in <int-addl-port> elements.
Hilt, et al. Expires August 31, 2007 [Page 14]
Internet-Draft Media Policy Dataset February 2007
6.7.1.2. The <int-addl-port> Element
If a protocol uses multiple subsequent ports (e.g. RTP), the lowest
port number SHOULD be included in the <int-uri> element. All
additional port numbers SHOULD be identified in <int-addl-port>
elements.
6.7.2. The <turn-intermediary> Element
The TURN [12] protocol provides a mechanism for inserting a relay
into the media path. Although the main purpose of TURN is NAT
traversal, it is possible for a TURN relay to perform other media
intermediary functionalities. The user agent establishes a binding
on the TURN server and uses this binding to transmit and receive
media.
The <turn-intermediary> element MUST contain one <int-uri> element
and MAY contain multiple optional <int-addl-port> elements and one
optional <shared-secret> element.
6.7.2.1. The <shared-secret> Element
The <shared-secret> element contains the shared secret needed to
authenticate at the TURN server.
6.8. The <qos-dscp> Element
The <qos-dscp> element contains an Differentiated Services Codepoint
(DSCP) [10] value that should be used to populate the IP DS field of
media packets. The <qos-dscp> contains an integer value that
represents a 6 bit field and therefore ranges from 0 to 63.
This element may have the following attributes (see Section 3.3):
visibility, direction, media-type.
The media-type attribute defines that <qos-dscp> element only applies
to streams of a certain media type. For example, it may only apply
to audio streams. The value of the 'media-type' attribute MUST be
the name of a IANA registered media type (see [3]), such as 'audio',
'video', 'text', or 'application'.
The <qos-dscp> element is optional and MAY occur multiple times
inside a container. If the <qos-dscp> element occurs multiple times,
each instance MUST apply to a different media stream (i.e. one <qos-
dscp> element for audio and one for video streams).
Hilt, et al. Expires August 31, 2007 [Page 15]
Internet-Draft Media Policy Dataset February 2007
Merging rule (if used in a <session-policy> container): the domain
that is first traversed by the media stream has precedence and its
DSCP value is used. During the merging process, <qos-dscp>
element values from different servers are ordered using the
"Closest Value First Merging Algorithm" [11]. The DSCP value from
the closest server is used.
6.9. The <local-ports> Element
Domains often require that a user agent only uses ports in a certain
range for media streams. The <local-ports> element defines a policy
for the ports a user agent can use for media. The value of this
element consists of a start port and an end port separated by a "-".
The start/end port is the first/last port that can be used.
This element may have the following attributes (see Section 3.3):
visibility.
Merging rule (if used in a <session-policy> container): the domain
that is first traversed by the media stream has precedence and its
local ports value is used. During the merging process, <local-
ports> element values from different servers are ordered using the
"Closest Value First Merging Algorithm" [11]. The value from the
closest server is used.
6.10. The <context> Element
The <context> element provides context information about a session
policy or session information document.
The <context> element MAY contain multiple <contact> and an <info>
element.
If used in a <session-policy> element, the <context> element MAY also
contain a <domain> element.
If used in a <session-info> element, the <context> element MAY also
contain a <request-URI> element.
Merging rule (if used in a <session-policy> container): the
<context> element is not subject to merging. Information in the
context element may be used to assist the user if a conflict
occurs during the merging process.
6.10.1. The <domain> Element
The <domain> element contains a URI that identifies the domain which
has issued this policy.
Hilt, et al. Expires August 31, 2007 [Page 16]
Internet-Draft Media Policy Dataset February 2007
The <domain> element is optional and MAY occur only once inside a
<context> element.
The <domain> element is only defined inside a <session-info> element.
6.10.2. The <contact> Element
The <contact> element contains a contact address (e.g. a SIP URI or
email address) under which the issuer of this document can be
reached.
The <contact> element is optional and MAY occur multiple times inside
a <context> element.
6.10.3. The <info> Element
The <info> element provides a short textual description of the policy
or session that should be intelligible to the human user.
The <info> element is optional and MAY occur only once inside a
<context> element.
6.10.4. The <call-ID> Element
The <call-ID> element contains the call-ID (as defined in [17]) of
the session that is described in this document. The <call-ID>
element is only defined inside a <session-info> element.
6.10.5. The <request-URI> Element
The <request-URI> element identifies the request-URI the dialog
initiating request of a session is sent to.
The <request-URI> element is only defined inside a <session-info>
element.
6.11. Other Session Properties
A number of additional elements have been proposed for a media
property language. These elements are deemed to be outside the scope
of this format. However, they may be defined in extensions of MPDF
or other profile data sets.
o maximum number of streams
o maximum number of sessions
o maximum number of streams per session
Hilt, et al. Expires August 31, 2007 [Page 17]
Internet-Draft Media Policy Dataset February 2007
o external address and port
o media transport protocol
o outbound proxy
o SIP methods
o SIP option tags
o SIP transport protocol
o body disposition
o body format
o body encryption
7. Examples
7.1. Session Policy Documents
The following example describes a session policy document that allows
the use of audio and video and prohibits the use of other media
types. It allows the use of any codec except G.723 and G.729. The
policy also inserts a fixed media intermediary into outgoing media
streams.
<property-set>
<session-policy>
<context>
<domain>example.com</domain>
<contact>sip:policy_manager@example.com</contact>
<info>Access network policies</info>
</context>
<media-types excluded-policy="disallow">
<media-type policy="allow">audio</media-type>
<media-type policy="allow">video</media-type>
</media-types>
<codecs excluded-policy="allow">
<codec policy="disallow">
<mime-type>audio/G729</mime-type>
</codec>
<codec policy="disallow">
<mime-type>audio/G723</mime-type>
</codec>
</codecs>
<media-intermediaries direction="sendonly">
<fixed-intermediary>
<int-uri>192.0.2.0:6000</int-uri>
<int-addl-port>6001</int-addl-port>
</fixed-intermediary>
</media-intermediaries>
</session-policy>
Hilt, et al. Expires August 31, 2007 [Page 18]
Internet-Draft Media Policy Dataset February 2007
</property-set>
7.2. Session Information Documents
The following examples contain session descriptions and the session
information documents that represent these sessions. Examples 1 and
3 are based on one session description, example 2 is based on two
session descriptions (i.e. the offer and answer).
7.2.1. Example 1
Hilt, et al. Expires August 31, 2007 [Page 19]
Internet-Draft Media Policy Dataset February 2007
Local SDP session description:
v=0
o=alice 2890844526 2890844526 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
m=audio 49562 RTP/AVP 0 1 3
a=rtpmap:0 PCMU/8000
a=rtpmap:1 1016/8000
a=rtpmap:3 GSM/8000
m=video 51234 RTP/AVP 31 34
a=rtpmap:31 H261/90000
a=rtpmap:34 H263/90000
MPDF document:
<property-set>
<session-info>
<context>
<contact>sip:alice@atlanta.com</contact>
<info>session information</info>
</context>
<streams>
<stream>
<media-type>audio</media-type>
<codec><mime-type>audio/PCMU</mime-type></codec>
<codec><mime-type>audio/1016</mime-type></codec>
<codec><mime-type>audio/GSM</mime-type></codec>
<local-uri>host.anywhere.com:49562</local-uri>
</stream>
<stream>
<media-type>video</media-type>
<codec><mime-type>video/H261</mime-type></codec>
<codec><mime-type>video/H263</mime-type></codec>
<local-uri>host.anywhere.com:51234</local-uri>
</stream>
</streams>
</session-info>
</property-set>
7.2.2. Example 2
Local SDP session description:
v=0
o=alice 2890844526 2890844526 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
Hilt, et al. Expires August 31, 2007 [Page 20]
Internet-Draft Media Policy Dataset February 2007
m=audio 49562 RTP/AVP 0 1 3
a=rtpmap:0 PCMU/8000
a=rtpmap:1 1016/8000
a=rtpmap:3 GSM/8000
m=video 51234 RTP/AVP 31 34
a=rtpmap:31 H261/90000
a=rtpmap:34 H263/90000
Remote SDP session description:
v=0
o=bob 2890844730 2890844730 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 52123 RTP/AVP 0 3
a=rtpmap:0 PCMU/8000
a=rtpmap:3 GSM/8000
m=video 50286 RTP/AVP 31
a=rtpmap:31 H261/90000
MPDF document:
<property-set>
<session-info>
<context>
<contact>sip:alice@atlanta.com</contact>
<info>session information</info>
</context>
<streams>
<stream>
<media-type>audio</media-type>
<codec><mime-type>audio/PCMU</mime-type></codec>
<codec><mime-type>audio/GSM</mime-type></codec>
<local-uri>host.anywhere.com:49562</local-uri>
<remote-uri>host.example.com:52123</remote-uri>
</stream>
<stream>
<media-type>video</media-type>
<codec><mime-type>video/H261</mime-type></codec>
<local-uri>host.anywhere.com:51234</local-uri>
<remote-uri>host.example.com:50286</remote-uri>
</stream>
</streams>
</session-info>
</property-set>
Hilt, et al. Expires August 31, 2007 [Page 21]
Internet-Draft Media Policy Dataset February 2007
8. Schema Definition
Note: the schema definition still reflects the -01 version of this
draft and needs to be updated.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:ietf:params:xml:ns:mediadataset"
xmlns:tns="urn:ietf:params:xml:ns:mediadataset"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:spds="http://sipfoundry.org/schema/profile-data-sets-00">
<xs:attributeGroup name="single_stream_attributes" >
<xs:attribute name="stream-label"
type="xs:string" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="media_type_attributes" >
<xs:attribute name="media-type"
type="xs:string" use="optional"/>
</xs:attributeGroup>
<xs:element name="session-policy">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:context"
minOccurs="0" maxOccurs="1"/>
<xs:element ref="tns:media-types"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="tns:codecs"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="tns:media-intermediaries"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="tns:max-bandwidth"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="tns:qos-dscp"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="tns:local-ports"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="context">
<xs:complexType>
Hilt, et al. Expires August 31, 2007 [Page 22]
Internet-Draft Media Policy Dataset February 2007
<xs:sequence>
<xs:element name="domain" type="xs:anyURI" minOccurs="0"
maxOccurs="1"/>
<xs:element name="contact" type="xs:anyURI" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="info" type="xs:string"
minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="media-types"
substitutionGroup="spds:setting_container">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:media-type"
minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="spds:directional_setting_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="codecs"
substitutionGroup="spds:setting_container">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:codec"
minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="spds:directional_setting_attributes" />
<xs:attributeGroup ref="tns:single_stream_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="media-intermediaries"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:fixed-intermediary"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="tns:turn-intermediary"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="spds:directional_setting_attributes" />
<xs:attributeGroup ref="tns:single_stream_attributes" />
</xs:complexType>
</xs:element>
Hilt, et al. Expires August 31, 2007 [Page 23]
Internet-Draft Media Policy Dataset February 2007
<xs:element name="max-bandwidth"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:positiveInteger" />
</xs:simpleContent>
<xs:attributeGroup ref="spds:directional_setting_attributes" />
<xs:attributeGroup ref="tns:media_type_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="qos-dscp"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="xs:integer" >
<xs:minInclusive value="0" />
<xs:maxInclusive value="63" />
</xs:restriction>
</xs:simpleContent>
<xs:attributeGroup ref="spds:directional_setting_attributes" />
<xs:attributeGroup ref="tns:single_stream_attributes" />
<xs:attributeGroup ref="tns:media_type_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="local-ports"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="xs:string" />
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="media-type"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="xs:string" />
</xs:simpleContent>
<xs:attributeGroup ref="spds:multi_setting_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="codec"
substitutionGroup="spds:setting">
<xs:complexType>
Hilt, et al. Expires August 31, 2007 [Page 24]
Internet-Draft Media Policy Dataset February 2007
<xs:sequence>
<xs:element name="mime-type" type="xs:string"
minOccurs="1" maxOccurs="1"/>
<xs:element name="mime-parameter" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="spds:multi_setting_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="fixed-intermediary"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:sequence>
<xs:element name="int-uri" type="xs:anyURI"
minOccurs="1" maxOccurs="1"/>
<xs:element name="int-addl-port"
type="xs:positiveInteger"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="spds:multi_setting_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="turn-intermediary"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:sequence>
<xs:element name="int-uri" type="xs:anyURI"
minOccurs="1" maxOccurs="1"/>
<xs:element name="int-addl-port"
type="xs:positiveInteger"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="shared-secret" type="xs:string"
minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attributeGroup ref="spds:multi_setting_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="ipinip-intermediary"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:sequence>
<xs:element name="int-uri" type="xs:anyURI"
minOccurs="1" maxOccurs="1"/>
<xs:element name="int-addl-port"
type="xs:positiveInteger"
Hilt, et al. Expires August 31, 2007 [Page 25]
Internet-Draft Media Policy Dataset February 2007
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="spds:multi_setting_attributes" />
</xs:complexType>
</xs:element>
<xs:element name="iploose-intermediary"
substitutionGroup="spds:setting">
<xs:complexType>
<xs:sequence>
<xs:element name="int-uri" type="xs:anyURI"
minOccurs="1" maxOccurs="1"/>
<xs:element name="int-addl-port"
type="xs:positiveInteger"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="spds:multi_setting_attributes" />
</xs:complexType>
</xs:element>
</xs:schema>
9. 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.
10. IANA Considerations
This document registers a new MIME type, application/
session-policy+xml, and registers a new XML namespace.
10.1. MIME Registration for application/session-policy+xml
MIME media type name: application
MIME subtype name: session-policy+xml
Mandatory parameters: none
Optional parameters: Same as charset parameter application/xml as
specified in RFC 3023 [8].
Hilt, et al. Expires August 31, 2007 [Page 26]
Internet-Draft Media Policy Dataset February 2007
Encoding considerations: Same as encoding considerations of
application/xml as specified in RFC 3023 [8].
Security considerations: See Section 10 of RFC 3023 [8] and Section 9
of this specification.
Interoperability considerations: none.
Published specification: This document.
Applications which use this media type: This document type has been
used to download the session policy of a domain to SIP user agents.
Additional Information:
Magic Number: None
File Extension: .wif or .xml
Macintosh file type code: "TEXT"
Personal and email address for further information: Volker Hilt,
<volkerh@bell-labs.com>
Intended usage: COMMON
Author/Change controller: The IETF.
10.2. URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:mediadataset
This section registers a new XML namespace, as per the guidelines in
[5]
URI: The URI for this namespace is
urn:ietf:params:xml:ns:mediadataset.
Registrant Contact: IETF, SIPPING working group, <sipping@ietf.org>,
Volker Hilt, <volkerh@bell-labs.com>
Hilt, et al. Expires August 31, 2007 [Page 27]
Internet-Draft Media Policy Dataset February 2007
XML:
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Session Policy Namespace</title>
</head>
<body>
<h1>Namespace for Session Policy Information</h1>
<h2>urn:ietf:params:xml:ns:mediadataset</h2>
<p>See <a href="[[[URL of published RFC]]]">RFCXXXX</a>.</p>
</body>
</html>
END
Appendix A. Acknowledgements
Many thanks to Allison Mankin, Dan Petrie and Martin Dolly for the
discussions and suggestions. Many thanks to Roni Even and Mary
Barnes for reviewing the draft and providing feedback.
11. References
11.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Casner, S. and P. Hoschka, "MIME Type Registration of RTP
Payload Formats", RFC 3555, July 2003.
[3] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[4] Layman, A., Hollander, D., and T. Bray, "Namespaces in XML",
World Wide Web Consortium FirstEdition REC-xml-names-19990114,
January 1999,
<http://www.w3.org/TR/1999/REC-xml-names-19990114>.
[5] Mealling, M., "The IETF XML Registry",
draft-mealling-iana-xmlns-registry-05 (work in progress),
Hilt, et al. Expires August 31, 2007 [Page 28]
Internet-Draft Media Policy Dataset February 2007
June 2003.
[6] Moats, R., "URN Syntax", RFC 2141, May 1997.
[7] Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
August 1999.
[8] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types",
RFC 3023, January 2001.
[9] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
Session Description Protocol (SDP)", RFC 3264, June 2002.
[10] Nichols, K., Blake, S., Baker, F., and D. Black, "Definition of
the Differentiated Services Field (DS Field) in the IPv4 and
IPv6 Headers", RFC 2474, December 1998.
[11] Petrie, D., Lawrence, S., Dolly, M., and V. Hilt, "A Schema and
Guidelines for Defining Session Initiation Protocol User Agent
Profile Data Sets", draft-petrie-sipping-profile-datasets-04
(work in progress), October 2005.
[12] Rosenberg, J., "Obtaining Relay Addresses from Simple Traversal
Underneath NAT (STUN)", draft-ietf-behave-turn-02 (work in
progress), October 2006.
[13] Sperberg-McQueen, C., Maler, E., Yergeau, F., Bray, T., and J.
Paoli, "Extensible Markup Language (XML) 1.0 (Third Edition)",
World Wide Web Consortium FirstEdition REC-xml-20040204,
February 2004, <http://www.w3.org/TR/2004/REC-xml-20040204>.
11.2. Informative References
[14] Hilt, V., Camarillo, G., and J. Rosenberg, "A Framework for
Session Initiation Protocol (SIP) Session Policies",
draft-ietf-sip-session-policy-framework-01 (work in progress),
February 2007.
[15] Petrie, D. and S. Channabasappa, "A Framework for Session
Initiation Protocol User Agent Profile Delivery",
draft-ietf-sipping-config-framework-10 (work in progress),
January 2007.
[16] Rosenberg, J., "Requirements for Session Policy for the Session
Initiation Protocol (SIP)",
draft-ietf-sipping-session-policy-req-02 (work in progress),
July 2004.
Hilt, et al. Expires August 31, 2007 [Page 29]
Internet-Draft Media Policy Dataset February 2007
[17] 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.
Authors' Addresses
Volker Hilt
Bell Labs/Alcatel-Lucent
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@cisco.com
Hilt, et al. Expires August 31, 2007 [Page 30]
Internet-Draft Media Policy Dataset February 2007
Full Copyright Statement
Copyright (C) The IETF Trust (2007).
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.
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, THE IETF TRUST 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.
Intellectual Property
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.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Hilt, et al. Expires August 31, 2007 [Page 31]
| PAFTECH AB 2003-2026 | 2026-04-24 04:59:16 |