draft-ietf-sipping-config-framework-07.txt | draft-ietf-sipping-config-framework-08.txt | |||
---|---|---|---|---|
SIPPING D. Petrie | SIPPING D. Petrie | |||
Internet-Draft SIPez LLC. | Internet-Draft SIPez LLC. | |||
Expires: January 18, 2006 July 17, 2005 | Expires: September 7, 2006 Mar 6, 2006 | |||
A Framework for Session Initiation Protocol User Agent Profile Delivery | A Framework for Session Initiation Protocol User Agent Profile Delivery | |||
draft-ietf-sipping-config-framework-07.txt | draft-ietf-sipping-config-framework-08.txt | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | 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 | 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. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
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 | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 1, line 33 | skipping to change at page 1, line 33 | |||
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 | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://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 January 18, 2006. | This Internet-Draft will expire on September 7, 2006. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2006). | |||
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 | |||
changes. This framework is also intended to ease ongoing | changes. This framework is also intended to ease ongoing | |||
administration and upgrading of large scale deployments of SIP user | administration and upgrading of large scale deployments of SIP user | |||
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. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Requirements Terminology . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Terminology . . . . . . . . . . . . . . . . . . . 4 | |||
3. Profile Delivery Framework Terminology . . . . . . . . . . . 4 | 3. Profile Delivery Framework Terminology . . . . . . . . . . . . 5 | |||
4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
5. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 5. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
5.1 Service Provider Use Case Scenario Bootstrapping with | 5.1. Service Provider Use Case Scenario Bootstrapping with | |||
Digest Authentication . . . . . . . . . . . . . . . . . . 7 | Digest Authentication . . . . . . . . . . . . . . . . . . 7 | |||
5.2 Service Provider Use Case Scenario Bootstrapping with | 5.2. Service Provider Use Case Scenario Bootstrapping with | |||
Device Certificate . . . . . . . . . . . . . . . . . . . . 9 | Device Certificate . . . . . . . . . . . . . . . . . . . 9 | |||
6. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 6. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
7. Profile Change Event Notification Package . . . . . . . . . 11 | 7. Profile Change Event Notification Package . . . . . . . . . . 11 | |||
7.1 Event Package Name . . . . . . . . . . . . . . . . . . . . 11 | 7.1. Event Package Name . . . . . . . . . . . . . . . . . . . 11 | |||
7.2 Event Package Parameters . . . . . . . . . . . . . . . . . 11 | 7.2. Event Package Parameters . . . . . . . . . . . . . . . . 11 | |||
7.3 SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . 16 | 7.3. SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . 15 | |||
7.4 Subscription Duration . . . . . . . . . . . . . . . . . . 16 | 7.4. Subscription Duration . . . . . . . . . . . . . . . . . . 16 | |||
7.5 NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . 17 | 7.5. NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . 16 | |||
7.6 Notifier processing of SUBSCRIBE requests . . . . . . . . 17 | 7.6. Notifier processing of SUBSCRIBE requests . . . . . . . . 17 | |||
7.7 Notifier generation of NOTIFY requests . . . . . . . . . . 19 | 7.7. Notifier generation of NOTIFY requests . . . . . . . . . 18 | |||
7.8 Subscriber processing of NOTIFY requests . . . . . . . . . 19 | 7.8. Subscriber processing of NOTIFY requests . . . . . . . . 19 | |||
7.9 Handling of forked requests . . . . . . . . . . . . . . . 20 | 7.9. Handling of forked requests . . . . . . . . . . . . . . . 19 | |||
7.10 Rate of notifications . . . . . . . . . . . . . . . . . 20 | 7.10. Rate of notifications . . . . . . . . . . . . . . . . . . 19 | |||
7.11 State Agents . . . . . . . . . . . . . . . . . . . . . . 20 | 7.11. State Agents . . . . . . . . . . . . . . . . . . . . . . 19 | |||
7.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . 20 | 7.12. Examples . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
7.13 Use of URIs to Retrieve State . . . . . . . . . . . . . 21 | 7.13. Use of URIs to Retrieve State . . . . . . . . . . . . . . 20 | |||
7.13.1 Device URIs . . . . . . . . . . . . . . . . . . . . 22 | 7.13.1. Device URIs . . . . . . . . . . . . . . . . . . . . . 21 | |||
7.13.2 User and Application URIs . . . . . . . . . . . . . 23 | 7.13.2. User and Application URIs . . . . . . . . . . . . . . 22 | |||
7.13.3 Local Network URIs . . . . . . . . . . . . . . . . . 24 | 7.13.3. Local Network URIs . . . . . . . . . . . . . . . . . 23 | |||
8. Profile Delivery Framework Details . . . . . . . . . . . . . 24 | 8. Profile Delivery Framework Details . . . . . . . . . . . . . . 23 | |||
8.1 Discovery of Subscription URI . . . . . . . . . . . . . . 24 | 8.1. Discovery of Subscription URI . . . . . . . . . . . . . . 23 | |||
8.1.1 Discovery of Local Network URI . . . . . . . . . . . . 25 | 8.1.1. Discovery of Local Network URI . . . . . . . . . . . 24 | |||
8.1.2 Discovery of Device URI . . . . . . . . . . . . . . . 25 | 8.1.2. Discovery of Device URI . . . . . . . . . . . . . . . 24 | |||
8.1.3 Discovery of User and Application URI . . . . . . . . 28 | 8.1.3. Discovery of User and Application URI . . . . . . . . 27 | |||
8.2 Enrollment with Profile Server . . . . . . . . . . . . . . 29 | 8.2. Enrollment with Profile Server . . . . . . . . . . . . . 28 | |||
8.3 Notification of Profile Changes . . . . . . . . . . . . . 29 | 8.3. Notification of Profile Changes . . . . . . . . . . . . . 28 | |||
8.4 Retrieval of Profile Data . . . . . . . . . . . . . . . . 29 | 8.4. Retrieval of Profile Data . . . . . . . . . . . . . . . . 28 | |||
8.5 Upload of Profile Changes . . . . . . . . . . . . . . . . 30 | 8.5. Upload of Profile Changes . . . . . . . . . . . . . . . . 29 | |||
8.6 Usage of XCAP with the Profile Package . . . . . . . . . . 30 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 33 | 9.1. SIP Event Package . . . . . . . . . . . . . . . . . . . . 29 | |||
9.1 SIP Event Package . . . . . . . . . . . . . . . . . . . . 33 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 29 | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . 33 | 10.1. Confidential Profile Content in NOTIFY Request . . . . . 30 | |||
10.1 Confidential Profile Content in NOTIFY Request . . . . . 34 | 10.2. Confidential Profile Content via Content Indirection . . 31 | |||
10.2 Confidential Profile Content via Content Indirection . . 34 | 10.3. Integrity protection for non-confidential profiles . . . 32 | |||
10.3 Integrity protection for non-confidential profiles . . . 36 | 10.4. Initial Enrollment Using a Manufacturer's Certificate . . 32 | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
12. Change History . . . . . . . . . . . . . . . . . . . . . . . 36 | 12. Change History . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
12.1 Changes from | 12.1. Changes from | |||
draft-ietf-sipping-config-framework-06.txt . . . . . . . 36 | draft-ietf-sipping-config-framework-07.txt . . . . . . . 34 | |||
12.2 Changes from | 12.2. Changes from | |||
draft-ietf-sipping-config-framework-05.txt . . . . . . . 37 | draft-ietf-sipping-config-framework-06.txt . . . . . . . 34 | |||
12.3 Changes from | 12.3. Changes from | |||
draft-ietf-sipping-config-framework-04.txt . . . . . . . 37 | draft-ietf-sipping-config-framework-05.txt . . . . . . . 35 | |||
12.4 Changes from | 12.4. Changes from | |||
draft-ietf-sipping-config-framework-03.txt . . . . . . . 38 | draft-ietf-sipping-config-framework-04.txt . . . . . . . 35 | |||
12.5 Changes from | 12.5. Changes from | |||
draft-ietf-sipping-config-framework-02.txt . . . . . . . 38 | draft-ietf-sipping-config-framework-03.txt . . . . . . . 36 | |||
12.6 Changes from | 12.6. Changes from | |||
draft-ietf-sipping-config-framework-01.txt . . . . . . . 38 | draft-ietf-sipping-config-framework-02.txt . . . . . . . 36 | |||
12.7 Changes from | 12.7. Changes from | |||
draft-ietf-sipping-config-framework-00.txt . . . . . . . 38 | draft-ietf-sipping-config-framework-01.txt . . . . . . . 36 | |||
12.8 Changes from | 12.8. Changes from | |||
draft-petrie-sipping-config-framework-00.txt . . . . . . 39 | draft-ietf-sipping-config-framework-00.txt . . . . . . . 36 | |||
12.9 Changes from draft-petrie-sip-config-framework-01.txt . 39 | 12.9. Changes from | |||
12.10 Changes from draft-petrie-sip-config-framework-00.txt . 39 | draft-petrie-sipping-config-framework-00.txt . . . . . . 37 | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 | 12.10. Changes from draft-petrie-sip-config-framework-01.txt . . 37 | |||
13.1 Normative References . . . . . . . . . . . . . . . . . . 40 | 12.11. Changes from draft-petrie-sip-config-framework-00.txt . . 37 | |||
13.2 Informative References . . . . . . . . . . . . . . . . . 41 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . 42 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 38 | |||
Intellectual Property and Copyright Statements . . . . . . . 43 | 13.2. Informative References . . . . . . . . . . . . . . . . . 39 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 41 | ||||
Intellectual Property and Copyright Statements . . . . . . . . . . 42 | ||||
1. Introduction | 1. Introduction | |||
Today all SIP (Session Initiation Protocol) [RFC3261] user agent | Today all SIP (Session Initiation Protocol) [RFC3261] user agent | |||
implementers use proprietary means of delivering user, device, | implementers use proprietary means of delivering user, device, | |||
application and local network policy profiles to the user agent. The | application and local network policy profiles to the user agent. The | |||
profile delivery framework defined in this document is intended to | profile delivery framework defined in this document is intended to | |||
enable a first phase migration to a standard means of providing | enable a first phase migration to a standard means of providing | |||
profiles to SIP user agents. It is expected that UA (User Agent) | profiles to SIP user agents. It is expected that UA (User Agent) | |||
implementers will be able to use this framework as a means of | implementers will be able to use this framework as a means of | |||
skipping to change at page 7, line 33 | skipping to change at page 7, line 36 | |||
The content delivery server may be either in the public network or | The content delivery server may be either in the public network or | |||
accessible through a private network. The user agents requiring | accessible through a private network. The user agents requiring | |||
profiles may be behind firewalls and NATs and many protocols, such as | profiles may be behind firewalls and NATs and many protocols, such as | |||
HTTP, may be used for profile content retrieval without special | HTTP, may be used for profile content retrieval without special | |||
consideration in the firewalls and NATs (e.g. an HTTP client on the | consideration in the firewalls and NATs (e.g. an HTTP client on the | |||
UA can typically pull content from a server outside the NAT/ | UA can typically pull content from a server outside the NAT/ | |||
firewall.). | firewall.). | |||
5. Use Cases | 5. Use Cases | |||
The following use case are intented to help give a understanding of | The following use case are intended to help give an understanding of | |||
how the profile delivery framework can be used. These use cases are | how the profile delivery framework can be used. These use cases are | |||
not intended to be exhaustive in demonstrating all the capabilities | not intended to be exhaustive in demonstrating all the capabilities | |||
or ways the framework can be applied. | or ways the framework can be applied. | |||
5.1 Service Provider Use Case Scenario Bootstrapping with Digest | 5.1. Service Provider Use Case Scenario Bootstrapping with Digest | |||
Authentication | Authentication | |||
The following describes a use case scenario for bootstrapping a new | The following describes a use case scenario for bootstrapping a new | |||
user agent, which has had no prior provisioned information, to the | user agent, which has had no prior provisioned information, to the | |||
point of being functional with a SIP Service Provider's system. In | point of being functional with a SIP Service Provider's system. In | |||
this example scenario, the user has purchased a new SIP user agent. | this example scenario, the user has purchased a new SIP user agent. | |||
The user signs up for the service to obtain three pieces of | The user signs up for the service to obtain three pieces of | |||
information: a hostname, a user ID and a password. These three | information: a hostname, a user ID and a password. These three | |||
pieces of information may be one-time use, that become invalid after | pieces of information may be one-time use, that become invalid after | |||
the one use. This scenario assumes that no association or mapping | the one use. This scenario assumes that no association or mapping | |||
skipping to change at page 8, line 16 | skipping to change at page 8, line 19 | |||
connectivity the first time (or installs the software in the case | connectivity the first time (or installs the software in the case | |||
of a software user agent). The device subscribes to the local | of a software user agent). The device subscribes to the local | |||
network to get the local network profile. However as the device | network to get the local network profile. However as the device | |||
is plugged into a residential LAN or router, there is no profile | is plugged into a residential LAN or router, there is no profile | |||
delivery server for the local network profile (see Section 8.1.1 | delivery server for the local network profile (see Section 8.1.1 | |||
and Section 7.13.3). The device assumes symmetric SIP signalling | and Section 7.13.3). The device assumes symmetric SIP signalling | |||
as there is not local network profie which may have provided | as there is not local network profie which may have provided | |||
other firewall or NAT traversal mechanism information. | other firewall or NAT traversal mechanism information. | |||
2. The device prompts the user for the hostname to subscribe to for | 2. The device prompts the user for the hostname to subscribe to for | |||
the device profile. The hostname was provided by the service | the device profile. The hostname was provided by the service | |||
provider and use as the host part of the SUBSCRIBE profile URI | provider and is used as the host part of the SUBSCRIBE profile | |||
described in Section 7.13.1. Note: in a scenario where the | URI described in Section 7.13.1. Note: in a scenario where the | |||
system operator (e.g. enterprise) has control of the network, the | system operator (e.g. enterprise) has control of the network, the | |||
hostname for the SUBSCRIBE can be discovered (see Section 8.1.2) | hostname for the SUBSCRIBE can be discovered (see Section 8.1.2) | |||
to avoid the need for the user to enter the hostname. | to avoid the need for the user to enter the hostname. | |||
3. The device creates a TLS connection for the SIP SUBSCRIBE request | 3. The device creates a TLS connection for the SIP SUBSCRIBE request | |||
to the provided hostname. The device verifies the server's | to the provided hostname. The device verifies the server's | |||
certificate. If the common name does not match the hostname or | certificate. If the common name does not match the hostname or | |||
the certificate is not valid, the device warns the user and | the certificate is not valid, the device warns the user and | |||
prompts whether to continue. | prompts whether to continue. | |||
4. The profile delivery server receives the SUBSCRIBE request for | 4. The profile delivery server receives the SUBSCRIBE request for | |||
the device profile and sends a NOTIFY with content indirection | the device profile and sends a NOTIFY with content indirection | |||
skipping to change at page 8, line 46 | skipping to change at page 8, line 49 | |||
the user ID and password entered by the user. Note: for devices | the user ID and password entered by the user. Note: for devices | |||
with only DTMF style input, the service provider may provide the | with only DTMF style input, the service provider may provide the | |||
host, user ID and password in octal format that can be entered | host, user ID and password in octal format that can be entered | |||
requiring only digits. | requiring only digits. | |||
6. The profile delivery server receives the HTTP GET request for the | 6. The profile delivery server receives the HTTP GET request for the | |||
device profile along with the user ID and password for the | device profile along with the user ID and password for the | |||
specific user. At this point the profile delivery server has | specific user. At this point the profile delivery server has | |||
authenticated the user and can create an association between a | authenticated the user and can create an association between a | |||
specific device identified in the HTTPS URI and the user or user | specific device identified in the HTTPS URI and the user or user | |||
account (see Section 10.2). The profile delivery server provides | account (see Section 10.2). The profile delivery server provides | |||
the device profile which contains the on-going SUBSCRIBE request | the device profile which may contain the on-going SUBSCRIBE | |||
URIs for the device, user and application profiles along with | request URIs for the device, user and application profiles along | |||
credentials for retrieving the profiles. | with credentials for retrieving the profiles. | |||
7. The device receives the device profile from the HTTPS response, | 7. The device receives the device profile from the HTTPS response, | |||
re-SUBSCRIBEs using the device profile URI provided in the | re-SUBSCRIBEs using the device profile URI provided in the | |||
profile. The device profile also may contain URIs for the | profile. The device profile also may contain URIs for the | |||
default user's user and application profile SUBSCRIBE request | default user's user and application profile SUBSCRIBE request | |||
URIs for the SIP event package defined in Section 7. The device | URIs for the SIP event package defined in Section 7. The device | |||
uses these URIs to retrieve user and application profiles in a | uses these URIs to retrieve user and application profiles in a | |||
similar way to the device profile. After retriving these | similar way to the device profile. After retriving these | |||
profiles the device is fully functional in the service provider's | profiles the device is fully functional in the service provider's | |||
SIP service. | SIP service. | |||
5.2 Service Provider Use Case Scenario Bootstrapping with Device | 5.2. Service Provider Use Case Scenario Bootstrapping with Device | |||
Certificate | Certificate | |||
The following describes another use case scenario where the device | The following describes another use case scenario where the device | |||
implementor provides a certificate for the device which authenticates | implementor provides a certificate for the device which authenticates | |||
the device ID. In this scenario, the user signs up for the SIP | the device ID. In this scenario, the user signs up for the SIP | |||
service with the service provider and provides the device ID (see | service with the service provider and provides the device ID (see | |||
Section 7.13.1 for more information on device ID) to the service | Section 7.13.1 for more information on device ID) to the service | |||
provider prior to the following steps, so that the service provider | provider prior to the following steps, so that the service provider | |||
has an association or mapping between the device ID and the user | has an association or mapping between the device ID and the user | |||
account ahead of time. The service provide gives the user a hostname | account ahead of time. The service provide gives the user a hostname | |||
to be entered on the device. | to be entered on the device. | |||
1. Step 1-3 occur the same as in the prior use case described in | 1. Step 1-3 occur the same as in the prior use case described in | |||
Section 5.1. | Section 5.1. | |||
2. The device receives the NOTIFY request with the device profile | 2. The device receives the NOTIFY request with the device profile | |||
URI. The device does an HTTPS GET to retrieve the device profile | URI. The device does an HTTPS GET to retrieve the device profile | |||
(see Section 8.4 and Section 7.8). | (see Section 8.4 and Section 7.8). | |||
3. The profile delivery server requests the device certficate in the | 3. The profile delivery server requests the device certficate in the | |||
TLS connection used for the HTTPS GET. The device has a | TLS connection used for the HTTPS GET. The device has a | |||
certificate which has a SIP URI in the Subject Alternative Name | certificate that contains the MAC address used in the device ID. | |||
field that contains the device ID. The device certificate is | The device certificate is signed and provided by the implementor | |||
signed and provided by the implementor for the purpose of | for the purpose of authenticating the device ID in the initial | |||
authenticating the device ID in the initial bootstrapping process | bootstrapping process only. The profile delivery server | |||
only. The profile delivery server validates the device ID and | validates the device ID and returns the device profile using | |||
encrypts the device profile using the public key in the device's | HTTPS. | |||
certificate as described in Section 10.2 | 4. The device receives the device profile in the HTTPS response. | |||
4. The device receives the encrypted device profile from the HTTPS | The process continues in a similar way to step 6 in the above use | |||
response, decrypts the profile using it private key. The process | case. The device profile contains a more perminent device | |||
continues in a similar way to step 6 in the above use case. The | certificate and private key or Digest authentication credentials | |||
device profile contains a more perminent device certificate and | which are used for on-going device ID authentication. | |||
private key or Digest authentication credentials which is used | ||||
for on-going device ID authentication. | ||||
6. Data Model | 6. Data Model | |||
A conscious separation of device, user, application and local network | A conscious separation of device, user, application and local network | |||
profiles is made in this document. This is useful to provide | profiles is made in this document. This is useful to provide | |||
features such as hotelling (described above) as well as securing or | features such as hotelling (described above) as well as securing or | |||
restricting user agent functionality. By maintaining this | restricting user agent functionality. By maintaining this | |||
separation, a user may walk up to someone else's user agent and | separation, a user may walk up to someone else's user agent and | |||
direct that user agent to get the new user's profile data. In doing | direct that user agent to get the new user's profile data. In doing | |||
so the user agent can replace the previous user's profile data while | so the user agent can replace the previous user's profile data while | |||
skipping to change at page 11, line 23 | skipping to change at page 11, line 23 | |||
(e.g. several KB or even several MB) than the MTU of the network. | (e.g. several KB or even several MB) than the MTU of the network. | |||
These larger profiles will cause larger than normal SIP messages and | These larger profiles will cause larger than normal SIP messages and | |||
consequently higher impact on the SIP servers and infrastructure. To | consequently higher impact on the SIP servers and infrastructure. To | |||
avoid the higher impact and load on the SIP infrastructure, content | avoid the higher impact and load on the SIP infrastructure, content | |||
indirection SHOULD be used if the profile is large enough to cause | indirection SHOULD be used if the profile is large enough to cause | |||
packet fragmentation over the transport protocol. The presence of | packet fragmentation over the transport protocol. The presence of | |||
the MIME type for content indirection [I-D.ietf-sip-content-indirect- | the MIME type for content indirection [I-D.ietf-sip-content-indirect- | |||
mech] in the Accept header indicates that the user agent supports | mech] in the Accept header indicates that the user agent supports | |||
content indirection and that the profile delivery server SHOULD use | content indirection and that the profile delivery server SHOULD use | |||
content indirection. Similarly the content type for the differential | content indirection. Similarly the content type for the differential | |||
notification of profile changes [I-D.ietf-simple-xcap-package] may be | notification of profile changes [I-D.ietf-simple-xcap-diff] may be | |||
used in the Accept header to express support for receiving profile | used in the Accept header to express support for receiving profile | |||
change deltas. | change deltas. | |||
The MIME types or formats of profiles to be delivered via this | The MIME types or formats of profiles to be delivered via this | |||
framework are to be defined in the documents that define the profile | framework are to be defined in the documents that define the profile | |||
contents. These profile MIME types specified in the Accept header | contents. These profile MIME types specified in the Accept header | |||
along with the profile types specified in the Event header parameter | along with the profile types specified in the Event header parameter | |||
"profile-type" MAY be used to specify which profiles get delivered | "profile-type" MAY be used to specify which profiles get delivered | |||
either directly or indirectly in the NOTIFY requests. As this event | either directly or indirectly in the NOTIFY requests. As this event | |||
package does not specify the mandatory content type, this package is | package does not specify the mandatory content type, this package is | |||
abstract. The profile definition documents will specify the | abstract. The profile definition documents will specify the | |||
mandatory content type to make a concrete event package. | mandatory content type to make a concrete event package. | |||
7.1 Event Package Name | 7.1. Event Package Name | |||
The name of this package is "ua-profile". This value appears in the | The name of this package is "ua-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]. | |||
7.2 Event Package Parameters | 7.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", | header: "profile-type", "vendor", "model", "version", "effective-by", | |||
"document", "auid", "network-user". The "effective-by" parameter is | and "network-user". The "effective-by" parameter is for use in | |||
for use in NOTIFY requests only. The "effective-by" parameter is | NOTIFY requests only. The "effective-by" parameter is ignored if it | |||
ignored if it appears in a SUBSCRIBE request. The other parameters | appears in a SUBSCRIBE request. The other parameters are for use in | |||
are for use in the SUBSCRIBE request and are ignored if they appear | the SUBSCRIBE request and are ignored if they appear in NOTIFY | |||
in NOTIFY requests. | requests. | |||
The "profile-type" parameter is used to indicate the token name of | The "profile-type" parameter is used to indicate the token name of | |||
the profile type the user agent wishes to obtain data or URIs for and | the profile type the user agent wishes to obtain data or URIs for and | |||
to be notified of subsequent changes. Using a token in this | to be notified of subsequent changes. Using a token in this | |||
parameter allows the URI semantics for retrieving the profiles to be | parameter allows the URI semantics for retrieving the profiles to be | |||
opaque to the subscribing user agent. All it needs to know is the | opaque to the subscribing user agent. All it needs to know is the | |||
token value for this parameter. This document defines four logical | token value for this parameter. This document defines four logical | |||
types of profiles and their token names. The contents or format of | types of profiles and their token names. The contents or format of | |||
the profiles is outside the scope of this document. | the profiles is outside the scope of this document. | |||
skipping to change at page 12, line 51 | skipping to change at page 12, line 51 | |||
The "device", "user", "application" or "local-network" token in | The "device", "user", "application" or "local-network" token in | |||
the profile-type parameter may represent a class or set of profile | the profile-type parameter may represent a class or set of profile | |||
properties. As standards are defined for specific profile | properties. As standards are defined for specific profile | |||
contents related to the user, device or local network, it may be | contents related to the user, device or local network, it may be | |||
desirable to define additional tokens for the profile-type | desirable to define additional tokens for the profile-type | |||
parameter. Also additional content types may be defined along | parameter. Also additional content types may be defined along | |||
with the profile formats that can be used in the Accept header of | with the profile formats that can be used in the Accept header of | |||
the SUBSCRIBE to filter or indicate what data sets of the profile | the SUBSCRIBE to filter or indicate what data sets of the profile | |||
are desired. | are desired. | |||
The rational for the separation of user, device, application and | The rationale for the separation of user, device, application and | |||
local network type profiles is provided in Section 4. It should be | local network type profiles is provided in Section 4. It should be | |||
noted that any of the types may result in zero or more profiles or | noted that any of the types may result in zero or more profiles or | |||
URIs being provided in the NOTIFY request. As discussed, a default | URIs being provided in the NOTIFY request. As discussed, a default | |||
user may be assigned to a device. The default user's AOR, if defined | user may be assigned to a device. The default user's AOR, if defined | |||
in the device profile, may in turn be used as the URI to SUBSCRIBE to | in the device profile, may in turn be used as the URI to SUBSCRIBE to | |||
the "user" and "application" profile types. | the "user" and "application" profile types. | |||
The data provided in the four types of profiles may overlap. As an | The data provided in the four types of profiles may overlap. As an | |||
example the codecs that a user prefers to use, the codecs that the | example, the codecs that a user prefers to use, the codecs that the | |||
device supports (and the enterprise or device owner wishes to use), | device supports (and the enterprise or device owner wishes to use), | |||
the codecs that the local network can support (and the network | the codecs that the local network can support (and the network | |||
operator wishes to allow) all may overlap in how they are specified | operator wishes to allow) all may overlap in how they are specified | |||
in the three corresponding profiles. This policy for merging the | in the three corresponding profiles. This policy for merging the | |||
constraints across the multiple profile types can only unambiguously | constraints across the multiple profile types can only unambiguously | |||
be defined in the context of the profile syntax and semantics. This | be defined in the context of the profile syntax and semantics. This | |||
is out of scope for this document. | is out of scope for this document. | |||
The "vendor", "model" and "version" parameter values are tokens | The "vendor", "model" and "version" parameter values are tokens | |||
specified by the implementer of the user agent. These parameters | specified by the implementer of the user agent. These parameters | |||
MUST be provided in the SUBSCRIBE request for all profile types. The | MUST be provided in the SUBSCRIBE request for all profile types. The | |||
implementer SHOULD use their DNS domain name (e.g. example.com) as | implementer SHOULD use their DNS domain name (e.g. example.com) as | |||
the value of the "vendor" parameter so that it is known to be unique. | the value of the "vendor" parameter so that it is known to be unique. | |||
These parameters are useful to the profile delivery server to affect | These parameters are useful to the profile delivery server to affect | |||
the profiles provided. In some scenarios it is desirable to provide | the profiles provided. In some scenarios it is desirable to provide | |||
different profiles based upon these parameters. For example feature | different profiles based upon these parameters. For example, feature | |||
property X in a profile may work differently on two versions of user | property X in a profile may work differently on two versions of the | |||
agent. This gives the profile delivery server the ability to | same user agent. This gives the profile delivery server the ability | |||
compensate for or take advantage of the differences. In the | to compensate for or take advantage of the differences. In the | |||
following ABNF, EQUAL and quoted-string are defined in [RFC3261]. | following ABNF, EQUAL and quoted-string are defined in [RFC3261]. | |||
Vendor = "vendor" EQUAL quoted-string | Vendor = "vendor" EQUAL quoted-string | |||
Model = "model" EQUAL quoted-string | Model = "model" EQUAL quoted-string | |||
Version = "version" EQUAL quoted-string | Version = "version" EQUAL quoted-string | |||
The "network-user" parameter SHOULD be set when subscribing for | The "network-user" parameter SHOULD be set when subscribing for | |||
device and local network profiles if the user's AOR is known. When | device and local network profiles if the user's AOR is known. When | |||
the profile-type is "device" or "local-network", the SUBSCRIBE URI | the profile-type is "device" or "local-network", the SUBSCRIBE URI | |||
addresses the device or local network profile delivery server. It by | addresses the device or local network profile delivery server. As | |||
design cannot indicate the user's identity. The "network-user" | the SUBSCRIBE request URI for the "device" or "local-network" profile | |||
parameter is used to indicate the user's AOR. The SUBSCRIBE server | must contain the device identity, it cannot contain the user profile | |||
SHOULD authenticate the subscriber to verify the AOR in the "network- | identifier. The "network-user" parameter is used to indicate the | |||
user" parameter if the profile provided is specific to the AOR. If | user profile resource identifier. The SUBSCRIBE server SHOULD | |||
the value of the "profile-type" parameter is not "device" or "local- | authenticate the subscriber to verify the resource identifier in the | |||
network", the "network-user" parameter has no defined meaning and is | "network-user" parameter if the profile provided is specific to the | |||
ignored. If the "network-user" parameter is provided in the | user (e.g. granting policies or privileges beyond those of an | |||
SUBSCRIBE request, it MUST be present in the NOTIFY request as well. | anonymous user). If the value of the "profile-type" parameter is not | |||
In the following ABNF, name-addr, addr-spec are defined in [RFC3261]. | "device" or "local-network", the "network-user" parameter has no | |||
defined meaning and is ignored. If the "network-user" parameter is | ||||
provided in the SUBSCRIBE request, it MUST be present in the NOTIFY | ||||
request as well. In the following ABNF, EQUAL, LDQUOT, RDQUOT and | ||||
addr-spec are defined in [RFC3261]. | ||||
Network-User = "network-user" EQUAL name-addr / addr-spec | Network-User = "network-user" EQUAL LDQUOT addr-spec RDQUOT | |||
The entity that is subscribing and getting the "device" and | ||||
"local-network" profiles is the device. For this reason the From | ||||
field should indicate the device's identity. These profiles types | ||||
contain device specific information and it is the device's | ||||
identity that gets authenticated for the "device" profile. | ||||
Depending upon the local adminstration policy and segmentation of | ||||
services, the device identity and user profile identity | ||||
association may not be know to the the configuration delivery | ||||
server ahead of time. So because the From field and SUBSCRIBE | ||||
request URI indicate the "device" profile resource identifier, the | ||||
"network-user" parameter is needed to indicate the additional | ||||
resource identifier for the user assocated with this device. | ||||
When the profile-type is "device", the user agent SHOULD set the | When the profile-type is "device", the user agent SHOULD set the | |||
"network-user" parameter to the user's AOR if it is known. This is | "network-user" parameter to the "user" profile resource identifier is | |||
an indication to the profile delivery server to set or change the | known. This is an indication to the profile delivery server to set | |||
association of the default user with the device indicated in the | or change the association of the default user with the device | |||
SUBSCRIBE URI. If the profile delivery server implements and allows | indicated in the SUBSCRIBE URI. If the profile delivery server | |||
this policy of setting the default user with a device, the user agent | implements and allows this policy of setting the default user with a | |||
can utilize this mechanism to allow a user to login and make the user | device, the user agent can utilize this mechanism to allow a user to | |||
agent and user association permanent. | login and make the user agent and user association permanent. | |||
In the case where the profile-type is "local-network", the user agent | In the case where the profile-type is "local-network", the user agent | |||
SHOULD set the "network-user" parameter if the user's AOR is known. | SHOULD set the "network-user" parameter if the user's AOR is known. | |||
If the user has special privileges beyond that of an anonymous user | If the user has special privileges beyond that of an anonymous user | |||
in the local network, the "network-user" parameter identifies the | in the local network, the "network-user" parameter identifies the | |||
user to the local network. The value of this parameter is the user's | user to the local network. The value of this parameter is the user's | |||
address of record. | address of record. | |||
The "effective-by" parameter in the Event header of the NOTIFY | The "effective-by" parameter in the Event header of the NOTIFY | |||
request specifies the maximum number of seconds before the user agent | request specifies the maximum number of seconds before the user agent | |||
skipping to change at page 14, line 34 | skipping to change at page 15, line 4 | |||
profile types. A value of 0 (zero) indicates that the subscribing | profile types. A value of 0 (zero) indicates that the subscribing | |||
user agent must attempt to make the profiles effective immediately | user agent must attempt to make the profiles effective immediately | |||
(despite possible service interruptions). This gives the profile | (despite possible service interruptions). This gives the profile | |||
delivery server the power to control when the profile is effective. | delivery server the power to control when the profile is effective. | |||
This may be important to resolve an emergency problem or disable a | This may be important to resolve an emergency problem or disable a | |||
user agent immediately. The "effective-by" parameter is ignored in | user agent immediately. The "effective-by" parameter is ignored in | |||
all messages other than the NOTIFY request. In the following ABNF, | all messages other than the NOTIFY request. In the following ABNF, | |||
EQUAL and DIGIT are defined in [RFC3261]. | EQUAL and DIGIT are defined in [RFC3261]. | |||
Effective-By = "effective-by" EQUAL 1*DIGIT | Effective-By = "effective-by" EQUAL 1*DIGIT | |||
The "document" parameter is used to specify a relative URI for a | ||||
specific profile document that the user agent wishes to retrieve and | ||||
for which it wishes to receive change notification. This is useful | ||||
for profile content like XCAP [I-D.ietf-simple-xcap] where there is a | ||||
well defined URI schema and the user agent knows the specific content | ||||
that it wants. This provides a filtering mechanism to restrict the | ||||
content to be retrieved and for which change notification is to be | ||||
received. (The size of the content is important in limited bandwidth | ||||
environments.) The "document" parameter value syntax is a quoted | ||||
string. The values for the "document" parameter are defined as part | ||||
of the profile data format, which is out of scope for this document. | ||||
To use the "document" parameter, the profile data format, must also | ||||
define a URL path schema. For more details on the use of this | ||||
package and the "document" parameter with XCAP see Section 8.6. The | ||||
"document" parameter MAY be set in SUBSCRIBE requests for any of the | ||||
profile types. It is ignored in all other messages. In the | ||||
following ABNF EQUAL and quoted-string is defined in [RFC3261]. | ||||
Document = "document" EQUAL quoted-string | ||||
The "auid" parameter MAY be set when the "profile-type" parameter | ||||
value is "application". The "auid" indicates that the user agent | ||||
wishes to retrieve the profile data or URI and change notification | ||||
for the application profile data for the specific application | ||||
indicated in the value of the "auid" parameter. Like the "document" | ||||
parameter, the "auid" parameter provides a filtering mechanism on the | ||||
profile content. The "auid" parameter value is a quoted string. The | ||||
values for the "auid" parameter are defined as part of the profile | ||||
data format to be used with XCAP (see [I-D.ietf-simple-xcap] ), which | ||||
is out of scope for this document. The "auid" parameter has meaning | ||||
only in SUBSCRIBE requests when the "profile-type" Event header | ||||
parameter is set to "application". It is an error to set both the | ||||
"document" and "auid" parameters in a SUBSCRIBE request. The "auid" | ||||
parameter is ignored in all other messages. | ||||
AUID = "auid" EQUAL quoted-string | ||||
SUBSCRIBE request Event header examples: | SUBSCRIBE request Event header examples: | |||
Event: ua-profile;profile-type=device; | Event: ua-profile;profile-type=device; | |||
vendor="vendor.example.com";model="Z100";version="1.2.3" | vendor="vendor.example.com";model="Z100";version="1.2.3" | |||
Event: ua-profile;profile-type="user"; | Event: ua-profile;profile-type="user"; | |||
document="user-aor/"; | ||||
vendor="premier";model="trs8000";version="5.5" | vendor="premier";model="trs8000";version="5.5" | |||
NOTIFY request Event header examples: | NOTIFY request Event header examples: | |||
Event: ua-profile;effective-by=0 | Event: ua-profile;effective-by=0 | |||
Event: ua-profile;effective-by=3600 | Event: ua-profile;effective-by=3600 | |||
The following table shows the use of Event header parameters in | The following table shows the use of Event header parameters in | |||
SUBSCRIBE requests for the four profile types: | SUBSCRIBE requests for the four profile types: | |||
profile-type || device | user | application | local-network | profile-type || device | user | application | local-network | |||
=========================================================== | =========================================================== | |||
vendor || m | m | m | m | vendor || m | m | m | m | |||
model || m | m | m | m | model || m | m | m | m | |||
version || m | m | m | m | version || m | m | m | m | |||
network-user || | | | s | network-user || s | | | s | |||
document || o | o | o | o | ||||
auid || | | o | | ||||
effective-by || | | | | effective-by || | | | | |||
m - manditory | m - mandatory | |||
s - SHOULD be provided | s - SHOULD be provided | |||
o - optional | o - optional | |||
Non-specified means that the parameter has no meaning and | Non-specified means that the parameter has no meaning and | |||
should be ignored. | should be ignored. | |||
The following table shows the use of Event header parameters in | The following table shows the use of Event header parameters in | |||
NOTIFY requests for the four profile types: | NOTIFY requests for the four profile types: | |||
profile-type || device | user | application | local-network | profile-type || device | user | application | local-network | |||
=========================================================== | =========================================================== | |||
vendor || | | | | vendor || | | | | |||
model || | | | | model || | | | | |||
version || | | | | version || | | | | |||
network-user || | | | s | network-user || | | | s | |||
document || o/m | o/m | o/m | o/m | ||||
auid || | | o/m | | ||||
effective-by || o | o | o | o | effective-by || o | o | o | o | |||
o/m - manditory if provided in the SUBSCRIBE request | 7.3. SUBSCRIBE Bodies | |||
7.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. | |||
Future documents may specify a filter-like mechanism using etags to | Future documents may specify a filter-like mechanism using etags to | |||
minimize the delivery or notification of profiles where the user | minimize the delivery or notification of profiles where the user | |||
agent already has a current version. | agent already has a current version. | |||
7.4 Subscription Duration | 7.4. Subscription Duration | |||
As the presence (or lack of) a device or user agent is not very time | As the presence (or lack of) a device or user agent is not very time | |||
critical to the functionality of the profile delivery server, it is | critical to the functionality of the profile delivery server, it is | |||
recommended that default subscription duration be 86400 seconds (one | recommended that default subscription duration be 86400 seconds (one | |||
day). A one-time fetch of a profile can be accomplished by setting | day). A one-time fetch of a profile can be accomplished by setting | |||
the Expires parameter to 0 as defined in [RFC3265] resulting in a | the Expires parameter to 0 as defined in [RFC3265] resulting in a | |||
single NOTIFY with no change notification. | single NOTIFY with no change notification. | |||
7.5 NOTIFY Bodies | 7.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 of bytes in size. For this reason if the Accept header of | thousand of bytes in size. For this reason if the Accept header of | |||
the SUBSCRIBE included the MIME type message/external-body indicating | the SUBSCRIBE included the MIME type message/external-body indicating | |||
support for content indirection the profile delivery server SHOULD | support for content indirection the profile delivery server SHOULD | |||
use content indirection [I-D.ietf-sip-content-indirect-mech] in the | use content indirection [I-D.ietf-sip-content-indirect-mech] in the | |||
NOTIFY body for providing the profiles. | NOTIFY body for providing the profiles. | |||
When delivering profiles via content indirection the profile delivery | When delivering profiles via content indirection the profile delivery | |||
server MUST include the Content-ID MIME header described in | server MUST include the Content-ID MIME header described in | |||
[I-D.ietf-sip-content-indirect-mech] for each profile URI. This is | [I-D.ietf-sip-content-indirect-mech] for each profile URI. 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 something to be avoided on a user agent performing | Rebooting is something to be avoided on a user agent performing | |||
services such as telephony. In this way the Content-ID allows the | services such as telephony. By examining the Content-ID, the user | |||
user agent to avoid unnecessary interruption of service as well. The | agent can recognize if it already has the indirected content, thus | |||
Content-Type MUST be specified for each URI. For minimal | avoiding unnecessary interruption of service. The Content-Type MUST | |||
interoperability, the profile delivery server MUST support the | be specified for each URI. For minimal interoperability, the profile | |||
"http:" and "https:" URI schemes for content indirection. Other URI | delivery server MUST support the "http:" and "https:" URI schemes for | |||
schemes MAY also be provided in the content indirection. However the | content indirection. Other URI schemes MAY also be provided in the | |||
security considerations are define for content indirection using HTTP | content indirection. However the security considerations are define | |||
and HTTPS. Other protocols MAY be supported for content indirection, | for content indirection using HTTP and HTTPS. Other protocols MAY be | |||
but are out of scope of this document. | supported for content indirection, but are out of scope of this | |||
document. | ||||
Initially user agent implementers may use a proprietary content | Initially user agent implementers may use a proprietary content | |||
type for the profiles retrieved from the URI(s). This is a good | type for the profiles retrieved from the URI(s). This is a good | |||
first step towards easing the management of user agents. Standard | first step towards easing the management of user agents. Standard | |||
profile contents, content type and formats will need to be defined | profile contents, content type and formats will need to be defined | |||
for true interoperability of profile delivery. The specification | for true interoperability of profile delivery. The specification | |||
of the content is out of the scope of this document. | of the content is out of the scope of this document. | |||
The URI scheme [RFC2396] used in content indirection may be dictated | The URI scheme [RFC2396] used in content indirection may be dictated | |||
by the profile content that is required. It is expected that FTP | by the profile content that is required. It is expected that FTP | |||
[RFC0959], HTTP [RFC2616], HTTPS [RFC2818], LDAP [RFC3377], XCAP | [RFC0959], HTTP [RFC2616], HTTPS [RFC2818], LDAP [RFC3377], XCAP | |||
[I-D.ietf-simple-xcap] and other URI schemes could be used by this | [I-D.ietf-simple-xcap] and other URI schemes could be used by this | |||
package and framework if the subscribing user agent and profile | package and framework if the subscribing user agent and profile | |||
delivery server both support the same scheme. The negotiation of the | delivery server both support the same scheme. The negotiation of the | |||
URI scheme is described in the following sections. | URI scheme is described in the following sections. | |||
7.6 Notifier processing of SUBSCRIBE requests | 7.6. Notifier processing of SUBSCRIBE requests | |||
The general rules for processing SUBSCRIBE requests [RFC3265] apply | The general rules for processing SUBSCRIBE requests [RFC3265] apply | |||
to this package. If content indirection is used for delivering the | to this package. If content indirection is used for delivering the | |||
profiles, the notifier does not need to authenticate the subscription | profiles, the notifier does not need to authenticate the subscription | |||
as the profile content is not transported in the SUBSCRIBE or NOTIFY | as the profile content is not transported in the SUBSCRIBE or NOTIFY | |||
transaction messages. With content indirection only URIs are | transaction messages. With content indirection only URIs are | |||
transported in the NOTIFY request which may be secured using the | transported in the NOTIFY request which may be secured using the | |||
techniques in Section 10. If content indirection is not used, the | techniques in Section 10. If content indirection is not used, the | |||
subscribe server SHOULD reject SUBSCRIBE requests from conections | subscribe server SHOULD reject SUBSCRIBE requests from conections | |||
that are not over TLS and SHOULD challenge the SUBSCRIBE request with | that are not over TLS and SHOULD challenge the SUBSCRIBE request with | |||
skipping to change at page 19, line 10 | skipping to change at page 18, line 21 | |||
functionality. | functionality. | |||
When the Event header "profile-type" is "device" and the user agent | When the Event header "profile-type" is "device" and the user agent | |||
has provided the user's AOR in the "network-user" parameter, the | has provided the user's AOR in the "network-user" parameter, the | |||
profile delivery server MAY set or change the default user associated | profile delivery server MAY set or change the default user associated | |||
with the device indicated in the SUBSCRIBE URI. This is an | with the device indicated in the SUBSCRIBE URI. This is an | |||
implementation or policy decision. The profile delivery server | implementation or policy decision. The profile delivery server | |||
SHOULD authenticate the user for the SUBSCRIBE request before | SHOULD authenticate the user for the SUBSCRIBE request before | |||
changing the default user associated with the device. | changing the default user associated with the device. | |||
7.7 Notifier generation of NOTIFY requests | 7.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 | |||
URI(s). Alternatively a NOTIFY MAY be sent with a body or content | URI(s). Alternatively a NOTIFY MAY be sent with a body or content | |||
indirection containing URI(s) pointing to a default data set. The | indirection containing URI(s) pointing to a default data set. The | |||
data sets provided may allow for only limited functionality of the | data sets provided may allow for only limited functionality of the | |||
user agent (e.g. for a user agent with telephony capabilities, to | user agent (e.g. for a user agent with telephony capabilities, to | |||
skipping to change at page 19, line 41 | skipping to change at page 19, line 5 | |||
of the profile data or indirect content profile data URIs, the | of the profile data or indirect content profile data URIs, the | |||
notifier SHOULD send the NOTIFY request on the same TLS connection as | notifier SHOULD send the NOTIFY request on the same TLS connection as | |||
the SUBSCRIBE request came in on if TLS was used. | the SUBSCRIBE request came in on if TLS was used. | |||
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. The profile delivery server MAY | made effective by the user agent. The profile delivery server MAY | |||
specify a maximum time in seconds (zero or more), in the | specify a maximum time in seconds (zero or more), in the | |||
"effective-by" event header parameter, by which the user agent is | "effective-by" event header parameter, by which the user agent is | |||
required to make the new profiles effective for all dialogs. | required to make the new profiles effective for all dialogs. | |||
7.8 Subscriber processing of NOTIFY requests | 7.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 attempt to make the profiles effective within the time in | agent MUST attempt to make the profiles effective within the time in | |||
seconds given in the "effective-by" Event header parameter if present | seconds given in the "effective-by" Event header parameter if present | |||
in the NOTIFY request (see Section 7.7). By default the user agent | in the NOTIFY request (see Section 7.7). By default the user agent | |||
makes the profiles effective as soon as it thinks that it is non- | makes the profiles effective as soon as it thinks that it is non- | |||
obtrusive to do so (e.g. when there are no active calls). Profile | obtrusive to do so (e.g. when there are no active calls). Profile | |||
changes SHOULD affect behavior on all new dialogs which are created | changes SHOULD affect behavior on all new dialogs which are created | |||
after the notification, but may not be able to affect existing | after the notification, but may not be able to affect existing | |||
dialogs. The user agent SHOULD use one of the techniques specified | dialogs. The user agent SHOULD use one of the techniques specified | |||
in Section 10 to securely retrieve the profiles. If the subscriber | in Section 10 to securely retrieve the profiles. If the subscriber | |||
included the MIME type message/external-body for content indirection | included the MIME type message/external-body for content indirection | |||
in the SUBSCRIBE request Accept header, the subscriber MUST support | in the SUBSCRIBE request Accept header, the subscriber MUST support | |||
the http: or https: URI schemes for content indirection. If the | the http: or https: URI schemes for content indirection. If the | |||
subscriber indicated alternative URI schemes for content indirection | subscriber indicated alternative URI schemes for content indirection | |||
it MUST also indicate support for http: or https:. The subscriber | it MUST also indicate support for http: or https:. The subscriber | |||
should still be prepared to use http: or https: as the profile | should still be prepared to use http: or https: as the profile | |||
delivery server may not support the alternative URI schemes. | delivery server may not support the alternative URI schemes. | |||
7.9 Handling of forked requests | 7.9. Handling of forked requests | |||
This event package allows the creation of only one dialog as a result | This event package allows the creation of only one dialog as a result | |||
of an initial SUBSCRIBE request. The techniques to achieve this are | of an initial SUBSCRIBE request. The techniques to achieve this are | |||
described in section 4.4.9 of [RFC3265]. | described in section 4.4.9 of [RFC3265]. | |||
7.10 Rate of notifications | 7.10. Rate of notifications | |||
It is anticipated that the rate of change for user and device | It is anticipated that the rate of change for user and device | |||
profiles will be very infrequent (i.e. days or weeks apart). For | profiles will be very infrequent (i.e. days or weeks apart). For | |||
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. | |||
7.11 State Agents | 7.11. State Agents | |||
State agents are not applicable to this event package. | State agents are not applicable to this event package. | |||
7.12 Examples | 7.12. Examples | |||
Example SUBSCRIBE and NOTIFY request using content indirection: | Example SUBSCRIBE and NOTIFY request using content indirection: | |||
SUBSCRIBE sip:MAC%3aFF00000036C5@acme.example.com SIP/2.0 | SUBSCRIBE sip:MAC%3aFF00000036C5@acme.example.com SIP/2.0 | |||
Event: ua-profile;profile-type=device;vendor="vendor.example.com"; | Event: ua-profile;profile-type=device;vendor="vendor.example.com"; | |||
model="Z100";version="1.2.3" | model="Z100";version="1.2.3" | |||
From: sip:MAC%3aFF00000036C5@acme.example.com;tag=1234 | From: sip:MAC%3aFF00000036C5@acme.example.com;tag=1234 | |||
To: sip:MAC%3aFF00000036C5@acme.example.com;tag=abcd | To: sip:MAC%3aFF00000036C5@acme.example.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:MAC%3aFF00000036C5@10.1.1.44 | Contact: sip:MAC%3aFF00000036C5@10.1.1.44 | |||
Via: SIP/2.0/TCP 10.1.1.41; | Via: SIP/2.0/TCP 10.1.1.41; | |||
branch=z9hG4bK6d6d35b6e2a203104d97211a3d18f57a | branch=z9hG4bK6d6d35b6e2a203104d97211a3d18f57a | |||
Accept: message/external-body, application/z100-device-profile | Accept: message/external-body, application/x-z100-device-profile | |||
Content-Length: 0 | Content-Length: 0 | |||
NOTIFY sip:MAC%3aFF00000036C5@10.1.1.44 SIP/2.0 | NOTIFY sip:MAC%3aFF00000036C5@10.1.1.44 SIP/2.0 | |||
Event: ua-profile;effective-by=3600 | Event: ua-profile;effective-by=3600 | |||
From: sip:MAC%3aFF00000036C5@acme.example.com;tag=abcd | From: sip:MAC%3aFF00000036C5@acme.example.com;tag=abcd | |||
To: sip:MAC%3aFF00000036C5@acme.example.com;tag=1234 | To: sip:MAC%3aFF00000036C5@acme.example.com;tag=1234 | |||
Call-ID: 3573853342923422@10.1.1.44 | Call-ID: 3573853342923422@10.1.1.44 | |||
CSeq: 321 NOTIFY | CSeq: 321 NOTIFY | |||
Via: SIP/2.0/UDP 192.168.0.3; | Via: SIP/2.0/UDP 192.168.0.3; | |||
branch=z9hG4bK1e3effada91dc37fd5a0c95cbf6767d1 | branch=z9hG4bK1e3effada91dc37fd5a0c95cbf6767d1 | |||
skipping to change at page 21, line 37 | skipping to change at page 20, line 37 | |||
Content-Type: multipart/mixed; boundary=boundary42 | Content-Type: multipart/mixed; boundary=boundary42 | |||
Content-Length: ... | Content-Length: ... | |||
--boundary42 | --boundary42 | |||
Content-Type: message/external-body; | Content-Type: message/external-body; | |||
access-type="URL"; | access-type="URL"; | |||
expiration="Mon, 24 June 2002 09:00:00 GMT"; | expiration="Mon, 24 June 2002 09:00:00 GMT"; | |||
URL="http://www.example.com/devices/ff00000036c5"; | URL="http://www.example.com/devices/ff00000036c5"; | |||
size=1234 | size=1234 | |||
Content-Type: application/z100-device-profile | Content-Type: application/x-z100-device-profile | |||
Content-ID: <39EHF78SA@example.com> | Content-ID: <39EHF78SA@example.com> | |||
--boundary42-- | --boundary42-- | |||
7.13 Use of URIs to Retrieve State | 7.13. Use of URIs to Retrieve State | |||
The URI for the SUBSCRIBE request is formed differently depending | The URI for the SUBSCRIBE request is formed differently depending | |||
upon which profile type the subscription is for. This allows the | upon which profile type the subscription is for. This allows the | |||
different profile types to be potentially managed by different | different profile types to be potentially managed by different | |||
profile delivery servers (perhaps even operated by different | profile delivery servers (perhaps even operated by different | |||
entities). | entities). The To and From field will typically contain the same URI | |||
as is used in the original SUBSCIRBE request URI. | ||||
7.13.1 Device URIs | 7.13.1. Device URIs | |||
The URI for the "device" type profile (device URI) is based upon the | The URI for the "device" type profile (device URI) is based upon the | |||
identity of the device. The device URI MUST be unique across all | identity of the device. The device URI MUST be unique across all | |||
devices and implementations. If an instance id is used as the user | devices and implementations. If an instance id is used as the user | |||
part of the device URI, it SHOULD remain the same for the lifetime of | part of the device URI, it SHOULD remain the same for the lifetime of | |||
the user agent. The device URI is used to identify which profile is | the user agent. The device URI is used to identify which profile is | |||
associated with a specific instance of a user agent. | associated with a specific instance of a user agent. | |||
If the user agent changed its device URI, the profile delivery | If the user agent changed its device URI, the profile delivery | |||
server would not know the association between the profile and the | server would not know the association between the profile and the | |||
skipping to change at page 22, line 42 | skipping to change at page 21, line 42 | |||
port portion is discussed in Section 8.1. There is an administration | port portion is discussed in Section 8.1. There is an administration | |||
aspect of the unique identifier, that makes it desirable for the id | aspect of the unique identifier, that makes it desirable for the id | |||
to be obtainable or predictable prior to installation of the device | to be obtainable or predictable prior to installation of the device | |||
(hard or soft). Also from a human factors perspective, ids that are | (hard or soft). Also from a human factors perspective, ids that are | |||
easily distinguished and communicated will make the administrators | easily distinguished and communicated will make the administrators | |||
job a little easier. The MAC address or UUID SHOULD be used for | job a little easier. The MAC address or UUID SHOULD be used for | |||
constructing a unique identifier to be used in the user portion of | constructing a unique identifier to be used in the user portion of | |||
the device URI. | the device URI. | |||
If the identifier is a MAC address, it MUST be formatted as the | If the identifier is a MAC address, it MUST be formatted as the | |||
letters "MAC:" followed by a 12 digit hexadecimal representation of | characters "MAC:" followed by a 12 digit hexadecimal representation | |||
the MAC address. The address can not include ":", whitespace, or | of the MAC address. The address can not include ":", whitespace, or | |||
other formatting. | other formatting. | |||
The MAC address of the device may be used if there will always be | The MAC address of the device may be used if there will always be | |||
no more than one user agent using that MAC address over time (e.g. | no more than one user agent using that MAC address over time (e.g. | |||
a dedicated telephone appliance). The MAC address may not be used | a dedicated telephone appliance). The MAC address may not be used | |||
if more than one user agent instance exists using the same MAC | if more than one user agent instance exists using the same MAC | |||
address (e.g. multiple instances of a softphone may run on a | address (e.g. multiple instances of a softphone may run on a | |||
general purpose computing device). The advantage of the MAC | general purpose computing device). The advantage of the MAC | |||
address is that many vendors put bar codes on the device with the | address is that many vendors put bar codes on the device with the | |||
actual MAC address on it. A bar code scanner is a convenient | actual MAC address on it. A bar code scanner is a convenient | |||
means of collecting the instance id for input and provisioning on | means of collecting the instance id for input and provisioning on | |||
skipping to change at page 23, line 24 | skipping to change at page 22, line 24 | |||
UHEX = DIGIT / %x41-46 ;uppercase A-F | UHEX = DIGIT / %x41-46 ;uppercase A-F | |||
MAC = %x4d.41.43 ; MAC in caps | MAC = %x4d.41.43 ; MAC in caps | |||
mac-ident = MAC ":" 12UHEX | mac-ident = MAC ":" 12UHEX | |||
When the MAC address is not used in the device URI, UUID SHOULD be | When the MAC address is not used in the device URI, UUID SHOULD be | |||
used. | used. | |||
For devices where there is no MAC address or the MAC address is | For devices where there is no MAC address or the MAC address is | |||
not unique to an instance of a user agent (e.g. multiple | not unique to an instance of a user agent (e.g. multiple | |||
softphones on a computer or a gateway with multiple logical user | softphones on a computer or a gateway with multiple logical user | |||
agents) it is recommended that a UUID is used as the user portion | agents) it is RECOMMENDED that a UUID [RFC4122] is used as the | |||
of the device URI. The same approach to defining a user agent | user portion of the device URI. The same approach to defining a | |||
instance ID as [I-D.ietf-sip-gruu] should be used. When | user agent instance ID as [I-D.ietf-sip-outbound] should be used. | |||
constructing the instance id the implementer should also consider | When constructing the instance id the implementer should also | |||
that a human may need to manually enter the instance id to | consider that a human may need to manually enter the instance id | |||
provision the device in the profile delivery server (e.g. longer | to provision the device in the profile delivery server (e.g. | |||
strings are more error prone in data entry). When the URN is used | longer strings are more error prone in data entry). When the URN | |||
as the user part of URI, it MUST be URL escaped. The ":" is not a | is used as the user part of URI, it MUST be URL escaped. The ":" | |||
legal character (without being escaped) in the user part of a | is not a legal character (without being escaped) in the user part | |||
name-addr. For example the instance ID: | of a addr-spec [RFC4122]. For example the instance ID: | |||
urn:uuid:f81d4fae-7ced-11d0-a765-00a0c91e6bf6 would be escaped to | urn:uuid:f81d4fae-7ced-11d0-a765-00a0c91e6bf6 would be escaped to | |||
look as follows in a URI: | look as follows in a URI: | |||
sip:urn%3auuid%3af81d4fae-7ced-11d0-a765-00a0c91e6bf6@example.com. | sip:urn%3auuid%3af81d4fae-7ced-11d0-a765-00a0c91e6bf6@example.com. | |||
Soft user agents are likely to need to use this approach due to | Soft user agents are likely to need to use this approach due to | |||
the multi-user nature of general purpose computers. The software | the multi-user nature of general purpose computers. The software | |||
installer program might generate the uuid as part of the install | installer program might generate the uuid as part of the install | |||
process so that it remains persistent for the installation. It | process so that it remains persistent for the installation. It | |||
may also be desirable that any upgrades of the software maintain | may also be desirable that any upgrades of the software maintain | |||
the unique id. However these are all implementation choices. | the unique id. However these are all implementation choices. | |||
7.13.2 User and Application URIs | 7.13.2. User and Application URIs | |||
The URI for the "user" and "application" type profiles is based upon | The URI for the "user" and "application" type profiles is based upon | |||
the identity of the user. The user's address of record (AOR) is used | the identity of the user. It is an administration policy on how user | |||
as the URI in the SUBSCRIBE request. A new user agent or device may | profile identities are assigned. Typically the user's address of | |||
not know the user's AOR. The user's AOR may be obtained as part of a | record (AOR) is used as the URI in the SUBSCRIBE request. A new user | |||
default user property in the device profile. Alternatively the user | agent or device may not know the user's AOR. The user's AOR may be | |||
agent may prompt the user for an AOR and credentials to be used to | obtained as part of a default user property in the device profile. | |||
authenticate the request. This can provide a login and/or hotelling | Alternatively the user agent may prompt the user for an AOR and | |||
feature on the user agent. The user agent may be pre-provisioned | credentials to be used to authenticate the request. This can provide | |||
with the user's AOR or provided as information on a SIM or flash key. | a login and/or hotelling feature on the user agent. The user agent | |||
These are only examples not an exhaustive list of sources for the | may be pre-provisioned with the user's AOR or provided as information | |||
user AOR. | on a SIM or flash key. These are only examples not an exhaustive | |||
list of sources for the user AOR. | ||||
7.13.3 Local Network URIs | 7.13.3. Local Network URIs | |||
The URI for the "local-network" type profile is based upon the | The URI for the "local-network" type profile is based upon the | |||
identity of the local network. When subscribing to the local network | identity of the local network. When subscribing to the local network | |||
profile, the user part of the URI SHOULD be the same device ID used | profile, the user part of the URI SHOULD be the same device ID used | |||
as the user part of the device profile SUBSCRIBE request URI defined | as the user part of the device profile SUBSCRIBE request URI defined | |||
in Section 7.13.1. The host and port part of the URI is the local | in Section 7.13.1. The host and port part of the URI is the local | |||
network name/domain. The discovery of the local network name or | network name/domain. The discovery of the local network name or | |||
domain is discussed in Section 8.1. The user agent may provide the | domain is discussed in Section 8.1. The user agent may provide the | |||
user's AOR as the value to the "network-user" event header parameter. | user's AOR as the value to the "network-user" event header parameter. | |||
This is useful if the user has privileges in the local network beyond | This is useful if the user has privileges in the local network beyond | |||
skipping to change at page 24, line 44 | skipping to change at page 23, line 45 | |||
consequently also manage resources such as bandwidth and port | consequently also manage resources such as bandwidth and port | |||
allocation. | allocation. | |||
8. Profile Delivery Framework Details | 8. 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 | |||
package defined in this document provides the enrollment and | package defined in this document provides the enrollment and | |||
notification functions within the framework. | notification functions within the framework. | |||
8.1 Discovery of Subscription URI | 8.1. Discovery of Subscription URI | |||
The discovery approach varies depending upon which profile type URI | The discovery approach varies depending upon which profile type URI | |||
is to be discovered. The order of discovery is important in the | is to be discovered. The order of discovery is important in the | |||
bootstrapping situation as the user agent may not have any | bootstrapping situation as the user agent may not have any | |||
information provisioned. The local network profile should be | information provisioned. The local network profile should be | |||
discovered first as it may contain key information such as how to | discovered first as it may contain key information such as how to | |||
traverse a NAT/firewall to get to outside services (e.g. the user's | traverse a NAT/firewall to get to outside services (e.g. the user's | |||
profile delivery server). The device profile URI should be | profile delivery server). The device profile URI should be | |||
discovered next. The device profile may contain the default user's | discovered next. The device profile may contain the default user's | |||
AOR or firmware/software information that should be updated first | AOR or firmware/software information that should be updated first | |||
before proceeding with the discovery process. The user and | before proceeding with the discovery process. The user and | |||
application profile subscription URIs should be discovered last. The | application profile subscription URIs should be discovered last. The | |||
URIs are formed differently for each of the profile types. This is | URIs are formed differently for each of the profile types. This is | |||
to support the delegation of the profile management to potentially | to support the delegation of the profile management to potentially | |||
four different entities. However all four profile types may be | four different entities. However all four profile types may be | |||
provided by the same entity. As the user agent has no way of knowing | provided by the same entity. As the user agent has no way of knowing | |||
whether the profiles are provide by one or more different profile | whether the profiles are provide by one or more different profile | |||
delivery servers ahead of time, it must subscribe to all four profile | delivery servers ahead of time, it must subscribe to all four profile | |||
types in separate SUBSCRIBE requests to get the profiles. | types in separate SUBSCRIBE requests to get the profiles. | |||
8.1.1 Discovery of Local Network URI | 8.1.1. Discovery of Local Network URI | |||
The "discovered" host for the "local-network" profile subscription | The "discovered" host for the "local-network" profile subscription | |||
URI is the local IP network domain for the user agent, either | URI is the local IP network domain for the user agent, either | |||
provisioned as part of the device's static network configuration or | provisioned as part of the device's static network configuration or | |||
discovered via DHCP. The local network profile subscription URI | discovered via DHCP [RFC2131](option 15 [RFC2132]). The local | |||
SHOULD not be remembered if the user agent moves from one local | network profile subscription URI SHOULD not be remembered if the user | |||
network to another other. The user agent should perform the local | agent moves from one local network to another other. The user agent | |||
network discovery to construct the network profile subscription | should perform the local network discovery to construct the network | |||
request URI every time it starts up or network connectivity is | profile subscription request URI every time it starts up or network | |||
regained. | connectivity is regained. | |||
For example: The user agent requested and received the local | For example: The user agent requested and received the local | |||
domain name via DHCP: airport.example.net. If the device ID is: | domain name via DHCP: airport.example.net. If the device ID is: | |||
MAC:00DF1E004CD0, the local network profile SUBSCRIBE request URI | MAC:00DF1E004CD0, the local network profile SUBSCRIBE request URI | |||
would look like: sip:MAC%3a00DF1E004CD0@airport.example.net. The | would look like: sip:MAC%3a00DF1E004CD0@airport.example.net. The | |||
user agent should send this request using the normal SIP locating | user agent should send this request using the normal SIP locating | |||
mechanisms defined in [RFC3263]. The Event header would look like | mechanisms defined in [RFC3263]. The Event header would look like | |||
the following if the user agent decided to provide | the following if the user agent decided to provide | |||
sip:alice@example.com as the user's AOR. (Alice may have a prior | sip:alice@example.com as the user's AOR. (Alice may have a prior | |||
arrangement with the local network operator giving her special | arrangement with the local network operator giving her special | |||
privileges.): | privileges.): | |||
Event: ua-profile;profile-type=local-network; | Event: ua-profile;profile-type=local-network; | |||
network-user="sip:alice@example.com" | network-user="sip:alice@example.com" | |||
8.1.2 Discovery of Device URI | 8.1.2. Discovery of Device URI | |||
The discovery function is needed to bootstrap user agents to the | The discovery function is needed to bootstrap user agents to the | |||
point of knowing where to enroll with the profile delivery server. | point of knowing where to enroll with the profile delivery server. | |||
Section 7.13.1 describes how to form the user part of the device | Section 7.13.1 describes how to form the user part of the device | |||
profile SUBSCRIBE request URI used for enrollment. However the | profile SUBSCRIBE request URI used for enrollment. However the | |||
bootstrapping problem for the user agent (out of the box) is what to | bootstrapping problem for the user agent (out of the box) is what to | |||
use for the host and port in the device URI. Due to the wide | use for the host and port in the device URI. Due to the wide | |||
variation of environments in which the enrolling user agent may | variation of environments in which the enrolling user agent may | |||
reside (e.g. behind residential router, enterprise LAN, WLAN hotspot, | reside (e.g. behind residential router, enterprise LAN, WLAN hotspot, | |||
ISP, dialup modem) and the limited control that the administrator of | ISP, dialup modem) and the limited control that the administrator of | |||
skipping to change at page 26, line 26 | skipping to change at page 25, line 27 | |||
which case this discovery mechanism is not needed. Before performing | which case this discovery mechanism is not needed. Before performing | |||
the discovery steps, the user agent should provide a means to skip | the discovery steps, the user agent should provide a means to skip | |||
the discovery stage and manually enter the device URI host and port. | the discovery stage and manually enter the device URI host and port. | |||
In addition the user agent should allow the user to accept or reject | In addition the user agent should allow the user to accept or reject | |||
the discovered host and port, in case an alternate to the discovered | the discovered host and port, in case an alternate to the discovered | |||
host and port are desired. | host and port are desired. | |||
1. The first discovery mechanism that should be tried to construct | 1. The first discovery mechanism that should be tried to construct | |||
the device SUBSCRIBE request URI, as described in Section 7.13.1, | the device SUBSCRIBE request URI, as described in Section 7.13.1, | |||
is to use the host and port of the outbound proxy discovered by | is to use the host and port of the outbound proxy discovered by | |||
the SIP DHCP option as described in [RFC3361]. If the SIP DHCP | the SIP DHCP option 120 as described in [RFC3361]. If the SIP | |||
option is not provided in the DHCP response; or no SIP response | DHCP option is not provided in the DHCP response; or no SIP | |||
is received for the SUBSCRIBE request; or a SIP failure response | response is received for the SUBSCRIBE request; or a SIP failure | |||
other than for authorization is received for the SUBSCRIBE | response other than for authorization is received for the | |||
request to the ua-profile event, the next discovery mechanism | SUBSCRIBE request to the ua-profile event, the next discovery | |||
should be tried. | mechanism should be tried. | |||
For example: Consider a dedicated hardware device with a | For example: Consider a dedicated hardware device with a | |||
single user agent having the MAC address: abc123efd456. The | single user agent having the MAC address: abc123efd456. The | |||
user agent sends a DHCP request including the request for the | user agent sends a DHCP request including the request for the | |||
DHCP option for SIP: 120 (see [RFC3361]). If the DHCP | DHCP option for SIP: 120 (see [RFC3361]). If the DHCP | |||
response includes an answer for option 120, then the DNS name | response includes an answer for option 120, then the DNS name | |||
or IP address included is used in the host part of the device | or IP address included is used in the host part of the device | |||
URI. For this example let's assume: example.com. The device | URI. For this example let's assume: example.com. The device | |||
URI would look like: sip:MAC%3aABC123EFD456@example.com. The | URI would look like: sip:MAC%3aABC123EFD456@example.com. The | |||
user agent should send this request using the normal SIP | user agent should send this request using the normal SIP | |||
locating mechanisms defined in [RFC3263]. If the response | locating mechanisms defined in [RFC3263]. If the response | |||
fails then, the next discovery mechanism is tried. | fails then, the next discovery mechanism is 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 option 15, should be used with the | |||
[RFC3263] to obtain a host and port to use in the SUBSCRIBE URI. | technique in [RFC3263] to obtain a host and port to use in the | |||
If no SIP response or a SIP failure response other than for | SUBSCRIBE URI. If no SIP response or a SIP failure response | |||
authorization is received for the SUBSCRIBE request to the ua- | other than for authorization is received for the SUBSCRIBE | |||
profile event, the next discovery mechanism should be tried. | request to the ua-profile event, the next discovery mechanism | |||
should be tried. | ||||
For example: The user agent requested and received the local | For example: The user agent requested and received the local | |||
domain name (option 15) in the DHCP response: | domain name (option 15 [RFC2132]) in the DHCP response: | |||
boston.example.com. The device URI would look like: | boston.example.com. The device URI would look like: | |||
sip:MAC%3aABC123EFD456@boston.example.com. The user agent | sip:MAC%3aABC123EFD456@boston.example.com. The user agent | |||
should send this request using the normal SIP locating | should send this request using the normal SIP locating | |||
mechanisms defined in [RFC3263]. If the response fails then, | mechanisms defined in [RFC3263]. If the response fails then, | |||
the next discovery mechanism is tried. | the next discovery mechanism is tried. | |||
3. The fully qualified host name constructed by concatenating | 3. The fully qualified host name constructed by concatenating | |||
"sipuaconfig" and the local IP network domain (as provided via | "sipuaconfig" and the local IP network domain (as provided via | |||
DHCP or provisioned) should be tried next using the technique in | DHCP option 15 or provisioned) should be tried next using the | |||
[RFC3263] to obtain a host and port to use in the SUBSCRIBE URI. | technique in [RFC3263] to obtain a host and port to use in the | |||
If no SIP response or a SIP failure response other than for | SUBSCRIBE URI. If no SIP response or a SIP failure response | |||
authorization is received for the SUBSCRIBE request to the ua- | other than for authorization is received for the SUBSCRIBE | |||
profile event, the next discovery mechanism should be tried. | request to the ua-profile event, the next discovery mechanism | |||
should be tried. | ||||
For example: The user agent requested and received the local | For example: The user agent requested and received the local | |||
domain name via DHCP as in the above example: | domain name via DHCP as in the above example: | |||
boston.example.com. The device URI would look like: | boston.example.com. The device URI would look like: | |||
sip:MAC%3aABC123EFD456@sipuaconfig.boston.example.com. The | sip:MAC%3aABC123EFD456@sipuaconfig.boston.example.com. The | |||
user agent should send this request using the normal SIP | user agent should send this request using the normal SIP | |||
locating mechanisms defined in [RFC3263]. If the response | locating mechanisms defined in [RFC3263]. If the response | |||
fails then, the next discovery mechanism is tried. | fails then, the next discovery mechanism is tried. | |||
4. If all other discovery techniques fail, a manual means for the | 4. If all other discovery techniques fail, a manual means for the | |||
skipping to change at page 28, line 37 | skipping to change at page 27, line 39 | |||
on a laptop plugged into a visited LAN in which a foreign profile | on a laptop plugged into a visited LAN in which a foreign profile | |||
delivery server is discovered. The profile delivery server never | delivery server is discovered. The profile delivery server never | |||
provides profile URIs in the NOTIFY request as it is not | provides profile URIs in the NOTIFY request as it is not | |||
provisioned to accept the user agent. The user then takes the | provisioned to accept the user agent. The user then takes the | |||
laptop to their enterprise LAN. If the user agent cached the | laptop to their enterprise LAN. If the user agent cached the | |||
SUBSCRIBE URI from the visited LAN (which did not provide | SUBSCRIBE URI from the visited LAN (which did not provide | |||
profiles), when subsequently placed in the enterprise LAN which is | profiles), when subsequently placed in the enterprise LAN which is | |||
provisioned to provide profiles to the user agent, the user agent | provisioned to provide profiles to the user agent, the user agent | |||
would not attempt to discover the profile delivery server. | would not attempt to discover the profile delivery server. | |||
8.1.3 Discovery of User and Application URI | 8.1.3. Discovery of User and Application URI | |||
The user's AOR may be preprovisioned or provided via SIM or flash | The user's AOR may be preprovisioned or provided via SIM or flash | |||
key, etc. The device profile may define a default user and AOR. If | key, etc. The device profile may define a default user and AOR. If | |||
provided in the device profile and a preprovisioned user AOR is not | provided in the device profile and a preprovisioned user AOR is not | |||
provided, the default user's AOR is used to subscribe to the "user" | provided, the default user's AOR is used to subscribe to the "user" | |||
and "application" profiles. If not provided through the above two | and "application" profiles. If not provided through the above two | |||
approaches, the AOR to be used for the "user" and "application" | approaches, the AOR to be used for the "user" and "application" | |||
subscription URI, is "discovered" manually by prompting the user. | subscription URI, is "discovered" manually by prompting the user. | |||
The URI obtained in the discovery steps described above for the | The URI obtained in the discovery steps described above for the | |||
"user" and "application" profile subscriptions is stored persistantly | "user" and "application" profile subscriptions is stored persistantly | |||
in the device until explicitly reset or updated by the user or | in the device until explicitly reset or updated by the user or | |||
profile. | profile. | |||
8.2 Enrollment with Profile Server | 8.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 7. The enrollment process is useful to the | described in Section 7. The enrollment process is useful to the | |||
profile delivery server as it makes the server aware of user agents | profile delivery server as it makes the server aware of user agents | |||
to which it may deliver profiles (those user agents the profile | to which it may deliver profiles (those user agents the profile | |||
delivery server is provisioned to provide profiles to; those present | delivery server is provisioned to provide profiles to; those present | |||
to which the server may provide profiles in the future; and those | to which the server may provide profiles in the future; and those | |||
that the server can automatically provide default profiles). It is | that the server can automatically provide default profiles). It is | |||
an implementation choice and business policy as to whether the | 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 explicitly provisioned to do so. However the profile delivery | not explicitly provisioned to do so. However the profile delivery | |||
server SHOULD accept (with 2xx response) SUBSCRIBE requests from any | server SHOULD accept (with 2xx response) SUBSCRIBE requests from any | |||
user agent as explained in Section 7.5. | user agent as explained in Section 7.5. | |||
8.3 Notification of Profile Changes | 8.3. Notification of Profile Changes | |||
The NOTIFY request in the ua-profile event package serves two | The NOTIFY request in the ua-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 profile data directly or via URI(s) for desired profiles without | the profile data directly or via URI(s) for desired profiles without | |||
requiring the end user to manually enter them. It also provides the | requiring the end user to manually enter them. It also provides the | |||
means for the profile delivery server to notify the user agent that | means for the profile delivery server to notify the user agent that | |||
the content of the profiles has changed and should be made effective. | the content of the profiles has changed and should be made effective. | |||
Optionally the differential changes may be obtained by notification | Optionally the differential changes may be obtained by notification | |||
by including the content-type: "application/xcap-diff+xml" defined in | by including the content-type: "application/xcap-diff+xml" defined in | |||
[I-D.ietf-simple-xcap-package] in the Accept header of the SUBSCRIBE | [I-D.ietf-simple-xcap-diff] in the Accept header of the SUBSCRIBE | |||
request. | request. | |||
8.4 Retrieval of Profile Data | 8.4. Retrieval of Profile Data | |||
The user agent retrieves its needed profile(s) directly or via the | The user agent retrieves its needed profile(s) directly or via the | |||
URI(s) provided in the NOTIFY request as specified in Section 7.5. | URI(s) provided in the NOTIFY request as specified in Section 7.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 10. The user agent | using one of the techniques described in Section 10. 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 7.2. | Section 7.2. | |||
The contents of the profiles SHOULD be cached (i.e. stored | The contents of the profiles SHOULD be cached (i.e. stored | |||
persistently) by the user agent. The cache should be used if the | persistently) by the user agent. The cache should be used if the | |||
user agent is unable to successfully SUBSCRIBE or receive the NOTIFY | user agent is unable to successfully SUBSCRIBE or receive the NOTIFY | |||
providing the most recent profile. The cached profile should be | providing the most recent profile. The cached profile should be | |||
replaced each time a profile is received in a NOTIFY or retrieved via | replaced each time a profile is received in a NOTIFY or retrieved via | |||
content indirection. This it to avoid the situation where the | content indirection. This it to avoid the situation where the | |||
content delivery server being not available, leaves the user agent | content delivery server being not available, leaves the user agent | |||
non-functional. The user agent should verify that it has the latest | non-functional. The user agent should verify that it has the latest | |||
profile content using the "hash" parameter defined in [I-D.ietf-sip- | profile content using the "hash" parameter defined in [I-D.ietf-sip- | |||
content-indirect-mech]. | content-indirect-mech]. | |||
8.5 Upload of Profile Changes | 8.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 URI | |||
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. A means for pushing changes up into | specific profile data framework. A means for pushing changes up into | |||
the profile delivery server for XCAP is defined in [I-D.ietf-simple- | the profile delivery server for XCAP is defined in [I-D.ietf-simple- | |||
xcap]. | xcap]. | |||
8.6 Usage of XCAP with the Profile Package | ||||
This framework allows for the usage of several different protocols | ||||
for the retrieval of profiles. One protocol which is suitable is | ||||
XCAP [I-D.ietf-simple-xcap], which allows for HTTP URIs to represent | ||||
XML documents, elements and attributes. XCAP defines a specific | ||||
hierarchy for how documents are organized. As a result, it is | ||||
necessary to discuss how that organization relates to the rough data | ||||
model presented here. | ||||
When a user or device enrolls with a SUBSCRIBE request, the request | ||||
URI will contain identifying information for that user or device. | ||||
This identity is mapped to an XCAP User ID (XUID) based on an | ||||
implementation specific mapping. The "profile-type" along with the | ||||
"auid" Event header parameters specify the specific XCAP application | ||||
usage. | ||||
In particular, when the Event header parameter "profile-type" is | ||||
"application", the "auid" MAY be included to contain the XCAP | ||||
Application Unique ID (AUID) [I-D.ietf-simple-xcap]. When the | ||||
"profile-type" is "application", but the "auid" parameter is absent, | ||||
this specifies that the user wishes to SUBSCRIBE to all documents for | ||||
all application usages associated with the user in the request-uri. | ||||
This provides a convenient way for a single subscription to be used | ||||
to obtain all application data. The XCAP root is determined by a | ||||
local mapping. | ||||
When the "profile-type" is "device", or "user" or "local-network", | ||||
this maps to an AUID and document selector for representing device, | ||||
user and local-network data, respectively. The mapping is a matter | ||||
of local policy. This allows different providers to use different | ||||
XCAP application usages and document schemas for representing these | ||||
profiles, without having to configure the device with the specific | ||||
AUID which is being used. | ||||
Furthermore, when the "document" attribute is present, it identifies | ||||
a specific document that is being requested. The "auid" SHOULD NOT | ||||
be present if the "document" is also present. The "document" | ||||
attribute specifies a relative path reference. The path is | ||||
constucted from a set of path segments (e.g. directories) using the | ||||
"/" separator. For XCAP the relative document path is constructed | ||||
using the following steps:" | ||||
1. Its first path segment is either "global", specifying global | ||||
data, or "user", specifying user data for the user in the request | ||||
URI. | ||||
2. If the prior path segment is "user", the next path segment | ||||
identifies the the user's home directory. That is the next path | ||||
segment is the user's directory name. The user's directory name | ||||
is appended onto the "document" path with the "/" separator. If | ||||
the prior path segment is "global" nothing is appended to the | ||||
document path for this step. | ||||
3. When the "profile-type" is "application", the next path segment | ||||
to append (i.e. after "global" or the user's home directory | ||||
segment) MAY indicate the XCAP Application Unique ID (AUID) if | ||||
the user agent wishes to subscribe to a specific application | ||||
profile. | ||||
4. If the AUID was added to the document path in the prior step, | ||||
additional path segments may be added according to the specific | ||||
schema of the profile and the query mechanism provided in | ||||
[I-D.ietf-simple-xcap]. | ||||
For example, consider a phone with an instance ID of | ||||
urn:uuid:00000000-0000-0000-0000-0003968cf920. To obtain its device | ||||
profile, it would generate a SUBSCRIBE that contains the following | ||||
Request-Line and Event header: (Note that line folding of the | ||||
Request-URI is illegal in SIP. The Request URI is shown broken | ||||
across the first 3-lines here only due to formatting limitations of | ||||
IETF documents. The Event header is shown continued across a second | ||||
line for the same reason.) | ||||
SUBSCRIBE | ||||
sip:urn%3auuid%3a00000000-0000-0000-0000-0003968cf920@example.com | ||||
SIP/2.0 | ||||
Event: ua-profile;profile-type=device;Vendor="vendor2"; | ||||
Model="1";Version="2.2.2" | ||||
If the profile data is stored in an XCAP server, the server would map | ||||
the "device" profile to an application usage and document selector | ||||
based on local policy. The user ID that might be used in the case of | ||||
a device profile could be the device ID which is identified in the | ||||
user part of the SUBSCRIBE URI. The XCAP server may use a root | ||||
directory of: http://xcap.example.com/root. Local policy may provide | ||||
a mapping for the AUID "vendor2-device-data" based upon the "vendor" | ||||
parameter and a document called "index" within the user directory, | ||||
the corresponding HTTP URI for the document might be: (Note that this | ||||
URL is only one line; it is split across three lines due to | ||||
formatting limitations of IETF documents.) | ||||
http://xcap.example.com/root/users/ | ||||
urn%3auuid%3a00000000-0000-0000-0000-0003968cf920/ | ||||
vendor2-device-data/index | ||||
and indeed, if a content indirection is returned in a NOTIFY, the URL | ||||
would equal this. | ||||
That user profile might specify the user identity (as a SIP AOR) and | ||||
their application-usages. From that, the device can enroll to learn | ||||
about its application data. To learn about all of the data: | ||||
SUBSCRIBE sip:alice@example.com SIP/2.0 | ||||
Event: ua-profile;profile-type=application;Vendor="vendor2"; | ||||
Model="1";Version="2.2.2" | ||||
The server would map the request URI to an XUI (user-aor, for | ||||
example) and the xcap root based on local policy. If there are two | ||||
AUIDs, "resource-lists" [I-D.ietf-simple-xcap-list-usage] and "rls- | ||||
services" [I-D.ietf-simple-xcap-list-usage], this would result in a | ||||
subscription to all documents within: | ||||
http://xcap.example.com/root/users/user-aor/rls-services | ||||
http://xcap.example.com/root/users/user-aor/resource-lists | ||||
The user would not be subscribed to the global data for these two | ||||
application usages, since that data is not important for users. | ||||
However, the user/device could be made aware that it needs to | ||||
subscribe to a specific document. In that case, its subscribe would | ||||
look like: | ||||
SUBSCRIBE sip:user-aor@example.com SIP/2.0 | ||||
Event: ua-profile;profile-type=application;auid="resource-lists"; | ||||
Vendor="vendor2";Model="1";Version="2.2.2" | ||||
this would result in a subscription to the single global document for | ||||
resource-lists. | ||||
In some cases, these subscriptions are to a multiplicity of | ||||
documents. In that case, the notification format will need to be one | ||||
which can indicate what document has changed. This includes content | ||||
indirection, but also the xcap diff format [I-D.ietf-simple-xcap- | ||||
package]. | ||||
9. IANA Considerations | 9. IANA Considerations | |||
There are several IANA considerations associated with this | There are several IANA considerations associated with this | |||
specification. | specification. | |||
9.1 SIP Event Package | 9.1. SIP Event Package | |||
This specification registers a new event package as defined in | This specification registers a new event package as defined in | |||
[RFC3265]. The following information required for this registration: | [RFC3265]. The following information required for this registration: | |||
Package Name: ua-profile | Package Name: ua-profile | |||
Package or Template-Package: This is a package | Package or Template-Package: This is a package | |||
Published Document: RFC XXXX (Note to RFC Editor: Please fill in | Published Document: RFC XXXX (Note to RFC Editor: Please fill in | |||
XXXX with the RFC number of this specification). | XXXX with the RFC number of this specification). | |||
Person to Contact: Daniel Petrie dan.ietf AT SIPez DOT com | Person to Contact: Daniel Petrie dan.ietf AT SIPez DOT com | |||
New event header parameters: profile-type, vendor, model, version, | New event header parameters: profile-type, vendor, model, version, | |||
effective-by, document, auid, network-user | effective-by, network-user | |||
10. Security Considerations | 10. Security Considerations | |||
Profiles may contain sensitive data such as user credentials and | Profiles may contain sensitive data such as user credentials and | |||
personal information. The protection of this data depends upon how | personal information. The protection of this data depends upon how | |||
the data is delivered. Some profiles may be safe to deliver without | the data is delivered. Some profiles may be safe to deliver without | |||
the need to protect the content. For example in some environments | the need to protect the content. For example in some environments | |||
the local network profile may contain the list of codecs that are | the local network profile may contain the list of codecs that are | |||
acceptable for use in the network and information on NAT traversal | acceptable for use in the network and information on NAT traversal | |||
such as a STUN server to use. As the information in this example | such as a STUN server to use. As the information in this example | |||
skipping to change at page 34, line 14 | skipping to change at page 30, line 23 | |||
Subscribers implementing this specification MUST implement either | Subscribers implementing this specification MUST implement either | |||
HTTP or HTTPS. Subscribers also MUST implement the hash verification | HTTP or HTTPS. Subscribers also MUST implement the hash verification | |||
scheme described in SIP content indirection [I-D.ietf-sip-content- | scheme described in SIP content indirection [I-D.ietf-sip-content- | |||
indirect-mech]. SIP profile delivery servers MUST implement both | indirect-mech]. SIP profile delivery servers MUST implement both | |||
HTTP and HTTPS, and SHOULD implement a SIP Authentication Service as | HTTP and HTTPS, and SHOULD implement a SIP Authentication Service as | |||
described in the SIP Identity mechanism [I-D.ietf-sip-identity]. All | described in the SIP Identity mechanism [I-D.ietf-sip-identity]. All | |||
SIP entities are already required to implement SIP Digest | SIP entities are already required to implement SIP Digest | |||
authentication [RFC3261]. | authentication [RFC3261]. | |||
10.1 Confidential Profile Content in NOTIFY Request | 10.1. Confidential Profile Content in NOTIFY Request | |||
When the profile data is delivered directly in the NOTIFY request, | When the profile data is delivered directly in the NOTIFY request, | |||
the SUBSCRIBE request MUST be authenticated using the SIP Digest | the SUBSCRIBE request MUST be authenticated using the SIP Digest | |||
authentication mechanism. As the profile content is delivered in the | authentication mechanism. As the profile content is delivered in the | |||
resulting NOTIFY request to the subscription, authenticating the | resulting NOTIFY request to the subscription, authenticating the | |||
SUBSCRIBE is the only way to prevent unauthorized access to the | SUBSCRIBE is the only way to prevent unauthorized access to the | |||
profile data. To provide message integrity and confidentiality over | profile data. To provide message integrity and confidentiality over | |||
the profile data, a direct TLS connection MUST be established for the | the profile data, a direct TLS connection MUST be established for the | |||
SUBSCRIBE request. The device SHOULD authenticate the server via the | SUBSCRIBE request. The device SHOULD authenticate the server via the | |||
TLS connection, which also provides a means of verifying that a | TLS connection, which also provides a means of verifying that a | |||
direct TLS connection was used (e.g. The device may prompt the user | direct TLS connection was used (e.g. The device may prompt the user | |||
to verify the Common Name in the server's certificate.). The server | to verify the Common Name in the server's certificate.). The server | |||
may challenge the device for its certificate, when establishing the | may challenge the device for its certificate, when establishing the | |||
TLS connection, to obtain the public to S/MIME encode the NOTIFY | TLS connection, to obtain the public key to use to S/MIME encode the | |||
request body containing the profile data. Because the device | NOTIFY request body containing the profile data. Because the device | |||
verified that it has a direct TLS connection by verifying the | verified that it has a direct TLS connection by verifying the | |||
server's certificate and the server verified the identity of the | server's certificate and the server verified the identity of the | |||
device using Digest Authentication, the server can assume the | device using Digest Authentication, the server can assume the | |||
certficate provided by the device is authenticated. The use of | certficate provided by the device is authenticated. The use of | |||
S/MIME in the NOTIFY request does not relieve the need to | S/MIME in the NOTIFY request does not relieve the need to | |||
authenticate the SUBSCRIBE request using SIP Digest authentication. | authenticate the SUBSCRIBE request using SIP Digest authentication. | |||
In this scenario S/MIME only provides message integrity and | In this scenario S/MIME only provides message integrity and | |||
confidentiality of the content of the profile. If S/MIME is not used | confidentiality of the content of the profile. If S/MIME is not used | |||
for the profile data in the NOTIFY request, the notifier MUST use the | for the profile data in the NOTIFY request, the notifier MUST use the | |||
same direct TLS connection established by device for the SUBSCRIBE | same direct TLS connection established by the device for the | |||
request. In this scenario the use of user specific ID and secret in | SUBSCRIBE request to send the notification. In this scenario the use | |||
the Digest Authentication can be used to establish an association | of a user-specific ID and secret for Digest Authentication can be | |||
between user ID and the device ID provide in the device profile | used to establish an association between the user ID and the device | |||
SUBSCRIBE request. | ID provided in the device profile SUBSCRIBE request. | |||
10.2 Confidential Profile Content via Content Indirection | 10.2. Confidential Profile Content via Content Indirection | |||
When the profile data is delivered via content indirection, | When the profile data is delivered via content indirection, | |||
authentication, integrity, confidentiality are all provided in the | authentication, integrity, confidentiality are all provided in the | |||
profile indirection retrieval scheme. When content indirection is | profile indirection retrieval scheme. When content indirection is | |||
used, the SUBSCRIBE request does not need to be authenticated. There | used, the SUBSCRIBE request does not need to be authenticated. There | |||
is a TLS certificate approach and a Digest Authentication approach | is a TLS certificate approach and a Digest Authentication approach | |||
which may be used to provide the required security. The profile | which may be used to provide the required security. The profile | |||
delivery server MUST support both of these methods. The device MUST | delivery server MUST support both of these methods. The device MUST | |||
support the Digest Authentication method to provide minimal | support the Digest Authentication method to provide minimal | |||
interoperablity. | interoperablity. | |||
skipping to change at page 36, line 5 | skipping to change at page 32, line 10 | |||
The profile delivery scheme MUST use channel security such as TLS | The profile delivery scheme MUST use channel security such as TLS | |||
(e.g. HTTPS) to protect the content from being snooped in transport | (e.g. HTTPS) to protect the content from being snooped in transport | |||
to the user agent. Mutual authentication using the client and server | to the user agent. Mutual authentication using the client and server | |||
certificates MAY be used to verify the authenticity of the user or | certificates MAY be used to verify the authenticity of the user or | |||
device identity and the profile delivery server identity. The user | device identity and the profile delivery server identity. The user | |||
agent SHOULD provide a mechanism for the user to approve the | agent SHOULD provide a mechanism for the user to approve the | |||
SUBSCRIBE server identity or provision the acceptable server identity | SUBSCRIBE server identity or provision the acceptable server identity | |||
through out of band means. | through out of band means. | |||
10.3 Integrity protection for non-confidential profiles | 10.3. Integrity protection for non-confidential profiles | |||
Even for non-confidential profiles, the subscriber MUST verify the | Even for non-confidential profiles, the subscriber MUST verify the | |||
authenticity of the profile delivery server, and MUST verify that the | authenticity of the profile delivery server, and MUST verify that the | |||
integrity of the profile data and content indirection URI, if one is | integrity of the profile data and content indirection URI, if one is | |||
provided. To meet these requirements in the SIP messaging the NOTIFY | provided. To meet these requirements in the SIP messaging the NOTIFY | |||
request MUST use a SIP Identity header [I-D.ietf-sip-identity], or | request MUST use a SIP Identity header [I-D.ietf-sip-identity], or | |||
S/MIME. If content is provided via redirection, the content | S/MIME. If content is provided via redirection, the content | |||
indirection "hash" parameter MUST be included unless the profile data | indirection "hash" parameter MUST be included unless the profile data | |||
is delivered via a protocol which natively provides authentication | is delivered via a protocol which natively provides authentication | |||
and message integrity, such as HTTP or LDAP protected by TLS. The | and message integrity, such as HTTP or LDAP protected by TLS. The | |||
content retrieved via the content indirection URI MUST be integrity | content retrieved via the content indirection URI MUST be integrity | |||
checked using the "hash" parameter. | checked using the "hash" parameter. | |||
For example, Alice subscribes to the local domain profile for | For example, Alice subscribes to the local domain profile for | |||
paris.example.com. She receives the following NOTIFY request which | paris.example.com. She receives a NOTIFY request which uses content | |||
uses content indirection, including a "hash" parameter. Alice uses | indirection, including a "hash" parameter. Alice uses the Identity | |||
the Identity header from the NOTIFY to verify that the request came | header from the NOTIFY to verify that the request came from | |||
from paris.example.com and that the body was not modified. Then she | paris.example.com and that the body was not modified. Then she | |||
fetches the content at the provided URI and verifies that the hash | fetches the content at the provided URI and verifies that the hash | |||
she calculates from the profile matches the hash provided in the SIP | she calculates from the profile matches the hash provided in the SIP | |||
signaling. | signaling. | |||
10.4. Initial Enrollment Using a Manufacturer's Certificate | ||||
A UA with a manufacturer certificate can use this certificate for | ||||
initial enrollment into the configuration framework. In order to | ||||
safely deploy this scenario, the profile delivery server MUST | ||||
maintain a list of enrolled devices and a separate list of devices | ||||
which it expects to enroll. | ||||
When the device sends a subscription request to the notifier, the | ||||
notifier extracts the device-id from the userpart of the Request URI | ||||
and checks if the device is expected to enroll. If the device is | ||||
expected, the notifier provides an https: URL to the subscriber and | ||||
uses the SIP Identity mechanism to protect the integrity of this URL. | ||||
This URL MUST contain enough information that the profile content | ||||
server can correlate a request to this URL with the device-id that | ||||
was in the subscription. | ||||
The subscriber then establishes a TLS connection to the profile | ||||
content server and performs ordinary authentication of the server | ||||
certificate. During the TLS handshake, the profile content server | ||||
requests the certificate of the subscriber. The subscriber provides | ||||
its device certificate. Typically this certificate is created by the | ||||
manufacturer of the device. If no client certificate is provided, | ||||
the profile content server SHOULD return a 403 Forbidden response. | ||||
Next the profile content server checks the client certificate | ||||
according to the following steps: | ||||
1. The client certificate MUST be valid, and MUST be rooted in a | ||||
certificate authority that the administrator of the profile | ||||
content server trusts to assert a valid "enrollment identity", | ||||
for example a MAC address, serial number, or device-id. | ||||
2. The profile content server MUST verify that the device-id | ||||
provided in the https: URL corresponds to the subject or | ||||
subjectAltName of the client certificate, in an implementation | ||||
specific way. For example, the profile content server could | ||||
extract the MAC address from the device-id and the certificate | ||||
and compare them. How device certificates are arranged is not | ||||
standardized at the time of this writing, and is outside the | ||||
scope of this document. | ||||
3. The profile content server SHOULD verify that the issuer of the | ||||
certificate is expected and authorized to assert an enrollment | ||||
identity for this type of device. In other words, the profile | ||||
content server should not allow acme.example to assert an | ||||
enrollment identity for a device manufactured by rival company | ||||
widgets.example. | ||||
4. The profile content server MUST verify that the device referred | ||||
to by the device-id is not already enrolled. | ||||
5. The profile content server MUST verify that the device referred | ||||
to by the device-id is expected to enroll at the current time. | ||||
Typically, an administrator would configure a time-window of | ||||
hours or days during which a new device can enroll. | ||||
If the profile content server successfully performs all these steps, | ||||
it provides an initial device profile to the subscriber in the body | ||||
of the HTTP response. This initial device profile MUST contain new | ||||
credentials (for example, credentials for Digest authentication) that | ||||
the subscriber can use for subsequent authentication. Integrity and | ||||
confidentiality of the new profile is provided since the response is | ||||
sent over a TLS channel. If one of the verification steps above | ||||
fails, the profile content server sends a 403 Forbidden response. | ||||
Entities other than the profile content server do not accept | ||||
manufacturer device certificates to secure ordinary communications, | ||||
such as SIP TLS or SIP S/MIME. | ||||
11. Acknowledgements | 11. Acknowledgements | |||
Many thanks to those who contributed and commented on the many | Many thanks to those who contributed and commented on the many | |||
iterations of this document. Detailed input was provided by Jonathan | iterations of this document. Detailed input was provided by Jonathan | |||
Rosenberg from Cisco, Henning Schulzrinne from Columbia University, | Rosenberg from Cisco, Henning Schulzrinne from Columbia University, | |||
Cullen Jennings from Cisco, Rohan Mahy from Airespace, Rich Schaaf | Cullen Jennings from Cisco, Rohan Mahy from Plantronics, Rich Schaaf | |||
from Pingtel, Volker Hilt from Bell Labs, Adam Roach of Estacado | from Pingtel, Volker Hilt from Bell Labs, Adam Roach of Estacado | |||
Systems, Hisham Khartabil from Telio, Henry Sinnreich from MCI, | Systems, Hisham Khartabil from Telio, Henry Sinnreich from MCI, | |||
Martin Dolly from AT&T Labs, John Elwell from Siemens, Elliot Eichen | Martin Dolly from AT&T Labs, John Elwell from Siemens, Elliot Eichen | |||
and Robert Liao from Verizon, Dale Worley from Pingtel. | and Robert Liao from Verizon, Dale Worley from Pingtel, Francois | |||
Audet from Nortel. | ||||
12. Change History | 12. Change History | |||
[[RFC Editor: Please remove this entire section upon publication as | [[RFC Editor: Please remove this entire section upon publication as | |||
an RFC.]] | an RFC.]] | |||
12.1 Changes from draft-ietf-sipping-config-framework-06.txt | 12.1. Changes from draft-ietf-sipping-config-framework-07.txt | |||
Made XCAP informative reference. Removed "document" and "auid" | ||||
event header parameters, and Usage of XCAP section to be put in | ||||
separate supplementary draft. | ||||
Fixed ABNF for network-user to be addr-spec only (not name-addr) | ||||
and to be quoted as well. | ||||
Syncronized with XCAP path terminology. Removed XCAP path | ||||
definition as it is already defined in XCAP. | ||||
User agent instance ID is now defined in output (not GRUU). | ||||
Clarified the rational for the network-user parameter. | ||||
Added text to suggest URIs for To and From fields. | ||||
Clearified use of network-user parameter. | ||||
Allow the use of the auid and document parameters per request by | ||||
the OMA. | ||||
12.2. Changes from draft-ietf-sipping-config-framework-06.txt | ||||
Restructured the introduction and overview section to be more | Restructured the introduction and overview section to be more | |||
consistent with other Internet-Drafts. | consistent with other Internet-Drafts. | |||
Added additional clarifcation for the Digest Authentication and | Added additional clarifcation for the Digest Authentication and | |||
Certificate based authentication cases in the security section. | Certificate based authentication cases in the security section. | |||
Added two use case scenarios with cross referencing to better | Added two use case scenarios with cross referencing to better | |||
illustrate how the framework works. Added better cross | illustrate how the framework works. Added better cross | |||
referencing in the overview section to help readers find where | referencing in the overview section to help readers find where | |||
concepts and functionality is defined in the document. | concepts and functionality is defined in the document. | |||
Clarified the section on the use of XCAP. Changed the Event | Clarified the section on the use of XCAP. Changed the Event | |||
skipping to change at page 37, line 24 | skipping to change at page 35, line 21 | |||
discussion on the list and last IETF meeting. | discussion on the list and last IETF meeting. | |||
Changed "local" profile type token to "local-network" per | Changed "local" profile type token to "local-network" per | |||
discussion on the list and last IETF meeting. | discussion on the list and last IETF meeting. | |||
Simplified "Vendor", "Model", "Version" event header parameters to | Simplified "Vendor", "Model", "Version" event header parameters to | |||
allow only quoted string values (previously allowed token as | allow only quoted string values (previously allowed token as | |||
well). | well). | |||
Clarified use of the term cache. | Clarified use of the term cache. | |||
Added references for ABNF constructs. | Added references for ABNF constructs. | |||
Numerous editorial changes. Thanks Dale! | Numerous editorial changes. Thanks Dale! | |||
12.2 Changes from draft-ietf-sipping-config-framework-05.txt | 12.3. Changes from draft-ietf-sipping-config-framework-05.txt | |||
Made HTTP and HTTPS profile transport schemes mandatory in the | Made HTTP and HTTPS profile transport schemes mandatory in the | |||
profile delivery server. The subscribing device must implement | profile delivery server. The subscribing device must implement | |||
HTTP or HTTPS as the profile transport scheme. | HTTP or HTTPS as the profile transport scheme. | |||
Rewrote the security considerations section. | Rewrote the security considerations section. | |||
Divided references into Normative and Informative. | Divided references into Normative and Informative. | |||
Minor edits throughout. | Minor edits throughout. | |||
12.3 Changes from draft-ietf-sipping-config-framework-04.txt | 12.4. Changes from draft-ietf-sipping-config-framework-04.txt | |||
Clarified usage of instance-id | Clarified usage of instance-id | |||
Specify which event header parameters are mandatory or optional | Specify which event header parameters are mandatory or optional | |||
and in which messages. | and in which messages. | |||
Included complete list of event header parameters in parameter | Included complete list of event header parameters in parameter | |||
overview and IANA sections. | overview and IANA sections. | |||
Removed TFTP reference as protocol for profile transport. | Removed TFTP reference as protocol for profile transport. | |||
Added examples for discovery. | Added examples for discovery. | |||
Added ABNF for all event header parameters. | Added ABNF for all event header parameters. | |||
Changed profile-name parameter back to profile-type. This was | Changed profile-name parameter back to profile-type. This was | |||
skipping to change at page 38, line 4 | skipping to change at page 35, line 47 | |||
Removed TFTP reference as protocol for profile transport. | Removed TFTP reference as protocol for profile transport. | |||
Added examples for discovery. | Added examples for discovery. | |||
Added ABNF for all event header parameters. | Added ABNF for all event header parameters. | |||
Changed profile-name parameter back to profile-type. This was | Changed profile-name parameter back to profile-type. This was | |||
changed to profile-name in 02 when the parameter could contain | changed to profile-name in 02 when the parameter could contain | |||
either a token or a path. Now that the path is contained in the | either a token or a path. Now that the path is contained in the | |||
separate parameter: "document", profile-type make more sense as | separate parameter: "document", profile-type make more sense as | |||
the parameter name. | the parameter name. | |||
Fixed some statements that should have and should not have been | Fixed some statements that should have and should not have been | |||
normative. | normative. | |||
Added the ability for the user agent to request that the default | Added the ability for the user agent to request that the default | |||
user associated with the device be set/changed using the "network- | user associated with the device be set/changed using the "network- | |||
user" parameter. | user" parameter. | |||
A bunch of editorial nits and fixes. | A bunch of editorial nits and fixes. | |||
12.4 Changes from draft-ietf-sipping-config-framework-03.txt | 12.5. Changes from draft-ietf-sipping-config-framework-03.txt | |||
Incorporated changes to better support the requirements for the use | Incorporated changes to better support the requirements for the use | |||
of this event package with XCAP and SIMPLE so that we can have one | of this event package with XCAP and SIMPLE so that we can have one | |||
package (i.e. simple-xcap-package now defines a content type not a | package (i.e. simple-xcap-diff now defines a content type not a | |||
package). Added an additional profile type: "application". Added | package). Added an additional profile type: "application". Added | |||
document and app-id Event header parameters in support of the | document and app-id Event header parameters in support of the | |||
application profile. Define a loose high level data model or | application profile. Define a loose high level data model or | |||
relationship between the four profile types. Tried to edit and fix | relationship between the four profile types. Tried to edit and fix | |||
the confusing and ambiguous sections related to URI formation and | the confusing and ambiguous sections related to URI formation and | |||
discovery for the different profile types. Better describe the | discovery for the different profile types. Better describe the | |||
importance of uniqueness for the instance id which is used in the | importance of uniqueness for the instance id which is used in the | |||
user part of the device URI. | user part of the device URI. | |||
12.5 Changes from draft-ietf-sipping-config-framework-02.txt | 12.6. Changes from draft-ietf-sipping-config-framework-02.txt | |||
Added the concept of the local network as a source of profile data. | Added the concept of the local network as a source of profile data. | |||
There are now three separate logical sources for profile data: user, | There are now three separate logical sources for profile data: user, | |||
device and local network. Each of these requires a separate | device and local network. Each of these requires a separate | |||
subscription to obtain. | subscription to obtain. | |||
12.6 Changes from draft-ietf-sipping-config-framework-01.txt | 12.7. Changes from draft-ietf-sipping-config-framework-01.txt | |||
Changed the name of the profile-type event parameter to profile-name. | Changed the name of the profile-type event parameter to profile-name. | |||
Also allow the profile-name parameter to be either a token or an | Also allow the profile-name parameter to be either a token or an | |||
explicit URI. | explicit URI. | |||
Allow content indirection to be optional. Clarified the use of the | Allow content indirection to be optional. Clarified the use of the | |||
Accept header to indicate how the profile is to be delivered. | Accept header to indicate how the profile is to be delivered. | |||
Added some content to the Iana section. | Added some content to the Iana section. | |||
12.7 Changes from draft-ietf-sipping-config-framework-00.txt | 12.8. 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 39, line 15 | skipping to change at page 37, line 10 | |||
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 ua-profile | Changed the name of the event package from sip-config to ua-profile | |||
Three high level security approaches are now specified. | Three high level security approaches are now specified. | |||
12.8 Changes from draft-petrie-sipping-config-framework-00.txt | 12.9. 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 [I-D.ietf- | [RFC3263], SIP Events [RFC3265] and content indirection [I-D.ietf- | |||
sip-content-indirect-mech] | 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 Estacado Systems for the great comments and input. | Adam Roach of Estacado Systems for the great comments and input. | |||
12.9 Changes from draft-petrie-sip-config-framework-01.txt | 12.10. 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 | |||
12.10 Changes from draft-petrie-sip-config-framework-00.txt | 12.11. Changes from draft-petrie-sip-config-framework-00.txt | |||
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 user | differently. As there is a concept of device specific and user | |||
specific profiles, these may also be managed on separate servers. | specific profiles, these may also be managed on separate servers. | |||
For instance in a roaming situation the device might get its profile | For instance in a roaming situation the device might get its profile | |||
data from a local server which knows the LAN specific profile data. | data from a local server which knows the LAN specific profile data. | |||
At the same time the user specific profiles might come from the | At the same time the user specific profiles might come from the | |||
user's home environment profile delivery server. | user's home environment profile delivery server. | |||
skipping to change at page 40, line 13 | skipping to change at page 38, line 9 | |||
Suggest caching information discovered about a profile delivery | Suggest caching information discovered about a profile delivery | |||
server to avoid an avalanche problem when a whole building full of | server to avoid an avalanche problem when a whole building full of | |||
devices powers up. | devices powers up. | |||
Added the User-Profile From header field parameter so that the device | Added the User-Profile From header field parameter so that the device | |||
can request a user specific profile for a user that is different from | can request a user specific profile for a user that is different from | |||
the device's default user. | the device's default user. | |||
13. References | 13. References | |||
13.1 Normative References | 13.1. Normative References | |||
[I-D.ietf-sip-content-indirect-mech] | [I-D.ietf-sip-content-indirect-mech] | |||
Burger, E., "A Mechanism for Content Indirection in | Burger, E., "A Mechanism for Content Indirection in | |||
Session Initiation Protocol (SIP) Messages", | Session Initiation Protocol (SIP) Messages", | |||
draft-ietf-sip-content-indirect-mech-05 (work in | draft-ietf-sip-content-indirect-mech-05 (work in | |||
progress), October 2004. | progress), October 2004. | |||
[I-D.ietf-sip-identity] | [I-D.ietf-sip-identity] | |||
Peterson, J. and C. Jennings, "Enhancements for | Peterson, J. and C. Jennings, "Enhancements for | |||
Authenticated Identity Management in the Session | Authenticated Identity Management in the Session | |||
Initiation Protocol (SIP)", draft-ietf-sip-identity-05 | Initiation Protocol (SIP)", draft-ietf-sip-identity-06 | |||
(work in progress), May 2005. | (work in progress), October 2005. | |||
[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. | |||
[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. and C. Allen, "The TLS Protocol Version 1.0", | [RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", | |||
RFC 2246, January 1999. | RFC 2246, January 1999. | |||
skipping to change at page 41, line 16 | skipping to change at page 39, line 12 | |||
Protocol (SIP): Locating SIP Servers", RFC 3263, | Protocol (SIP): Locating SIP Servers", RFC 3263, | |||
June 2002. | June 2002. | |||
[RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific | [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific | |||
Event Notification", RFC 3265, June 2002. | Event Notification", RFC 3265, June 2002. | |||
[RFC3361] Schulzrinne, H., "Dynamic Host Configuration Protocol | [RFC3361] Schulzrinne, H., "Dynamic Host Configuration Protocol | |||
(DHCP-for-IPv4) Option for Session Initiation Protocol | (DHCP-for-IPv4) Option for Session Initiation Protocol | |||
(SIP) Servers", RFC 3361, August 2002. | (SIP) Servers", RFC 3361, August 2002. | |||
13.2 Informative References | [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally | |||
Unique IDentifier (UUID) URN Namespace", RFC 4122, | ||||
July 2005. | ||||
13.2. Informative References | ||||
[I-D.ietf-simple-xcap] | [I-D.ietf-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-ietf-simple-xcap-07 (work in progress), June 2005. | draft-ietf-simple-xcap-08 (work in progress), | |||
October 2005. | ||||
[I-D.ietf-simple-xcap-diff] | ||||
Rosenberg, J., "An Extensible Markup Language (XML) | ||||
Document Format for Indicating A Change in XML | ||||
Configuration Access Protocol (XCAP) Resources", | ||||
draft-ietf-simple-xcap-diff-02 (work in progress), | ||||
October 2005. | ||||
[I-D.ietf-simple-xcap-list-usage] | [I-D.ietf-simple-xcap-list-usage] | |||
Rosenberg, J., "Extensible Markup Language (XML) Formats | Rosenberg, J., "Extensible Markup Language (XML) Formats | |||
for Representing Resource Lists", | for Representing Resource Lists", | |||
draft-ietf-simple-xcap-list-usage-05 (work in progress), | draft-ietf-simple-xcap-list-usage-05 (work in progress), | |||
February 2005. | February 2005. | |||
[I-D.ietf-simple-xcap-package] | [I-D.ietf-sip-outbound] | |||
Rosenberg, J., "An Extensible Markup Language (XML) | Jennings, C. and R. Mahy, "Managing Client Initiated | |||
Document Format for Indicating Changes in XML | Connections in the Session Initiation Protocol (SIP)", | |||
Configuration Access Protocol (XCAP) Resources", | draft-ietf-sip-outbound-01 (work in progress), | |||
draft-ietf-simple-xcap-package-03 (work in progress), | October 2005. | |||
January 2005. | ||||
[I-D.ietf-sip-gruu] | ||||
Rosenberg, J., "Obtaining and Using Globally Routable User | ||||
Agent (UA) URIs (GRUU) in the Session Initiation Protocol | ||||
(SIP)", draft-ietf-sip-gruu-04 (work in progress), | ||||
July 2005. | ||||
[I-D.ietf-sipping-ua-prof-framewk-reqs] | [I-D.ietf-sipping-ua-prof-framewk-reqs] | |||
Petrie, D. and C. Jennings, "Requirements for SIP User | Petrie, D. and C. Jennings, "Requirements for SIP User | |||
Agent Profile Delivery Framework", | Agent Profile Delivery Framework", | |||
draft-ietf-sipping-ua-prof-framewk-reqs-00 (work in | draft-ietf-sipping-ua-prof-framewk-reqs-00 (work in | |||
progress), March 2003. | progress), March 2003. | |||
[I-D.petrie-sipping-profile-datasets] | [I-D.petrie-sipping-profile-datasets] | |||
Petrie, D., "A Schema for Session Initiation Protocol User | Petrie, D., "A Schema and Guidelines for Defining Session | |||
Agent Profile Data Sets", | Initiation Protocol User Agent Profile Data Sets", | |||
draft-petrie-sipping-profile-datasets-00 (work in | draft-petrie-sipping-profile-datasets-03 (work in | |||
progress), July 2004. | progress), October 2005. | |||
[I-D.sinnreich-sipdev-req] | [I-D.sinnreich-sipdev-req] | |||
Sinnreich, H., "SIP Telephony Device Requirements and | Sinnreich, H., "SIP Telephony Device Requirements and | |||
Configuration", draft-sinnreich-sipdev-req-07 (work in | Configuration", draft-sinnreich-sipdev-req-08 (work in | |||
progress), June 2005. | progress), October 2005. | |||
[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. | |||
[RFC0959] Postel, J. and J. Reynolds, "File Transfer Protocol", | [RFC0959] Postel, J. and J. Reynolds, "File Transfer Protocol", | |||
STD 9, RFC 959, October 1985. | STD 9, RFC 959, October 1985. | |||
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol", | [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", | |||
RFC 2131, March 1997. | RFC 2131, March 1997. | |||
skipping to change at page 43, line 29 | skipping to change at page 42, line 29 | |||
such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
ietf-ipr@ietf.org. | 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 | Disclaimer of Validity | |||
This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | |||
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | |||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | |||
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
Copyright Statement | Copyright Statement | |||
Copyright (C) The Internet Society (2005). This document is subject | Copyright (C) The Internet Society (2006). This document is subject | |||
to the rights, licenses and restrictions contained in BCP 78, and | to the rights, licenses and restrictions contained in BCP 78, and | |||
except as set forth therein, the authors retain all their rights. | except as set forth therein, the authors retain all their rights. | |||
Acknowledgment | Acknowledgment | |||
Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
Internet Society. | Internet Society. | |||
End of changes. 96 change blocks. | ||||
444 lines changed or deleted | 370 lines changed or added | |||
This html diff was produced by rfcdiff 1.29, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |