draft-ietf-sip-location-conveyance-11.txt   draft-ietf-sip-location-conveyance-12.txt 
SIP Working Group James Polk SIP Working Group James Polk
Internet Draft Cisco Systems Internet Draft Cisco Systems
Expires: April 30, 2009 Brian Rosen Expires: May 19, 2009 Brian Rosen
Intended Status: Standards Track (PS) NeuStar Intended Status: Standards Track (PS) NeuStar
October 30, 2008 November 19, 2008
Location Conveyance for the Session Initiation Protocol Location Conveyance for the Session Initiation Protocol
draft-ietf-sip-location-conveyance-11.txt draft-ietf-sip-location-conveyance-12.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
months and may be updated, replaced, or obsoleted by other documents months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress." reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 30, 2009. This Internet-Draft will expire on May 19, 2009.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2008). Copyright (C) The IETF Trust (2008).
Abstract Abstract
This document defines an extension to the Session Initiation This document defines an extension to the Session Initiation
Protocol (SIP) to convey geographic location information from one Protocol (SIP) to convey geographic location information from one
SIP entity to another SIP entity. The extension covers end to end SIP entity to another SIP entity. The extension covers end to end
skipping to change at page 2, line 12 skipping to change at page 2, line 12
make routing decisions based on the location of the user agent make routing decisions based on the location of the user agent
clients. clients.
Table of Contents Table of Contents
1. Conventions and Terminology used in this document . . . . . . 2 1. Conventions and Terminology used in this document . . . . . . 2
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Overview of SIP Location Conveyance . . . . . . . . . . . . . 5 3. Overview of SIP Location Conveyance . . . . . . . . . . . . . 5
4. SIP Modifications for Geolocation Conveyance . . . . . . . . 7 4. SIP Modifications for Geolocation Conveyance . . . . . . . . 7
4.1 The Geolocation Header . . . . . . . . . . . . . . . . . 7 4.1 The Geolocation Header . . . . . . . . . . . . . . . . . 7
4.2 424 (Bad Location Information) Response Code . . . . . . 9 4.2 424 (Bad Location Information) Response Code . . . . . . 10
4.3 The Geolocation-Error Header . . . . . . . . . . . . . . 10 4.3 The Geolocation-Error Header . . . . . . . . . . . . . . 11
4.4 The 'geolocation' Option Tag . . . . . . . . . . . . . . 18 4.4 The 'geolocation' Option Tag . . . . . . . . . . . . . . 19
4.5 Using sip/sips/pres as a Dereference Scheme . . . . . . . 18 4.5 Using sip/sips/pres as a Dereference Scheme . . . . . . . 19
5. Geolocation Examples . . . . . . . . . . . . . . . . . . . . 20 5. Geolocation Examples . . . . . . . . . . . . . . . . . . . . 21
5.1 Location-by-value (Coordinate Format) . . . . . . . . . . 20 5.1 Location-by-value (Coordinate Format) . . . . . . . . . . 21
5.2 Location-by-reference . . . . . . . . . . . . . . . . . . 22 5.2 Location-by-reference . . . . . . . . . . . . . . . . . . 23
6. SIP Element Behavior . . . . . . . . . . . . . . . . . . . . 23 6. SIP Element Behavior . . . . . . . . . . . . . . . . . . . . 23
6.1 UAC Behavior . . . . . . . . . . . . . . . . . . . . . . 23 6.1 UAC Behavior . . . . . . . . . . . . . . . . . . . . . . 24
6.2 UAS Behavior . . . . . . . . . . . . . . . . . . . . . . 26 6.2 UAS Behavior . . . . . . . . . . . . . . . . . . . . . . 27
6.3 Proxy Behavior . . . . . . . . . . . . . . . . . . . . . 31 6.3 Proxy Behavior . . . . . . . . . . . . . . . . . . . . . 32
7. Geopriv Privacy Considerations . . . . . . . . . . . . . . . 34 7. Geopriv Privacy Considerations . . . . . . . . . . . . . . . 35
8. Security Considerations . . . . . . . . . . . . . . . . . . . 34 8. Security Considerations . . . . . . . . . . . . . . . . . . . 36
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 36 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 37
9.1 IANA Registration for New SIP Geolocation Header . . . . 36 9.1 IANA Registration for New SIP Geolocation Header . . . . 38
9.2 IANA Registration for New SIP 'geolocation' Option Tag . 36 9.2 IANA Registration for New SIP 'geolocation' Option Tag . 38
9.3 IANA Registration for New 424 Response Code . . . . . . . 36 9.3 IANA Registration for New 424 Response Code . . . . . . . 38
9.4 IANA Registration for New SIP Geolocation-Error Header . 36 9.4 IANA Registration for New SIP Geolocation-Error Header . 38
9.5 IANA Registration for New SIP Geolocation-Error Codes . . 37 9.5 IANA Registration for New SIP Geolocation-Error Codes . . 38
9.6 IANA Registration of LbyR Schemes . . . . . . . . . . . 37 9.6 IANA Registration of LbyR Schemes . . . . . . . . . . . 39
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 38 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 40
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 38 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.1 Normative References . . . . . . . . . . . . . . . . . 38 11.1 Normative References . . . . . . . . . . . . . . . . . 40
11.2 Informative References . . . . . . . . . . . . . . . . . 39 11.2 Informative References . . . . . . . . . . . . . . . . . 41
Author Information . . . . . . . . . . . . . . . . . . . . . 40 Author Information . . . . . . . . . . . . . . . . . . . . . 41
Appendix A. Requirements for SIP Location Conveyance . . . . 40 Appendix A. Requirements for SIP Location Conveyance . . . . 42
Appendix B. Example of Civic-based PIDF-LO w/ S/MIME . . . . 42 Appendix B. Example of Civic-based PIDF-LO w/ S/MIME . . . . 44
Intellectual Property and Copyright Statements . . . . . . . 44 Intellectual Property and Copyright Statements . . . . . . . 45
1. Conventions and Terminology used in this document 1. Conventions and Terminology used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described "OPTIONAL" in this document are to be interpreted as described
in [RFC2119]. in [RFC2119].
The following terms and acronyms used throughout this document are The following terms and acronyms used throughout this document are
defined here: defined here:
skipping to change at page 4, line 28 skipping to change at page 4, line 28
2. Introduction 2. Introduction
This document describes how Location can be "conveyed" (that is, This document describes how Location can be "conveyed" (that is,
transmitted over the Internet) from one SIP user agent (UA), or in transmitted over the Internet) from one SIP user agent (UA), or in
some circumstances, a proxy server acting in support of a UA, to some circumstances, a proxy server acting in support of a UA, to
another entity using SIP [RFC3261]. Here "Location" is a another entity using SIP [RFC3261]. Here "Location" is a
description of the physical geographical area where something description of the physical geographical area where something
currently exists. The phrase "location conveyance" describes currently exists. The phrase "location conveyance" describes
scenarios in which a SIP user agent client (UAC) is informing a user scenarios in which a SIP user agent client (UAC) is informing a user
agent server (UAS), or intermediate SIP server where the UAC is. A agent server (UAS) or intermediate SIP server where the UAC is. A
superset of this can also be true as well, in which one UA(1) is superset of this can also be true as well, in which one UA (UA-1) is
telling another UA(2) where another Target is, meaning not telling another UA-2 where another Target is, meaning not
necessarily where UA(1) is. The key to this is whether UA(1) has necessarily where UA-1 is. The key to this is whether UA-1 has
permission to retransmit that other Target's location. If yes, then permission to retransmit that other Target's location. If yes, then
this is valid. If no, then this is breaking a fundamental rule this is valid. If no, then this is breaking a fundamental rule
within this extension. within this extension.
Location Conveyance is different from a UAC seeking the location the Location Conveyance is different from a UAC seeking the location the
UAS. Location conveyance is a 'sending location out in the request' UAS. Location conveyance is a 'sending location out in the request'
model, where 'asking that someone else's location be in a response' model, where 'asking that someone else's location be in a response'
is not discussed here. is not discussed here.
Geographic location in the IETF is discussed in RFC 3693 (Geopriv Geographic location in the IETF is discussed in RFC 3693 (Geopriv
skipping to change at page 7, line 8 skipping to change at page 7, line 7
This document creates a new option tag: geolocation, to indicate This document creates a new option tag: geolocation, to indicate
support for this extension by UAs. support for this extension by UAs.
A new error response (424 Bad Location Information) is also defined A new error response (424 Bad Location Information) is also defined
in this document. Within this response is a new header indicating in this document. Within this response is a new header indicating
location-based errors, call the Geolocation-Error header. This location-based errors, call the Geolocation-Error header. This
header has various codes that provide additional information about header has various codes that provide additional information about
the type of location error experienced by a Location Recipient. the type of location error experienced by a Location Recipient.
Both new headers, the header parameters, the new option tag, the new The new headers, the header parameters, the new option tag, the new
error response, and Geolocation-Error codes, which are defined in error response, and Geolocation-Error codes, which are defined in
Section 4., are IANA registered by this document. Section 4., are IANA registered by this document.
4. SIP Modifications for Geolocation Conveyance 4. SIP Modifications for Geolocation Conveyance
The following are sections detail the standards track modifications The following are sections detail the standards track modifications
to SIP for Location Conveyance. to SIP for Location Conveyance.
4.1 The Geolocation Header 4.1 The Geolocation Header
This document defines and IANA registers a new SIP header: This document defines and IANA registers a new SIP header:
Geolocation, with the following ABNF [RFC5234]: Geolocation, with the following ABNF [RFC5234]:
Geolocation = "Geolocation" HCOLON (locationValue *(COMMA Geolocation = "Geolocation" HCOLON (locationValue *(COMMA
locationValue)) locationValue)) (COMMA retrans-param)
locationValue = LAQUOT locationURI RAQUOT *(SEMI geoloc-param) locationValue = LAQUOT locationURI RAQUOT *(SEMI geoloc-param)
locationURI = sip-URI / sips-URI / pres-URI locationURI = sip-URI / sips-URI / pres-URI
/ cid-url ; (from RFC 2392) / cid-url ; (from RFC 2392)
/ absoluteURI ; (from RFC 3261) / absoluteURI ; (from RFC 3261)
geoloc-param = "inserted-by" EQUAL geoloc-inserter geoloc-param = "inserted-by" EQUAL geoloc-inserter
/ "used-for-routing" / "used-for-routing"
/ generic-param ; (from RFC 3261) / generic-param ; (from RFC 3261)
geoloc-inserter = DQUOTE hostport DQUOTE geoloc-inserter = DQUOTE hostport DQUOTE
/ gen-value ; (from RFC 3261) / gen-value ; (from RFC 3261)
retrans-param = "routing-allowed" EQUAL "yes" / "no"
sip-URI, sips-URI and absoluteURI are defined according to RFC 3261. sip-URI, sips-URI and absoluteURI are defined according to RFC 3261.
The pres-URI is defined in RFC 3859 [RFC3859]. The pres-URI is defined in RFC 3859 [RFC3859].
The cid-url is defined in [RFC2392] to locate message body The cid-url is defined in [RFC2392] to locate message body
parts. This URI type MUST be present in a SIP request if location parts. This URI type MUST be present in a SIP request if location
is transmitted LbyV only. is transmitted LbyV only.
Other protocols used in the Location URI MUST be reviewed against Other protocols used in the Location URI MUST be reviewed against
the RFC 3693 criteria for a Using Protocol. the RFC 3693 criteria for a Using Protocol.
The Geolocation header MAY have one or more locationValues. SIP The Geolocation header MAY have one or more locationValues. SIP
servers inserting a locationValue MUST add the new value to the end servers inserting a locationValue MUST add the new value to the end
of the header value, such that the last locationValue in the header of the header value, such that the last locationValue in the header
is the most recent one added to the message. is the most recent one added to the message. Placement of the
"routing-allowed" parameter does not matter within the Geolocation
header.
A locationValue has the following independent header parameters, A locationValue has the following independent header parameters,
o the "inserted-by=" parameter provides the hostport o the "inserted-by=" parameter provides the hostport
(alice.example.com -- which is the same as the "sent-by" (alice.example.com -- which is the same as the "sent-by"
parameter in a Via header, with or without a port number) of the parameter in a Via header, with or without a port number) of the
SIP entity that inserted this locationValue into the request. If SIP entity that inserted this locationValue into the request. If
a Location Recipient has determined a supplied location is in a Location Recipient has determined a supplied location is in
error, as there can be more than one in any request, the error, as there can be more than one in any request, the
"inserted-by=" parameter is copied into the locationErrorValue in "inserted-by=" parameter is copied into the locationErrorValue in
the response indicating the location error, and to whom the error the response indicating the location error, and to whom the error
is for. Hence, this "inserted-by=" parameter MUST be present in is for. Hence, this "inserted-by=" parameter MUST be present in
each locationValue. If an entity receives an Geolocation-Error each locationValue. If an entity receives an Geolocation-Error
skipping to change at page 8, line 32 skipping to change at page 8, line 36
Each locationValue MUST contain exactly one "inserted-by" parameter, Each locationValue MUST contain exactly one "inserted-by" parameter,
indicating which SIP entity added the locationValue to the SIP indicating which SIP entity added the locationValue to the SIP
request. request.
There MUST NOT be more than one "inserted-by=" parameter or one There MUST NOT be more than one "inserted-by=" parameter or one
"used-for-routing" parameter in the same locationValue. However, "used-for-routing" parameter in the same locationValue. However,
there can be more than one locationValue in the same Geolocation there can be more than one locationValue in the same Geolocation
header. header.
The "routing-allowed" header parameter is a global parameter over
any (and all/each) locationValues in the Geolocation header. This
is the reason why the placement of the header parameter is outside
any locationValue, and appears only once in the header value.
This header parameter has values "=yes" or "=no" only. When this
parameter "=yes", any locationValue can be used for routing
decisions along the downstream signaling path by intermediaries.
When this parameter "=no", this means no locationValue (inserted by
the originating UAC or any (or subsequent) intermediary(ies) along
the signaling path) can be used by a SIP intermediary to make
routing decisions. This behavior MUST be adhered to.
The practical implication is that when the "routing-allowed"
parameter is set to "no", if an LbyV is present in the SIP request,
intermediaries needn't bother viewing the location (because they are
not to do anything with it), and if an LbyR is present, do not
bother to dereference it.
The default behavior when this header parameter is not present in a
message is to treat the SIP request as if the parameter were present
and its value is set to "no".
This document defines the Geolocation header as valid in the This document defines the Geolocation header as valid in the
following SIP requests: following SIP requests:
INVITE [RFC3261], REGISTER [RFC3261], INVITE [RFC3261], REGISTER [RFC3261],
OPTIONS [RFC3261], BYE [RFC3261], OPTIONS [RFC3261], BYE [RFC3261],
UPDATE [RFC3311], INFO [RFC2976], UPDATE [RFC3311], INFO [RFC2976],
MESSAGE [RFC3428], REFER [RFC3515], MESSAGE [RFC3428], REFER [RFC3515],
SUBSCRIBE [RFC3265], NOTIFY [RFC3265], SUBSCRIBE [RFC3265], NOTIFY [RFC3265],
PUBLISH [RFC3903] and PRACK [RFC3262] PUBLISH [RFC3903] and PRACK [RFC3262]
skipping to change at page 9, line 22 skipping to change at page 9, line 47
NOT modify any pre-existing locationValue, including any associated NOT modify any pre-existing locationValue, including any associated
header parameters within an existing Geolocation header value, header parameters within an existing Geolocation header value,
unless one of the existing locationValues is used to retarget the unless one of the existing locationValues is used to retarget the
request towards a new destination UAS. This is discussed in section request towards a new destination UAS. This is discussed in section
6.3. 6.3.
[RFC3261] states message bodies cannot be added by proxies. [RFC3261] states message bodies cannot be added by proxies.
Therefore, any Geolocation header field added by a proxy MUST be in Therefore, any Geolocation header field added by a proxy MUST be in
the form of an LbyR URI, in its own locationValue header value. the form of an LbyR URI, in its own locationValue header value.
Adding a new locationValue to an in-transit request SHOULD NOT A SIP proxy MAY add a Geolocation header if one is not present, in
occur for at least two reasons the case that the "routing-allowed" parameter is not yet present in
the SIP request. The value of this parameter MUST be set to "no"
when added by a proxy.
Adding a new locationValue to an in-transit request SHOULD NOT
occur for at least two reasons,
#1 - SIP Servers are not the best Sighters, as defined by [RFC3693], #1 - SIP Servers are not the best Sighters, as defined by [RFC3693],
of geographically where a UAC can be; meaning the location of geographically where a UAC can be; meaning the location
information is not necessarily the greatest. There MAY be information is not necessarily the greatest. There MAY be
exceptions, but this SHOULD be the rule of thumb. exceptions, but this SHOULD be the rule of thumb.
#2 - without appropriate caution to the fact that Location #2 - without appropriate caution to the fact that Location
Recipients might not understand how to process more than one Recipients might not understand how to process more than one
location, given this document's limited guidance as to what a location, given this document's limited guidance as to what a
Location Recipient should do when receiving more than one Location Recipient should do when receiving more than one
location (i.e., currently no priority instructions are given location (i.e., currently no priority instructions are given
skipping to change at page 15, line 20 skipping to change at page 15, line 53
Geolocation-Error: 200; code="Retry Location Later"; Geolocation-Error: 200; code="Retry Location Later";
node="bob.example.com"; node="bob.example.com";
inserter="alice.example.com"; inserter="alice.example.com";
This category covers location errors 2XX; meaning there MAY be more This category covers location errors 2XX; meaning there MAY be more
specific errors added to this category in future effort(s). The specific errors added to this category in future effort(s). The
same basic actionable reaction is expected by a location "inserter=" same basic actionable reaction is expected by a location "inserter="
entity to any 2XX location error. entity to any 2XX location error.
If a SIP request has the "routing-allowed" header parameter set to
"no", and the SIP server believes it requires location within the
request in order to service the request properly, a 2XX location
error is sent towards the recipient. This error is the proper error
even when there is no location in the SIP request, but the SIP
request contains a policy statement that location is not to be
viewed during transit towards the ultimate destination.
4.3.3 Location Error: 300 "Retry Location Later" (device updated 4.3.3 Location Error: 300 "Retry Location Later" (device updated
location) location)
The location error 300 "Retry Location Later" (device updated The location error 300 "Retry Location Later" (device updated
location) indicates to a Geolocation-Error recipient that what they location) indicates to a Geolocation-Error recipient that what they
supplied in a request, as far as location is concerned, cannot be supplied in a request, as far as location is concerned, cannot be
processed at this time, but to retry this request, once the location processed at this time, but to retry this request, once the location
information has been updated, in a new SIP request. information has been updated, in a new SIP request.
Action(s) to be taken by Geolocation-Error receiver to a 3XX: Action(s) to be taken by Geolocation-Error receiver to a 3XX:
skipping to change at page 16, line 22 skipping to change at page 17, line 11
inserter="alice.example.com"; inserter="alice.example.com";
This category covers location errors 3XX; meaning there MAY be more This category covers location errors 3XX; meaning there MAY be more
specific errors added to this category in future effort(s). The specific errors added to this category in future effort(s). The
same basic actionable reaction is expected by a location "inserter=" same basic actionable reaction is expected by a location "inserter="
entity to any 3XX location error. entity to any 3XX location error.
4.3.4 Location Error: 400 "Permission Necessary" 4.3.4 Location Error: 400 "Permission Necessary"
The location error 400 "Permission Necessary" indicates to a The location error 400 "Permission Necessary" indicates to a
Geolocation-Error recipient that when they set a particular SIP Geolocation-Error recipient that when they sent a particular SIP
request, they included location in that request without giving request, they included location in that request without giving
permission in the request for a (or any) SIP server to look at that permission in the request for a (or any) SIP server to look at that
location information to route the message at the intended recipient location information (i.e., the <retransmission-allowed> was set to
(i.e., the UAS, or the called party). "no") to route the message at the intended recipient (i.e., the UAS,
or the called party).
Action(s) to be taken by Geolocation-Error receiver to a 4XX: Action(s) to be taken by Geolocation-Error receiver to a 4XX:
4XX location errors indicate to the UAC (i.e., the calling 4XX location errors indicate to the UAC (i.e., the calling
party) that they need to grant permission to a SIP party) that they need to grant permission to a SIP
intermediary server to look at the supplied location to intermediary server to look at the supplied location to
complete the message routing. This indication MUST require complete the message routing. This indication MUST require
human user intervention, as the rulemaker of the policy on human user intervention, as the rulemaker of the policy on
whether or not their location is to be revealed. whether or not their location is to be revealed.
The user of the location "inserter=" device can choose to grant The user of the location "inserter=" device can choose to grant
skipping to change at page 23, line 30 skipping to change at page 24, line 20
UAC wants to make sure only the destination UAS can read the UAC wants to make sure only the destination UAS can read the
PIDF-LO. S/MIME can be used for just signing, and not encrypting, a PIDF-LO. S/MIME can be used for just signing, and not encrypting, a
PIDF-LO message body to ensure the integrity of the PIDF-LO is PIDF-LO message body to ensure the integrity of the PIDF-LO is
maintained. maintained.
6.1 UAC Behavior 6.1 UAC Behavior
A UAC can send location in a SIP request, either because it is A UAC can send location in a SIP request, either because it is
expected to facilitate location-based routing of the request, or expected to facilitate location-based routing of the request, or
spontaneously (i.e., a purpose not defined in this document but spontaneously (i.e., a purpose not defined in this document but
known to the UAC). Alice communicating to Bob her location in a SIP known to the UAC). Alice communicating her location to Bob in a SIP
Message request is a simple example of this. If Alice wanted to request is a simple example of this. If Alice wanted to include her
include her location as a message body in an INVITE that also has an location as a message body in an INVITE that also has an SDP message
SDP message body, the Content-Type: Multipart MUST be supported by body, the Content-Type: Multipart MUST be supported by both UAC and
both UAC and UAS. Multipart comes in many forms (/mixed, UAS. Multipart comes in many forms (/mixed, /alternative, etc), and
/alternative, etc), and this document does not limit which type of this document does not limit which type of Multipart is used, though
Multipart is used, though future documents MAY specify or limit future documents MAY specify or limit Multipart to a subset of all
Multipart to a subset of all the choices for a given use. the choices for a given use.
A UAC conveying location MUST include a locationValue in a A UAC conveying location MUST include a locationValue in a
Geolocation header (see section 4.1) with either an LbyV indication Geolocation header (see section 4.1) with either an LbyV indication
(a cid-URL), or an LbyR. An LbyV message body sent without a (a cid-URL), or an LbyR. An LbyV message body sent without a
Geolocation header field MUST NOT occur. The UAC supporting this Geolocation header field MUST NOT occur. The UAC supporting this
extension MUST include a Supported header with the 'geolocation' extension MUST include a Supported header with the 'geolocation'
option tag. option tag.
More than one location format (civic and coordinate) can be included More than one location format (civic and coordinate) can be included
in the same message body part, but all location parts of the same in the same message body part, but all location parts of the same
skipping to change at page 24, line 52 skipping to change at page 25, line 42
Geolocation: <cid:alice123@atlanta.example.com>; Geolocation: <cid:alice123@atlanta.example.com>;
inserted-by="alice@atlanta.example.com" inserted-by="alice@atlanta.example.com"
If a UAC does not learn and store its location locally (a GPS chip) If a UAC does not learn and store its location locally (a GPS chip)
or from the network (DHCP or LLDP-MED), the UAC MAY learn its LbyR or from the network (DHCP or LLDP-MED), the UAC MAY learn its LbyR
URI (from DHCP for example). If the latter is the case, the UAC MAY URI (from DHCP for example). If the latter is the case, the UAC MAY
SUBSCRIBE to this LbyR URI, using the 'presence' event package, to SUBSCRIBE to this LbyR URI, using the 'presence' event package, to
get and store its own location. get and store its own location.
The act of dereferencing a Target's LbyR will be challenged by the The act of dereferencing a Target's LbyR will be challenged by the
LIS were this location record is - providing a good deal of LIS where this location record is - providing a good deal of
protection, SHOULD still be treated as equivalent to possession of protection, SHOULD still be treated as equivalent to possession of
the location information itself and thus TLS SHOULD be used when the location information itself and thus TLS SHOULD be used when
transmitting LbyR hop-by-hop along the path to the Location transmitting LbyR hop-by-hop along the path to the Location
Recipient, for protection reasons. This is not to be confused with Recipient, for protection reasons. This is not to be confused with
a possession model, in which possessing the LbyR grants a possession model, in which possessing the LbyR grants
authorization to dereference the URI. Any entity dereferencing the authorization to dereference the URI. Any entity dereferencing the
LbyR MUST pass whatever authentication and authorization rules are LbyR MUST pass whatever authentication and authorization rules are
on the LIS for this location record. The Rulemaker from [RFC3693] on the LIS for this location record. The Ruleholder from [RFC3693]
is still very much in control - for any entity possessing the LbyR. is still very much in control - for any entity possessing the LbyR.
If the Location Generator wishes to control whether any location
included in the SIP request, or added along the signaling path of
this request, can be viewed for routing decisions, the Location
Generator adds a Geolocation header value including the
"routing-allowed=no" parameter. This is header parameter provide
specific policy rules for each locationValue (if there is more than
one inserted along the signaling path) within the SIP request. A
UAC SHOULD include the "routing-allowed" header parameter, with or
without a locationValue, to each SIP request supporting this
specification to ensure the UAC's policy for intermediaries which
might add a locationValue of the Target downstream. The UAC
understands that the default behavior for SIP servers is to consider
this value to be present, and that it is set to "no".
The UAC MUST understand there is no feedback mechanism to inform the
Target if a SIP server has included a locationValue downstream.
If a UAC has already conveyed location in the original request of a If a UAC has already conveyed location in the original request of a
transaction, and wants to update its location information (for transaction, and wants to update its location information (for
whatever reason) after the original request is sent, or after a whatever reason) after the original request is sent, or after a
dialog is created (regardless of how the UAC conveyed location dialog is created (regardless of how the UAC conveyed location
previously, as an LbyV or LbyR) - this is done by a UAC sending an previously, as an LbyV or LbyR) - this is done by a UAC sending an
UPDATE request [RFC3311] containing the geolocation option tag and UPDATE request [RFC3311] containing the geolocation option tag and
Geolocation header with the new locationValue (LbyV or LbyR) to the Geolocation header with the new locationValue (LbyV or LbyR) to the
original destination UAS. original destination UAS.
A PIDF includes identity information. It is possible for the A PIDF includes identity information. It is possible for the
skipping to change at page 31, line 35 skipping to change at page 32, line 42
It is allowed, but NOT RECOMMENDED, for more than one SIP element to It is allowed, but NOT RECOMMENDED, for more than one SIP element to
insert location into a request along its path. As described earlier insert location into a request along its path. As described earlier
in this document, each insertion of location into a SIP request is in this document, each insertion of location into a SIP request is
accompanied by a new locationValue in a Geolocation header. Also accompanied by a new locationValue in a Geolocation header. Also
described earlier, each locationValue MUST contain an "inserted-by=" described earlier, each locationValue MUST contain an "inserted-by="
value indicating to a Location Recipient which host inserted value indicating to a Location Recipient which host inserted
location into a particular request. location into a particular request.
However, if location is already in a SIP request, a SIP server However, if location is already in a SIP request, a SIP server
SHOULD NOT add another LbyR that identifies the same target in the SHOULD NOT add another LbyR that identifies the same target in the
PIDF-LO (in the <tuple-id> element) to the same request. This will PIDF-LO (in the <dm:device id> element) to the same request. This
likely cause confusion at the Location Recipient as to which to use. will likely cause confusion at the Location Recipient as to which to
use.
A proxy is permitted to read any locationValue, and the associated A proxy is permitted to read any locationValue, and the associated
body, if not S/MIME protected, in transit if present, and can use body, if not S/MIME protected, in transit if present, and can use
the contents of the header field to make location-based retargeting the contents of the header field to make location-based retargeting
decisions, if retargeting requests based on location is a function decisions, if retargeting requests based on location is a function
of that proxy. Retargeting is defined in [RFC3261]. of that proxy. Retargeting is defined in [RFC3261]. However, if
the Geolocation header parameter "routing-allowed" is present and
set to "no", or is not present (knowing the default behavior is "no"
if not present, with or without a Geolocation header), SIP servers
MUST NOT view the contents of the LbyV message body. Further, SIP
servers MUST NOT attempt to dereference an LbyR. This is because
the SIP request, likely from the originating UAC did not give the
SIP server permission to view the location within the SIP request.
If the Geolocation header parameter "routing-allowed" is present in
a SIP request, the value MUST NOT be changed during processing of
the request. If the Geolocation header parameter "routing-allowed"
is not present, SIP servers are to treat the location within the
request as if the header parameter "routing-allowed" were present
and set to "no".
In the spirit of informing implementers of B2BUAs and SBCs, each
server type really should adhere to the above proxy guidance with
respect to the "Routing-allowed" header parameter, understanding
that there are no IETF police, and the specific behaviors of these
types of SIP servers cannot presently be defined. In other words, if
the particular type of SIP server mentioned here is not the ultimate
destination of this SIP request and supports this SIP extension,
each policy rule within the Geolocation header needs to remain
intact and unchanged.
No type of SIP server can delete a "Routing-allowed" header
parameter, but if one is not yet present, any SIP server MAY add a
"Routing-allowed" header parameter with the value set to "no" only.
More than one Geolocation locationValue in a message is permitted, More than one Geolocation locationValue in a message is permitted,
but can cause confusion at the recipient. If a proxy chooses to add but can cause confusion at the recipient. If a proxy chooses to add
a locationValue to a Geolocation header, which would be a local a locationValue to a Geolocation header, which would be a local
policy decision, the new locationValue MUST be added to the end of policy decision, the new locationValue MUST be added to the end of
the header (after previous locationValue(s)). This is done to the header (after previous locationValue(s)). This is done to
create an order of insertion of locationValues along the path. create an order of insertion of locationValues along the path.
Proxies MUST NOT modify the order of locationValues in a geolocation Proxies MUST NOT modify the order of locationValues in a geolocation
header. header.
 End of changes. 24 change blocks. 
57 lines changed or deleted 141 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/