| < draft-ietf-simple-simple-08.txt | draft-ietf-simple-simple-09.txt > | |||
|---|---|---|---|---|
| SIMPLE J. Rosenberg | SIMPLE J. Rosenberg | |||
| Internet-Draft jdrosen.net | Internet-Draft jdrosen.net | |||
| Intended status: Informational January 29, 2013 | Intended status: Informational February 16, 2013 | |||
| Expires: August 2, 2013 | Expires: August 20, 2013 | |||
| SIMPLE made Simple: An Overview of the IETF Specifications for Instant | SIMPLE made Simple: An Overview of the IETF Specifications for Instant | |||
| Messaging and Presence using the Session Initiation Protocol (SIP) | Messaging and Presence using the Session Initiation Protocol (SIP) | |||
| draft-ietf-simple-simple-08 | draft-ietf-simple-simple-09 | |||
| Abstract | Abstract | |||
| The IETF has produced many specifications related to Presence and | The IETF has produced many specifications related to Presence and | |||
| Instant Messaging with the Session Initiation Protocol (SIP). | Instant Messaging with the Session Initiation Protocol (SIP). | |||
| Collectively, these specifications are known as SIMPLE - SIP for | Collectively, these specifications are known as SIMPLE - SIP for | |||
| Instant Messaging and Presence Leveraging Extensions. This document | Instant Messaging and Presence Leveraging Extensions. This document | |||
| serves as a guide to the SIMPLE suite of specifications. It breaks | serves as a guide to the SIMPLE suite of specifications. It | |||
| them up into categories and explains what each is for and how they | categorizes the specifications and explains what each is for and how | |||
| relate to each other. | they relate to each other. | |||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| 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." | |||
| This Internet-Draft will expire on August 2, 2013. | This Internet-Draft will expire on August 20, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
| 2.4. Provisioning . . . . . . . . . . . . . . . . . . . . . . . 7 | 2.4. Provisioning . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.5. Federation . . . . . . . . . . . . . . . . . . . . . . . . 8 | 2.5. Federation . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 2.6. Optimizations . . . . . . . . . . . . . . . . . . . . . . 8 | 2.6. Optimizations . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3. Instant Messaging . . . . . . . . . . . . . . . . . . . . . . 9 | 3. Instant Messaging . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 3.1. Page Mode . . . . . . . . . . . . . . . . . . . . . . . . 9 | 3.1. Page Mode . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 3.2. Session Mode . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.2. Session Mode . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 3.3. IM Chat Rooms . . . . . . . . . . . . . . . . . . . . . . 10 | 3.3. IM Chat Rooms . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 3.4. IM Features . . . . . . . . . . . . . . . . . . . . . . . 11 | 3.4. IM Features . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6. Informative References . . . . . . . . . . . . . . . . . . . . 11 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7. Informative References . . . . . . . . . . . . . . . . . . . . 11 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 15 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 1. Introduction | 1. Introduction | |||
| The IETF has produced many specifications related to Presence and | The IETF has produced many specifications related to Presence and | |||
| Instant Messaging with the Session Initiation Protocol (SIP) | Instant Messaging with the Session Initiation Protocol (SIP) | |||
| [RFC3261]. Collectively, these specifications are known as SIMPLE - | [RFC3261]. Collectively, these specifications are known as SIMPLE - | |||
| SIP for Instant Messaging and Presence Leveraging Extensions. These | SIP for Instant Messaging and Presence Leveraging Extensions. These | |||
| specifications cover topics ranging from protocols for subscription | specifications cover topics ranging from protocols for subscription | |||
| and publication, to presence document formats, to protocols for | and publication, to presence document formats, to protocols for | |||
| skipping to change at page 4, line 19 ¶ | skipping to change at page 4, line 19 ¶ | |||
| o Provisioning, which describes how users manage their privacy | o Provisioning, which describes how users manage their privacy | |||
| policies, buddy lists and other pieces of information required for | policies, buddy lists and other pieces of information required for | |||
| SIMPLE presence to work | SIMPLE presence to work | |||
| o Optimizations, which are improvements in the core protocol | o Optimizations, which are improvements in the core protocol | |||
| machinery that were defined to improve the performance of SIMPLE, | machinery that were defined to improve the performance of SIMPLE, | |||
| particularly on wireless links | particularly on wireless links | |||
| 2.1. Core Protocol Machinery | 2.1. Core Protocol Machinery | |||
| RFC 3265, SIP-Specific Event Notification (S): RFC 3265 [RFC3265] | RFC 6665, SIP-Specific Event Notification (S): RFC 6665 [RFC6665] | |||
| defines the SUBSCRIBE and NOTIFY methods for SIP, forming the core | defines the SUBSCRIBE and NOTIFY methods for SIP, forming the core | |||
| of the SIP event notification framework. To actually use the | of the SIP event notification framework. To actually use the | |||
| framework, extensions need to be defined for specific event | framework, extensions need to be defined for specific event | |||
| packages. Presence is defined as an event package within this | packages. Presence is defined as an event package [RFC3856] | |||
| framework. Packages exist for other, non-presence related | within this framework. Packages exist for other, non-presence | |||
| functions, such as message waiting indicators and dialog state | related functions, such as message waiting indicators and dialog | |||
| changes. | state changes. | |||
| RFC 3856, A Presence Event Package for SIP (S): RFC 3856 [RFC3856] | RFC 3856, A Presence Event Package for SIP (S): RFC 3856 [RFC3856] | |||
| defines an event package for indicating user presence through SIP. | defines an event package for indicating user presence through SIP. | |||
| Through this package, a SIP user agent can ask to be notified of | Through this package, a SIP user agent can ask to be notified of | |||
| the presence state of a presentity (presence entity). The content | the presence state of a presentity (presence entity). The content | |||
| of the NOTIFY messages in this package are presence documents, | of the NOTIFY messages in this package are presence documents, | |||
| discussed in Section 2.2 | discussed in Section 2.2, below. | |||
| RFC 4662, A Session Initiation Protocol (SIP) Event Notification | RFC 4662, A Session Initiation Protocol (SIP) Event Notification | |||
| Extension for Resource Lists (S): RFC 4662 [RFC4662] defines an | Extension for Resource Lists (S): RFC 4662 [RFC4662] defines an | |||
| extension to RFC 3265 that allows a client to subscribe to a list | extension to RFC 6665 that allows a client to subscribe to a list | |||
| of resources using a single subscription. The server, called a | of resources using a single subscription. The server, called a | |||
| Resource List Server (RLS) will "expand" the subscription and | Resource List Server (RLS) will "expand" the subscription and | |||
| subscribe to each individual member of the list. Its primary | subscribe to each individual member of the list. Its primary | |||
| usage with presence is to allow subscriptions to "buddy lists". | usage with presence is to allow subscriptions to "buddy lists". | |||
| Without RFC 4662, a UA would need to subscribe to each presentity | Without RFC 4662, a UA would need to subscribe to each presentity | |||
| individually. With RFC 4662, they can have a single subscription | individually. With RFC 4662, they can have a single subscription | |||
| to all buddies. A user can manage the entries in their buddy list | to all buddies. A user can manage the entries in their buddy list | |||
| using the provisioning mechanisms in Section 2.4. | using the provisioning mechanisms in Section 2.4, below. | |||
| RFC 5367, Subscriptions to Request-Contained Resource Lists in the | RFC 5367, Subscriptions to Request-Contained Resource Lists in the | |||
| Session Initiation Protocol (SIP) (S): [RFC5367] is very similar to | Session Initiation Protocol (SIP) (S): [RFC5367] is very similar to | |||
| RFC 4662. It allows a client to subscribe to a list of resources | RFC 4662. It allows a client to subscribe to a list of resources | |||
| using a single subscription. However, with this mechanism, the | using a single subscription. However, with this mechanism, the | |||
| list is included within the body of the SUBSCRIBE request. In RFC | list is included within the body of the SUBSCRIBE request. In RFC | |||
| 4662, it is provisioned ahead of time on the server. | 4662, it is provisioned ahead of time on the server. | |||
| RFC 3903, SIP Extension for Event State Publication (S): RFC 3903 | RFC 3903, SIP Extension for Event State Publication (S): RFC 3903 | |||
| [RFC3903] defines the PUBLISH method. With this method, a user | [RFC3903] defines the PUBLISH method. With this method, a user | |||
| skipping to change at page 9, line 25 ¶ | skipping to change at page 9, line 25 ¶ | |||
| [RFC5261] defines an XML structure for representing changes in XML | [RFC5261] defines an XML structure for representing changes in XML | |||
| documents. It is a form of "diff", but specifically for XML | documents. It is a form of "diff", but specifically for XML | |||
| documents. It is used by several of the optimization mechanisms | documents. It is used by several of the optimization mechanisms | |||
| defined for SIMPLE. | defined for SIMPLE. | |||
| RFC 5112, The Presence-Specific Static Dictionary for Signaling | RFC 5112, The Presence-Specific Static Dictionary for Signaling | |||
| Compression (Sigcomp) (S): [RFC5112] defines a dictionary for usage | Compression (Sigcomp) (S): [RFC5112] defines a dictionary for usage | |||
| with Signaling Compression (Sigcomp) [RFC3320] to improve the | with Signaling Compression (Sigcomp) [RFC3320] to improve the | |||
| compressability of presence documents. | compressability of presence documents. | |||
| RFC 6446, Session Initiation Protocol (SIP) Event Notification | ||||
| Extension for Notification Rate Control (S): [RFC6446] This document | ||||
| specifies mechanisms for adjusting the rate of SIP event | ||||
| notifications. These mechanisms can be applied in subscriptions | ||||
| to all SIP event packages. | ||||
| 3. Instant Messaging | 3. Instant Messaging | |||
| SIMPLE defines two modes of instant messaging. These are page mode | SIMPLE defines two modes of instant messaging. These are page mode | |||
| and session mode. In page mode, instant messages are sent by sending | and session mode. In page mode, instant messages are sent by sending | |||
| a SIP request that contains the contents of the instant message. In | a SIP request that contains the contents of the instant message. In | |||
| session mode, IM is viewed as another media type - along with audio | session mode, IM is viewed as another media type - along with audio | |||
| and video - and an INVITE request is used to set up a session that | and video - and an INVITE request is used to set up a session that | |||
| includes IM as a media type. While page mode is more efficient for | includes IM as a media type. While page mode is more efficient for | |||
| one or two message conversations, session mode is more efficient for | one or two message conversations, session mode is more efficient for | |||
| longer conversations since the messages are not sent through the SIP | longer conversations since the messages are not sent through the SIP | |||
| skipping to change at page 10, line 9 ¶ | skipping to change at page 10, line 16 ¶ | |||
| Initiation Protocol (SIP) (S): [RFC5365] defines a mechanism whereby | Initiation Protocol (SIP) (S): [RFC5365] defines a mechanism whereby | |||
| a client can send a single SIP MESSAGE to multiple recipients. | a client can send a single SIP MESSAGE to multiple recipients. | |||
| This is accomplished by including the list of recipients as an | This is accomplished by including the list of recipients as an | |||
| object in the body, and having a network server send a copy to | object in the body, and having a network server send a copy to | |||
| each recipient. | each recipient. | |||
| 3.2. Session Mode | 3.2. Session Mode | |||
| RFC 4975, The Message Session Relay Protocol (MSRP) (S): [RFC4975] | RFC 4975, The Message Session Relay Protocol (MSRP) (S): [RFC4975] | |||
| defines a small text-based protocol for exchanging arbitrarily | defines a small text-based protocol for exchanging arbitrarily | |||
| sized content of any time between users. An MSRP session is set | sized content of any kind between users. An MSRP session is set | |||
| up by exchanging certain information, such as an MSRP URI, within | up by exchanging certain information, such as an MSRP URI, within | |||
| SIP and SDP signaling. | SIP and SDP signaling. | |||
| RFC 3862, Common Presence and Instant Messaging (CPIM): Message | RFC 3862, Common Presence and Instant Messaging (CPIM): Message | |||
| Format (S): [RFC3862] defines a wrapper around instant message | Format (S): [RFC3862] defines a wrapper around instant message | |||
| content, providing meta-data such as the sender and recipient | content, providing meta-data such as the sender and recipient | |||
| identity. The CPIM format is carried in MSRP. | identity. The CPIM format is carried in MSRP. | |||
| RFC 4976, Relay Extensions for the Message Sessions Relay Protocol | RFC 4976, Relay Extensions for the Message Sessions Relay Protocol | |||
| (MSRP) (S): [RFC4976] adds support for relays to MSRP. These relay | (MSRP) (S): [RFC4976] adds support for relays to MSRP. These relay | |||
| skipping to change at page 11, line 37 ¶ | skipping to change at page 11, line 39 ¶ | |||
| 4. Security Considerations | 4. Security Considerations | |||
| This specification is an overview of existing specifications, and | This specification is an overview of existing specifications, and | |||
| does not introduce any security considerations on its own. | does not introduce any security considerations on its own. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| None. | None. | |||
| 6. Informative References | 6. Acknowledgements | |||
| Thanks to Vijay Gurbani, Barry Leiba, Stephen Hanna, and Salvatore | ||||
| Loreto for their review and comments. | ||||
| 7. Informative References | ||||
| [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | |||
| A., Peterson, J., Sparks, R., Handley, M., and E. | A., Peterson, J., Sparks, R., Handley, M., and E. | |||
| Schooler, "SIP: Session Initiation Protocol", RFC 3261, | Schooler, "SIP: Session Initiation Protocol", RFC 3261, | |||
| June 2002. | June 2002. | |||
| [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific | [RFC6665] Roach, A., "SIP-Specific Event Notification", RFC 6665, | |||
| Event Notification", RFC 3265, June 2002. | July 2012. | |||
| [RFC3856] Rosenberg, J., "A Presence Event Package for the Session | [RFC3856] Rosenberg, J., "A Presence Event Package for the Session | |||
| Initiation Protocol (SIP)", RFC 3856, August 2004. | Initiation Protocol (SIP)", RFC 3856, August 2004. | |||
| [RFC4662] Roach, A., Campbell, B., and J. Rosenberg, "A Session | [RFC4662] Roach, A., Campbell, B., and J. Rosenberg, "A Session | |||
| Initiation Protocol (SIP) Event Notification Extension for | Initiation Protocol (SIP) Event Notification Extension for | |||
| Resource Lists", RFC 4662, August 2006. | Resource Lists", RFC 4662, August 2006. | |||
| [RFC3903] Niemi, A., "Session Initiation Protocol (SIP) Extension | [RFC3903] Niemi, A., "Session Initiation Protocol (SIP) Extension | |||
| for Event State Publication", RFC 3903, October 2004. | for Event State Publication", RFC 3903, October 2004. | |||
| skipping to change at page 15, line 13 ¶ | skipping to change at page 15, line 23 ¶ | |||
| Session Relay Protocol (MSRP)", RFC 6714, August 2012. | Session Relay Protocol (MSRP)", RFC 6714, August 2012. | |||
| [RFC5367] Camarillo, G., Roach, A., and O. Levin, "Subscriptions to | [RFC5367] Camarillo, G., Roach, A., and O. Levin, "Subscriptions to | |||
| Request-Contained Resource Lists in the Session Initiation | Request-Contained Resource Lists in the Session Initiation | |||
| Protocol (SIP)", RFC 5367, October 2008. | Protocol (SIP)", RFC 5367, October 2008. | |||
| [RFC6135] Holmberg, C. and S. Blau, "An Alternative Connection Model | [RFC6135] Holmberg, C. and S. Blau, "An Alternative Connection Model | |||
| for the Message Session Relay Protocol (MSRP)", RFC 6135, | for the Message Session Relay Protocol (MSRP)", RFC 6135, | |||
| February 2011. | February 2011. | |||
| [RFC6446] Niemi, A., Kiss, K., and S. Loreto, "Session Initiation | ||||
| Protocol (SIP) Event Notification Extension for | ||||
| Notification Rate Control", RFC 6446, January 2012. | ||||
| Author's Address | Author's Address | |||
| Jonathan Rosenberg | Jonathan Rosenberg | |||
| jdrosen.net | jdrosen.net | |||
| Email: jdrosen@jdrosen.net | Email: jdrosen@jdrosen.net | |||
| URI: http://www.jdrosen.net | URI: http://www.jdrosen.net | |||
| End of changes. 16 change blocks. | ||||
| 20 lines changed or deleted | 37 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/ | ||||