2015-05-02 01:21:25 +02:00
|
|
|
.. 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>
|
|
|
|
|
2014-12-07 00:53:17 +01:00
|
|
|
========
|
|
|
|
Features
|
|
|
|
========
|
|
|
|
|
2017-10-31 23:04:46 +01:00
|
|
|
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`.
|
|
|
|
|
2018-10-18 08:08:44 +02:00
|
|
|
XEP-0384 OMEMO Encryption
|
2014-12-07 00:53:17 +01:00
|
|
|
=========================
|
|
|
|
|
2018-10-18 08:08:44 +02:00
|
|
|
Converse supports OMEMO encryption based on the
|
|
|
|
`Signal Protocol <https://github.com/signalapp/libsignal-protocol-javascript>`_.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2018-10-18 08:08:44 +02:00
|
|
|
The Signal Protocol is session-oriented. Clients establish a session, which is
|
|
|
|
then used for all subsequent encrypt/decrypt operations. There is no need to
|
|
|
|
ever tear down a session once one has been established.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2018-10-18 08:08:44 +02:00
|
|
|
This means that a session needs to be stored permanently after logging out.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2018-10-18 08:08:44 +02:00
|
|
|
Converse stores this session information in the browser's `localStorage <https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage>`_.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2018-10-18 08:08:44 +02:00
|
|
|
If you've checked the "This is not a trusted device" checkbox when logging in,
|
|
|
|
then `sessionStorage <https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage>`_
|
|
|
|
is used instead of localStorage and all data is cleared when you log out.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2018-10-18 08:08:44 +02:00
|
|
|
For this reason, OMEMO cannot be used when you've indicated that you're using
|
|
|
|
an untrusted device. You would in any case not be able to decrypt previously
|
|
|
|
received OMEMO messages, due to the Signal Protocol's forward secrecy and the
|
|
|
|
fact that you don't have a pre-existing session.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
|
|
|
|
2016-03-01 10:43:44 +01:00
|
|
|
Notifications
|
|
|
|
=============
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2018-06-01 09:17:18 +02:00
|
|
|
From version 0.8.1 Converse can play a sound notification when you receive a
|
2014-12-07 00:53:17 +01:00
|
|
|
message.
|
|
|
|
|
2016-03-01 10:43:44 +01:00
|
|
|
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.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
|
|
|
Multilingual Support
|
|
|
|
====================
|
|
|
|
|
2018-06-01 09:17:18 +02:00
|
|
|
Converse is translated into multiple languages. Translations are supplied in
|
|
|
|
JSON format and are loaded on demand. Converse will expect to find the
|
|
|
|
translations in the ``/locales`` path of your site. This can be changed via the
|
|
|
|
:ref:`locales-url` configuration setting.
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2018-02-09 11:55:53 +01:00
|
|
|
Moderating chatrooms
|
|
|
|
====================
|
2014-12-07 00:53:17 +01:00
|
|
|
|
2018-02-09 11:55:53 +01:00
|
|
|
Here are the different commands that may be used to moderate a chatroom:
|
2014-12-07 00:53:17 +01:00
|
|
|
|
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
|
|
| Event Type | When is it triggered? | Example (substitue $nickname with an actual user's nickname) |
|
|
|
|
+============+==============================================================================================+===============================================================+
|
2018-02-09 11:55:53 +01:00
|
|
|
| **ban** | Ban a user from the chatroom. They will not be able to join again. | /ban $nickname |
|
2014-12-07 00:53:17 +01:00
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
2018-02-09 11:55:53 +01:00
|
|
|
| **clear** | Clear the messages shown in the chatroom. | /clear |
|
2014-12-07 00:53:17 +01:00
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
2015-11-05 12:30:31 +01:00
|
|
|
| **deop** | Make a moderator a normal occupant. | /deop $nickname [$reason] |
|
2014-12-07 00:53:17 +01:00
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
|
|
| **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 |
|
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
2015-11-05 12:30:31 +01:00
|
|
|
| **op** | Make a normal occupant a moderator. | /op $nickname [$reason] |
|
2014-12-07 00:53:17 +01:00
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
2018-02-09 11:55:53 +01:00
|
|
|
| **topic** | Set the topic of the chatroom. | /topic ${topic text} |
|
2014-12-07 00:53:17 +01:00
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
|
|
|
| **voice** | Allow a muted user to post messages to the room. | /voice $nickname [$reason] |
|
|
|
|
+------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
|
2016-11-03 15:38:29 +01:00
|
|
|
|
|
|
|
Passwordless login with client certificates
|
|
|
|
===========================================
|
|
|
|
|
2018-06-01 09:17:18 +02:00
|
|
|
Converse supports the SASL-EXTERNAL authentication mechanism, which can be
|
2016-11-03 15:38:29 +01:00
|
|
|
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/>`_.
|