| < draft-ietf-sip-location-conveyance-06.txt | draft-ietf-sip-location-conveyance-07.txt > | |||
|---|---|---|---|---|
| SIP Working Group James Polk | SIP Working Group James Polk | |||
| Internet Draft Cisco Systems | Internet Draft Cisco Systems | |||
| Expiration: July 2nd, 2007 Brian Rosen | Expiration: Aug 12th, 2007 Brian Rosen | |||
| NeuStar | Intended Status: Standards Track NeuStar | |||
| Session Initiation Protocol Location Conveyance | Session Initiation Protocol Location Conveyance | |||
| draft-ietf-sip-location-conveyance-06.txt | draft-ietf-sip-location-conveyance-07.txt | |||
| Jan 2nd, 2007 | Feb 12th, 2007 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
| at any time. It is inappropriate to use Internet-Drafts as | at any time. It is inappropriate to use Internet-Drafts as | |||
| reference material or to cite them other than as "work in | reference material or to cite them other than as "work in | |||
| progress." | progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on July 2nd, 2007. | This Internet-Draft will expire on August 12th, 2007. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2007). | |||
| Abstract | Abstract | |||
| This document defines an extension to the Session Initiation | This document defines an extension to the Session Initiation | |||
| Protocol (SIP) to convey geographic location information from one | Protocol (SIP) to convey geographic location information from one | |||
| SIP entity to another SIP entity. The extension covers end to end | SIP entity to another SIP entity. The extension covers end to end | |||
| skipping to change at page 2, line 48 ¶ | skipping to change at page 2, line 48 ¶ | |||
| Appendix B. Changes from Prior Versions . . . . . . . . . . 29 | Appendix B. Changes from Prior Versions . . . . . . . . . . 29 | |||
| Intellectual Property and Copyright Statements . . . . . . . 34 | Intellectual Property and Copyright Statements . . . . . . . 34 | |||
| 1. Introduction | 1. Introduction | |||
| This document describes how Location can be "conveyed" (that is, | This document describes how Location can be "conveyed" (that is, | |||
| sent on the Internet) from a SIP user agent, or in some | sent on the Internet) from a SIP user agent, or in some | |||
| circumstances a proxy server acting on behalf of a user agent, to | circumstances a proxy server acting on behalf of a user agent, to | |||
| another entity using the SIP [RFC3261] protocol. Here "Location" is | another entity using the SIP [RFC3261] protocol. Here "Location" is | |||
| a description of the physical geographical area where a User Agent | a description of the physical geographical area where a User Agent | |||
| currently exists. We use the term "conveyance" to distinguish other | currently exists. This document uses the term "conveyance" to | |||
| circumstances when a location is used such as how the entity | describe scenarios in which a SIP user agent client (UAC) is telling | |||
| conveying location using this extension determined where the | or informing a user agent server (UAS) where the UAC is. This is | |||
| location was (using, for example, an Assisted GPS mechanism) or a | different from a UAC asking or seeking the location of where the UAS | |||
| protocol by which the entity acquired the location it is conveying | is. Conveyance is a push model, where seeking is a pull model, and | |||
| from another entity. | therefore not discussed here. | |||
| Geographic location in the IETF is discussed in RFC 3693 (Geopriv | Geographic location in the IETF is discussed in RFC 3693 (Geopriv | |||
| Requirements) [RFC3693]. It defines a "target" as the entity whose | Requirements) [RFC3693]. It defines a "target" as the entity whose | |||
| location is being transmitted, in this case, it is the user agent's | location is being transmitted, in this case, it is the user agent's | |||
| (UA) location. A [RFC3693] "using protocol" defines how a "location | (UA) location. A [RFC3693] "using protocol" defines how a "location | |||
| server" transmits a "location object" to a "location recipient" | server" transmits a "location object" to a "location recipient" | |||
| while maintaining the contained privacy intentions of the target | while maintaining the contained privacy intentions of the target | |||
| intact. This document describes the extension to SIP for how it | intact. This document describes the extension to SIP for how it | |||
| complies with the using protocol requirements, where the location | complies with the using protocol requirements, where the location | |||
| server is a User Agent or Proxy Server and the location recipient is | server is a User Agent or Proxy Server and the location recipient is | |||
| another User Agent or Proxy Server. | another User Agent or Proxy Server. | |||
| Location can be transmitted by-value or by-reference. The "value" | Location can be transmitted by-value or by-reference. The "value" | |||
| used in this document is a location object as described in | in this SIP extension is in the form of a Presence Information Data | |||
| [RFC4119], that is, a PIDF-LO. Location-by-value refers to a user | Format - Location Object, or PIDF-LO, as described in [RFC4119]. A | |||
| agent including a PIDF-LO as a body part of a SIP message, sending | PIDF-LO is an XML Schema specifically for carrying geographic | |||
| that location object to another SIP element. Location-by-reference | location of a thing. Location-by-value refers to a user agent | |||
| including a PIDF-LO as a body part of a SIP message, sending that | ||||
| location object to another SIP element. Location-by-reference | ||||
| refers to a user agent or proxy server including a URI in a SIP | refers to a user agent or proxy server including a URI in a SIP | |||
| message which can be exchanged by a location recipient for a | message which can be exchanged by a location recipient for a | |||
| location object, in the form of a PIDF-LO. | location object, in the form of a PIDF-LO. | |||
| As recited in RFC3693, location often must be kept private. The | As recited in RFC 3693, location often must be kept private. The | |||
| location object (PIDF-LO) contains rules which are binding on the | location object (PIDF-LO) contains rules which are binding on the | |||
| location recipient and controls onward distribution and retention of | location recipient and controls onward distribution and retention of | |||
| the location. This document describes the security and privacy | the location. This document describes the security and privacy | |||
| considerations that must be applied to location conveyed with SIP. | considerations that must be applied to location conveyed with SIP. | |||
| Often, location is sent from the User Agent Client to the User Agent | Often, location is sent from the User Agent Client to the User Agent | |||
| Server, or vice versa for purposes that are beyond the scope of this | Server, or vice versa for purposes that are beyond the scope of this | |||
| document. Another use for location is location-based routing of a | document. Another use for location is location-based routing of a | |||
| SIP request, where the choice of the next hop (and usually, the | SIP request, where the choice of the next hop (and usually, the | |||
| outgoing Request URI) is determined by the location of the UAC which | outgoing Request URI) is determined by the location of the UAC which | |||
| is in the message by-value or by-reference. This document describes | is in the message by-value or by-reference. This document describes | |||
| how location may be conveyed from the UAC, or a proxy acting on its | how location may be conveyed from the UAC, or a proxy acting on its | |||
| behalf, to a routing proxy. How the location is actually used to | behalf, to a routing proxy. How the location is actually used to | |||
| determine the next hop or Request-URI is beyond the scope of this | determine the next hop or Request-URI is beyond the scope of this | |||
| document. | document. | |||
| The Geolocation header is introduced to signify that location is | The Geolocation header is introduced to signify that location is | |||
| included in a SIP message to provide either a content identifier | included in a SIP message to provide either a content identifier | |||
| (cid:) pointer to the body part containing the UAs PIDF-LO, or a | (cid:) pointer to the body part containing the UA's PIDF-LO, or a | |||
| location-by-reference URI that may subsequently be "dereferenced" by | location-by-reference URI that may subsequently be "dereferenced" by | |||
| a using protocol (which may be SIP or another protocol). | a using protocol (which may be SIP or another protocol). | |||
| In this document, we frequently refer to the "emergency case". This | In this document, we frequently refer to the "emergency case". This | |||
| refers to a specific, important use of sip location conveyance where | refers to a specific, important use of sip location conveyance where | |||
| the location of the caller is used to determine which Public Safety | the location of the caller is used to determine which Public Safety | |||
| Answering Point (PSAP) should receive an emergency call request for | Answering Point (PSAP) should receive an emergency call request for | |||
| help (e.g. a call to 1-1-2 or 9-1-1). This is an example of | help (e.g. a call to 1-1-2 or 9-1-1). This is an example of | |||
| location-based routing. The location conveyed is also used by the | location-based routing. The location conveyed is also used by the | |||
| PSAP to dispatch first responders to the caller's location. There | PSAP to dispatch first responders to the caller's location. There | |||
| are special security considerations which make the emergency case | are special security considerations which make the emergency case | |||
| unique, compared to a normal location conveyance within SIP. | unique, compared to a normal location conveyance within SIP. | |||
| This document is intended to become a standards track RFC. | ||||
| 2. Conventions used in this document | 2. Conventions used in this document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and | NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described | "OPTIONAL" in this document are to be interpreted as described | |||
| in [RFC2119]. | in [RFC2119]. | |||
| 3. Mechanisms | 3. Mechanisms | |||
| 3.1 Overview of SIP Location Conveyance | 3.1 Overview of SIP Location Conveyance | |||
| skipping to change at page 6, line 6 ¶ | skipping to change at page 6, line 5 ¶ | |||
| geoloc-param = "inserted-by" EQUAL geoloc-inserter | geoloc-param = "inserted-by" EQUAL geoloc-inserter | |||
| / "message-routed-on-this-uri" | / "message-routed-on-this-uri" | |||
| / generic-param ; (from RFC 3261) | / generic-param ; (from RFC 3261) | |||
| geoloc-inserter = "endpoint" / "server" | geoloc-inserter = "endpoint" / "server" | |||
| / gen-value ; (from RFC 3261) | / gen-value ; (from RFC 3261) | |||
| The cid-url is defined in [RFC2392] to locate message body | The cid-url is defined in [RFC2392] to locate message body | |||
| parts. This URI MUST be present if location is by-value in a | parts. This URI MUST be present if location is by-value in a | |||
| message. | message. | |||
| sip-URI, sips-URI and absoluteURI are defined according to RFC3261. | sip-URI, sips-URI and absoluteURI are defined according to RFC 3261. | |||
| The pres-URI is defined in RFC 3859 [RFC3859]. | The pres-URI is defined in RFC 3859 [RFC3859]. | |||
| Other protocols used in the Location URI MUST be reviewed against | Other protocols used in the Location URI MUST be reviewed against | |||
| the RFC3693 criteria for a using protocol. | the RFC 3693 criteria for a using protocol. | |||
| This document defines the Geolocation header as valid in the | This document defines the Geolocation header as valid in the | |||
| following SIP requests: | following SIP requests: | |||
| INVITE [RFC3261], | INVITE [RFC3261], | |||
| REGISTER [RFC3261], | REGISTER [RFC3261], | |||
| OPTIONS [RFC3261], | OPTIONS [RFC3261], | |||
| UPDATE [RFC3311], | UPDATE [RFC3311], | |||
| MESSAGE [RFC3428], | MESSAGE [RFC3428], | |||
| SUBSCRIBE [RFC3265], and | SUBSCRIBE [RFC3265], and | |||
| NOTIFY [RFC3265] | NOTIFY [RFC3265] | |||
| Use of the header in BYE, INFO and REFER Methods are allowed, | Use of the header in BYE, INFO and REFER Methods are allowed, | |||
| although no purpose is known. Conveying location in a CANCEL, BYE, | although no purpose is known. Conveying location in a CANCEL, BYE, | |||
| ACK or PRACK is not defined. Discussing location using the PUBLISH | ACK or PRACK is not defined. Discussing location using the PUBLISH | |||
| Request Method out of scope for this document. | Request Method out of scope for this document. | |||
| The following table extends the values in Table 2&3 of RFC3261 | The following table extends the values in Table 2&3 of RFC 3261 | |||
| [RFC3261]. | [RFC3261]. | |||
| Header field where proxy INV ACK CAN BYE REG OPT PRA | Header field where proxy INV ACK CAN BYE REG OPT PRA | |||
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | |||
| Geolocation Rr ar o - - o o o - | Geolocation Rr ar o - - o o o - | |||
| Header field where proxy SUB NOT UPD MSG REF INF PUB | Header field where proxy SUB NOT UPD MSG REF INF PUB | |||
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | |||
| Geolocation Rr ar o o o o o o - | Geolocation Rr ar o o o o o o - | |||
| Table 1: Summary of the Geolocation Header | Table 1: Summary of the Geolocation Header | |||
| The Geolocation header MAY be included in one of the above messages | The Geolocation header MAY be included in one of the above messages | |||
| by a User Agent. A proxy MAY add the Geolocation header, but MUST | by a User Agent. A proxy MAY add the Geolocation header, but MUST | |||
| NOT modify the contents of an existing Geolocation header. | NOT modify the contents of an existing Geolocation header. | |||
| [RFC3261] states message bodies cannot be added by proxies. | [RFC3261] states message bodies cannot be added by proxies. | |||
| Therefore, a Geolocation header added by a proxy MUST specify | Therefore, a Geolocation header added by a proxy MUST specify | |||
| location-by-reference. | location-by-reference. | |||
| Entities receiving location information MUST honor the usage element | Entities receiving location information MUST honor the usage element | |||
| rules per RFC4119. Such entities MUST NOT alter the rule set. | rules per RFC 4119. Such entities MUST NOT alter the rule set. | |||
| 3.3 424 (Bad Location Information) Response Code | 3.3 424 (Bad Location Information) Response Code | |||
| If a UAS or SIP intermediary detects an error in a request message | If a UAS or SIP intermediary detects an error in a request message | |||
| specific to the location information supplied by-value or | specific to the location information supplied by-value or | |||
| by-reference, a new 4XX level error is created here to indicate a | by-reference, a new 4XX level error is created here to indicate a | |||
| problem with the location in the request message. This document | problem with the location in the request message. This document | |||
| creates and IANA registers the new error code: | creates and IANA registers the new error code: | |||
| 424 (Bad Location Information) | 424 (Bad Location Information) | |||
| skipping to change at page 7, line 25 ¶ | skipping to change at page 7, line 24 ¶ | |||
| location information before attempting a new request that includes | location information before attempting a new request that includes | |||
| location. There is no cross-transaction awareness expected by either | location. There is no cross-transaction awareness expected by either | |||
| the UAS or SIP intermediary as a result of this error message. | the UAS or SIP intermediary as a result of this error message. | |||
| More resolution of the error for which the 424 was generated MAY be | More resolution of the error for which the 424 was generated MAY be | |||
| included in a Warning header [RFC3261] with new, IANA registered, | included in a Warning header [RFC3261] with new, IANA registered, | |||
| location specific warning values (see Section 3.4). | location specific warning values (see Section 3.4). | |||
| The new 424 (Bad Location Information) error code is IANA registered | The new 424 (Bad Location Information) error code is IANA registered | |||
| in Section 9 of this document. An initial set of location error | in Section 9 of this document. An initial set of location error | |||
| codes are in [ID-ERROR]. | Warning codes are in Section 3.4 of this document. | |||
| 3.4 New Warning Codes for Location Error Granularity | 3.4 New Warning Codes for Location Error Granularity | |||
| As discussed in Section 3.3, more granular error codes, specific to | As discussed in Section 3.3, more granular error codes, specific to | |||
| location errors within a received message, are required if the UAC | location errors within a received message, are required if the UAC | |||
| is to know what was wrong with the original request. The Warning | is to know what was wrong with the original request. The Warning | |||
| header will be used to convey such error conditions within the 424 | header will be used to convey such error conditions within the 424 | |||
| (Bad Location Information) response. Rather than depleting the | (Bad Location Information) response. Rather than depleting the | |||
| remaining available 3XX codes, codes 700 through 740 will be | remaining available 3XX codes, codes 700 through 740 will be | |||
| designated for Location warnings. Additions to this | designated for Location warnings. Additions to this | |||
| IANA registration range for location codes require an RFC. | IANA registration range for location codes require an RFC. | |||
| Warning has the advantage of including the node ID in the header, | Warning has the advantage of including the node ID in the header, | |||
| meaning the ID of the entity that sent this response. This can | meaning the ID of the entity that sent this response. This can be | |||
| useful for troubleshooting. | useful for troubleshooting. | |||
| The Warning header allows for multiple warning codes be returned in | The Warning header allows for multiple warning codes be returned in | |||
| the same response. If a location-by-reference is sent and the | the same response. If a location-by-reference is sent and the | |||
| supplied scheme is not desired or cannot be processed, but more than | supplied scheme is not desired or cannot be processed, but more than | |||
| one other scheme can be, the 424 response can list more than one | one other scheme can be, the 424 response can list more than one | |||
| code from the 720-724 range in the response. The UAC may | code from the 720-724 range in the response. The UAC may | |||
| subsequently retry the operation with one of the schemes supported | subsequently retry the operation with one of the schemes supported | |||
| or desired by the recipient. | or desired by the recipient. | |||
| To illustrate this, here is an example of Alice including | To illustrate this, here is an example of Alice including | |||
| location-by-reference using an HTTP schema. Bob cannot dereference | location-by-reference using an HTTP schema. Bob cannot dereference | |||
| using HTTP, but can dereference using SIP, SIPS, and PRES: | using HTTP, but can dereference using SIP, SIPS, and PRES. An | |||
| example of this transaction, with a 424 (Bad Location Information) | ||||
| response, including a Warning header, would be in here in Figure 1. | ||||
| Alice Bob | Alice Bob | |||
| | | | | | | |||
| | Request w/ Location | | | Request w/ Location | | |||
| | using http schema | | | using http schema | | |||
| |----------------------------------->| | |----------------------------------->| | |||
| | | | | | | |||
| | | | | | | |||
| | 424 (Bad Location Information) | | | 424 (Bad Location Information) | | |||
| | with Warning header containing | | | with Warning header containing | | |||
| | 720 (SIP), 721 (SIPS), 722 (PRES) | | | 720 (SIP), 721 (SIPS), 722 (PRES) | | |||
| |<-----------------------------------| | |<-----------------------------------| | |||
| | | | | | | |||
| Figure 1. Basic Transaction with Location Error | ||||
| The following subsections provide an initial list of location | ||||
| specific granular Warning codes for a 424 (Bad Location Information) | ||||
| response. | ||||
| 3.4.1 Warning code 701 Location Format Not Supported | 3.4.1 Warning code 701 Location Format Not Supported | |||
| A Warning header with the code 701 "Location Format not supported" | A Warning header with the code 701 "Location Format not supported" | |||
| means the location format supplied in the request, by-value or | means the location format supplied in the request, by-value or | |||
| by-reference, was not supported. This cause means the recipient | by-reference, was not supported. This cause means the recipient | |||
| understood that location was included in the message, but the format | understood that location was included in the message, but the format | |||
| is not supported. Perhaps the format was a freeform text format or | is not supported. Perhaps the format was a freeform text format or | |||
| data-URL and the recipient only understood location in RFC4119 | data-URL and the recipient only understood location in RFC 4119 | |||
| PIDF-LO format (civic or geo). If a more specific Warning code is | PIDF-LO format (civic or coordinate). If a more specific Warning | |||
| available, it MUST be used. For example, if the format is | code is available, it MUST be used. For example, if the format is | |||
| understood, but not desired, a 702 or 703 Warning header SHOULD be | understood, but not desired, a 702 or 703 Warning header should be | |||
| returned. The same applies to a location recipient that only | returned in a 424 response, depending on which location format is | |||
| desired. The same applies to a location recipient that only | ||||
| understands one format and did not receive that format. For example, | understands one format and did not receive that format. For example, | |||
| if a message containing geo formatted location arrives but the | if a message containing coordinate formatted location arrives but | |||
| recipient only can process civic formatted location a 703 Warning | the recipient only can process civic formatted location, a 703 | |||
| header should be returned in a 424 response. | Warning header should be returned in a 424 response. | |||
| Recommended warn-text: Location format not supported | Recommended warn-text: Location format not supported | |||
| An example usage in a SIP 424 response: | An example usage in a SIP 424 response: | |||
| Warning: 701 alice.example.com "Location Format not supported" | Warning: 701 alice.example.com "Location Format not supported" | |||
| 3.4.2 Warning code 702 Geo-location Format Desired Instead | 3.4.2 Warning code 702 Coordinate-location Format Desired Instead | |||
| A Warning header with the code 702 "Geo-location Format Desired" | A Warning header with the code 702 "Coordinate-location Format | |||
| means the location format supplied in the request (probably | Desired" means the location format supplied in the request (probably | |||
| formatted in civic), by-value or by-reference, was understood and | formatted in civic), by-value or by-reference, was understood and | |||
| supported, but that the recipient, or an application on the | supported, but that the recipient, or an application on the | |||
| recipient prefers, or can only process location in the geo-location | recipient prefers, or can only process location in the | |||
| format. | coordinate-location format. | |||
| A typical reaction to receiving this Warning code is to resend the | A typical reaction to receiving this Warning code is to resend the | |||
| original message with location formatted in geo instead. | original message with location formatted in coordinate instead. | |||
| Recommended warn-text: Geo-location Format Desired | Recommended warn-text: Coordinate-location Format Desired | |||
| An example usage in a SIP 424 response: | An example usage in a SIP 424 response: | |||
| Warning: 702 node_alice.example.com "Geo-location Format Desired" | Warning: 702 node_alice.example.com "Coordinate-location Format | |||
| Desired" | ||||
| 3.4.3 Warning code 703 Civic-location Format Desired Instead | 3.4.3 Warning code 703 Civic-location Format Desired Instead | |||
| A Warning header with the code 703 "Civic-location Format Desired" | A Warning header with the code 703 "Civic-location Format Desired" | |||
| means the location format supplied in the request (probably | means the location format supplied in the request (probably | |||
| formatted in geo), by-value or by-reference, was understood and | formatted in coordinate), by-value or by-reference, was understood | |||
| supported, but that the recipient, or an application on the | and supported, but that the recipient, or an application on the | |||
| recipient prefers, or can only process location in the | recipient prefers, or can only process location in the | |||
| civic-location format. | civic-location format. | |||
| A typical reaction to receiving this Warning code is to resend the | A typical reaction to receiving this warning code is to resend the | |||
| original message with location formatted in civic instead. | original message with location formatted in civic instead. | |||
| Recommended warn-text: Civic-location Format Desired | Recommended warn-text: Civic-location Format Desired | |||
| An example usage in a SIP 424 response: | An example usage in a SIP 424 response: | |||
| Warning: 703 alice.example.com "Civic-location Format Desired" | Warning: 703 alice.example.com "Civic-location Format Desired" | |||
| 3.4.4 Warning code 704 Cannot Parse Location Supplied | 3.4.4 Warning code 704 Cannot Parse Location Supplied | |||
| A Warning header with the code 704 "Cannot parse location supplied" | A Warning header with the code 704 "Cannot parse location supplied" | |||
| means the location provided, whether by-value or by-reference in a | means the location provided, whether by-value or by-reference, in a | |||
| request is not well formed. | request is not well formed. | |||
| Recommended warn-text: Cannot parse location supplied | Recommended warn-text: Cannot parse location supplied | |||
| An example usage in a SIP 424 response: | An example usage in a SIP 424 response: | |||
| Warning: 704 alice.example.com "Cannot parse location supplied" | Warning: 704 alice.example.com "Cannot parse location supplied" | |||
| 3.4.5 Warning code 705 Cannot Find Location | 3.4.5 Warning code 705 Cannot Find Location | |||
| A Warning header with the code 705 "Cannot find location" means | A Warning header with the code 705 "Cannot find location" means | |||
| location should have been in the message received, but the recipient | location should have been in the message received, but the recipient | |||
| cannot find it, either because it is not in the message, or it is | cannot find it, either because it is not in the message, or it is | |||
| encrypted/opaque to the recipient. | encrypted/opaque to the recipient. | |||
| A typical reaction to receiving this error would be for the location | A typical reaction to receiving this warning code is for the | |||
| sender to verify it has indeed included location in the new request | location sender to verify that it has indeed included location | |||
| and send the message again. | information in the request and then to send the request again. | |||
| Recommended warn-text: Cannot find location | Recommended warn-text: Cannot find location | |||
| An example usage in a SIP 424 response: | An example usage in a SIP 424 response: | |||
| Warning: 705 alice.example.com "Cannot find location" | Warning: 705 alice.example.com "Cannot find location" | |||
| 3.4.6 Warning code 706 Conflicting Locations Supplied | 3.4.6 Warning code 706 Conflicting Locations Supplied | |||
| A Warning header with the code 706 "Conflicting Locations Supplied" | A Warning header with the code 706 "Conflicting Locations Supplied" | |||
| means a location recipient received more than one location | means a location recipient received more than one location | |||
| describing where the target is, and is either unsure which whole | describing where the target is, and is either unsure which whole | |||
| location is true or which parts of multiple locations make up where | location is true or which parts of multiple locations make up where | |||
| the target is. This is generally a case of either too much | the target is. This is generally a case of either too much | |||
| information, and the information is conflicting. | information, and the information is conflicting. | |||
| A typical reaction to receiving this error is to reduce the number | A typical reaction to receiving this warning code is to reduce the | |||
| of different locations supplied in the request, and send another | number of different locations supplied in the request, and send | |||
| message to the location recipient. | another message to the location recipient. | |||
| Recommended warn-text: Conflicting Locations Supplied | Recommended warn-text: Conflicting Locations Supplied | |||
| An example usage in a SIP 424 response: | An example usage in a SIP 424 response: | |||
| Warning: 706 alice.example.com "conflicting locations supplied" | Warning: 706 alice.example.com "conflicting locations supplied" | |||
| 3.4.7 Warning code 707 Incomplete Location Supplied | 3.4.7 Warning code 707 Incomplete Location Supplied | |||
| A Warning header with the code 707 "Incomplete Location Supplied" | A Warning header with the code 707 "Incomplete Location Supplied" | |||
| means there is not enough location information, by-value or | means there is not enough location information, by-value or | |||
| by-reference, to determine where the location target is. | by-reference, to determine where the location target is. | |||
| A typical reaction to receiving this message is for the sender to | A typical reaction to receiving this warning code is for the | |||
| Convey more information if it is willing to do so. | location sender to convey more location information, if doing so is | |||
| allowed by local policy. | ||||
| Recommended warn-text: Incomplete location supplied | Recommended warn-text: Incomplete location supplied | |||
| An example usage in a SIP 424 response: | An example usage in a SIP 424 response: | |||
| Warning: 707 alice.example.com "Incomplete location supplied" | Warning: 707 alice.example.com "Incomplete location supplied" | |||
| 3.4.8 Warning code 708 Cannot Dereference | 3.4.8 Warning code 708 Cannot Dereference | |||
| A Warning header with the code 708 "Cannot dereference" means the | A Warning header with the code 708 "Cannot dereference" means the | |||
| skipping to change at page 12, line 6 ¶ | skipping to change at page 12, line 17 ¶ | |||
| A Warning header with the code 720 "Unsupported Schema - sip | A Warning header with the code 720 "Unsupported Schema - sip | |||
| desired" means the location dereferencer cannot dereference using | desired" means the location dereferencer cannot dereference using | |||
| the location-by-reference URI schema supplied because it does not | the location-by-reference URI schema supplied because it does not | |||
| support the necessary protocol to do this. This Warning code means | support the necessary protocol to do this. This Warning code means | |||
| the location recipient can dereference the target's location using a | the location recipient can dereference the target's location using a | |||
| sip-URI schema. There can be more than one Warning code in a | sip-URI schema. There can be more than one Warning code in a | |||
| Warning header, indicated in this context the recipient can | Warning header, indicated in this context the recipient can | |||
| dereference using each schema protocol included in the Warning | dereference using each schema protocol included in the Warning | |||
| header. | header. | |||
| A typical reaction to receiving this error would be for the location | A typical reaction to receiving this warning code would be for the | |||
| sender to send a URI with the sip schema. | location sender to send a URI with the sip schema. | |||
| Recommended warn-text: unsupported schema | Recommended warn-text: unsupported schema | |||
| An example usage in a SIP 424 response: | An example usage in a SIP 424 response: | |||
| Warning: 720 alice.example.com "unsupported schema - sip desired" | Warning: 720 alice.example.com "unsupported schema - sip desired" | |||
| 3.4.12 Warning code 721 Unsupported Schema - sips desired | 3.4.12 Warning code 721 Unsupported Schema - sips desired | |||
| A Warning header with the code 721 "Unsupported Schema - sips | A Warning header with the code 721 "Unsupported Schema - sips | |||
| skipping to change at page 13, line 30 ¶ | skipping to change at page 13, line 38 ¶ | |||
| infrastructure, and therefore would not understand which proxy will | infrastructure, and therefore would not understand which proxy will | |||
| do the location-based routing function, if any. | do the location-based routing function, if any. | |||
| 3.6 Using sip/sips/pres as a Dereference Protocol | 3.6 Using sip/sips/pres as a Dereference Protocol | |||
| A sip, sips or pres URI SHOULD be included in a Geolocation header | A sip, sips or pres URI SHOULD be included in a Geolocation header | |||
| for the location-by-reference URI. When pres: is used, if the | for the location-by-reference URI. When pres: is used, if the | |||
| resulting resolution, per [RFC3851], resolves to a sip: or sips: | resulting resolution, per [RFC3851], resolves to a sip: or sips: | |||
| URI, this section applies. Use of other protocols for dereferencing | URI, this section applies. Use of other protocols for dereferencing | |||
| of a pres: URI is not defined, and such use is subject to review | of a pres: URI is not defined, and such use is subject to review | |||
| against RFC3693 using protocol criteria. | against RFC 3693 using protocol criteria. | |||
| Dereferencing using sip or sips MUST be accomplished by treating the | Dereferencing using sip or sips MUST be accomplished by treating the | |||
| URI as a presence URI and dereferencing is accomplished by a | URI as a presence URI and dereferencing it by sending a SUBSCRIBE | |||
| SUBSCRIBE to a presence service per [RFC3856]. The resulting NOTIFY | request to a presence server as per [RFC3856]. The resulting NOTIFY | |||
| will contain a PIDF, which MUST contain a PIDF-LO. | will contain a PIDF, which MUST contain a PIDF-LO. | |||
| When used in this manner, SIP is a using protocol per [RFC3693] and | When used in this manner, SIP is a using protocol per [RFC3693] and | |||
| elements receiving location MUST honor the 'usage-element' rules as | elements receiving location MUST honor the 'usage-element' rules as | |||
| defined in Section 3.4 above. | defined in Section 3.4 above. | |||
| A dereference of a location-by-reference URI using SUBSCRIBE is not | A dereference of a location-by-reference URI using SUBSCRIBE is not | |||
| violating a PIDF-LO 'retransmission-allowed' element value set to | violating a PIDF-LO 'retransmission-allowed' element value set to | |||
| 'no', as the NOTIFY is the only message in this multi-message series | 'no', as the NOTIFY is the only message in this multi-message series | |||
| of transactions that contains the UAC's location, with the location | of transactions that contains the UAC's location, with the location | |||
| recipient being the only SIP element to receive location - which the | recipient being the only SIP element to receive location - which is | |||
| purpose of this extension: to convey location to a specific | the purpose of this extension: to convey location to a specific | |||
| destination. | destination. | |||
| 4. Examples | 4. Examples | |||
| Three examples of messages providing location are provided. One | Three examples of messages providing location are provided. One | |||
| shows location-by-value with geo-coordinates, one shows | shows location-by-value with coordinates, one shows | |||
| location-by-value with civic location and the third shows | location-by-value with civic location and the third shows | |||
| location-by-reference. The examples for (Geo format) are taken | location-by-reference. The examples for (Coordinate format) are | |||
| from [RFC3825] and (Civic format) are taken from [ID-CIVIC] and are | taken from [RFC3825] and (Civic format) are taken from [RFC4776] | |||
| for the exact same position on the Earth. The differences between | and are for the exact same position on the Earth. The differences | |||
| the two formats is within the <gp:location-info> of the examples. | between the two formats is within the <gp:location-info> of the | |||
| Other than this portion of each PIDF-LO, the rest is the same for | examples. Other than this portion of each PIDF-LO, the rest is the | |||
| both location formats. | same for both location formats. | |||
| 4.1 Location-by-value (Coordinate Format) | 4.1 Location-by-value (Coordinate Format) | |||
| This example shows an INVITE message with a coordinate, or geo | This example shows an INVITE message with a coordinate, or | |||
| location. In this example, the SIP request uses a sips-URI | coordinate location. In this example, the SIP request uses a | |||
| [RFC3261], meaning this message is TLS protected on a hop-by-hop | sips-URI [RFC3261], meaning this message is TLS protected on a | |||
| basis all the way to Bob's domain. | hop-by-hop basis all the way to Bob's domain. | |||
| INVITE sips:bob@biloxi.example.com SIP/2.0 | INVITE sips:bob@biloxi.example.com SIP/2.0 | |||
| Via: SIP/2.0/TLS pc33.atlanta.example.com;branch=z9hG4bK74bf9 | Via: SIP/2.0/TLS pc33.atlanta.example.com;branch=z9hG4bK74bf9 | |||
| Max-Forwards: 70 | Max-Forwards: 70 | |||
| To: Bob <sips:bob@biloxi.example.com> | To: Bob <sips:bob@biloxi.example.com> | |||
| From: Alice <sips:alice@atlanta.example.com>;tag=9fxced76sl | From: Alice <sips:alice@atlanta.example.com>;tag=9fxced76sl | |||
| Call-ID: 3848276298220188511@atlanta.example.com | Call-ID: 3848276298220188511@atlanta.example.com | |||
| Geolocation: <cid:alice123@atlanta.example.com> | Geolocation: <cid:alice123@atlanta.example.com> | |||
| ;inserted-by=endpoint | ;inserted-by=endpoint | |||
| Supported: geolocation | Supported: geolocation | |||
| skipping to change at page 18, line 22 ¶ | skipping to change at page 18, line 32 ¶ | |||
| A PIDF includes identity information. It is possible for the | A PIDF includes identity information. It is possible for the | |||
| identity in the PIDF to be anonymous. Implementations of this | identity in the PIDF to be anonymous. Implementations of this | |||
| extension should consider the appropriateness of including an | extension should consider the appropriateness of including an | |||
| anonymous identity in the location information where a real identity | anonymous identity in the location information where a real identity | |||
| is not required. When using location-by-reference, it is | is not required. When using location-by-reference, it is | |||
| RECOMMENDED that the URI not contain any identifying information | RECOMMENDED that the URI not contain any identifying information | |||
| (for example use 3fg5t5yqw@example.com rather than | (for example use 3fg5t5yqw@example.com rather than | |||
| alice@example.com) | alice@example.com) | |||
| The entities receiving location MUST obey the privacy | The entities receiving location MUST obey the privacy | |||
| and security rules in the PIDF-LO as described in RFC4119, regarding | and security rules in the PIDF-LO as described in RFC 4119, | |||
| retransmission and retention. | regarding retransmission and retention. | |||
| Self-signed certificates SHOULD NOT be used for protecting PIDF, | Self-signed certificates SHOULD NOT be used for protecting a PIDF, | |||
| as the sender does not have a secure identity of the recipient. | as the sender does not have a secure identity of the recipient. | |||
| More than one location representation or format, for example: civic | More than one location representation or format, for example: civic | |||
| and geo, MAY be included in the same message body part, but all MUST | and coordinate, MAY be included in the same message body part, but | |||
| point at the same position on the earth. Multiple representations | all MUST point at the same position on the earth. Multiple | |||
| allow the recipient to use the most convenient representation of | representations allow the recipient to use the most convenient | |||
| location. | representation of location. | |||
| There MAY be more than one PIDF-LO in the same SIP message, but each | There MAY be more than one PIDF-LO in the same SIP message, so long | |||
| in separate message body parts. Each location body part MAY point at | as each is in a separate message body part. Each location body part | |||
| different positions on the earth. The meaning of such a | MAY point at different positions on the earth. The meaning of such | |||
| construction is not defined, and may cause confusion at the | a construction is not defined, and may cause confusion at the | |||
| recipient | recipient. | |||
| 5.1 UAC Behavior | 5.1 UAC Behavior | |||
| A UAC may send location because it was requested to, to facilitate | A UAC may send location because it was requested to, to facilitate | |||
| location-based routing, or spontaneously (i.e. a purpose not defined | location-based routing, or spontaneously (i.e. a purpose not defined | |||
| in this document but known to the UAC). A UAC MAY receive location | in this document but known to the UAC). A UAC MAY receive location | |||
| from the UAS spontaneously. | from the UAS spontaneously. | |||
| A UAC conveying location MUST include a Geolocation header with | A UAC conveying location MUST include a Geolocation header with | |||
| either a location by-value indication (a cid-URL), or a location | either a location by-value indication (a cid-URL), or a location | |||
| by-reference indication (a dereferenceable URI). A location body | by-reference indication (a dereferenceable URI). A location body | |||
| sent without a Geolocation header MUST NOT occur. The UAC | sent without a Geolocation header MUST NOT occur. The UAC | |||
| supporting this extension MUST include a Supported header with the | supporting this extension MUST include a Supported header with the | |||
| geolocation option tag. | geolocation option tag. | |||
| The presence of the geolocation option tag in a Supported header | The presence of the geolocation option tag in a Supported header | |||
| without a Geolocation header in the same message informs a receiving | without a Geolocation header in the same message informs a receiving | |||
| SIP element the UAC understands the concept of location, but it does | SIP element the UAC understands the concept of location, but it does | |||
| not know its location at this time. Certain scenarios exist | not know or wish to convey its location at this time. Certain | |||
| (location-based routing) in which location is required in a message | scenarios exist (location-based routing) in which location is | |||
| in order to route the message properly. This affects how a UAS or | required in a message in order to route the message properly. This | |||
| SIP server reacts to such a message. | affects how a UAS or SIP server reacts to such a message. | |||
| The geolocation option tag SHOULD NOT be used in the Proxy-Require | The geolocation option tag SHOULD NOT be used in the Proxy-Require | |||
| Header. | Header. | |||
| If the UAC inserts a geolocation header, it SHOULD include a | If the UAC inserts a geolocation header, it SHOULD include a | |||
| "inserted-by=endpoint" parameter. For example: | "inserted-by=endpoint" parameter. For example: | |||
| Geolocation: <cid:alice123@atlanta.example.com>; | Geolocation: <cid:alice123@atlanta.example.com>; | |||
| inserted-by=endpoint | inserted-by=endpoint | |||
| UACs receiving a 424 (Bad Location Information) response MAY find a | UACs receiving a 424 (Bad Location Information) response MAY find a | |||
| more granular cause for the location based error in a Warning | more granular cause for the location based error in a Warning | |||
| header. Section 3.4 extends the list of IANA registered Warning | header. Upon receiving a 424 error response, the UAC SHOULD take | |||
| codes, specifically for location errors within the request. The | appropriate steps based on the warning code before attempting to | |||
| UAC SHOULD learn from the Warning code in the response and take | ||||
| appropriate steps based on that error given before attempting to | ||||
| convey location again. See Section 3.4. for the list of new | convey location again. See Section 3.4. for the list of new | |||
| location specific Warning codes. | location specific Warning codes, all of which are IANA registered in | |||
| this document. | ||||
| There MAY be future work defining additional error information, say | There MAY be future work defining additional error information, say | |||
| in an XML body, indicating exactly what the error was, if any of the | in an XML body, indicating exactly what the error was, if any of the | |||
| new Warning codes are ambiguous. | new Warning codes are ambiguous. | |||
| The behavior of the UAC receiving location is the same as the UAS, | The behavior of the UAC receiving location is the same as the UAS, | |||
| as below, except a UAC cannot send a Warning code indicating | as below, except a UAC cannot send a Warning code indicating | |||
| something was wrong with the location supplied by the UAS. In this | something was wrong with the location supplied by the UAS. In this | |||
| case, the location information SHOULD just be ignored in this | case, the location information SHOULD just be ignored in this | |||
| transaction. A subscription is a better means of getting a UAS's | transaction. A UAC subscribing to a UAS for its location is a | |||
| location. | better means of acquiring the UAS's location. This is a seeking or | |||
| pull model scenario, which is not defined here, and left for future | ||||
| study. | ||||
| 5.2 UAS Behavior | 5.2 UAS Behavior | |||
| If the Geolocation header is present, the URI contained in as a | If the Geolocation header is present, the type of URI contained in | |||
| header field will indicate if location has been conveyed by-value in | the header field will indicate if location has been conveyed | |||
| a message body (part) or by-reference, requiring an additional | by-value in a message body (part) or by-reference, requiring an | |||
| dereference transaction. If the by-reference URI is sip:, sips: or | additional dereference transaction. If the by-reference URI is | |||
| pres:, the UAS will initiate a SUBSCRIBE to the URI provided to | sip:, sips: or pres:, the UAS will initiate a SUBSCRIBE to the URI | |||
| retrieve the PIDF-LO of the UAC per [RFC3856]. If successful, the | provided to retrieve the PIDF-LO of the UAC per [RFC3856]. If | |||
| PIDF-LO of the UAC will be returned in the NOTIFY request from the | successful, the PIDF-LO of the UAC will be returned in the NOTIFY | |||
| server. | request from the server. | |||
| A Require header with the geolocation option tag indicates the | A Require header with the geolocation option tag indicates the | |||
| UAC is requiring the UAS understand this extension or error the | UAC is requiring the UAS understand this extension or else send an | |||
| message. A 420 (Bad Extension) with a geolocation option tag in a | error response. A 420 (Bad Extension) with a geolocation option tag | |||
| Unsupported header would be the appropriate response. | in a Unsupported header would be the appropriate response. | |||
| If the UAC conveys location in a request, but the UAS has one or | If the UAC conveys location in a request, but the UAS has one or | |||
| more problems with the location in the request (or while attempting | more problems with the location in the request (or while attempting | |||
| to dereference the UAC's location), a 424 (Bad Location Information) | to dereference the UAC's location), a 424 (Bad Location Information) | |||
| response would be an appropriate response. If the UAS can indicate | response would be an appropriate response. If the UAS can indicate | |||
| what the problem is with the location in the request, in the form of | what the problem is with the location in the request, in the form of | |||
| one of the new Warning codes specifically about location errors, the | one of the new Warning codes specifically about location errors, the | |||
| Warning header SHOULD be included along with the most applicable | Warning header SHOULD be included along with the most applicable | |||
| Warning code(s). Zero or more Warning codes are allowed in a | Warning code(s). Zero or more Warning codes are allowed in a | |||
| response. | response. | |||
| skipping to change at page 20, line 37 ¶ | skipping to change at page 20, line 48 ¶ | |||
| 5.3 Proxy Behavior | 5.3 Proxy Behavior | |||
| [RFC3261] states message bodies cannot be added by proxies. | [RFC3261] states message bodies cannot be added by proxies. | |||
| However, a proxy may add a header to a message. This implies that a | However, a proxy may add a header to a message. This implies that a | |||
| proxy MAY add a geolocation header with location-by-reference, but | proxy MAY add a geolocation header with location-by-reference, but | |||
| not location-by-value. | not location-by-value. | |||
| A proxy MAY read the Geolocation header, and the associated body, if | A proxy MAY read the Geolocation header, and the associated body, if | |||
| not S/MIME protected, in transit if present, and MAY use the | not S/MIME protected, in transit if present, and MAY use the | |||
| contents of the header to make location-based routing decisions. | contents of the header to make location-based routing decisions. | |||
| More than one Geolocation header or header value in a message is | More than one Geolocation header or header value in a message is | |||
| permitted. The meaning of such a construction is not defined, and | permitted. The meaning of such a construction is not defined, and | |||
| may cause confusion at the recipient. | may cause confusion at the recipient. | |||
| Proxies receiving location where the proxy performs location-based | Proxies that perform location-based routing may need to consult | |||
| routing may need to consult external databases or systems to | external databases or systems to determine the route. Transmission | |||
| determine the route. Transmission of the location information | of the location information (which SHOULD NOT reveal identity, even | |||
| (which SHOULD NOT reveal identity, even if the proxy knows the | if the proxy knows the identity) is governed by the | |||
| identity) is governed by the 'retransmission-allowed' and | 'retransmission-allowed' and 'routing-query-allowed': | |||
| 'routing-query-allowed': | ||||
| Retransmission-allowed Routing-query-allowed Transmission for Query | Retransmission-allowed Routing-query-allowed Transmission for Query | |||
| ---------------------- --------------------- ---------------------- | ---------------------- --------------------- ---------------------- | |||
| "no" or not present "no" or not present Not Allowed | "no" or not present "no" or not present Not Allowed | |||
| "no" or not present "yes" Allowed | "no" or not present "yes" Allowed | |||
| "yes" not present Allowed | "yes" not present Allowed | |||
| "yes" "no" Not Allowed | "yes" "no" Not Allowed | |||
| "yes" "yes" Allowed | "yes" "yes" Allowed | |||
| If transmission is not allowed per the above, the proxy SHOULD | If transmission is not allowed per the above, the proxy SHOULD | |||
| provide a suitable error response. The 424 (Bad Location) is the | provide a suitable error response. The 424 (Bad Location) is the | |||
| appropriate response here. | appropriate response here. | |||
| 5.3.1 Proxy Behavior with Geolocation Header Parameters | 5.3.1 Proxy Behavior with Geolocation Header Parameters | |||
| When a message traverses a SIP intermediary, any existing header | When a message traverses a SIP intermediary, any existing | |||
| value URI and header parameter MUST NOT be modified or deleted, | Geolocation header value (URI or header parameter) MUST NOT be | |||
| but MAY be augmented to indicate if the message was routed based on | deleted. A Geolocation header value (URI or header parameter) MAY | |||
| a specific geolocation URI. For example: | only be modified to indicate if the message was routed based on a | |||
| specific geolocation URI. Further modification of this Geolocation | ||||
| header MUST NOT occur. For example: | ||||
| Geolocation: <cid:alice123@atlanta.example.com>; | Geolocation: <cid:alice123@atlanta.example.com>; | |||
| inserted-by=endpoint; message-routed-on-this-uri | inserted-by=endpoint; message-routed-on-this-uri | |||
| A SIP intermediary MAY add a new Geolocation URI value to a message. | A SIP intermediary MAY add a new Geolocation URI value to a message. | |||
| The proxy SHOULD NOT insert a location unless it is reasonably | The proxy SHOULD NOT insert a location unless it is reasonably | |||
| certain it knows the actual location of the endpoint, for example, | certain it knows the actual location of the endpoint, for example, | |||
| if it thoroughly understands the topology of the underlying access | if it thoroughly understands the topology of the underlying access | |||
| network and it can identify the device reliably (in the presence of, | network and it can identify the device reliably (in the presence of, | |||
| for example, NAT). | for example, NAT). | |||
| skipping to change at page 23, line 48 ¶ | skipping to change at page 24, line 9 ¶ | |||
| Quoting requirement #6 of [RFC3693]: | Quoting requirement #6 of [RFC3693]: | |||
| "(Single Message Transfer) In particular, for tracking of | "(Single Message Transfer) In particular, for tracking of | |||
| small target devices, the design should allow a single | small target devices, the design should allow a single | |||
| message/packet transmission of location as a complete | message/packet transmission of location as a complete | |||
| transaction." | transaction." | |||
| When used for tracking, a simple NOTIFY or UPDATE normally is | When used for tracking, a simple NOTIFY or UPDATE normally is | |||
| relatively small, although the PIDF itself can get large. Normal | relatively small, although the PIDF itself can get large. Normal | |||
| RFC3261 procedures of reverting to TCP when the MTU size is exceeded | RFC 3261 procedures of reverting to TCP when the MTU size is | |||
| would be invoked. | exceeded would be invoked. | |||
| 8. Security Considerations | 8. Security Considerations | |||
| Conveyance of physical location of a UAC raises privacy concerns, | Conveyance of physical location of a UAC raises privacy concerns, | |||
| and depending on use, there may be authentication and integrity | and depending on use, there may be authentication and integrity | |||
| concerns. This document calls for conveyance to normally be | concerns. This document calls for conveyance to normally be | |||
| accomplished through secure mechanisms (like S/MIME or TLS). In | accomplished through secure mechanisms (like S/MIME or TLS). In | |||
| cases where a session set-up is routed based on the location of the | cases where a session set-up is routed based on the location of the | |||
| UAC initiating the session or SIP MESSAGE, securing the by-value | UAC initiating the session or SIP MESSAGE, securing the by-value | |||
| location with an end-to-end mechanism such as S/MIME is problematic, | location with an end-to-end mechanism such as S/MIME is problematic, | |||
| skipping to change at page 25, line 7 ¶ | skipping to change at page 25, line 19 ¶ | |||
| Default reason phrase: Bad Location Information | Default reason phrase: Bad Location Information | |||
| This SIP Response code is defined in section 3.3 of this document. | This SIP Response code is defined in section 3.3 of this document. | |||
| 9.4 IANA Registration of New Warning Codes for Location | 9.4 IANA Registration of New Warning Codes for Location | |||
| New location specific Warning codes are created by this document, | New location specific Warning codes are created by this document, | |||
| with the definitions in Section 3.4 of this document. | with the definitions in Section 3.4 of this document. | |||
| 701 Location Format Not Supported | 701 Location Format Not Supported | |||
| 702 Geo-location Format Desired Instead | 702 Coordinate-location Format Desired Instead | |||
| 703 Civic-location Format Desired Instead | 703 Civic-location Format Desired Instead | |||
| 704 Cannot Parse Location Supplied | 704 Cannot Parse Location Supplied | |||
| 705 Cannot Find Location | 705 Cannot Find Location | |||
| 706 Conflicting Locations Supplied | 706 Conflicting Locations Supplied | |||
| 707 Incomplete Location Supplied | 707 Incomplete Location Supplied | |||
| 708 Cannot Dereference | 708 Cannot Dereference | |||
| 709 Dereference Denied | 709 Dereference Denied | |||
| 710 Dereference Timeout | 710 Dereference Timeout | |||
| 711 Cannot Process Dereference | 711 Cannot Process Dereference | |||
| 720 Unsupported Schema - sip desired | 720 Unsupported Schema - sip desired | |||
| skipping to change at page 25, line 31 ¶ | skipping to change at page 25, line 43 ¶ | |||
| Adding new location specific Warning codes, or modifying to existing | Adding new location specific Warning codes, or modifying to existing | |||
| location specific Warning codes requires an RFC and community | location specific Warning codes requires an RFC and community | |||
| review. | review. | |||
| 10. Acknowledgements | 10. Acknowledgements | |||
| To Dave Oran for helping to shape this idea. To Jon Peterson and | To Dave Oran for helping to shape this idea. To Jon Peterson and | |||
| Dean Willis on guidance of the effort. To Allison Mankin, Dick | Dean Willis on guidance of the effort. To Allison Mankin, Dick | |||
| Knight, Hannes Tschofenig, Henning Schulzrinne, James Winterbottom, | Knight, Hannes Tschofenig, Henning Schulzrinne, James Winterbottom, | |||
| Jeroen van Bemmel, Jean-Francois Mule, Jonathan Rosenberg, Keith | Jeroen van Bemmel, Jean-Francois Mule, Jonathan Rosenberg, Keith | |||
| Drage, Marc Linsner, Martin Thomson, Mike Hammer and Paul Kyzivat | Drage, Marc Linsner, Martin Thomson, Mike Hammer, Paul Kyzivat, | |||
| for constructive feedback. Thanks to Dan Wing for help with the | Shida Shubert, and Matt Lepinski for constructive feedback. A | |||
| S/MIME example. | special thanks to Dan Wing for help with the S/MIME example. | |||
| 11. References | 11. References | |||
| 11.1 References - Normative | 11.1 References - Normative | |||
| [RFC3261] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. | [RFC3261] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. | |||
| Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: | Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: | |||
| Session Initiation Protocol", RFC 3261, May 2002. | Session Initiation Protocol", RFC 3261, May 2002. | |||
| [RFC3693] J. Cuellar, J. Morris, D. Mulligan, J. Peterson. J. Polk, | ||||
| "Geopriv Requirements", RFC 3693, February 2004 | ||||
| [RFC4119] J. Peterson, "A Presence-based GEOPRIV Location Object | [RFC4119] J. Peterson, "A Presence-based GEOPRIV Location Object | |||
| Format", RFC 4119, December 2005 | Format", RFC 4119, December 2005 | |||
| [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate | [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate | |||
| Requirement Levels", RFC 2119, March 1997 | Requirement Levels", RFC 2119, March 1997 | |||
| [RFC2392] E. Levinson, " Content-ID and Message-ID Uniform Resource | [RFC2392] E. Levinson, " Content-ID and Message-ID Uniform Resource | |||
| Locators", RFC 2393, August 1998 | Locators", RFC 2393, August 1998 | |||
| [RFC3863] H. Sugano, S. Fujimoto, G. Klyne, A. Bateman, W. Carr, J. | [RFC3863] H. Sugano, S. Fujimoto, G. Klyne, A. Bateman, W. Carr, J. | |||
| skipping to change at page 26, line 25 ¶ | skipping to change at page 26, line 34 ¶ | |||
| [RFC3428] B. Campbell, Ed., J. Rosenberg, H. Schulzrinne, C. Huitema, | [RFC3428] B. Campbell, Ed., J. Rosenberg, H. Schulzrinne, C. Huitema, | |||
| D. Gurle, "Session Initiation Protocol (SIP) Extension for | D. Gurle, "Session Initiation Protocol (SIP) Extension for | |||
| Instant Messaging" , RFC 3428, December 2002 | Instant Messaging" , RFC 3428, December 2002 | |||
| [RFC3311] J. Rosenberg, "The Session Initiation Protocol (SIP) UPDATE | [RFC3311] J. Rosenberg, "The Session Initiation Protocol (SIP) UPDATE | |||
| Method", RFC 3311, October 2002 | Method", RFC 3311, October 2002 | |||
| [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific | [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific | |||
| Event Notification", RFC 3265, June 2002. | Event Notification", RFC 3265, June 2002. | |||
| [RFC3851] B. Ramsdell, "Secure/Multipurpose Internet Mail Extensions | ||||
| (S/MIME) Version 3.1 Message Specification", RFC 3851, July | ||||
| 2004 | ||||
| 11.2 References - Informative | 11.2 References - Informative | |||
| [ID-ERROR] J. Polk, "A Geopriv Registry for Location-based Error | [RFC3693] J. Cuellar, J. Morris, D. Mulligan, J. Peterson. J. Polk, | |||
| Response Codes", | "Geopriv Requirements", RFC 3693, February 2004 | |||
| draft-polk-geopriv-location-based-error-registry-00, "work | ||||
| in progress", October 2006 | ||||
| [RFC3825] J. Polk, J. Schnizlein, M. Linsner, "Dynamic Host | [RFC3825] J. Polk, J. Schnizlein, M. Linsner, "Dynamic Host | |||
| Configuration Protocol Option for Coordinate-based Location | Configuration Protocol Option for Coordinate-based Location | |||
| Configuration Information", RFC 3825, July 2004 | Configuration Information", RFC 3825, July 2004 | |||
| [ID-CIVIC] H. Schulzrinne, " Dynamic Host Configuration Protocol | [RFC4776] H. Schulzrinne, " Dynamic Host Configuration Protocol | |||
| (DHCPv4 and DHCPv6) Option for Civic Addresses Configuration | (DHCPv4 and DHCPv6) Option for Civic Addresses Configuration | |||
| Information ", draft-ietf-geopriv-dhcp-civil-09, "work in | Information ", draft-ietf-geopriv-dhcp-civil-09, "work in | |||
| progress", January 2006 | progress", January 2006 | |||
| Author Information | Author Information | |||
| James Polk | James Polk | |||
| Cisco Systems | Cisco Systems | |||
| 3913 Treemont Circle 33.00111N | 3913 Treemont Circle 33.00111N | |||
| Colleyville, Texas 76034 96.68142W | Colleyville, Texas 76034 96.68142W | |||
| skipping to change at page 27, line 50 ¶ | skipping to change at page 28, line 11 ¶ | |||
| Motivation: in case a UAC has moved prior to the establishment of a | Motivation: in case a UAC has moved prior to the establishment of a | |||
| dialog between UAs, the UAC must be able to send new location | dialog between UAs, the UAC must be able to send new location | |||
| information. In the case of location having been conveyed, | information. In the case of location having been conveyed, | |||
| and the UA moves, it needs a means to update the conveyed to | and the UA moves, it needs a means to update the conveyed to | |||
| party of this location change. | party of this location change. | |||
| UAC-7 The privacy and security rules established within [RFC3693] | UAC-7 The privacy and security rules established within [RFC3693] | |||
| that would categorize SIP as a 'using protocol' must be met. | that would categorize SIP as a 'using protocol' must be met. | |||
| UAC-8 The PIDF-LO [RFC4119] is a mandatory to implement format for | UAC-8 The PIDF-LO [RFC 4119] is a mandatory to implement format for | |||
| location conveyance within SIP, whether included by-value or | location conveyance within SIP, whether included by-value or | |||
| by-reference. | by-reference. | |||
| Motivation: interoperability with other IETF location protocols and | Motivation: interoperability with other IETF location protocols and | |||
| mechanisms | mechanisms | |||
| UAC-9 There must be a mechanism for the UAC to request the UAS send | UAC-9 There must be a mechanism for the UAC to request the UAS send | |||
| its location | its location | |||
| UAC-10 There must be a mechanism to differentiate the ability of the | UAC-10 There must be a mechanism to differentiate the ability of the | |||
| skipping to change at page 29, line 17 ¶ | skipping to change at page 29, line 30 ¶ | |||
| Proxy-2 There must be a unique 4XX response informing the UAC it | Proxy-2 There must be a unique 4XX response informing the UAC it | |||
| did not provide applicable location information. | did not provide applicable location information. | |||
| Appendix B. Changes from Prior Versions | Appendix B. Changes from Prior Versions | |||
| [NOTE TO RFC-EDITOR: If this document is to be published as an RFC, | [NOTE TO RFC-EDITOR: If this document is to be published as an RFC, | |||
| this Appendix B is to be removed prior to that event.] | this Appendix B is to be removed prior to that event.] | |||
| This is a list of the changes that have been made from the SIP WG | This is a list of the changes that have been made from the SIP WG | |||
| version -06 to this version -07: | ||||
| - Fixed nits from Tools page | ||||
| - fixed subtle ambiguity in some sentences and misc. errors, based | ||||
| on feedback from -06. | ||||
| This is a list of the changes that have been made from the SIP WG | ||||
| version -05 to this version -06: | version -05 to this version -06: | |||
| - cleaned up some inconsistencies wrt the S/MIME example in Section | - cleaned up some inconsistencies wrt the S/MIME example in Section | |||
| 4.2 | 4.2 | |||
| - changed the ABNF to include the ability to indicate which SIP | - changed the ABNF to include the ability to indicate which SIP | |||
| element inserted a particular location URI, and how a message | element inserted a particular location URI, and how a message | |||
| routing server indicates which location the message was routed | routing server indicates which location the message was routed | |||
| upon (based on the location in the message) | upon (based on the location in the message) | |||
| - changed the granular error code from a Reason header indication to | - changed the granular error code from a Reason header indication to | |||
| a Warning code indication (section 3.4), and IANA registered 14 | a Warning code indication (section 3.4), and IANA registered 14 | |||
| new Warning codes in this document | new Warning codes in this document | |||
| - As a consequence of the above bullet, changed the specific SIP | - As a consequence of the above bullet, changed the specific SIP | |||
| element behaviors of each SIP element regarding sending or | element behaviors of each SIP element regarding sending or | |||
| receiving a 424 response with a Warning header | receiving a 424 response with a Warning header | |||
| - Added rules about indicating which SIP element inserted a | - Added rules about indicating which SIP element inserted a | |||
| particular location into a message (a new Geolocation header | particular location into a message (a new Geolocation header | |||
| parameter), as well as when a server adds another new header | parameter), as well as when a server adds another new header | |||
| parameter indicating the request was routed based on a particular | parameter indicating the request was routed based on a particular | |||
| location included in the message | location included in the message | |||
| This is a list of the changes that have been made from the SIP WG | This is a list of the changes that have been made from the SIP WG | |||
| version -04 to this version -05: | version -04 to this version -05: | |||
| - altered the meaning of use of OPTIONS to not be for retrieving the | - altered the meaning of use of OPTIONS to not be for retrieving the | |||
| location of a UAS, but for cases in which location is a required | location of a UAS, but for cases in which location is a required | |||
| End of changes. 60 change blocks. | ||||
| 133 lines changed or deleted | 153 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||