draft-ietf-sipping-config-framework-01.txt | draft-ietf-sipping-config-framework-02.txt | |||
---|---|---|---|---|
SIPPING D. Petrie | SIPPING D. Petrie | |||
Internet-Draft Pingtel Corp. | Internet-Draft Pingtel Corp. | |||
Expires: April 21, 2004 October 22, 2003 | Expires: August 14, 2004 February 14, 2004 | |||
A Framework for SIP User Agent Profile Delivery | A Framework for SIP User Agent Profile Delivery | |||
draft-ietf-sipping-config-framework-01.txt | draft-ietf-sipping-config-framework-02.txt | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
all provisions of Section 10 of RFC2026. | all provisions of Section 10 of RFC2026. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that other | Task Force (IETF), its areas, and its working groups. Note that other | |||
groups may also distribute working documents as Internet-Drafts. | groups may also distribute working documents as Internet-Drafts. | |||
skipping to change at page 1, line 30 | skipping to change at page 1, line 30 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at http:// | The list of current Internet-Drafts can be accessed at http:// | |||
www.ietf.org/ietf/1id-abstracts.txt. | www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on April 21, 2004. | This Internet-Draft will expire on August 14, 2004. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2004). All Rights Reserved. | |||
Abstract | Abstract | |||
This document defines the application of a set of protocols for | This document defines the application of a set of protocols for | |||
providing profile data to SIP user agents. The objective is to | providing profile data to SIP user agents. The objective is to | |||
define a means for automatically providing profile data a user agent | define a means for automatically providing profile data a user agent | |||
needs to be functional without user or administrative intervention. | needs to be functional without user or administrative intervention. | |||
The framework for discovery, delivery, notification and updates of | The framework for discovery, delivery, notification and updates of | |||
user agent profile data is defined here. As part of this framework a | user agent profile data is defined here. As part of this framework a | |||
new SIP event package is defined here for the notification of profile | new SIP event package is defined here for the notification of profile | |||
skipping to change at page 2, line 12 | skipping to change at page 2, line 12 | |||
agents. The contents and format of the profile data to be defined is | agents. The contents and format of the profile data to be defined is | |||
outside the scope of this document. | outside the scope of this document. | |||
Table of Contents | Table of Contents | |||
1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1 Requirements Terminology . . . . . . . . . . . . . . . . . . 3 | 2.1 Requirements Terminology . . . . . . . . . . . . . . . . . . 3 | |||
2.2 Profile Delivery Framework Terminology . . . . . . . . . . . 4 | 2.2 Profile Delivery Framework Terminology . . . . . . . . . . . 4 | |||
2.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Profile Change Event Notification Package . . . . . . . . . 5 | 3. Profile Change Event Notification Package . . . . . . . . . 6 | |||
3.1 Event Package Name . . . . . . . . . . . . . . . . . . . . . 6 | 3.1 Event Package Name . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.2 Event Package Parameters . . . . . . . . . . . . . . . . . . 6 | 3.2 Event Package Parameters . . . . . . . . . . . . . . . . . . 6 | |||
3.3 SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . . 7 | 3.3 SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.4 Subscription Duration . . . . . . . . . . . . . . . . . . . 7 | 3.4 Subscription Duration . . . . . . . . . . . . . . . . . . . 8 | |||
3.5 NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.5 NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.6 Notifier processing of SUBSCRIBE requests . . . . . . . . . 8 | 3.6 Notifier processing of SUBSCRIBE requests . . . . . . . . . 9 | |||
3.7 Notifier generation of NOTIFY requests . . . . . . . . . . . 9 | 3.7 Notifier generation of NOTIFY requests . . . . . . . . . . . 9 | |||
3.8 Subscriber processing of NOTIFY requests . . . . . . . . . . 10 | 3.8 Subscriber processing of NOTIFY requests . . . . . . . . . . 10 | |||
3.9 Handling of forked requests . . . . . . . . . . . . . . . . 10 | 3.9 Handling of forked requests . . . . . . . . . . . . . . . . 10 | |||
3.10 Rate of notifications . . . . . . . . . . . . . . . . . . . 10 | 3.10 Rate of notifications . . . . . . . . . . . . . . . . . . . 11 | |||
3.11 State Agents . . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.11 State Agents . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
3.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
3.13 Use of URIs to Retrieve State . . . . . . . . . . . . . . . 11 | 3.13 Use of URIs to Retrieve State . . . . . . . . . . . . . . . 12 | |||
4. Profile Delivery Framework Details . . . . . . . . . . . . . 12 | 4. Profile Delivery Framework Details . . . . . . . . . . . . . 12 | |||
4.1 Discovery of Subscription URI . . . . . . . . . . . . . . . 12 | 4.1 Discovery of Subscription URI . . . . . . . . . . . . . . . 12 | |||
4.2 Enrollment with Profile Server . . . . . . . . . . . . . . . 13 | 4.2 Enrollment with Profile Server . . . . . . . . . . . . . . . 14 | |||
4.3 Notification of Profile Changes . . . . . . . . . . . . . . 13 | 4.3 Notification of Profile Changes . . . . . . . . . . . . . . 14 | |||
4.4 Retrieval of Profile Data . . . . . . . . . . . . . . . . . 14 | 4.4 Retrieval of Profile Data . . . . . . . . . . . . . . . . . 14 | |||
4.5 Upload of Profile Changes . . . . . . . . . . . . . . . . . 14 | 4.5 Upload of Profile Changes . . . . . . . . . . . . . . . . . 15 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 14 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 15 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . 14 | 5.1 SIP Event Package . . . . . . . . . . . . . . . . . . . . . 15 | |||
6.1 Symmetric Encryption of Profile Data . . . . . . . . . . . . 14 | 6. Security Considerations . . . . . . . . . . . . . . . . . . 15 | |||
6.2 Client Certificate Authentication with HTTPS . . . . . . . . 15 | 6.1 Symmetric Encryption of Profile Data . . . . . . . . . . . . 15 | |||
6.3 HTTPS Authentication . . . . . . . . . . . . . . . . . . . . 15 | 7. Differences from Simple XCAP Package . . . . . . . . . . . . 16 | |||
7. Differences from Simple XCAP Package . . . . . . . . . . . . 15 | ||||
8. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . 16 | 8. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
9. Change History . . . . . . . . . . . . . . . . . . . . . . . 16 | 9. Change History . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
9.1 Changes from draft-ietf-sipping-config-framework-00.txt . . 16 | 9.1 Changes from draft-ietf-sipping-config-framework-01.txt . . 17 | |||
9.2 Changes from draft-petrie-sipping-config-framework-00.txt . 17 | 9.2 Changes from draft-ietf-sipping-config-framework-00.txt . . 17 | |||
9.3 Changes from draft-petrie-sip-config-framework-01.txt . . . 17 | 9.3 Changes from draft-petrie-sipping-config-framework-00.txt . 17 | |||
9.4 Changes from draft-petrie-sip-config-framework-00.txt . . . 17 | 9.4 Changes from draft-petrie-sip-config-framework-01.txt . . . 18 | |||
9.5 Changes from draft-petrie-sip-config-framework-00.txt . . . 18 | ||||
References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . 20 | Author's Address . . . . . . . . . . . . . . . . . . . . . . 20 | |||
A. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 20 | A. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 20 | |||
Intellectual Property and Copyright Statements . . . . . . . 21 | Intellectual Property and Copyright Statements . . . . . . . 21 | |||
1. Motivation | 1. Motivation | |||
Today all SIP user agent vendors use proprietary means of delivering | Today all SIP user agent vendors use proprietary means of delivering | |||
user or device profiles to the user agent. The profile delivery | user or device profiles to the user agent. The profile delivery | |||
framework defined in this document is intended to enable a first | framework defined in this document is intended to enable a first | |||
skipping to change at page 4, line 12 | skipping to change at page 4, line 12 | |||
"MAY" that appear in this document are to be interpreted as described | "MAY" that appear in this document are to be interpreted as described | |||
in RFC 2119[RFC2119]. | in RFC 2119[RFC2119]. | |||
2.2 Profile Delivery Framework Terminology | 2.2 Profile Delivery Framework Terminology | |||
profile - data set specific to a user or device. | profile - data set specific to a user or device. | |||
device - SIP user agent, either software or hardware appliance. | device - SIP user agent, either software or hardware appliance. | |||
profile content server - The server that provides the content of the | profile content server - The server that provides the content of the | |||
profiles using the protocol specified by the URL scheme. | profiles using the protocol specified by the URL scheme. | |||
notifier - The SIP user agent server which processes SUBSCRIBE | notifier - The SIP user agent server which processes SUBSCRIBE | |||
requests for events and sends NOTIFY requests with profile URL(s). | requests for events and sends NOTIFY requests with profile data or | |||
URI(s) point to the data. | ||||
profile delivery server - The logical collection of the SIP notifier | profile delivery server - The logical collection of the SIP notifier | |||
and the server which provides the contents of the profile URL(s). | and the server which provides the contents of the profile URI(s). | |||
2.3 Overview | 2.3 Overview | |||
The profile life cycle can be described by five functional steps. | The profile life cycle can be described by five functional steps. | |||
These steps are not necessarily discrete. However it is useful to | These steps are not necessarily discrete. However it is useful to | |||
describe these steps as logically distinct. These steps are named | describe these steps as logically distinct. These steps are named | |||
as follows: | as follows: | |||
Discovery - discover a profile delivery server | Discovery - discover a profile delivery server | |||
Enrollment - enroll with the profile delivery server | Enrollment - enroll with the profile delivery server | |||
skipping to change at page 4, line 41 | skipping to change at page 4, line 42 | |||
port at which it SHOULD enroll with the profile delivery server. As | port at which it SHOULD enroll with the profile delivery server. As | |||
there is no single discovery mechanism which will work in all network | there is no single discovery mechanism which will work in all network | |||
environments, a number of discovery mechanisms are defined with a | environments, a number of discovery mechanisms are defined with a | |||
prescribed order in which the UA SHOULD try them until one succeeds. | prescribed order in which the UA SHOULD try them until one succeeds. | |||
Enrollment is the process by which a UA SHOULD make itself known to | Enrollment is the process by which a UA SHOULD make itself known to | |||
the profile delivery server. In enrolling the UA MUST provide | the profile delivery server. In enrolling the UA MUST provide | |||
identity information, name requested profile type(s) and supported | identity information, name requested profile type(s) and supported | |||
protocols for profile retrieval. It SHOULD also subscribe to a | protocols for profile retrieval. It SHOULD also subscribe to a | |||
mechanism for notification of profile changes. As a result of | mechanism for notification of profile changes. As a result of | |||
enrollment, the UA receives a URL for each of the profiles that the | enrollment, the UA receives the data or the URI for each of the | |||
profile delivery server is able to provide. Each profile type (set) | profiles that the profile delivery server is able to provide. Each | |||
requires a separate enrollment or SUBSCRIBE session. | profile type (set) requires a separate enrollment or SUBSCRIBE | |||
session. | ||||
Profile Retrieval is the process of retrieving the content for each | Profile Retrieval is the process of retrieving the content for each | |||
of the profiles the UA requested. | of the profiles the UA requested. | |||
Profile Change Notification is the process by which the profile | Profile Change Notification is the process by which the profile | |||
delivery server notifies the UA that the content of one or more of | delivery server notifies the UA that the content of one or more of | |||
the profiles has changed. Subsequently the UA SHOULD retrieve the | the profiles has changed. If the content is provided indirectly the | |||
profile from the specified URL upon receipt of the change | UA SHOULD retrieve the profile from the specified URI upon receipt of | |||
notification. | the change notification. | |||
Profile Upload is the process by which a UA or other entity (e.g. | Profile Upload is the process by which a UA or other entity (e.g. | |||
OSS, corporate directory or configuration management server) pushes a | OSS, corporate directory or configuration management server) pushes a | |||
change to the profile data back up to the profile delivery server. | change to the profile data back up to the profile delivery server. | |||
This framework defines a new SIP event package [RFC3265] to solve | This framework defines a new SIP event package [RFC3265] to solve | |||
enrollment and profile change notification steps. | enrollment and profile change notification steps. | |||
The question arises as to why SIP should be used for the profile | The question arises as to why SIP should be used for the profile | |||
delivery framework. In this document SIP is used for only a small | delivery framework. In this document SIP is used for only a small | |||
skipping to change at page 6, line 5 | skipping to change at page 6, line 11 | |||
doing so the user agent can replace the previous user's profile data | doing so the user agent can replace the previous user's profile data | |||
while still keeping the devices profile data that may be necessary | while still keeping the devices profile data that may be necessary | |||
for core functionality and communication described in this document. | for core functionality and communication described in this document. | |||
3. Profile Change Event Notification Package | 3. Profile Change Event Notification Package | |||
This section defines a new SIP event package [RFC3265]. The purpose | This section defines a new SIP event package [RFC3265]. The purpose | |||
of this event package is to send to subscribers notification of | of this event package is to send to subscribers notification of | |||
content changes to the profile(s) of interest and to provide the | content changes to the profile(s) of interest and to provide the | |||
location of the profile(s) via content indirection | location of the profile(s) via content indirection | |||
[I-D.ietf-sip-content-indirect-mech]. | [I-D.ietf-sip-content-indirect-mech] or directly in the body of the | |||
NOTIFY. If the profile is large enough to cause packet fragmentation | ||||
over the transport protocol, the profile SHOULD use content | ||||
indirection. The user agent SHOULD specify the profile delivery | ||||
means and format via the MIME type in the Accepts header. | ||||
3.1 Event Package Name | 3.1 Event Package Name | |||
The name of this package is "sip-profile". This value appears in the | The name of this package is "sip-profile". This value appears in the | |||
Event header field present in SUBSCRIBE and NOTIFY requests for this | Event header field present in SUBSCRIBE and NOTIFY requests for this | |||
package as defined in [RFC3265]. | package as defined in [RFC3265]. | |||
3.2 Event Package Parameters | 3.2 Event Package Parameters | |||
This package defines the following new parameters for the event | This package defines the following new parameters for the event | |||
header: profile-type, vendor, model, version, effective-by. The | header: profile-name, vendor, model, version, effective-by. The | |||
effective-by parameter is for use in NOTIFY requests only. The | effective-by parameter is for use in NOTIFY requests only. The | |||
others are for use in the SUBSCRIBE request, but may be used in | others are for use in the SUBSCRIBE request, but may be used in | |||
NOTIFY requests as well. | NOTIFY requests as well. | |||
The profile-type parameter is used to indicate the profile type the | The profile-name parameter is used to indicate the token name of the | |||
user agent wishes to obtain URLs for and be notified of change. This | profile type the user agent wishes to obtain URIs for or to | |||
parameter allows the URL semantics to be opaque to the subscribing | explicitly specify the URI to which it is to be notified of change. | |||
user agent as all it needs to know is the token value for this | Using a token in this parameter allows the URL semantics to be opaque | |||
parameter. This document defines two type categories of profiles. | to the subscribing user agent. All it needs to know is the token | |||
The contents or format of the profiles is outside the scope of this | value for this parameter. However in some cases the user agent may | |||
document. The two types of profiles define here are "user" and | know the URI of the profile and only wishes to know about changes to | |||
"device". Specifying device type profile(s) indicates the desire for | the profile. The user agent MAY supply the URI for the profile as | |||
the URL(s) and change notification of all profiles that are specific | the value of the profile-name parameter. This document defines two | |||
to the device or user agent. Specifying user type profile(s) | type categories of profiles and their token names. The contents or | |||
indicates the desire for the URL(s) and change notification of all | format of the profiles is outside the scope of this document. The | |||
profile(s) that are specific to the user. The user or device is | two types of profiles define here are "user" and "device". | |||
identified in the URI of the SUBSCRIBE request. The Accept header of | Specifying device type profile(s) indicates the desire for the URI(s) | |||
the SUBSCRIBE request MUST include the MIME types for all profile | and change notification of all profiles that are specific to the | |||
content types that the subscribing user agent wishes to retrieve | device or user agent. Specifying user type profile(s) indicates the | |||
profiles or receive change notifications. | desire for the URI(s) and change notification of all profile(s) that | |||
are specific to the user. The user or device is identified in the | ||||
URI of the SUBSCRIBE request. The Accept header of the SUBSCRIBE | ||||
request MUST include the MIME types for all profile content types | ||||
that the subscribing user agent wishes to retrieve profiles or | ||||
receive change notifications. | ||||
The user or device token in the profile-type parameter may | The user or device token in the profile-name parameter may | |||
represent a class or set of profiles as opposed to a single | represent a class or set of profiles as opposed to a single | |||
profile. As standards are defined for specific profile contents | profile. As standards are defined for specific profile contents | |||
related to the user or device, it may be desirable to define | related to the user or device, it may be desirable to define | |||
additional tokens for the profile-type header. This is to allow a | additional tokens for the profile-name header. This is to allow a | |||
user agent to subscribe to that specific profile as opposed to the | user agent to subscribe to that specific profile as opposed to the | |||
entire class or set of user or device profiles. | entire class or set of user or device profiles. | |||
The rational for the separation of user and device type profiles is | The rational for the separation of user and device type profiles is | |||
provided in section Section 2.3. It should be noted that either type | provided in section Section 2.3. It should be noted that either type | |||
may indicate that zero or more URLs are provided in the NOTIFY | may indicate that zero or more URIs are provided in the NOTIFY | |||
request. As discussed, a default user may be assigned to a device. | request. As discussed, a default user may be assigned to a device. | |||
In this scenario the profile delivery server may provide the URL(s) | In this scenario the profile delivery server may provide the URI(s) | |||
in the NOTIFY request for the default user when subscribing to the | in the NOTIFY request for the default user when subscribing to the | |||
device profile type. Effectively the device profile type becomes a | device profile type. Effectively the device profile type becomes a | |||
superset of the user profile type subscription. The user type is | superset of the user profile type subscription. The user type is | |||
still useful in this scenario to allow the user agent to obtain | still useful in this scenario to allow the user agent to obtain | |||
profile URLs for a user other than the default user. This provides | profile data or URIs for a user other than the default user. This | |||
the ability to support a hoteling function where a user may "login" | provides the ability to support a hoteling function where a user may | |||
to any user agent and have it use a users profile(s). | "login" to any user agent and have it use a users profile(s). | |||
The vendor, model and version parameters are tokens specified by the | The vendor, model and version parameters are tokens specified by the | |||
vendor of the user agent. These parameters are useful to the profile | vendor of the user agent. These parameters are useful to the profile | |||
delivery server to effect the profiles provided. In some scenarios | delivery server to effect the profiles provided. In some scenarios | |||
it is desirable to provide different profiles based upon these | it is desirable to provide different profiles based upon these | |||
parameters. For example feature parameter X in a profile may work | parameters. For example feature parameter X in a profile may work | |||
differently on two versions of user agent. This gives the profile | differently on two versions of user agent. This gives the profile | |||
deliver server the ability to compensate for or take advantage of the | deliver server the ability to compensate for or take advantage of the | |||
differences. | differences. | |||
The "effective-by" parameter in the Event header of the NOTIFY | The "effective-by" parameter in the Event header of the NOTIFY | |||
specifies the maximum number of seconds before the user agent MUST | specifies the maximum number of seconds before the user agent MUST | |||
make the new profile effective. A value of 0 (zero) indicates that | make the new profile effective. A value of 0 (zero) indicates that | |||
the user agent MUST make the profiles effective immediately (despite | the user agent MUST make the profiles effective immediately (despite | |||
possible service interruptions). This gives the profile delivery | possible service interruptions). This gives the profile delivery | |||
server the power to control when the profile is effective. This may | server the power to control when the profile is effective. This may | |||
be important to resolve an emergency problem or disable a user agent | be important to resolve an emergency problem or disable a user agent | |||
immediately. | immediately. | |||
SUBSCRIBE request example: | SUBSCRIBE request example: | |||
Event: sip-profile;profile-type=device; | Event: sip-profile;profile-name=device; | |||
vendor=acme;model=Z100;version=1.2.3 | vendor=acme;model=Z100;version=1.2.3 | |||
Event: sip-profile;profile-name= | ||||
"http://example.com/services/user-profiles/users/freds.xml"; | ||||
vendor=premier;model=trs8000;version=5.5 | ||||
NOTIFY request examples: | NOTIFY request examples: | |||
Event:sip-profile;effective-by=0 | Event:sip-profile;effective-by=0 | |||
Event:sip-profile;effective-by=3600 | Event:sip-profile;effective-by=3600 | |||
3.3 SUBSCRIBE Bodies | 3.3 SUBSCRIBE Bodies | |||
This package defines no new use of the SUBSCRIBE request body. | This package defines no new use of the SUBSCRIBE request body. | |||
3.4 Subscription Duration | 3.4 Subscription Duration | |||
skipping to change at page 8, line 11 | skipping to change at page 8, line 34 | |||
As profiles are generally static with infrequent changes, it is | As profiles are generally static with infrequent changes, it is | |||
recommended that default subscription duration be 86400 seconds (one | recommended that default subscription duration be 86400 seconds (one | |||
day). | day). | |||
3.5 NOTIFY Bodies | 3.5 NOTIFY Bodies | |||
The size of profile content is likely to be hundreds to several | The size of profile content is likely to be hundreds to several | |||
thousand bytes in size. Frequently even with very modest sized SDP | thousand bytes in size. Frequently even with very modest sized SDP | |||
bodies, SIP messages get fragmented causing problems for many user | bodies, SIP messages get fragmented causing problems for many user | |||
agents. For this reason the NOTIFY body MUST use content indirection | agents. For this reason the NOTIFY body MUST use content indirection | |||
[I-D.ietf-sip-content-indirect-mech] for providing the profiles. | [I-D.ietf-sip-content-indirect-mech] for providing the profiles if | |||
the Accept header of the SUBSCRIBE included the MIME type: message/ | ||||
external-body indicating support for content indirection. | ||||
The profile delivery server MUST include the Content-ID defined in | When delivering profiles via content indirection the profile delivery | |||
server MUST include the Content-ID defined in | ||||
[I-D.ietf-sip-content-indirect-mech] for each profile URL. This is | [I-D.ietf-sip-content-indirect-mech] for each profile URL. This is | |||
to avoid unnecessary download of the profiles. Some user agents are | to avoid unnecessary download of the profiles. Some user agents are | |||
not able to make a profile effective without rebooting or restarting. | not able to make a profile effective without rebooting or restarting. | |||
Rebooting is probably something to be avoided on a user agent | Rebooting is probably something to be avoided on a user agent | |||
performing services such as telephony. In this way the Content-ID | performing services such as telephony. In this way the Content-ID | |||
allows the user agent to avoid unnecessary interruption of service as | allows the user agent to avoid unnecessary interruption of service as | |||
well. The Content-Type MUST be specified for each URL. | well. The Content-Type MUST be specified for each URI. | |||
Initially it is expected that most user agent vendors will use a | Initially it is expected that most user agent vendors will use a | |||
proprietary content type for the profiles retrieved from the | proprietary content type for the profiles retrieved from the | |||
URLs(s). It is hoped that over time a standard content type will | URIs(s). It is hoped that over time a standard content type will | |||
be specified that will be adopted by vendors of user agents. One | be specified that will be adopted by vendors of user agents. One | |||
direction that appears to be promising for this content is to use | direction that appears to be promising for this content is to use | |||
XML with name spaces [??] to segment the data into sets that the | XML with name spaces [??] to segment the data into sets that the | |||
user agent implementer may choose to support based upon desired | user agent implementer may choose to support based upon desired | |||
feature set. The specification of the content is out of the scope | feature set. The specification of the content is out of the scope | |||
of this document. | of this document. | |||
Likewise the URL scheme used in the content indirection is outside | Likewise the URL scheme used in the content indirection is outside | |||
the scope of this document. This document is agnostic to the URL | the scope of this document. This document is agnostic to the URL | |||
schemes as the profile content may dictate what is required. It is | schemes as the profile content may dictate what is required. It is | |||
skipping to change at page 9, line 14 | skipping to change at page 9, line 42 | |||
system that integrates with a corporate directory and IT system or | system that integrates with a corporate directory and IT system or | |||
carrier OSS, where the profiles are automatically generated. The | carrier OSS, where the profiles are automatically generated. The | |||
design of this framework intentionally provides the flexibility of | design of this framework intentionally provides the flexibility of | |||
implementation from simple/cheap to complex/expensive. | implementation from simple/cheap to complex/expensive. | |||
If the user or device is not known to the profile delivery server, | If the user or device is not known to the profile delivery server, | |||
the implementer MAY accept the subscription or reject it. It is | the implementer MAY accept the subscription or reject it. It is | |||
recommended that the implementer accept the subscription. It is | recommended that the implementer accept the subscription. It is | |||
useful for the profile delivery server to maintain the subscription | useful for the profile delivery server to maintain the subscription | |||
as an administrator may add the user or device to the system, | as an administrator may add the user or device to the system, | |||
defining the profile contents. This allow the profile delivery | defining the profile contents. This allows the profile delivery | |||
server to immediately send a NOTIFY request with the profile URLs. | server to immediately send a NOTIFY request with the profile URIs. | |||
If the profile delivery server does not accept the subscription from | If the profile delivery server does not accept the subscription from | |||
an unknown user or device, the administer or user must manually | an unknown user or device, the administer or user must manually | |||
provoke the user agent to reSUBSCRIBE. This may be difficult if the | provoke the user agent to reSUBSCRIBE. This may be difficult if the | |||
user agent and administrator are at different sites. | user agent and administrator are at different sites. | |||
3.7 Notifier generation of NOTIFY requests | 3.7 Notifier generation of NOTIFY requests | |||
As in [RFC3265], the profile delivery server MUST always send a | As in [RFC3265], the profile delivery server MUST always send a | |||
NOTIFY request upon accepting a subscription. If the device or user | NOTIFY request upon accepting a subscription. If the device or user | |||
is unknown to the profile delivery server and it chooses to accept | is unknown to the profile delivery server and it chooses to accept | |||
the subscription, the implementer has two choices. A NOTIFY MAY be | the subscription, the implementer has two choices. A NOTIFY MAY be | |||
sent with no body or content indirection containing the profile | sent with no body or content indirection containing the profile | |||
URL(s). Alternatively a NOTIFY MAY be sent with URL(s) pointing to a | URI(s). Alternatively a NOTIFY MAY be sent with URI(s) pointing to a | |||
default data set. Typically this data set allows for only limited | default data set. Typically this data set allows for only limited | |||
functionality of the user agent (e.g. a phone user agent with data to | functionality of the user agent (e.g. a phone user agent with data to | |||
call help desk and emergency services.). This is an implementation | call help desk and emergency services.). This is an implementation | |||
and business policy decision. | and business policy decision. | |||
A user or device known and fully provisioned on the profile delivery | A user or device known and fully provisioned on the profile delivery | |||
server SHOULD send a NOTIFY with content indirection containing URLs | server SHOULD send a NOTIFY with profile data or content indirection | |||
for all of the profiles associated with the user or device (i.e. | containing URIs for all of the profiles associated with the user or | |||
which ever specified in the profile-type parameter). The device may | device (i.e. which ever specified in the profile-name parameter). | |||
be associated with a default user. The URL(s) for this default user | The device may be associated with a default user. The URI(s) for | |||
profiles MAY be included with the URL(s) of the device if the profile | this default user profiles MAY be included with the URI(s) of the | |||
type specified is device. | device if the profile type specified is device. | |||
A user agent can provide Hoteling by collecting a user’s AOR and | A user agent can provide Hoteling by collecting a user’s AOR and | |||
credentials needed to SUBSCRIBE and retrieve the user profiles from | credentials needed to SUBSCRIBE and retrieve the user profiles from | |||
the URL(s). Hoteling functionality is achieved by subscribing to the | the URI(s). Hoteling functionality is achieved by subscribing to the | |||
AOR and specifying the "user" profile type. This same mechanism can | AOR and specifying the "user" profile type. This same mechanism can | |||
be used to secure a user agent, requiring a user to login to enable | be used to secure a user agent, requiring a user to login to enable | |||
functionality beyond the default user’s restricted functionality. | functionality beyond the default user’s restricted functionality. | |||
The profile delivery server MAY specify when the new profiles MUST be | The profile delivery server MAY specify when the new profiles MUST be | |||
made effective by the user agent. By default the user agent makes | made effective by the user agent. By default the user agent makes | |||
the profiles effective as soon as it thinks that it is non-obtrusive. | the profiles effective as soon as it thinks that it is non-obtrusive. | |||
However the profile delivery server MAY specify a maximum time in | However the profile delivery server MAY specify a maximum time in | |||
seconds (zero or more), in the effective-by event header parameter, | seconds (zero or more), in the effective-by event header parameter, | |||
by which the user agent MUST make the new profiles effective. | by which the user agent MUST make the new profiles effective. | |||
3.8 Subscriber processing of NOTIFY requests | 3.8 Subscriber processing of NOTIFY requests | |||
The user agent subscribing to this event package MUST adhere to the | The user agent subscribing to this event package MUST adhere to the | |||
NOTIFY request processing behavior specified in [RFC3265]. The user | NOTIFY request processing behavior specified in [RFC3265]. The user | |||
agent MUST make the profiles effective as specified in the NOTIFY | agent MUST make the profiles effective as specified in the NOTIFY | |||
request (see section Section 3.7). The user agent SHOULD use one of | request (see section Section 3.7). The user agent SHOULD use one of | |||
skipping to change at page 10, line 38 | skipping to change at page 11, line 19 | |||
this reason no throttling or minimum period between NOTIFY requests | this reason no throttling or minimum period between NOTIFY requests | |||
is specified for this package. | is specified for this package. | |||
3.11 State Agents | 3.11 State Agents | |||
State agents are not applicable to this event package. | State agents are not applicable to this event package. | |||
3.12 Examples | 3.12 Examples | |||
SUBSCRIBE sip:00df1e004cd0@example.com SIP/2.0 | SUBSCRIBE sip:00df1e004cd0@example.com SIP/2.0 | |||
Event: sip-profile;profile-type=device;vendor=acme; | Event: sip-profile;profile-name=device;vendor=acme; | |||
model=Z100;version=1.2.3 | model=Z100;version=1.2.3 | |||
From: sip:00df1e004cd0@acme.com;tag=1234 | From: sip:00df1e004cd0@acme.com;tag=1234 | |||
To: sip:00df1e004cd0@acme.com;tag=abcd | To: sip:00df1e004cd0@acme.com;tag=abcd | |||
Call-ID: 3573853342923422@10.1.1.44 | Call-ID: 3573853342923422@10.1.1.44 | |||
CSeq: 2131 SUBSCRIBE | CSeq: 2131 SUBSCRIBE | |||
Contact: sip:00df1e004cd0@10.1.1.44 | Contact: sip:00df1e004cd0@10.1.1.44 | |||
Content-Length: 0 | Content-Length: 0 | |||
NOTIFY sip:00df1e004cd0@10.1.1.44 SIP/2.0 | NOTIFY sip:00df1e004cd0@10.1.1.44 SIP/2.0 | |||
Event: sip-profile;effective-by=3600 | Event: sip-profile;effective-by=3600 | |||
skipping to change at page 11, line 37 | skipping to change at page 12, line 18 | |||
Content-Type: application/z100-device-profile | Content-Type: application/z100-device-profile | |||
Content-ID: <39EHF78SA@example.com> | Content-ID: <39EHF78SA@example.com> | |||
--boundary42-- | --boundary42-- | |||
3.13 Use of URIs to Retrieve State | 3.13 Use of URIs to Retrieve State | |||
The profile type specified determines what goes in the user part of | The profile type specified determines what goes in the user part of | |||
the SUBSRIBE URI. If the profile type requested is "device", the | the SUBSRIBE URI. If the profile type requested is "device", the | |||
user part is an identity that MUST be unique across all user agents | user part of the URI is an identity that MUST be unique across all | |||
from all vendors. This identity must be static over time so that the | user agents from all vendors. This identity must be static over time | |||
profile delivery server can keep it associated with its profiles. | so that the profile delivery server can keep a specific device and | |||
For Ethernet hardware type user agents supporting only a single user | its identity associated with its profiles. For Ethernet hardware | |||
at a time this is most easily accomplished using its MAC address. | type user agents supporting only a single user at a time this is most | |||
Software based user agents running on general purpose hardware may | easily accomplished using its MAC address. Software based user | |||
also be able to use the MAC address for identity. However in | agents running on general purpose hardware may also be able to use | |||
situations where multiple instance of user agents are running on the | the MAC address for identity. However in situations where multiple | |||
same hardware it may be necessary to use a another scheme, such as | instances of user agents are running on the same hardware it may be | |||
using a unique serial number for the software. | necessary to use a another scheme, such as using a unique serial | |||
number for each software user agent instance. | ||||
For example a device having a MAC address of 00df1e004cd0 might | ||||
subscribe to the device profile URI: | ||||
sip:00df1e004cd0@sipuaconfig.example.com. When subscribing to a | ||||
user profile for user Fred S. the user agent would subscribe to | ||||
the URI: sip:freds@sipuaconfig.example.com | ||||
If the profile type request is "user" the URI in the SUBSCRIBE | If the profile type request is "user" the URI in the SUBSCRIBE | |||
request is the address of record for the user. This allows the user | request is the address of record for the user. This allows the user | |||
to specify (e.g. login) to the user agent by simply entering their | to specify (e.g. login) to the user agent by simply entering their | |||
known identity. | known identity. | |||
4. Profile Delivery Framework Details | 4. Profile Delivery Framework Details | |||
The following describes how different functional steps of the profile | The following describes how different functional steps of the profile | |||
delivery framework work. Also described here is how the event | delivery framework work. Also described here is how the event | |||
skipping to change at page 12, line 29 | skipping to change at page 13, line 17 | |||
for the user agent (out of the box) is what to use for the host and | for the user agent (out of the box) is what to use for the host and | |||
port in the URI. Due to the wide variation of environments in which | port in the URI. Due to the wide variation of environments in which | |||
the enrolling user agent may reside (e.g. behind residential router, | the enrolling user agent may reside (e.g. behind residential router, | |||
enterprise LAN, ISP, dialup modem) and the limited control that the | enterprise LAN, ISP, dialup modem) and the limited control that the | |||
administrator of the profile delivery server (e.g. enterprise, | administrator of the profile delivery server (e.g. enterprise, | |||
service provider) may have over that environment, no single discovery | service provider) may have over that environment, no single discovery | |||
mechanism works everywhere. Therefore a number of mechanisms SHOULD | mechanism works everywhere. Therefore a number of mechanisms SHOULD | |||
be tried in the specified order: SIP DHCP option [RFC3361], SIP DNS | be tried in the specified order: SIP DHCP option [RFC3361], SIP DNS | |||
SRV [RFC3263], DNS A record and manual. | SRV [RFC3263], DNS A record and manual. | |||
1. The first discovery mechanizm that SHOULD be tried is to | 1. The first discovery mechanism that SHOULD be tried is to | |||
construct the SUBSCRIBE URI as described in Section 3.13 using | construct the SUBSCRIBE URI as described in Section 3.13 using | |||
the host and port of out bound proxy discovered by the SIP DHCP | the host and port of out bound proxy discovered by the SIP DHCP | |||
option as described in [RFC3361]. If the SIP DHCP option is not | option as described in [RFC3361]. If the SIP DHCP option is not | |||
provided in the DHCP response, no SIP response or a SIP failure | provided in the DHCP response, no SIP response or a SIP failure | |||
response other than for authorization is received for the | response other than for authorization is received for the | |||
SUBSCRIBE request to the sip-profile event, the next discovery | SUBSCRIBE request to the sip-profile event, the next discovery | |||
mechanism SHOULD be tried. | mechanism SHOULD be tried. | |||
2. The local IP network domain for the user agent, either configured | 2. The local IP network domain for the user agent, either configured | |||
or discovered via DHCP, should be used with the technique in | or discovered via DHCP, should be used with the technique in | |||
[RFC3263] to obtain a host and port to use in the SUBSCRIBE URI. | [RFC3263] to obtain a host and port to use in the SUBSCRIBE URI. | |||
skipping to change at page 13, line 7 | skipping to change at page 13, line 43 | |||
should be tried next using the technique in [RFC3263] to obtain a | should be tried next using the technique in [RFC3263] to obtain a | |||
host and port to use in the SUBSCRIBE URI. If no SIP response or | host and port to use in the SUBSCRIBE URI. If no SIP response or | |||
a SIP failure response other than for authorization is received | a SIP failure response other than for authorization is received | |||
for the SUBSCRIBE request to the sip-profile event, the next | for the SUBSCRIBE request to the sip-profile event, the next | |||
discovery mechanism SHOULD be tried. | discovery mechanism SHOULD be tried. | |||
4. If all other discovery techniques fail, the user agent MUST | 4. If all other discovery techniques fail, the user agent MUST | |||
provide a manual means for the user to enter the host and port | provide a manual means for the user to enter the host and port | |||
used to construct the SUBSCRIBE URI. | used to construct the SUBSCRIBE URI. | |||
Once a user agent has successfully discovered, enrolled, received a | Once a user agent has successfully discovered, enrolled, received a | |||
NOTIFY response with profile URL(s), the user agent SHOULD cache the | NOTIFY response with profile data or URI(s), the user agent SHOULD | |||
SUBCRIBE URI to avoid having to rediscover the profile delivery | cache the SUBCRIBE URI to avoid having to rediscover the profile | |||
server again in the future. The user agent SHOULD NOT cache the | delivery server again in the future. The user agent SHOULD NOT cache | |||
SUBSCRIBE URI until it receives a NOTIFY with profile URL(s). The | the SUBSCRIBE URI until it receives a NOTIFY with profile data or | |||
reason for this is that a profile delivery server may send 202 | URI(s). The reason for this is that a profile delivery server may | |||
responses to SUBSCRIBE requests and NOTIFY responses to unknown user | send 202 responses to SUBSCRIBE requests and NOTIFY responses to | |||
agent (see section Section 3.6) with no URLs. Until the profile | unknown user agent (see section Section 3.6) with no URIs. Until the | |||
delivery server has sent a NOTIFY request with profile URL(s), it has | profile delivery server has sent a NOTIFY request with profile data | |||
not agreed to provide profiles. | or URI(s), it has not agreed to provide profiles. | |||
To illustrate why the user agent should not cache the SUBSCRIBE | To illustrate why the user agent should not cache the SUBSCRIBE | |||
URI until profile URL(s) are provided in the NOTIFY, consider the | URI until profile URI(s) are provided in the NOTIFY, consider the | |||
following example: a user agent running on a laptop plugged into | following example: a user agent running on a laptop plugged into | |||
a visited LAN in which a foreign profile delivery server is | a visited LAN in which a foreign profile delivery server is | |||
discovered. The profile delivery server never provides profile | discovered. The profile delivery server never provides profile | |||
URLs in the NOTIFY request as it is not provisioned to accept the | URIs in the NOTIFY request as it is not provisioned to accept the | |||
user agent. The user then takes the laptop to their enterprise | user agent. The user then takes the laptop to their enterprise | |||
LAN. If the user agent cached the SUBSCRIBE URI from the visited | LAN. If the user agent cached the SUBSCRIBE URI from the visited | |||
LAN (which did not provide profiles), the user agent would not | LAN (which did not provide profiles), the user agent would not | |||
attempt to discover the profile delivery server in the enterprise | attempt to discover the profile delivery server in the enterprise | |||
LAN which is provisioned to provide profiles to the user agent.. | LAN which is provisioned to provide profiles to the user agent.. | |||
4.2 Enrollment with Profile Server | 4.2 Enrollment with Profile Server | |||
Enrollment is accomplished by subscribing to the event package | Enrollment is accomplished by subscribing to the event package | |||
described in section Section 3. The enrollment process is useful to | described in section Section 3. The enrollment process is useful to | |||
skipping to change at page 13, line 45 | skipping to change at page 14, line 33 | |||
profile delivery server is provisioned to provide profiles to; those | profile delivery server is provisioned to provide profiles to; those | |||
present that the server may be provide profiles in the future; and | present that the server may be provide profiles in the future; and | |||
those that the server can automatically provide default profiles). | those that the server can automatically provide default profiles). | |||
It is an implementation choice and business policy as to whether the | It is an implementation choice and business policy as to whether the | |||
profile delivery server provides profiles to user agents that it is | profile delivery server provides profiles to user agents that it is | |||
not provisioned to do so. However the profile server SHOULD accept | not provisioned to do so. However the profile server SHOULD accept | |||
(with 2xx response) SUBSCRIBE requests from any user agent. | (with 2xx response) SUBSCRIBE requests from any user agent. | |||
4.3 Notification of Profile Changes | 4.3 Notification of Profile Changes | |||
The NOTIFY request in the sip-profile event package server two | The NOTIFY request in the sip-profile event package serves two | |||
purposes. First it provides the user agent with a means to obtain | purposes. First it provides the user agent with a means to obtain | |||
the URL(s) for desired profiles without requiring the end user to | the profile data or URI(s) for desired profiles without requiring the | |||
manually enter them. It also provides the means for the profile | end user to manually enter them. It also provides the means for the | |||
delivery server to notify the user agent that the content of the | profile delivery server to notify the user agent that the content of | |||
profiles have changed and should be made effective. | the profiles have changed and should be made effective. | |||
4.4 Retrieval of Profile Data | 4.4 Retrieval of Profile Data | |||
The user agent retrieves it's needed profile(s) via the URL(s) | The user agent retrieves it's needed profile(s) via the URI(s) | |||
provide in the NOTIFY request as specified in section Section 3.5. | provide in the NOTIFY request as specified in section Section 3.5. | |||
The profile delivery server SHOULD secure the content of the profiles | The profile delivery server SHOULD secure the content of the profiles | |||
using one of the techniques described in Section 6. The user agent | using one of the techniques described in Section 6. The user agent | |||
SHOULD make the new profiles effective in the timeframe described in | SHOULD make the new profiles effective in the timeframe described in | |||
section Section 3.2. | section Section 3.2. | |||
The contents of the profiles SHOULD be cached by the user agent. | The contents of the profiles SHOULD be cached by the user agent. | |||
This it to avoid the situation where the content delivery server is | This it to avoid the situation where the content delivery server is | |||
not available, leaving the user agent non-functional. | not available, leaving the user agent non-functional. | |||
4.5 Upload of Profile Changes | 4.5 Upload of Profile Changes | |||
The user agent or other service MAY push changes up to the profile | The user agent or other service MAY push changes up to the profile | |||
delivery server using the technique appropriate to the profile's URL | delivery server using the technique appropriate to the profile's URL | |||
scheme (e.g. HTTP PUT method, FTP put command). The technique for | scheme (e.g. HTTP PUT method, FTP put command). The technique for | |||
pushing incremental or atomic changes MUST be described by the | pushing incremental or atomic changes MUST be described by the | |||
specific profile data framework. | specific profile data framework. | |||
5. IANA Considerations | 5. IANA Considerations | |||
[TBD] | There are several IANA considerations associated with this | |||
specification. | ||||
5.1 SIP Event Package | ||||
This specification registers a new event package as defined in | ||||
[RFC3265]. The following information required for this registration: | ||||
Package Name: sip-profile | ||||
Package or Template-Package: This is a package | ||||
Published Document: RFC XXXX (Note to RFC Editor: Please fill in | ||||
XXXX with the RFC number of this specification). | ||||
Person to Contact: Daniel Petrie dpetrie@pingtel.com | ||||
New event header parameters: profile-name, vendor, model, version, | ||||
effective-by | ||||
6. Security Considerations | 6. Security Considerations | |||
Profiles may contain sensitive data such as user credentials. The | Profiles may contain sensitive data such as user credentials. The | |||
protection of this data is accomplished via the profile retrieval | protection of this data depends upon how the data is delivered. If | |||
function. This simplifies the security solution as the SIP event | the data is delivered in the NOTIFY body, SIP authentication MUST be | |||
package does not need to authenticate, authorize or protect the | used for SUBSRIPTION and SIPS and/or S/MIME MAY be use to encrypt the | |||
contents of the SIP messages. Effectively the profile delivery | data. If the data is provided via content indirection, SIP | |||
server will provide profile URL(s) to any one. The URLs themselves | authentication is not necessary for the SUBSCRIBE request. With | |||
are protected via authentication, authorization and snooping. Three | content indirection the data is protected via the authentication, | |||
options for secure retrieval of profiles are follow: | authorization and encryption mechanisms provided by the profile URL | |||
scheme. Use of the URL scheme security mechanisms via content | ||||
indirection simplifies the security solution as the SIP event package | ||||
does not need to authenticate, authorize or protect the contents of | ||||
the SIP messages. Effectively the profile delivery server will | ||||
provide profile URI(s) to anyone. The URLs themselves are protected | ||||
via authentication, authorization and snooping (e.g. via HTTPS). | ||||
6.1 Symmetric Encryption of Profile Data | 6.1 Symmetric Encryption of Profile Data | |||
One security technique is to encrypted the profiles on the content | If the URL scheme used for content indirection does not provide a an | |||
delivery server using the AES symmetric encryption algorithm using a | authentication, authorization or encryption, a technique to provide | |||
key formed by a MD5 hash of the following: username ":" password. | this is to encrypted the profiles on the content delivery server | |||
The encrypted profiles are delivered by the content delivery server | using a symmetric encryption algorithm using a shared key. The | |||
via the URLs provided in the NOTIFY requests. Using this technique | encrypted profiles are delivered by the content delivery server via | |||
the profile delivery server does not need to provide authentication | the URIs provided in the NOTIFY requests. Using this technique the | |||
or authorization for the retrieval as the profiles are obscured. The | profile delivery server does not need to provide authentication or | |||
user agent must obtain the username and password from the user to | authorization for the retrieval as the profiles are obscured. The | |||
generate the key and perform AES decryption the profiles. This is | user agent must obtain the username and password from the user or | |||
the simplest security technique as it does not require any public key | other out of band means to generate the key and decrypt the profiles. | |||
infrastructure or TLS implementation on the user agent (which often | ||||
has limited resources). | ||||
6.2 Client Certificate Authentication with HTTPS | ||||
In another technique the content delivery server authenticates the | ||||
user or user agent by requesting the client's certificate in the TLS | ||||
connection established as described by the profile URL. The content | ||||
delivery server authorizes the profile retrieval using the | ||||
certificate identity and business policy choices provide by the | ||||
server implementer. The profile data is obscured from snooping using | ||||
the encryption mechanisms provide by the TLS connect. This has nice | ||||
properties of not requiring end user intervention, but has a higher | ||||
administrative cost for user agent certificate management and | ||||
distribution. It also requires the certificates to be in place | ||||
before enabling profile delivery. | ||||
6.3 HTTPS Authentication | ||||
Alternatively the authentication mechanizms described in [RFC2617] | ||||
are used. The content delivery server authorizes the profile | ||||
retrieval using the certificate identity and business policy choices | ||||
provide by the server implementer. The profile data is obscure from | ||||
snooping using the encryption mechanisms provide by the TLS connect. | ||||
This also requires the overhead of a TLS implementation on the user | ||||
agent. | ||||
For all of these techniques the user agent should take care in how it | ||||
stores or caches the profiles to avoid theft. It is recommended that | ||||
a symmetric encryption technique such as that described in section | ||||
Section 6.1 be used. This also requires the overhead of a TLS | ||||
implementation on the user agent. | ||||
7. Differences from Simple XCAP Package | 7. Differences from Simple XCAP Package | |||
The author of this document had an action item from the July 2003 | The author of this document had an action item from the July 2003 | |||
IETF SIPPING WG meeting to consider resolving the differences of the | IETF SIPPING WG meeting to consider resolving the differences of the | |||
sip-profile and simple XCAP package [I-D.ietf-simple-xcap-package]. | sip-profile and simple XCAP package [I-D.ietf-simple-xcap-package]. | |||
It is the author's opinion that XCAP [I-D.rosenberg-simple-xcap] can | It is the author's opinion that XCAP [I-D.rosenberg-simple-xcap] can | |||
be supported by the framework and event package defined in this | be supported by the framework and event package defined in this | |||
document as it is simply a URL using the HTTP or HTTPS scheme. The | document and that this package provides a superset of the | |||
following lists the differences between the event packaged defined in | functionality in the XCAP package. The following lists the | |||
this document vs. the one defined in [I-D.ietf-simple-xcap-package]. | differences between the event packaged defined in this document vs. | |||
the one defined in [I-D.ietf-simple-xcap-package]. | ||||
The simple XCAP package requires that the relative path be known and | The simple XCAP package requires that the relative path be known and | |||
specified by the user agent when subscribing for change notification. | specified by the user agent when subscribing for change notification. | |||
The event package in this document requires a token be known and | The event package in this document requires a token or complete URI | |||
specified when subscribing. The advantage of the latter is that | be known and specified when subscribing. The advantage of the token | |||
bootstrapping is easier and well defined. It also leaves the freedom | is that bootstrapping is easier and well defined. It also leaves the | |||
of specifying the entire path of the profile URL up to the profile | freedom of specifying and changing the entire path of the profile URL | |||
delivery server. | up to the profile delivery server. | |||
The event package defined in this document allows multiple URLs to be | The event package defined in this document allows multiple URIs to be | |||
provided in the NOTIFY request body as a result of a single token | provided in the NOTIFY request body as a result of a single token | |||
specified in the SUBSCRIBE event parameter: profile-type. This | specified in the SUBSCRIBE event parameter: profile-name. This | |||
allows the profile delivery server to provide sets of profiles that | allows the profile delivery server to provide sets of profiles that | |||
the user agent may not have enough information to specify in the | the user agent may not have enough information to specify in the | |||
SUBSCRIBE URI (e.g. at boot strapping time the user agent may not | SUBSCRIBE URI (e.g. at boot strapping time the user agent may not | |||
know the user's identity, but the profile delivery server may know | know the user's identity, but the profile delivery server may know | |||
the default user for the device's identity) or the doc-component of | the default user for the device's identity) or the doc-component of | |||
the simple XCAP package. | the simple XCAP package. | |||
The simple XCAP package provides profile data changes or deltas in | ||||
the body of the NOTIFY request. This is a desirable feature, but | ||||
approach in the simple XCAP package has a few disadvantages: | ||||
o SIP signaling requires authentication, authorization and | ||||
encryption (SIPS) to protect the profiles where the event package | ||||
in this document does not. SIPS may require more resources than | ||||
are available on many user agents. | ||||
o The content of a profile change may be large, causing | ||||
fragmentation and problems or constraints when using UDP. | ||||
The feature of providing profile data changes or deltas can be | ||||
provided in the package proposed in this document by providing two | ||||
URLs in the NOTIFY request for each profile (i.e. a URL for the | ||||
complete profile and another for the changes). | ||||
All other functional differences between | All other functional differences between | |||
draft-ietf-sipping-config-framework-00 and | draft-ietf-sipping-config-framework-00 and | |||
draft-ietf-simple-xcap-package-00 are believed to be resolved in this | draft-ietf-simple-xcap-package-00 are believed to be resolved in this | |||
version of this document. | version of this document. | |||
8. Open Issues | 8. Open Issues | |||
9. Change History | 9. Change History | |||
9.1 Changes from draft-ietf-sipping-config-framework-00.txt | 9.1 Changes from draft-ietf-sipping-config-framework-01.txt | |||
Changed the name of the profile-type event parameter to profile-name. | ||||
Also allow the profile-name parameter to be either a token or or an | ||||
explicit URI. | ||||
Allow content indirection to be optional. Clarified the use of the | ||||
Accept header to indicate how the profile is to be delivered. | ||||
Added some content to the Iana section. | ||||
9.2 Changes from draft-ietf-sipping-config-framework-00.txt | ||||
This version of the document was entirely restructured and re-written | This version of the document was entirely restructured and re-written | |||
from the previous version as it had been micro edited too much. | from the previous version as it had been micro edited too much. | |||
All of the aspects of defining the event package are now organized in | All of the aspects of defining the event package are now organized in | |||
one section and is believed to be complete and up to date with | one section and is believed to be complete and up to date with | |||
[RFC3265]. | [RFC3265]. | |||
The URI used to subscribe to the event package is now either the user | The URI used to subscribe to the event package is now either the user | |||
or device address or record. | or device address or record. | |||
skipping to change at page 17, line 19 | skipping to change at page 17, line 38 | |||
The user agent information (vendor, model, MAC and serial number) are | The user agent information (vendor, model, MAC and serial number) are | |||
now provided as event header parameters. | now provided as event header parameters. | |||
Added a mechanism to force profile changes to be make effective by | Added a mechanism to force profile changes to be make effective by | |||
the user agent in a specified maximum period of time. | the user agent in a specified maximum period of time. | |||
Changed the name of the event package from sip-config to sip-profile | Changed the name of the event package from sip-config to sip-profile | |||
Three high level securityapproaches are now specified. | Three high level securityapproaches are now specified. | |||
9.2 Changes from draft-petrie-sipping-config-framework-00.txt | 9.3 Changes from draft-petrie-sipping-config-framework-00.txt | |||
Changed name to reflect SIPPING work group item | Changed name to reflect SIPPING work group item | |||
Synchronized with changes to SIP DHCP [RFC3361], SIP [RFC3261] and | Synchronized with changes to SIP DHCP [RFC3361], SIP [RFC3261] and | |||
[RFC3263], SIP Events [RFC3265] and content indirection | [RFC3263], SIP Events [RFC3265] and content indirection | |||
[I-D.ietf-sip-content-indirect-mech] | [I-D.ietf-sip-content-indirect-mech] | |||
Moved the device identity parameters from the From field parameters | Moved the device identity parameters from the From field parameters | |||
to User-Agent header parameters. | to User-Agent header parameters. | |||
Many thanks to Rich Schaaf of Pingtel, Cullen Jennings of Cisco and | Many thanks to Rich Schaaf of Pingtel, Cullen Jennings of Cisco and | |||
Adam Roach of Dyamicsoft for the great comments and input. | Adam Roach of Dyamicsoft for the great comments and input. | |||
9.3 Changes from draft-petrie-sip-config-framework-01.txt | 9.4 Changes from draft-petrie-sip-config-framework-01.txt | |||
Changed the name as this belongs in the SIPPING work group. | Changed the name as this belongs in the SIPPING work group. | |||
Minor edits | Minor edits | |||
9.4 Changes from draft-petrie-sip-config-framework-00.txt | 9.5 Changes from draft-petrie-sip-config-framework-00.txt | |||
Many thanks to those who contributed and commented on the previous | Many thanks to those who contributed and commented on the previous | |||
draft. Detailed comments were provided by Henning Schulzrinne from | draft. Detailed comments were provided by Jonathan Rosenberg from | |||
Columbia U., Cullen Jennings from Cisco, Rohan Mahy from Cisco, Rich | Dynamicsoft, Henning Schulzrinne from Columbia U., Cullen Jennings | |||
Schaaf from Pingtel. | from Cisco, Rohan Mahy from Cisco, Rich Schaaf from Pingtel. | |||
Split the enrollment into a single SUBSCRIBE dialog for each profile. | Split the enrollment into a single SUBSCRIBE dialog for each profile. | |||
The 00 draft sent a single SUBSCRIBE listing all of the desired. | The 00 draft sent a single SUBSCRIBE listing all of the desired. | |||
These have been split so that each enrollment can be routed | These have been split so that each enrollment can be routed | |||
differently. As there is a concept of device specific and | differently. As there is a concept of device specific and | |||
user specific profiles, these may also be managed on separate | user specific profiles, these may also be managed on separate | |||
servers. For instance in a roaming situation the device might get | servers. For instance in a roaming situation the device might get | |||
it's profile data from a local server which knows the LAN specific | it's profile data from a local server which knows the LAN specific | |||
profile data. At the same time the user specific profiles might come | profile data. At the same time the user specific profiles might come | |||
skipping to change at page 19, line 4 | skipping to change at page 19, line 23 | |||
[I-D.rosenberg-simple-xcap] | [I-D.rosenberg-simple-xcap] | |||
Rosenberg, J., "The Extensible Markup Language (XML) | Rosenberg, J., "The Extensible Markup Language (XML) | |||
Configuration Access Protocol (XCAP)", | Configuration Access Protocol (XCAP)", | |||
draft-rosenberg-simple-xcap-00 (work in progress), May | draft-rosenberg-simple-xcap-00 (work in progress), May | |||
2003. | 2003. | |||
[I-D.sinnreich-sipdev-req] | [I-D.sinnreich-sipdev-req] | |||
Butcher, I., Lass, S., Petrie, D., Sinnreich, H. and C. | Butcher, I., Lass, S., Petrie, D., Sinnreich, H. and C. | |||
Stredicke, "SIP Telephony Device Requirements, | Stredicke, "SIP Telephony Device Requirements, | |||
Configuration and Data", draft-sinnreich-sipdev-req-02 | Configuration and Data", draft-sinnreich-sipdev-req-03 | |||
(work in progress), October 2003. | (work in progress), February 2004. | |||
[RFC0822] Crocker, D., "Standard for the format of ARPA Internet | [RFC0822] Crocker, D., "Standard for the format of ARPA Internet | |||
text messages", STD 11, RFC 822, August 1982. | text messages", STD 11, RFC 822, August 1982. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC | [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC | |||
2131, March 1997. | 2131, March 1997. | |||
[RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor | [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor | |||
Extensions", RFC 2132, March 1997. | Extensions", RFC 2132, March 1997. | |||
[RFC2246] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A. | [RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", | |||
and P. Kocher, "The TLS Protocol Version 1.0", RFC 2246, | RFC 2246, January 1999. | |||
January 1999. | ||||
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext | Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext | |||
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | |||
[RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., | [RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., | |||
Leach, P., Luotonen, A. and L. Stewart, "HTTP | Leach, P., Luotonen, A. and L. Stewart, "HTTP | |||
Authentication: Basic and Digest Access Authentication", | Authentication: Basic and Digest Access Authentication", | |||
RFC 2617, June 1999. | RFC 2617, June 1999. | |||
skipping to change at page 20, line 18 | skipping to change at page 20, line 37 | |||
Author's Address | Author's Address | |||
Daniel Petrie | Daniel Petrie | |||
Pingtel Corp. | Pingtel Corp. | |||
400 W. Cummings Park | 400 W. Cummings Park | |||
Suite 2200 | Suite 2200 | |||
Woburn, MA 01801 | Woburn, MA 01801 | |||
US | US | |||
Phone: "Dan Petrie (+1 781 970 0111)"<sip:dpetrie@pingtel.com> | Phone: "Dan Petrie (+1 781 938 5306)"<sip:dpetrie@pingtel.com> | |||
EMail: dpetrie@pingtel.com | EMail: dpetrie@pingtel.com | |||
URI: http://www.pingtel.com/ | URI: http://www.pingtel.com/ | |||
Appendix A. Acknowledgments | Appendix A. Acknowledgments | |||
Intellectual Property Statement | Intellectual Property Statement | |||
The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
intellectual property or other rights that might be claimed to | intellectual property or other rights that might be claimed to | |||
pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
skipping to change at page 21, line 34 | skipping to change at page 21, line 34 | |||
this standard. Please address the information to the IETF Executive | this standard. Please address the information to the IETF Executive | |||
Director. | Director. | |||
The IETF has been notified of intellectual property rights claimed in | The IETF has been notified of intellectual property rights claimed in | |||
regard to some or all of the specification contained in this | regard to some or all of the specification contained in this | |||
document. For more information consult the online list of claimed | document. For more information consult the online list of claimed | |||
rights. | rights. | |||
Full Copyright Statement | Full Copyright Statement | |||
Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2004). All Rights Reserved. | |||
This document and translations of it may be copied and furnished to | This document and translations of it may be copied and furnished to | |||
others, and derivative works that comment on or otherwise explain it | others, and derivative works that comment on or otherwise explain it | |||
or assist in its implementation may be prepared, copied, published | or assist in its implementation may be prepared, copied, published | |||
and distributed, in whole or in part, without restriction of any | and distributed, in whole or in part, without restriction of any | |||
kind, provided that the above copyright notice and this paragraph are | kind, provided that the above copyright notice and this paragraph are | |||
included on all such copies and derivative works. However, this | included on all such copies and derivative works. However, this | |||
document itself may not be modified in any way, such as by removing | document itself may not be modified in any way, such as by removing | |||
the copyright notice or references to the Internet Society or other | the copyright notice or references to the Internet Society or other | |||
Internet organizations, except as needed for the purpose of | Internet organizations, except as needed for the purpose of | |||
End of changes. | ||||
This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |