One document matched: draft-polk-sip-location-get-00.txt
SIP WG James Polk
Internet-Draft Cisco Systems
Expires: January 7, 2009 July 7, 2008
Intended Status: Standards Track (PS)
Updates: [ID-SIP-CON] (if published as an RFC)
Session Initiation Protocol (SIP) Location Get Function
draft-polk-sip-location-get-00
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 on January 7, 2009.
Copyright Notice
Copyright (C) The IETF Trust (2008).
Abstract
This document defines how a watcher seeks the geographic location
information from presentity. SIP Location Conveyance defines how
location is sent from one entity to another unsolicited. This
document specifies how a watcher, i.e., a Location Target, requests
for specific geolocation state information of a presentity, in
addition to the details within the subscription such as the format
(geo or civic) returned and the frequency of updated location from
the presentity.
Polk Expires January 7, 2009 [Page 1]
Internet-Draft SIP Get Location Function July 2008
Table of Contents
1. Conventions and Terminology used in this Document . . . . . . 2
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Overview of Location Get Operation . . . . . . . . . . . . . 7
4. Life of Subscription verses Number of NOTIFYs within
Subscription. . . 10
5. Location Get Defined . . . . . . . . . . . . . . . . . . . . 11
5.1 Subscribing for Location . . . . . . . . . . . . . . . . 11
5.2 Notifications of Location . . . . . . . . . . . . . . . . 12
5.3 Sending and Receiving Response Codes to Location
Subscriptions. . . 13
6. Presence Filters for the Subscription Get Function . . . . . 14
6.1 Filters for the Subscription Get Function . . . . . . . . 17
6.2 Filters Examples for the Subscription Get Function . . . 17
7. Security considerations . . . . . . . . . . . . . . . . . . . 17
8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 17
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.1. Normative References . . . . . . . . . . . . . . . . . 17
10.2. Informative References . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 18
Full Copyright Statement and Intellectual Property . . . . . 18
1. Conventions and Terminology 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].
The following terms and acronyms used throughout this document are
defined here:
LbyR = Location-by-Reference
LbyV = Location-by-Value
locationValue - contains a URI pointing to a Location Target's
location (as a PIDF-LO), and one or more header parameters about
that URI. There can be one or more locationValues within a
Geolocation header in a SIP request.
Location Generator - the first IP enabled device that builds the IP
packet that transmits the PIDF-LO containing the Target's
location
Location Information Server (LIS) - a logical server that stores
geolocation records, which correspond to LbyR URIs, which point
to those records. A LIS responds to location queries from
Polk Expires January 7, 2009 [Page 2]
Internet-Draft SIP Get Location Function July 2008
location seekers, making the LIS a superset of a LS.
Location Object - Defined in RFC 4119 as the PIDF-LO (XML scheme)
format which includes the geolocation of Location Target in
either civic address or coordinate form.
Location Recipient - Defined in RFC3693 as any entity that
understands geolocation (LbyR or LbyV) along a message path.
Does not include entities that process a message containing
geolocation that do not understand geolocation (i.e., layer 3
routers).
Location Server - a logical IP server that transmits a PIDF-LO. This
can be logically combined with the Location Generator, or could
be an intermediary element. An LS is a subset of a LIS, because
an LS does not receive location requests from location seekers.
Location Target - The entity whose location is being sought, whether
or not this entity is aware of this inquiry or is even an IP
device.
Location-by-Reference (more than one meaning)
- a general purpose term meaning a message containing a URI that
points to a PIDF-LO (geolocation of a Location Target) not within
this same message
- a URI that logically locates a geolocation record of a Location
Target. The URI does not point to location within the same
message as the URI.
Location-by-Value - when a message contains the actual location of a
Location Target, in the form of a PIDF-LO.
Presence Information Data Format (PIDF), as defined in RFC 3683
Presence Information Data Format - Location Object (PIDF-LO), as
defined in RFC 4119
Seeker (or Location Seeker) - the active watcher of a Target,
wanting its location, as defined in RFC 3693
Using Protocol - as defined in [RFC3693], a protocol that is deemed
to be in compliance with the security and privacy aspects of the
Geopriv Requirements RFC [RFC3693], with good community
verification.
Instead of using the terms Location-by-Reference (or just
by-reference) and Location-by-Value (or just by-value), this
document will herein use the acronyms LbyR and LbyV, respectively.
Polk Expires January 7, 2009 [Page 3]
Internet-Draft SIP Get Location Function July 2008
2. Introduction
This document describes how an entity, in Presence terminology -
called a watcher, in Geopriv terminology - called a seeker, can
request the geographic location state information of another entity
(Presentity Agent or PA in Presence, a Target in Geopriv
terminology). In other words, how Alice can ask Bob's presentity for
its current geographic location. It can be the case that Bob's
geolocation is on a server that contains Bob's geolocation state
information. Said another way, Bob's PA might not be contacted
directly, while Alice is still able to ask for Bob's location.
By contrast, SIP Location Conveyance [ID-SIP-LOC] describes a
different geolocation function altogether. That document describes
how Alice can send her geolocation to Bob unsolicited (by Bob).
Conveyance defines how a location is sent directly to another
entity, in a message body part, and indirectly via a locationURI,
by having this URI point at a location record on a remote server.
Conveyance states a locationURI is a sip:, sips: or pres: URI, with
the seeker subscribing to the Presence event package at the
locationURI for the PIDF-LO at that record. This is how an entity
dereferences a locationURI.
Possessing a locationURI is also called LbyR, shorthand for
Location-by-reference. A PIDF-LO is location-by-value, or LbyV.
If location is conveyed indirectly, the seeker (or Location
Recipient) will have to fetch the LbyV from the (LbyR) location
record it has a pointer to (i.e., the locationURI).
Conveyance does not, however, define the set of presence filters the
location seeker uses to request what it wants within that event
package, in other words, the details about the location subscription
- such as in which format does the seeker want location to be
returned (civic or geo coordinates), or whether this is a one-time
only subscription for the Target's location at that moment only, or
does the seeker want updates to the Target's location periodically
or upon some trigger. This document defines what Alice is asking
for (w.r.t. geolocation) of Bob's presentity.
Fortuitously, the mechanism this document defines for dereferencing
a locationURI is the same mechanism used to merely ask a presentity
for its location, right down to the filters used. Therefore, this
document is an extension to [ID-SIP-LOC], but satisfying how a
dereference is defined.
Some background is necessary here; RFC 3693 [RFC3693] very clearly
describes the idea of a seeker wanting the location of a Location
Target. The following (slightly) modified figure is from [RFC3693]:
Polk Expires January 7, 2009 [Page 4]
Internet-Draft SIP Get Location Function July 2008
+----------+
| Rule |
| Holder |
| |
+----+-----+
|
rule|interface
V
+----------+ +----------+ +----------+
|Location | publication | Location | notification |Location |
|Generator +-------------->| Server +-------------->|Recipient |
| | interface | | interface | |
+----------+ +----------+ +----------+
^ ^
| |
+-------------------------------------+
Can be part of a single entity
Figure 1. Functional Description of Seeker and Target
The Location Generator (LG), Location Server (LS) and Rule Holder
(RH) are 3 separate logical functions that can be separate
entities, in the case where Bob's presentity published its location
up to his presence server. The LG in Figure 1. is the first IP
entity to create the Presence Information Data Format - Location
Object, or PIDF-LO, as defined in RFC 4119 [RFC4119]. A PIDF-LO is
the location-by-value (LbyV) form, to be included within a message
(body part) and transmitted towards a Location Recipient (LR). A
PIDF-LO is a modification of the PIDF XML Scheme specifically for
carrying geographic location of a Target.
The LG can publish its state information, including its location in
PIDF-LO form, to an LS. If this entity is the one contacted for the
location state information of the location presentity, instead of
contacting the presentity directly, this LS is defined as a Location
Information Server, or LIS (see below). Using Figure 1 as is, as
defined in RFC 3693, the LS typically challenges any request for
location information, the RH rules/policies are applied to any/all
requests, and once the appropriate authorization (i.e., perhaps
credentials) is granted to the location requestor, an answer given.
If the LG and LS are the same entity, the RH, sometimes called a
Rulemaker, can also be, and likely is, within the same entity. This
model necessitates there not be any content indirection, for obvious
reasons. If the LG and LS are the same entity, but the RH is a
separate entity, perhaps in a dual mode where the Target and the
location provider coordinate/aggregate setting the rules for a
(i.e., each) Target, there still can be indirection with the Target
publishing its locationURI to another LS that is a LIS, that may or
may not be a Presence server also. If separate, the LIS and
Presence server coordinate all location requests (perhaps the LIS
Polk Expires January 7, 2009 [Page 5]
Internet-Draft SIP Get Location Function July 2008
and presence server are collocated, perhaps there is communications
between them whenever a location request is received by a presence
server). This part is out of scope of this document.
If Bob's presentity is asked for its geolocation, making him the
Target, he is functioning both as an LG and LS. If Bob's server is
asked for his presentity's geolocation, these logical entities are
separate logical entities as well.
In the case where Alice is seeking Bob's location, she is the LR if
Bob's rules allow her watcher to learn his geolocation state
information.
RFC 3693 [RFC3693] also defines what constitutes a "Using Protocol".
A protocol that meets a specific set of security requirements by
safeguarding its privacy concerns for retransmissions of location,
and how long a location is to be stored or considered valid.
This document complies with the "Using Protocol" requirements by
extension of how [ID-SIP-CON] accomplishes this qualification, since
the same protocol is used in both documents, with no new
vulnerabilities created within this document.
[Editor's note: I think the following text is needed, but am
soliciting how this can be done without creating a new 4XX error
code.
"This document also defines an extension to the Session
Initiation Protocol (SIP) specifically for when these conditions
cannot or will not be met by the presentity, necessitating a new
SIP error code that is location request specific."]
This extension does not change any rules about subscriptions,
meaning they can be modified, extended or terminated. One feature
that simple subscription expiry does not address is how often
NOTIFYs are sent back to the subscriber, in non-one-time-only
subscriptions. Consequently, a set of filters need to be created
that address within any given (non 1 second) subscription, how
frequently are NOTIFYs sent, and is this frequency merely periodic
or does some trigger event occur to cause a new NOTIFY to be sent?
Movement of a presentity is a great example of a trigger worthy of
new a new NOTIFY that cannot be anticipated by any timed (periodic)
interval.
One usecase that can be mentioned in [ID-SIP-CON] is the 9-1-1/1-1-2
style (local) "emergency case", in which an emergency response
center wants to learn if the caller, who is IP based, therefore
mobile in nature, moves during the call. Location conveyance uses
the location in the INVITE to both determine call routing (to the
emergency call center closest (appropriate) to the caller's
location) and for dispatching of emergency responders. Therefore,
learning a caller has moved is a necessity. This document describes
implicitly how a call taker can subscribe to a caller to track their
movement. This has to be allowed by the caller (rulemaker
Polk Expires January 7, 2009 [Page 6]
Internet-Draft SIP Get Location Function July 2008
permissions), but this can be done. This capability is enabled with
this extension to SIP, but the details are for another document
(probably out of the ECRIT WG).
Common terms are in Section 1. Section 3 provides an overview of the
SIP location GET function. Section 4 discusses the difference
between the life of a subscription and the number of notifies within
a subscription. Section 5 defines this location 'get' function,
including the roles of the subscriber and that of the notifier.
Section 6 describes the filters necessary in this extension. The
filters themselves are to be created once there is consensus on what
the filters should accomplish. Section 7 is security considerations.
Section 8 is IANA considerations (and so on).
3. Overview of Location Get Operation
When a watcher wants to learn the location of a presentity, it
subscribes to the sip:, sips: or pres: URI of that presentity, to
the presence event package specifically, as defined in RFC 3265
[RFC3265] and RFC 3856 [RFC3856]. The filters (shown later in this
document) contained in the message body of the SUBSCRIBE request
indicate exactly what is wanted in the NOTIFY from the presentity,
and how often the presentity is to send new NOTIFYs (if this is not
a one-time-only subscription).
When Alice wants to learn Bob's location, she subscribes to Bob's
sip:, sips: or pres: locationURI. This URI is either pointing to
Bob's PA, Bob's presence server or Bob's LIS. If towards Bob's
presence server, then his PA has published the PIDF-LO to this
server already. Ultimately, Bob is (supposed to be) in charge of
which locationURI (pointing towards which entity) is given to Alice
for her to contact to get Bob's location.
Whichever destination Alice's watcher subscribes to, using this
geolocation 'get' extension, this subscription can be to get
location once, or by creating a dialog, more than once. In other
words, Alice could be asking for Bob's location:
A) one time only, or
B) more than once, but for a limited number of updates (which
results in a short duration dialog), or
C) creating a dialog that last over a period of time.
The dialog described in (B) is for a use-case, for example, in which
location may be more coarse when given in the initial NOTIFY, but
once a location Sighter system such as 802.11, cellular or WiMAX
actively triangulates a more precise fix on the location Target, a
second NOTIFY is sent with more precise location. Section 4
describes how this does not easily translate into a periodic
location refresh with a limited subscription duration, necessitating
a more creative solution (i.e., filters).
Polk Expires January 7, 2009 [Page 7]
Internet-Draft SIP Get Location Function July 2008
This lasting dialog of location notifications (C) can be
- periodic in nature (having a specified time interval), or
- can be triggered by something the Target does (i.e., it senses it
has changed rooms, and needs to update its location with whomever
is subscribed to this event package).
Filters are contained in the XML message body of the SUBSCRIBE to
indicate exactly what Alice wants returned in the PIDF-LO, and what
other characteristics she wants to specify about that subscription
(until it is modified, extended or terminated). If Bob chooses to
reject what Alice wants, he does so with a new Bad Location Request
error, or another error that his UA considers appropriate.
[Editor's note: this error response could be a new use of the
[ID-SIP-CON] defined 417 (Bad Location Information) just for when
it is received when using a SUBSCRIBE).
Below is the one time subscription for location example.
Alice Bob
| |
| SUBSCRIBE (includes Geoloc Get filters) |
| -------------------------------------------------> |
| |
| 200 OK |
| <------------------------------------------------- |
| |
| |
| NOTIFY (w/ PIDF-LO) |
| <------------------------------------------------- |
| |
| 200 OK |
| -------------------------------------------------> |
| |
Figure 2. UA seeks one time location from another UA
In Figure 2., Alice subscribes to Bob's presentity using the
Presence event package, requesting a single reply with Bob's
location (Expires=0). Later in this document, we define the filters
necessary to request what Alice wants (i.e., does she want whatever
location Bob has about himself, or does Alice only want location to
be returned to her in a certain format, for example, civic vs. geo).
Following the basic subscription message flow, the 200 OK (to the
SUBSCRIBE) does not contain the PIDF-LO with Bob's location, it
acknowledges (i.e., accepts) the subscription attempt by Alice only.
The PIDF-LO is in the NOTIFY from Bob to Alice.
Polk Expires January 7, 2009 [Page 8]
Internet-Draft SIP Get Location Function July 2008
Figure 3. below shows a subscription for location lasting over a
period of time.
Alice Bob
| |
| SUBSCRIBE (includes Geoloc Get filters) |
| -------------------------------------------------> |
| |
| 200 OK |
| <------------------------------------------------- |
| |
| |
| NOTIFY (w/ PIDF-LO) |
| <------------------------------------------------- |
| |
| 200 OK |
| -------------------------------------------------> |
| |
| **************************************** |
| * some time occurs between NOTIFYs * |
| **************************************** |
| |
| NOTIFY (w/ PIDF-LO) |
| <------------------------------------------------- |
| |
| 200 OK |
| -------------------------------------------------> |
| |
| **************************************** |
| * some time occurs between NOTIFYs * |
| **************************************** |
| |
| |
| NOTIFY (w/ PIDF-LO) |
| <------------------------------------------------- |
| |
| 200 OK |
| -------------------------------------------------> |
| |
Figure 3. UA seeks Location over Time from another UA
In the example within Figure 3., Alice subscribes to Bob's
presentity for his location, and wishes it to last over a period of
time. The duration is set by the Expires header within the 200 OK
of the SUBSCRIBE. Further, within the filters contained in the XML
message body, there is an indication of exactly what Alice wants in
each reply - in addition to how often she wants Bob to send a NOTIFY
(periodic or triggered, see section 4 about this requirement).
This extension does not change any rules about subscriptions,
Polk Expires January 7, 2009 [Page 9]
Internet-Draft SIP Get Location Function July 2008
meaning they can be modified, extended or terminated.
4. Life of Subscription verses Number of NOTIFYs within Subscription
There is a disconnect between how long a subscription lasts, i.e.,
what is set by the Expires value in the 200 OK to the SUBSCRIBE, and
how often within a subscription a NOTIFY is sent with a new (or
merely refreshed) location of a presentity. To highlight the
disconnect, here is an example of the differences.
Take four different scenarios involving a subscription that last for
3600 seconds (1 hour):
Example #1 - a subscription for 3600 seconds that only sends 1
NOTIFY
Example #2 - a subscription for 3600 seconds that sends 2 NOTIFYs
Example #3 - a subscription for 3600 seconds that sends 3600 NOTIFYs
Example #4 - a subscription for 3600 seconds that sends some number
n of NOTIFYs depending on how many times a Location
Target moves a certain minimum distance.
Example #1 has a 3600 second subscription, and had a filter defining
how often location was asked for (once in this example). The very
first NOTIFY sent back to the Location Seeker satisfied the goal of
the subscription (i.e., to learn the Location Target's location).
The subscription remained in place until it timed out or was
terminated.
Example #2 has a 3600 second subscription, and had a filter defining
how often location was asked for (once an hour in this example). The
subscription lasted for only 2 NOTIFYs to be sent before the
unmodified subscription expired. The subscription remained in place
until it timed out or was terminated.
Example #3 has a 3600 second subscription, and had a filter defining
how often location was asked for (once a second in this example).
The subscription lasted for 3600 NOTIFYs because that is how many
can be sent within the 3600 second subscription. The subscription
remained in place, providing periodic NOTIFYs, until it timed out or
was terminated.
Example #4 has a 3600 second subscription, and had a filter defining
how often location was asked for (each time the Target moves a
minimum distance in this example). The subscription lasted for 3600
seconds, with n number of NOTIFYs sent, based on the movement of the
Target. The subscription remained in place until it timed out or was
terminated.
Polk Expires January 7, 2009 [Page 10]
Internet-Draft SIP Get Location Function July 2008
The Target in Example #4 could have been told to send a NOTIFY every
time the Sighter (meaning the Location Target itself or the system
determining when the Location Target moves) detected the Target had
moved X number of feet from the last time it sent a NOTIFY. How
often can this occur within an hour? For a wired phone, probably
not often; perhaps even 0 times. For a wireless phone, traveling in
a car - the number of NOTIFYs sent will be quite a bit higher.
All that said, each of the 4 scenarios is consistent with the rules
of RFC 3265 for how long a subscription will last (based on the
Expires header value), yet this example has clearly shown the need
for a new filter capability to set the duration between NOTIFYs, or
what triggers the NOTIFYs within a subscription. All of this will
be set within the filters of the SUBSCRIBE.
5. Location Get Defined
When subscribing to the locationURI for a presentity's geolocation,
the event package in both the SUBSCRIBE and NOTIFY requests is
"presence", which appears in the Event header field of either
request.
5.1 Subscribing for Location
This locationURI is the Request-URI of the SUBSCRIBE request, and
need to be learned somehow. This document does not define how a
locationURI is learned.
As defined in RFC 3265 [RFC3265], a SUBSCRIBE MAY contain a body.
To request location of another entity, the SUBSCRIBE MUST contain a
message body. This message body MUST contain a filter document.
Filter documents restrict what is to be returned in notifications.
In this extension, these filters are specific to location (what
format should be in the notifications) and frequency of
notifications.
Location can take one of two standard forms, as defined in RFC 4119
[RFC4119], geo (or x/y/z coordinates lie GPS) or civic (similar to
postal addressing). Other forms should be possible, as long as they
are within an accepted PIDF-LO document (i.e., there can be other
formats, so this is extensible).
According to [RFC3863], all subscriptions MUST be authenticated
before being authorized. Authorization is up to the rulemaker
policies within the presentity (i.e., Location Target). The
presentity needs to make a policy decision once a subscription is
authenticated. [RFC3265] states lists the appropriate response
codes for conveying a successful, a rejected, or a pending
subscription request are a 200 OK, a 403 Forbidden, a 603 Decline
and a 202 Acceptable response, respectively.
Polk Expires January 7, 2009 [Page 11]
Internet-Draft SIP Get Location Function July 2008
The watcher (or seeker) MUST support the default Accept header value
of "application/pidf+xml", according to [RFC3863].
All subscriptions will be challenged, so a watcher/seeker SHOULD be
prepared for this to occur.
A watcher/seeker receiving a NOTIFY SHOULD consider the PIDF-LO to
be the current state of the presentity. Further, within a dialog,
the PIDF-LO containing the highest CSeq value is the most current
location of the presentity.
A refreshed location subscription, within a dialog, does not have to
contain a filter document, as the presentity agent MUST assume the
existing filters are to continue unchanged. If a subscription for
location is modified, then a new filter document MUST be in the new
SUBSCRIBE request. This filter document MUST become the new set of
filters used within this subscription.
5.2 Notifications of Location
The NOTIFY will transport the PIDF-LO with the requested location
state information in the default format value of
"application/pidf+xml" (which is listed in the Content-Type header),
according to [RFC3863]. Additional state information MAY be
contained in the PIDF part of this document. The NOTIFY MUST
contain that which was requested within the filters of the SUBSCRIBE
or it SHOULD error the SUBSCRIBE if it knows it cannot return what
is being asked of it within the filters.
[Editor's note: is this a new 4XX error code or a redefined use of
the 417 (Bad Location Information) code defined in
[ID-SIP-CON]?]
If the NOTIFY has an Expires set to 0, this subscription (regardless
of what was requested in the SUBSCRIBE) is for a single return of a
NOTIFY containing the presentity's location.
If the NOTIFY has an Expires set to a non-zero value, the filters
will determine the frequency of the notifications, and the interval
between notifications. The server MUST comply with the SUBSCRIBE
filters for periodic, as well as for triggered notifications. The
server MUST continue sending agreed upon notifications until the
subscription is modified (including refreshed), terminated or just
ends.
A presentity agent SHOULD return a current PIDF-LO in a NOTIFY to
the watcher/seeker - because that is the current information it will
have for the location of the presentity. It really has little choice
but to trust the NOTIFY is telling the truth.
According to [RFC3265], a presentity should not have a NOTIFY
Polk Expires January 7, 2009 [Page 12]
Internet-Draft SIP Get Location Function July 2008
interval rate faster than once over 5 seconds. This extension
specifically oversteps this requirement by allowing the interval
between location NOTIFYs to be no faster than once every 500ms. The
reason for this is easy, location can change faster than once every
5 seconds, and this needs to be conveyed if within the parameters of
the acceptable filters within a dialog. That said, periodic
interval filters SHOULD NOT be set to less than once every 5
seconds. Triggered filters MAY NOT be set to less than once every
500ms (unless someone comes up with a viable use-case involving
aircraft before this document is published as an RFC).
A refreshed location subscription, within a dialog, does not have to
contain a filter document, as the presentity agent MUST assume the
existing filters are to continue unchanged. If a subscription for
location is modified, then a new filter document MUST be in the new
SUBSCRIBE request. This filter document MUST become the new set of
filters used within this subscription, as reflected in the altered
notifications sent by the presentity agent.
5.3 Sending and Receiving Response Codes to Location Subscriptions
According to [RFC3863], all subscriptions MUST be authenticated
before being authorized. Authorization is up to the rulemaker
policies within the presentity (i.e., Location Target). The
presentity needs to make a policy decision once a subscription is
authenticated. [RFC3265] states lists the appropriate response
codes for conveying a successful, a rejected, or a pending
subscription request are a 200 OK, a 403 Forbidden, a 603 Decline
and a 202 Acceptable response.
According to [RFC4660], a 202 (Acceptable) response just means that
the filter in the SUBSCRIBE was understood, but the entity has not
engaged in filtering the notifications according to these filters.
This is especially true for modified filters within an exiting
dialog (for location). A 200 OK response is necessary for the
subscriber to understand the new filters are now being applied to
the notifications.
RFC 4660 states further that a 415 () response is appropriate if the
MIME type 'application/simple-filter+xml' is not understood by the
notifier; and if understood, but something was not acceptable by the
presentity agent then a 488 (Not Acceptable Here) response is
appropriate.
Both the subscriber and the subscribed to MUST understand this
rule-set of why each response code is used, and under what
conditions each are used in - to comply with this specification.
Polk Expires January 7, 2009 [Page 13]
Internet-Draft SIP Get Location Function July 2008
6. Presence Filters for the Subscription Get Function
In order to utilize the SUBSCRIBE method and get location in return
(i.e., in the NOTIFY), the SUBSCRIBE needs to have [RFC4660] defined
filters as a message body. The purpose of these filters are to
specifically ask for certain things be in the NOTIFY. What is
understood by this document, and continued on from [ID-SIP-CON] is
that the answer will be in a PIDF-LO format. Assumed here is the
understanding that a subscription is authorized. If not, the
SUBSCRIBE will be rejected.
With regards to location, the following could be asked for (in no
particular order in this rev),
There needs to be the ability to subscribe to an entity that knows
more than one presentity's location. Therefore an optional filter is
a list of locationURIs the subscriber wants. This will most likely
be between a presence server and a LIS, but it is not limited to
this scenario.
Filter #1 - specifies that a watcher wants location from a specific
presentity/target, or a group of presentities/targets
(i.e., a bulk transfer).
Filter #1 will specify a single presentity or group of presentities.
How this latter scenario is consistent with the privacy rules within
RFC 3693 [RFC3693] is, for example, between a LIS and a Presence
server. Instead of having the Presence server make a series of
individual requests for locations from individual location targets,
this is optimized to have a single subscription encompass this
transfer of location information for each identified target in the
filter document.
Warning: Any filter specifying more than one locationURI will have
all other filters applied to it within a dialog. In other
words, within the same dialog, a watcher/seeker cannot
locationURI-A's format in geodetic only and locationURI-B's
in civic only. If different specifics are desired by the
subscriber for different presentities, then each unique set
of desires MUST be in separate dialogs, even if to the same
destination.
Filter #2 - specifies which location format the watcher wants
returned in the NOTIFY (coordinate, civic, or future
location format). The watcher can place a wildcard 'any'
format that is available to the presentity Any filter
specifying more than one locationURI will have all other
filters applied to it within a dialog.
In other words, within the same dialog, a watcher/seeker cannot
locationURI-A's format in geodetic only and locationURI-B's in civic
only. The choices likely will be 'geo-only', 'civic-only', 'all' or
Polk Expires January 7, 2009 [Page 14]
Internet-Draft SIP Get Location Function July 2008
'any' - unless there are any new location formats agree to before
this document is published as an RFC. 'all' means any location
information the notifier has it MUST send in the next notification.
With filter#2, if a subscriber wants a location in a format that the
presentity knows it cannot provide, or does not have access to a
geocoder to convert what it does have, it the subscribed to entity
MUST error the SUBSCRIBE.
Filter #3 - a watcher could want to specify that it wants the
subscription to last over a period of time, or for a
specific number of updates. This would be creating a
dialog, to have the subscription last longer than a
one_time_only location reply.
This will take some coordination with the Expires header, both in
the SUBSCRIBE and the 200 OK to the SUBSCRIBE. The presentity MUST
NOT accept a subscription that wants more than one location update
and set the Expires to 0.
If can be the case that a watcher wants a location subscription to
last exactly for 2 NOTIFYs. The first NOTIFY could have a very
coarse location in it. The subsequent NOTIFY can have a very
precise location update. This is problematic under the current
subscription policy within SIP, given that subscriptions last N
number of seconds determined by the Expires header in the 200 OK to
the SUBSCRIBE. It SHOULD be possible for exactly 2 different
location updates to be sent to the watcher, yet not have to guess
how long it will take the presentity to get the more precise
location. Perhaps the presentity needs to request of the network
where en entity really is, which can take a varying amount of time
depending on the network type. Cellular networks call this a rebid,
and can take as long as 30 seconds.
Within Filter #3 is also the means by which a presentity sends the
watcher a triggered update of location information, based on some
knowledge of movement by the presentity (not defined here).
Filter #4 - a watcher could specify exactly which elements of
location it needs to have in the reply.
This could be a case in which the watcher is saying "unless I get at
least all these pieces of location information in the reply, I want
an error, and I want that error to list which location parts are not
available, or I (the watcher) do not have permission to access".
In other words, which location elements are mandatory to include in
the notification, or an error is sent.
Using filter#4, if the location is for call routing, and the
resolution of the location is not below the country or
state/province level, this might result in a routing failure. If
this location is being used for dispatch of emergency personnel, and
Polk Expires January 7, 2009 [Page 15]
Internet-Draft SIP Get Location Function July 2008
the resolution is only to the city level, the first responders
cannot be expected to find the caller that is having a heart attack.
In either case, location resolution to the city and street address
level, respectively are probably a minimum to be successful.
Filter #5 - a watcher could add specifically which elements of
location it wants to have in the reply, in other words,
which location elements are optional to include (based
on availability and permissions), but not mandatory to
include in the notification.
For both 4 and 5, an example of this request might be either:
if the watcher wants coordinate location, it might specify it
must have latitude and longitude, and optionally have altitude;
or
if the watcher wants civic location, it might specify it must
learn the country, state/province, city, street, street number of
the presentity, and it would be nice if the presentity also
includes its floor, landmark, building name, postal code and room
in the notification .
Filter #6 - filter for periodic intervals
Filter #7 - filter for triggered notifications
Filter #8 - filter for what constitutes 'movement' in Filter#7, for
example, how many feet did a target move since the last
notification, or how many fractions of a degree did a
target move since the last notification.
For filter#8, this needs to be something the subscriber conveys to
the subscribed, because this subscription is looking for what he
subscriber wants, and in what form. For example, one subscriber
might want to know every time a target moves 10 feet; whereas
another might want to know not hear from the notifier until it has
detected moving more than a kilometer.
If the presentity does not have the ability to discover when it
moves, and receives a 'detect-movement' filter, then the subscriber
MUST receive an error - because it cannot fulfill one of the filters
in the SUBSCRIBE.
Filters#6 & 7 need to be able to coexist, in such a way that there
is not silence from the presentity if it has not moved in a while.
Polk Expires January 7, 2009 [Page 16]
Internet-Draft SIP Get Location Function July 2008
6.1 Filters for the Subscription Get Function
This section will be completed at a later date (i.e., once (at least
most of) the filter descriptions are agreed to).
6.2 Filters Examples for the Subscription Get Function
TBD
7. Security considerations
This document introduces no additional security considerations from
that covered in RFC 3856 [RFC3856], RFC 3863 [RFC3863], RFC 4119
[RFC4119], and "SIP Location Conveyance" [ID-SIP-CON].
8. IANA considerations
This document does not have any IANA actions (at this time).
9. Acknowledgments
Your name here... or if you contribute a fair amount of text, you
can be a co-author.
10. References
10.1. Normative References
[RFC2119] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997
[ID-SIP-LOC] J. Polk, B. Rosen, "SIP Location Conveyance",
draft-ietf-sip-location-conveyance-10.txt, "work in
progress", Feb 2008
[RFC3856] J. Rosenberg, " A Presence Event Package for the Session
Initiation Protocol (SIP)", RFC 3856, August 2004
[RFC3863] H. Sugano, S. Fujimoto, G. Klyne, A. Bateman, W. Carr, J.
Peterson, "Presence Information Data Format (PIDF)", RFC
3863, August 2004
[RFC4119] J. Peterson, "A Presence-based GEOPRIV Location Object
Format", RFC 4119, December 2005
Polk Expires January 7, 2009 [Page 17]
Internet-Draft SIP Get Location Function July 2008
10.2. Informative References
[RFC3693] J. Cuellar, J. Morris, D. Mulligan, J. Peterson. J. Polk,
"Geopriv Requirements", RFC 3693, February 2004
Authors' Addresses
James Polk
3913 Treemont Circle
Colleyville, Texas, USA
+1.817.271.3552
mailto: jmpolk@cisco.com
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
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.
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, THE
IETF TRUST 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.
Intellectual Property
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.
Polk Expires January 7, 2009 [Page 18]
Internet-Draft SIP Get Location Function July 2008
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.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Polk Expires January 7, 2009 [Page 19]
| PAFTECH AB 2003-2026 | 2026-04-22 23:00:42 |