SIPPING D. PetrieInternet DraftInternet-Draft Pingtel Corp.draft-ietf-sipping-config-framework-00.txtExpires:Aug 2003 FebApril 21, 2004 October 22, 2003 A Framework for SIP User AgentConfigurationProfile Delivery draft-ietf-sipping-config-framework-01.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents asInternet- Drafts.Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed athttp://www.ietf.org/ietf/1id-abstracts.txthttp:// www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on April 21, 2004. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract This document defines the application of a set of protocols forconfiguring a SIP user agent. Theproviding profile data to SIP useragent must discover how and from where to retrieve its initial configuration and be notified of changes and updates which impact its configuration.agents. The objective is to define a means for automaticallyconfiguringproviding profile data a user agentsuch that it canneeds to be functional without user or administrative intervention. The framework for discovery, delivery, notification and updates of user agentconfigurationprofile data is defined here. As part of this framework a new SIP event package is defined here for the notification of profile changes. This framework is also intended to ease ongoingadministration, configurationadministration and upgrading of large scale deployments of SIP user agents. The contents and format of theconfigurationprofile data to be defined is outside the scope of this document.Petrie Informational - Expires Aug 2003 1 A Framework for SIP Feb. 2003 User Agent ConfigurationTable of ContentsStatus of this Memo................................................1 Abstract...........................................................1 1 Overview.......................................................3 2 Conventions used in this document..............................41. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3Changes from Previous Draft....................................4 3.1 Changes from draft-petrie-sipping-config-framework-00.txt....4 3.2 Changes from draft-petrie-sip-config-framework-01.txt........4 3.3 Changes from draft-petrie-sip-config-framework-00.txt........4 4 Discovery......................................................5 4.1 DHCP Option..................................................6 4.2 DNS..........................................................6 4.3 Multicast....................................................7 4.4 Manually Provisioned.........................................7 5 Enrollment and Change Notification.............................7 5.1 SUBSCRIBE....................................................8 5.1.1 Additional User Agent Field Parameters......................9 5.2 NOTIFY......................................................10 5.2.1 NOTIFY Body Content Format.................................11 6 Configuration Retrieval.......................................11 7 Configuration Upload..........................................11 8 Examples......................................................12 8.1 Example Message Flows.......................................12 8.2 Example Messages............................................14 9 Security Considerations.......................................17 10 Open Issues...................................................18 11 References....................................................19 12 Author's Address..............................................20 Petrie Informational - Expires Aug. 2003 2 A2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Requirements Terminology . . . . . . . . . . . . . . . . . . 3 2.2 Profile Delivery Frameworkfor SIP Feb. 2003 User Agent Configuration 1Terminology . . . . . . . . . . . 4 2.3 OverviewToday all SIP UA vendors use proprietary means of delivering configuration to the UA. This configuration framework is intended to enable a first phase migration to a standard means of configuring SIP user. . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Profile Change Event Notification Package . . . . . . . . . 5 3.1 Event Package Name . . . . . . . . . . . . . . . . . . . . . 6 3.2 Event Package Parameters . . . . . . . . . . . . . . . . . . 6 3.3 SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . . 7 3.4 Subscription Duration . . . . . . . . . . . . . . . . . . . 7 3.5 NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . . 8 3.6 Notifier processing of SUBSCRIBE requests . . . . . . . . . 8 3.7 Notifier generation of NOTIFY requests . . . . . . . . . . . 9 3.8 Subscriber processing of NOTIFY requests . . . . . . . . . . 10 3.9 Handling of forked requests . . . . . . . . . . . . . . . . 10 3.10 Rate of notifications . . . . . . . . . . . . . . . . . . . 10 3.11 State Agents . . . . . . . . . . . . . . . . . . . . . . . . 10 3.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.13 Use of URIs to Retrieve State . . . . . . . . . . . . . . . 11 4. Profile Delivery Framework Details . . . . . . . . . . . . . 12 4.1 Discovery of Subscription URI . . . . . . . . . . . . . . . 12 4.2 Enrollment with Profile Server . . . . . . . . . . . . . . . 13 4.3 Notification of Profile Changes . . . . . . . . . . . . . . 13 4.4 Retrieval of Profile Data . . . . . . . . . . . . . . . . . 14 4.5 Upload of Profile Changes . . . . . . . . . . . . . . . . . 14 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 14 6. Security Considerations . . . . . . . . . . . . . . . . . . 14 6.1 Symmetric Encryption of Profile Data . . . . . . . . . . . . 14 6.2 Client Certificate Authentication with HTTPS . . . . . . . . 15 6.3 HTTPS Authentication . . . . . . . . . . . . . . . . . . . . 15 7. Differences from Simple XCAP Package . . . . . . . . . . . . 15 8. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . 16 9. Change History . . . . . . . . . . . . . . . . . . . . . . . 16 9.1 Changes from draft-ietf-sipping-config-framework-00.txt . . 16 9.2 Changes from draft-petrie-sipping-config-framework-00.txt . 17 9.3 Changes from draft-petrie-sip-config-framework-01.txt . . . 17 9.4 Changes from draft-petrie-sip-config-framework-00.txt . . . 17 References . . . . . . . . . . . . . . . . . . . . . . . . . 18 Author's Address . . . . . . . . . . . . . . . . . . . . . . 20 A. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 20 Intellectual Property and Copyright Statements . . . . . . . 21 1. Motivation Today all SIP user agent vendors use proprietary means of delivering user or device profiles to the user agent. The profile delivery framework defined in this document is intended to enable a first phase migration to a standard means of providing profiles to SIP user agents. It is expected that UA vendorsshouldwill be able to use thisconfigurationframework as a means of delivering their existing proprietaryconfigurationuser and device data profiles (i.e. using their existing proprietary binary or text formats). This in itself is a tremendous advantage in that a SIP environment can use a singleconfigurationprofile delivery serverto deliver configurationfor profile data toUAsuser agents from multiple vendors. Follow-on standardization activities can:1)1. define a standard profile content format framework (e.g. XML with name spaces [??] or name-value pairs[8]) and 2)[RFC0822]). 2. specify the content (i.e. name theconfiguration parameters)profile data parameters, xml schema, name spaces) of theconfigurationdata profiles.ThisOne of the objectives of the framework described in this documentdefinesis to provide a start up experience similar to that of users of an analog telephone. When you plug in an analog telephone it just works (assuming the line is live and the switch has been provisioned). There is no end user configuration required to make analog phone work (at least in a basic sense). So the objective here is to be able to take a new SIP user agent out of the box, plug it in (or install the software) and have it get its profiles without human intervention (other than security measures). This is necessary for cost effective deployment of large numbers of user agents. Another objective is to provide a scalable means for on going administration of profiles. Administrators and users are likely to want to make changes to user and device profiles. Additional requirements for the frameworkwhich allowsdefined in this document are described in: [I-D.ietf-sipping-ua-prof-framewk-reqs], [I-D.sinnreich-sipdev-req] 2. Introduction 2.1 Requirements Terminology Keywords "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT" and "MAY" that appear in this document are to be interpreted as described in RFC 2119[RFC2119]. 2.2 Profile Delivery Framework Terminology profile - data set specific to a user or device. device - SIP useragents (UA)agent, either software or hardware appliance. profile content server - The server that provides the content of the profiles using the protocol specified by the URL scheme. notifier - The SIP user agent server which processes SUBSCRIBE requests for events and sends NOTIFY requests with profile URL(s). profile delivery server - The logical collection of the SIP notifier and the server which provides the contents of the profile URL(s). 2.3 Overview The profile life cycle can be described by five functional steps. These steps are not necessarily discrete. However it is useful toautomatically:describe these steps as logically distinct. These steps are named as follows: Discovery - discover aconfigurationprofile delivery server(Discovery)Enrollment - enroll with theconfigurationprofile delivery server(Enrollment)Profile Retrieval - retrieveconfigurationprofile data(Configuration Retrieval)Profile Change Notification - receive notification ofconfigurationprofile changes(Change Notification)Profile Change Upload - uploadconfigurationprofile data changes back to theserver (Configuration Upload) The content and format of the data is not defined in this document. It will be defined in configuration data profile(s) in other document(s). The goal of this framework is to satisfy the requirements for configuration delivery defined in [10], [11] and [16] explicitly excluding the requirements which pertain to configuration dataprofilecontent and format.delivery server Discovery is the process by which a UA SHOULD find the address and port at which it SHOULD enroll with theconfigurationprofile delivery server. As there is no single discovery mechanism which will work in all network environments, a number of discovery mechanismsare defined with a prescribed order in which the UA SHOULD try them until one succeeds. Enrollment is the process by which a UA SHOULD make itself known to the configuration server. In enrolling the UA MUST provide identity information, name requested configuration data profile and supported protocols for configuration retrieval. It SHOULD also SUBSCRIBE to a mechanism for notification of configuration changes. As a result of enrollment, the UA receives a URL for each of the configuration data profiles that the configuration server is able to provide. Each profile requires a separate enrollment or SUBSCRIBE session. Configuration Retrieval is the process of retrieving the content for each of the configuration data profiles the UA requested. Petrie Informational - Expires Aug. 2003 3 A Framework for SIP Feb. 2003 User Agent Configuration Change Notification is the process by which the configuration server notifies the UA that the content of one or more of the configuration data profiles has changed. Subsequently the UA SHOULD retrieve the data profile from the specified URL upon receipt ofare defined with a prescribed order in which thechange notification. Configuration UploadUA SHOULD try them until one succeeds. Enrollment is the process by which a UAor other entity pushes a change to a configuration data profile back upSHOULD make itself known to theconfigurationprofile delivery server.2 Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [1]. The syntax and semantics used here extend those defined in SIP (RFC 2543) [6]. SIP is described in an augmented Backus-Naur form (ABNF). See [6, section C] for an overview of ABNF. 3 Changes from Previous Draft 3.1 Changes from draft-petrie-sipping-config-framework-00.txt Changed name to reflect SIPPING work group item Updated with changes to SIP DHCP [3], SIP [6], SIP Events [7] and content indirection [15]. MovedIn enrolling thedeviceUA MUST provide identityparameters from the From field parameters to User-Agent header parameters. Many thanks to Rich Schaaf of Pingtel, Cullen Jennings of Ciscoinformation, name requested profile type(s) andAdam Roach of Dyamicsoftsupported protocols forthe great comments and input. 3.2 Changes from draft-petrie-sip-config-framework-01.txt Changed the name as this belongs in the SIPPING work group. Minor edits 3.3 Changes from draft-petrie-sip-config-framework-00.txt Many thanksprofile retrieval. It SHOULD also subscribe tothose who contributed and commented on the previous draft. Detailed comments were provided by Henning Schulzrinne from Columbia U., Cullen Jennings from Cisco, Rohan Mahy from Cisco, Rich Schaaf from Pingtel. Splita mechanism for notification of profile changes. As a result of enrollment, theenrollment intoUA receives asingle SUBSCRIBE dialogURL for eachprofile. The 00 draft sentof the profiles that the profile delivery server is able to provide. Each profile type (set) requires asingleseparate enrollment or SUBSCRIBElisting allsession. Profile Retrieval is the process of retrieving thedesired. These have been split so thatcontent for eachenrollment can be routed differently. As there is a conceptofdevice specific and Petrie Informational - Expires Aug. 2003 4 A Framework for SIP Feb. 2003 User Agent Configuration user specific profiles, these may also be managed on separate servers. For instance in a roaming situationthedevice might get itÆs configuration from a local serverprofiles the UA requested. Profile Change Notification is the process by whichknowstheLAN specific configuration. Atprofile delivery server notifies thesame timeUA that the content of one or more of theuser specificprofilesmight come fromhas changed. Subsequently theuserÆs home environment configuration server.' RemovedUA SHOULD retrieve theConfig-Expires header as it is largely superfluous withprofile from theSUBSCRIBE Expires header. Eliminated somespecified URL upon receipt of thecomplexity inchange notification. Profile Upload is thediscovery mechanism. Suggest caching information discovered aboutprocess by which a UA or other entity (e.g. OSS, corporate directory or configurationserver to avoid an avalanche problem whenmanagement server) pushes awhole building full of devices powers up. Addedchange to theUser-Profile From header field parameter so thatprofile data back up to thedevice can a requestprofile delivery server. This framework defines auser specificnew SIP event package [RFC3265] to solve enrollment and profile change notification steps. The question arises as to why SIP should be used fora user thatthe profile delivery framework. In this document SIP isdifferent fromused for only a small portion of thedeviceÆs default user. 4 Discovery The purposeframework. Other existing protocols are more appropriate for transport ofdiscovery is to figure out how to addresstheconfiguration server so thatprofile contents (upstream and downstream of thedevice can enroll.user agent) and are suggested in this document. Theenrollment process involves sendingdiscovery step is simply a specified order and application of existing protocols. SIPSUBSCRIBE. Prior to thisis only needed for thediscovery process must findenrollment and change notification functionality of theaddressprofile delivery framework. In many SIP environments (e.g. carrier/subscriber and multi-site enterprise) firewall, NAT and IP addressing issues make it difficult touse in the URL forget messages between theURIprofile delivery server andTo header field. The URL SHOULD usethe userid: sipuaconfig. From aagent requiring the profiles. With SIPperspectivetheconfiguration server is simply a user agent. By usingusers and devices already are assigned globally routable addresses. In addition thewell knownfirewall and NAT problems are already presumably solved in the environments in which SIP userid, this makes it easy for proxy serversagents are to beprovisioned to route the enrollment requests from devices toused. Therefore SIP is theappropriate configuration serverbest solution for allowing thedomain. The first time a UA is plugged in it does not know the address or port at whichuser agent to enroll with thelocal configuration server. It must discover this address and port. A UA SHOULD support allprofile delivery server which may require traversal of multiple firewalls and NATs. For thelisted discovery mechanisms. It MUST support at least onesame reason the notification ofthem. Onceprofile changes is best solved by SIP. It is assumed that theUA has discoveredcontent delivery server MUST be either in theaddresspublic network or accessible through a DMZ. The user agents requiring profiles may be behind firewalls andportNATs andhas successfully enrolled with the configuration server, the UA SHOULD cachemany protocols, such as HTTP, may be used for profile content retrieval without special consideration in theaddressfirewalls andportNATs. A conscious separation of user and device profiles is made in this document. This is useful toavoid the needprovide features such as hoteling as well as securing or restricting user agent functionality. By maintaining this separation, a user may walk up tore-discoversomeone else's user agent and direct that user agent to get their profile data. In doing so theconfiguration server. However if enrollment, configuration retrieval or configuration upload fails at any time,user agent can replace theUA SHOULD applyprevious user's profile data while still keeping thediscoverydevices profile data that may be necessary for core functionality andenrollment process again.communication described in this document. 3. Profile Change Event Notification Package Thisprovidessection defines ameans for configuration server fail over and load balancing.new SIP event package [RFC3265]. TheUA SHOULD use the following mechanismspurpose of this event package is to send to subscribers notification of content changes todiscoverthehost addressprofile(s) of interest andport at which it SHOULD enroll withto provide theconfiguration server. Each mechanism should be tried inlocation of thefollowing order until an address and portprofile(s) via content indirection [I-D.ietf-sip-content-indirect-mech]. 3.1 Event Package Name The name of this package isprovided which results"sip-profile". This value appears insuccessful enrollment (i.e.theserver responds with a successful 2xx class response): - DHCP optionEvent header field present in SUBSCRIBE and NOTIFY requests forSIP [3] - DNS A record - Multicast - Manual provisioning Petrie Informational - Expires Aug. 2003 5 A Frameworkthis package as defined in [RFC3265]. 3.2 Event Package Parameters This package defines the following new parameters forSIP Feb. 2003 User Agent Configurationthe event header: profile-type, vendor, model, version, effective-by. Therationaleeffective-by parameter is forthis order follows. Assuming that most UAs are going touseDHCPin NOTIFY requests only. The others are forIP configuration anyway, using a DHCP option isuse in theleast costlySUBSCRIBE request, but may be used interms of lookup time (i.e. no additional messages are required). Hence DHCP is first. MulticastNOTIFY requests as well. The profile-type parameter is usedlast ofto indicate theautomated discovery mechanisms as it isprofile type themost restricted in termsuser agent wishes to obtain URLs for and be notified ofnetwork environments that support it. Multicast is included, even thoughchange. This parameter allows theapplicable environments are restricted,URL semantics to be opaque to the subscribing user agent as all it needs to know is theonly mechanism that can be used without the supporttoken value for this parameter. This document defines two type categories ofthe local network administrator.profiles. Thephone administrator andcontents or format of thenetwork administratorprofiles is outside the scope of this document. The two types of profiles define here areoften different people"user" andperhaps in different departments. The UA implementer MAY provide"device". Specifying device type profile(s) indicates theuser or administrator withdesire for themeans toURL(s) and changethe order in which these mechanismsnotification of all profiles that aretried. This includes the abilityspecific tomanually overridethediscovery process. However by default withoutdevice or user agent. Specifying userinteractiontype profile(s) indicates theUA SHOULD usedesire for theorder listed above. Once discovery is successfulURL(s) and change notification of all profile(s) that are specific to the user. The user or deviceSHOULD persistently cacheis identified in theaddress to avoid avalanche problems when a whole building fullURI ofdevices powers up at once.the SUBSCRIBE request. ThecharacteristicAccept header of the SUBSCRIBE request MUST include the MIME types for all profilemay dictate this behavior. For examplecontent types that the subscribing user agent wishes to retrieve profiles or receive change notifications. The user or devicespecifictoken in the profile-type parameter may represent a class or set of profiles as opposed to a single profile. As standards are defined for specific profile contents related to the user or device, it mayneedbe desirable tochange whendefine additional tokens for thedeviceprofile-type header. This ismovedto allow adifferent location. Useruser agent to subscribe to that specificprofiles may be independent ofprofile as opposed to theLAN, networkentire class or set of user or devicelocation. 4.1 DHCP Option Itprofiles. The rational for the separation of user and device type profiles islikelyprovided in section Section 2.3. It should be noted thatmost UAseither type may indicate that zero or more URLs are provided inan deployment of any significant size will use DHCP for IP configuration. DHCP becomesthe NOTIFY request. As discussed, aconvenient meansdefault user may be assigned todiscovera device. In this scenario theconfigurationprofile delivery serveraddress. Inmay provide thesame DHCPURL(s) in the NOTIFY request forbasic IP configuration, the UA can addtheoption for SIP[3] [1]default user when subscribing to theoptions field. This indicatesdevice profile type. Effectively the device profile type becomes arequestsuperset of the user profile type subscription. The user type is still useful in this scenario to allow the user agent to obtain profile URLs for a user other than the defaultSIP proxy server address and port. For example ifuser. This provides theDHCP option for SIP returns an address of sip.acme.comability to support a hoteling function where a user may "login" to any user agent and have it use aportusers profile(s). The vendor, model and version parameters are tokens specified by the vendor of5080,thefollowing URL is constructed: sip:sipuaconfig@sip.acme.com:5080. Ifuser agent. These parameters are useful to theproxyprofile delivery serveraddress and portto effect the profiles provided. In some scenarios it isnot returneddesirable to provide different profiles based upon these parameters. For example feature parameter X in a profile may work differently on two versions of user agent. This gives theDHCP response or theprofile deliver serverdoes not respond totheenrollment request with a successful 2xx class response,ability to compensate for or take advantage of thenext discovery mechanism is attempted. 4.2 DNSdifferences. TheUA SHOULD construct a fully qualified host name using ôsipuaconfigö as"effective-by" parameter in the Event header of the NOTIFY specifies the maximum number of seconds before thehost anduser agent MUST make thelocal domain if defined. It SHOULD try a DNSnew profile effective. Arecord lookup onvalue of 0 (zero) indicates that thefully qualified host name. Ifuser agent MUST make thename resolves in DNS it should then attempt enrollment. For exampleprofiles effective immediately (despite possible service interruptions). This gives theURL constructed inprofile delivery server thelocal domain of acme.com would look like: sip:sipuaconfig@sipuaconfig.acme.com. Ifpower to control when theserver does not respondprofile is effective. This may be important toenrollment withresolve an emergency problem or disable asuccessful 2xx class response,user agent immediately. SUBSCRIBE request example: Event: sip-profile;profile-type=device; vendor=acme;model=Z100;version=1.2.3 NOTIFY request examples: Event:sip-profile;effective-by=0 Event:sip-profile;effective-by=3600 3.3 SUBSCRIBE Bodies This package defines no new use of thenext discovery mechanismSUBSCRIBE request body. 3.4 Subscription Duration As profiles are generally static with infrequent changes, it isattempted. Petrie Informational - Expires Aug. 2003 6 A Framework for SIP Feb. 2003 User Agent Configuration 4.3 Multicastrecommended that default subscription duration be 86400 seconds (one day). 3.5 NOTIFY Bodies Theenrollment requestsize of profile content issentlikely to be hundreds to several thousand bytes in size. Frequently even with very modest sized SDP bodies, SIP messages get fragmented causing problems for many user agents. For this reason themulticast addressNOTIFY body MUST use content indirection [I-D.ietf-sip-content-indirect-mech] forSIP registration [6] "sip.mcast.net" (224.0.1.75). If a server does not respond with a successful 2xx class response toproviding theenrollment request,profiles. The profile delivery server MUST include thenext discovery mechanismContent-ID defined in [I-D.ietf-sip-content-indirect-mech] for each profile URL. This isattempted. 4.4 Manually Provisioned The UA MAY indicateto avoid unnecessary download of the profiles. Some user(or administrator) that automatic discovery has failed. The UA SHOULD allow the user or administratoragents are not able tomanually (perhaps using some out of band method e.g. beam, smart card, etc.) enter the configuration server address and portmake a profile effective without rebooting or restarting. Rebooting is probably something to beused for enrollment. 5 Enrollment and Change Notification The enrollment and configuration change notification are paired together and provided viaavoided on a user agent performing services such as telephony. In this way theSIP SUBSCRIBE/NOTIFY framework [7]. This document definesContent-ID allows theprofile on topuser agent to avoid unnecessary interruption of service as well. The Content-Type MUST be specified for each URL. Initially it is expected that most user agent vendors will use a proprietary content type for theSUBSCRIBE/NOTIFY framework [7]profiles retrieved from the URLs(s). It is hoped that over time a standard content type will be specified that will be adopted by vendors of user agents. One direction that appears to be promising for thispurpose. UA enrollment with the configuration servercontent isaccomplished via the SUBSCRIBE request. A UA MUST enrollto use XML withthe configuration server priorname spaces [??] toretrieving configuration data profiles. As part of the enrollmentsegment theUA MUST identify itself, its configuration retrieval protocol capabilities and configurationdataprofile requirements. The configuration serverinto sets that the user agent implementer mayuse this information to decide how to allocate resources (e.g. load balancing)choose to supportthe UA for its specific configuration retrieval needs.based upon desired feature set. Theconfiguration server may also usespecification of theUA enrollment event ascontent is out of thetrigger to generate a new setscope ofconfiguration data forthis document. Likewise thespecific UA (e.g. based upon provisioned defaults and configuration profile context knowledge forURL scheme used in theenvironment). This allowscontent indirection is outside theconfiguration serverscope of this document. This document is agnostic toprovide configuration data for a new UA without previously provisioningthespecific UA onURL schemes as theserver. Eachprofilethat the device requirescontent may dictate what isobtained via a separate enrollment or SUBSCRIBE request and SIP dialog. Thatrequired. It is expected that TFTP [RFC3617], FTP [??], HTTP [RFC2616], HTTPS [RFC2818], LDAP [RFC3377], XCAP [I-D.rosenberg-simple-xcap] and other URL schemes are supported by this package and framework. 3.6 Notifier processing of SUBSCRIBE requests The general rules foreach different profile a device enrolls for, a different Call-Id is used.processing SUBSCRIBE requests [RFC3265] apply to this package. Thedevice namesnotifier does not need to authenticate the subscription as the profileMIME typecontent is not transported in the SUBSCRIBEAccept header field. The configuration server then delivers a URL (through content indirection [15]) ator NOTIFY transaction messages. Only URLs are transported in the NOTIFY request which may be secured using thedevice can retrievetechniques in section Section 6. The behavior of the profileindelivery server is left to the implementer. The profile delivery server may be as simple as asubsequentSIP SUBSCRIBE UAS and NOTIFYrequest. ChangesUAC front end to a simple HTTP server delivering static files that are hand edited. At the other extreme the profile delivery server can be part of a configuration management system that integrates with a corporate directory and IT system or carrier OSS, where the profiles areindicated in additional NOTIFY requests sentautomatically generated. The design of this framework intentionally provides the flexibility of implementation from simple/cheap to complex/expensive. If theconfiguration server. The SUBSCRIBE request for enrollmentuser or device issentnot known to theaddress(es) identified inprofile delivery server, thediscovery process untilimplementer MAY accept thefirst successful 2xx class responsesubscription or reject it. It isreceived. As part ofrecommended that thebinding ofimplementer accept theSUBSCRIBE/NOTIFY framework a new MIME type must be named for each Petrie Informational - Expires Aug. 2003 7 A Frameworksubscription. It is useful forSIP Feb. 2003 User Agent Configuration type of profile. The profile(s) MIME type(s) MUST be included intheSUBSCRIBE Accept header field. [Is it okprofile delivery server to maintain the subscription as an administrator may add the user or device to the system, defining the profile contents. This allowa single SUBSCRIBEthe profile delivery server to immediately send a NOTIFY requestmultiplewith the profiletypes in (e.g. for each MIME subtype application/sip-ua-user-profile and application/sip-ua-device-profile)?]URLs. Ifenrollment fails (i.e. no 2xx response to SUBSCRIBE), the UA SHOULD re-discovertheconfigurationprofile delivery serveraddressdoes not accept the subscription from an unknown user or device, the administer or user must manually provoke the user agent to reSUBSCRIBE. This may be difficult if the user agent andport as describedadministrator are at different sites. 3.7 Notifier generation of NOTIFY requests As insection 3. 5.1 SUBSCRIBE The SUBSCRIBE[RFC3265], the profile delivery server MUST always send a NOTIFY requestis used byupon accepting a subscription. If theUAdevice or user is unknown toenroll intheconfiguration domain ofprofile delivery server and it chooses to accept theconfiguration server. It uniquely identifiessubscription, theUAimplementer has two choices. A NOTIFY MAY be sent withvendor, model and serial number information. The UA also MUST specify its capabilities for configuration retrieval. The UA MUST indicate support forno body or content indirectionby includingcontaining theMIME type message/external-body inprofile URL(s). Alternatively a NOTIFY MAY be sent with URL(s) pointing to a default data set. Typically this data set allows for only limited functionality of theSUBSCRIBE Accept header field per [15]. The configurationuser agent (e.g. a phone user agent with data to call help desk and emergency services.). This is an implementation and business policy decision. A user or device known and fully provisioned on the profile delivery server SHOULDnotsendan error if it is temporarily not able to providea NOTIFY with content indirection containing URLs for all of theconfiguration data profile listedprofiles associated with the user or device (i.e. which ever specified in theSUBSCRIBE request Event header field. Inprofile-type parameter). The device may be associated with a default user. The URL(s) for this default user profiles MAY be included with thefirst time outURL(s) of thebox case,device if the profile type specified is device. A user agent can provide Hoteling by collecting a user’s AOR and credentials needed to SUBSCRIBEdialog may beand retrieve theonly means of communicating withuser profiles from thedevice as it does not yet have configuration. The configuration server SHOULD sendURL(s). Hoteling functionality is achieved by subscribing to the AOR and specifying the "user" profile type. This same mechanism can be used to secure a user agent, requiring a403 response to the SUBSCRIBE if is not willinguser toprovide the requested configuration profilelogin to enable functionality beyond thedevice.default user’s restricted functionality. Theconfiguration server SHOULD provide the configuration dataprofiletodelivery server MAY specify when theUA via content indirection. Ifnew profiles MUST be made effective by theconfiguration server sends a 301 Moved Permanently response touser agent. By default theenrollment SUBSCRIBE,user agent makes theUA SHOULD cacheprofiles effective as soon as it thinks that it is non-obtrusive. However theURL containedprofile delivery server MAY specify a maximum time inthe response Contact header fieldseconds (zero or more), inplace oftheaddress and port found during discovery for future enrollment. The device may request many configuration data profileseffective-by event header parameter, bysending multiple SUBSCRIBE requests each in a different SIP dialog. This may be useful ifwhich thedevice requiresuserspecificagent MUST make the new profilesfor multiple users. Ineffective. 3.8 Subscriber processing of NOTIFY requests The user agent subscribing to thiscaseevent package MUST adhere to theUserProfile parameter would vary for each SUBSCRIBE. AlternatelyNOTIFY request processing behavior specified in [RFC3265]. The user agent MUST make thedevice may require multiple types ofprofileswhere each SUBSCRIBE would have a different MIME typeeffective as specified in theAccept header field.NOTIFY request (see section Section 3.7). Theconfiguration server MAYuser agent SHOULD use one of theenrollment (SUBSCRIBE request) as the stimulustechniques specified in section [RFC3265] togenerate a new instancesecurely retrieve the profiles. 3.9 Handling of forked requests This event package allows the creation of only one dialog as aconfiguration data profile uniqueresult of an initial SUBSCRIBE request. The techniques to achieve this are described in section 4.4.9 of [RFC3265]. 3.10 Rate of notifications It is anticipated that the rate of change for user and device profiles will be very infrequent (i.e. days or weeks apart). For this reason no throttling or minimum period between NOTIFY requests is specified for this package. 3.11 State Agents State agents are not applicable tothe UA. Alternately the configuration server MAY be provisioned aheadthis event package. 3.12 Examples SUBSCRIBE sip:00df1e004cd0@example.com SIP/2.0 Event: sip-profile;profile-type=device;vendor=acme; model=Z100;version=1.2.3 From: sip:00df1e004cd0@acme.com;tag=1234 To: sip:00df1e004cd0@acme.com;tag=abcd Call-ID: 3573853342923422@10.1.1.44 CSeq: 2131 SUBSCRIBE Contact: sip:00df1e004cd0@10.1.1.44 Content-Length: 0 NOTIFY sip:00df1e004cd0@10.1.1.44 SIP/2.0 Event: sip-profile;effective-by=3600 From: sip:00df1e004cd0@acme.com;tag=abcd To: sip:00df1e004cd0@acme.com;tag=1234 Call-ID: 3573853342923422@10.1.1.44 CSeq: 321 NOTIFY MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=boundary42 Content-Length: ... --boundary42 Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.com/devices/fsmith"; size=2222 Content-Type: application/z100-user-profile Content-ID: <69ADF2E92@example.com> --boundary42 Content-Type: message/external-body; access-type="URL"; expiration="Mon, 24 June 2002 09:00:00 GMT"; URL="http://www.example.com/devices/ff00000036c5"; size=1234 Content-Type: application/z100-device-profile Content-ID: <39EHF78SA@example.com> --boundary42-- 3.13 Use oftimeURIs toknow about new UAs and their specific configuration data content (for example based upon serial number, MAC address). Petrie Informational - Expires Aug. 2003 8 A Framework for SIP Feb. 2003 User Agent ConfigurationRetrieve State Theuser agent forms the From fieldprofile type specified determines what goes in theSUBSCRIBE in oneuser part oftwo ways depending uponthetype ofSUBSRIBE URI. If the profilethat ittype requested isenrolling to. If"device", the useragentpart isenrolling to a device specific profile, thean identity that MUST be unique across all user agents fromaddr-spec is formed as: sip:<MAC-address>@<local-domain>. Ifall vendors. This identity must be static over time so that the profile delivery server can keep it associated with its profiles. For Ethernet hardware type useragent is enrolling toagents supporting only a single userspecific profile the addr-specat a time this isformed asmost easily accomplished using its MAC address. Software based user agents running on general purpose hardware may also be able to use theusersMAC address for identity. However in situations where multiple instance ofrecord. In this wayuser agents are running on theidentitysame hardware it may be necessary to use a another scheme, such as using a unique serial number forwhichthe software. If the profile type request isdesired is always specified in the From field. 5.1.1 Additional User Agent Field Parameters When"user" thedevice first starts up out ofURI in thebox, it has no user or local configuration. The device MUST provide a unique identity such that itSUBSCRIBE request ispossiblethe address of record for theconfiguration serveruser. This allows the user to specify (e.g. login) togenerate configuration profile forthedevice. Theuser agentMUST include the User-Agent header in the SUBSCRIBE request.by simply entering their known identity. 4. Profile Delivery Framework Details The followingadditional User-Agent field parameters aredescribes how different functional steps of the profile delivery framework work. Also described here is how the event package definedforin this document provides thepurpose of identifyingenrollment and notification functions within theUA device: Vendor û a token usedframework. 4.1 Discovery of Subscription URI The discovery function is needed toidentify the UA vendor name Model û a token usedbootstrap user agents toidentifytheUA hardware/software model Version û a token usedpoint of knowing where toidentify the firmware/software version currently installed onenroll with theUA Serial ûprofile delivery server. Section Section 3.13 describes how to form thetokenURI used toidentifysent theserial numberSUBSCRIBE request for enrollment. However the bootstrapping problem for theUA Note: on some hardware such as PCs and servers, there may be multiple instances of auser agentinstalled. In these scenarios only the serial number can be used to uniquely distinguish instances. Mac û(out of thetoken usedbox) is what toidentify the MAC address in hexuse for theUA From RFC 3261 [6] the User-Agent header field syntax is extended to: User-Agent = "User-Agent" HCOLON product *( SEMI config-params ) config-params = serial-param / mac-param / generic-param product = vendor-model [SLASH product-version] product-version = token vendor-param = ôVendorö ô=ö token serial-param = ôSerialö ô=ö token mac-param = ôMacö ô=ö token Example: User-Agent: model-a/1.5.0.1;vendor=acme The Vendor, Model, Version, Serialhost andMac parameters MUST be providedport in theUser-Agent header field forURI. Due to the wide variation of environments in which theenrollment SUBSCRIBE Petrie Informational - Expires Aug. 2003 9 A Framework for SIP Feb. 2003 User Agent Configuration request. Most profiles will either be device or user specific. All config-params MUST be specified even whenenrollingforuserprofiles as the device characteristicsagent mayimpactreside (e.g. behind residential router, enterprise LAN, ISP, dialup modem) and thecontentlimited control that the administrator of the profile delivery serverprovides. 5.2 NOTIFY(e.g. enterprise, service provider) may have over that environment, no single discovery mechanism works everywhere. Therefore a number of mechanisms SHOULD be tried in the specified order: SIP DHCP option [RFC3361], SIP DNS SRV [RFC3263], DNS A record and manual. 1. TheNOTIFY messagefirst discovery mechanizm that SHOULD be tried issent by the configuration servertoconveyconstruct theURL at whichSUBSCRIBE URI as described in Section 3.13 using theUA can retrievehost and port of out bound proxy discovered by therequested configuration data profile. This occursSIP DHCP option as described intwo contexts: Immediately following[RFC3361]. If theenrollment SUBSCRIBESIP DHCP option is not provided in theconfiguration server MUST sendDHCP response, no SIP response or aNOTIFY providingSIP failure response other than for authorization is received for theURLSUBSCRIBE request to the sip-profile event, the next discovery mechanism SHOULD be tried. 2. The local IP network domain for theconfiguration data profile requested byuser agent, either configured or discovered via DHCP, should be used with theUAtechnique in [RFC3263] to obtain a host and port to use inthe Event header field ofthe SUBSCRIBErequest.URI. Ifthe configuration serverno SIP response or a SIP failure response other than for authorization isnot ablereceived for the SUBSCRIBE request toprovidethespecific configuration data profile or it does not wantsip-profile event, theUA to retrievenext discovery mechanism SHOULD be tried. 3. The fully qualified host name constructed using thespecific configuration profile at that time, it MAY defer sending NOTIFY. Later whenhost name "sipuaconfig" and concatenated with theconfiguration server is ablelocal IP network domain should be tried next using the technique in [RFC3263] toprovideobtain a host and port to use in thedata profileSUBSCRIBE URI. If no SIP response orit wishesa SIP failure response other than for authorization is received for theUASUBSCRIBE request toretrievethedata profile,sip-profile event, theconfiguration server MAY send a NOTIFY request containingnext discovery mechanism SHOULD be tried. 4. If all other discovery techniques fail, theURLuser agent MUST provide a manual means for theconfiguration data profile whichuser to enter theUA SHOULD retrievehost andmake effective as soon as it is safeport used todo so (e.g. when there are no active INVITE dialogs). Ifconstruct theconfiguration server becomes aware ofSUBSCRIBE URI. Once aconfiguration change that it wishes to be effective immediately on the UA, the configuration server SHOULD senduser agent has successfully discovered, enrolled, received a NOTIFYmessage containingresponse with profile URL(s), theURL foruser agent SHOULD cache theconfiguration data profile thatSUBCRIBE URI to avoid having to rediscover theUA requested when it enrolled. The configuration dataprofilewith changed content SHOULD have a different Content-ID entity header than that ofdelivery server again in thelast NOTIFY request.future. TheUAuser agent SHOULDretrieve and make effective the changed configuration URL immediately upon receipt ofNOT cache the SUBSCRIBE URI until it receives a NOTIFYrequest.with profile URL(s). TheUA MAY choose to wait to make the changes effective (e.g. to prevent the change from disrupting active calls on the UA). [Do we need an optionreason forthe configurationthis is that a profile delivery server may send 202 responses to SUBSCRIBE requests and NOTIFY responses totellunknown user agent (see section Section 3.6) with no URLs. Until theUA thatprofile delivery server has sent a NOTIFY request with profile URL(s), itMUST makehas not agreed to provide profiles. To illustrate why thechange immediately regardless of state? Should this beuser agent should not cache thedefault?] The UA SHOULD send a 200 response toSUBSCRIBE URI until profile URL(s) are provided in theNOTIFY immediately upon receipt and validation ofNOTIFY, consider thesolicited request.following example: a user agent running on a laptop plugged into a visited LAN in which a foreign profile delivery server is discovered. Theconfigurationprofile delivery serverMUST include,never provides profile URLs in thechange notificationNOTIFYrequest,request as it is not provisioned to accept theconfiguration data profile URL.user agent. TheContent-ID entity header associated withuser then takes theconfiguration data profile with changed content should be different than that oflaptop to their enterprise LAN. If theprevious NOTIFY. This mechanism may be used byuser agent cached theconfigurationSUBSCRIBE URI from the visited LAN (which did not provide profiles), the user agent would not attempt to discover the profile delivery server in the enterprise LAN which is provisioned to providefirmware updates. For example on a UA that caches or has a persistent firmware image: ifprofiles to theserver realizes (e.g. fromuser agent.. 4.2 Enrollment with Profile Server Enrollment is accomplished by subscribing to the event package described in section Section 3. The enrollmentinformation) the UAprocess isrunninguseful to themost currently available firmware version,profile delivery server as itcould defer sending the NOTIFY withmakes theURL forserver aware of user agent to which it may delivery profiles (those user agents thefirmware. However at a later time when a new Petrie Informational - Expires Aug. 2003 10 A Framework for SIP Feb. 2003 User Agent Configuration firmware versionprofile delivery server isavailableprovisioned to provide profiles to; those present that theconfigurationservercould send a NOTIFY with the URL formay be provide profiles in thenew firmware version, indicatingfuture; and those that theUA SHOULD upgrade as soon as itserver can automatically provide default profiles). It issafean implementation choice and business policy as todo so. 5.2.1 NOTIFY Body Content Format The NOTIFY request MUST contain a single part body with content indirection [15]. The request MUST have a Content-Type header field with the MIME type of message/external-body. The Content-Type MUST also have a URL parameter specifyingwhether theURL at whichprofile delivery server provides profiles toretrieve the profile. The body MUST contain a Content-Type entity header withuser agents that it is not provisioned to do so. However theMIME typeprofile server SHOULD accept (with 2xx response) SUBSCRIBE requests from any user agent. 4.3 Notification of Profile Changes The NOTIFY request in theprofile assip-profile event package server two purposes. First it provides thevalue. The body MUST also containuser agent with aContent-ID entity header which SHOULD changemeans toa new unique value each time the content ofobtain theURL changes. The Content-ID entity header associated withURL(s) for desired profiles without requiring theURL is intendedend user toallowmanually enter them. It also provides theUAmeans for the profile delivery server todecide if it hasnotify the user agent that thelatestcontent of theconfiguration data profile without having to downloadprofiles have changed andcompare the contents. Example: NOTIFY sip:00df1e004cd0@acme.com SIP/2.0 From: sip:sipuaconfig@sipuaconfig.acme.com;tag=1234 To: sip:00df1e004cd0@acme.com;tag=abcd Call-ID: 3573853342923422@10.1.1.123 CSeq: 2131 INVITE Content-Type: message/external-body; ACCESS-TYPE=URL; URL="https://acme.com/profiles/vendor-x/00df1e004cd0" Content-Length: ... Content-Type: application/foo-profile Content-Disposition: session Content-ID: <1000957853@acme.com> 6 Configurationshould be made effective. 4.4 Retrieval of Profile Data TheUA MUST retrieve its configuration data profile using the URL specified byuser agent retrieves it's needed profile(s) via theconfiguration serverURL(s) provide in the NOTIFYrequest. Ifrequest as specified in section Section 3.5. The profile delivery server SHOULD secure theretrieval fails,content of theUAprofiles using one of the techniques described in Section 6. The user agent SHOULDnot re-enroll untilmake theSUBSCRIBE session expires to avoid a cascade effect ifnew profiles effective in theserver goes down temporarily.timeframe described in section Section 3.2. Thedevice MAY re-try the profile retrievecontents of theprofile from the URL before the SUBSCRIBE expires. Shouldprofiles SHOULD be cached by there- enrollment fail,user agent. This it to avoid theUA SHOULD re-discoversituation where theconfigurationcontent delivery serveras described in section 4. 7 Configuration Upload Ifis not available, leaving theUAuser agent non-functional. 4.5 Upload of Profile Changes The user agent oranother entity wishes to modify a configuration data profile itother service MAYmake the change persistent onpush changes up to theconfigurationprofile delivery serverif it is authorizedusing the technique appropriate todo so.the profile's URL scheme (e.g. HTTP PUT method, FTP put command). Theconfiguration server SHOULD supporttechnique for pushing incremental or atomic changes MUST be described by theability to accept uploadsspecific profile data framework. 5. IANA Considerations [TBD] 6. Security Considerations Profiles may contain sensitive data such as user credentials. The protection of this data is accomplished via thesame URLprofile retrieval function. This simplifies theUA usedsecurity solution as the SIP event package does not need toretrieveauthenticate, authorize or protect theconfiguration data profile. For HTTP and HTTPScontents of theUA does a POST with a multipart MIME attachment containingSIP messages. Effectively the profile delivery server will provide profile URL(s) to anyURL parameters in one partone. The URLs themselves are protected via authentication, authorization andthe changed configuration data Petrie Informational - Expires Aug. 2003 11 A Frameworksnooping. Three options forSIP Feb. 2003 User Agent Configuration profile [whole or changes only ?? define insecure retrieval of profiles??] in another part as defined in [?]. If the UA or userare follow: 6.1 Symmetric Encryption of Profile Data One security technique isnot permittedtomakeencrypted thechangesprofiles on theconfigurationcontent delivery server using theconfiguration server returns an HTTP error response codeAES symmetric encryption algorithm using a key formed by a MD5 hash of403 Forbidden. Iftheconfigurationfollowing: username ":" password. The encrypted profiles are delivered by the content delivery serverreturns a 403via theUA SHOULD disallowURLs provided in thechanges from being effective onNOTIFY requests. Using this technique theUA. The UA SHOULDprofile delivery server does notmake the changes effective until it receives a successful response (e.g.need to provide authentication or authorization forHTTP 2xx). IftheURLretrieval as the profiles are obscured. The user agent must obtain the username and password from the user to generate the key and perform AES decryption the profiles. This isfor HTTP/HTTPSthe simplest security technique as it does not require any public key infrastructure or TLS implementation on the user agent (which often has limited resources). 6.2 Client Certificate Authentication with HTTPS In another technique the content delivery serverMUST returnauthenticates thechanged configuration data profileuser or user agent by requesting the client's certificate in theresponse (assuming it was allowed). The UA SHOULD useTLS connection established as described by theconfiguration dataprofilecontents fromURL. The content delivery server authorizes theHTTP response as opposed toprofile retrieval using thedata that was pushed incertificate identity and business policy choices provide by therequest as changes may occur from other sources. TheserverSHOULD include a Content-ID header in the HTTP/HTTPS response.implementer. Theconfiguration server SHOULD send out a NOTIFY for this change,profile data is obscured from snooping using thesame Content-ID entity header value as inencryption mechanisms provide by theHTTP/HTTPS response.TLS connect. Thisallowshas nice properties of not requiring end user intervention, but has a higher administrative cost for user agent certificate management and distribution. It also requires theUAcertificates toknow that it already hasbe in place before enabling profile delivery. 6.3 HTTPS Authentication Alternatively thecurrent contents ofauthentication mechanizms described in [RFC2617] are used. The content delivery server authorizes theconfiguration dataprofile retrieval using the certificate identity andSHOULD not download that configuration databusiness policy choices provide by the server implementer. The profile(i.e. itdata issafe to ignoreobscure from snooping using theNOTIFY asencryption mechanisms provide by theContent-ID isTLS connect. This also requires thesame). [Alterativelyoverhead of a TLS implementation on theContent-ID could be putuser agent. For all of these techniques the user agent should take care in how it stores or caches thecontentprofiles to avoid theft. It is recommended that a symmetric encryption technique such asopposedthat described in section Section 6.1 be used. This also requires the overhead of a TLS implementation on the user agent. 7. Differences from Simple XCAP Package The author of this document had an action item from the July 2003 IETF SIPPING WG meeting to consider resolving theHTTP/HTTPS response] [TBD û in 403 case restrictdifferences of the sip-profile andprovide feedback as to what specificallysimple XCAP package [I-D.ietf-simple-xcap-package]. It isnot allowed tothe author's opinion that XCAP [I-D.rosenberg-simple-xcap] can bemodifiedsupported by theUA or user] 8 Examples Belowframework and event package defined in this document as it isan example high level message flow forsimply anew UA discovering andURL usingconfiguration data from a configuration server. Followingthehigh level message flows are some specific SIP messages illustrating SUBSCRIBE and NOTIFY messages from enrollment and configuration change notification. 8.1 Example Message FlowsHTTP or HTTPS scheme. The followinghigh level message flows illustratelists theconfiguration process of discovery, enrollment, configuration retrieval and change notification with associated configuration retrieval. The UA uses DHCP withdifferences between theSIP [3] option requestingevent packaged defined in this document vs. theconfiguration server address and port.one defined in [I-D.ietf-simple-xcap-package]. TheDHCP server does not providesimple XCAP package requires that theconfiguration server address or port.relative path be known and specified by the user agent when subscribing for change notification. TheUA then doesevent package in this document requires aDNS lookup for the configuration service withintoken be known and specified when subscribing. The advantage of thelocal domain.latter is that bootstrapping is easier and well defined. Itgets a response fromalso leaves theDNS server forfreedom of specifying theconfiguration serverÆs fully qualified host name. The UA then enrolls withentire path of theconfiguration server by sending a SUBSCRIBE request forprofile URL up to the profiletype indicateddelivery server. The event package defined in this document allows multiple URLs to be provided in theEvent header. The configuration server sends back a successful response. The configuration server then sends aNOTIFY requestwithbody as a result of a single token specified in theURL forSUBSCRIBE event parameter: profile-type. This allows theconfiguration dataprofile delivery server to provide sets of profiles that theUA nameduser agent may not have enough information to specify in theenrollmentSUBSCRIBErequest. The UA sends a 200 response toURI (e.g. at boot strapping time theNOTIFY. The UA then downloadsuser agent may not know theconfiguration Petrie Informational - Expires Aug. 2003 12 A Frameworkuser's identity, but the profile delivery server may know the default user forSIP Feb. 2003 User Agent Configuration datathe device's identity) or the doc-component of the simple XCAP package. The simple XCAP package provides profileviadata changes or deltas in theURL frombody of the NOTIFY request. Thisprocess may be repeatedis a desirable feature, but approach inparallel for each oftherequired profiles. The UA is now configured as prescribed. Later ... an administrator makessimple XCAP package has achangefew disadvantages: o SIP signaling requires authentication, authorization and encryption (SIPS) to protect theconfiguration forprofiles where theUAevent package in this document does not. SIPS may require more resources than are available onthe configuration server.many user agents. o Theconfiguration server on behalfcontent ofthe administrator, sendsaNOTIFY (change notification) request to the UA with Content-ID entity header for the profile. As the Content-ID value has changed, the UA downloads the configuration dataprofilefromchange may be large, causing fragmentation and problems or constraints when using UDP. The feature of providing profile data changes or deltas can be provided in thegiven URL. UA DHCP Server DNS Server Config. Server Discovery IP config. req. ==============> IP config. wo/ local option <============== DNS A record req. for sipuaconfig hostpackage proposed inlocal domain =============================> A record IP address returned for Host <============================= Enrollment SIP SUBSCRIBE Event: sip-config ==================================================> 200 OK <================================================== SIPthis document by providing two URLs in the NOTIFYEvent: sip-config w/ requestedrequest for each profile (i.e. a URL<================================================== 200 OK ==================================================> Configuration retrieval HTTP GET ==================================================> 200 OK (specific profile data in body) <================================================== . . . Administrative change on configuration server via user interface . . . Petrie Informational - Expires Aug. 2003 13 A FrameworkforSIP Feb. 2003 User Agent Configuration Change Notification SIP NOTIFY Event: sip-config w/ changedthe complete profileURL <================================================== 200 OK ==================================================> HTTP GET ==================================================> 200 OK (profile dataand another for the changes). All other functional differences between draft-ietf-sipping-config-framework-00 and draft-ietf-simple-xcap-package-00 are believed to be resolved inbody) <================================================== . . . User changes datathis version of this document. 8. Open Issues 9. Change History 9.1 Changes from draft-ietf-sipping-config-framework-00.txt This version of the document was entirely restructured and re-written 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 one section and is believed to be complete and up to date with [RFC3265]. The URI used to subscribe to the event package is now either the user or device address or record. The user agent information (vendor, model, MAC and serial number) are now provided as event header parameters. Added a mechanism to force profileonchanges to be make effective by the user agent. . . Configuration Upload HTTP POST (changed profile attached as multipart MIME) ==================================================> 200 OK (profile datainbody, as change confirmation) <================================================== . . . 8.2 Example Messages Petrie Informational - Expires Aug. 2003 14 A Framework for SIP Feb. 2003 User Agent Configuration The following SUBSCRIBE request example is fromaUA enrollingspecified maximum period of time. Changed the name of the event package from sip-config to sip-profile Three high level securityapproaches are now specified. 9.2 Changes from draft-petrie-sipping-config-framework-00.txt Changed name to reflect SIPPING work group item Synchronized witha configuration server. As this SUBSCRIBE request is for configuration enrollmentchanges to SIP DHCP [RFC3361], SIP [RFC3261] and [RFC3263], SIP Events [RFC3265] and content indirection [I-D.ietf-sip-content-indirect-mech] Moved theEvent headerdevice identity parameters from the From fieldcontainsparameters to User-Agent header parameters. Many thanks to Rich Schaaf of Pingtel, Cullen Jennings of Cisco and Adam Roach of Dyamicsoft for thetoken sip-config. The UA tellsgreat comments and input. 9.3 Changes from draft-petrie-sip-config-framework-01.txt Changed theconfiguration server that it would likename as this belongs in theconfiguration data profileSIPPING work group. Minor edits 9.4 Changes from draft-petrie-sip-config-framework-00.txt Many thanks to those who contributed and commented on the previous draft. Detailed comments were provided by Henning Schulzrinne from Columbia U., Cullen Jennings from Cisco, Rohan Mahy from Cisco, Rich Schaaf from Pingtel. Split the enrollment into a single SUBSCRIBE dialog for each profile. The 00 draft sent a single SUBSCRIBE listing all oftype: sip-ua-device-config in the Accept header field. The UA tellstheconfiguration serverdesired. These have been split so thatiteach enrollment can be routed differently. As there isenrolling for 86400 seconds via the Expires header field. During this perioda concept oftime the configuration server MUST senddevice specific and user specific profiles, these may also be managed on separate servers. For instance in achange notification with the URL forroaming situation theconfiguration datadevice might get it's profile data from a local server whichchanged. The UA has identified the specifics about itself in the From field addr-spec and User-Agent parameters: Vendor/Model, Version, Serial, Mac. In this example the UserProfile parameter is not included in the From field asknows thesip-config profile is deviceLAN specificnot user specific. UA => Config. Server SUBSCRIBE sip: sipuaconfig@config.localdomain.com SIP/2.0 To: sip:sipuaconfig@sipuaconfig.localdomain.com From: sip:000aaa1234cd@localdomain.com;tag=aslkjhd User-Agent: acme-model-a/1.5.0.1;Serial=1234567890;Mac=000aaa1234cd Call-Id: 987654321@10.1.1.123 Cseq: 1 SUBSCRIBE Event: sip-config Expires: 86400 Content-Length: 0 Accept: message/external-body application/sip-ua-device-config The following is an example response to the above enrollment request. Config. Server => UA SIP/2.0 202 Accepted To: sip:sipuaconfig@sipuaconfig.localdomain.com;tag=owiu1234 From: sip:000aaa1234cd@localdomain.com;tag=aslkjhd Call-Id: 987654321@10.1.1.123 Cseq: 1 SUBSCRIBE Content-Length: 0 Petrie Informational - Expires Aug. 2003 15 A Framework for SIP Feb. 2003 User Agent Configuration Inprofile data. At thefollowing examplesame time thedevice is requesting auser specificprofile Sip-User. The device specifies that it wantprofiles might come from the user's home environment profilefordelivery server. Removed theuser: sip:fredsmith@localdomain.com. UA => Config. Server SUBSCRIBE sip: sipuaconfig@sipuaconfig.localdomain.com SIP/2.0 To: sip:sipuaconfig@sipuaconfig.localdomain.com From: sip:fredsmith@localdomain.com;tag=klhfkjncd User-Agent: acme-model-a/1.5.0.1;Serial=1234567890;Mac=000aaa1234cd Call-Id: 11111111@10.1.1.123 Cseq: 1 SUBSCRIBE Event: sip-config Expires: 86400 Content-Length: 0 Accept: message/external-body application/sip-ua-user-config The followingConfig-Expires header as it isan example response tolargely superfluous with theabove enrollment request. Config. Server => UA SIP/2.0 202 Accepted To: sip:sipuaconfig@sipuaconfig.localdomain.com;tag=oqieu983 From: sip:fredsmith@localdomain.com;tag=klhfkjncd Call-Id: 11111111@10.1.1.123 Cseq: 1SUBSCRIBEContent-Length: 0 The following example is the immediate NOTITY request the configuration server sent toExpires header. Eliminated some of theUA above enrollment. The URLcomplexity in therequest body is for the configuration datadiscovery mechanism. Suggest caching information discovered about a profile delivery server to avoid an avalanche problem when a whole building full of devices powers up. Added theUA named in the EventUser-Profile From header fieldinparameter so that theabove SUBSCRIBEdevice can a request a user specific profile for a user that is different from theUA. Config. Server => UA NOTIFY sip:10.1.1.123 SIP/2.0 To: sip:sipuaconfig@sipuaconfig.localdomain.com;tag=owiu1234 From: sip:000aaa1234cd@localdomain.com;tag=aslkjhd Call-Id: 987654321@10.1.1.123 Cseq: 22 NOTIFY Event: sip-config Content-Type: message/external-body;ACCESS-TYPE=URL; URL="http://config.localdomain.com/device/000aaa1234cd/dev-prof Content-Length: ... Content-Type: application/sip-ua-device-config Content-ID: 000aaa1234cd-3254@localdomain.com Petrie Informational - Expires Aug. 2003 16 A Frameworkdevice's default user. References [I-D.ietf-simple-xcap-package] Rosenberg, J., "A Session Initiation Protocol (SIP) Event Package for Modification Events for the Extensible Markup Language (XML) Configuration Access Protocol (XCAP) Managed Documents", draft-ietf-simple-xcap-package-00 (work in progress), June 2003. [I-D.ietf-sip-content-indirect-mech] Olson, S., "A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messages", draft-ietf-sip-content-indirect-mech-03 (work in progress), June 2003. [I-D.ietf-sipping-ua-prof-framewk-reqs] Petrie, D. and C. Jennings, "Requirements for SIPFeb. 2003User Agent Profile Delivery Framework", draft-ietf-sipping-ua-prof-framewk-reqs-00 (work in progress), March 2003. [I-D.rosenberg-simple-xcap] Rosenberg, J., "The Extensible Markup Language (XML) ConfigurationThe following is an example response from the UAAccess Protocol (XCAP)", draft-rosenberg-simple-xcap-00 (work in progress), May 2003. [I-D.sinnreich-sipdev-req] Butcher, I., Lass, S., Petrie, D., Sinnreich, H. and C. Stredicke, "SIP Telephony Device Requirements, Configuration and Data", draft-sinnreich-sipdev-req-02 (work in progress), October 2003. [RFC0822] Crocker, D., "Standard for theabove request. UA => Config. Server SIP/2.0 200 Ok To: sip:sipuaconfig@sipuaconfig.localdomain.com;tag=owiu1234 From: sip:000aaa1234cd@localdomain.com;tag=aslkjhd Call-Id: 987654321@10.1.1.123 Cseq: 22 NOTIFY Content-Length: 0 Assume at some later time, an administrator makes a change to the contentformat ofthe sip-config configuration data profile for the UA. The configuration server sends a NOTIFY request to the UAARPA Internet text messages", STD 11, RFC 822, August 1982. [RFC2119] Bradner, S., "Key words forthe configuration change notification. This example request below indicates the changed URL or contentuse inthe request body with a higher sequence number. Config. Server => UA NOTIFY sip:10.1.1.123 SIP/2.0 To: sip:sipuaconfig@sipuaconfig.localdomain.com;tag=owiu1234 From: sip:000aaa1234cd@localdomain.com;tag=aslkjhd Call-Id: 987654321@10.1.1.123 Event: sip-config Cseq: 23 NOTIFY Content-Type: message/external-body;ACCESS-TYPE=URL; URL="http://config.localdomain.com/device/000aaa1234cd/dev-prof Content-Length: ... Content-Type: application/sip-ua-device-config Content-ID: 000aaa1234cd-3255@localdomain.com The following is an example response to the above request. UA => Config. Server SIP/2.0 200 Ok To: sip:sipuaconfig@sipuaconfig.localdomain.com;tag=owiu1234 From: sip:000aaa1234cd@localdomain.com;tag=aslkjhd Call-Id: 987654321@10.1.1.123 Cseq: 23 NOTIFY Content-Length: 0 9 Security Considerations [This section needsRFCs tobe greatly expandedIndicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, March 1997. [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, March 1997. [RFC2246] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A. and P. Kocher, "The TLS Protocol Version 1.0", RFC 2246, January 1999. [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P. andelaborated] SIP basicT. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. [RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A. anddigest authentication [6] MAY be used for SUBSCRIBE/NOTIFY messages used for enrollmentL. Stewart, "HTTP Authentication: Basic and Digest Access Authentication", RFC 2617, June 1999. [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. andconfiguration change notification. There is a chickenE. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [RFC3263] Rosenberg, J. andegg problem. Since the Petrie Informational - Expires Aug. 2003 17 A Framework forH. Schulzrinne, "Session Initiation Protocol (SIP): Locating SIPFeb. 2003 User Agent Configuration content of SUBSCRIBE/NOTIFY messages are transported in the clear, the credentials that the UA uses in the SUBSCRIBE 401 challenge, or that the configuration server uses in the NOTIFY 401 challenge must be provisioned out of band (i.e. user or administrator manual input, beamed via PDA, smart card, etc.) via a secure means.Servers", RFC 3263, June 2002. [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. [RFC3361] Schulzrinne, H., "Dynamic Host Configurationdata profile URLs are communicated in the clear in the NOTIFY requests fromProtocol (DHCP-for-IPv4) Option for Session Initiation Protocol (SIP) Servers", RFC 3361, August 2002. [RFC3377] Hodges, J. and R. Morgan, "Lightweight Directory Access Protocol (v3): Technical Specification", RFC 3377, September 2002. [RFC3617] Lear, E., "Uniform Resource Identifier (URI) Scheme and Applicability Statement for theconfiguration server.Trivial File Transfer Protocol (TFTP)", RFC 3617, October 2003. Author's Address Daniel Petrie Pingtel Corp. 400 W. Cummings Park Suite 2200 Woburn, MA 01801 US Phone: "Dan Petrie (+1 781 970 0111)"<sip:dpetrie@pingtel.com> EMail: dpetrie@pingtel.com URI: http://www.pingtel.com/ Appendix A. Acknowledgments Intellectual Property Statement Thesecurity risk of unauthorized access of the URL content can be mitigated ifIETF takes no position regarding theconfiguration server and UA both support basic authentication and HTTPvalidity orHTTPS. There is a chicken and egg problem here as well since the contentscope ofSUBSCRIBE/NOTIFY messages are transported in the clear. Accordingly,the credentialsany intellectual property or other rights thatthe UA uses for the HTTP/HTTPS GET/POST 401 challenge mustmight beprovisioned out of band (i.e. user or administrator manual input, beamed via PDA, smart card, etc.) via a secure means. Using HTTPS over TLS[13] the configuration server MAY requestclaimed to pertain to thecertificateimplementation or use of theUA [14]. Iftechnology described in thislevel of authentication is desired,document or theUA vendor SHOULD shipextent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on theUAIETF's procedures witha digital certificate or provide a means by which thisrespect to rights in standards-track and standards-related documentation can beinstalled outfound in BCP-11. Copies ofband. The configuration server MUST be provisioned with the certificatesclaims ofauthority allowedrights made available foreach modelpublication and any assurances ofUAlicenses to besupported. Using HTTPS the UA MAY requestmade available, or thecertificateresult of an attempt made to obtain a general license or permission for theconfiguration server. If this leveluse ofauthentication is desiredsuch proprietary rights by implementors or users of this specification can be obtained from theUA mustIETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may beprovisioned withrequired to practice this standard. Please address theallowed certificate(s) of authority and identities forinformation to theconfiguration server outIETF Executive Director. The IETF has been notified ofband (i.e. user or administrator manual input, beamed via PDA, smart card, etc.) via a secure means. 10 Open Issues [Do we need an option for the configuration serverintellectual property rights claimed in regard totellsome or all of theUA that it MUST makespecification contained in this document. For more information consult thechange immediately regardlessonline list ofstate? Should thisclaimed rights. Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may bethe default?] [Uploadcopied and furnished toconfiguration server configuration data profilesothers, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole orchanges only ?? defineinprofiles ??] [Security considerations section needs much elaboration] Petrie Informational - Expires Aug. 2003 18 A Framework for SIP Feb. 2003 User Agent Configuration 11 References [1] R. Droms, "Dynamic host configuration protocol," Request for Comments (Draft Standard) 2131, Internet Engineering Task Force, Mar. 1997. [2] S. Alexanderpart, without restriction of any kind, provided that the above copyright notice andR. Droms, "DHCP optionsthis paragraph are included on all such copies andBOOTP vendor extensions," Request for Comments (Draft Standard) 2132, Internet Engineering Task Force, Mar. 1997. [3] H.Schulzrinne , ôDynamic Host Configuration Protocol (DHCP- for-IPv4)ö, Request for Comments (Draft Standard) 3361, Internet Engineering Task Force, Aug. 2002. [4] S. Bradner, "Key words for usederivative works. However, this document itself may not be modified inRFCsany way, such as by removing the copyright notice or references toindicate requirement levels," Request for Comments (Best Current Practice) 2119, Internet Engineering Task Force, Mar. 1997. [5] A. Gulbrandsen, P. Vixie, and L. Esibov, ôA DNS RR for specifyingthelocation of services (DNS SRV),ö Request for Comments 2782, Internet Engineering Task Force, Feb. 2000. [6] Rosenberg, et. al., ôSIP: session initiation protocol,ö Request for Comments 3261, Internet Engineering Task Force, June 2002 [7] A. Roach, ôEvent Notification in SIPö, Request for Comments 3265,InternetEngineering Task Force, June 2002 [8] D. Crocker, ôSTANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGESö, Request for Comments 822,Society or other InternetEngineering Task Force, Aug. 1982 [9] K. Sollins, ôTHE TFTP PROTOCOL (REVISION 2)ö, Requestorganizations, except as needed forComments 1350,the purpose of developing InternetEngineering Task Force, Jul. 1992 [10] H Schulzrinne, ôConfiguring IP Telephony End Systemsö, <schulzrinne-sip-config-00.txt>, IETF; Dec. 2000, Workstandards inprogress [11] D. Petrie, ôRequirementswhich case the procedures fora SIP User Agent Configuration Frameworkö, <draft-ietf-sip-config-framewk-reqs-00.txt>, IETF; Feb. 2003, Workcopyrights defined inprogress [12] T. Berners-Lee et al, ôUniform Resource Locators (URL)ö, Request for Comments 1738, Internet Engineering Task Force, Dec. 1994 [13] E. Rescorla, ôHTTP Over TLSö, Request for Comments 2818, Internet Engineering Task Force, May 2000 Petrie Informational - Expires Aug. 2003 19 A Framework for SIP Feb. 2003 User Agent Configuration [14] T. Dierks, C. Allen, ôThe TLS Protocol Version 1.0ö, Request for Comments 2246,the InternetEngineering Task Force, Jan. 1999 [15] S. Olson ôA Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messagesö, <draft-ietf-sip-content- indirect-mech-01>, IETF; Nov. 2002, Work in progress [16] H. Sinnreich, ôSIP Telephony Device Requirements, ConfigurationStandards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual andDataö, <draft-sinnreich-sipdev-req-00.txt>, IETF; Nov. 2002, Work in progress [10] H Schulzrinne, ôConfiguring IP Telephony End Systemsö, <schulzrinne-sip-config-00.txt>, IETF; Dec. 2000, Work in progress [11] D. Petrie, ôRequirements for a SIP User Agent Configuration Frameworkö, <draft-petrie-sip-config-framewk-reqs-00.txt>, IETF; Feb. 2001, Work in progress [12] T. Berners-Lee et al, ôUniform Resource Locators (URL)ö, Request for Comments 1738, Internet Engineering Task Force, Dec. 1994 [13] E. Rescorla, ôHTTP Over TLSö, Request for Comments 2818,will not be revoked by the InternetEngineering Task Force, May 2000 [14] T. Dierks, C. Allen, ôThe TLS Protocol Version 1.0ö, RequestSociety or its successors or assignees. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgment Funding forComments 2246,the RFC Editor function is currently provided by the InternetEngineering Task Force, Jan. 1999 [15] S. Olson ôA Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messagesö, <draft-ietf-sip-content- indirect-mech-01>, IETF; Nov. 2002, Work in progress 12 Author's Address Dan Petrie Pingtel Corp. 400 W. Cummings Park Phone: +1 781 938 5306 Woburn, MA USA Email: dpetrie@pingtel.com Petrie Informational - Expires Aug. 2003 20Society.