draft-ietf-sipping-dialogusage-05.txt   draft-ietf-sipping-dialogusage-06.txt 
Network Working Group R. Sparks Network Working Group R. Sparks
Internet-Draft Estacado Systems Internet-Draft Estacado Systems
Intended status: Informational November 9, 2006 Expires: August 20, 2007 February 16, 2007
Expires: May 13, 2007
Multiple Dialog Usages in the Session Initiation Protocol Multiple Dialog Usages in the Session Initiation Protocol
draft-ietf-sipping-dialogusage-05 draft-ietf-sipping-dialogusage-06
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 34 skipping to change at page 1, line 33
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in 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 May 13, 2007. This Internet-Draft will expire on August 20, 2007.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The IETF Trust (2007).
Abstract Abstract
Several methods in the Session Initiation Protocol can create an Several methods in the Session Initiation Protocol can create an
association between endpoints known as a dialog. Some of these association between endpoints known as a dialog. Some of these
methods can also create a different, but related, association within methods can also create a different, but related, association within
an existing dialog. These multiple associations, or dialog usages, an existing dialog. These multiple associations, or dialog usages,
require carefully coordinated processing as they have independent require carefully coordinated processing as they have independent
life-cycles, but share common dialog state. Processing multiple life-cycles, but share common dialog state. Processing multiple
dialog usages correctly is not completely understood. What is dialog usages correctly is not completely understood. What is
skipping to change at page 2, line 30 skipping to change at page 2, line 30
4.1. Invite usages . . . . . . . . . . . . . . . . . . . . . . 10 4.1. Invite usages . . . . . . . . . . . . . . . . . . . . . . 10
4.2. Subscribe usages . . . . . . . . . . . . . . . . . . . . . 10 4.2. Subscribe usages . . . . . . . . . . . . . . . . . . . . . 10
5. Proper Handling of Multiple Usages . . . . . . . . . . . . . . 10 5. Proper Handling of Multiple Usages . . . . . . . . . . . . . . 10
5.1. A survey of the effect of failure responses on usages 5.1. A survey of the effect of failure responses on usages
and dialogs . . . . . . . . . . . . . . . . . . . . . . . 10 and dialogs . . . . . . . . . . . . . . . . . . . . . . . 10
5.2. Transaction timeouts . . . . . . . . . . . . . . . . . . . 16 5.2. Transaction timeouts . . . . . . . . . . . . . . . . . . . 16
5.3. Matching requests to usages . . . . . . . . . . . . . . . 17 5.3. Matching requests to usages . . . . . . . . . . . . . . . 17
5.4. Target refresh requests . . . . . . . . . . . . . . . . . 17 5.4. Target refresh requests . . . . . . . . . . . . . . . . . 17
5.5. Refreshing and Terminating Usages . . . . . . . . . . . . 18 5.5. Refreshing and Terminating Usages . . . . . . . . . . . . 18
5.6. Refusing new usages . . . . . . . . . . . . . . . . . . . 18 5.6. Refusing new usages . . . . . . . . . . . . . . . . . . . 18
5.7. Replacing usages . . . . . . . . . . . . . . . . . . . . . 18 5.7. Replacing usages . . . . . . . . . . . . . . . . . . . . . 19
6. Avoiding Multiple Usages . . . . . . . . . . . . . . . . . . . 19 6. Avoiding Multiple Usages . . . . . . . . . . . . . . . . . . . 19
7. Security Considerations . . . . . . . . . . . . . . . . . . . 24 7. Security Considerations . . . . . . . . . . . . . . . . . . . 24
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
9. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 25 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 25
11. Informative References . . . . . . . . . . . . . . . . . . . . 25 11. Informative References . . . . . . . . . . . . . . . . . . . . 25
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 26 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 26
A.1. draft-ietf-04->draft-ietf-05 . . . . . . . . . . . . . . . 26 A.1. draft-ietf-05->draft-ietf-06 . . . . . . . . . . . . . . . 26
A.2. draft-ietf-03->draft-ietf-04 . . . . . . . . . . . . . . . 26 A.2. draft-ietf-04->draft-ietf-05 . . . . . . . . . . . . . . . 27
A.3. draft-ietf-02->draft-ietf-03 . . . . . . . . . . . . . . . 26 A.3. draft-ietf-03->draft-ietf-04 . . . . . . . . . . . . . . . 27
A.4. draft-ietf-01->draft-ietf-02 . . . . . . . . . . . . . . . 26 A.4. draft-ietf-02->draft-ietf-03 . . . . . . . . . . . . . . . 27
A.5. draft-ietf-00->draft-ietf-01 . . . . . . . . . . . . . . . 27 A.5. draft-ietf-01->draft-ietf-02 . . . . . . . . . . . . . . . 27
A.6. draft-sparks-01->draft-ietf-00 . . . . . . . . . . . . . . 27 A.6. draft-ietf-00->draft-ietf-01 . . . . . . . . . . . . . . . 27
A.7. draft-sparks-00->01 . . . . . . . . . . . . . . . . . . . 27 A.7. draft-sparks-01->draft-ietf-00 . . . . . . . . . . . . . . 28
A.8. draft-sparks-00->01 . . . . . . . . . . . . . . . . . . . 28
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 28 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 28
Intellectual Property and Copyright Statements . . . . . . . . . . 29 Intellectual Property and Copyright Statements . . . . . . . . . . 29
1. Overview 1. Overview
This is an informative document. It makes no normative statements of This is an informative document. It makes no normative statements of
any kind. This document refines the concept of a dialog usage in the any kind. This document refines the concept of a dialog usage in the
Session Initiation Protocol (SIP [1]), and discusses what led to its Session Initiation Protocol (SIP [1]), and discusses what led to its
existence. It explores ambiguity associated with processing multiple existence. It explores ambiguity associated with processing multiple
dialog usages that share a dialog. In particular, it surveys the dialog usages that share a dialog. In particular, it surveys the
skipping to change at page 10, line 17 skipping to change at page 10, line 17
Dialogs come into existence along with their first usage. Dialogs Dialogs come into existence along with their first usage. Dialogs
terminate when their last usage is destroyed. The messages that terminate when their last usage is destroyed. The messages that
create and destroy usages vary per usage. This section provides a create and destroy usages vary per usage. This section provides a
high-level categorization of those messages. The section does not high-level categorization of those messages. The section does not
attempt to explore the REGISTER pseudo-dialog. attempt to explore the REGISTER pseudo-dialog.
4.1. Invite usages 4.1. Invite usages
Created by: non-100 provisional responses to INVITE; 200 response to Created by: non-100 provisional responses to INVITE; 200 response to
INVITE INVITE
Destroyed by: 200 responses to BYE; certain failure responses to Destroyed by: 200 responses to BYE; certain failure responses to
INVITE, UPDATE, PRACK, or INFO; anything that destroys a dialog INVITE, UPDATE, PRACK, INFO, or BYE; anything that destroys a
and all its usages dialog and all its usages
4.2. Subscribe usages 4.2. Subscribe usages
Created by: 200 class responses to SUBSCRIBE; 200 class responses to Created by: 200 class responses to SUBSCRIBE; 200 class responses to
REFER; NOTIFY requests REFER; NOTIFY requests
Destroyed by: 200 class responses to NOTIFY-terminated; NOTIFY or Destroyed by: 200 class responses to NOTIFY-terminated; NOTIFY or
refresh-SUBSCRIBE request timeout; certain failure responses to refresh-SUBSCRIBE request timeout; certain failure responses to
NOTIFY or SUBSCRIBE; expiration without refresh if network issues NOTIFY or SUBSCRIBE; expiration without refresh if network issues
prevent the terminal NOTIFY from arriving; anything that destroys prevent the terminal NOTIFY from arriving; anything that destroys
a dialog and all its usages a dialog and all its usages
skipping to change at page 14, line 33 skipping to change at page 14, line 33
deployed implementations that assumed only the usage was destroyed deployed implementations that assumed only the usage was destroyed
to work with a wider number of implementations. Those that made to work with a wider number of implementations. Those that made
the other choice will continue to function as they do now, the other choice will continue to function as they do now,
suffering at most the same extra messages needed for a peer to suffering at most the same extra messages needed for a peer to
discover that that other usages have gone away that they currently discover that that other usages have gone away that they currently
do. However, the necessary clarification to RFC 3261 needs to do. However, the necessary clarification to RFC 3261 needs to
make it very clear that the ability to terminate usages make it very clear that the ability to terminate usages
independently from the overall dialog using a 481 is not independently from the overall dialog using a 481 is not
justification for designing new applications that count on justification for designing new applications that count on
multiple usages in a dialog. multiple usages in a dialog.
The 481 response to a CANCEL request has to be treated
differently. For CANCEL, a 481 means the UAS can't find a
matching transaction. A 481 response to a cancel affects only the
CANCEL transaction. The usage associated with the INVITE is not
affected.
(9) 482 Loop Detected: This response is aberrant mid-dialog. It (9) 482 Loop Detected: This response is aberrant mid-dialog. It
will only occur if the Record-Route header field was improperly will only occur if the Record-Route header field was improperly
constructed by the proxies involved in setting up the dialog's constructed by the proxies involved in setting up the dialog's
initial usage, or if a mid-dialog request forks and merges (which initial usage, or if a mid-dialog request forks and merges (which
should never happen). Future requests using this dialog state should never happen). Future requests using this dialog state
will also fail. will also fail.
An edge condition exists during RFC3263 failover at the element An edge condition exists during RFC3263 failover at the element
sending a request where the request effectively forks to sending a request where the request effectively forks to
skipping to change at page 25, line 47 skipping to change at page 26, line 20
Method", RFC 3515, April 2003. Method", RFC 3515, April 2003.
[5] Mahy, R. and D. Petrie, "The Session Initiation Protocol (SIP) [5] Mahy, R. and D. Petrie, "The Session Initiation Protocol (SIP)
"Join" Header", RFC 3911, October 2004. "Join" Header", RFC 3911, October 2004.
[6] Mahy, R., Biggs, B., and R. Dean, "The Session Initiation [6] Mahy, R., Biggs, B., and R. Dean, "The Session Initiation
Protocol (SIP) "Replaces" Header", RFC 3891, September 2004. Protocol (SIP) "Replaces" Header", RFC 3891, September 2004.
[7] Rosenberg, J., "Obtaining and Using Globally Routable User [7] Rosenberg, J., "Obtaining and Using Globally Routable User
Agent (UA) URIs (GRUU) in the Session Initiation Protocol Agent (UA) URIs (GRUU) in the Session Initiation Protocol
(SIP)", draft-ietf-sip-gruu-10 (work in progress), August 2006. (SIP)", draft-ietf-sip-gruu-11 (work in progress),
October 2006.
[8] Levin, O., "Suppression of Session Initiation Protocol (SIP) [8] Levin, O., "Suppression of Session Initiation Protocol (SIP)
REFER Method Implicit Subscription", RFC 4488, May 2006. REFER Method Implicit Subscription", RFC 4488, May 2006.
[9] Rosenberg, J., "Request Authorization through Dialog [9] Rosenberg, J., "Request Authorization through Dialog
Identification in the Session Initiation Protocol (SIP)", Identification in the Session Initiation Protocol (SIP)",
RFC 4538, June 2006. RFC 4538, June 2006.
[10] Niemi, A., "Session Initiation Protocol (SIP) Extension for [10] Niemi, A., "Session Initiation Protocol (SIP) Extension for
Event State Publication", RFC 3903, October 2004. Event State Publication", RFC 3903, October 2004.
[11] Dolly, M. and E. Burger, "A Session Initiation Protocol (SIP) [11] Dolly, M. and E. Burger, "A Session Initiation Protocol (SIP)
Event Package for Key Press Stimulus (KPML)", Event Package for Key Press Stimulus (KPML)",
draft-ietf-sipping-kpml-08 (work in progress), July 2006. draft-ietf-sipping-kpml-08 (work in progress), July 2006.
Appendix A. Change Log Appendix A. Change Log
RFC-EDITOR: Please remove this entire Change Log section while RFC-EDITOR: Please remove this entire Change Log section while
formatting this document for publication. formatting this document for publication.
A.1. draft-ietf-04->draft-ietf-05 A.1. draft-ietf-05->draft-ietf-06
o Noted that 481 to CANCEL is special and affects only the CANCEL
transaction, not any associated INVITE usage.
o Noted that certain errors to BYE can effectively terminate a usage
in the usage creation and destruction overview.
A.2. draft-ietf-04->draft-ietf-05
o Fixed the flaw with the GRUU message description text that Paul o Fixed the flaw with the GRUU message description text that Paul
caught. caught.
o Integrated Paul's table and further simplified the comment/ o Integrated Paul's table and further simplified the comment/
exception text. exception text.
A.2. draft-ietf-03->draft-ietf-04 A.3. draft-ietf-03->draft-ietf-04
o Many minor editorial fixes addressing WGLC comments o Many minor editorial fixes addressing WGLC comments
o Aligned with changes to GRUU o Aligned with changes to GRUU
o Added a short overview o Added a short overview
o Added a table summarizing the survey of responses and removed the o Added a table summarizing the survey of responses and removed the
description from those responses that were not exceptional. description from those responses that were not exceptional.
A.3. draft-ietf-02->draft-ietf-03 A.4. draft-ietf-02->draft-ietf-03
o Removed discussion of the retargetting affect of provisional o Removed discussion of the retargetting affect of provisional
responses - that is a general problem that will now be addressed responses - that is a general problem that will now be addressed
in SIP. in SIP.
o Added a Security Considerations section (blush) summarizing points o Added a Security Considerations section (blush) summarizing points
from the document and the list discussion. from the document and the list discussion.
o Added a no-op IANA Considerations section. o Added a no-op IANA Considerations section.
A.4. draft-ietf-01->draft-ietf-02 A.5. draft-ietf-01->draft-ietf-02
o Incorporated editorial-fix contributions from the list o Incorporated editorial-fix contributions from the list
o Noted that REFERs using norefersub (RFC4488) don't create a new o Noted that REFERs using norefersub (RFC4488) don't create a new
subscribe usage subscribe usage
o Changed the affect of 403 to affect only the transaction, not the o Changed the affect of 403 to affect only the transaction, not the
usage. This is motivated by text in 3261 (bottom of page 87 - usage. This is motivated by text in 3261 (bottom of page 87 -
pointed out by Brian Stucker) which states that a UA receiving a pointed out by Brian Stucker) which states that a UA receiving a
non-2xx final response to a re-INVITE must leave the session non-2xx final response to a re-INVITE must leave the session
parameters unchanged as if the re-INVITE had not been issued. parameters unchanged as if the re-INVITE had not been issued.
There are other recommendations in this document that violate that There are other recommendations in this document that violate that
normative must (404,410, etc) but on review, I believe they are normative must (404,410, etc) but on review, I believe they are
correct (except for 403) and that this text in 3261 needs to be correct (except for 403) and that this text in 3261 needs to be
updated to recognize the conditions under which they're sent. updated to recognize the conditions under which they're sent.
o Added text concerning the race condition wherein endpoints failing o Added text concerning the race condition wherein endpoints failing
over rapidly to 3263 destinations may stimulate a merged-request over rapidly to 3263 destinations may stimulate a merged-request
response. response.
o Corrected the 481 inconsistency Paul Kyzivat pointed out (by o Corrected the 481 inconsistency Paul Kyzivat pointed out (by
removing the inconsistent paragraph) removing the inconsistent paragraph)
A.5. draft-ietf-00->draft-ietf-01 A.6. draft-ietf-00->draft-ietf-01
o Changed 481 to only affect the usage the response occurred in, o Changed 481 to only affect the usage the response occurred in,
closing the last open issue. Added some text justifying this closing the last open issue. Added some text justifying this
recommendation. recommendation.
o Added 422 Session Interval Too Small o Added 422 Session Interval Too Small
o Added 417 Unknown Resource-Priority o Added 417 Unknown Resource-Priority
o Added 428 Use Identity Header o Added 428 Use Identity Header
o Added 436 Bad Identity-Info o Added 436 Bad Identity-Info
o Added 437 Unsupported Certificate o Added 437 Unsupported Certificate
o Added 438 Invalid Identity header o Added 438 Invalid Identity header
o Added a section categorizing messages that create and destroy o Added a section categorizing messages that create and destroy
usages usages
o Made sure all descriptions in Section 5 addressed the generic o Made sure all descriptions in Section 5 addressed the generic
multi-usage case. multi-usage case.
o Clarified that the mechanics described in matching messages to o Clarified that the mechanics described in matching messages to
usages applied equally to UACs and UASs. usages applied equally to UACs and UASs.
o More explicitly noted that REFER creates a subscribe-usage o More explicitly noted that REFER creates a subscribe-usage
A.6. draft-sparks-01->draft-ietf-00 A.7. draft-sparks-01->draft-ietf-00
o Draft rename o Draft rename
A.7. draft-sparks-00->01 A.8. draft-sparks-00->01
o Changed 480 to affect only the usage the response occurred in. o Changed 480 to affect only the usage the response occurred in.
o Closed the open issue on 482. Usages and dialogs are destroyed o Closed the open issue on 482. Usages and dialogs are destroyed
even though there is an edge condition in which the response is even though there is an edge condition in which the response is
only stimulated by certain methods (due to method specific routing only stimulated by certain methods (due to method specific routing
rules). rules).
o Closed the open issue on 483. Usages are not terminated since the o Closed the open issue on 483. Usages are not terminated since the
request might succeed if retried with a greater initial Max- request might succeed if retried with a greater initial Max-
Forwards Forwards
o Closed the open issue on 502, accepting -00s suggestion that the o Closed the open issue on 502, accepting -00s suggestion that the
same reasoning used for 482 applies. same reasoning used for 482 applies.
skipping to change at page 29, line 7 skipping to change at page 29, line 7
Author's Address Author's Address
Robert J. Sparks Robert J. Sparks
Estacado Systems Estacado Systems
Email: RjS@estacado.net Email: RjS@estacado.net
Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society (2006). Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors contained in BCP 78, and except as set forth therein, the authors
retain all their rights. retain all their rights.
This document and the information contained herein are provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
 End of changes. 19 change blocks. 
31 lines changed or deleted 43 lines changed or added

This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/