idnits 2.17.1 draft-ietf-sip-replaces-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 299 has weird spacing: '...r field whe...' == Line 496 has weird spacing: '...ication for r...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (March 2, 2003) is 7725 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 2234 (ref. '3') (Obsoleted by RFC 4234) -- Obsolete informational reference (is this intentional?): RFC 2543 (ref. '5') (Obsoleted by RFC 3261, RFC 3262, RFC 3263, RFC 3264, RFC 3265) == Outdated reference: A later version (-12) exists of draft-ietf-sipping-cc-framework-01 == Outdated reference: A later version (-06) exists of draft-ietf-sipping-3pcc-02 == Outdated reference: A later version (-12) exists of draft-ietf-sipping-cc-transfer-01 == Outdated reference: A later version (-06) exists of draft-ietf-sipping-dialog-package-00 == Outdated reference: A later version (-15) exists of draft-ietf-sipping-service-examples-03 == Outdated reference: A later version (-05) exists of draft-ietf-sip-referredby-01 -- Obsolete informational reference (is this intentional?): RFC 3265 (ref. '13') (Obsoleted by RFC 6665) -- Obsolete informational reference (is this intentional?): RFC 2976 (ref. '14') (Obsoleted by RFC 6086) Summary: 2 errors (**), 0 flaws (~~), 10 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIP WG R. Mahy 3 Internet-Draft Cisco Systems, Inc. 4 Expires: August 31, 2003 B. Biggs 5 R. Dean 6 March 2, 2003 8 The Session Inititation Protocol (SIP) "Replaces" Header 9 draft-ietf-sip-replaces-03.txt 11 Status of this Memo 13 This document is an Internet-Draft and is in full conformance with 14 all provisions of Section 10 of RFC2026. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that other 18 groups may also distribute working documents as Internet-Drafts. 20 Internet-Drafts are draft documents valid for a maximum of six months 21 and may be updated, replaced, or obsoleted by other documents at any 22 time. It is inappropriate to use Internet-Drafts as reference 23 material or to cite them other than as "work in progress." 25 The list of current Internet-Drafts can be accessed at http:// 26 www.ietf.org/ietf/1id-abstracts.txt. 28 The list of Internet-Draft Shadow Directories can be accessed at 29 http://www.ietf.org/shadow.html. 31 This Internet-Draft will expire on August 31, 2003. 33 Copyright Notice 35 Copyright (C) The Internet Society (2003). All Rights Reserved. 37 Abstract 39 This document defines a new header for use with SIP multi-party 40 applications and call control. The Replaces header is used to 41 logically replace an existing SIP dialog with a new SIP dialog. This 42 primitive can be used to enable a variety of features, for example: 43 "Attended Transfer" and "Retrieve from Call Park". Note that 44 definition of these example features is non-normative. 46 Table of Contents 48 1. Conventions . . . . . . . . . . . . . . . . . . . . . . . . 3 49 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 50 3. User Agent Server Behavior: Receiving a Replaces Header . . 5 51 4. User Agent Client Behavior: Sending a Replaces header . . . 6 52 5. Proxy behavior . . . . . . . . . . . . . . . . . . . . . . . 7 53 6. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 54 6.1 The Replaces Header . . . . . . . . . . . . . . . . . . . . 7 55 6.2 New option tag for Require and Supported headers . . . . . . 8 56 7. Usage Examples . . . . . . . . . . . . . . . . . . . . . . . 8 57 7.1 Replacing an Early Dialog at the originator . . . . . . . . 8 58 8. Security Considerations . . . . . . . . . . . . . . . . . . 10 59 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 12 60 9.1 Registration of "Replaces" SIP header . . . . . . . . . . . 12 61 9.2 Registration of "replaces" SIP Option-tag . . . . . . . . . 12 62 10. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . 13 63 10.1 Changes Since -02 . . . . . . . . . . . . . . . . . . . . . 13 64 10.2 Changes Since -01 . . . . . . . . . . . . . . . . . . . . . 13 65 10.3 Changes Since -00 . . . . . . . . . . . . . . . . . . . . . 13 66 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 14 67 Normative References . . . . . . . . . . . . . . . . . . . . 14 68 Informational References . . . . . . . . . . . . . . . . . . 14 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 15 70 Intellectual Property and Copyright Statements . . . . . . . 16 72 1. Conventions 74 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 75 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 76 document are to be interpreted as described in RFC-2119 [2]. 78 This document refers frequently to the terms "confirmed dialog" and 79 "early dialog". These are defined in Section 12 of SIP [1]. 81 2. Overview 83 This document describes a SIP [1] extension header field as part of 84 the SIP multiparty applications architecture framework [6]. The 85 Replaces header is used to logically replace an existing SIP dialog 86 with a new SIP dialog. This is especially useful in peer-to-peer call 87 control environments. 89 One use of the "Replaces" header is to replace one participant with 90 another in a multimedia conversation. While this functionality is 91 already available using 3rd party call control [7] style call 92 control, the 3pcc model requires a central point of control which may 93 not be desirable in many environments. As such, a method of 94 performing these same call control primitives in a distributed, 95 peer-to-peer fashion is very desirable. 97 Use of a new INVITE with a new header for dialog matching was chosen 98 over making implicit associations in an incoming INVITE based on 99 call-id or other fields for the following reasons: 101 o An INVITE already has the correct semantics for a new call 103 o Using an explicit Replaces header in a new request makes the 104 intent of the request obvious. 106 o A unique call-id may be given to the replacement call. This 107 avoids call-leg matching problems in any of the related User 108 Agents. 110 o There are no adverse effects if the header is unsupported. 112 The Replaces header enables services such as attended call transfer, 113 retrieve from park, and transition from locally mixed conferences to 114 two party calls in a distributed peer-to-peer way. This list of 115 services is not exhaustive. Although the Replaces header is 116 frequently used in combination with the REFER [4] method as used in 117 cc-transfer [8], they may be used independently. 119 For example, Alice is talking to Bob from phone1. She transfers Bob 120 to a Parking Place while she goes to the lab. When she gets there 121 she retrieves the "parked" call from phone2 by sending an INVITE with 122 a Replaces header field to Bob with the dialog information Bob shared 123 with the Parking Place. Alice got this information using some out of 124 band mechansim. Perhaps she subscribed to this information from the 125 Parking Place (using the session dialog package [9]), or went to a 126 website and clicked on a URI. A short call flow for this example 127 follows. (Via and Max-Forwards headers are omitted for clarity.) 129 Alice Alice Parking 130 phone1 phone2 Bob Place 131 | | | | 132 |<===============================>| | 133 | | | | 134 | Alice transfers Bob to Parking Place | 135 | | | | 136 |------------REFER/200----------->| *1 *2 | 137 | | |--INVITE/200/ACK-->| 138 |<-----------NOTIFY/200-----------|<=================>| 139 |------------BYE/200------------->| | 140 | | | | 141 | | | | 142 | Alice later retrieves call from another phone | 143 | | | | 144 | *3 |-INV w/Replaces->| | 145 | |<--200-----------| | 146 | |---ACK---------->|----BYE/200------->| 147 | |<===============>| | 148 | | | | 150 Message *1: Bob-> Parking Place 152 INVITE sip:parkingplace@example.org SIP/2.0 153 To: 154 From: ;tag=7743 155 Call-ID: 425928@bobster.example.org 156 CSeq: 1 INVITE 157 Contact: 158 Referred-By: 160 Message *2: Parking Place -> Bob 162 SIP/2.0 200 OK 163 To: ;tag=6472 164 From: ;tag=7743 165 Call-ID: 425928@bobster.example.org 166 CSeq: 1 INVITE 167 Contact: 169 Message *3: Alice@phone2 -> Bob 171 INVITE sip:bob@bobster.example.org 172 To: 173 From: ;tag=8983 174 Call-ID: 09870@phone2.example.org 175 CSeq: 1 INVITE 176 Contact: 177 Require: replaces 178 Replaces: 425928@bobster.example.org;to-tag=7743;from-tag=6472 180 3. User Agent Server Behavior: Receiving a Replaces Header 182 The Replaces header contains information used to match an existing 183 SIP dialog (call-id, to-tag, and from-tag). Upon receiving an INVITE 184 with a Replaces header, the UA attempts to match this information 185 with a confirmed or early dialog. The to-tag and from-tag parameters 186 are matched as if they were tags present in an incoming request. In 187 other words the to-tag parameter is compared to the local tag, and 188 the from-tag parameter is compared to the remote tag. 190 If more than one Replaces header field is present in an INVITE, or if 191 a Replaces header field is present in a request other than INVITE, 192 the UAS MUST reject the request with a 400 Bad Request response. 194 The Replaces header has specific call control semantics. If both a 195 Replaces header field and another header field with contradictory 196 semantics are present in a request, the request MUST be rejected with 197 a 400 "Bad Request" response. 199 If the Replaces header field matches more than one dialog, the UA 200 MUST act as if no match is found. 202 If no match is found, the UAS rejects the INVITE and returns a 481 203 Call/Transaction Does Not Exist response. Likewise, if the Replaces 204 header field matches a dialog which was not created with an INVITE, 205 the UAS MUST reject the request with a 481 response. 207 If the Replaces header field matches a dialog which has already 208 terminated, the UA SHOULD decline the request with a 603 Declined 209 response. 211 If the Replaces header field matches an active dialog, the UA SHOULD 212 verify that the initiator of the new INVITE is authorized to replace 213 the matched dialog. If the initiator of the new INVITE has 214 authenticated successfully as equivalent to the user who is being 215 replaced, then the replacement is authorized. In addition, the UA 216 MAY use other authorization mechanisms defined for this purpose in 217 standards track extensions. Extensions could define other mechanisms 218 for transitively asserting authorization of a replacement. For 219 example, the Referred-By mechanism [11] defines a mechanism that the 220 UAS can use to verify that a replacement request was sent on behalf 221 of the other participant in the matched dialog (in this case, 222 triggered by a REFER request). 224 If authorization is successful, the UA attempts to accept the new 225 INVITE, reassign the user interface and other resources of the 226 matched dialog to the new INVITE, and shut down the replaced dialog. 227 If the UA cannot accept the new INVITE (for example: it cannot 228 establish required QoS or keying, or it has incompatible media), the 229 UA MUST return an appropriate error response and MUST leave the 230 matched dialog unchanged. 232 If the Replaces header field matches a confirmed dialog, it accepts 233 the new INVITE by sending a 200-class response, and shuts down the 234 replaced dialog by sending a BYE. If the Replaces header field 235 matches an early dialog that was initiated by the UA, it accepts the 236 new INVITE by sending a 200-class response, and shuts down the 237 replaced dialog by sending a CANCEL. 239 If the Replaces header field matches an early dialog that was not 240 initiated by this UA, it returns a 481 (Call/Transaction Does Not 241 Exist) response to the new INVITE, and leaves the matched dialog 242 unchanged. Note that since Replaces matches only a single dialog, the 243 replacement dialog will not be retargeted according to the same 244 forking logic as the original request which created the early dialog. 245 (Currently no use cases have been identified for replacing just a 246 single dialog in this circumstance.) 248 4. User Agent Client Behavior: Sending a Replaces header 250 A User Agent that wishes to replace a single existing early or 251 confirmed dialog with a new dialog of its own, MAY send the target 252 User Agent an INVITE request containing a Replaces header field. The 253 UAC places the Call-ID, to-tag, and from-tag information for the 254 target dialog in a single Replaces header field and sends the new 255 INVITE to the target. A UAC MUST NOT send an INVITE with Replaces 256 header field which attempts to replace an early dialog which was not 257 originated by the target of the INVITE with Replaces header field. 259 Note that use of this mechanism does not provide a way to match 260 multiple dialogs, nor does it provide a way to match an entire call, 261 an entire transaction, or to follow a chain of proxy forking logic. 263 For example, if Alice replaces Cathy in an early dialog with Bob, but 264 he does not answer, Alice's replacement request will not match other 265 dialogs to which Bob's UA redirects, nor other branches to which his 266 proxy forwards. 268 5. Proxy behavior 270 Proxy Servers do not require any new behavior to support this 271 extension. They simply pass the Replaces header field transparently 272 as described in the SIP specification. 274 Note that it is possible for a proxy (especially when forking based 275 on some application layer logic, such as caller screening or 276 time-of-day routing) to forward an INVITE request containing a 277 Replaces header field to a completely orthogonal set of Contacts than 278 the original request it was intended to replace. In this case, the 279 INVITE request with the Replaces header field will fail. 281 6. Syntax 283 6.1 The Replaces Header 285 The Replaces header field indicates that a single dialog identified 286 by the header field is to be shut down and logically replaced by the 287 incoming INVITE in which it is contained. It is a request header 288 only, and defined only for INVITE requests. The Replaces header 289 field MAY be encrypted as part of end-to-end encryption. Only a 290 single Replaces header field value may be present in a SIP request 292 This document adds the following entry to Table 2 of [1]. Additions 293 to this table are also provided for extension methods defined at the 294 time of publication of this document. This is provided as a courtesy 295 to the reader and is not normative in any way. MESSAGE, SUBSCRIBE and 296 NOTIFY, REFER, INFO, UPDATE, and PRACK are defined respectively in 297 [12], [13], [4], [14], [15], and [16]. 299 Header field where proxy ACK BYE CAN INV OPT REG MSG 300 ------------ ----- ----- --- --- --- --- --- --- --- 301 Replaces R - - - o - - - 303 SUB NOT REF INF UPD PRA 304 --- --- --- --- --- --- 305 Replaces R - - - - - - 307 The following syntax specification uses the augmented Backus-Naur 308 Form (BNF) as described in RFC-2234 [3]. 310 Replaces = "Replaces" HCOLON callid *(SEMI replaces-param) 311 replaces-param = to-tag / from-tag / generic-param 312 to-tag = "to-tag" EQUAL token 313 from-tag = "from-tag" EQUAL token 315 A Replaces header MUST contain exactly one to-tag and exactly one 316 from-tag, as they are required for unique dialog matching. For 317 compatibility with dialogs initiated by RFC2543 [5] compliant UAs, a 318 tag of zero matches both tags of zero and null tags. 320 Examples: 322 Replaces: 98732@sip.billybiggs.com 323 ;from-tag=r33th4x0r 324 ;to-tag=ff87ff 326 Replaces: 12adf2f34456gs5;to-tag=12345;from-tag=54321 328 Replaces: 87134@171.161.34.23;to-tag=24796;from-tag=0 330 6.2 New option tag for Require and Supported headers 332 This specification defines a new Require/Supported header option tag 333 "replaces". UAs which support the Replaces header MUST include the 334 "replaces" option tag in a Supported header field. UAs that want 335 explicit failure notification if Replaces is not supported MAY 336 include the "replaces" option in a Require header field. 338 Example: 340 Require: replaces, 100rel 342 7. Usage Examples 344 The following non-normative examples are not intended to enumerate 345 all the possibilities for the usage of this extension, but rather to 346 provide examples or ideas only. For more examples, please see 347 service-examples [10]. Via and Max-Forwards headers are omitted for 348 clarity and brevity. 350 7.1 Replacing an Early Dialog at the originator 352 In this example, Bob just arrived in the lab and hasn't registered 353 there yet. He hears his desk phone ring. He quickly logs into a 354 software UA on a nearby computer. Among other things, the software UA 355 has access to the dialog state of his desk phone. When it notices 356 that his phone is ringing it offers him the choice to take the call 357 there. The software UA sends an INVITE with Replaces to Alice. When 358 Alice's UA receives this new INVITE, it CANCELs her original INVITE 359 and connects Alice to Bob. 361 Bob Bob 362 Alice desk lab 363 | | | 364 *1 |-----INVITE----------->| | 365 *2 |<----180---------------| Bob hears desk phone | 366 | | ringing from lab but | 367 | | isn't REGISTERed yet | 368 | | | 369 | |<--fetch dialog state --| 370 | |---response ----------->| 371 *3/4 |<-----INVITE with Replaces/200/ACK--------------| 372 *5/6 |------CANCEL/200------>| | 373 *7 |<-----487--------------| | 374 |------ACK------------->| | 375 | | | 376 | | | 378 Message *1: Alice -> Bob's desk phone 380 INVITE sip:bob@example.org SIP/2.0 381 To: 382 From: ;tag=7743 383 Call-ID: 425928@phone.example.org 384 CSeq: 1 INVITE 385 Contact: 387 Message *2: Bob's desk phone -> Alice 389 SIP/2.0 180 Ringing 390 To: ;tag=6472 391 From: ;tag=7743 392 Call-ID: 425928@phone.example.org 393 CSeq: 1 INVITE 394 Contact: 396 Message *3: Bob in lab -> Alice 398 INVITE sip:alice@phone.example.org 399 To: 400 From: ;tag=8983 401 Call-ID: 09870@labpc.example.org 402 CSeq: 1 INVITE 403 Contact: 404 Replaces: 425928@phone.example.org;to-tag=7743;from-tag=6472 406 Message *4: Alice -> Bob in lab 408 SIP/2.0 200 OK 409 To: ;tag=9232 410 From: ;tag=8983 411 Call-ID: 09870@labpc.example.org 412 CSeq: 1 INVITE 413 Contact: 415 Message *5: Alice -> Bob's desk 417 CANCEL sip:bob@example.org SIP/2.0 418 To: 419 From: ;tag=7743 420 Call-ID: 425928@phone.example.org 421 CSeq: 1 CANCEL 422 Contact: 424 Message *6: Bob's desk -> Alice 426 SIP/2.0 200 OK 427 To: 428 From: ;tag=7743 429 Call-ID: 425928@phone.example.org 430 CSeq: 1 CANCEL 431 Contact: 433 Message *7: Bob's desk -> Alice 435 SIP/2.0 487 Request Terminated 436 To: ;tag=6472 437 From: ;tag=7743 438 Call-ID: 425928@phone.example.org 439 CSeq: 1 INVITE 441 8. Security Considerations 443 The extension specified in this document significantly changes the 444 relative security of SIP devices. Currently in SIP, even if an 445 eavesdropper learns the Call-ID, To, and From headers of a dialog, 446 they cannot easily modify or destroy that dialog if Digest 447 authentication or end-to-end message integrity are used. 449 This extension can be used to disconnect participants or replace 450 participants in a multimedia conversation. As such, invitations with 451 the Replaces header SHOULD only be accepted if the peer requesting 452 replacement has been properly authenticated using a standard SIP 453 mechanism (Digest or S/MIME), and authorized to request a replacement 454 of the target dialog. 456 How a User Agent determines which requests are legitimately 457 authorized to make dialog replacements is non-trivial and depends on 458 a considerable amount of local policy configuration. In general, 459 there are four cases when a authorization for a replacement is 460 reasonable or warranted. (Note that clearly expressing most of these 461 relationships is facilitated by using S/MIME.) 463 1. Replacement made by a party considered equivalent to the replaced 464 party 466 2. Replacement made on behalf of the replaced party (perhaps 467 transitively) 469 3. Replacement made by a former participant 471 4. Replacement made by a specifically authorized party 473 Starting with #1 for example, if an executive and an assistant both 474 receive requests for a shared address-of-record, if so configured, 475 either should be able to replace dialogs of the other for the shared 476 identity. Both could even potentially share the same keying material 477 (Digest or S/MIME), or one could hold an authorization document 478 signed by the other expressing this relationship. Likewise in a call 479 center environment, each call center agent could possess credentials 480 which supervisors also have access to. 482 The most common case of a replacement is on the request of the 483 replaced participant (who no longer wants to be involved). This is 484 the case in many features such as completing an Attended Transfer and 485 converting a 3-way call to a point-to-point call. Such replacements 486 are typically triggered by a REFER request from the replaced 487 participant. The Referred-By mechanism defines one way to identify 488 the apparent original requester and an S/MIME-based signature 489 mechanism to secure this information. 491 In the example in section 2, Alice sends an INVITE with Replaces to 492 Bob. Alice was a former participant in the conversation and had a 493 previous dialog relationship with Bob. Alice can use the same Digest 494 or SMIME credentials she used to authenticate with Bob during the 495 original call to prove that she was a former participant. Note that 496 this justification for replacing calls is more dangerous than the 497 others, and in most cases another way to authorize the replacing 498 participant is available. Implementation SHOULD NOT rely on this 499 method as an authorization mechanism. 501 The last scenario is the easiest to secure but the least likely to be 502 useful in practice. It is unlikely that an arbitrary host in the 503 Internet is aware of any special authorization relationship between 504 the replaced and the replacing parties. However, this case may be 505 useful in some environments. Since this usage does not effectively 506 degrade the security of the solution it is still allowed. 508 Some mechanisms for obtaining the dialog information needed by the 509 Replaces header (Call-ID, to-tag, and from-tag) include URIs on a web 510 page, subscriptions to an appropriate event package, and notifcations 511 after a REFER request. Since manipulating this dialog information 512 could cause User Agents to replace the wrong dialog, use of message 513 integrity protection for this information is STRONGLY RECOMMENDED, 514 Use of end-to-end security mechanisms to encrypt this information is 515 also RECOMMENDED. 517 This extension was designed to take advantage of future signature or 518 authorization schemes defined by the SIP Working Group. In general, 519 call control features benefit considerably from such work. 521 9. IANA Considerations 523 9.1 Registration of "Replaces" SIP header 525 Name of Header: Replaces 527 Short form: none 529 Normative description: section 6.1 of this document 531 9.2 Registration of "replaces" SIP Option-tag 533 Name of option: replaces 535 Description: Support for the SIP Replaces header 537 SIP headers defined: Replaces 539 Normative description: This document 541 10. Changes 543 10.1 Changes Since -02 545 o Removed the ability to match an early dialog at the receiver of 546 the matching dialog, since all the use cases apparently needing 547 this feature actually need to match an entire set of targets in a 548 chain of proxy forking logic. Also removed all references to the 549 687 response code which was only used for this purpose. 551 o Added more detail in section 3 and section 8 about how to 552 authorize replacements. 554 10.2 Changes Since -01 556 o Removed the to-tag=* matching mechanism, and related proxy 557 requirements and examples based on WG consensus at interim meeting 558 and on the mailing list. 560 o Reorganized motivational overview material 562 o Moved extra examples to service-flows 564 o Added authorization language in UAS behavior section 566 o Removed allowance to match on one of multiple matching dialogs 567 with no tags 569 o Updated references 571 10.3 Changes Since -00 573 o When no dialog matches the Call-ID and tags in a Replaces header, 574 the UAS now returns a 481 instead of silently accepting the 575 INVITE. 577 o Changed the BNF to match the explicit whitespace BNF now used by 578 SIP. 580 o Added the to-tag=* matching mechanism. 582 o Added requirements for forking proxies and a discussion of the 583 consequences if forking proxies do not support Replaces. 585 o Added last two examples. 587 o Split normative and non-normative references 589 11. Acknowledgments 591 Thanks to Robert Sparks, Alan Johnston, Dan Petrie, and Ben Campbell 592 and many other members of the SIP WG for their continued support of 593 the cause of distributed call control in SIP. 595 Normative References 597 [1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., 598 Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: 599 Session Initiation Protocol", RFC 3261, June 2002. 601 [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement 602 Levels", BCP 14, RFC 2119, March 1997. 604 [3] Crocker, D. and P. Overell, "Augmented BNF for Syntax 605 Specifications: ABNF", RFC 2234, November 1997. 607 Informational References 609 [4] Sparks, R., "The SIP Refer Method", draft-ietf-sip-refer-07 610 (work in progress), December 2002. 612 [5] Handley, M., Schulzrinne, H., Schooler, E. and J. Rosenberg, 613 "SIP: Session Initiation Protocol", RFC 2543, March 1999. 615 [6] Mahy, R., "A Multi-party Application Framework for SIP", 616 draft-ietf-sipping-cc-framework-01 (work in progress), July 617 2002. 619 [7] Rosenberg, J., Schulzrinne, H., Camarillo, G. and J. Peterson, 620 "Best Current Practices for Third Party Call Control in the 621 Session Initiation Protocol", draft-ietf-sipping-3pcc-02 (work 622 in progress), June 2002. 624 [8] Sparks, R. and A. Johnston, "Session Initiation Protocol Call 625 Control - Transfer", draft-ietf-sipping-cc-transfer-01 (work in 626 progress), February 2003. 628 [9] Rosenberg, J. and H. Schulzrinne, "A Session Initiation 629 Protocol (SIP) Event Package for Dialog State", 630 draft-ietf-sipping-dialog-package-00 (work in progress), June 631 2002. 633 [10] Johnston, A. and S. Donovan, "Session Initiation Protocol 634 Service Examples", draft-ietf-sipping-service-examples-03 (work 635 in progress), November 2002. 637 [11] Sparks, R., "The SIP Referred-By Mechanism", 638 draft-ietf-sip-referredby-01 (work in progress), February 2003. 640 [12] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C. and 641 D. Gurle, "Session Initiation Protocol (SIP) Extension for 642 Instant Messaging", RFC 3428, December 2002. 644 [13] Roach, A., "Session Initiation Protocol (SIP)-Specific Event 645 Notification", RFC 3265, June 2002. 647 [14] Donovan, S., "The SIP INFO Method", RFC 2976, October 2000. 649 [15] Rosenberg, J., "The Session Initiation Protocol (SIP) UPDATE 650 Method", RFC 3311, October 2002. 652 [16] jdrosen@dynamicsoft.com and schulzrinne@cs.columbia.edu, 653 "Reliability of Provisional Responses in Session Initiation 654 Protocol (SIP)", RFC 3262, June 2002. 656 Authors' Addresses 658 Rohan Mahy 659 Cisco Systems, Inc. 660 170 West Tasman Drive 661 San Jose, CA 95134 662 USA 664 EMail: rohan@cisco.com 666 Billy Biggs 668 EMail: bbiggs@dumbterm.net 670 Rick Dean 672 EMail: rfc@fdd.com 674 Intellectual Property Statement 676 The IETF takes no position regarding the validity or scope of any 677 intellectual property or other rights that might be claimed to 678 pertain to the implementation or use of the technology described in 679 this document or the extent to which any license under such rights 680 might or might not be available; neither does it represent that it 681 has made any effort to identify any such rights. Information on the 682 IETF's procedures with respect to rights in standards-track and 683 standards-related documentation can be found in BCP-11. Copies of 684 claims of rights made available for publication and any assurances of 685 licenses to be made available, or the result of an attempt made to 686 obtain a general license or permission for the use of such 687 proprietary rights by implementors or users of this specification can 688 be obtained from the IETF Secretariat. 690 The IETF invites any interested party to bring to its attention any 691 copyrights, patents or patent applications, or other proprietary 692 rights which may cover technology that may be required to practice 693 this standard. Please address the information to the IETF Executive 694 Director. 696 Full Copyright Statement 698 Copyright (C) The Internet Society (2003). All Rights Reserved. 700 This document and translations of it may be copied and furnished to 701 others, and derivative works that comment on or otherwise explain it 702 or assist in its implementation may be prepared, copied, published 703 and distributed, in whole or in part, without restriction of any 704 kind, provided that the above copyright notice and this paragraph are 705 included on all such copies and derivative works. However, this 706 document itself may not be modified in any way, such as by removing 707 the copyright notice or references to the Internet Society or other 708 Internet organizations, except as needed for the purpose of 709 developing Internet standards in which case the procedures for 710 copyrights defined in the Internet Standards process must be 711 followed, or as required to translate it into languages other than 712 English. 714 The limited permissions granted above are perpetual and will not be 715 revoked by the Internet Society or its successors or assignees. 717 This document and the information contained herein is provided on an 718 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 719 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 720 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 721 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 722 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 724 Acknowledgement 726 Funding for the RFC Editor function is currently provided by the 727 Internet Society.