SIPPING D. Petrie
Internet-Draft SIPez LLC.
Expires: January 12, 2006 M. Dolly
AT&T Labs
V. Hilt
Bell Labs/Lucent Technologies
July 11, 2005
The Core Session Initiation Protocol User Agent Profile Data Set
draft-petrie-sipping-sip-dataset-00.txt
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 January 12, 2006.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
This document defines the properties and format for the core SIP user
agent profile data set. The properties defined in this document are
expected to be common to most SIP user agents regardless of whether
the user agent support audio, video, text or any combination of
media. These core SIP properties are considered to to be a data set.
Petrie, et al. Expires January 12, 2006 [Page 1]
Internet-Draft SIP UA Data Set July 2005
Several datasets may be combined into documents or profiles that are
provided to SIP user agents so that they can operate with the desired
behavior.
Table of Contents
1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Requirements Terminology . . . . . . . . . . . . . . . . . 3
2.2 Profile Data Terminology . . . . . . . . . . . . . . . . . 3
2.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Core SIP Data Set . . . . . . . . . . . . . . . . . . . . . . 5
3.1 Transport Protocol Data Set . . . . . . . . . . . . . . . 5
3.1.1 transport_protocols Data Set Properties Definitions . 5
3.1.2 transport_protocols Element Definition . . . . . . . 6
3.1.3 Merging Different Sources of a transport_protocol
Data Set . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 outbound_proxy . . . . . . . . . . . . . . . . . . . . . . 7
3.2.1 outbound_proxy Data Set Properties Definitions . . . . 7
3.2.2 outbound_proxies Element Definition . . . . . . . . . 7
3.2.3 outbound_proxies Merging Different Sources of a
Data Set . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 sip_methods . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.1 sip_methods Data Set Properties Definitions . . . . . 8
3.3.2 sip_methods Element Definition . . . . . . . . . . . . 8
3.3.3 sip_methods Merging Different Sources of a Data Set . 8
3.4 sip_option_tags . . . . . . . . . . . . . . . . . . . . . 8
3.4.1 sip_option_tags Data Set Properties Definitions . . . 8
3.4.2 sip_option_tags Element Definition . . . . . . . . . . 8
3.4.3 sip_option_tags Merging Different Sources of a
Data Set . . . . . . . . . . . . . . . . . . . . . . . 9
4. Example Profiles and Use . . . . . . . . . . . . . . . . . . . 9
4.1 Merge Two Data Sets . . . . . . . . . . . . . . . . . . . 9
4.2 Policy Filtering . . . . . . . . . . . . . . . . . . . . . 11
4.3 Override . . . . . . . . . . . . . . . . . . . . . . . . . 11
5. Security Considerations . . . . . . . . . . . . . . . . . . . 11
6. Changes from draft-petrie-sipping-profile-datasets-01 . . . . 11
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 12
A. SIP Protocol Dataset Schema . . . . . . . . . . . . . . . . . 13
B. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16
Intellectual Property and Copyright Statements . . . . . . . . 17
Petrie, et al. Expires January 12, 2006 [Page 2]
Internet-Draft SIP UA Data Set July 2005
1. Motivation
The SIP Profile Data Sets defined in this document support the
principle to enable SIP User Agents to obtain and use profile data
sets from multiple sources in order to support a wide range of
applications without undue complexity.
The SIP Protocol Data Set is intended the be the lowest common
denominator among all user agent types regardless of capability.
This data set contains properties that all user agents require. That
does not mean that all of these properties are mandatory.
2. Introduction
This document defines the properties and format for the core SIP user
agent profile data set. The following properties are defined in this
document:
transport_protocols
outbound_proxies
sip_methods
sip_option_tags
and, are expected to be common to most SIP user agents regardless of
whether the user agent support audio, video, text or any combination
of media. These core SIP properties are considered to to be a data
set.
2.1 Requirements Terminology
Keywords "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT" and
"MAY" that appear in this document are to be interpreted as described
in RFC 2119[RFC2119].
2.2 Profile Data Terminology
property - a named configurable characteristic of a user agent. A
given property has a well-defined range of possible values. A
given property may be defined to have range of values, allow for
simultaneous use of many values (as in a list of allowed
possibilities), or be a set of related values that collectively
form a single profile information item.
setting - the binding of a specific value or set of values to a given
property.
profile - a collection of settings to be applied for a specific user,
device, or local network.
Petrie, et al. Expires January 12, 2006 [Page 3]
Internet-Draft SIP UA Data Set July 2005
device - SIP user agent, either software or hardware appliance. This
is a logical concept, as there may be no physical dedicated device
or it may be part of an assembly of devices. In this document,
the terms "user agent" and "device" are interchangeable.
user profile - the profile that applies to a specific user. This is
best illustrated by the "hotelling" use case - a user has an
association for some period of time with a particular device. The
user profile is that set of profile data the user wants to
associate with that device (e.g. ringtones used when someone calls
them, the user's shortcuts).
device profile - data profile that applies to a specific device. In
the "hotelling" use case, this is the data that is bound to the
device itself independent of the user. It relates to specific
capabilities of the device and/or preferences of the owner of the
device.
local network profile - data that applies to the user agent in the
context of the local network. This is best illustrated by roaming
applications; a new device appears in the local network (or a
device appears in a new network, depending on the point of view).
The local network profile includes settings and perhaps policies
that allow the user agent to function in the local network (e.g.
how to traverse NAT or firewall, bandwidth constraints).
data set - a collection of properties.
working profile - the set of property values actually set in a SIP
User Agent as a result of merging the profiles from all sources;
the actual effective profile for the user agent .
merging - the operation of resolving overlapping settings from
multiple profiles. Overlap occurs when the same property occurs
in multiple profiles (e.g. user, device, local network).
2.3 Overview
The Core SIP UA profile data set is defined in Section 3 and complies
with the guidelines provided in Section 5 of [I-D.petrie-sipping-
profile-datasets]
Section 4 provides illustrative example profiles and use cases for
merging. Security considerations are addresed in Section 5.
The following is an example instance of the SIP protocol data set.
Note the use of the policy attribute.
Petrie, et al. Expires January 12, 2006 [Page 4]
Internet-Draft SIP UA Data Set July 2005
UDP
5060
TCP
5060
TLS
5061
sip:outproxy.example.com
INFO
join
3. Core SIP Data Set
The XML schema defined in this document extends the root element
"property_set" schema defined in I-D.petrie-sipping-profile-datasets.
3.1 Transport Protocol Data Set
3.1.1 transport_protocols Data Set Properties Definitions
transport_protocols - This property contains properties related to
SIP transport protocols, and is an XML element that extends on the
XML "setting_container" element contained in the root
"property_set" element. It serves as a container for a list of
SIP transport protcols to allow or disallow. There may be zero or
one elements.
Petrie, et al. Expires January 12, 2006 [Page 5]
Internet-Draft SIP UA Data Set July 2005
3.1.2 transport_protocols Element Definition
transport_protocol - The "transport_protocol" is an XML element that
extends the "setting" element contained in the
"transport_protocols" element. The "transport_protocol" element
contains properties related to a SIP transport protocol. It names
the transport protocol, defines whether the protocol is enabled or
not and defines the port to which that protocol is bound. If the
protocol is named it defaults to enabled if not explicitly set.
If the port property is not set, it defaults to the default
specified by the specification which binds the protocol to SIP.
The user agent should enable all the set transport protocols that
are supported by the user agent. The user agent ignores protocol
bindings that it does not support. The user agent may default
transport protocols that it supports to enabled, if a protocol
property for that transport protocol is not present in the data
set. The order of the list of transport_protocol setting values
indicated by the "q" attribute indicates the order of preference.
There may be zero or more "transport_protocol" elements in the
"transport_protocols" element.
name - This XML element identifies the specific transport protocol,
and extends the "setting" element contained in
transport_protocols. There must be exactly one "name" element in
a "transport_protocol".
port - This element identifies the port for binding the transport
protocol, and extends the "setting" element contained in
transport_protocols. There must be exactly one "port" element in
a "transport_protocol".
3.1.3 Merging Different Sources of a transport_protocol Data Set
The "transport_protocol" property uses the "policy" attrribute to
identify whether the transport protocol is mandatory, allowed or
disallowed. The "q" attribute is used for ordering of the list. In
addition, a visibility attribute may be present.
If there are matches on multiple "name" element values, the "policy"
attribute will determine which is mandatory. As defined in Merging
Datasets [I-D.petrie-sipping-profile-datasets] properties with a
"policy" attribute value of "manditory" are used over those with
other "policy" attribute values. If there are multiple
"transport_protocol" elements from different profiles with the same
"name" element value and "policy" attribute values of "allows", then
the resulting merged "transport_protocols" element will contain one
"transport_protocol" element having a "name" element of that value.
The "port" element value will be determined in the following order of
the source profile, when there are multiple "transport_protocol"
elements from different profiles with the same "name" element value
Petrie, et al. Expires January 12, 2006 [Page 6]
Internet-Draft SIP UA Data Set July 2005
and "policy" attribute value of "allow":
Local
Device
User
Application
3.2 outbound_proxy
3.2.1 outbound_proxy Data Set Properties Definitions
outbound_proxies - The "outbound_proxies" property is an XML element
that extends on the XML "setting" element contained in the root
"property_set" element. It serves as a container for a list of
outbound proxies. There may be zero or one element. The default
outbound proxy, through which all SIP requests, not explicitly
routed, should be sent. The format of this parameter is of name-
addr as specified in [RFC3261]. This property is optional. If
absent or not set, SIP requests are sent to directly to the URI of
the request. If set the effect of this property is to add a loose
route as defined in [RFC3261] for the next hop destination.
3.2.2 outbound_proxies Element Definition
outbound_proxies - The "outbound_proxy" is an XML element that
extends the XML "setting" element contained in "outbound_proxies".
There may be zero, one or many "outbound_proxy" elements. It
provides default value for an outbound proxy, through which all
SIP requests, not explicitly routed, should be sent. The format
of this parameter is of name-addr as specified in [RFC3261]. This
property is optional. If absent or not set, SIP requests are sent
to directly to the URI of the request. If set the effect of this
property is to add a loose route as defined in [RFC3261] for the
next hop destination. Multiple "outbound_proxy" elements may be
contained in the "outbound_proxies" element to form a route set."
3.2.3 outbound_proxies Merging Different Sources of a Data Set
The aggregation approach is used to resolve conflicts. By
aggregating the multiple outbound proxies, the local network profile
provided outbound proxy allows the signaling to get out of the local
network and the device profile provided outbound proxy is able to
monitor all SIP signaling from the user agent. The order of the
resulting merged, route set is determined by the "q" attibute.
3.3 sip_methods
Petrie, et al. Expires January 12, 2006 [Page 7]
Internet-Draft SIP UA Data Set July 2005
3.3.1 sip_methods Data Set Properties Definitions
sip_methods - This property contains properties related to SIP
Methods, and is an XML element that extends on the XML "setting"
element contained in the root "property_set" element. It serves
as a container for a list of SIP request methods to allow or
disallow. Typically, only provide by the device dataset. The
"sip_methods" element is intended to provide a means of enabling
or diabling features in the SIP user agent based upon the SIP
request method.
3.3.2 sip_methods Element Definition
sip_method - An element to specify a SIP method, and extends the
"setting" element contained in the "sip_methods" element. There
may be zero or more elements. For user agents that support the
method indicated, this element serves as a switch to enable or
disable the named SIP method as indicated by the "policy"
attribute.
3.3.3 sip_methods Merging Different Sources of a Data Set
The "sip_methods" Data Set uses the aggregation merging policy
defined in [I-D.petrie-sipping-profile-datasets]. When multiple
"sip_method" elements with the same value are provided, the "policy"
attribute is used to determine precidence.
3.4 sip_option_tags
3.4.1 sip_option_tags Data Set Properties Definitions
sip_option_tags - This property specifies a container for a list of
SIP option tags that are allowed or disallowed, and is an XML
element that extends on the XML "setting" element contained in the
root "property_set" element. For user agents that suppport
features indicated by option tags, this element serves as a list
of features to turn on or off as indicated by the "policy"
attribute in the "sip_option_tag" element.
3.4.2 sip_option_tags Element Definition
sip_option_tag - An element to specify a SIP option tag, and extends
the "setting" element and is contained in "sip_option_tags"
element. There may be zero or more elements "sip_option_tag".
For user agents that suppport features indicated by option tags,
this element serves as a switch to enable or disable the named SIP
option as indicated by the policy attribute in the
Petrie, et al. Expires January 12, 2006 [Page 8]
Internet-Draft SIP UA Data Set July 2005
"sip_option_tag" element.
3.4.3 sip_option_tags Merging Different Sources of a Data Set
The sip_option_tags Data Set uses the default aggregation merging
policy defined in [I-D.petrie-sipping-profile-datasets]. When
multiple "sip_method" elements with the same value are provided, the
"policy" attribute is used to determine precidence.
4. Example Profiles and Use
4.1 Merge Two Data Sets
Consider the use case described in [I-D.petrie-sipping-profile-
datasets] where the user wishes to indicate that only secure SIP
transport should be used. The device profile may contain SIP
Protocol Data Set (see Section 3.1) settings that look like the
following:
UDP
5060
TCP
5060
TLS
5061
sip:outproxy.example.com
INFO
join
Petrie, et al. Expires January 12, 2006 [Page 9]
Internet-Draft SIP UA Data Set July 2005
The user profile which indicates that only TLS should be used would
look like (Note: this example also indicates that port 5061 should be
used with a mandatory policy as well. This may be more constrained
than the user really wants.):
TLS
5061
UDP
TCP
The merged result of the device and user profile would look like:
TLS
5061
UDP
TCP
sip:outproxy.example.com
INFO
join
Petrie, et al. Expires January 12, 2006 [Page 10]
Internet-Draft SIP UA Data Set July 2005
4.2 Policy Filtering
(allowed and disallowed protocols)
4.3 Override
(device prefers default ports 5060, local net requires port 11000)
5. Security Considerations
Security is mostly a profile delivery problem. The delivery
framework MUST provide a secure means of delivering the profile data
as it may contain sensitive data that would be undesirable if it were
stolen or sniffed. Storage of the profile on the profile delivery
server and user agent is an implementation problem. The profile
delivery server and the user agent MUST provide protection that
prevents unauthorized access of the profile data. The profile
delivery server and the user agent MUST enforce the access control
policies defined in the profile data sets if present.
6. Changes from draft-petrie-sipping-profile-datasets-01
The core SIP profile data set was split out from the examples in
draft-petrie-sipping-profile-datasets-01 to create a stand alone data
set definition.
7. References
[I-D.ietf-sipping-config-framework]
Petrie, D., "A Framework for Session Initiation Protocol
User Agent Profile Delivery",
draft-ietf-sipping-config-framework-06 (work in progress),
February 2005.
[I-D.petrie-sipping-profile-datasets]
Petrie, D., "A Schema for Session Initiation Protocol User
Agent Profile Data Sets",
draft-petrie-sipping-profile-datasets-00 (work in
progress), July 2004.
[I-D.sinnreich-sipdev-req]
Sinnreich, H., "SIP Telephony Device Requirements and
Configuration", draft-sinnreich-sipdev-req-07 (work in
progress), June 2005.
[RFC0822] Crocker, D., "Standard for the format of ARPA Internet
text messages", STD 11, RFC 822, August 1982.
Petrie, et al. Expires January 12, 2006 [Page 11]
Internet-Draft SIP UA Data Set July 2005
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002.
[RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific
Event Notification", RFC 3265, June 2002.
[RFC3470] Hollenbeck, S., Rose, M., and L. Masinter, "Guidelines for
the Use of Extensible Markup Language (XML) within IETF
Protocols", BCP 70, RFC 3470, January 2003.
[W3C.REC-xml-names]
Bray, T., Hollander, D., and A. Layman, "Namespaces in
XML", W3C REC-xml-names, January 1999,
.
[W3C.REC-xmlschema-1]
Thompson, H., Beech, D., Maloney, M., and N. Mendelsohn,
"XML Schema Part 1: Structures", W3C REC-xmlschema-1,
May 2001, .
[W3C.REC-xmlschema-2]
Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes",
W3C REC-xmlschema-2, May 2001,
.
Authors' Addresses
Daniel Petrie
SIPez LLC.
34 Robbins Rd.
Arlington, MA 02476
US
Phone: +1 617 273 4000
Email: dan.ietf AT SIPez DOT com
URI: http://www.sipez.com/
Petrie, et al. Expires January 12, 2006 [Page 12]
Internet-Draft SIP UA Data Set July 2005
Martin Dolly
AT&T Labs
200 Laurel Avenue
Middletowm, NJ 07748
US
Phone:
Email: mdolly AT att DOT com
URI:
Volker Hilt
Bell Labs/Lucent Technologies
101 Crawfords Corner Rd
Holmdel, NJ 07733
US
Phone:
Email: volkerh@bell-labs.com
URI:
Appendix A. SIP Protocol Dataset Schema
The following is the schema for the SIP protocol data set.
SIP Protocol Properties.
Container for a set of transport protocol
bindings for SIP.
Petrie, et al. Expires January 12, 2006 [Page 13]
Internet-Draft SIP UA Data Set July 2005
Container for the properties for a single transport protocol
binding for SIP.
Name of the specific transport protocol
Port binding for the transport protocol
Container for outbound_proxy elements which define a preset
route set. The q attribute determines the order of the
routes in the route set.
Petrie, et al. Expires January 12, 2006 [Page 14]
Internet-Draft SIP UA Data Set July 2005
The next hop proxy for SIP requests without a defined
route set. Value is of name-addr format. There should
probably be a type defined for name-addr that outbound_proxy
inherits from.
Container for list of SIP request methods to allow or
disallow.
An element to specify a SIP method. For user agents
that support the method indicated, this element serves
as a switch to enable or disable the named SIP method
as indicated by the policy attribute.
Petrie, et al. Expires January 12, 2006 [Page 15]
Internet-Draft SIP UA Data Set July 2005
Container for list of SIP option tags to allow or
disallow. For user agents that support features
indicted by option tags, this element serves as a
list of features to turn on or off as indicated by
the policy attribute in the sip_option_tag element.
An element to specify a SIP option tag. For user agents
that support the options indicated, this element serves
as a switch to enable or disable the named SIP option
as indicated by the policy attribute.
Appendix B. Acknowledgments
Petrie, et al. Expires January 12, 2006 [Page 16]
Internet-Draft SIP UA Data Set July 2005
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
The IETF has been notified of intellectual property rights claimed in
regard to some or all of the specification contained in this
document. For more information consult the online list of claimed
rights.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2005). 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.
Petrie, et al. Expires January 12, 2006 [Page 17]
Internet-Draft SIP UA Data Set July 2005
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Petrie, et al. Expires January 12, 2006 [Page 18]