📄 rfc 3343 the application exchange (apex) presence service.htm
字号:
<EM><A name=page-17>Page 17</A></EM>
<DD>
<P></P>
<DT><STRONG><A name=sec-3>3</A> A "reply" element having code 250 is sent to
the originator.</STRONG>
<DD>
<P>When sending the "reply" element, the "transID" attribute is identical to
the value found in the "publish" element sent by the originator.
<P></P>
<DT><STRONG><A name=sec-4.5>4.5</A> The Terminate Operation</STRONG>
<DD>
<P>When an application no longer wishes to subscribe to presence information
or to watch endpoints that are subscribed to receive presence information, it
sends a "terminate" element to the service; similarly, when the service no
longer considers an application to be subscribing or watching, a "terminate"
element is sent to the application.
<P>The "terminate" element contains only a "transID" attribute that specifies
the transaction-identifier associated an in-progress subscribe or watch
operation. Section 9.1 of [1] defines the syntax for the "terminate" element.
<P>When the service receives a "terminate" element, it performs these steps:
<P></P>
<DT><STRONG><A name=sec-1>1</A> If the transaction-identifier does not refer
to a previous</STRONG>
<DD>subscribe or watch operation for the originator, an "error" element having
code 550 is returned.
<P></P>
<DT><STRONG><A name=sec-2>2</A> Otherwise, the previous subscribe or watch
operation for the</STRONG>
<DD>originator is terminated, and a "reply" element having code 250 is sent to
the originator.
<P>Note that following a terminate operation, the originator may receive
further presence or watcher updates. Although the service will send no further
updates after processing a terminate operation and sending the reply
operation, earlier updates may be in transit.
<P></P>
<DT><STRONG><A name=sec-4.6>4.6</A> The Notify Operation</STRONG>
<DD>
<P>The service sends a "notify" element to endpoints that are watching other
endpoints subscribed to presence information (c.f., Section 4.3).
<P>The "notify" element has a "subscriber" attribute, a "transID" attribute, a
"duration" attribute, an "action" attribute, and no content:
<P>
<UL>
<LI>the "subscriber" attribute specifies the endpoint that is subscribed to
presence information; and, </LI></UL>
<P></P>
<DT>
<HR>
<EM><A name=page-18>Page 18</A></EM>
<DD>
<P>
<UL>
<LI>the "transID" attribute specifies the transaction-identifier associated
with the watch operation that caused this "notify" element to be sent;
<P></P>
<LI>the "action" attribute specifies whether a subscription or its
termination has occurred; and,
<P></P>
<LI>if a subscription is being reported, the "duration" attribute specifies
the requested duration of the subscription. </LI></UL>
<P>No reply is sent by the receiving endpoint.
<P></P>
<DT><STRONG><A name=sec-4.7>4.7</A> The Reply Operation</STRONG>
<DD>
<P>While processing operations, the service may respond with a "reply"
element. Consult Sections 10.2 and 6.1.2 of [1], respectively, for the
definition and an exposition of the syntax of the reply element.
<P></P>
<DT><STRONG><A name=sec-5>5</A> Registration: The Presence Service</STRONG>
<DD>
<P>Well-Known Endpoint: apex=presence
<P>Syntax of Messages Exchanged: c.f., <A
href="http://www.apps.ietf.org/rfc/rfc3343.html#sec-6">Section 6</A>
<P>Sequence of Messages Exchanged: c.f., <A
href="http://www.apps.ietf.org/rfc/rfc3343.html#sec-4">Section 4</A>
<P>Access Control Tokens: presence:subscribe, presence:watch, presence:publish
<P>Contact Information: c.f., the "Authors' Addresses" section of this memo
<P></P>
<DT><STRONG><A name=sec-6>6</A> The Presence Service DTD</STRONG>
<DD>
<P><PRE> <!--
DTD for the APEX presence service, as of 2001-05-08
</PRE>
<P>Refer to this DTD as:
<P><PRE> <!ENTITY % APEXPRESENCE PUBLIC "-//IETF//DTD APEX PRESENCE//EN"
"">
%APEXPRESENCE;
-->
<!ENTITY % APEXCORE PUBLIC "-//IETF//DTD APEX CORE//EN" "">
%APEXCORE;
</PRE>
<P></P>
<DT>
<HR>
<EM><A name=page-19>Page 19</A></EM>
<DD>
<P><PRE> <!--
Synopsis of the APEX presence service
</PRE>
<P>service WKE: apex=presence
<P>message exchanges:
<P><PRE> consumer initiates service replies
================== ================
subscribe publish or reply
terminate reply
watch reply
publish reply
service initiates consumer replies
================= ================
terminate (nothing)
publish (nothing)
notify (nothing)
</PRE>
<P>access control:
<P><PRE> token target
================== ======
presence:subscribe for "publisher" of "subscribe" element
presence:watch for "publisher" of "watch" element
presence:publish for "publisher" of "publish" element
-->
<!ELEMENT subscribe EMPTY>
<!ATTLIST subscribe
publisher %ENDPOINT; #<STRONG>REQUIRED</STRONG>
transID %UNIQID; #<STRONG>REQUIRED</STRONG>
duration %SECONDS; #<STRONG>REQUIRED</STRONG>>
<!ELEMENT watch EMPTY>
<!ATTLIST watch
publisher %ENDPOINT; #<STRONG>REQUIRED</STRONG>
transID %UNIQID; #<STRONG>REQUIRED</STRONG>
duration %SECONDS; #<STRONG>REQUIRED</STRONG>>
<!-- publisher attributes must match in publish and presence -->
<!ELEMENT publish (presence)>
<!ATTLIST publish
publisher %ENDPOINT; #<STRONG>REQUIRED</STRONG>
transID %UNIQID; #<STRONG>REQUIRED</STRONG>
timeStamp %TIMESTAMP; #<STRONG>REQUIRED</STRONG>>
</PRE>
<P></P>
<DT>
<HR>
<EM><A name=page-20>Page 20</A></EM>
<DD>
<P><PRE> <!ELEMENT notify EMPTY>
<!ATTLIST notify
subscriber %ENDPOINT; #<STRONG>REQUIRED</STRONG>
transID %UNIQID; #<STRONG>REQUIRED</STRONG>
duration %SECONDS; "0"
action (subscribe|terminate)
"subscribe">
<!--
presence entries
-->
<!ELEMENT presence (tuple+)>
<!ATTLIST presence
publisher %ENDPOINT; #<STRONG>REQUIRED</STRONG>
lastUpdate %TIMESTAMP; #<STRONG>REQUIRED</STRONG>
publisherInfo
%URI; "">
<!ELEMENT tuple (capability*)>
<!ATTLIST tuple
destination %URI; #<STRONG>REQUIRED</STRONG>
availableUntil
%TIMESTAMP; #<STRONG>REQUIRED</STRONG>
tupleInfo %URI; "">
<!-- e.g., baseline='urn:ietf:rfc:rfc2533' -->
<!ELEMENT capability (#PCDATA)>
<!ATTLIST capability
baseline %URI #<STRONG>REQUIRED</STRONG>>
</PRE>
<P></P>
<DT>
<HR>
<EM><A name=page-21>Page 21</A></EM>
<DD>
<P></P>
<DT><STRONG><A name=sec-7>7</A> Security Considerations</STRONG>
<DD>
<P>Consult [1]'s <A
href="http://www.apps.ietf.org/rfc/rfc3343.html#sec-11">Section 11</A> for a
discussion of security issues.
<P>In addition, timestamps issued by the the presence service may disclose
location information. If this information is considered sensitive, the special
timezone value "-00:00" may be used (after converting the local time
accordingly).
<P></P>
<DT>References
<DD>
<P><PRE> [1] Rose, M., Klyne, G. and D. Crocker, "The Application Exchange
Core", <A href="http://www.apps.ietf.org/rfc/rfc3340.html">RFC 3340</A>, July 2002.
[2] Rose, M., "The Blocks Extensible Exchange Protocol Core", RFC
3080, March 2001.
[3] Rose, M., Klyne, G. and D. Crocker, "The Application Exchange
(APEX) Access Service", <A href="http://www.apps.ietf.org/rfc/rfc3341.html">RFC 3341</A>, July 2002.
</PRE>
<P></P>
<DT>
<HR>
<EM><A name=page-22>Page 22</A></EM>
<DD>
<P></P>
<DT>Acknowledgements
<DD>
<P>The authors gratefully acknowledge the contributions of: Neil Cook, Eric
Dixon, Darren New, Scott Pead, and Bob Wyman.
<P></P>
<DT>Authors' Addresses
<DD>
<P>Marshall T. Rose <BR>Dover Beach Consulting, Inc. <BR>POB 255268
<BR>Sacramento, CA 95865-5268 <BR>US
<P>Phone: +1 916 483 8878 <BR>EMail: mrose@dbc.mtview.ca.us
<P>Graham Klyne <BR>Nine by Nine
<P>EMail: gk@ninebynine.org
<P>David H. Crocker <BR>Brandenburg InternetWorking <BR>675 Spruce Drive
<BR>Sunnyvale, CA 94086 <BR>US
<P>Phone: +1 408 246 8253 <BR>EMail: dcrocker@brandenburg.com <PRE> URI: http://www.brandenburg.com/
</PRE>
<P></P>
<DT>
<HR>
<EM><A name=page-23>Page 23</A></EM>
<DD>
<P></P>
<DT>Full Copyright Statement
<DD>
<P>Copyright © The Internet Society (2003). All Rights Reserved.
<P>This document and translations of it may be copied and furnished to others,
and derivative works that comment on or otherwise explain it or assist in its
implementation may be prepared, copied, published and distributed, in whole or
in part, without restriction of any kind, provided that the above copyright
notice and this paragraph are included on all such copies and derivative
works. However, this document itself may not be modified in any way, such as
by removing the copyright notice or references to the Internet Society or
other Internet organizations, except as needed for the purpose of developing
Internet standards in which case the procedures for copyrights defined in the
Internet Standards process must be followed, or as required to translate it
into languages other than English.
<P>The limited permissions granted above are perpetual and will not be revoked
by the Internet Society or its successors or assigns.
<P>This document and the information contained herein is provided on an "AS
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS
OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE.
<P></P>
<DT>Acknowledgement
<DD>
<P>Funding for the RFC Editor function is currently provided by the Internet
Society.
<P></P>
<DT>
<HR>
<DD></DD></DL></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -