You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

xep-0097.xml 5.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!DOCTYPE xep SYSTEM 'xep.dtd' [
  3. <!ENTITY % ents SYSTEM "xep.ent">
  4. %ents;
  5. ]>
  6. <?xml-stylesheet type='text/xsl' href='xep.xsl'?>
  7. <xep>
  8. <header>
  9. <title>iCal Envelope</title>
  10. <abstract>A simple mechanism to transport iCal data over the jabber protocol</abstract>
  11. &LEGALNOTICE;
  12. <number>0097</number>
  13. <status>Deferred</status>
  14. <type>Standards Track</type>
  15. <sig>Standards</sig>
  16. <dependencies><spec>XEP-0030</spec></dependencies>
  17. <supersedes/>
  18. <supersededby/>
  19. <shortname>ice</shortname>
  20. <author>
  21. <firstname>Justin</firstname>
  22. <surname>Kirby</surname>
  23. <email>justin@openaether.org</email>
  24. <jid>zion@openaether.org</jid>
  25. </author>
  26. <revision>
  27. <version>0.1</version>
  28. <date>2003-06-10</date>
  29. <initials>jk</initials>
  30. <remark>Initial draft (jk).</remark>
  31. </revision>
  32. </header>
  33. <section1 topic='Introduction'>
  34. <p>This will be the first, in a series (hopefully), of specifications which will define how to utilize GroupWare over jabber. While GroupWare is extremely broad subject, this document will focus on iCal<note>iCalendar <link url='http://www.ietf.org/html.charters/calsch-charter.html'>http://www.ietf.org/html.charters/calsch-charter.html</link></note>. Since iCal is a defined standard which is transport-agnostic, all this document will do is define how iCal will be transported over Jabber.</p>
  35. <p>What this document will cover:</p>
  36. <ul>
  37. <li>Sending iCal data</li>
  38. <li>Receiving iCal data</li>
  39. </ul>
  40. </section1>
  41. <section1 topic='Disco'>
  42. <p>Before sending iCal messages to a jabber entity, a disco query should be performed in order to discover whether or not that entity supports iCal Envelopes.</p>
  43. <example><![CDATA[
  44. <iq
  45. type='get'
  46. from='romeo@montague.net/orchard'
  47. to='juliet@capulet.com/balconey'
  48. id='info1'>
  49. <query xmlns='http://jabber.org/protocol/disco#info'/>
  50. </iq>]]></example>
  51. <p>If the jabber entity supports iCal Envelopes, then it MUST respond with http://jabber.org/protocol/gw/ical as a feature.</p>
  52. <example><![CDATA[
  53. <iq
  54. type='result'
  55. from='juliet@capulet.com/balconey'
  56. to='romeo@montague.net/orchard'
  57. id='info1'>
  58. <query xmlns='http://jabber.org/protocol/disco#info'>
  59. <feature var='http://jabber.org/protocol/gw/ical'/>
  60. </query>
  61. </iq>]]></example>
  62. </section1>
  63. <section1 topic='Sending iCal Data'>
  64. <p>To send iCal, all that needs to be done is wrap the iCal data in a ical element. All iCal data sent MUST be in the ical element in the http://jabber.org/protocol/gw/ical namespace. The CDATA section is optional and is used here simply to make it readable.</p>
  65. <p>Other than wrapping iCal in XML, the data itself MUST follow the ietf 2445 RFC<note>2445 RFC <link url='http://www.ietf.org/rfc/rfc2445.txt'>http://www.ietf.org/rfc/rfc2445.txt</link></note></p>
  66. <example><![CDATA[
  67. <message to="jdev@jabber.org" from="calendar.jabber.org" type="normal">
  68. <body>
  69. Protocol gathering every Tuesday at 22:00 UTC
  70. located in foundation@conference.jabber.org
  71. </body>
  72. <ical xmlns="http://jabber.org/protocol/gw/ical">
  73. BEGIN:VCALENDAR
  74. PRODID:-//Ximian//NONSGML Evolution Calendar//EN
  75. VERSION:2.0
  76. METHOD:PUBLISH
  77. BEGIN:VEVENT
  78. UID:20030418T014238Z-5727-500-1-2@oadev
  79. DTSTAMP:20030418T014238Z
  80. DTSTART:20030422T220000Z
  81. DTEND:20030422T230000Z
  82. SEQUENCE:3
  83. SUMMARY:XEPs
  84. LOCATION:foundation@conference.jabber.org
  85. CATEGORIES:XSF
  86. CLASS:PUBLIC
  87. TRANSP:OPAQUE
  88. LAST-MODIFIED:20030418T014527Z
  89. DESCRIPTION:discuss jeps
  90. RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU
  91. END:VEVENT
  92. END:VCALENDAR
  93. </ical>
  94. </message>]]></example>
  95. <p>As a convenience for users which do not have ical support the sender may want to place human readable information in the &lt;body/&gt; for the receiver to read.</p>
  96. </section1>
  97. <section1 topic='Receiving iCal Data'>
  98. <p> When a client receives a message containing iCal data there are a few options which are considered reasonable.</p>
  99. <ul>
  100. <li>Ignore the message</li>
  101. <li>Display the ical data in the message</li>
  102. <li>Hand the ical data off to the user's calendaring application</li>
  103. </ul>
  104. <p>Per the jabber standard, any message received which the entity does not understand CAN be ignored. This behavior is expected of clients which have not implemenred this jep.</p>
  105. <p>The entity may display the ical data as text to the user, this is not recommended for obvious reasons. However, some data is better than no data, so this is considered preferable to just dropping the message stanza.</p>
  106. <p>Most users today have some form of calendaring functionality available to them which supports the iCal standard. Simply redirecting the received ical to the user's preferred calendaring application would be the ideal scenario.</p>
  107. </section1>
  108. <section1 topic='IANA Considerations'>
  109. <p>This document requires no interaction with the Internet Assigned Numbers Authority (IANA)</p>
  110. </section1>
  111. <section1 topic='XMPP Registrar Considerations'>
  112. <p>The 'http://jabber.org/protocol/gw/ical' namespace is registered with the XMPP Registrar as a result of this document.</p>
  113. </section1>
  114. <section1 topic='Formal Definition'>
  115. <section2 topic='Schema'>
  116. <p>TBD</p>
  117. </section2>
  118. <section2 topic='DTD'>
  119. <p>TBD</p>
  120. </section2>
  121. </section1>
  122. <section1 topic='Unresolved Issues'>
  123. <p>The following are issues that need to be resolved</p>
  124. <ul>
  125. <li>Does scheduling negotiation need to be defined?</li>
  126. <li>How should attachments to ical be handled?</li>
  127. </ul>
  128. </section1>
  129. </xep>