commit d6699e958cb0af69e56d2a205cbb58a318d9dd4d
parent 72314100cacaac338087c8136806898899186cc2
Author: Nick Econopouly <wry@mm.st>
Date: Thu, 25 Feb 2021 11:29:51 -0500
wiki: add group conference calls and dhtproxy to technical overview
Diffstat:
1 file changed, 56 insertions(+), 9 deletions(-)
diff --git a/general/technical-overview.txt b/general/technical-overview.txt
@@ -206,7 +206,8 @@ Swarms
Swarms are a new generation of group conversations.
`Here is the January 2021 announcement
-<https://jami.net/swarm-introducing-a-new-generation-of-group-conversations/>`_ about the feature.
+<https://jami.net/swarm-introducing-a-new-generation-of-group-conversations/>`_
+about the feature.
The design is still changing frequently, so we will defer to the
`Technical Reference <../technical/basic-features/swarm.html>`_ for a
@@ -225,24 +226,70 @@ a few other things like :ref:`contacts not seeing avatars
Group conference calls
----------------------
-Optional servers: DHT proxy, TURN, STUN
-----------------------------------------
+Jami manages audio and video conferences between more than two
+participants by treating the host as an ad-hoc server. The meeting
+host receives video and audio feeds from every participant, remixes
+them into a single stream, and sends the final version back to every
+participant.
+
+At any time, a Jami account can be a **rendezvous point**, which
+allows people to call in and join the group conference whenever the
+account is online. It also adds the ability to set default moderators.
+This feature can be enabled and disabled in the account settings for
+any Jami account.
+
+TODO: this section needs better explanation
+
+Optional servers
+----------------
+
+In most circumstances, all of the core features work without any sort
+of central server. However, there are some optional servers in the
+Jami ecosystem which help with things like reliability and efficiency.
+
+All of these servers are **completely optional**, they are Free/Libre
+software, and users may choose to host their own, change the default
+ones, or not use them at all.
DHT proxy and push notifications
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+OpenDHT provides a HTTP API that allows users to indirectly talk with
+the DHT. This is called a DHT proxy because all ``get``, ``put``, and
+``listen`` operations are relayed through the node instead of the rest
+of the DHT.
+
+The purpose of this feature is to enable push notifications and reduce
+energy consumption on mobile phones.
+
+Instead of leaving the Jami daemon to crawl and monitor the DHT in the
+background, devices can ask the DHT proxy to watch the DHT and notify
+them through the official iOS and Android push services when new values appear.
+
+A DHT proxy sends a wake up event through the device vendor's push
+provider when it notices new values at the subscribed DHT
+locations. Then the daemon on the iOS or Android device wakes up and
+downloads the values directly from the DHTproxy.
+
+Message contents, recipients, and other metadata are never sent
+through Google or Apple servers during this process, only wakeup
+events.
+
+For more information about this feature, see `OpenDHT's documentation
+<https://github.com/savoirfairelinux/opendht/wiki/Push-notifications-support>`_.
+
+If you want to host your own DHT proxy, see our :doc:`guide
+<../guides/how-to-set-up-a-dhtproxy-or-bootstrap-server>`.
+
TURN and STUN
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Name servers and ns.jami.net
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
DHT bootstrap servers
--------------------------
-Name servers
---------------------------------------
-
-ns.jami.net
-~~~~~~~~~~~~~~~~~~~~
-
JAMS: Managed Jami networks for organizations
-------------------------------------------------