One document matched: draft-mahy-geopriv-sip-loc-pkg-00.txt
WG R. Mahy
Internet-Draft Airespace
Expires: July 2, 2005 Jan 2005
A Location Event Package using the Session Initiation Protocol (SIP)
draft-mahy-geopriv-sip-loc-pkg-00.txt
Status of this Memo
This document is an Internet-Draft and is subject to all provisions
of section 3 of RFC 3667. 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 become aware will be disclosed, in accordance with
RFC 3668.
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 July 2, 2005.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
This document describes a Session Initiation Protocol (SIP) event
package to carry location data about named SIP resources. Inherent
in this event package are filters which limit notifications to
compelling events which are described by the filters. The resulting
location information is conveyed in existing location formats wrapped
in GEOPRIV privacy extensions to the Presence Information Document
Format (PIDF-LO). Location disclosure is limited to voluntary
disclosure by a notifier that possesses credentials for the named
Mahy Expires July 2, 2005 [Page 1]
Internet-Draft Location Event Package Jan 2005
resource.
Table of Contents
1. Conventions . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Definition of Location Filter Format . . . . . . . . . . . . 3
3.1 XML Schema for filter format . . . . . . . . . . . . . . . 10
4. Containment schema . . . . . . . . . . . . . . . . . . . . . 11
5. Event Package Formal Definition . . . . . . . . . . . . . . 13
5.1 Event Package Name . . . . . . . . . . . . . . . . . . . . 13
5.2 Event Package Parameters . . . . . . . . . . . . . . . . . 14
5.3 SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . 14
5.4 Subscription Duration . . . . . . . . . . . . . . . . . . 14
5.5 NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . 14
5.6 Subscriber generation of SUBSCRIBE requests . . . . . . . 14
5.7 Notifier processing of SUBSCRIBE requests . . . . . . . . 15
5.8 Notifier generation of NOTIFY requests . . . . . . . . . . 15
5.9 Subscriber processing of NOTIFY requests . . . . . . . . . 15
5.10 Handling of Forked Requests . . . . . . . . . . . . . . 15
5.11 Rate of notifications . . . . . . . . . . . . . . . . . 16
5.12 State Agents and Lists . . . . . . . . . . . . . . . . . 16
5.13 Behavior of a Proxy Server . . . . . . . . . . . . . . . 16
6. Examples of Usage . . . . . . . . . . . . . . . . . . . . . 16
7. Security Considerations . . . . . . . . . . . . . . . . . . 17
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 17
8.1 SIP Event Package Registration for 'location' . . . . . . 17
8.2 MIME Registration for
application/location-delta-filter+xml . . . . . . . . . . 18
8.3 URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:location-filter . . . . . . . . . . 18
8.4 Schema Registration For location-filter . . . . . . . . . 19
8.5 URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:pidf:geopriv10:containment . . . . 19
8.6 Schema Registration For containment . . . . . . . . . . . 20
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 20
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.1 Normative References . . . . . . . . . . . . . . . . . . . 20
10.2 Informational References . . . . . . . . . . . . . . . . . 21
Author's Address . . . . . . . . . . . . . . . . . . . . . . 21
Intellectual Property and Copyright Statements . . . . . . . 22
Mahy Expires July 2, 2005 [Page 2]
Internet-Draft Location Event Package Jan 2005
1. Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [4].
2. Overview
Conveying PIDF-LO [3] bodies in SIP [1] messages is straightforward,
and a SIP event [2] package for location is an obvious usage of
existing SIP capabilities. However the difficult part about
asynchronous notification of location information is that many forms
of location are measured as a continous gradient. Unlike notications
using discreet quanties, it is difficult to know when a change in
location is large enough to warrant notifications. Moreover,
different applications require a wide variety of location
resolutions. Any optimization made for one application would
ultimately result in wasteful polling or a sluggish user interface
for other applications.
The mechanism described here defines filters in XML [5] documents
which limit location notification to events which are of relevance to
the subscriber. These filters are provided in the body of SIP
subscription requests and persist for the duration of the
subscription or until they are changed in an updated SIP subscription
request with a replacement filter.
In addition to the relevant filters, this document also defines a new
XML schema [6] which can be included in PIDF-LO documents to indicate
that the resource is inside or outside of a container region.
3. Definition of Location Filter Format
The granularity of notifications necessary for various geographic
location applications varies dramatically. The subscriber should be
able to get asynchronous notifications with appropriate granularity
and accuracy, without having to poll or flood the network with
notifications which are not important to the application.
Notifications should only happen when the notification would be
considered an Interesting Event to the subscriber. Subscriptions to
this event package contain a filter document in the XML document
format defined in this section. The terminal elements in this format
are defined in terms of existing Geographic Markup Language (GML) [9]
data types.
The notifications are in PIDF-LO (by default) or any other format
acceptable to both the subscriber and notifier. The selection of
a subset of GML or specific location format capabilities contained
in a PIDF-LO body is a generic issue for the GEOPRIV Working Group
Mahy Expires July 2, 2005 [Page 3]
Internet-Draft Location Event Package Jan 2005
to define, and is out of the scope of this document.
This document defines the following as an initial list of Interesting
Events:
1. the resource moves more than a specific distance horizontally or
vertically since the last notification
2. the resource exceeds a specific speed
3. the resource enters or exits one or more GML objects (for
example, a set of 2-dimensional or 3-dimensional regions)
included or referenced in the filter.
4. one or more of the values of the specified address labels has
changed for the resource (for example, the A1 value of the
civilAddress has changed from California to Nevada)
This specification makes use of XML namespaces [7] for identifying
location filter documents and document fragments. The namespace URI
for elements defined by this specification is a URN [10], using the
namespace identifier 'ietf' defined by [11] and extended by [12].
This URN is:
urn:ietf:params:xml:ns:location-filter
The filter format starts with a top-level XML element called
"<location-filter>", which contains one or more filter events. The
semantics of multiple elements inside a location-filter is a logical
OR. In other words, if any of the individual filter events occurs,
the event satisfies the location-filter and triggers a notification.
The movedHoriz and movedVert filter events each indicate a minimum
horizontal motion or vertical distance (respectively) that the
resource must have moved from the location of the resource when the
last notification was sent in order to trigger this event. The
distance is measured absolutely from the point of last notification
rather than in terms of cumulative motion (For example, someone
pacing inside a room will not trigger an event if the trigger
threshold is slightly larger than the room.) Each of these events
can only appear once in a location-filter. These events have an
attribute "uom" (for "units of measure"), which indicates the units
of the element. The default unit for these events is meters.
Similarly, the speedExceeds filter event indicates a minimum
horizontal speed of the resource before the speedExceeds event is
triggered. This element can appear only once in a location-filter,
and has a "uom" attribute which defaults to meters per second if not
present.
This filter measures the horizontal component of speed in any
direction. It does not measure velocity. Note also that there is
no corresponding event triggered when speed drops below a
threshold.
Mahy Expires July 2, 2005 [Page 4]
Internet-Draft Location Event Package Jan 2005
Below are some examples. In the first example if the resource moves
20m in the x,y direction or 3m in the z direction, send a
notification:
<location-filter>
<movedHoriz uom="#meters">20</movedHoriz>
<movedVert uom="#meters">3</movedVert>
</location-filter>
If the resource exceeds 3 meters per second (10.8 km/h), send a
notification:
<location-filter>
<speedExceeds uom="#mps">3</speedExceeds>
</location-filter>
The valueChanges filter event contains a string which is interpreted
as an XPath [8] expression evaluated within the context of the
location-info element of the PIDF-LO document which would be
generated by the notification. The XPath expression MUST evaluate to
only a single Xpath node. If the value of any of the elements in the
resulting node changes, then the filter event is triggered. Note
that the value of the resulting node changes if any of those nodes or
subnodes transitions from having a value to having no value or vice
versa. A location-filter may contain multiple valueChanges filters.
For example, given the following logical PIDF-LO document, If the
state (A1), county (A2), city (A3), or postal code (PC) changes, send
a notification:
Mahy Expires July 2, 2005 [Page 5]
Internet-Draft Location Event Package Jan 2005
PIDF-LO Location Document:
<?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:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civilLoc"
entity="pres:geotarget@example.com">
<tuple id="sg89ae">
<status>
<gp:geopriv>
<gp:location-info>
<cl:civilAddress>
<cl:country>US</cl:country>
<cl:A1>New York</cl:A1>
<cl:A3>New York</cl:A3>
<cl:A6>Broadway</cl:A6>
<cl:HNO>123</cl:HNO>
<cl:LOC>Suite 75</cl:LOC>
<cl:PC>10027</cl:PC>
</cl:civilAddress>
</gp:location-info>
<gp:usage-rules>
<gp:retransmission-allowed>yes</gp:retransmission-allowed>
<gp:retention-expiry>2003-06-23T04:57:29Z</gp:retention-expiry>
</gp:usage-rules>
</gp:geopriv>
</status>
<timestamp>2003-06-22T20:57:29Z</timestamp>
</tuple>
</presence>
Filter Document:
<location-filter
xmlns="urn:ietf:params:xml:ns:location-filter"
xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civilLoc">
<valueChanges>cl:civilAddress/cl:A1</valueChanges>
<valueChanges>cl:civilAddress/cl:A2</valueChanges>
<valueChanges>cl:civilAddress/cl:A3</valueChanges>
<valueChanges>cl:civilAddress/cl:PC</valueChanges>
</location-filter>
Finally, the "enterOrExit" filter event is triggered when the
resource enters or exits a named 2-dimensional or 3-dimensional
region or list of regions corresponding to a GML feature. These
regions can be defined using inline snippets of GML, or externally
referenced using a URI (Uniform Resource Identifier). Notifiers
which support this document MUST be able to support 2-dimensional
regions and lists of regions, for which the regions can be defined in
terms of the GML extentOf a Polygon defined using an exterior
Mahy Expires July 2, 2005 [Page 6]
Internet-Draft Location Event Package Jan 2005
LinearRing object. These Polygons are defined using the hierarcy in
the figure below.
Hierarchy for 2-D Hierarchy for 3-D
Objects Objects
extentOf Solid
Polygon exterior
exterior Surface
LinearRing patches
posList Polygon
...
Polygon
Similarly, Notifiers MUST be able to support 3-dimensional regions
which can be defined as a fixed height vertical projection of such a
2-dimensional Polygon, and lists thereof. Specifically, these are
GML Solids defined in terms of an exterior Surfuce of polygonal
patches, such that all included Polygons are either parallel
(horizontal) or perpedicular (vertical) to the geoid.
The posList for any 2-dimensional region MUST be defined using the
EPSG 4326 coordinate reference system. The posList for any
3-dimensional region MUST be defined using the EPSG 4979 coordinate
reference system. A location-filter can contain more than one
enterOrExit filter event.
Notifiers MAY support other more complex geometries or additional
coordinate reference systems. How the Subscriber negotiates
support for more complex geometries or reference systems is out of
the scope of this document.
Likewise, this document does not describe how a subscriber
discovers the existence of externally referenced features. This
topic is out of scope of this document.
In most cases Subscribers that use location filters based on
enterOrExit events are especially interested in the resource's
relationship to those named features. Consequently, the notifier
MUST include either a "containment" element for each feature
mentioned in the location-filter which has changed its containment
properties with respect to the resource since the last notification.
These elements are defined in Section 4. The notifier MAY include
any other form of location that is relevant.
For example, if the resource enters or exits Building 10 (which is
defined by specific 2-D or 3-D rectangular coordinates), send a
notification:
Version in 2-Dimensions:
Mahy Expires July 2, 2005 [Page 7]
Internet-Draft Location Event Package Jan 2005
<location-filter>
<enterOrExit>
<my:Building>
<gml:name>Building 10</gml:name>
<gml:extentOf>
<gml:Polygon>
<gml:exterior>
<gml:LinearRing>
<gml:posList
srsName="http://www.opengis.net/gml/srs/epsg.xml/#4979">
37.41188 -121.93243 0
37.41188 -121.93132 0
37.41142 -121.93132 0
37.41142 -121.93242 0
37.41188 -121.93243 0
</gml:posLis>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:extentOf>
</my:Building>
</enterOrExit>
</location-filter>
Version in 3-Dimensions:
<location-filter>
<enterOrExit>
<my:Building>
<gml:name>Building 10</gml:name>
<gml:Solid>
<gml:exterior>
<gml:Surface>
<gml:patches>
<gml:Polygon> <!-- floor -->
<gml:exterior>
<gml:LinearRing>
<gml:posList
srsName="http://www.opengis.net/gml/srs/epsg.xml/#4979">
37.41188 -121.93243 0
37.41188 -121.93132 0
37.41142 -121.93132 0
37.41142 -121.93242 0
37.41188 -121.93243 0
</gml:posLis>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
<gml:Polygon> <!-- north wall -->
Mahy Expires July 2, 2005 [Page 8]
Internet-Draft Location Event Package Jan 2005
<gml:exterior>
<gml:LinearRing>
<gml:posList
srsName="http://www.opengis.net/gml/srs/epsg.xml/#4979">
37.41188 -121.93243 0
37.41188 -121.93243 0
37.41188 -121.93132 25
37.41188 -121.93132 25
37.41188 -121.93243 0
</gml:posLis>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
<gml:Polygon> <!-- east wall -->
<gml:exterior>
<gml:LinearRing>
<gml:posList
srsName="http://www.opengis.net/gml/srs/epsg.xml/#4979">
37.41188 -121.93132 0
37.41188 -121.93132 25
37.41142 -121.93132 25
37.41142 -121.93132 0
37.41188 -121.93132 0
</gml:posLis>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
<gml:Polygon> <!-- south wall -->
<gml:exterior>
<gml:LinearRing>
<gml:posList
srsName="http://www.opengis.net/gml/srs/epsg.xml/#4979">
37.41142 -121.93132 0
37.41142 -121.93132 25
37.41142 -121.93242 25
37.41142 -121.93242 0
37.41142 -121.93132 0
</gml:posLis>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
<gml:Polygon> <!-- west wall -->
<gml:exterior>
<gml:LinearRing>
<gml:posList
srsName="http://www.opengis.net/gml/srs/epsg.xml/#4979">
37.41142 -121.93243 0
37.41142 -121.93243 25
Mahy Expires July 2, 2005 [Page 9]
Internet-Draft Location Event Package Jan 2005
37.41188 -121.93243 25
37.41188 -121.93243 0
37.41142 -121.93243 0
</gml:posLis>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
<gml:Polygon> <!-- roof -->
<gml:exterior>
<gml:LinearRing>
<gml:posList
srsName="http://www.opengis.net/gml/srs/epsg.xml/#4979">
37.41188 -121.93243 25
37.41188 -121.93132 25
37.41142 -121.93132 25
37.41142 -121.93242 25
37.41188 -121.93243 25
</gml:posLis>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:patches>
</gml:Surface>
</gml:exterior>
</gml:Solid>
</my:Building>
</enterOrExit>
</location-filter>
If the resource enters or exits either the parking garage or any of
the conference rooms (both of which are externally defined), send a
notification:
<location-filter>
<enterOrExit>
<my:ParkingGarage
xlink:href="http://server.example.com/loc-defs/bldg-mgr/parking"/>
</enterOrExit>
<enterOrExit>
<my:ConferenceRooms
xlink:href="http://server.example.com/loc-defs/userdefined/confrooms"/>
</enterOrExit>
</location-filter>
3.1 XML Schema for filter format
The XML Schema for this format is defined below.
Mahy Expires July 2, 2005 [Page 10]
Internet-Draft Location Event Package Jan 2005
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="urn:ietf:params:xml:ns:location-filter"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml">
<xs:element name="location-filter">
<xs:complexType>
<xs:sequence>
<xs:element name="movedHoriz" type="gml:MeasureType"
minOccurs="0" maxOccurs="1"/>
<xs:element name="movedVert" type="gml:MeasureType"
minOccurs="0" maxOccurs="1"/>
<xs:element name="speedExceeds" type="gml:MeasureType"
minOccurs="0" maxOccurs="1"/>
<!-- this type needs to hold an XPath statement -->
<xs:element name="valueChanges" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="enterOrExit" type="gml:FeaturePropertyType"
minOccurs="0" maxOccurs="unbounded"/>
<!-- Do we want to incldue this to allow new filters? -->
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
4. Containment schema
This section describes the schema for describing the resource's
location to a region or list of regions which might contain the
resource. (These regions can be defined dynamically in an
"enterOrExit" element in a subscription filter, or defined on the
notifier using some out-of-band mechanism.) The "pidfResource"
element is placed inside the location-info element in a PIDF-LO
document. The pidfResource element can contain zero or more
"containment" elements. Each containment element has a GML Feature
sub-element (of type "FeaturePropertyType") and a mandatory attribute
which specifies if the pidf resource is inside or outside of the
feature, or if the position of the resource with respect to the
region or region list is undefined. If the subscriber is not
authorized to know the relative position, the notifier MUST NOT
Mahy Expires July 2, 2005 [Page 11]
Internet-Draft Location Event Package Jan 2005
reveal this private information. The RECOMMENDED way to prevent the
subscriber from seeing private location data of this type is to
return a containment element whose position attribute is "undefined".
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="urn:ietf:params:xml:ns:pidf:geopriv10:containment"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml"
xmlns:pr="urn:ietf:params:xml:ns:pidf:geopriv10:containment" >
<xs:element name="pidfResource">
<xs:complexType>
<xs:sequence>
<xs:element ref="pr:containment"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="containment">
<xs:complexType>
<xs:sequence>
<xs:any namespace="http://www.opengis.net/gml"
minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="position" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="inside"></xs:enumeration>
<xs:enumeration value="outside"></xs:enumeration>
<xs:enumeration value="undefined"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
Below is an example PIDF-LO document which indicates that the
resource is inside building 10, not outside the parking garage, and
not permitted to know if the resource is in a conference room. Note
that in GML, these features could be referenced by their unique
identifiers instead.
Mahy Expires July 2, 2005 [Page 12]
Internet-Draft Location Event Package Jan 2005
<?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:pr="urn:ietf:params:xml:ns:pidf:geopriv10:containment"
entity="pres:geotarget@example.com">
<tuple id="sg89ae">
<status>
<gp:geopriv>
<gp:location-info>
<pr:pidfResource>
<pr:containment position="inside">
<my:Building>
<gml:name>Building 10</gml:name>
</my:Building>
</pr:containment>
<pr:containment position="outside">
<my:ParkingGarage
xlink:href="http://server.example.com/loc-defs/bldg-mgr/parking"/>
</pr:containment>
<pr:containment position="undefined">
<my:ConferenceRooms
xlink:href="http://server.example.com/loc-defs/userdefined/confrooms"/>
</pr:containment>
</pr:pidfResource>
</gp:location-info>
<gp:usage-rules>
<gp:retransmission-allowed>yes</gp:retransmission-allowed>
<gp:retention-expiry>2003-06-23T04:57:29Z</gp:retention-expiry>
</gp:usage-rules>
</gp:geopriv>
</status>
<timestamp>2003-06-22T20:57:29Z</timestamp>
</tuple>
</presence>
5. Event Package Formal Definition
5.1 Event Package Name
This document defines a SIP Event Package as defined in RFC 3265 [2].
The event-package token name for this package is:
"location"
Mahy Expires July 2, 2005 [Page 13]
Internet-Draft Location Event Package Jan 2005
5.2 Event Package Parameters
This package does not define any event package parameters.
5.3 SUBSCRIBE Bodies
This package defines a SUBSCRIBE body format in Section 3, which is
used to filter notifications. Subscribers MUST include a location
filter with at least one filter event in every new or updated
subscription request. (A filter is not necessary, nor desirable in
an unsubscription request.)
5.4 Subscription Duration
Subscriptions to this event package MAY range from minutes to weeks.
Subscriptions in hours or days are more typical and are RECOMMENDED.
The default subscription duration for this event package is one hour.
5.5 NOTIFY Bodies
Both subscribers and notifiers MUST implement pidf-lo. Notifiers MAY
send location information in any format acceptable to the subscriber
(based on the subscriber inclusion of these formats in an Accept
header). "application/cpim-pidf+xml"
A future extension MAY define other NOTIFY bodies. If no "Accept"
header is present in the SUBSCRIBE, the body type defined in this
document MUST be assumed.
5.6 Subscriber generation of SUBSCRIBE requests
Each new subscribe request establishes a notification filter.
Subsequent subscriptions keep the same filter unless a new one is
provided. If a new filter is provided in a subscription, it
completely replaces the previous filter.
Subscriber User Agents will typically SUBSCRIBE to location
information for a period of hours or days, and automatically attempt
to re-SUBSCRIBE well before the subscription is completely expired.
If re-subscription fails, the Subscriber SHOULD periodically retry
again until a subscription is successful, taking care to backoff to
avoid network congestion. If a subscription has expired, new
re-subscriptions MUST use a new Call-ID.
The Subscriber MAY also explicitly fetch the current status at any
time. The subscriber SHOULD renew its subscription immediately after
a reboot, or when the subscriber's network connectivity has just been
re-established.
Mahy Expires July 2, 2005 [Page 14]
Internet-Draft Location Event Package Jan 2005
The Subscriber MUST be prepared to receive and process a NOTIFY with
new state immediately after sending a new SUBSCRIBE, a SUBSCRIBE
renewal, an unsubscribe, or a fetch; or at any time during the
subscription.
5.7 Notifier processing of SUBSCRIBE requests
When a Notifier receives SUBSCRIBE messages with the location
event-type, it SHOULD authenticate the subscription request. The
Notifier MAY choose to provide very coarse location information to
anonymous subscribers (ex: country, postal code, time zone). If
authentication is successful, the Notifier SHOULD authorize the
subscriber. In addition, the Notifier MAY provide different location
granularity or obfuscation depending on the identity of the
subscriber. If no location-filter is provided, the Notifier SHOULD
reject the subscription with a 403 Forbidden response. The Notifier
MAY further limit the duration of the subscription to an
administrator defined amount of time as described in SIP Events.
For new subscriptions, or anytime the location-filter is updated by
the subscriber, the notifier MUST include appropriate containment
locations for every feature mentioned in an enterOrExit element in
the corresponding filter. If the subscriber is not authorized to
receive this information, the notifier MUST either include each these
locations with the value of undefined, or alternatively, send a 403
Forbidden response to the subscriber.
5.8 Notifier generation of NOTIFY requests
Immediately after a subscription is accepted, the Notifier MUST send
a NOTIFY with the current location information as appropriate based
on the identity of the subscriber. This allows the Subscriber to
resynchronize its state. When the location changes sufficiently to
trigger any of the filter events in the current location-filter for
the subscription, the notifier sends a notification with the new
location information.
5.9 Subscriber processing of NOTIFY requests
The Subscriber MUST be prepared to receive NOTIFYs from different
Contacts corresponding to the same SUBSCRIBE. (the SUBSCRIBE may
have been forked).
5.10 Handling of Forked Requests
Forked requests are allowed for this event type and may install
multiple subscriptions. Note that different Notifiers MAY provide
(different) location information for different tuples. In this case,
Mahy Expires July 2, 2005 [Page 15]
Internet-Draft Location Event Package Jan 2005
multiple instances representing the same presentity have different
locations.
In other cases, different Notifiers might provide different location
for the same tuple. This presents an administrative problem.
Certainly it is acceptable for me to express my location as "In San
Jose, California, USA" and at specific coordinates or a specific
address. Conventions for expressing multiple locations or multiple
location formats are discussed in
[I-D.winterbottom-geopriv-pidf-lo-profile].
5.11 Rate of notifications
A Notifier MAY choose to hold NOTIFY requests in "quarantine" for a
short administrator-defined period (milliseconds or seconds) when the
location is changing rapidly. Requests in the quarantine which
become invalid are replaced by newer notifications, thus reducing the
total volume of notifications. This behavior is encouraged for
implementations with heavy interactive use.
Notifiers SHOULD NOT generate NOTIFY requests more frequently than
ten per second, nor more frequently than thirty in a thirty-second
period of time.
5.12 State Agents and Lists
This document does not preclude implementations from building state
agents which support this event package. Likewise, this document
does not preclude subscriptions to lists of resources using the event
list extension [13].
5.13 Behavior of a Proxy Server
There are no additional requirements on a SIP Proxy, other than to
transparently forward the SUBSCRIBE and NOTIFY methods as required in
SIP.
6. Examples of Usage
The examples shown below are for informational purposes only. For a
normative description of the event package, please see sections 3 and
5 of this document.
In the example call flow below, the Subscriber subscribes to the
status of the Notifier's location. Via headers are omitted for
clarity. [TODO:]
Mahy Expires July 2, 2005 [Page 16]
Internet-Draft Location Event Package Jan 2005
7. Security Considerations
Location information is typically very privacy sensitive. At
minimum, subscriptions to this event package SHOULD be authenticated
and properly authorized. Furthermore, GEOPRIV requires that
notifications MUST be encrypted and integrity protected using either
end-to-end mechanisms, or the hop-by-hop protection afforded messages
sent to SIPS URIs.
Implementations of this event package MUST implement the sips:
scheme, and MUST implement the security requirements described in
PIDF-LO [3]. In addition, all SIP implementations are already
requried to implement Digest authentication.
Additional privacy and security considerations are discussed in
detail in [I-D.winterbottom-geopriv-pidf-lo-profile] and in SIP [1]
and SIP Events [2].
8. IANA Considerations
8.1 SIP Event Package Registration for 'location'
Package name: location
Type: package
Contact: [Mahy]
Published Specification: This document.
Mahy Expires July 2, 2005 [Page 17]
Internet-Draft Location Event Package Jan 2005
8.2 MIME Registration for application/location-delta-filter+xml
MIME media type name: application
MIME subtype name: application/location-delta-filter+xml
Required parameters: none.
Optional parameters: none.
Encoding considerations: Same as for XML.
Security considerations: See the "Security Considerations"
section in this document.
Interoperability considerations: none
Published specification: This document.
Applications which use this media: The
application/location-delta-filter+xml application subtype supports
the exchange of filters to throttle asynchronous notifications of
location information in SIP networks.
Additional information:
1. Magic number(s): N/A
2. File extension(s): N/A
3. Macintosh file type code: N/A
8.3 URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:location-filter
This section registers a new XML namespace, as per the guidelines in
[12].
URI: The URI for this namespace is
urn:ietf:params:xml:ns:location-filter.
Registrant Contact: IETF, GEOPRIV working group, <geopriv@ietf.org>,
Rohan Mahy <rohan@ekabal.com>.
XML:
Mahy Expires July 2, 2005 [Page 18]
Internet-Draft Location Event Package Jan 2005
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Location Filter Namespace</title>
</head>
<body>
<h1>Namespace for PIDF-LO Location Filters</h1>
<h2>urn:ietf:params:xml:ns:location-filter</h2>
<p>See <a href="[[[URL of published RFC]]]">RFCXXXX</a>.</p>
</body>
</html>
END
8.4 Schema Registration For location-filter
This specification registers a schema, as per the guidelines in in
[12].
URI: please assign.
Registrant Contact: IETF, GEOPRIV Working Group
(geopriv@ietf.org), Rohan Mahy (rohan@ekabal.com).
XML: The XML can be found as the sole content of Section 3.1.
8.5 URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:pidf:geopriv10:containment
This section registers a new XML namespace, as per the guidelines in
[12].
URI: The URI for this namespace is
urn:ietf:params:xml:ns:pidf:geopriv10:containment.
Registrant Contact: IETF, GEOPRIV working group, <geopriv@ietf.org>,
Rohan Mahy <rohan@ekabal.com>.
XML:
Mahy Expires July 2, 2005 [Page 19]
Internet-Draft Location Event Package Jan 2005
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>PIDF-LO Location Containment Namespace</title>
</head>
<body>
<h1>Namespace for PIDF-LO location containment elements</h1>
<h2>urn:ietf:params:xml:ns:pidf:geopriv10:containment</h2>
<p>See <a href="[[[URL of published RFC]]]">RFCXXXX</a>.</p>
</body>
</html>
END
8.6 Schema Registration For containment
This specification registers a schema, as per the guidelines in in
[12].
URI: please assign.
Registrant Contact: IETF, GEOPRIV Working Group
(geopriv@ietf.org), Rohan Mahy (rohan@ekabal.com).
XML: The XML can be found as the sole content of Section 4.
9. Acknowledgments
Thanks to Allan Thompson, James Winterbottom, and Martin Thomson for
their comments.
10. References
10.1 Normative References
[1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
[2] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002.
[3] Peterson, J., "A Presence-based GEOPRIV Location Object Format",
draft-ietf-geopriv-pidf-lo-03 (work in progress), September
2004.
Mahy Expires July 2, 2005 [Page 20]
Internet-Draft Location Event Package Jan 2005
[4] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[5] Bray, T., Paoli, J., Sperberg-McQueen, C. and E. Maler,
"Extensible Markup Language (XML) 1.0 (2nd ed)", W3C REC-xml,
October 2000, <http://www.w3.org/TR/REC-xml>.
[6] Thompson, H., Beech, D., Maloney, M. and N. Mendelsohn, "XML
Schema Part 1: Structures", W3C REC-xmlschema-1, May 2001,
<http://www.w3.org/TR/xmlschema-1/>.
[7] Bray, T., Hollander, D. and A. Layman, "Namespaces in XML", W3C
REC-xml-names, January 1999,
<http://www.w3.org/TR/REC-xml-names>.
[8] Clark, J. and S. DeRose, "XML Path Language (XPath) Version
1.0", W3C Recommendation xpath, November 1999,
<http://www.w3.org/TR/xpath>.
[9] OpenGIS, "Open Geography Markup Language (GML) Implementation
Specification", OpenGIS OGC 02-023r4, January 2003,
<http://www.opengis.org/techno/implementation.htm>.
10.2 Informational References
[10] Moats, R., "URN Syntax", RFC 2141, May 1997.
[11] Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
August 1999.
[12] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
January 2004.
[13] Roach, A., Rosenberg, J. and B. Campbell, "A Session Initiation
Protocol (SIP) Event Notification Extension for Resource
Lists", draft-ietf-simple-event-list-07 (work in progress),
January 2005.
Author's Address
Rohan Mahy
Airespace
110 Nortech Parkway
San Jose, CA 95134
USA
EMail: rohan@ekabal.com
Mahy Expires July 2, 2005 [Page 21]
Internet-Draft Location Event Package Jan 2005
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 (2005). 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.
Mahy Expires July 2, 2005 [Page 22]
| PAFTECH AB 2003-2026 | 2026-04-23 11:42:37 |