RFC 6447
Filtering Location Notifications in the Session Initiation Protocol (SIP)
Filtering Location Notifications in the Session Initiation Protocol (SIP) π
okay bestie, this is the spec for RFC 6447 π It's a Standards Track doc from January 2012, and the title block lists three authors: R. Mahy (Individual), B. Rosen (NeuStar), and H. Tschofenig (Nokia Siemens Networks). It has ISSN 2070-1721. Nothing in the title block says it obsoletes or updates another RFC πΈ
Abstract β¨
okay so this doc is all about filters that stop location pings from spamming you π«Ά they only let through the notifications that actually matter. These filters are an extension to RFC 4661, which is an XML-based format for event notification filtering π they're also based on RFC 3856, the SIP presence event package. The location info itself still goes out in existing location formats, wrapped in the Presence Information Data Format Location Object (PIDF-LO) π¦
Status of This Memo β¨
this one is an Internet Standards Track document π₯
it's a product of the Internet Engineering Task Force (IETF), so it has the consensus of the IETF community π it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). if you want more on Internet Standards, check Section 2 of RFC 5741 π
the current status, any errata, and how to give feedback are at http://www.rfc-editor.org/info/rfc6447 π
Copyright Notice π
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved.
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they were on the publication date π read those carefully, because they spell out your rights and restrictions for this doc. Code Components pulled out of this doc must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License π§
Table of Contents π
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Filter Definitions . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Movement . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Speed Changes . . . . . . . . . . . . . . . . . . . . . . 5
3.3. Element Value Changes . . . . . . . . . . . . . . . . . . 5
3.4. Entering or Exiting a Region . . . . . . . . . . . . . . . 8
3.5. Location Type . . . . . . . . . . . . . . . . . . . . . . 10
3.6. Rate Control . . . . . . . . . . . . . . . . . . . . . . . 12
4. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Security Considerations . . . . . . . . . . . . . . . . . . . 15
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
6.1. URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:location-filter . . . . . . . . . . 16
6.2. Schema Registration for location-filter . . . . . . . . . 16
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 17
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.1. Normative References . . . . . . . . . . . . . . . . . . . 17
9.2. Informative References . . . . . . . . . . . . . . . . . . 18
1. Introduction π¦
okay so conveying location info wrapped in a PIDF-LO [RFC4119] document inside SIP is covered in [SIP-LOC] π there's also an async option that uses the SIP event notification mechanisms (see RFC 3265 [RFC3265]). that one sends PIDF-LO info using the presence event package [RFC3856]. this doc focuses on the event notification paradigm β¨
deciding when to send location notifications is honestly harder than for other kinds of notifications π location can be measured as a continuous gradient, so it's hard to know when a change is big enough to be worth a ping. event notifications [RFC3265] can use filters (see RFC 4661 [RFC4661]) to cut down how many get sent π«Ά this doc defines an extension to RFC 4661 [RFC4661] that only lets through location events that are relevant to the subscriber. these filters stick around until they get replaced by a newer filter or the subscription itself ends π
the frequency you need depends a LOT on the geo app πΈ the subscriber should be able to get async notifications at the right frequency and granularity, without getting flooded by a pile of notifications that don't matter to the app π
this doc defines new event filters and also describes some others that already exist, which might matter to a subscriber doing location filtering π§ with the functionality here, notifications can be sent in these cases:
- the Target moves more than a specified distance since the last notification (see Section 3.1).
- the Target exceeds a specified speed (see Section 3.2).
- the Target enters or exits a 2-dimensional region, described by a circle or a polygon (see Section 3.4).
- one or more of the values of the specified civic location have changed for the location of the Target (see Section 3.3). For example, the value of the civic address '<A1>' element has changed from 'California' to 'Nevada'.
- the type of location information requested (see Section 3.5) changes, for example, from civic to geodetic location or vice versa.
- a certain amount of time passes (see Section 3.6).
2. Terminology π
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 [RFC2119].
this doc also reuses terminology from [RFC6280] π
3. Filter Definitions π
this spec builds on a bunch of other specs, as Section 1 mentioned π to cut down the number of options (which lowers the chance of interop problems), the parts of [RFC4661] listed here MUST be implemented: the <ns-bindings> element (see Section 3.3 of [RFC4661]); the <filter> element (Section 3.4 of [RFC4661]); and the <trigger> element (Section 3.6 of [RFC4661]), except for the <added> and <removed> sub-elements β¨
3.1. Movement π¦
the <moved> element MUST contain a value in meters. it's the minimum distance the resource has to have moved from where it was when the last notification was sent, before this event fires πΈ the distance MUST be measured in meters absolutely from the point of the last notification, and it has to include vertical movement too π§ the <moved> element MUST NOT appear more than once as a child of the <filter> element π ββοΈ
<?xml version="1.0" encoding="UTF-8"?>
<filter-set
xmlns="urn:ietf:params:xml:ns:simple-filter"
xmlns:lf="urn:ietf:params:xml:ns:location-filter">
<filter id="123" uri="sip:presentity@example.com">
<trigger>
<lf:moved>300</lf:moved>
</trigger>
</filter>
</filter-set>
Figure 1: Movement Filter Example
3.2. Speed Changes ποΈ
speed changes can be filtered by combining RFC 4661 stuff with the PIDF-LO extensions for spatial orientation, speed, heading, and acceleration from [RFC5962] π the value of the <speed> element from [RFC5962] MUST be defined in meters per second. also, the condition can be met by a change on any axis, altitude included π¦
figure 2 shows an example of a trigger that fires when the Target's speed changes by 3 meters per second π
<?xml version="1.0" encoding="UTF-8"?>
<filter-set xmlns="urn:ietf:params:xml:ns:simple-filter">
<ns-bindings>
<ns-binding prefix="dyn"
urn="urn:ietf:params:xml:schema:pidf:dynamic"/>
</ns-bindings>
<filter id="123" uri="sip:presentity@example.com">
<trigger>
<changed by="3">
//dyn:speed
</changed>
</trigger>
</filter>
</filter-set>
Figure 2: Speed Change Example
an implementation MUST support <ns-bindings> to replace the namespace prefix β¨ the XPath expression MUST start with a '//' followed by a single element. no other form of XPath expression is supported π ββοΈ the <changed> element has a few attributes, but only the 'by' attribute MUST be implemented by this spec π
3.3. Element Value Changes β¨
okay so changes in values, like civic location info, are covered by the base functionality from RFC 4661 using the <changed> element π
no cap, it's already built in
here's a filter that fires when the Target's location changes from 'FR' (France) to some other country π«π·βοΈ
<?xml version="1.0" encoding="UTF-8"?>
<filter-set xmlns="urn:ietf:params:xml:ns:simple-filter">
<ns-bindings>
<ns-binding prefix="ca"
urn="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"/>
</ns-bindings>
<filter id="123" uri="sip:presentity@example.com">
<trigger>
<changed from="FR">//ca:country</changed>
</trigger>
</filter>
</filter-set>
Figure 3: Element Value Change Example (Country Change)
now, if you want to know whether ANY one element in a list of CAtypes changes, the elements have to go into separate <changes> filters so the subscriber gets notified when any of the element values change π«Ά Figure 4 shows this and makes the difference super clear π₯
(A change in value of ANY of the five tokens triggers an event.)
<?xml version="1.0" encoding="UTF-8"?>
<filter-set xmlns="urn:ietf:params:xml:ns:simple-filter">
<ns-bindings>
<ns-binding prefix="ca"
urn="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"/>
</ns-bindings>
<filter id="123" uri="sip:presentity@example.com">
<trigger>
<changed>//ca:country</changed>
</trigger>
<trigger>
<changed>//ca:A1</changed>
</trigger>
<trigger>
<changed>//ca:A2</changed>
</trigger>
<trigger>
<changed>//ca:A3</changed>
</trigger>
<trigger>
<changed>//ca:PC</changed>
</trigger>
</filter>
</filter-set>
Figure 4: Element Value Change Example
finally, Figure 5 is the one where a notification goes out when the civic address tokens A3 and PC change. BOTH elements have to change for the <trigger> element to evaluate to TRUE π
(Only a change in BOTH tokens triggers an event.)
<?xml version="1.0" encoding="UTF-8"?>
<filter-set xmlns="urn:ietf:params:xml:ns:simple-filter">
<ns-bindings>
<ns-binding prefix="ca"
urn="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"/>
</ns-bindings>
<filter id="123" uri="sip:presentity@example.com">
<trigger>
<changed>//ca:A3</changed>
<changed>//ca:PC</changed>
</trigger>
</filter>
</filter-set>
Figure 5: Element Value Change Example
Note: the civic address tokens country, A1, A2, ..., A6 are hierarchical π³ so a change in one token will probably also change the tokens lower down. For example, a change in A3 ('city or town') may cause a change in A4, A5, and A6.
now the rules π An implementation MUST support <ns-bindings> to replace the namespace prefix. The XPath expression MUST start with a '//' followed by a single element. No other form of XPath expression is supported, and no other variant is supported either. The <changed> element comes with a few attributes, and the 'by', 'to', and 'from' attributes MUST be implemented to support this specification π
3.4. Entering or Exiting a Region πΈ
the <enterOrExit> condition is satisfied when the Target enters or exits a 2-dimensional region, which is either a polygon (Section 5.2.2 of [RFC5491]) or a circle (Section 5.2.3 of [RFC5491]). The <enterOrExit> element MUST contain either a polygon or a circle as a child element. It MUST NOT have more than one polygon and/or circle π
ββοΈ
if the Target was previously outside the region, the notifier sends a notification once the Target's location is within the region with at least 50% confidence. Similarly, if the Target starts inside the region, a notification gets sent when the Target's location moves outside the region with at least 50% confidence π¦
ngl this part is lowkey tricky. 50% confidence that the Target is inside does NOT mean 50% outside. The confidence that the location is within the region, plus the confidence that it's outside, is limited to the confidence of the location. The total depends on how confident the location is, which is always less than 100% (95% is recommended in [RFC5491]). The upside is that notifications are naturally limited: small movements at the borders of the region (relative to the uncertainty of the location) don't trigger notifications. big brain move π§ β¨
Figure 6 shows filter examples where a notification is sent when the Target enters or exits an area described by a circle, and Figure 7 describes an area using a polygon πΊοΈ
<?xml version="1.0" encoding="UTF-8"?>
<filter-set
xmlns="urn:ietf:params:xml:ns:simple-filter"
xmlns:lf="urn:ietf:params:xml:ns:location-filter"
xmlns:gml="http://www.opengis.net/gml"
xmlns:gs="http://www.opengis.net/pidflo/1.0">
<filter id="123" uri="sip:presentity@example.com">
<trigger>
<lf:enterOrExit>
<gs:Circle
srsName="urn:ogc:def:crs:EPSG::4326">
<gml:pos>42.5463 -73.2512</gml:pos>
<gs:radius
uom="urn:ogc:def:uom:EPSG::9001">
850.24
</gs:radius>
</gs:Circle>
</lf:enterOrExit>
</trigger>
</filter>
</filter-set>
Figure 6: <enterOrExit> Circle Filter Example
<?xml version="1.0" encoding="UTF-8"?>
<filter-set
xmlns="urn:ietf:params:xml:ns:simple-filter"
xmlns:lf="urn:ietf:params:xml:ns:location-filter"
xmlns:gml="http://www.opengis.net/gml">
<filter id="123" uri="sip:presentity@example.com">
<trigger>
<lf:enterOrExit>
<gml:Polygon srsName="urn:ogc:def:crs:EPSG::4326">
<gml:exterior>
<gml:LinearRing>
<gml:pos>43.311 -73.422</gml:pos>
<!--A-->
<gml:pos>43.111 -73.322</gml:pos>
<!--F-->
<gml:pos>43.111 -73.222</gml:pos>
<!--E-->
<gml:pos>43.311 -73.122</gml:pos>
<!--D-->
<gml:pos>43.411 -73.222</gml:pos>
<!--C-->
<gml:pos>43.411 -73.322</gml:pos>
<!--B-->
<gml:pos>43.311 -73.422</gml:pos>
<!--A-->
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</lf:enterOrExit>
</trigger>
</filter>
</filter-set>
Figure 7: <enterOrExit> Polygon Filter Example
3.5. Location Type π
the <locationType> element MAY be included as a child element of the <what> element π It holds a list of the location information types the subscriber is asking for. Here are the possible values:
- any: The Notifier SHOULD attempt to provide location information in all forms available to it.
- geodetic: The Notifier SHOULD return a location by value in the form of a geodetic location.
- civic: The Notifier SHOULD return a location by value in the form of a civic address.
the Notifier SHOULD return the requested location type or types. Which types it returns also depends on the optional 'exact' attribute. If 'exact' is set to "true", then the Notifier MUST return either the requested location type or no location information at all. The 'exact' attribute doesn't apply (it's ignored) when someone asks for "any" π
if you ask for specific locationType(s) and 'exact' is "false", the Notifier MAY provide additional location types, or it MAY provide alternative types if the request can't be satisfied for a requested location type π§
if the <locationType> element is absent, a value of "any" MUST be assumed as the default π
the Notifier SHOULD provide civic and geodetic location info in the response in the same order they were included in the "locationType" element of the request, if both were explicitly requested. The main reason to include specific location types with 'exact' set to "false" is to make sure you get the available locations in a specific order π― For example, a subscription for "civic" (with 'exact' set to "false") could come back with any of these:
- civic
- civic, geodetic
- geodetic (only if civic is not available)
the default value of "false" for 'exact' lets the Notifier choose to return something beyond what you specified, like a set of location URIs when only a civic location was requested β¨
here's Figure 8, which uses the <locationType> element with the 'exact' attribute π
<?xml version="1.0" encoding="UTF-8"?>
<filter-set
xmlns="urn:ietf:params:xml:ns:simple-filter"
xmlns:lf="urn:ietf:params:xml:ns:location-filter">
<filter id="123" uri="sip:presentity@example.com">
<what>
<lf:locationType exact="true">
geodetic
</lf:locationType>
</what>
</filter>
</filter-set>
Figure 8: <locationType> Filter Example
3.6. Rate Control π
Okay so [RFC6446] levels up the SIP events framework with three Event header field parameters. Subscribers can set a minimum, a maximum, and an adaptive minimum for how many event notifications the notifier sends them π
. That means the subscriber is basically in charge of the notification stream, which is super useful if you don't want to get flooded π. This document only uses two of them: min-rate (the minimum notifications per second) and max-rate (the maximum notifications per second) π. From everything in [RFC6446], only these two need to be implemented β¨. Also, whenever the time since the latest notification goes past the interval for 1 / "min-rate", the notifier sends the whole current state again, just like it does after a subscription refresh π.
The notifier has to send a NOTIFY request right after the subscription gets created π«Ά. If there's no state available yet, that NOTIFY can go out with no content π. Then a separate NOTIFY with location gets generated later, so that the rate of notifications since the last NOTIFY lands somewhere between min-rate and max-rate π¦. Location apps care a LOT about how that first NOTIFY behaves and what it returns, like in emergency call routing π¨. The first NOTIFY might not have the full state, and that's totally fine, it's just how it works π.
Subscriber Notifier
|---SUBSCRIBE(1)--->| Create subscription (w/large value
|<-------200--------| for min-rate and max-rate)
|<-----NOTIFY(2)----| Return initial notify with no state
|--------200------->|
| ... |
|<-----NOTIFY(3)----| Return full state (between min-rate
|--------200------->| and max-rate)
|---SUBSCRIBE(4)--->| Update subscription (to update
|<-------200--------| min-rate and max-rate)
Figure 9: SUBSCRIBE/NOTIFY with Rate Control
Figure 9 shows the whole SUBSCRIBE/NOTIFY flow π. The first SUBSCRIBE (message 1) comes with filters and a min-rate rate control parameter π§. Sometimes you need some location info really fast, even if it's kind of fuzzy, because more accurate info might show up later β¨. Emergency call routing is the classic example: an emergency services routing proxy needs location good enough for routing pretty quickly, and then a Public Safety Answering Point asks for location to dispatch help ππ.
So to get location in a timely way with SUBSCRIBE/NOTIFY, it is RECOMMENDED that the first SUBSCRIBE includes a min-rate with a big value, which means a super short wait before the next notification πΈ. Then you update it in a later message to something more sensible π. This does the same job as the responseTime attribute in Section 6.1 of [RFC5985] π
. So the min-rate on that first request is way bigger (way faster) than the value you update it to later π. Depending on what min-rate is set to, the notifier might send the initial NOTIFY (message 2) right away with no body if there's no location info yet π. The good stuff can then show up in the next NOTIFY (message 3) π. You can update min-rate either in the 200 response to the NOTIFY that carries location state (message 3), or in a later SUBSCRIBE request (message 4) π¦.
4. XML Schema π
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="urn:ietf:params:xml:ns:location-filter"
xmlns:filter="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="enterOrExit" type="gml:GeometryPropertyType"/>
<xs:element name="moved" type="filter:movedType"/>
<xs:complexType name="movedType">
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="locationType" type="filter:locationTypeType"/>
<xs:simpleType name="locationTypeBase">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="any"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="filter:locationTypeList">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="locationTypeList">
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="civic"/>
<xs:enumeration value="geodetic"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<xs:complexType name="locationTypeType">
<xs:simpleContent>
<xs:extension base="filter:locationTypeBase">
<xs:attribute name="exact" type="xs:boolean"
use="optional" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
Figure 10: XML Schema
5. Security Considerations π
This document only specifies one element, namely filters, which gets used inside bigger systems π§©. Because of that, it builds on a bunch of other specs for security of the whole solution, namely:
- the SIP event notification mechanism, described in RFC 3265 [RFC3265], which defines the SUBSCRIBE/NOTIFY messages.
- the presence event package, described in RFC 3856 [RFC3856], which is a concrete version of the general event notification framework.
- the filter framework, described in RFC 4661 [RFC4661], which offers a way to cut down on how many notifications get sent.
Last but not least, this document indirectly (through the SIP presence event package) relies on PIDF-LO, described in RFC 4119 [RFC4119], as the XML container that carries location information π¦.
Each of the documents above has its own Security Considerations section, but the security and privacy stuff is best covered by the SIP presence event package, so check Section 9 of [RFC3856], plus the GEOPRIV architectural description in [RFC6280] π΅οΈββοΈ.
The authorization policies that limit access to location information come from other protocols, like Common Policy [RFC4745], Geolocation Policy [GEO-POLICY], or the newer work around HTTP-Enabled Location Delivery (HELD) context [HELD] ποΈ. Even though [GEO-POLICY] defines a standardized format for geolocation authorization policies, it doesn't define any specific policies for controlling filters π.
This document extends the filter framework with location-specific filters πΊοΈ. Local policies might be tied to using certain filter constructs, and to how many notifications specific filter settings could cause π. Uploading filters have a big impact on how a server handles the request π³. So it's especially important that messages with this extension are authenticated and authorized π. RFC 4661 [RFC4661] discusses this threat and proposes authentication and authorization solutions that apply to this specification π.
6. IANA Considerations π
6.1. URN Sub-Namespace Registration for urn:ietf:params:xml:ns:location-filter π¦
This section registers a new XML namespace, following the guidelines in [RFC3688] π.
- URI:
urn:ietf:params:xml:ns:location-filter - Registrant Contact: IETF, GEOPRIV working group, <geopriv@ietf.org>, as delegated by the IESG <iesg@ietf.org>.
- XML:
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="http://www.rfc-editor.org/rfc/rfc6447.txt">
RFC 6447</a>.</p>
</body>
</html>
END
6.2. Schema Registration for location-filter π§Ύ
This specification registers a schema, following the guidelines in [RFC3688] β¨.
- URI:
urn:ietf:params:xml:schema:location-filter - Registrant Contact: IETF, GEOPRIV Working Group (geopriv@ietf.org), as delegated by the IESG (iesg@ietf.org).
- XML: The XML can be found as the sole content of Section 4 π.
7. Contributors π«Ά
We would like to thank Martin Thomson and James Polk for their contributions to this document π·.
8. Acknowledgments π
Thanks to Richard Barnes, Alissa Cooper, Randall Gellens, Carl Reed, Ben Campbell, Adam Roach, Allan Thomson, and James Winterbottom for their comments π .
Furthermore, we would like to thank Alexey Melnikov for his IESG review comments π.
9. References π
9.1. Normative References
Okay bestie, these are the must-reads π Every one of these is load-bearing, so no skipping! π
[GML] OpenGIS, "Open Geography Markup Language (GML)
Implementation Specification", OpenGIS OGC 02-023r4,
January 2003,
<http://www.opengis.org/techno/implementation.htm>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific
Event Notification", RFC 3265, June 2002.
[RFC3856] Rosenberg, J., "A Presence Event Package for the
Session Initiation Protocol (SIP)", RFC 3856,
August 2004.
[RFC4119] Peterson, J., "A Presence-based GEOPRIV Location Object
Format", RFC 4119, December 2005.
[RFC4661] Khartabil, H., Leppanen, E., Lonnfors, M., and J.
Costa-Requena, "An Extensible Markup Language (XML)-
Based Format for Event Notification Filtering",
RFC 4661, September 2006.
[RFC5491] Winterbottom, J., Thomson, M., and H. Tschofenig,
"GEOPRIV Presence Information Data Format Location
Object (PIDF-LO) Usage Clarification, Considerations,
and Recommendations", RFC 5491, March 2009.
[RFC5962] Schulzrinne, H., Singh, V., Tschofenig, H., and M.
Thomson, "Dynamic Extensions to the Presence
Information Data Format Location Object (PIDF-LO)",
RFC 5962, September 2010.
[RFC6280] Barnes, R., Lepinski, M., Cooper, A., Morris, J.,
Tschofenig, H., and H. Schulzrinne, "An Architecture
for Location and Location Privacy in Internet
Applications", BCP 160, RFC 6280, July 2011.
[RFC6446] Niemi, A., Kiss, K., and S. Loreto, "Session Initiation
Protocol (SIP) Event Notification Extension for
Notification Rate Control", RFC 6446, January 2012.
9.2. Informative References
These ones are the helpful extras π§ Not strictly required to build the thing, but SO worth a read for the backstory β¨
[GEO-POLICY] Schulzrinne, H., Tschofenig, H., Cuellar, J., Polk, J.,
Morris, J., and M. Thomson, "Geolocation Policy: A
Document Format for Expressing Privacy Preferences for
Location Information", Work in Progress, October 2011.
[HELD] Winterbottom, J., Tschofenig, H., and M. Thomson,
"Location URI Contexts in HTTP-Enabled Location
Delivery (HELD)", Work in Progress, October 2009.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81,
RFC 3688, January 2004.
[RFC4745] Schulzrinne, H., Tschofenig, H., Morris, J., Cuellar,
J., Polk, J., and J. Rosenberg, "Common Policy: A
Document Format for Expressing Privacy Preferences",
RFC 4745, February 2007.
[RFC5985] Barnes, M., "HTTP-Enabled Location Delivery (HELD)",
RFC 5985, September 2010.
[SIP-LOC] Polk, J., Rosen, B., and J. Peterson, "Location
Conveyance for the Session Initiation Protocol", Work
in Progress, September 2011.
Authors' Addresses π
Meet the squad who wrote this! π«Ά
Rohan Mahy
Individual
EMail: rohan@ekabal.com
Brian Rosen
NeuStar
470 Conrad Dr.
Mars, PA 16046
US
Phone: +1 724 382 1051
EMail: br@brianrosen.net
Hannes Tschofenig
Nokia Siemens Networks
Linnoitustie 6
Espoo 02600
Finland
Phone: +358 (50) 4871445
EMail: Hannes.Tschofenig@gmx.net
URI: http://www.tschofenig.priv.at
π¦ where this page comes from
- ietf: rfc6447 2012-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms