1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-24 18:22:24 -05:00
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@904 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2007-06-01 20:31:13 +00:00
parent 54102e7ed1
commit 5471ed89eb
3 changed files with 97 additions and 181 deletions

View File

@ -15,7 +15,7 @@
<sig>Standards</sig> <sig>Standards</sig>
<dependencies> <dependencies>
<spec>XMPP Core</spec> <spec>XMPP Core</spec>
<spec>XEP-0060</spec> <spec>XEP-0163</spec>
</dependencies> </dependencies>
<supersedes/> <supersedes/>
<supersededby/> <supersededby/>
@ -25,47 +25,53 @@
</schemaloc> </schemaloc>
&stpeter; &stpeter;
&ralphm; &ralphm;
<revision>
<version>1.1pre1</version>
<date>in progress, last updated 2007-05-30</date>
<initials>psa</initials>
<remark><p>Corrected PEP examples.</p></remark>
</revision>
<revision> <revision>
<version>1.0</version> <version>1.0</version>
<date>2004-10-20</date> <date>2004-10-20</date>
<initials>psa/rm</initials> <initials>psa/rm</initials>
<remark>Per a vote of the Jabber Council, advanced status to Draft; per Council discussion, also added two additional moods and adjusted structure to use elements rather than XML character data.</remark> <remark><p>Per a vote of the Jabber Council, advanced status to Draft; per Council discussion, also added two additional moods and adjusted structure to use elements rather than XML character data.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.6</version> <version>0.6</version>
<date>2004-09-15</date> <date>2004-09-15</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Added internationalization considerations.</remark> <remark><p>Added internationalization considerations.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.5</version> <version>0.5</version>
<date>2004-04-25</date> <date>2004-04-25</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Corrected several errors; added reference to XEP-0033.</remark> <remark><p>Corrected several errors; added reference to XEP-0033.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.4</version> <version>0.4</version>
<date>2004-02-19</date> <date>2004-02-19</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Minor fixes to text and schema.</remark> <remark><p>Minor fixes to text and schema.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.3</version> <version>0.3</version>
<date>2003-08-01</date> <date>2003-08-01</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Added more moods.</remark> <remark><p>Added more moods.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.2</version> <version>0.2</version>
<date>2003-07-23</date> <date>2003-07-23</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Expanded the information format; changed primary container to use pubsub.</remark> <remark><p>Expanded the information format; changed primary container to use pubsub.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.1</version> <version>0.1</version>
<date>2003-07-22</date> <date>2003-07-22</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Initial version.</remark> <remark><p>Initial version.</p></remark>
</revision> </revision>
</header> </header>
<section1 topic='Introduction' anchor='intro'> <section1 topic='Introduction' anchor='intro'>
@ -77,7 +83,7 @@
<code><![CDATA[ <code><![CDATA[
<mood xmlns='http://jabber.org/protocol/mood'> <mood xmlns='http://jabber.org/protocol/mood'>
<happy/> <happy/>
<text>Yay, the mood document has been approved!</text> <text>Yay, the mood spec has been approved!</text>
</mood> </mood>
]]></code> ]]></code>
<p>In addition, an application MAY provide a more specific mood value as a properly-namespaced child of the defined element, which extension MUST be ignored if the receiving application does not understand the extended namespace. Here is an example:</p> <p>In addition, an application MAY provide a more specific mood value as a properly-namespaced child of the defined element, which extension MUST be ignored if the receiving application does not understand the extended namespace. Here is an example:</p>
@ -86,21 +92,19 @@
<happy> <happy>
<ecstatic xmlns='http://ik.nu/ralphm'/> <ecstatic xmlns='http://ik.nu/ralphm'/>
</happy> </happy>
<text>Yay, the mood document has been approved!</text> <text>Yay, the mood spec has been approved!</text>
</mood> </mood>
]]></code> ]]></code>
</section2> </section2>
<section2 topic='Pubsub Transport' anchor='proto-pubsub'> <section2 topic='Pubsub Transport' anchor='proto-pubsub'>
<p>The &lt;mood/&gt; element SHOULD be communicated by means of &xep0060; or the subset of publish-subscribe specified in &xep0163;, but MAY be provided in a message as well. Because mood information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.</p> <p>Mood information SHOULD be communicated and transported by means of the &xep0060; subset specified in &xep0163;. Because mood information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.</p>
<p>If the user wishes to publish his mood to all of those who are subscribed to his mood information, the user SHOULD use publish-subscribe (the following examples show use of the publish-subscribe subset specified in <cite>XEP-0163</cite>).</p>
<example caption='User Publishes Mood'><![CDATA[ <example caption='User Publishes Mood'><![CDATA[
<iq type='set' <iq type='set'
from='juliet@capulet.com/balcony' from='juliet@capulet.lit/ca486eba-0f9a-11dc-8835-000bcd821bfb'
to='pubsub.shakespeare.lit'
id='publish1'> id='publish1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'> <pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://jabber.org/protocol/mood'> <publish node='http://jabber.org/protocol/mood'>
<item id='a92lvfmlzsd923k'> <item>
<mood xmlns='http://jabber.org/protocol/mood'> <mood xmlns='http://jabber.org/protocol/mood'>
<annoyed/> <annoyed/>
<text>curse my nurse!</text> <text>curse my nurse!</text>
@ -113,11 +117,11 @@
<p>The mood is then delivered to all subscribers:</p> <p>The mood is then delivered to all subscribers:</p>
<example caption='Mood is Delivered to All Subscribers'><![CDATA[ <example caption='Mood is Delivered to All Subscribers'><![CDATA[
<message <message
from='pubsub.shakespeare.lit' from='juliet@capulet.lit'
to='romeo@montague.net/orchard'> to='romeo@montague.net'>
<event xmlns='http://jabber.org/protocol/pubsub#event'> <event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://jabber.org/protocol/mood'> <items node='http://jabber.org/protocol/mood'>
<item id='a92lvfmlzsd923k'> <item id='a475804a-0f9c-11dc-98a8-001143d5d5db'>
<mood xmlns='http://jabber.org/protocol/mood'> <mood xmlns='http://jabber.org/protocol/mood'>
<annoyed/> <annoyed/>
<text>curse my nurse!</text> <text>curse my nurse!</text>
@ -130,52 +134,17 @@
. .
. .
]]></example> ]]></example>
<p>As mentioned in XEP-0060, the stanza containing the event notification or payload MAY also include 'replyto' data (as specified by the &xep0033; protocol) to provide an explicit association between the published data and the user:</p>
<example caption='Event notification with extended stanza addressing'><![CDATA[
<message
from='pubsub.shakespeare.lit'
to='romeo@montague.net/orchard'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://jabber.org/protocol/mood'>
<item id='a92lvfmlzsd923k'>
<mood xmlns='http://jabber.org/protocol/mood'>
<annoyed/>
<text>curse my nurse!</text>
</mood>
</item>
</items>
</event>
<addresses xmlns='http://jabber.org/protocol/address'>
<address type='replyto' jid='juliet@capulet.com'/>
</addresses>
</message>
]]></example>
</section2> </section2>
<section2 topic='Message Transport' anchor='proto-message'> <section2 topic='Message Transport' anchor='proto-message'>
<p>A user MAY also provide a mood extension in a specific message, in order to lend a defined emotional tone to the message.</p> <p>A user MAY provide a mood extension in a specific message in order to lend a defined emotional tone to the text.</p>
<example caption='User Provides Mood in Message'><![CDATA[ <example caption='User Provides Mood in Message'><![CDATA[
<message from='romeo@montague.net/orchard' <message from='romeo@montague.lit/05f018b8-0f9c-11dc-9e44-000bcd821bfb'
to='juliet@capulet.com/balcony' from='juliet@capulet.lit'
type='chat'> type='chat'>
<body>A thousand times good night!</body> <body>A thousand times good night!</body>
<mood xmlns='http://jabber.org/protocol/mood'/> <mood xmlns='http://jabber.org/protocol/mood'/>
<sad/> <sad/>
</mood> </mood>
</message>
]]></example>
<p>The &lt;mood/&gt; element could even contain a URL reference structured according to the &xep0066; protocol:</p>
<example caption='User Provides Mood and URL in Message'><![CDATA[
<message from='ralphm@ik.nu/work'
to='stpeter@jabber.org/home'
type='chat'>
<body>Cool!</body>
<mood xmlns='http://jabber.org/protocol/mood'>
<happy/>
<text>Yay, the mood document has been published!</text>
<x xmlns='jabber:x:oob'>
<url>http://www.xmpp.org/extensions/xep-0107.html</url>
</x>
</mood>
</message> </message>
]]></example> ]]></example>
</section2> </section2>

View File

@ -15,7 +15,7 @@
<sig>Standards</sig> <sig>Standards</sig>
<dependencies> <dependencies>
<spec>XMPP Core</spec> <spec>XMPP Core</spec>
<spec>XEP-0060</spec> <spec>XEP-0163</spec>
</dependencies> </dependencies>
<supersedes/> <supersedes/>
<supersededby/> <supersededby/>
@ -25,35 +25,41 @@
</schemaloc> </schemaloc>
&ralphm; &ralphm;
&stpeter; &stpeter;
<revision>
<version>1.1pre1</version>
<date>in progress, last updated 2007-05-30</date>
<initials>psa</initials>
<remark><p>Corrected PEP examples.</p></remark>
</revision>
<revision> <revision>
<version>1.0</version> <version>1.0</version>
<date>2004-10-20</date> <date>2004-10-20</date>
<initials>psa/rm</initials> <initials>psa/rm</initials>
<remark>Per a vote of the Jabber Council, advanced status to Draft; per Council discussion, also adjusted structure to use nested elements rather than XML character data.</remark> <remark><p>Per a vote of the Jabber Council, advanced status to Draft; per Council discussion, also adjusted structure to use nested elements rather than XML character data.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.4</version> <version>0.4</version>
<date>2004-09-15</date> <date>2004-09-15</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Added internationalization considerations.</remark> <remark><p>Added internationalization considerations.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.3</version> <version>0.3</version>
<date>2004-04-25</date> <date>2004-04-25</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Corrected several errors; added reference to XEP-0033.</remark> <remark><p>Corrected several errors; added reference to XEP-0033.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.2</version> <version>0.2</version>
<date>2004-02-19</date> <date>2004-02-19</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Minor text and schema changes; added RPID mapping.</remark> <remark><p>Minor text and schema changes; added RPID mapping.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.1</version> <version>0.1</version>
<date>2003-07-22</date> <date>2003-07-22</date>
<initials>rm</initials> <initials>rm</initials>
<remark>Initial version.</remark> <remark><p>Initial version.</p></remark>
</revision> </revision>
</header> </header>
<section1 topic='Introduction' anchor='intro'> <section1 topic='Introduction' anchor='intro'>
@ -91,16 +97,14 @@
<p>In accordance with &xmppcore;, the receiving application MUST ignore a specific activity element or detailed activity element if it does not understand the namespace that qualifies the element.</p> <p>In accordance with &xmppcore;, the receiving application MUST ignore a specific activity element or detailed activity element if it does not understand the namespace that qualifies the element.</p>
</section2> </section2>
<section2 topic='Pubsub Transport' anchor='proto-pubsub'> <section2 topic='Pubsub Transport' anchor='proto-pubsub'>
<p>The &lt;activity/&gt; element SHOULD be communicated by means of &xep0060; or the subset of publish-subscribe specified in &xep0163;. Because activity information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.</p> <p>Activity information SHOULD be communicated and transported by means of the &xep0060; subset specified in &xep0163;. Because activity information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.</p>
<p>Note: The following examples show use of the publish-subscribe subset specified in <cite>XEP-0163</cite>.</p>
<example caption='User Publishes Activity'><![CDATA[ <example caption='User Publishes Activity'><![CDATA[
<iq type='set' <iq type='set'
from='juliet@capulet.com/balcony' from='juliet@capulet.lit/ca486eba-0f9a-11dc-8835-000bcd821bfb'
to='pubsub.shakespeare.lit'
id='publish1'> id='publish1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'> <pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://jabber.org/protocol/activity'> <publish node='http://jabber.org/protocol/activity'>
<item id='zjsdf929la982873j'> <item>
<activity xmlns='http://jabber.org/protocol/activity'> <activity xmlns='http://jabber.org/protocol/activity'>
<relaxing> <relaxing>
<partying/> <partying/>
@ -115,11 +119,11 @@
<p>The activity is then delivered to all subscribers:</p> <p>The activity is then delivered to all subscribers:</p>
<example caption='Activity is Delivered to All Subscribers'><![CDATA[ <example caption='Activity is Delivered to All Subscribers'><![CDATA[
<message <message
from='pubsub.shakespeare.lit' from='juliet@capulet.lit'
to='romeo@montague.net/orchard'> to='romeo@montague.lit'>
<event xmlns='http://jabber.org/protocol/pubsub#event'> <event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://jabber.org/protocol/activity'> <items node='http://jabber.org/protocol/activity'>
<item id='zjsdf929la982873j'> <item id='b5ac48d0-0f9c-11dc-8754-001143d5d5db'>
<activity xmlns='http://jabber.org/protocol/activity'> <activity xmlns='http://jabber.org/protocol/activity'>
<relaxing> <relaxing>
<partying/> <partying/>
@ -134,28 +138,6 @@
. .
. .
]]></example> ]]></example>
<p>As mentioned in XEP-0060, the stanza containing the event notification or payload MAY also include 'replyto' data (as specified by the &xep0033; protocol) to provide an explicit association between the published data and the user:</p>
<example caption='Event notification with extended stanza addressing'><![CDATA[
<message
from='pubsub.shakespeare.lit'
to='romeo@montague.net/orchard'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='generic/juliet-activity'>
<item id='current'>
<activity xmlns='http://jabber.org/protocol/activity'>
<relaxing>
<partying/>
</relaxing>
<text xml:lang='en'>My nurse&apos;s birthday!</text>
</activity>
</item>
</items>
</event>
<addresses xmlns='http://jabber.org/protocol/address'>
<address type='replyto' jid='juliet@capulet.com'/>
</addresses>
</message>
]]></example>
</section2> </section2>
</section1> </section1>
<section1 topic='Activity Values' anchor='activities'> <section1 topic='Activity Values' anchor='activities'>

View File

@ -15,8 +15,7 @@
<sig>Standards</sig> <sig>Standards</sig>
<dependencies> <dependencies>
<spec>XMPP Core</spec> <spec>XMPP Core</spec>
<spec>XMPP IM</spec> <spec>XEP-0163</spec>
<spec>XEP-0060</spec>
</dependencies> </dependencies>
<supersedes/> <supersedes/>
<supersededby/> <supersededby/>
@ -25,71 +24,77 @@
<url>http://www.xmpp.org/schemas/tune.xsd</url> <url>http://www.xmpp.org/schemas/tune.xsd</url>
</schemaloc> </schemaloc>
&stpeter; &stpeter;
<revision>
<version>1.1pre1</version>
<date>in progress, last updated 2007-05-30</date>
<initials>psa</initials>
<remark><p>Removed non-PEP examples; added uri element.</p></remark>
</revision>
<revision> <revision>
<version>1.0</version> <version>1.0</version>
<date>2004-11-12</date> <date>2004-11-12</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Per a vote of the Jabber Council, advanced status to Draft.</remark> <remark><p>Per a vote of the Jabber Council, advanced status to Draft.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.10</version> <version>0.10</version>
<date>2004-10-29</date> <date>2004-10-29</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Added example with URL.</remark> <remark><p>Added example with URL.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.9</version> <version>0.9</version>
<date>2004-10-27</date> <date>2004-10-27</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Changed recommendation to not include the &lt;length/&gt; element if the track time is unknown.</remark> <remark><p>Changed recommendation to not include the &lt;length/&gt; element if the track time is unknown.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.8</version> <version>0.8</version>
<date>2004-10-26</date> <date>2004-10-26</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Added implementation notes; clarified nature of &lt;source/&gt; and &lt;track/&gt; elements; if length is unknown, set to zero.</remark> <remark><p>Added implementation notes; clarified nature of &lt;source/&gt; and &lt;track/&gt; elements; if length is unknown, set to zero.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.7</version> <version>0.7</version>
<date>2004-05-20</date> <date>2004-05-20</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Changed &lt;length/&gt; datatype from xs:duration to xs:unsignedShort.</remark> <remark><p>Changed &lt;length/&gt; datatype from xs:duration to xs:unsignedShort.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.6</version> <version>0.6</version>
<date>2004-04-25</date> <date>2004-04-25</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Corrected several errors; added reference to XEP-0033.</remark> <remark><p>Corrected several errors; added reference to XEP-0033.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.5</version> <version>0.5</version>
<date>2004-02-19</date> <date>2004-02-19</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Reverted from infobits to tune elements.</remark> <remark><p>Reverted from infobits to tune elements.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.4</version> <version>0.4</version>
<date>2003-12-14</date> <date>2003-12-14</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Slight modifications to track changes to infobits specifications.</remark> <remark><p>Slight modifications to track changes to infobits specifications.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.3</version> <version>0.3</version>
<date>2003-10-23</date> <date>2003-10-23</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Replaced tune elements with infobits.</remark> <remark><p>Replaced tune elements with infobits.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.2</version> <version>0.2</version>
<date>2003-09-10</date> <date>2003-09-10</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Added "stop" function via empty &lt;tune/&gt; element.</remark> <remark><p>Added "stop" function via empty &lt;tune/&gt; element.</p></remark>
</revision> </revision>
<revision> <revision>
<version>0.1</version> <version>0.1</version>
<date>2003-09-08</date> <date>2003-09-08</date>
<initials>psa</initials> <initials>psa</initials>
<remark>Initial version.</remark> <remark><p>Initial version.</p></remark>
</revision> </revision>
</header> </header>
<section1 topic='Introduction' anchor='intro'> <section1 topic='Introduction' anchor='intro'>
@ -112,10 +117,10 @@
<td>xs:string</td> <td>xs:string</td>
</tr> </tr>
<tr> <tr>
<td>title</td> <td>length</td>
<td>The title of the song or piece</td> <td>The duration of the song or piece in seconds</td>
<td>Heart of the Sunrise</td> <td>686</td>
<td>xs:string</td> <td>xs:unsignedShort</td>
</tr> </tr>
<tr> <tr>
<td>source</td> <td>source</td>
@ -123,6 +128,12 @@
<td>Yessongs</td> <td>Yessongs</td>
<td>xs:string</td> <td>xs:string</td>
</tr> </tr>
<tr>
<td>title</td>
<td>The title of the song or piece</td>
<td>Heart of the Sunrise</td>
<td>xs:string</td>
</tr>
<tr> <tr>
<td>track</td> <td>track</td>
<td>A unique identifier for the tune; e.g., the track number within a collection or the specific URI for the object (e.g., a stream or audio file)</td> <td>A unique identifier for the tune; e.g., the track number within a collection or the specific URI for the object (e.g., a stream or audio file)</td>
@ -130,31 +141,30 @@
<td>xs:string</td> <td>xs:string</td>
</tr> </tr>
<tr> <tr>
<td>length</td> <td>uri</td>
<td>The duration of the song or piece in seconds</td> <td>A URI or URL pointing to information about the song, collection, or artist</td>
<td>686</td> <td>http://www.yesworld.com/lyrics/Fragile.html#9</td>
<td>xs:unsignedShort</td> <td>xs:anyURI</td>
</tr> </tr>
</table> </table>
<p>NOTE: The datatypes specified above are defined in &w3xmlschema2;.</p> <p>NOTE: The datatypes specified above are defined in &w3xmlschema2;.</p>
</section2> </section2>
<section2 topic='Transport Mechanism' anchor='protocol-transport'> <section2 topic='Transport Mechanism' anchor='protocol-transport'>
<p>Tune information SHOULD be communicated and transported by means of the &xep0060; protocol or the subset of publish-subscribe specified in &xep0163;. Because tune information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.</p> <p>Tune information SHOULD be communicated and transported by means of the &xep0060; subset specified in &xep0163;. Because tune information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.</p>
<p>Note: The following examples show use of the publish-subscribe subset specified in <cite>XEP-0163</cite>.</p>
<example caption='User Publishes Tune Information'><![CDATA[ <example caption='User Publishes Tune Information'><![CDATA[
<iq type='set' <iq type='set'
from='stpeter@jabber.org/work' from='stpeter@jabber.org/14793c64-0f94-11dc-9430-000bcd821bfb'
to='pubsub.jabber.org'
id='tunes123'> id='tunes123'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'> <pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://jabber.org/protocol/tune'> <publish node='http://jabber.org/protocol/tune'>
<item id='jg939lalsd92l11jdlsd'> <item>
<tune xmlns='http://jabber.org/protocol/tune'> <tune xmlns='http://jabber.org/protocol/tune'>
<artist>Yes</artist> <artist>Yes</artist>
<title>Heart of the Sunrise</title>
<source>Yessongs</source>
<track>3</track>
<length>686</length> <length>686</length>
<source>Yessongs</source>
<title>Heart of the Sunrise</title>
<track>3</track>
<uri>http://www.yesworld.com/lyrics/Fragile.html#9</uri>
</tune> </tune>
</item> </item>
</publish> </publish>
@ -164,17 +174,18 @@
<p>The tune information is then delivered to all subscribers:</p> <p>The tune information is then delivered to all subscribers:</p>
<example caption='Tune Information is Delivered to All Subscribers'><![CDATA[ <example caption='Tune Information is Delivered to All Subscribers'><![CDATA[
<message <message
from='pubsub.jabber.org' from='stpeter@jabber.org'
to='maineboy@jabber.org'> to='maineboy@jabber.org'>
<event xmlns='http://jabber.org/protocol/pubsub#event'> <event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://jabber.org/protocol/tune'> <items node='http://jabber.org/protocol/tune'>
<item id='jg939lalsd92l11jdlsd'> <item id='bffe6584-0f9c-11dc-84ba-001143d5d5db'>
<tune xmlns='http://jabber.org/protocol/tune'> <tune xmlns='http://jabber.org/protocol/tune'>
<artist>Yes</artist> <artist>Yes</artist>
<title>Heart of the Sunrise</title>
<source>Yessongs</source>
<track>3</track>
<length>686</length> <length>686</length>
<source>Yessongs</source>
<title>Heart of the Sunrise</title>
<track>3</track>
<uri>http://www.yesworld.com/lyrics/Fragile.html#9</uri>
</tune> </tune>
</item> </item>
</items> </items>
@ -184,63 +195,16 @@
. .
. .
]]></example> ]]></example>
<p>As mentioned in XEP-0060, the stanza containing the event notification or payload MAY also include 'replyto' data (as specified by the &xep0033; protocol) to provide an explicit association between the published data and the user:</p>
<example caption="Event notification with extended stanza addressing"><![CDATA[
<message
from='pubsub.jabber.org'
to='maineboy@jabber.org'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://jabber.org/protocol/tune'>
<item id='jg939lalsd92l11jdlsd'>
<tune xmlns='http://jabber.org/protocol/tune'>
<artist>Yes</artist>
<title>Heart of the Sunrise</title>
<source>Yessongs</source>
<track>3</track>
<length>686</length>
</tune>
</item>
</items>
</event>
<addresses xmlns='http://jabber.org/protocol/address'>
<address type='replyto' jid='juliet@capulet.com'/>
</addresses>
</message>
]]></example>
<p>Naturally, further extensions could be included, e.g., using &xep0066; to specify a URL where one could buy the recording.</p>
<example caption="Tune info with URL"><![CDATA[
<message
from='pubsub.jabber.org'
to='maineboy@jabber.org'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://jabber.org/protocol/tune'>
<item id='jg939lalsd92l11jdlsd'>
<tune xmlns='http://jabber.org/protocol/tune'>
<artist>Yes</artist>
<title>Heart of the Sunrise</title>
<source>Yessongs</source>
<track>3</track>
<length>686</length>
<x xmlns='jabber:x:oob'>
<url>http://www.amazon.com/exec/obidos/ASIN/B000002J1Y</url>
</x>
</tune>
</item>
</items>
</event>
</message>
]]></example>
</section2> </section2>
<section2 topic='Stop Command' anchor='protocol-stop'> <section2 topic='Stop Command' anchor='protocol-stop'>
<p>In order to indicate that the user is no longer listening to any tunes, the user's client SHOULD send an empty &lt;tune/&gt; element, which can be considered a "stop command" for user tunes:</p> <p>In order to indicate that the user is no longer listening to any tunes, the user's client SHOULD send an empty &lt;tune/&gt; element, which can be considered a "stop command" for user tunes:</p>
<example caption='User Publishes "Stop Playing" Information'><![CDATA[ <example caption='User Publishes "Stop Playing" Information'><![CDATA[
<iq type='set' <iq type='set'
from='stpeter@jabber.org/work' from='stpeter@jabber.org/14793c64-0f94-11dc-9430-000bcd821bfb'
to='pubsub.jabber.org'
id='tunes345'> id='tunes345'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'> <pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://jabber.org/protocol/tune'> <publish node='http://jabber.org/protocol/tune'>
<item id='jg939lalsd92l11jdlsd'> <item>
<tune xmlns='http://jabber.org/protocol/tune'/> <tune xmlns='http://jabber.org/protocol/tune'/>
</item> </item>
</publish> </publish>
@ -249,11 +213,11 @@
]]></example> ]]></example>
<example caption='Empty Tune Information is Delivered to All Subscribers'><![CDATA[ <example caption='Empty Tune Information is Delivered to All Subscribers'><![CDATA[
<message <message
from='pubsub.jabber.org' from='stpeter@jabber.org'
to='maineboy@jabber.org'> to='maineboy@jabber.org'>
<event xmlns='http://jabber.org/protocol/pubsub#event'> <event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://jabber.org/protocol/tune'> <items node='http://jabber.org/protocol/tune'>
<item id='jg939lalsd92l11jdlsd'> <item id='cbbb3f5a-0f9c-11dc-afe0-001143d5d5db'>
<tune xmlns='http://jabber.org/protocol/tune'/> <tune xmlns='http://jabber.org/protocol/tune'/>
</item> </item>
</items> </items>
@ -266,7 +230,7 @@
</section2> </section2>
</section1> </section1>
<section1 topic='Implementation Notes' anchor='impl'> <section1 topic='Implementation Notes' anchor='impl'>
<p>To prevent a large number of updates when a user is skipping through tracks, an implementation may wait several seconds before publishing new tune information.</p> <p>To prevent a large number of updates when a user is skipping through tracks, an implementation SHOULD wait several seconds before publishing new tune information.</p>
<p>If the length is unknown (e.g., the user is listening to a stream), the &lt;length/&gt; element SHOULD NOT be included.</p> <p>If the length is unknown (e.g., the user is listening to a stream), the &lt;length/&gt; element SHOULD NOT be included.</p>
</section1> </section1>
<section1 topic='Security Considerations' anchor='security'> <section1 topic='Security Considerations' anchor='security'>
@ -301,10 +265,11 @@
<xs:complexType> <xs:complexType>
<xs:sequence minOccurs='0'> <xs:sequence minOccurs='0'>
<xs:element name='artist' type='xs:string' minOccurs='0'/> <xs:element name='artist' type='xs:string' minOccurs='0'/>
<xs:element name='title' type='xs:string' minOccurs='0'/>
<xs:element name='source' type='xs:string' minOccurs='0'/>
<xs:element name='track' type='xs:string' minOccurs='0'/>
<xs:element name='length' type='xs:unsignedShort' minOccurs='0'/> <xs:element name='length' type='xs:unsignedShort' minOccurs='0'/>
<xs:element name='source' type='xs:string' minOccurs='0'/>
<xs:element name='title' type='xs:string' minOccurs='0'/>
<xs:element name='track' type='xs:string' minOccurs='0'/>
<xs:element name='uri' type='xs:anyURI' minOccurs='0'/>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>