SIP Working Group JamesM.Polk Internet Draft Cisco Systems Expiration:Sept 6th,Dec 26th, 2006 Brian Rosen NeuStar Session Initiation Protocol Location Conveyancedraft-ietf-sip-location-conveyance-02.txt Mar 6th,draft-ietf-sip-location-conveyance-03.txt June 26th, 2006 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire onSeptember 6th,December 26th, 2006. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This document defines how the Session Initiation Protocol (SIP) conveys, or pushes,usergeographic location information from one SIP entity to another SIP entity. SIP Location Conveyance is always end to end, but sometimes the embedded location information can be acted upon by SIP Servers to direct where the message goes, based on where the user agent client is. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1 Conventions. . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Changes from Prior Versions . . .used in this document . . . . . . . . . . . . 4 2. Location In the Body or in a Header . . . . . . . . . . . . .85 3. Requirements for SIP Location Conveyance . . . . . . . . . .96 4. Location Conveyance Using SIP . . . . . . . . . . . . . . . .129 4.1 A New OptionTagsTag anda LocationSIP HeaderCreated. . . . . .13. . . . . . . 11 4.2 424 (Bad Location Information) Response Code . . . . . .1614 4.3 Example PIDF-LO in Geo Format . . . . . . . . . . . . . .16 4.315 4.4 Example PIDF-LO in Civic Format . . . . . . . . . . . . .1716 5. SIP Element Behavior When Conveying Location . . . . . . . .1817 5.1 Location Conveyance Using the INVITE Method . . . . . . .1917 5.2 Location Conveyance Using the MESSAGE Method . . . . . .2119 5.3 Location Conveyance Using the UPDATE Method . . . . . . .2220 5.4 Location Conveyance Using the REGISTER Method . . . . . .2720 6. Special Considerations for Emergency Calls . . . . . . . . .2920 7. Meeting RFC 3693 Requirements . . . . . . . . . . . . . . . .2921 8.Open issues . . . . . . . . . . . . . . . . . . . . . . . . . 30 9.Security Considerations . . . . . . . . . . . . . . . . . . .30 10.22 9. IANA Considerations . . . . . . . . . . . . . . . . . . . .31 10.122 9.1 IANA Registration for the SIP Location Header . . . . .31 10.2. 22 9.2 IANA Registration of the Location OptionTags.Tags . . . . . .31 10.323 9.3 IANA Registration for Response Code 424 . . . . . . . .31 11.. 23 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . .31 12.23 11. References . . . . . . . . . . . . . . . . . . . . . . . . .31 12.123 11.1 Normative References . . . . . . . . . . . . . . . . .31 12.223 11.2 Informative References . . . . . . . . . . . . . . . . .3224 Author Information . . . . . . . . . . . . . . . . . . . . .3224 Appendix A. Changes from Prior Versions . . . . . . . . . . 24 Intellectual Property and Copyright Statements . . . . . . .3328 1. Introduction There are several situations in which it is desired or necessary for a Session Initiation Protocol (SIP) [RFC3261] user agent to convey, or push its geographic Location Information (LI) from one SIP entity to another. This document discusses thescenariosrules for such conveyance, and includes the requirements to be met when a SIP UAC wants or needs to convey its location to another SIP entity. A concept of inheritance exists in which the conveyance of the location of a user agent means conveying the location of a user of that user agent. This is not an absolute in SIP, but applies for the pushing of location using SIP. The privacy concerns of this topic are also discussed, and need to meet the requirements laid out in RFC 3693 [RFC3693]. This document does not discuss the pulling of location information from auser agent.remote element to learn that element's location. This is left for a future effort. Why would a SIP user agent (UA) push its location to another SIP UA? There are 3 reasonable scenarios why location can be, or needs to be conveyed to a remote SIP element: 1) to include location in a request message seeking the nearest instance of destination, where there could be more than one choice; (hey, here I am, I want to talk to the nearest instance of you? i.e. where's the nearest Pizza Hut relative to where Iam).am now). 2) to push theuser'suser agent's location to a server such that it can either deal with all the inquiries, leaving the UA to do othertasks;tasks (PresenceServer)Server), or allow the server to return information to that UAC according to what the UAC is at this time. 3) to inform the user of another UA where the sending user is; (dude, he is where I am) or (I need help, here I am) Scenario #1 revolves around the idea of a user wanting to find the nearest instances of something else. For example, where is the nearest pizza parlor. A chain of pizza parlors may be contacted through a single well known URI (sip:pizzaparlor.example.com). This by itself does not solve enough to the sending UA. The server at this well known URI needs to know where the nearest one is to the requester. In SIP, this could be accomplished in the initial message by including the location of the UAC in the Request message. This allows the SIP message to be forwarded to the closest physical site by the pizzaparlor.com proxy server. Additionally, the receiving site's UAS uses the UAC's location to determine the location your delivery. A more immediate example may be: where's the nearest (car) garage repair shop, because the user of the UAC has a flat tire. Scenario #2 revolves around pushing the user's location information to an external server to deal with all location requests in the future. This leaves a buffer layer between the user and the seeker of the user's location. This server would typically handle all security checks and challenges of those seeking the user's location, as well as handling all the processing of the location target's profile rules entered into that server. This external server c/would be a Presence server. This scenario will not be addressed in this document because of the prevailing Presence solutions for conveying location information. Alternatively, a user agent pushing location to a server can allow that server to provide back information pertinent to that UA's location. Perhaps replying with certain information unique to the country or region a mobile UA resides. This would not be possible without the server knowing where the UA is. Scenario #3 actually has a part A and a part B to it. Both involve the UAC including its location in the request to the UAS within a SIP transaction. Part A simply has the user, Alice, informing another user, Bob, where she is. This could beforthe loan purpose for this SIP message, or it could be part of another transaction - in which location were merely included, such as within a call set- up. Part B ofthisscenario #3 has a user,AliceAlice, calling for help and including location to inform who she's calling where she is. This is where the called party needs to come bring help to. Within this scenario, the UAC will need to know this isan emergencya special SIP requestmessage, andmessage to include the UAC's location in this message. It is envisioned that SIP elements along the path of the SIP request will need to know where Alice's UA is for proper routing purposes. An example of this special SIP request is an emergency call set-up. While scenarios 1, 2 and 3A should use some form of SIP security, typically at the wishes of the user, scenario 3B may or may not involve SIP security measures. This is because including any security measures may cause the SIP request to fail, and that is likely not a good result. It is also conceivable that a first attempt with the user's security measures enabled is tried, and if there are any failures, the subsequent attempt or attempts do not involve security measures. Most believe that completing the emergency call is more important than protecting the information in the SIP message. Obviously this is up to local and jurisdictional policies, but is mentioned here as a hint of a rationale of a later section of this document. This document does not discuss how the UAC discovers or is configured with itslocation,location. This document however will specify howthis specit meets the requirements for SIP qualifying as a "using protocol" as defined in [RFC3693], in section 7. Section 3 lists the requirements for SIP location conveyance. Section 4 defines how SIP conveys location. Section 5 illustrates specifics about location conveyance in certain SIP request messages. Section 6 briefly discusses pertinent behaviors with respect to the unique nature of emergency calling. Section 9 provides the security considerations and Section109 IANA registers one new SIP header, two new option tags and one new 4XX Response codes.1.1 Conventions used in thisThe "changes from prior versions" section (the old Section 1.2) has been moved to the lone appendix, as its size is getting too large for efficient reading of this document. 1.1 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 [RFC2119].1.2 Changes from Prior Versions [NOTE TO RFC-EDITOR: If this document2. Location In the Body or in a Header In determining where "location" isto be published as an RFC, this section 1.2placed in a SIP message, consideration is taken as tobe removed prior to that event.] Thiswhere the trust model isa list ofbased on thechanges that have been made fromarchitecture involved. If theSIP WG version -01user agent has the location stored within it, and this user agent wants to inform another user agent where it is, it seems reasonable to have thisversion -02: - streamlined the docaccomplished byremoving text (ultimately removing 42 pages of text). - Limitedplacing thescope of this document to SIP conveyance, meaning only how SIP can pushlocationinformation. - reduced emergency calling text to justinformation (coordinate or civic) in afew paragraphs now that the ECRIT WG is taking mostmessage body (part), sending it as part ofthat topic on. - greatly reduced the numbera SIP request or response. This is location by-value. No routing ofrequirements in this version. - changedtherequirements groups from "UA-to-UA", "UA-to-Proxy", etc to "UAC Reqs", "UAS-Reqs" and "Proxy-Reqs" to focusrequest based onwhat is being asked of each SIP element. - Removedthefulllocation contents is required in this case, therefore no SIPmessage examples. - completedProxies between these two UAs need to view theABNF forlocation information contained in theLocation header, includingSIP message(s). The UAC should know certain types of messages will be routed based on the UA's location when creating acid-urlmessage. RFC 3261 does not permit SIP intermediaries topoint atmodify or delete a message bodypart to help in parsing[RFC3261]. There is, however, no restriction on intermediaries viewing message bodies. S/MIME protected message bodies, implemented on bodies forlocation. - Deletedend-to-end communications only (i.e. between user agents), would render thecall for a new 425 (Retry Location) response code, as it appears this can easily be usedlocation object opaque tospoofaUA into providing where it is inadvertently, even if the intent is legitimate byproxy server from any viewing of theUAC. Thismessage body. The location format is defined in [RFC4119] as alist"Presence Information Data Format - Location Object", or PIDF-LO. The amount ofthe changesinformation thathave been made from the SIP WG version -00is necessary tothis version -01: - cleaned up a lot of loose endsappropriately transmit location information inthe text - createdanew Location header to convey many means (location is in the body - even if not viewable, which locationformat that ispresent, which formatunderstandable isrequested in a query, how to request morelarger thanone location format inaquery, whether theSIP header could realistically include. However, there must be a means for both a UACunderstands location at all, if the UA knows its location, howtopushinclude a reference point to where location can be retrieved fromone UA to throughasecond toremote server, and in some cases, for athird UA, etc). - added the abilitySIP server toconveyadd a UAC's locationby-reference, but only under certain conditions. - Added support for the OPTIONS RequesttoqueryaserverSIP message as it is processed by that element. This must be in a SIP header for theUAC's location, throughabove stated reason, and should therefore be in a compact form. A URI satisfies this description. This is location-by-reference. The idea of Location-by-Reference is to allow a UA to store its location on a remote node, to be retrieved by who has this URI. This concept allows the remote node to useofits processing power to handle all policy rule operations thenew Location header. - moved both new Response code sections forwarduser wants performed per request, and all security challenges done as well. Since location inthe document for their meaning toa message body may beclearer, earlier for necessary discussion. - Changed theopaque to a routing element, messageflowsneeding toonlybe routed based on the UAC's location should not have said location in thepertinentmessageheaders shown for brevity. - Added text to the SUB/NOT section showing how and whybody where it may not be seen. A UAC's Location in these cases should be in thelocation of a UALocation header where it can berefreshed or updated with an interval, ordereferenced by atrigger. This(SIP) routing element. [RFC3693] prefers S/MIME for confidentiality and integrity of Location Information on an end-to-end basis, and indeed S/MIME is preferable in SIP [RFC3261] for protecting alist of the changes that have been made from the SIPPING WG version -02 tomessage body. Accordingly, thisSIP WG itemdocumentversion -00: - Changed which WG this document isspecifies location be carried infrom SIPPING to SIP due to the extension of the protocol with new Response codes (424 and 425) fora body whenthereit isan error involving the LO message body. - Moved most of the well formed SIP messages outknown to/stored in a user agent for end-to-end conveyance ofthe main bodylocation. The use of SIPS [RFC3261] is orthogonal to thisdocumentdiscussion andinto separate appendixes. Thisshouldclean upalways be used. It is conceivable that an initial attempt to communicate with location included may fail due to thedocument from a readability point of view, yet still providesecurity measures used. Subsequent requests ought to use less security. For example, if an initial request used S/MIME and failed. A subsequent request could downgrade theintended decode examplessecurity measures used toreaders of this document who wishthatlevel of detail per flow. The first few flows still have the decoded SIP messages (unencrypted and encrypted). - Removed some flow examples which no longer made sense - Changed all referencesof"ERC" (Emergency Response Center) to "PSAP" (Public Safety Answering Point) asTLS. A message may be important enough, say an emergency call attempt, where TLS is not used. This should not be aresult of discussion within the new ECRIT WG to definedefault configuration, but asingle termfallback usage. This is always alist ofmatter for local and jurisdictional policy. 3. Requirements for SIP Location Conveyance The following subsections address thechanges that have been made fromrequirements placed on thesipping- 01 working group version of this effort touser agent client, thesipping-02 version: - added requirementsuser agent server, as well as SIP proxies when conveying location. 3.1 Requirements for2 new 4XX error responses (Bada UAC Conveying LocationInformation) and (RetryThe following are the requirements for location conveyance by a user agent client. There is a motivational statement below each requirements that is not obvious in intent. UAC-1 The SIP INVITE Method [RFC3261] MUST support LocationBody) - added "BadConveyance. UAC-2 The SIP MESSAGE method [RFC3428] MUST support LocationInformation" as section 8.6 - added "RetryConveyance. UAC-3 SIP Requests within a dialog SHOULD support LocationBody " as section 9.3 - addedConveyance. UAC-4 Other SIP Requests MAY supportfor session modeLocation Conveyance. UAC-5 There MUST be one, mandatory tocover packet sizes larger than the single packet limitimplement means of1300 bytes in the message body - added requirementtransmitting location confidentially. Motivation: interoperability UAC-6 It MUST be possible for aSIP entity to SUBSCRIBEUAC toanother forupdate locationinformation - added SUBSCRIBE and NOTIFY as section 8.5 - added requirement to have user turn offconveyed at anytracking created by subscription - removed doubt about which method to use for updating location aftertime in aINVITE is sent (update) - cleaned up which method is to be used if there is nodialog, including during dialogexisting (message) - removed useestablishment. Motivation: in case a UAC has moved prior to the establishment ofreINVITEa dialog between UAs, the UAC must be able toconveysend new location- clarified that UAs include <provided-by> element of PIDF-LO when placing an emergency call (to inform PSAP who supplied Location information) - updated list of open issues - added to IANA Considerations section for the two new 4XX level error responses requested ininformation. In thelast meeting This is a listcase ofthe changes that havelocation having beenmade fromconveyed, and thesipping- 00 working group versionUA moves, it needs a means to update the conveyed to party of thisIDlocation change. UAC-7 The privacy and security rules established within [RFC3693] that would categorize SIP as a 'using protocol' MUST be met. See Section 7 for analysis. UAC-8 The PIDF-LO [RFC4119] is a mandatory to implement format for location conveyance within SIP, whether included by-value or by-reference. If location is within thesipping-01 version: - Added the offered solutionmessage, it is a PIDF-LO by-value indetail (witha messageflows, appropriate SIP Methods forbody (part). If locationconveyance, and - Synchronized the requirements here with those from the Geopriv Working Group's (attempting to eliminate overlap) - Tookis stored onthe taskan external node, it is dereferenced as a PIDF-LO. Motivation: interoperability UAC-9 A UAC MUST be capable ofmaking this effort thetransmitting a SIP"using protocol" specification from Geopriv's POV - Refined the Open Issues section to reflectrequest without protecting theprogress we've made here, and to indicate what we have discovered needs addressing, but hasPIDF-LO message body. It is RECOMMENDED this notbeen to date.be the default configuration of any UA. This requirement isa list of the changes that have been made from the -01 individual submission versionorthogonal to thesipping-00 version of this ID: - Brian Rosen was brought on as a co-author - Requirements that a location header were negatively received in the previous versionuse ofthis document. AD and chair advice was to move all location information into a message body (and stay away from headers) - AddedTLS or IPSec hop-by-hop between SIP elements. Motivation: If asection of "emergency call" specific requirements - Added an Open Issues section to mention what hasn't been resolved yet in this effort ThisSIP request isa listpart of an emergency call, therefore includes thechanges that have been made fromUAC's location, theindividual submission version -00UAC may understand through local policy or configuration that a proxy server will need to learn the-01 version - AddedUAC's location to route theIPR Statement section - Adjusted a few requirements basedmessage correctly. Using S/MIME onsuggestions from the Minneapolis meeting - Added requirements thatthe PIDF-LO defeats this capability in proxies. UAC-10 A UACis to include from where it learnedMUST allow its user to be able to disable providing locationinwithin anytransmission of its LI - DistinguishedSIP request message. It is RECOMMENDED this not is thefacts (known to date) that certain jurisdictions relieve personsdefault configuration oftheirany UA. Motivation: local laws may give this right toprivacyall users within a jurisdiction, even whenthey callthe request is initiating anPSAP, while other jurisdictions maintainemergency call. UAC-11 A UAC SHOULD NOT use the Proxy-Require header indicating aperson's rightSIP intermediary is required toprivacy, while still others maintainact upon location within aperson's right to privacy - but only if they ask that their service be set upSIP message. Motivation: This is because it is not expected thatway. - Madeall SIP elements will understand location, therefore thedecision that TLSchances of a message failure isthe security mechanism forhigh if proxies are required to support locationconveyance in emergency communications (vs. S/MIME, which is stillbefore forwarding a message. This will lead to unnecessary message failures. 3.2 Requirements for a UAS Receiving Location The following are themechanismrequirements forUA-to-UA non-emergencylocation conveyancecases). - Added the Open Issue of whetherby aProxy can insert location information into an emergencyuser agent server: UAS-1 SIPINVITE message, and some of the open questions surrounding the implicationsResponses MUST support Location Conveyance. UAS-2 There MUST be one, mandatory to implement means ofthat action - addedreceiving location confidentially. Motivation: interoperability UAS-3 The PIDF-LO [RFC4119] is afew namesmandatory tothe acknowledgements section 2. Location In the Bodyimplement format for location conveyance within SIP, whether included by-value orin a Header In determining where "location" is placed in a SIP message, considerationby-reference. If location istaken as to wherewithin thetrust modelmessage, it isbased on the architecture involved.a PIDF-LO by-value in a message body (part). Ifthe user agent has thelocation is storedwithin it, and this user agent wants to inform another user agent where it is, it seems reasonable to have this accomplished by placing the location information (coordinate or civic) inon anS/MIME registered and encoded message body, and sendingexternal node, it is dereferenced aspart ofaSIP request or response. No routing of the request based onPIDF-LO. Motivation: interoperability UAS-4 There MUST be a unique 4XX error response code informing the UAC it did not provide applicable locationinformationinformation. UAS-5 UASs MUST be prepared to receive location without privacy mechanisms enabled. It isrequiredRECOMMENDED this not be the default configuration of any UA, however, this MUST be possible for local laws that require this function. Motivation: Because a SIP request can fail in transit for security reasons, UACs are allowed to transmit, or retransmit requests including location without any security mechanisms utilized, even when thiscase; therefore noSIPProxies between these twotransaction is an emergency call. UAsneedmust be prepared toview the location information contained inreceive theSIP messages. The UAC should knowmessageswillwithout confidential location. UAS-6 There MUST berouted based on location when creatingamessage. This isunique 4XX error response code informing the UAC it did not provide applicable locationby-value.information. 3.3 Requirements for SIPcurrently does not permitProxies and Intermediaries The following are the requirements for location conveyance by a SIPintermediaries toproxies and intermediaries: Proxy-1 Proxy servers MUST NOT modify ordeleteremove a location message body[RFC3261]. There is, however, no restriction on intermediaries viewing message bodies. S/MIME protected message bodies, implemented on bodies for end-to-end communications only (i.e. between user agents), would render thepart, and SHOULD NOT modify or remove a locationobject opaque toheader or location header value. Motivation: [RFC3261] forbids the removal of a message body part, and the proxyserver from any viewing ofmay not have all themessage body. This problem is similarrelevant information as tothat raised in Session Policy [ID-Sess-Pol], where an intermediary may need information in a body, such as IP address of media streams or codec choices to route a call properly. Requirementswhy location was included in[ID-Sess-Pol] are applicablethis message (meaning it might need torouting based on location,be there), andare incorporated in these requirements by reference. The location format is defined in [RFC4119] asshould not remove this critical piece of information. Proxy-2 Proxy servers MUST be capable of adding a"Presence Information Data Format -LocationObject", or PIDF-LO. The amountheader during processing ofinformation that is necessarySIP requests. Motivation: If the proxy determines a message needs toappropriately transmithave the locationinformationof the UAC ina format that is understandable is larger than a SIP header could realistically include. However, therethe message, and knows the UAC's location by-reference, it must bea means for both a UACable toinclude a reference pointadd this header and URI towhere location can be retrieved fromthe message during processing. This SHOULD NOT violate requirement Proxy-3 below. Proxy-3 If aremote server, and in some cases,Proxy server detects "location" already exists within a SIPserver wants or needs tomessage, it SHOULD NOT add another location header or location body toa SIP message as it is processed by that server.the message. Motivation: Thismustmay lead to confusion downstream. Section 4.1 explains this more. Proxy-4 There MUST bein a compact form ina unique 4XX error response code informing the UAC it did not provide applicable location information. 4. Location Conveyance Using SIPheader. A URI satisfies this description. This is location-by-reference. Location-by-Reference allows a UA to place itsRFC 4119 defines the PIDF-LO locationon a remote node,object to beretrieved by who has this URI. This allows the server to use its processing powerinside a RFC 3693 defined "using protocol" message from one entity tohandle all policy rule operationsanother entity. For SIP location conveyance, using theuser wants performed per request,PIDF-LO body satisfies the entire format andall security challenges donemessage-handling requirements aswell. [RFC3693] prefers S/MIME for security of Location Information, and indeed S/MIME is preferablestated inSIP [RFC3261] for protectingthe baseline Geopriv Requirements [RFC3693]. Although amessage body. Accordingly, these requirements specifyPIDF-LO is to be used to indicate location of a UA, the actual PIDF-LO does not need to becarriedcontained ina body whenthe message itself, itis known to/storedcan be as a by-reference URI in auser agent. It isSIP header or message body part, pointing to theusePIDF-LO ofS/MIME however,thatlimits message routing basedUA onthe locationa remote node. The basic operation ofthe UAC, scenario 3B from above. Therefore, it seems appropriate to require that, where routinglocation conveyance isdependent on location, protection of theas easy as this in Figure 1., showing a user agent conveying its locationinformation object be accomplished by other mechanisms visibleto another user agent: UA Alice UA Bob | [M1] Request (w/ Location) | |---------------------------------->| | [M2] Response | |<----------------------------------| | | Figure 1. Basic SIPproxies: here TLS ("sips:" from [RFC3261]). The UAC will needLocation Conveyance Alice wants toknow the differenceinform Bob where she is. She includes location by-value (in a message body) or by-reference (in a new Location header) inthe call's intent as to which security mechanismher request message towards Bob. Bob MAY choose toengage forinclude his locationconveyance. It is conceivable that an initial attemptin a response back tocommunicate withAlice. Another usage of locationincluded may fail due toconveyance is for a SIP Server route thesecurity measures used. Subsequent requests oughtSIP request message based on included location information, by-value or by-reference, touse less security. For example, ifaninitial request used S/MIME and failed. A subsequent request could downgrade the security measures usedappropriate destination. Figure 2 shows this message flow to UAS-B, because thatof TLS. This is a matter for local and jurisdictional policy, andismerely a hint at implementation possibilities. 3. Requirementsdetermined to be the appropriate destination for this message, based on the location of Alice. UA Alice SIP Server UAS-A UAS-B UAS-C | [M1] Request (w/ Location) | | | | |---------------------------->| | | | | | | | |----------------->| | | | | [M2] Response | |<-----------------------------------------------| | | Figure 2. Message Routing based on LocationConveyance The following subsections address the requirements placedInformation How a SIP Server would route a message based on theuser agent client, the user agent server, as well aslocation in a SIPproxies when conveying location. 3.1 Requirementsmessage is out of scope fora UAC Conveying Location The following arethis document. But in Figure 2, Alice's message could go to one of three destinations, with therequirementsSIP server choosing destination B based on Alice's location. A use-case forlocation conveyance byFigure 2 could be one in which Alice wants auser agent client. Therepizza delivered to her location, wherever she is. She calls her favorite pizza store chain's main address, perhaps this is amotivational statement below each requirements that is not obvious in intent. UAC-1 Thesingle, national URI, with her included location determining which specific store this SIPINVITE Method [RFC3261] MUST support Location Conveyance. UAC-2 The SIP MESSAGE method [RFC3428] MUST support Location Conveyance. UAC-3 SIP Requests within a dialog SHOULD support Location Conveyance. UAC-4 Other SIP Requests MAY support Location Conveyance. UAC-5 There MUST be one, mandatory to implement means of transmitting location confidentially. Motivation: interoperability UAC-6 It MUST be possible forrequest is routed to. In such aUACuse-case, Alice can use the same URI wherever she is toupdate location conveyed priorcontact the same store chain she prefers; never needing todialog establishment. Motivation:look up the specifics of which store is closest incaseaUAC has moved prior tounfamiliar city. Another use-case is emergency calling, in which theestablishmentlocation ofa dialog between UAs,theUAC must be ablecaller is the key trigger as tosend newwhich emergency response center receives this SIP request. Because a person's location is generally considered to be sensitive in nature, certain security measures need to be taken into account when transmitting such information.UAC-7 The privacy andSection 26 of [RFC3261] defines the securityrules established within [RFC3693]functionality SIPS for transporting SIP messages with either TLS or IPSec, and S/MIME for encrypting message bodies from SIP intermediaries that wouldcategorizeotherwise have access to reading the clear-text bodies. SIPas a 'using protocol'endpoints SHOULD implement S/MIME to encrypt the PIDF-LO message body (part) end-to-end. The SIPS-URI from [RFC3261] MUST bemet. See Section 7implemented foranalysis. UAC-8 The PIDF-LO [RFC4119]message protection (message integrity and confidentiality) and SHOULD be used when S/MIME isa mandatory to implement format fornot used. The entities sending and receiving locationconveyance within SIP, whether included by-value or by-reference. Motivation: interoperability UAC-9 A UACMUSTbe capable of transmitting a SIP request without protectingobey thePIDF-LO message body. It is RECOMMENDED this not beprivacy and security rules in thedefault configuration of any UA. This requirement is orthogonalPIDF-LO, regarding retransmission and retention, to be compliant with this specification. Self-signed certificates SHOULD NOT be used for protecting PIDF-LO, as theuse of TLS or IPSec hop-by-hop between SIP elements. Motivation: Ifsender does not have aSIP request is partsecure identity ofan emergency call, therefore includes the UAC's location, the UAC may understand through local policy or configuration that a proxy server will need to learntheUAC'srecipient. More than one locationto routerepresentation or format MAY be included in the same messagecorrectly. Using S/MIMEbody part, but all MUST point at the same position on thePIDF-LO defeats this capability in proxies. UAC-10 A UAC MUST allow its user to be able to disable providing location within any SIP request message. It is RECOMMENDED thisearth (altitude notbe the default configuration of any UA. Motivation: local laws may givewithstanding), as thisright to all users within a jurisdiction, even when the request is initiating an emergency call. 3.2 Requirements for a UAS Receiving Location The following arewould confuse therequirements for location conveyancerecipient bya user agent server: UAS-1 SIP Responses MUST support Location Conveyance. UAS-2pointing at more than one position within the same message body part. ThereMUSTMAY beone, mandatory to implement meansa case in which part or parts oftransmittingone locationconfidentially. Motivation: interoperability UAS-3 The PIDF-LO [RFC4119] is a mandatory to implementformatfor location conveyance within SIP, whether included by-valueand part orby-reference. Motivation: interoperability UAS-4 There MUST be a unique 4XX error response code informingparts of another format exist in theUAC it did not provide applicable location information. UAS-5 SIP UAssame message body part. These complementary pieces of information MUST point at the same position on the earth, yet are incomplete within their own format. For example, there maybe beprepareda latitude and longitude in coordinate format and a civic altitude value toreceive location without privacy mechanisms enabled. It is RECOMMENDED this not be the default configurationcomplete a 3-dimensional position ofany UA, however, thisa thing (i.e. which floor of a building the UA ispossible basedonlocal laws. Motivation: Becausein a building at a particular lat/long coordinates pair). There MAY be more than one PIDF-LO in the same SIPrequest can failmessage, but each intransit for security reasons, UACs are allowed to transmit, or retransmit requests includingseparate message body parts. Each locationwithout any security mechanisms utilized, even when this SIP transaction is an emergency call. UAs must be prepared to receivebody part MAY point at different positions on themessages without confidential location. UAS-6 Thereearth (altitude not withstanding). If the message length exceeds the maximum message length of a single packet (1300 bytes), TCP MUST to bea unique 4XX error response code informing the UAC it did not provide applicable location information. 3.3 Requirementsused forSIP Proxiesproper message fragmentation andIntermediaries The following are the requirements for location conveyance by areassembly. Several push-based SIPproxies and intermediaries: Proxy-1 Proxy servers MUST NOT modify or remove a location message body part,Request Methods are capable (and applicable) of carrying location, including: INVITE, REGISTER, UPDATE, andSHOULD NOT modify or removeMESSAGE, While the authors do not yet see a reason to have locationheader or location header value. Motivation: [RFC3261] forbidsconveyed in theremoval ofACK, PRACK, BYE, REFER and CANCEL Methods, we do not see a reason to prevent carrying a PIDF-LO within these Method Requests as long as the SIP messagebody part, andmeets theproxy may not have allrequirements stated within this document. Discussing Location in therelevant informationPUBLISH Request Method will be for another document. SIP Methods such asto whySUBSCRIBE and NOTIFY are considered a pull-based locationwas included in this message (meaning it might need to be there),retrieval mechanism, andshouldare therefore notremove this critical piece of information. Proxy-2 Proxy servers MUST be capablepart ofaddingthis document. A 200 OK to aLocation header during processing ofSIPrequests. Motivation: IfRequest MAY carry theproxy determines a message needsUAS's PIDF-LO back tohavethe UAC that provided its location in the original request, but this is not something that can be required due to the timing of theUAC inrequest to 200 OK messages, with potential local/user policy requiring themessage, and knowscalled user to get involved in determining if theUAC'scaller is someone they wish to give their locationby-reference, it must be abletoadd this header(and at what precision). 4.1 A New Option Tag andURI to the message during processing.SIP Header ThisMUST NOT violate requirement Proxy-3 below. Proxy-3 If a Proxy server detects "location" already exists within a SIP message, it MUST NOT add another location header or location body to the message. Motivation:document creates and IANA registers one new option tag: "location". Thismay leadoption tag is toconfusion, and shouldbeleft forused, per RFC 3261 in theUAC to do on purpose. Proxy-4 There MUST beRequire, Supported and Unsupported headers. Whenever aunique 4XX error response code informing the UACUA wants to indicate itdid not provide applicable location information. 4. Location Conveyance Usingunderstands this SIPRFC 4119 definesextension, thePIDF-LOlocationobject tooption tag is included in a Supported header of the SIP message. This option tag SHOULD NOT beinsideused in the Proxy-Require header. This document also creates and IANA registers aRFC 3693 defined "using protocol" message from one entity to another entity. Fornew SIP header: Location. The Location header, if present, will have one of two header values defined by this document: o a Location-by-reference URI o a Content-ID indicating where locationconveyance, usingis within thePIDF-LOmessage bodysatisfies the entire format and message-handling requirements as stated in the baseline Geopriv Requirements [RFC3693]. Although a PIDF-LOA location-by-reference URI is a pointer tobe used to indicate location ofaUA,record on a remote node containing theactualPIDF-LOdoes not need to be contained inof a UA. If themessage itself, it can be asPIDF-LO of aby-reference URIUA is contained in a SIP message, a Location headerorwill be present in the message with a content-ID (cid-url) [RFC2392] indicating which message bodypart, pointingpart contains location for this UA. This is tothe PIDF-LO of that UA onaid aremote node. Section 26 of [RFC3261] defines the security functionality SIPS for transporting SIP messages with either TLS or IPSec, and S/MIME for encrypting message bodies from SIP intermediaries that would otherwise have access to reading the clear-text bodies. SIP endpoints MUST implement S/MIMEnode in not having toencryptparse thePIDF-LOwhole message body(part) end-to-end. The SIPS-URI from [RFC3261] SHOULD be usedor body parts looking formessage protection (message integrity and confidentiality) and MUST be used when S/MIME is not used (when not violatingthis body type. The purpose of therequirementsLocation option-tag is to indicate support foremergency messaging detailed in section 3 ofthisdocument). The entities sending and receiving location MUST obeydocument in theprivacyRequire, Supported andsecurity rules inUnsupported headers. It gives a UAS thePIDF-LOproper means tobe compliant with this specification. Self-signed certificates SHOULD NOT be used for protecting PIDF-LO, as the senderindicate it does nothave a secure identity ofsupport therecipient. More than oneconcept of locationrepresentation or format MAY be includedinthe samean Unsupported header in a response messagebody part, but all MUST point at the same position on the earth (altitudethat might otherwise notwithstanding), as this would confuse the recipient by pointing at more than one position within the same PIDF-LO. There MAYbea case in which partclear that the lack ofonesupport for locationformat and partis the problem with the request message. The presence ofanother existthe Location option tag in a Supported header without a Location header in the same messagebody part. These all still MUST point atinforms a receiving SIP element thesame position onUAC understands theearth, yet are incomplete within their own format. For example, there maybeconcept of location, but it does not know its location at this time. The new "Location" header has the following BNF syntax: Location = "Location" HCOLON (locationURI *(COMMA locationURI)) locationURI = absoluteURI / cidURI cidURI = "cid:" content-id content-id = addr-spec ; URL encoding of RFC3261 addr-spec The content-ID (cid:) is defined in [RFC2392] to locate message body parts. This MUST be present if location is by-value in alatitude and longitudemessage. It is envisioned that HTTP, through the http_URL incoordinate format[RFC216], anda civic altitude valueHTTPS [RFC2818] MAY be used tocompletedereference a3-dimenttional position of a thing (i.e. which floor of a buildinglocation-by-reference PIDF-LO. The following table extends theUA is onvalues ina building at a particular lat/long coordinate pair). ThereTable 2&3 of RFC3261 [RFC3261]. Header field where proxy INV ACK CAN BYE REG OPT PRA ---------------------------------------------------------------- Location Rr ar o - - o o o - Header field where proxy SUB NOT UPD MSG REF INF PUB ---------------------------------------------------------------- Location Rr ar - - o o o o - The Location header MAY beseveral PIDF-LOs in separateadded to, or read if present in, a request messagebody partslisted above. A proxy MAY add the Location header in transit if one is not present. [RFC3261] states message bodies cannot be added by proxies. A proxy MAY read thesame message,location header in transit if present, andeachMAYpoint at different positions onuse theearth (altitude not withstanding). Ifcontents of the location header to make messagelength exceedsrouting decisions. It is RECOMMENDED that only one Location header be in themaximum message length of a single packet (1300 bytes), TCPsame message, but this is not mandatory. That said, there MUSTtoNOT beused for propermore than one cid-url pointing to the same location messagefragmentation and reassembly. Several push-basedbody (part) in a SIPRequest Methodsmessage, regardless of how many Location headers there arecapable (and applicable)in that message. As ofcarrying location, including: INVITE, REGISTER, UPDATE, and MESSAGE, Whiletheauthors do not yet see a reason to have location conveyedwriting of this document, there is no means inthe ACK, PRACK, BYE, REFER and CANCEL Methods, we do not seeareasonPIDF-LO toprevent carryingindicate which element generated that PIDF-LO. There is aPIDF-LO within these Method Requests as long asmeans of indicating what theSIP message meetssubject of therequirements statedlocation information is withinthis document. Discussing Locationa PIDF-LO. Meaning, if more than one location, by-value and/or by-reference is included in a message, thePUBLISH Request Methodrecipient, whether intermediary or destination, will not know which location entry was inserted by which element. This can lead to confusion in some cases. Therefore, it is RECOMMENDED that there befor another document. SIP Methods such as SUBSCRIBE and NOTIFY are consideredapull-basedsingle locationretrieval mechanism, and are therefore not part of this document. A 200 OKrepresentation referring to the same target/subject in a SIPRequest MAY carry the UAS'smessage. This PIDF-LOback to the UAC that provided its locationgeneration indication may be fixed in theoriginal request, butfuture, resolving this limitation, but that is notsomething that can be required due to the timingpart of the scope of this document. Here is an example INVITE requestto 200 OK messages, with potential local/user policy requiring the called user to get involved in determining ifmessage that includes thecaller is someone they wish to give their location to (and at what precision). 4.1 New Option Tags and aproper LocationHeader Created This document createsandIANA registers two new option tags, "location" or "unknown-location". User agent clients who support this specification will indicate that support by including either of these option-tags in aSupportedheader. This document also creates and IANA registers a new Location header.headers: INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP pc33.atlanta.example.com ;branch=z9hG4bK74bf9 Max-Forwards: 70 To: Bob <sip:bob@biloxi.example.com> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 3848276298220188511@atlanta.example.com Location: cid:alice123@atlanta.example.com Supported: location Accept: application/sdp, application/pidf+xml CSeq: 31862 INVITE Contact: <sip:alice@atlanta.example.com> Content-Type: multipart/mixed; boundary=boundary1 Content-Length: ... --boundary1 Content-Type: application/sdp ...SDP here --boundary1 Content-Type: application/pidf+xml Content-ID: alice123@atlanta.example.com ...PIDF-LO here --boundary1-- The Locationheader, if present, will have one of threeheadervalues defined by this document: o a Location-by-reference URI o a Content ID indicating wherefrom the above INVITE: Location: cid:alice123@atlanta.example.com indicates the Content-ID locationis[RFC2392] within the multipart message bodyo a location based option tag A location-by-reference URI is a pointer to a record on a remote node containing the PIDF-LOofa UA.were location information is. If thePIDF-LO of a UA is contained in a SIP message, aLocation headerwill be present in the message with a content-ID (cid-url) [RFC2392] indicating where in the message bodywere this instead: Location: <server5@atlanta.example.com/alice123> this would indicate locationis forby-reference was included in thisUA. Thismessage. It isto aid aexpected that any nodein not havingwanting toparseknow where user alice123 is would fetch (dereference) thewhole message body or body parts looking for this body type. The Unknown-Location option tag in a Location header indicates a UA understands the concept of location conveyance, but does not have its location to provide. This can save error messagesPIDF-LO frombeing generated looking for an answer the UA does not have to give. It can also allow a processing entity the immediate knowledge it needs to act as if the UA will not learn location on its own, and perhaps call on another process to address the location needs for that message. The purpose ofthe server URI. 4.2 424 (Bad Locationoption-tag is to indicate support for this document inInformation) Response Code In theRequires, Supported and Unsupported headers. It givescase that a UASthe proper means to indicate it does not support the concept of location inor SIP intermediary detects anUnsupported headererror in aresponserequest messagethat might otherwise not be clear thatspecific to thelack of support forlocation information supplied by-value or by-reference, a new 4XX level error is created here to indicate this is the problem with the request message.The new "Location" header hasThis document creates thefollowing BNF syntax:new error code: 424 (Bad Location= "Location" HCOLON Location-value *(COMMA Location-value) location-value = (addr-spec / option-tag / token) addr-spec = cid-url / absoluteURI option-tag = string token = token / quoted-string cid-url = "cid" ":" content-id / absoluteURI = SIP or SIPS-URI content-id = url-addr-spec url-addr-spec = addr-spec ; URL encoding of RFC 822 addr-spec The Content-ID (cid) is defined in [RFC2392] to locate message body parts.Information) TheabsoluteURI424 (Bad Location Information) response code is a rejection of theSIPlocation contents, whether by-value orSIPS URIby-reference of thelocation-by-reference, which points at a PIDF-LOoriginal SIP Request. The server function ofa UA in a record on a remote node. The following table extendsthevalues in Table 2/3 of RFC3261 [RFC3261]. Header field where proxy INV ACK CAN BYE REG OPT PRA ---------------------------------------------------------------- Location Rr ar o - - o o o - Header field where proxy SUB NOT UPD MSG REF INF PUB ---------------------------------------------------------------- Location Rr ar - - o o o o - The Location header MAY be added,recipient (UAS orread if present in a Request message listed above. A proxy MAY add theintermediary) has deemed this locationheader in transit if one is not present. [RFC3261] states message bodies cannot be added by proxies. A proxy MAY read theby-reference or locationheader in transit if present. It is RECOMMENDED that only one Location headerby- value to beinbad. No further action by thesame message, but thisUAC isnot mandatory. That said, there MUST NOT be more than one cid-url pointingrequired. The UAC can use whatever means it knows of toaverify/refresh its locationmessage body (part) ininformation before attempting a new request that includes location. There is no cross-transaction awareness expected by either the UAS or SIPmessage, regardlessintermediary as a result ofhow many Location headers there are in thatthis error message.There MUST NOTThis new error code will bemore than one location by-reference URIIANA registered inany SIP message, regardless of how many Location headers there areSection 9. 4.3 Example PIDF-LO in Geo Format This subsection will show amessage. Here is an example INVITE that includes the proper Location and Supported headers (withoutsample of what just the PIDF-LOmessage body part): INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP pc33.atlanta.example.com ;branch=z9hG4bK74bf9 Max-Forwards: 70 To: Bob <sip:bob@biloxi.example.com> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl Call-ID: 3848276298220188511@atlanta.example.com Location: cid:alice123@atlanta.example.com Supported: location Accept: application/sdp, application/pidf+xml CSeq: 31862 INVITE Contact: <sip:alice@atlanta.example.com> Content-Type: multipart/mixed; boundary=boundary1 Content-Length: ... --boundary1 Content-Type: application/sdp ...SDP here --boundary1 Content-Type: application/pidf+xml Content-ID: alice123@atlanta.example.com ...PIDF-LO with geo-location coordinatescan look like, as defined in [RFC4119]. Having this here--boundary1-- Thewill first offer a look at a locationheader from the above INVITE: Location: cid:alice123@atlanta.example.com indicates the Content-IDby-value message body, and secondly, give readers an appreciation for how large a location[RFC2392] within the multipartmessage bodyof were location informationis.If the Location header were this instead: Location: <server5@atlanta.example.com/alice123>This section shows a coordinate position based PIDF-LO. Section 4.4 shows thiswould indicate location by-reference was includedsame position in a civic address format. Full example message flows will be left for another document. Whether thismessage. It is expected that any node wanting to know where user alice123 is would fetch thePIDF-LOfrom the server5 URI. 4.2 424 (Bad Location Information) Response Code Inmessage body is S/MIME encrypted in thecase that a UAS orSIPintermediary detects an error in a Requestmessagespecific toor not, thelocation information supplied by-valuePIDF-LO stays exactly the same. There is no change to its format, text orby-reference, a new 4XX level errorcharacteristics. Whether TLS or IPSec iscreated hereused toindicateencrypt thisis the problem withoverall SIP message or not, therequest message. This document createsPIDF-LO stays exactly thenew error code: 424 (Bad Location Information) The 424 (Bad Location Information) Response code is a rejection of the location contents, whether by-value or by-reference of the original SIP Request. The server function of the recipient (UAS or intermediary) has deemed this location by-reference or location by- value to be bad. No further action by the UAC is required. The UAC can use whatever means it knows to verify/refresh its location information before attempting a new request. There is no cross- transaction awareness expected by either the UAS or SIP intermediary as a result of this error message. This new error code will be IANA registered in Section 10. 4.3 Example PIDF-LO in Geo Format This subsection will show a sample of what just the PIDF-LO can look like, as defined in [RFC4119]. Having this here will first offer a look at a location by-value message body, and secondly, give readers an appreciation for how large a location message body is so that this document does not have to show a PIDF-LO in every message flow example. This section shows a coordinate position based PIDF-LO. Section 4.4 shows this same position in a civic address format. Full example message flows will be left for another document. Whether this PIDF-LO message body is S/MIME encrypted in the SIP message or not, the PIDF-LO stays exactly the same. There is no change to its format, text or characteristics. Whether TLS or IPSec is used to encrypt this overall SIP message or not, the PIDF-LO stays exactly the same. Theresame. There is no change to its format, text or characteristics. The examples in section 4.3 (Geo format) taken from [RFC3825] and 4.4 (Civic format) taken from [ID-CIVIC] are for the exact same position on the Earth. The differences between the two formats is within the <gp:location-info> are of the examples. Other than this portion, of each PIDF-LO, the rest the same for both location formats. <?xml version="1.0" encoding="UTF-8"?> <presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"xmlns:gml="urn:opengis:specification:gml:schema- xsd:feature:v3.0"xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr" xmlns:gs="urn:ietf:params:xml:ns:pidf:geopriv10:geoShape" entity="pres:alice@atlanta.example.com"> <tuple id="sg89ae"> <timestamp>2006-03-20T14:00:00Z</timestamp> <status> <gp:geopriv> <gp:location-info> <gml:location> <gml:Point gml:id="point96" srsName="epsg:4326"> <gml:coordinates>33.001111N 96.68142W</gml:coordinates> </gml:Point> </gml:location> </gp:location-info><method>dhcp</method> <provided-by><nena>www.cisco.com</nena></provided-by/><gp:usage-rules> <gp:retransmission-allowed>no</gp:retransmission-allowed> <gp:retention-expiry>2006-03-24T18:00:00Z</gp:retention- expiry> <gp:method>DHCP</gp:method> <gp:provided-by>www.cisco.com</gp:provided-by> </gp:usage-rules> </gp:geopriv> </status> </tuple> </presence> 4.4 Example PIDF-LO in Civic Format This subsection will show a sample of what just the PIDF-LO can look like, as defined in [RFC4119]. Having this here will first offer a look at a location by-value message body, and secondly, give readers an appreciation for how large a location messagebody is so that this document does not have to show a PIDF-LO in every message flow example.body. This section shows a civic address based PIDF-LO. Section 4.3 shows this same position in a coordinate format. Full example message flows will be left for another document. Whether this PIDF-LO message body is S/MIME encrypted in the SIP message or not, the PIDF-LO stays exactly the same. There is no change to its format, text or characteristics. Whether TLS or IPSec is used to encrypt this overall SIP message or not, the PIDF-LO stays exactly the same. There is no change to its format, text or characteristics. The examples in section 4.3 (Geo format) taken from [RFC3825] and 4.4 (Civic format) taken from [ID-CIVIC] are for the exact same position on the Earth. The differences between the two formats is within the <gp:location-info> are of the examples. Other than this portion, of each PIDF-LO, the rest the same for both location formats. <?xml version="1.0" encoding="UTF-8"?> <presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"xmlns:gml="urn:opengis:specification:gml:schema- xsd:feature:v3.0"xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr" xmlns:gs="urn:ietf:params:xml:ns:pidf:geopriv10:geoShape" entity="pres:alice@atlanta.example.com"> <tuple id="sg89ae"> <timestamp>2006-03-20T14:00:00Z</timestamp> <status> <gp:geopriv> <gp:location-info> <cl:civilAddress> <cl:country>US</cl:country> <cl:A1>Texas</cl:A1> <cl:A3>Colleyville</cl:A3> <cl:HNO>3913</cl:HNO> <cl:A6>Treemont</cl:A6> <cl:STS>Circle</cl:STS> <cl:PC>76034</cl:PC> <cl:LMK>Polk Place</cl:LMK> <cl:FLR>1</cl:FLR> <cl:civilAddress> </gp:location-info><method>dhcp</method> <provided-by><nena>www.cisco.com</nena></provided-by/><gp:usage-rules> <gp:retransmission-allowed>no</gp:retransmission-allowed> <gp:retention-expiry>2006-03-24T18:00:00Z</gp:retention- expiry> <gp:method>DHCP</gp:method> <gp:provided-by>www.cisco.com</gp:provided-by> </gp:usage-rules> </gp:geopriv> </status> </tuple> </presence> 5. SIP Element Behavior When Conveying LocationThe SIP Request Methods that MUST conveyThis specification includes requirements for the conveyance of locationareinformation in the INVITE, REGISTER,UPDATEUPDATE, and MESSAGEMethods. It is not forbidden byrequest methods. The mechanisms within thisdocument to convey location with anyspecification could presumably be used in other SIPmethod.requests types. However, since there currently are no agreed upon requirement(s) for conveying location in other request types, this specification only describes location conveyance in the four request methodsare detailedmentioned here. The message flows in this document will be example messages containing only the key headers to convey the point being made that do not include all the requisite SIP headers. All well formed SIP message flows are to be in a separate document for brevity here. 5.1 Location Conveyance Using the INVITE Method Below is a common SIP session set-up sequence between two user agents. In this example, Alice will provide Bob with her location in the INVITE message. UA Alice UA Bob | [M1] INVITE | |---------------------------------------->| | [M2] 200 OK | |<----------------------------------------| | [M3] ACK | |---------------------------------------->| | RTP | |<=======================================>| | | Figure1.3. Location Conveyance in INVITE Requests User agent Alice invites user agent Bob to a session [M1 of Figure 1]. INVITE sips:bob@biloxi.example.com SIP/2.0 To: Bob <sips:bob@biloxi.example.com> From: Alice <sips:alice@atlanta.example.com>;tag=1928301774 Supported: Location Location: cid:alice123@atlanta.example.com If the message were S/MIME encrypted, this would be the Content-type header: Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m If this INVITE were not S/MIME encrypted, this would be the Content-Type header: Content-Type: multipart/mixed; boundary=boundary1 The obvious reason this for a multipart/mixed Content-Type is that this is an INVITE message and there is an SDP message body part included. This is not mandatory, but highly likely. The cid-url in the Location header points a parsing entity that can view the message body to where the PIDF-LO is in the message. Within the non-S/MIME message body is this: --boundary1 Content-Type: application/sdp v=0 ... --boundary1 Content-type: application/pidf+xml PIDF-LO --boundary1-- In the INVITE, Alice's UAC included the Supported header with the location option tag, and the Location header with the cid:url pointing at the by-value PIDF-LO. These two headers MAY be hidden in the S/MIME encrypted message body next to the topmost Content-Type header to hide the fact that this message is carrying location in transit. Bob's UAS, the destination UA of Alice's message, will read these headers when deciphering the overall message body. - If Bob's UA wants to join the call, his UA responses with a 200 OK [M2]. Bob can include his location in the 200 OK response, but this shouldn't be expected to due to user timing. A 424 (Bad Location Information) Responsewith a Unsupported header (option tag of 'location')is the proper response if Bob's UAcannot displayunderstands thisinformation,SIP extension (location), butdoes understandsomehow determines theconcept of location.supplied location information is bad. [AlternativeM2M2(1) of Figure2]3] SIP/2.0 424 Bad Location Information To: Bob <sips:bob@biloxi.example.com> From: Alice <sips:alice@atlanta.example.com>;tag=1928301774Unsupported: locationThe 424 is expected to be more commonly sent by SIP intermediaries along the path between Alice and Bob, than from Bob's UA. - If Bob's UA accepts with a 200 OK message, Alice's UA replies with an ACK and the session is set up. - If Bob's UA does not accept the INVITE for reasons other than location included, a 488 (Not Acceptable Here) may be the response. Figure13 does not include any Proxies because in it assumed they would not affect the session set-up with respect to whether or not Alice's location is in a message body part, and Proxies do not react to S/MIME encrypted bodies, making their inclusion more or less moot and asking for more complex message flows than necessary here.5.2 Location Conveyance Using the MESSAGE MethodIf Alicecan choose to merely want to communicate her location to Bob point-to-point, without startingincluded a(voice) conversation, the MESSAGE Method MAY be used here. To comply with privacy concerns raised in [RFC3693]Require header such as this: Require: Location and[RFC4119], a MESSAGE Method RequestBob did not understand this SIP extension, Bob's appropriate response would bebuilt according to [RFC3428] that includesalocation message body. S/MIME encryption SHOULD be used on420 (Bad Extension) with an Unsupported header containing themessage body (part), as outlined in [RFC3261]. Figure 2 here shows a simplistic MESSAGE method message flow. UA Alice UA Bob | MESSAGE [M1] | |---------------------------------------->| | 200 OK [M2] | |<----------------------------------------| | | Figure 1.LocationConveyance in MESSAGE Requests Belowoption tag. This isa sample, non-well-formed MESSAGE Method message from Aliceshown below as an alternative (2) toBob conveying her geo location: [M1M2 in Figure 3. [Alternative M2(2) of Figure2] MESSAGE sips:bob@biloxi.example.com3] SIP/2.0 420 Bad Extension To: Bob <sips:bob@biloxi.example.com> From: AliceSupported:<sips:alice@atlanta.example.com>;tag=1928301774 Unsupported: locationLocation: cid:alice123@atlanta.example.com If5.2 Location Conveyance Using themessage were S/MIME encrypted, this would be the Content-type header: Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m If thisMESSAGErequest were not S/MIME encrypted, this would be the Content-Type header: Content-Type: multipart/mixed; boundary=boundary1 --boundary1 Content-Type: text/plain Here's my location, Bob? --broundary1 Content-Type: application/pidf+xml Content-Disposition: render [Alice's PIDF-LO goes here] --broundary1-- The Content-type of M1 here is "multipart/mixed" to have a text message incorporated into the message. Within the PIDF-LO message body, there is a Content-Disposition of "render" to display this location information to Bob when his UA receives it. The cautions about whether or not Bob actually reads this messageMethod There areoutlinedno additional rules regarding conveying location in[RFC3428]. The 200 OK to M1 of Figure 2 is a simple 200 OK. A 424 (Bad Location Information) Response withaUnsupported header (option tag of 'location') is the proper response if Bob's UA cannot display this information, but does understand the concept of location. [Alternative M2 of Figure 2] SIP/2.0 424 Bad Location Information To: Bob From: Alice Unsupported: location If Bob is declining the M2MESSAGERequest message, a 488 (Not Acceptable Here) is the appropriate response. A Supported header with a location option tag indicates location was not the reason this message was declined. [Alternative M2 of Figure 2] SIP/2.0 488 Not Acceptable Here To: Bob From: Alice Supported: locationrequest verses an INVITE request. 5.3 Location Conveyance Using the UPDATE Method The UPDATE Method [RFC3311] is to be used any time location information is to be updated between UAs setting up a dialog or after the dialog has been established, no matter how long that dialog has been operational. reINVITE is inappropriate here, and the MESSAGE Method is for non-dialog location conveyance between UAs only. The same security properties used in the INVITE MUST be applied in the UPDATE message. There are 3 conditions UPDATE isto beused to convey location between UAs: 1) During dialog establishment, but before the final 200 OK(see section 5.3.1)2) After dialog establishment, but no prior location information has beenconvey (see section 5.3.2),convey, and 3) After dialog establishment, when a UA has determined it has moved(see section 5.3.3) 5.3.1(not specified here) There are no additional rules regarding conveying location in a UPDATEUpdatesrequest verses an INVITE request. 5.4 LocationDuring Session Establishment Figure 3a. showsConveyance Using thefirst example of whatREGISTER Method Alice's user agent MAY choose to communicate its location during registration, theUPDATEREGISTER Method isused: during dialog establishment when Alice updates Bob with her location information [M3].used here. ThismightMAY bedifferent location information than was in message [M1] of Figure 3a. or it could be the first time Alice conveys locationdone toBob duringinform thedialog set-up. UA Alice UA Bob | INVITE [M1] | |---------------------------------------->| | UPDATE [M2] | |---------------------------------------->| | 200 OK (UPDATE) [M3] | |<----------------------------------------| | 200 OK (INVITE) [M4] | |<----------------------------------------| | ACK (UPDATE) [M5] | |---------------------------------------->| | RTP | |<=======================================>| | | Figure 3a. Updating Location During Dialog Establishment [M2 of Figure 3a] UPDATE sips:bob@biloxi.example.com SIP/2.0 To: Bob From: Alice Supported: location Location: cid:alice123@atlanta.example.com Content-Type: multipart/mixed; boundary=boundary1 --boundary1 Content-Type: application/sdp v= ... --broundary1 Content-Type: application/pidf+xml [Alice's PIDF-LO goes here] --broundary1-- The above example has Alice also changing something within her original SDP, but this is not necessary for this update of location information. - If Bob agrees withRegistrar server where thisINVITE and the UPDATE, there hisUAtransits 200 OKs for each [M4] and [M5] in Figure 3a. - Alice, upon receiving the 200 OKs, sends an ACKis toestablish the dialog with her modified location. Bob's UA should send a 424 (Bad Location Information) Response withprovide it aUnsupported header (stating 'location') if his UA does not understandcustomized response based on theconceptparticulars oflocation conveyance; meaning to the INVITEUAs in[M1]. Therefore, a 424 SHOULD NOT be sentthat jurisdiction. To indicate tothe UPDATE of location information if the PIDF-LO is well formed and has valid (not validated!) location fields. If Bob's UA sendsa424 to this UPDATE without an Unsupported header containingRegistrar Server alocation option tag, Alice's UA MUST interpret that to mean theUAC supports this SIP extension, but does not include location in thePIDF-LO was poorly generated. Perhaps it was missing a field. Perhaps a field was incomplete. If Bob is declining the M2 UPDATE Requestmessage, including a488 (Not Acceptable Here) is the appropriate response. ASupported header with a location option tagindicates location was not the reason this message was declined. [Alternative M3 of Figure 3a] SIP/2.0 488 Not Acceptable Here To: Bob From: Alice Supported: location 5.3.2 UPDATE Updates Location After Session Establishment Figure 3b. showsdoes this. Either transaction SHOULD an appropriate confidentiality mechanism. 6. Special Considerations for Emergency Calls Emergency calling, such as 911, 112 and 999 calling today, necessitates a UAC to understand thesecond exampletype ofwhat the UPDATE Methodcall it isused for: ifabout to initiate with an INVITE message to adialog exists between Alice and Bob without location having been conveyed previously in either direction, and onePSAP. First of all, theUAs wantspurpose of calling for emergency help is toconvey locationget someone to respond to theother. For example,UAC's location, therefore, location MUST be included in the INVITE, ifAlice invites Bob to a dialog,known by the UAC. If the UAC understands this, but does not know its location at this time, it MUST includeherthe location option tag inthat dialog establishment. Anytime during that dialog that Alice's UA decides to convey location, she usestheUPDATE Method, notSupported header, and MUST NOT include theINVITE Method (inLocation header, as it would not have anything to put as areINVITE),header value. The emergency services community strongly prefers that message routing occur in the network with the freshest available Public Safety Answering Point (PSAP) information. Message routing, in this context, means choosing which SIP(S)-URI toupdateplace in thelocation parametersRequest-URI field ofthat dialog. Once a dialog has been established, a UAC MUST NOT usetheINVITE Method asstatus line. If areINVITE to convey location withinUAC knows it is generating an emergency request towards adialog. The UPDATE Method MUSTPSAP, there MAY beused. Consider the following exampleunique messageflow in Figure 3b.: UA Alice UA Bob | INVITE [M1] | |---------------------------------------->| | 200 OK (INVITE) [M2] | |<----------------------------------------| | ACK [M3] | |<----------------------------------------| | RTP | |<=======================================>| | UPDATE [M4] | |---------------------------------------->| | 200 OK (UPDATE) [M5] | |<----------------------------------------| | | Figure 3b. Updating Location After Dialog Establishment For whatever reason, Alice decides to send Bob herhandling characteristics that diminish the level of confidentiality of the locationforinformation within thefirst time. [M4]SIP message(s). This isan examplebecause emergency call routing requires proxies to know the location of theUPDATEmessageusedoriginating UAC in order toaccomplish this. [M4 of Figure 3b] UPDATE sips:bob@biloxi.example.com SIP/2.0 To: Bob From: Alice Supported: location Location: cid:alice123@atlanta.example.com Content-Type: application/pidf+xml [Alice's PIDF-LO goes here] A 424 (Bad Location Information) Response withmake aUnsupported header (stating Location)decision on where to route the message. This is because emergency calls are directed to theproper response if Bob's UA does not understandPSAP local to theconcept ofcaller's location.InA proxy performing thiscase,function requires that proxy to learn thedialog MUST remain unaffected by this rejection message. Here is a rough idea of this 424: [Alternative M5 of Figure 3b] SIP/2.0 424 Bad Location Information To: Bob From: Alice Unsupported:locationIf Bob is decliningof theM4 UPDATE Request message,UAC during message processing. How a488 (Not Acceptable Here)message is routed based on theappropriate response. A Supported header with a location option tag indicates location was not the reason this message was declined. [Alternative M5 of figure 3b] SIP/2.0 488 Not Acceptable Here To: Bob From: Alice Supported:location5.3.3 UPDATE Updates Location After a UA Moves in a Dialog Figure 3c. shows the first exampleofwhattheUPDATE Method is used:UAC, and ifone UA that already conveyed location to the other UA,andhas moved sinceby how much thedialog was originally sent up. How a UA determines it has movedlevel of confidentiality of location information is diminished when calling for emergency help are both out of scopeforof this document.However that "movement" trigger occurred, M4 of Figure 3c. is the result: an UPDATE Method Request indicating new location by Alice, to keep Bob current with Alice's position. UA Alice UA Bob | INVITE [M1] | |---------------------------------------->| | 200 OK (INVITE) [M2] | |<----------------------------------------| | ACK [M3] | |<----------------------------------------| | RTP | |<=======================================>| **Alice's UA determines it has moved, and needs to update Bob** | UPDATE [M4] | |---------------------------------------->| | 200 OK (UPDATE) [M5] | |<----------------------------------------| | | Figure 3c. Updating Location During Dialog After Movement This message flow assumes Alice conveyed locationHop-by-hop confidentiality mechanisms, as defined in[M1], and that Bob's UA supports location conveyance[RFC3261] MUST be initially attempted bynot rejecting the INVITE request. Message M4 of Figure 3c. shows the UPDATE of Alice's location informationa UAC that includes location. Local configuration MAY allow a subsequent retry, after a security related failure, toBob. That message may look like this (non-well- formedbe without hop-by-hop confidentiality. SIPmessage): [M4 of Figure 3c] UPDATE sips:bob@biloxi.example.com SIP/2.0 To: Bob From: Alice Supported: location Location: cid:alice123@atlanta.example.com Content-Type: application/pidf+xml [Alice's PIDF-LO goes here] There currently is not an indication withinelements MUST obey thePIDF-LO for Alice to tell Bob this PIDF-LO is new, replacement location information fromrules set forth in [RFC3261] regarding maintaining hop-by-hop confidentiality when apreviousmessage(here inusing a SIPS-URI. If a UAC retries an emergency request as theM1 INVITE message). Becauseresult ofthe 200 OK to the INVITE containing location, Alice knows Bob's UA understands location conveyance. Therefore, if Bob's UA sendsa 424to this UPDATE, it(Bad Location) response, that new request MUST NOTcontain an Unsupported header containing a location option tag. If Alice does receive a 424 (with the Unsupported header withinclude message body encryption. Further details of emergency request messages are left to future work to define. While many jurisdictions force alocation option tag), Alice's UA MUST interpret thatuser tomean thereveal their locationin the PIDF-LO was poorly generated. Perhaps it was missing a field. Perhaps a field was incomplete. If Bobduring an emergency call set-up, there isdeclining the M4 UPDATE Request message,a488 (Not Acceptable Here) is the appropriate response. A Supported header withsmall, but real, number of jurisdictions that allow alocation option tag indicates location wasuser to configure their calling device to disable providing location, even during emergency calling. This capability MUST be configurable, but is not RECOMMENDED as thereasondefault configuration of any UA. Local policies will dictate thismessage was declined. [Alternative M5ability. 7. Meeting RFC3693 Requirements Section 7.2 offigure 3c] SIP/2.0 488 Not Acceptable Here To: Bob From: Alice Supported: location 5.4 Location Conveyance Using[RFC3693] details theREGISTER Method Alice can choose to merely want to communicate her location to Bob point-to-point, without startingrequirements of a(voice) conversation,"using protocol". They are: Req. 4. The using protocol has to obey theREGISTER Method MAY be used here. To comply withprivacyconcerns raised in [RFC3693]and[RFC4119], a REGISTER Method Request MUST S/MIME encrypt the PIDF-LO, as outlined in [RFC3261]. A UAC SHOULD use a SIPS-URI, as outlinedsecurity instructions coded in[RFC3261]. Figure 4 here shows a simplistic REGISTER method message flow. UA Alice Registrar | REGISTER [M1] | |---------------------------------------->| | 200 OK [M2] | |<----------------------------------------| | | Figure 4.the LocationConveyanceObject and inREGISTER Requests Below is a sample, non-well-formed REGISTER Method message from Alice to Bob conveying her geo location: [M1 of Figure 2] REGISTER sips:registrar1@biloxi.example.com SIP/2.0 To: Alice <sips:alice@atlanta.example.com>; From: Alice <sips:alice@atlanta.example.com>;tag=1928301774 Supported: location Location: cid:alice123@atlanta.example.com Expires: 21600 Ifthemessage were S/MIME encrypted, this would becorresponding Rules regarding theContent-type header: Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m If this REGISTER request were not S/MIME encrypted, this would betransmission and storage of theContent-Type header: Content-Type: application/pidf+xml provided there were no other registration event message bodies.LO. This document requires, in Section 3, that SIP entities sending or receiving location MUST obey such instructions. Req. 5. The200 OK to M1 of Figure 2 is a simple 200 OK. A 424 (Bad Location Information) Responseusing protocol will typically facilitate that the keys associated witha Unsupported header (option tag of 'location') istheproper response ifcredentials are transported to theRegistrar server does not understand location conveyance. [Alternative M2respective parties, that is, key establishment is the responsibility ofFigure 2] SIP/2.0 424 Bad Location Information To: Alice From: Alice Unsupported: location IftheRegistrar Server is decliningusing protocol. [RFC3261] and theoriginal [M1] REGISTER Request, a 488 (Not Acceptable Here) isdocuments it references define theappropriate response. A Supported header with a location option tag indicates location was notkey establish mechanisms. Req. 6. (Single Message Transfer) In particular, for tracking of small target devices, thereason this message was declined. [Alternative M2design should allow a single message/packet transmission ofFigure 2] SIP/2.0 488 Not Acceptable Here To: Alice From: Alice Supported:location6. Special Considerations for Emergency Calls Emergency calling, suchas911, 112 and 999 calling today, necessitatesaUAC to understandcomplete transaction. This document specifies that thetypeLO be contained in the body ofcall ita single message, which may be fragmented via TCP, but isabout to generate with an INVITE message tostill not aPSAP. Firststreaming delivery. 8. Security Considerations Conveyance ofall, the purposephysical location ofcalling for emergency helpa UAC is problematic for many reasons. This document calls for that conveyance toget someone to respond to the UAC's location, therefore, location MUSTnormally beincluded in the INVITE, if known by the UAC. The emergency services community strongly prefers thataccomplished through secure messagerouting occur in the network with the freshest available Public Safety Answering Point (PSAP) information. Message routing, in this context,body meanschoosing which SIP(S)-URI to place in the Request-URI field of the status line. If(like S/MIME or TLS). In cases where aUAC knows itsession set-up isgenerating an emergency request towards a PSAP, there MAY be unique message handling characteristics that diminishrouted based on thelevel of confidentialitylocation of thelocation information withinUAC initiating the session or SIPmessage(s). ThisMESSAGE, securing the location with an end-to-end mechanism such as S/MIME isbecause emergency call routing requires proxiesproblematic, due toknowthelocationprobability of a proxy from requiring themessage originating UAC in orderability tomake a decision on whereread that information to route themessage.message appropriately. Thisis because emergency calls are directed tomeans thePSAP local touse of S/MIME may not be possible. This leaves location information of thecaller's location. A proxy performing this function requires thatcaller available in each proxy through tolearnthelocation of the UAC during message processing. HowPSAP. This may not be amessage is routed based on the location of the UAC, and if and by how much the level of confidentialityperfect solution, but may be a pill we need to swallow to enable this functionality. A bad implementation of SIP locationinformation is diminished when calling for emergency help are both out of scope of this document. Hop-by-hop confidentiality mechanisms, as defined in [RFC3261] MUST be attempted initially byconveyance would have a UACthat includes location. Local configuration MAY allow a subsequent retry, after a security related failure, to besend location in cleartext, without hop-by-hopconfidentiality.confidentiality, or have any SIPelements MUST obeyelement along therules set forth in [RFC3261] regarding maintaining hop-by-hop confidentiality when apath towards the PSAP alter the transport of any messageusing a SIPS-URI. While many jurisdictions force a user to reveal theircarrying locationduring an emergency call set-up, there is a small, but real, number of jurisdictions that allow a user to configure their calling devicetodisable providing location, even during emergency calling. This capability MUSTbeconfigurable, but is not RECOMMENDED as the default configuration of any UA. Local policies will dictate this ability. 7. Meeting RFC3693 Requirements Section 7.2 of [RFC3693] details the requirements of a "using protocol". They are: Req. 4.without hop-by-hop confidentiality between elements. Theusing protocol has to obey the privacy and security instructions coded in the Location Object andlatter would be inthe corresponding Rules regarding the transmission and storageclear violation of RFC3261 rules surrounding theLO.use of a SIPS-URI. 9. IANA Considerations Thisdocument requires, in Section 3, thatsection defines one new SIPentities sending or receiving location MUST obey such instructions. Req. 5. The using protocol will typically facilitate that the keys associated with the credentials are transported to the respective parties, that is, key establishment is the responsibility of the using protocol. [RFC3261]header, one new option tag, and one new 4XX error response code within thedocuments it references define the key establish mechanisms. Req. 6. (Single Message Transfer) In particular, for trackingsip-parameters section ofsmall target devices,IANA. [NOTE: RFC XXXX denotes this document]. 9.1 IANA Registration for thedesign should allow a single message/packet transmissionSIP Location Header The SIP Location header is created by this document, with its definition and rules in Section 4 oflocation as a complete transaction. This document specifies thatthis document. 9.2 IANA Registration for New SIP Option Tag The SIP option tag "Location" is created by this document, with theLO be containeddefinition and rule inthe bodySection 4 ofa single message, which may be fragmented via TCP, but is still not a streaming delivery. 8. Open issuesthis document. 9.3 IANA Registration for Response Code 4XX Reference: RFC-XXXX (i.e. this document) Response code: 424 Default reason phrase: Bad Location Information This SIP Response code isa listdefined in section 4.2 ofopen issues that have not yet been addressedthis document. 10. Acknowledgements To Dave Oran for helping toconclusion: none 9. Security Considerations Conveyance of physical locationshape this idea. To Jon Peterson and Dean Willis on guidance ofa UAC is problematicthe effort. To Henning Schulzrinne, Jonathan Rosenberg, Dick Knight, Mike Hammer, Paul Kyzivat, Jean-Francois Mule, Hannes Tschofenig, Marc Linsner, Jeroen van Bemmel and Keith Drage for constructive feedback. 11. References 11.1 References - Normative [RFC3261] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, May 2002. [RFC3693] J. Cuellar, J. Morris, D. Mulligan, J. Peterson. J. Polk, "Geopriv Requirements", RFC 3693, February 2004 [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate [RFC4119] J. Peterson, "draft-ietf-geopriv-pidf-lo-03", Internet Draft, Sept 2004, work in progress [RFC3428] B. Campbell, Ed., J. Rosenberg, H. Schulzrinne, C. Huitema, D. Gurle, "Session Initiation Protocol (SIP) Extension for Instant Messaging" , RFC 3428, December 2002 [RFC2392] E. Levinson, " Content-ID and Message-ID Uniform Resource Locators", RFC 2393, August 1998 [RFC2616] R. Fielding, J. Gettys, J., Mogul, H. Frystyk, L., Masinter, P. Leach, T. Berners-Lee, "Hypertext Transfer [RFC3311] J. Rosenberg, "The Session Initiation Protocol (SIP) UPDATE Method", RFC 3311, October 2002 11.2 References - Informative [RFC3825] J. Polk, J. Schnizlein, M. Linsner, "Dynamic Host Configuration Protocol Option for Coordinate-based Location [ID-CIVIC] H. Schulzrinne, " Dynamic Host Configuration Protocol (DHCPv4 and DHCPv6) Option for Civic Addresses Configuration Information ", draft-ietf-geopriv-dhcp-civil-09, "work in progress", January 2006 Author Information James Polk Cisco Systems 3913 Treemont Circle 33.00111N Colleyville, Texas 76034 96.68142W Phone: +1-817-271-3552 Email: jmpolk@cisco.com Brian Rosen 470 Conrad Dr. 40.70497N Mars, PA 16046 80.01252W US Phone: +1 724 382 1051 Email: br@brianrosen.net Appendix A. Changes from Prior Versions [NOTE TO RFC-EDITOR: If this document is to be published as an RFC, this Appendix is to be removed prior to that event.] This is a list of the changes that have been made from the SIP WG version -02 to this version -03: - general clean-up of some of the sections - removed the message examples from the UPDATE, MESSAGE and REGISTER sections, as these seemed to be making the doc less readable, and not more readable - removed the "unknown" option tag, as it was not needed with a certain combination of the Supported and Location headers - clarified the location option tag usage in Supported, Require, Unsupported, and that it shouldn't be used in Proxy-Require, and why not. - Added a basic message flow to the basic operation section (Section 4) to aid in understanding of this SIP extension. - Added a message routing flow, which is based on the location of the requestor to show how a SIP server can make a routing decision to a destination based on where the UAC is. - Articulated how a UAS concludes a UAC understands this extension, yet does not know its location to provide to the UAS. This is helpful in those times where an intermediary will act differently based on whether or not a UAC understands this extension, and whether or not the UAC includes its location in the request. - Corrected the erroneous text regarding an Unsupported header being in a 424 response. It belongs in a 420 response. (Section 5.1) - Corrected the BNF (I hope) - Corrected some text in Section 5 that read like this document was an update to RFC 3261. This is a list of the changes that have been made from the SIP WG version -01 to this version -02: - streamlined the doc by removing text (ultimately removing 42 pages of text). - Limited the scope of this document to SIP conveyance, meaning only how SIP can push location information. - reduced emergency calling text to just a few paragraphs now that the ECRIT WG is taking most of that topic on. - greatly reduced the number of requirements in this version. - changed the requirements groups from "UA-to-UA", "UA-to-Proxy", etc to "UAC Reqs", "UAS-Reqs" and "Proxy-Reqs" to focus on what is being asked of each SIP element. - Removed the full SIP message examples. - completed the ABNF for the Location header, including a cid-url to point at a message body part to help in parsing for location. - Deleted the call for a new 425 (Retry Location) response code, as it appears this can easily be used to spoof a UA into providing where it is inadvertently, even if the intent is legitimate by the UAC. This is a list of the changes that have been made from the SIP WG version -00 to this version -01: - cleaned up a lot of loose ends in the text - created a new Location header to convey manyreasons.means (location is in the body - even if not viewable, which location format is present, which format is requested in a query, how to request more than one location format in a query, whether the UAC understands location at all, if the UA knows its location, how to push location from one UA to through a second to a third UA, etc). - added the ability to convey location by-reference, but only under certain conditions. - Added support for the OPTIONS Request to query a server for the UAC's location, through the use of the new Location header. - moved both new Response code sections forward in the document for their meaning to be clearer, earlier for necessary discussion. - Changed the message flows to only have the pertinent message headers shown for brevity. - Added text to the SUB/NOT section showing how and why the location of a UA can be refreshed or updated with an interval, or by a trigger. This is a list of the changes that have been made from the SIPPING WG version -02 to this SIP WG item document version -00: - Changed which WG this document is in from SIPPING to SIP due to the extension of the protocol with new Response codes (424 and 425) for when there is an error involving the LO message body. - Moved most of the well formed SIP messages out of the main body of this document and into separate appendixes. This should clean up the document from a readability point of view, yet still provide the intended decode examples to readers of this document who wish that level of detail per flow. The first few flows still have the decoded SIP messages (unencrypted and encrypted). - Removed some flow examples which no longer made sense - Changed all references of "ERC" (Emergency Response Center) to "PSAP" (Public Safety Answering Point) as a result of discussion within the new ECRIT WG to define a single term Thisdocument calls foris a list of the changes thatconveyancehave been made from the sipping- 01 working group version of this effort tonormally be accomplished through securethe sipping-02 version: - added requirements for 2 new 4XX error responses (Bad Location Information) and (Retry Location Body) - added "Bad Location Information" as section 8.6 - added "Retry Location Body " as section 9.3 - added support for session mode to cover packet sizes larger than the single packet limit of 1300 bytes in the message bodymeans (like S/MIME or TLS). In cases where- added requirement for asession set-upSIP entity to SUBSCRIBE to another for location information - added SUBSCRIBE and NOTIFY as section 8.5 - added requirement to have user turn off any tracking created by subscription - removed doubt about which method to use for updating location after a INVITE isrouted based on thesent (update) - cleaned up which method is to be used if there is no dialog existing (message) - removed use of reINVITE to convey location - clarified that UAs include <provided-by> element of PIDF-LO when placing an emergency call (to inform PSAP who supplied Location information) - updated list of open issues - added to IANA Considerations section for theUAC initiatingtwo new 4XX level error responses requested in thesession orlast meeting This is a list of the changes that have been made from the sipping- 00 working group version of this ID to the sipping-01 version: - Added the offered solution in detail (with message flows, appropriate SIPMESSAGE, securing theMethods for location conveyance, and - Synchronized the requirements here withan end-to-end mechanism such as S/MIME is problematic, duethose from the Geopriv Working Group's (attempting to eliminate overlap) - Took on theprobabilitytask ofa proxymaking this effort the SIP "using protocol" specification fromrequiringGeopriv's POV - Refined theability to read that informationOpen Issues section toroute the message appropriately. This meansreflect theuse of S/MIME mayprogress we've made here, and to indicate what we have discovered needs addressing, but has notbe possible.been to date. Thisleaves location informationis a list of thecaller available in each proxy throughchanges that have been made from the -01 individual submission version to thePSAP. This may not besipping-00 version of this ID: - Brian Rosen was brought on as aperfect solution, but may beco-author - Requirements that apill we need to swallow to enable this functionality. A bad implementationlocation header were negatively received in the previous version ofSIPthis document. AD and chair advice was to move all locationconveyance would haveinformation into aUAC send locationmessage body (and stay away from headers) - Added a section of "emergency call" specific requirements - Added an Open Issues section to mention what hasn't been resolved yet incleartext, without hop-by-hop confidentiality, orthis effort This is a list of the changes that haveany SIP element alongbeen made from thepath towardsindividual submission version -00 to thePSAP alter-01 version - Added the IPR Statement section - Adjusted a few requirements based on suggestions from thetransport of any message carrying locationMinneapolis meeting - Added requirements that the UAC is tobe without hop-by-hop confidentiality between elements. The latter would beinclude from where it learned its location inclear violationany transmission ofRFC3261 rules surroundingits LI - Distinguished theusefacts (known to date) that certain jurisdictions relieve persons of their right to privacy when they call aSIPS-URI. 10. IANA Considerations This section defines one new SIP header, two new option tags, and one new 4XX error response code within the sip-parameters section of IANA. [NOTE: RFC XXXX denotes this document]. 10.1 IANA Registration forPSAP, while other jurisdictions maintain a person's right to privacy, while still others maintain a person's right to privacy - but only if they ask that their service be set up that way. - Made theSIP Location Header The Location headerdecision that TLS iscreated by this document, with its definition and rules in Section 4 of this document. 10.2 IANA Registration for Two New SIP Option Tags Two new SIP option tags are created by this document, "Location" and "Unknown-location", withthedefinitions and rulessecurity mechanism foreachlocation conveyance inSection 4 of this document. 10.3 IANA Registration for Response Code 4XX Reference: RFC-XXXX (i.e. this document) Response code: 424 Default reason phrase: Bad Location Information 11. Acknowledgements To Dave Oranemergency communications (vs. S/MIME, which is still the mechanism forhelping to shape this idea. To Jon Peterson and Dean Willis on guidance ofUA-to-UA non-emergency location conveyance cases). - Added theeffort. To Henning Schulzrinne, Jonathan Rosenberg, Dick Knight, Mike HammerOpen Issue of whether a Proxy can insert location information into an emergency SIP INVITE message, andKeith Drage for constructive feedback. To Paul Kyzivat for inspiringsome of therecent text addressing lingering issuesopen questions surrounding theauthors could not resolve. To Jon Peterson for his guidance in this effort. 12. References 12.1 Referencesimplications of that action -Normative [RFC3261] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, May 2002. [RFC3693] J. Cuellar, J. Morris, D. Mulligan, J. Peterson. J. Polk, "Geopriv Requirements", RFC 3693, February 2004 [RFC2119] S. Bradner, "Key words for use in RFCsadded a few names toIndicate [RFC4119] J. Peterson, "draft-ietf-geopriv-pidf-lo-03", Internet Draft, Sept 2004, work in progress [RFC3428] B. Campbell, Ed., J. Rosenberg, H. Schulzrinne, C. Huitema, D. Gurle, "Session Initiation Protocol (SIP) Extension for Instant Messaging" , RFC 3428, December 2002 [RFC2392] E. Levinson, " Content-ID and Message-ID Uniform Resource Locators", RFC 2393, August 1998 [RFC3311] J. Rosenberg, "The Session Initiation Protocol (SIP) UPDATE Method", RFC 3311, October 2002 12.2 References - Informative [ID-Sess-Pol] J. Rosenberg, "Requirements for Session Policy fortheSession Initiation Protocol”, draft-ietf-sipping-session- policy-req-02", Internet Draft, July, 2004, "work in progress" [RFC3825] J. Polk, J. Schnizlein, M. Linsner, "Dynamic Host Configuration Protocol Option for Coordinate-based Location [ID-CIVIC] H. Schulzrinne, " Dynamic Host Configuration Protocol (DHCPv4 and DHCPv6) Option for Civic Addresses Configuration Information ", draft-ietf-geopriv-dhcp-civil-09, "work in progress", January 2006 Author Information James M. Polk Cisco Systems 3913 Treemont Circle 33.00111N Colleyville, Texas 76034 96.68142W Phone: +1-817-271-3552 Email: jmpolk@cisco.com Brian Rosen 470 Conrad Dr. 40.70497N Mars, PA 16046 80.01252W US Phone: +1 724 382 1051 Email: br@brianrosen.netacknowledgements section Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society.