50f03c90e1
We have bedroom, bathroom, classroom and boardroom as one word. Living room is spelled separately because of the present participle (+ing) in living. With "chatbox" it's a bit more subjective. We have chatbot as one word (but litter box as two). For consistency with chatroom, I'll go with one word.
111 lines
7.3 KiB
ReStructuredText
111 lines
7.3 KiB
ReStructuredText
.. raw:: html
|
|
|
|
<div id="banner"><a href="https://github.com/jcbrand/converse.js/blob/master/docs/source/features.rst">Edit me on GitHub</a></div>
|
|
|
|
========
|
|
Features
|
|
========
|
|
|
|
Open chats via URL
|
|
==================
|
|
|
|
From version 3.3.0, converse.js now has the ability to open chats (private or
|
|
groupchat) based on the URL fragment.
|
|
|
|
A room (aka groupchat) can be opened with a URL fragment such as `#converse/room?jid=room@domain`
|
|
and a private chat with a URL fragment such as
|
|
`#converse/chat?jid=user@domain`.
|
|
|
|
Off-the-record encryption
|
|
=========================
|
|
|
|
Converse.js supports `Off-the-record (OTR) <https://otr.cypherpunks.ca/>`_
|
|
encrypted messaging.
|
|
|
|
The OTR protocol not only **encrypts your messages**, it provides ways to
|
|
**verify the identity** of the person you are talking to,
|
|
**plausible deniability** and **perfect forward secrecy** by generating
|
|
new encryption keys for each conversation.
|
|
|
|
In its current state, JavaScript cryptography is fraught with dangers and
|
|
challenges that make it impossible to reach the same standard of security that
|
|
is available with native "desktop" software.
|
|
|
|
This is due to its runtime malleability, the way it is "installed" (e.g.
|
|
served) and the browser's lack of cryptographic primitives needed to implement
|
|
secure crypto.
|
|
|
|
For harsh but fairly valid criticism of JavaScript cryptography, read:
|
|
`JavaScript Cryptography Considered Harmful <http://www.matasano.com/articles/javascript-cryptography/>`_.
|
|
|
|
To get an idea on how this applies to OTR support in Converse.js, please read
|
|
`my thoughts on it <https://opkode.com/media/blog/2013/11/11/conversejs-otr-support>`_.
|
|
|
|
For now, suffice to say that although its useful to have OTR support in
|
|
Converse.js in order to avoid most eavesdroppers, if you need serious
|
|
communications privacy, then you're much better off using native software.
|
|
|
|
Notifications
|
|
=============
|
|
|
|
From version 0.8.1 Converse.js can play a sound notification when you receive a
|
|
message.
|
|
|
|
For more info, refer to the :ref:`play-sounds` configuration setting.
|
|
|
|
It can also show `desktop notification messages <https://developer.mozilla.org/en-US/docs/Web/API/notification>`_
|
|
when the browser is not currently visible.
|
|
|
|
For more info, refer to the :ref:`show-desktop-notifications` configuration setting.
|
|
|
|
Multilingual Support
|
|
====================
|
|
|
|
Converse.js is translated into multiple languages. The default build,
|
|
``converse.min.js``, includes all languages.
|
|
|
|
Languages increase the size of the Converse.js significantly.
|
|
|
|
If you only need one, or a subset of the available languages, it's better to
|
|
make a custom build which includes only those languages that you need.
|
|
|
|
Moderating chatrooms
|
|
====================
|
|
|
|
Here are the different commands that may be used to moderate a chatroom:
|
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| Event Type | When is it triggered? | Example (substitue $nickname with an actual user's nickname) |
|
|
+============+==============================================================================================+===============================================================+
|
|
| **ban** | Ban a user from the chatroom. They will not be able to join again. | /ban $nickname |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **clear** | Clear the messages shown in the chatroom. | /clear |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **deop** | Make a moderator a normal occupant. | /deop $nickname [$reason] |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **help** | Show the list of available commands. | /help |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **kick** | Kick a user out of a room. They will be able to join again. | /kick $nickname [$reason] |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **me** | Speak in the 3rd person. | /me $message |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **mute** | Remove a user's ability to post messages to the room. They will still be able to observe. | /mute $nickname [$reason] |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **nick** | Change your nickname. | /nick $nickname |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **op** | Make a normal occupant a moderator. | /op $nickname [$reason] |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **topic** | Set the topic of the chatroom. | /topic ${topic text} |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
| **voice** | Allow a muted user to post messages to the room. | /voice $nickname [$reason] |
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
|
|
Passwordless login with client certificates
|
|
===========================================
|
|
|
|
Converse.js supports the SASL-EXTERNAL authentication mechanism, which can be
|
|
used together with x509 client certificates to enable passwordless login or
|
|
even 2-factor authentication.
|
|
|
|
For more info, `read this blog post <https://opkode.com/blog/strophe_converse_sasl_external/>`_.
|