features.rst 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. .. raw:: html
  2. <div id="banner"><a href="https://github.com/jcbrand/converse.js/blob/master/docs/source/features.rst">Edit me on GitHub</a></div>
  3. ========
  4. Features
  5. ========
  6. .. contents:: Table of Contents
  7. :depth: 2
  8. :local:
  9. Off-the-record encryption
  10. =========================
  11. Converse.js supports `Off-the-record (OTR) <https://otr.cypherpunks.ca/>`_
  12. encrypted messaging.
  13. The OTR protocol not only **encrypts your messages**, it provides ways to
  14. **verify the identity** of the person you are talking to,
  15. **plausible deniability** and **perfect forward secrecy** by generating
  16. new encryption keys for each conversation.
  17. In its current state, Javascript cryptography is fraught with dangers and
  18. challenges that make it impossible to reach the same standard of security that
  19. is available with native "desktop" software.
  20. This is due to its runtime malleability, the way it is "installed" (e.g.
  21. served) and the browser's lack of cryptographic primitives needed to implement
  22. secure crypto.
  23. For harsh but fairly valid criticism of Javascript cryptography, read:
  24. `Javascript Cryptography Considered Harmful <http://www.matasano.com/articles/javascript-cryptography/>`_.
  25. To get an idea on how this applies to OTR support in Converse.js, please read
  26. `my thoughts on it <https://opkode.com/media/blog/2013/11/11/conversejs-otr-support>`_.
  27. For now, suffice to say that although its useful to have OTR support in
  28. Converse.js in order to avoid most eavesdroppers, if you need serious
  29. communications privacy, then you're much better off using native software.
  30. Sound Notifications
  31. ===================
  32. From version 0.8.1 Converse.js can play a sound notification when you receive a
  33. message.
  34. For more info, please see the :ref:`play-sounds` configuration setting.
  35. Multilingual Support
  36. ====================
  37. Converse.js is translated into multiple languages. The default build,
  38. ``converse.min.js``, includes all languages.
  39. Languages increase the size of the Converse.js significantly.
  40. If you only need one, or a subset of the available languages, it's better to
  41. make a custom build which includes only those languages that you need.
  42. Chat Rooms
  43. ==========
  44. Commands
  45. --------
  46. Here are the different commands that may be used in a chat room:
  47. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  48. | Event Type | When is it triggered? | Example (substitue $nickname with an actual user's nickname) |
  49. +============+==============================================================================================+===============================================================+
  50. | **ban** | Ban a user from the chat room. They will not be able to join again. | /ban $nickname |
  51. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  52. | **clear** | Clear the messages shown in the chat room. | /clear |
  53. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  54. | **deop** | Make a moderator a normal participant. | /deop $nickname [$reason] |
  55. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  56. | **help** | Show the list of available commands. | /help |
  57. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  58. | **kick** | Kick a user out of a room. They will be able to join again. | /kick $nickname [$reason] |
  59. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  60. | **me** | Speak in the 3rd person. | /me $message |
  61. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  62. | **mute** | Remove a user's ability to post messages to the room. They will still be able to observe. | /mute $nickname [$reason] |
  63. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  64. | **nick** | Change your nickname. | /nick $nickname |
  65. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  66. | **op** | Make a normal participant a moderator. | /op $nickname [$reason] |
  67. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  68. | **topic** | Set the topic of the chat room. | /topic ${topic text} |
  69. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+
  70. | **voice** | Allow a muted user to post messages to the room. | /voice $nickname [$reason] |
  71. +------------+----------------------------------------------------------------------------------------------+---------------------------------------------------------------+