mirror of
https://github.com/moparisthebest/xeps
synced 2024-12-22 07:38:52 -05:00
0.2
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@2624 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
parent
c39b41ccab
commit
15084fa03a
50
xep-0245.xml
50
xep-0245.xml
@ -22,6 +22,12 @@
|
|||||||
<supersededby/>
|
<supersededby/>
|
||||||
<shortname>NOT_YET_ASSIGNED</shortname>
|
<shortname>NOT_YET_ASSIGNED</shortname>
|
||||||
&stpeter;
|
&stpeter;
|
||||||
|
<revision>
|
||||||
|
<version>0.2</version>
|
||||||
|
<date>2009-01-08</date>
|
||||||
|
<initials>psa</initials>
|
||||||
|
<remark><p>Clarified handling of XHTML-IM formatting; added security consideration for multi-user chat rooms.</p></remark>
|
||||||
|
</revision>
|
||||||
<revision>
|
<revision>
|
||||||
<version>0.1</version>
|
<version>0.1</version>
|
||||||
<date>2008-06-18</date>
|
<date>2008-06-18</date>
|
||||||
@ -35,13 +41,15 @@
|
|||||||
<remark><p>First draft.</p></remark>
|
<remark><p>First draft.</p></remark>
|
||||||
</revision>
|
</revision>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<section1 topic='Introduction' anchor='intro'>
|
<section1 topic='Introduction' anchor='intro'>
|
||||||
<p>Many Jabber/XMPP instant messaging clients provide special processing and presentation of the string "/me " at the beginning of a message body. This specification describes the recommended handling of this "command".</p>
|
<p>Many Jabber/XMPP instant messaging clients provide special processing and presentation of the string "/me " at the beginning of a message body. This specification describes the recommended handling of this "command".</p>
|
||||||
</section1>
|
</section1>
|
||||||
|
|
||||||
<section1 topic='Recommended Handling' anchor='handling'>
|
<section1 topic='Recommended Handling' anchor='handling'>
|
||||||
<p>The /me command <note>The string "/me " is usually pronounced "slash-me".</note> is a text string that enables a human user to type an action phrase and have it be presented in a special way within an instant messaging client. The text string is followed by a verb or verb phrase, such as "/me laughs" or "/me is logging off now". This command does not result in the generation of any XMPP protocol. Instead, the command is sent as-is (e.g., <body>/me laughs</body>) and the receiving client performs string-matching on the first four characters of the data included in the &BODY; element to determine if the message begins with the string "/me ". If the client finds a match, the receiving client will show the message in a special format. It is RECOMMENDED for the client to show the user name, nickname, or handle <note>On the difference between user names, nicknames, and handles, see &xep0165; and &xep0172;.</note> of the sender followed by the verb phrase in italicized text, prepended by the "*" character.</p>
|
<p>The /me command <note>The string "/me " is usually pronounced "slash-me".</note> is a text string that enables a human user to type an action phrase and have it be presented in a special way within an instant messaging client. The text string is followed by a verb or verb phrase, such as "/me laughs" or "/me is logging off now". This command does not result in the generation of any XMPP protocol. Instead, the command is sent as-is (e.g., <body>/me laughs</body>) and the receiving client performs string-matching on the first four characters of the data included in the &BODY; element to determine if the message begins with the string "/me ". If the client finds a match, the receiving client will show the message with a special presentation. It is RECOMMENDED for the client to show the receiving client's understanding of the sender's user name, nickname, or handle <note>On the difference between user names, nicknames, and handles, see &xep0165; and &xep0172;.</note> followed by the verb phrase in italicized text, prepended by the "*" character.</p>
|
||||||
<p>For example, imagine that the Greek god Atlas is in a chatroom with the other gods and types the following text in his IM client:</p>
|
<p>For example, imagine that the Greek god Atlas is in a chatroom with the other gods and types the following text in his IM client:</p>
|
||||||
<example caption="A Command"><![CDATA[
|
<example caption="A /me Command"><![CDATA[
|
||||||
/me shrugs in disgust
|
/me shrugs in disgust
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>That text will be sent to all the occupants in the chatroom as follows:</p>
|
<p>That text will be sent to all the occupants in the chatroom as follows:</p>
|
||||||
@ -52,9 +60,9 @@
|
|||||||
<body>/me shrugs in disgust</body>
|
<body>/me shrugs in disgust</body>
|
||||||
</message>
|
</message>
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>Each recipient's client would then show the message with some special formatting, such as:</p>
|
<p>Each recipient's client would then show the message with a special presentation, such as:</p>
|
||||||
<example caption="Presented Message">
|
<example caption="Presentation of /me Command">
|
||||||
<span style='margin-left: 5%; font-style: italic;'>* Atlas shrugs in disgust</span>
|
<span style='margin-left: 5%; font-style: italic; color: green;'>* Atlas shrugs in disgust</span>
|
||||||
</example>
|
</example>
|
||||||
<p>If the receiving client does not find a match on the string "/me " in the first four characters of the message body, it SHOULD NOT present the text in a special way. For example, the following message bodies do not match:</p>
|
<p>If the receiving client does not find a match on the string "/me " in the first four characters of the message body, it SHOULD NOT present the text in a special way. For example, the following message bodies do not match:</p>
|
||||||
<example caption="Some Non-Commands"><![CDATA[
|
<example caption="Some Non-Commands"><![CDATA[
|
||||||
@ -66,19 +74,47 @@
|
|||||||
|
|
||||||
<body>"/me shrugs in disgust"</body>
|
<body>"/me shrugs in disgust"</body>
|
||||||
|
|
||||||
|
<body>* Atlas shrugs in disgust</body>
|
||||||
|
|
||||||
<body>Why did Atlas say "/me shrugs in disgust"?</body>
|
<body>Why did Atlas say "/me shrugs in disgust"?</body>
|
||||||
]]></example>
|
]]></example>
|
||||||
</section1>
|
</section1>
|
||||||
|
|
||||||
|
<section1 topic='Integration With XHTML-IM' anchor='xhtml'>
|
||||||
|
<p>&xep0071; describes a method for lightweight formatting of a message body using a subset of XHTML. For example, the stanza shown above might be formatted in the color green, as follows.</p>
|
||||||
|
<example caption="XMPP Stanza With XHTML-IM"><![CDATA[
|
||||||
|
<message from='olympians@chat.gods.lit/Atlas'
|
||||||
|
to='olympians@chat.gods.lit'
|
||||||
|
type='groupchat'>
|
||||||
|
<body>/me shrugs in disgust</body>
|
||||||
|
<html xmlns='http://jabber.org/protocol/xhtml-im'>
|
||||||
|
<body xmlns='http://www.w3.org/1999/xhtml'>
|
||||||
|
<p style='color:green'>/me shrugs in disgust</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</message>
|
||||||
|
]]></example>
|
||||||
|
<p>The XHTML-formatted version of the message MUST NOT modify the "/me " command string (e.g., in this case to something like "* Atlas shrugs in disgust") because the recipient might have a different user name, nickname, or handle on file for the sender.</p>
|
||||||
|
</section1>
|
||||||
|
|
||||||
<section1 topic='Accessibility Considerations' anchor='access'>
|
<section1 topic='Accessibility Considerations' anchor='access'>
|
||||||
<p>This specification describes the /me command in terms of visual presentation. A client that presents messages aurally MAY modify its presentation of /me commands and SHOULD at a minimum transform the string "/me " into the user name, nickname, or handle of the sender.</p>
|
<p>This specification describes the /me command in terms of visual presentation. A receiving client that presents messages aurally MAY modify its presentation of /me commands and SHOULD at a minimum transform the string "/me " into the user name, nickname, or handle of the sender.</p>
|
||||||
</section1>
|
</section1>
|
||||||
|
|
||||||
<section1 topic='Security Considerations' anchor='security'>
|
<section1 topic='Security Considerations' anchor='security'>
|
||||||
<p>There are no security concerns related to use of the /me command.</p>
|
<p>&xep0045; rooms send XMPP presence stanzas when people leave and join the room, and receiving clients typically show these presence changes as the equivalent of in-room messages, such as the following transformation of a presence stanza of type unavailable:</p>
|
||||||
|
<example caption="Presentation of In-Room Presence Notification">
|
||||||
|
<span style='margin-left: 5%; font-style: italic; color: green;'>*** Atlas has left the room</span>
|
||||||
|
</example>
|
||||||
|
<p>A sender could attempt to spoof such a leave message by sending an XMPP groupchat message stanza whose body text is "/me has left the room". Although the presentation of presence joins and leaves is determined by the receiving client and therefore such a notification cannot be universally spoofed for all receivers, a client SHOULD differentiate between presence notifications and /me commands (e.g., with different colors and different prepended characters, such as several asterisks for presence notifications and one asterisk for /me commands).</p>
|
||||||
</section1>
|
</section1>
|
||||||
|
|
||||||
<section1 topic='IANA Considerations' anchor='iana'>
|
<section1 topic='IANA Considerations' anchor='iana'>
|
||||||
<p>This document requires no interaction with &IANA;.</p>
|
<p>This document requires no interaction with &IANA;.</p>
|
||||||
</section1>
|
</section1>
|
||||||
|
|
||||||
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
||||||
<p>This document requires no interaction with the ®ISTRAR;.</p>
|
<p>This document requires no interaction with the ®ISTRAR;.</p>
|
||||||
</section1>
|
</section1>
|
||||||
|
|
||||||
</xep>
|
</xep>
|
||||||
|
Loading…
Reference in New Issue
Block a user