SIP D. Worley Internet-Draft Avaya Intended status: Experimental January 6, 2010 Expires: July 10, 2010 The References Header for SIP draft-worley-references-05 Abstract This document defines a SIP extension header, References, to be used within SIP messages to signify that the message (and the dialog containing it) is related to one or more other dialogs. It is expected to be used largely for diagnostic purposes. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on July 10, 2010. Copyright Notice Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents Worley Expires July 10, 2010 [Page 1] Internet-Draft SIP References header January 2010 carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License. Table of Contents 1. Purpose of the References Header . . . . . . . . . . . . . . . 3 2. Syntax and Semantics . . . . . . . . . . . . . . . . . . . . . 4 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1. B2BUA . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2. REFER . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3. Attended Transfer . . . . . . . . . . . . . . . . . . . . 10 3.4. Call Pickup . . . . . . . . . . . . . . . . . . . . . . . 13 4. Practical Experience . . . . . . . . . . . . . . . . . . . . . 17 5. Related Work . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.1. draft-loreto-sipping-dialog-correlation . . . . . . . . . 18 5.2. draft-kaplan-sip-session-id . . . . . . . . . . . . . . . 18 6. Security Considerations . . . . . . . . . . . . . . . . . . . 21 7. Revision History . . . . . . . . . . . . . . . . . . . . . . . 22 7.1. Changes from draft-worley-references-04 to draft-worley-references-05 . . . . . . . . . . . . . . . . 22 7.2. Changes from draft-worley-references-03 to draft-worley-references-04 . . . . . . . . . . . . . . . . 22 7.3. Changes from draft-worley-references-02 to draft-worley-references-03 . . . . . . . . . . . . . . . . 22 7.4. Changes from draft-worley-references-01 to draft-worley-references-02 . . . . . . . . . . . . . . . . 22 7.5. Changes from draft-worley-references-00 to draft-worley-references-01 . . . . . . . . . . . . . . . . 22 7.6. draft-worley-references-00 . . . . . . . . . . . . . . . . 23 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 24 8.1. Normative References . . . . . . . . . . . . . . . . . . . 24 8.2. Informative References . . . . . . . . . . . . . . . . . . 24 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 25 Worley Expires July 10, 2010 [Page 2] Internet-Draft SIP References header January 2010 1. Purpose of the References Header In many situations, the processing of a SIP "telephone call" involves a number of different SIP dialogs. Of course, the existing SIP headers provide adequate information for the SIP elements to carry out the needed operations. But in many cases, it is difficult for an observer to identify from a network trace the particular SIP dialogs that are involved in one operation. For example, if a user agent receives a REFER message within one dialog, it sends an INVITE to establish a new dialog which replaces the previous one within the user interface of the user agent. But since the connection between the new dialog and the old dialog is only realized within the user agent, there is no algorithmic way to associate the two dialogs based on the SIP messages alone -- the best available technique is to extract all the messages to/from the particular user agent, and then observe the INVITE that is sent immediately after receipt of the REFER. The purpose of the References header is to allow a SIP message to specify that the message carrying it (and by extension, the dialog that contains the message) is related to one or more other dialogs, specified by their Call-Id values. Ideally, when given a Call-Id, an automated process can use the connections between dialogs specified in References headers to determine the entire set of dialogs that are needed to understand a complete "telephone call" or other SIP interaction. Worley Expires July 10, 2010 [Page 3] Internet-Draft SIP References header January 2010 2. Syntax and Semantics The syntax of the References header is as follows. (All rules not defined here are taken from section 25.1 of RFC 3261[sip].) message-header =/ References References = "References" HCOLON reference *(COMMA reference) reference = callid *( SEMI reference-param ) reference-param = rel-param / generic-param rel-param = "rel" EQUAL rel-value rel-value = "chain" / "inquiry" / "refer" / "sequel" / "xfer" / gen-value Multiple References headers may appear in a SIP message, and their values may be combined or separated as allowed by section 7.3 of RFC 3261[sip]. The ordering of References values is not significant. The call-id values of the Replaces and Join headers are considered implicit References values and so SHOULD NOT be specified in References headers. Similarly to the grammar for the Call-ID header, no escaping is defined for the call-id value in the References header. The presence of a References header in a SIP message means that the message (and by implication, the dialog containing it) is related to the dialog(s) bearing the specified Call-Id(s). Note that since there is no way to specify the to-tag and from-tag of the referenced dialog, the References header does not distinguish different dialogs that have the same Call-Id, and all dialogs sharing a Call-Id are considered to be related a priori. The processor of References headers should consider the "related" relationship of dialogs to include the symmetric-transitive closure of the References relationship; that is, if a message in dialog A references dialog B, and a message in dialog B references dialog C, then all three dialogs should be considered related to each other. The nature of the relationship between the message's dialog and the referenced dialog(s) is indicated by the "rel" parameter (if it is present). Since the message containing the References header is likely to be constrained to be generated after the creation of the dialog mentioned by the header, and the UA may not have control over this time-ordering, each relationship nature defined below implicitly defines a reverse relationship, whose "rel" parameter value is prefixed with "-". E.g., a request with Call-Id A that performs an inquiry to assist in routing dialog B may contain Worley Expires July 10, 2010 [Page 4] Internet-Draft SIP References header January 2010 References: B;rel=inquiry but the same meaning can be indicated by a message in dialog B containing References: A;rel=-inquiry The currently defined values of the "rel" parameter are: "chain" meaning that this request is the logical continuation of the dialog with the specified Call-Id through a B2BUA or the like, in that it will carry media that have the same meaning to the user "inquiry" meaning that this request was generated to obtain information needed to properly process a request with the specified Call-Id. (For example, in section 2.16, "Call Pickup" of [service-examples], a SUBSCRIBE is generated to discover the UA which sent an INVITE to a designated AOR.) "join" - this value is permanently reserved so that it may be used as a value of cognate data items when describing dialogs related by a "Join" header "refer" meaning that this request was generated due to a REFER with the specified Call-Id "replaces" - this value is permanently reserved so that it may be used as a value of cognate data items when describing dialogs related by a "Replaces" header "service" means that this dialog is to obtain "service media" for use by the dialog with the specified Call-Id. "Service media" includes music-on-hold, alert tones, and the like. "sequel" means that this dialog is the continuation of the conversation carried by the dialog with the specified Call-Id "xfer" meaning that the dialog of this message and the dialog with the specified Call-Id are the two legs of a consultative (or attended) transfer. One endpoint of each dialog will become an endpoint of the final dialog. These values are case-sensitive (although the parameter name, "rel", is not). The processor of the References header MUST remove any quoting from the "rel" parameter value before processing it. As shown in the ABNF, the quoting which may be applied to rel-value is the same as Worley Expires July 10, 2010 [Page 5] Internet-Draft SIP References header January 2010 what may be applied to a gen-value, specifically, if it is surrounded by double-quotes, then any character may be quoted with a backslash. Thus the following are all equivalent: References: 12345600@atlanta.example.com;rel=xfer References: 12345600@atlanta.example.com;rel="xfer" References: 12345600@atlanta.example.com;rel="\x\f\e\r" It is expected that the References header will usually appear in the dialog-forming request of a dialog, but it may appear in any request or response. Since 1xx responses are not delivered reliably, a References header value that is present only in a 1xx response may not be seen by an element that ought in principle to see the response, and such a value SHOULD be present in another message of the dialog going to that element. The semantics of some "rel" values (e.g., "chain" and "xfer") are inherently symmetric; in these cases the "reverse" value, prefixed with "-" is still valid, and the processor of the References header SHOULD treat the base relationship and the reverse relationship identically. All parameters and parameter values that are not understood by the processor of the References header MUST be ignored. Parameters and values that start with "X-" (case-insensitive) are reserved for non- standardized purposes. This implies that rel-values that start with "-X-" (case-insensitive) are similarly reserved. Note that while the SIP References header is similar in function to the Internet e-mail References header[message-format], they have different syntaxes and are not interchangeable. Worley Expires July 10, 2010 [Page 6] Internet-Draft SIP References header January 2010 3. Examples 3.1. B2BUA One use of References is to connect the two "sides" of a single logical dialog that passes through a B2BUA (which might not have the same Call-Id). Alice B2BUA Bob | | | | INVITE F1 | | |------------------->| | | | INVITE F2 | | |------------------->| | | | F1 INVITE Alice -> B2BUA, en route to Bob INVITE sips:bob@chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bKnash3c6h Max-Forwards: 70 From: Alice ;tag=867AB09 To: Bob Call-ID: 2851866@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... [SDP omitted] Worley Expires July 10, 2010 [Page 7] Internet-Draft SIP References header January 2010 F2 INVITE B2BUA -> Bob INVITE sips:bob@chicago.example.com SIP/2.0 References: 2851866@atlanta.example.com;rel=chain Via: SIP/2.0/TCP b2bua.example.com ;branch=z9hG4bKnqhsocn Max-Forwards: 70 From: Alice ;tag=7923480 To: Bob Call-ID: 92060-25@b2bua.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... [SDP omitted] 3.2. REFER One use of References is to connect a REFER to the INVITE that it causes to be sent. A typical use of REFER is to implement blind transfer. This example is taken from section 2.4, "Transfer - Unattended" of [service-examples]. Worley Expires July 10, 2010 [Page 8] Internet-Draft SIP References header January 2010 Alice Bob Carol | | | | INVITE F1 | | |<-------------------| | | 180 Ringing F2 | | |------------------->| | | 200 OK F3 | | |------------------->| | | ACK F4 | | |<-------------------| | | RTP | | |<==================>| | | | | | Alice performs unattended transfer | | | | | REFER Refer-To:C F5| | |------------------->| | | 202 Accepted F6 | | |<-------------------| | | NOTIFY F7 | | |<-------------------| | | 200 OK F8 | | |------------------->| | | BYE F9 | | |------------------->| | | 200 OK F10 | | |<-------------------| | | No RTP Session | INVITE Referred-By: A F11 | |------------------->| | | 180 Ringing F12 | | |<-------------------| | | 200 OK F13 | | |<-------------------| | | ACK F14 | | |------------------->| | | RTP | | |<==================>| | NOTIFY F15 | | |<-------------------| | | 200 OK F16 | | |------------------->| | | | | In order to execute the blind transfer, Alice's UA sends a REFER to Bob's UA: Worley Expires July 10, 2010 [Page 9] Internet-Draft SIP References header January 2010 F5 REFER Alice -> Bob REFER sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds8 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 101 REFER Refer-To: Referred-By: Contact: Content-Length: 0 Upon receipt of the REFER, Bob's UA sends an INVITE to Carol's UA. In order to make explicit the relationship between the REFER and the INVITE, the INVITE has a References header giving the Call-Id of the REFER: F11 INVITE Bob -> Carol INVITE sips:carol@chicago.example.com SIP/2.0 References: 12345601@atlanta.example.com;rel=refer Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds1 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol Call-ID: 7436222@atlanta.example.com CSeq: 1 INVITE Contact: Referred-By: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... [SDP omitted] 3.3. Attended Transfer An attended transfer normally involves three different dialogs. If the transfer completes, and the REFER that completes the transfer has a References header, the References header in the REFER and the Replaces header in the resulting INVITE will suffice to connect the three dialogs. However, to provide complete information if the transfer does not complete, the INVITE that establishes the "second Worley Expires July 10, 2010 [Page 10] Internet-Draft SIP References header January 2010 leg" of the transfer scenario should have a References header naming the "first leg". This example is taken from section 2.5, "Transfer - Attended" of [service-examples]. Alice Bob Carol | | | | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | | 200 OK F3 | | |<---------------| | | ACK F4 | | |--------------->| | | RTP | | |<==============>| | |INVITE (hold) F5| | |<---------------| | | 200 OK F6 | | |--------------->| | | ACK F7 | | |<---------------| | | No RTP | | | | INVITE F8 | | |------------->| | | 180 Ringing F9 | |<-------------| | | 200 OK F10 | | |<-------------| | | ACK F11 | | |------------->| | | RTP | | |<============>| | |INVITE (hold) F12 | |------------->| | | 200 OK F13 | | |<-------------| | | ACK F14 | | |------------->| | | No RTP | | REFER Refer-To: C F15 | |<---------------| | |202 Accepted F16| | |--------------->| | | NOTIFY F17 | | |--------------->| | | 200 OK F18 | | |<---------------| | Worley Expires July 10, 2010 [Page 11] Internet-Draft SIP References header January 2010 | INVITE Replaces: B F19 | |------------------------------>| | 200 OK F20 | |<------------------------------| | ACK F21 | |------------------------------>| | RTP | |<=============================>| | | BYE F22 | | |<-------------| | | 200 OK F23 | | |------------->| | NOTIFY F24 | | |--------------->| | | 200 OK F25 | | |<---------------| | | BYE F26 | | |<---------------| | | 200 OK F27 | | |--------------->| | | | | The INVITE that establishes the second leg has a References header naming the first leg: F8 INVITE Bob -> Carol INVITE sips:carol@chicago.example.com SIP/2.0 References: 12345600@atlanta.example.com;rel=xfer Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... [SDP omitted] As described in Section 3.2, the INVITE that completes the transfer has a References header giving the dialog of the first leg, within which the REFER was sent. It also has a Replaces header giving the dialog of the second leg, which acts as an implicit References. Worley Expires July 10, 2010 [Page 12] Internet-Draft SIP References header January 2010 F19 INVITE Alice -> Carol INVITE sips:39itp34klkd@chicago.example.com;gr SIP/2.0 References: 12345600@atlanta.example.com;rel=refer Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKadfe4ko To: Carol Max-Forwards: 70 From: Alice ;tag=3461 Call-ID: 9435674543@atlanta.example.com CSeq: 1 INVITE Require: replaces Referred-By: Replaces: sdjfdjfskdf@biloxi.example.com ;to-tag=5f35a3;from-tag=8675309 Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... [SDP omitted] 3.4. Call Pickup The References header can be used during a call pickup operation to connect the SUBSCRIBE that is used to locate the target dialog with the INVITE which is generated to execute the pickup. This example is taken from section 2.16, "Call Pickup" of [service-examples]. Worley Expires July 10, 2010 [Page 13] Internet-Draft SIP References header January 2010 Alice Bob Bill | | | | INVITE F1 | | |------------->| | |180 Ringing F2| | |<-------------| | | | SUBSCRIBE F3 | | |<------------------| | | 200 OK F4 | | |------------------>| | | NOTIFY F5 | | |------------------>| | | 200 OK F6 | | |<------------------| | INVITE Replaces:Bob F7 | |<---------------------------------| | | 200 OK F8 | |--------------------------------->| | CANCEL F9 | | |------------->| | | 200 OK F10 | | |<-------------| | | 487 F11 | | |<-------------| | | ACK F12 | | |------------->| | | ACK F13 | |<---------------------------------| | | | Two way RTP Established | |<================================>| | BYE F14 | |--------------------------------->| | 200 OK F15 | |<---------------------------------| | | Bill's UA sends a SUBSCRIBE to find the target dialog: Worley Expires July 10, 2010 [Page 14] Internet-Draft SIP References header January 2010 F3 SUBSCRIBE Bill -> Bob SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74bf Max-Forwards: 70 From: Bill ;tag=8675309 To: Bob Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 SUBSCRIBE Contact: Event: dialog Expires: 0 Accept: application/dialog-info+xml Content-Length: 0 After locating the target dialog, Bill's UA generates an INVITE-with- Replaces to execute the pickup. The UA adds the References header to show the connection with the SUBSCRIBE, using the rel-value "-inquiry": F7 INVITE Bill -> Alice INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 References: rt4353gs2egg@pc.biloxi.example.com;rel=-inquiry Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74HH Max-Forwards: 70 From: Bill ;tag=8675310 To: Alice Call-ID: 563456212@b2.biloxi.example.com CSeq: 1 INVITE Require: replaces Replaces: 12345600@atlanta.example.com ;from-tag=314578;to-tag=1234567;early-only Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... [SDP omitted] Note that the executing INVITE F7 does not mention the Call-Id of the original INVITE F1 because it is mentioned in the Replaces header. If the call pickup operation is done by an agent on behalf of Bill's UA (as in the sipX open-source PBX), the executing INVITE is likely Worley Expires July 10, 2010 [Page 15] Internet-Draft SIP References header January 2010 to exist before the SUBSCRIBE is generated. In that case, the SUBSCRIBE will have a References header giving the Call-Id of the INVITE: F3 SUBSCRIBE Bill -> Bob SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0 References: 563456212@b2.biloxi.example.com;rel=inquiry Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74bf Max-Forwards: 70 From: Bill ;tag=8675309 To: Bob Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 SUBSCRIBE Contact: Event: dialog Expires: 0 Accept: application/dialog-info+xml Content-Length: 0 Worley Expires July 10, 2010 [Page 16] Internet-Draft SIP References header January 2010 4. Practical Experience The current version of the sipX open-source PBX adds a References header to the SUBSCRIBE of a call pickup as described in section 2.16, "Call Pickup" of [service-examples]. It has caused no observed interoperability problem. Worley Expires July 10, 2010 [Page 17] Internet-Draft SIP References header January 2010 5. Related Work This section discusses other Internet-drafts and their relationship to this work. 5.1. draft-loreto-sipping-dialog-correlation The Session Initiation Protocol (SIP) Dialog Correlation[loreto-correlation] This document defines a new header field for use with SIP. The Same-Session header field is used to logically correlate an existing SIP dialog with a new SIP dialog when the media sessions established by both dialogs can be considered a single logical session. This mechanism can be used to share the user interface and other resources between all the media streams from both sessions. The "Same-Session" header prescribes that the media sessions of two INVITE dialog usages are to be considered part of the same session from the users' points of view. Because of this semantic, it cannot be used in place of the References header, as References can be used to express the relationship between two dialogs that are not connected in any particular way in regard to user interface. However, it would be possible to define a "parallel" value of the "rel" parameter to have the semantics of "Same-Session". This usage would require that the References header appears in the INVITE establishing the second dialog (and that the two INVITEs are properly time-sequenced, or that both INVITEs have a References header). But this still might be considered a conflation of mechanism that have different semantics. 5.2. draft-kaplan-sip-session-id A Session Identifier for the Session Initiation Protocol (SIP)[kaplan-session] There are several reasons for having a globally unique session identifier for the same SIP session, which can be maintained across B2BUA's and other SIP middle-boxes. This draft proposes a new SIP header to carry such a value: Session-ID. The semantics of "Session-ID" are close to those of References, and it would be reasonable to define a "rel" value that meant that the referenced Call-Id was "the other side" of a B2BUA connection. (This would require placing a References header in the INVITE request sent from the recipient side of the B2BUA and one in the response to the Worley Expires July 10, 2010 [Page 18] Internet-Draft SIP References header January 2010 INVITE send from the originator side.) But since References contains the real Call-Id of a dialog, this use would not have the security properties described in section 5.1 of [kaplan-session]. A possible solution to this problem is for the B2BUA to create a "phantom" Call-Id that is suitably random, and use it in References headers sent in both the initial request and response. By the transitivity propertySection 2, the dialogs on both sides of the B2BUA are declared to be related, even if the referenced dialog contains no messages. For two chained B2BUAs with no forking, this would give a message flow like this: UA 1 B2BUA 1 B2BUA 2 UA 2 ---> INVITE 123@aa.example.com Call-Id: qwerty@aa ---> INVITE 123@transit.example.com Call-Id: asdfgh@transit References: QAZWSXEDCRFV;rel=chain ---> INVITE 123@bb.example.com Call-Id: zxcvbn@bb References: QAZWSXEDCRFV ;rel=chain <--- SIP/2.0 200 OK Call-Id: zxcvbn@bb <--- SIP/2.0 200 OK Call-Id: asdfgh@transit References: QAZWSXEDCRFV;rel=chain <--- SIP/2.0 200 OK Call-Id: qwerty@aa References: QAZWSXEDCRFV;rel=chain Note that B2BUA 2 does not create a new "References chain" value, but rather reuses the value it received in the initial INVITE. (In principle, B2BUA 2 does not need to add References to the response it Worley Expires July 10, 2010 [Page 19] Internet-Draft SIP References header January 2010 sends, as References is present in the request.) Worley Expires July 10, 2010 [Page 20] Internet-Draft SIP References header January 2010 6. Security Considerations The specification of the relationship between two dialogs could in principle be a privacy issue. But these relationships can usually be discerned by heuristic processing of the stream of SIP messages, and (with one exception) the author knows of no instance where the security or privacy properties of SIP have been based on the inability of an eavesdropper to determine that two SIP dialogs or messages are related. The one known privacy problem is the the "service provider privacy" problem discussed in [kaplan-session]. This situation is different from conventional "user security" situations because the eavesdropper is assumed to be unable to tap multiple points of the network, and the goal is to prevent the eavesdropper from obtaining information about parts of the network that the eavesdropper cannot directly access. This sort of privacy can be provided by constructing artificial Call-Ids to use in References headers, if References is inserted in both requests and responses. Worley Expires July 10, 2010 [Page 21] Internet-Draft SIP References header January 2010 7. Revision History 7.1. Changes from draft-worley-references-04 to draft-worley-references-05 Refresh of expired Internet-Draft. Updated author's contact information. 7.2. Changes from draft-worley-references-03 to draft-worley-references-04 Added the "rel=service" value. Added the convention of naming the reversed relationships by prefixing the rel-value with "-". 7.3. Changes from draft-worley-references-02 to draft-worley-references-03 Added the "rel=chain" and "rel=sequel" values. Reserved the "rel=replaces" and "rel=join" values. Added B2BUA example for "rel=chain". 7.4. Changes from draft-worley-references-01 to draft-worley-references-02 Specified that the value of the "rel" parameter is not affected by any quoting which is applied. Specified that the value of the "rel" parameter is case-sensitive. Categorize the References header as experimental. 7.5. Changes from draft-worley-references-00 to draft-worley-references-01 Add the "rel" parameter. Note that References will usually appear in the dialog-forming request. Note that References may appear in a response. Add the "Related Work" section. Worley Expires July 10, 2010 [Page 22] Internet-Draft SIP References header January 2010 7.6. draft-worley-references-00 Initial version. Worley Expires July 10, 2010 [Page 23] Internet-Draft SIP References header January 2010 8. References 8.1. Normative References [sip] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. 8.2. Informative References [service-examples] Johnston, A., Sparks, R., Cunningham, C., Donovan, S., and K. Summers, "Session Initiation Protocol Service Examples", RFC 5359, October 2008. [message-format] Resnick, P., "Internet Message Format", RFC 5322, October 2008. [loreto-correlation] Loreto, S. and G. Camarillo, "The Session Initiation Protocol (SIP) Dialog Correlation", I-D draft-loreto-sipping-dialog-correlation-01, June 2006. [kaplan-session] Kaplan, H., "A Session Identifier for the Session Initiation Protocol (SIP)", I-D draft-kaplan-sip-session-id-00, November 2008. Worley Expires July 10, 2010 [Page 24] Internet-Draft SIP References header January 2010 Author's Address Dale R. Worley Avaya Inc. 600 Technology Park Dr. Billerica, MA 01821 US Phone: +1 978 288 5505 Email: dworley@avaya.com URI: http://www.avaya.com Worley Expires July 10, 2010 [Page 25]