diff --git a/user/faq.md b/user/faq.md index 3683b5b7127a297db4c5742a0cab3401eec0d4c2..f529c2a848a0512e5c9569399bb41e807fb0a004 100644 --- a/user/faq.md +++ b/user/faq.md @@ -36,35 +36,35 @@ Jami does not work like most communication platforms because it is *distributed*  Some of the consequences may seem surprising. -For instance, since accounts are stored on your device, passwords are optional. -However, the most significant practical differences are that you have more *freedom* and *privacy*. +For instance, since accounts are stored on the user's device, passwords are optional. +However, the most significant practical differences are that the user havs more *freedom* and *privacy*. <!-- TODO: Expand this --> ### What do the green/orange/red status circles next to profile pictures mean? -On your own account, 🔴 (a red circle) displayed means that the device is not connected to the DHT or is offline. +On a user's account, 🔴 (a red circle) displayed means that the device is not connected to the DHT or is offline. A detailed error should be displayed explaining the issue. Checking the network/Internet connection or restarting the app may resolve the issue. For contacts: * no circle displayed means that no device is detected on the DHT. The contact is unreachable. * 🟠 (an orange circle) displayed means that at least a device is announced on the DHT, so the contact SEEMS to be reachable. - You do not have a direct connection towards this peer yet. + The device does not have a direct connection towards this peer yet. But they should be able to receive connection requests. Because the device is not directly connected to anything, the device status is unable to be determine for sure. So this can be translated to "Seems to be reachable", but connection may fail (firewall, deadlock, NAT, etc). The presence generally have a [TTL](https://en.wikipedia.org/wiki/Time_to_live) of: * 10 minutes over the DHT, and * several hours if [push notifications](https://en.wikipedia.org/wiki/Push_technology#Push_notification) are enabled. -* 🟢 (a green circle) displayed means that you're connected to a device of this peer. +* 🟢 (a green circle) displayed means that the device is connected to a device of this peer. ### Why is a feature missing on my client? Not every client implements all features. -Check the [All features by client](all-features-by-client.md) list to see if your client is missing the feature. +Check the [All features by client](all-features-by-client.md) list to see if the client is missing the feature. Feature requests can be made at <https://git.jami.net>. @@ -107,18 +107,18 @@ With the implementation of Swarm Technology, conversation histories of new conve Please upgrade all old versions of Jami to the latest version that includes Swarm Technology. The latest version of Jami is always available from the Download page of the Jami website, at <https://jami.net/download/>. -To learn more about Swarm Technology, you can read our blog post [Synchronizing conversation history with Swarm](https://jami.net/synchronizing-conversation-history-with-swarm/) -and see the [Developer manual](/developer/index). +To learn more about Swarm Technology, visit the blog post [Synchronizing conversation history with Swarm](https://jami.net/synchronizing-conversation-history-with-swarm/) +and visit the [Developer manual](/developer/index). ### Can I message offline contacts? -With Swarm Technology conversations, every device stores all a copy of all of the messages in that conversation. -If a device (whether your own, or another participant) is unavailable/offline when a message is sent, when it comes back online it will try to fetch any new messages from other online devices/peers and synchronize message history. -This can be done whenever at least one other device that has a copy of the new messages is also online. +With Swarm Technology conversations, every device stores a copy of all of the messages in that conversation. +If a user's, or another participant's, device is unreachable when a message is sent, when it becomes reachable, it will try to fetch any new messages from other reachable devices and synchronize message history. +This can be done whenever at least one other device that has a copy of the new messages is also reachable. -```{note} -You can read more about how conversations using Swarm Technology are synchronized in our blog post +```{seealso} +To read more about how conversations using Swarm Technology are synchronized, visit the blog post [Synchronizing conversation history with Swarm](https://jami.net/synchronizing-conversation-history-with-swarm/). ``` @@ -153,19 +153,17 @@ Jami saves its configuration (account, certificates, history) at different locat Audio and video messages are recorded in the local-data in the folder: `sent_data` ``` -For files, if a file is saved (right click on the file, then Save) it -will be added to the directory you configured in the application -settings. +For files, if a file is saved (right-click on the file, then Save), it will be added to the directory configured in the application settings. ### How much bandwidth do I need for calls? For audio calls, Jami uses about 100 Kbps. -For a video call, you need about 2 Mbit/s for medium quality. -If your connection is slower, the bitrate will be automatically reduced. +For a video call, about 2 Mbit/s is required for medium quality. +If the connection is slower, the bitrate will be automatically reduced. -If you are hosting a video conference, you will approximately need an additional 2 Mbps per participant. -So, for example for a conference with 10 participants, each participant will need 2 Mbps up and down and the host will need 20 Mbps up and down. +If a device is hosting a video conference, approximately an additional 2 Mbps per participant is required. +So, for example, for a conference with 10 participants, each participant will need 2 Mbps up and down, and the host will need 20 Mbps up and down. Jami also uses an algorithm to change the consumption depending of the quality of the link. So, the bitrate can have a minimum of 200 Kbit/s and maximum of 6 Mbit/s. @@ -196,12 +194,12 @@ Jami recurring expenses: ### What is a Jami account? A Jami account is an [asymmetric encryption key](https://en.wikipedia.org/wiki/Public-key_cryptography). -Your account is identified by a Jami ID, which is a [fingerprint](https://en.wikipedia.org/wiki/Public_key_fingerprint) of your public key. +The Jami account is identified by a Jami ID, which is a [fingerprint](https://en.wikipedia.org/wiki/Public_key_fingerprint) of the public key. ### What information do I need to provide to create a Jami account? -When a new Jami account is created, private information like an email, address, or phone number is not required. +When a new Jami account is created, private information like an email address, address, or phone number is not required. The following information can be provided: 1. A profile picture (optional). @@ -211,11 +209,12 @@ The following information can be provided: This username→Jami ID mapping is stored on a server (`ns.jami.net` by default, but you can host your own). 4. A password (optional). - This password is used to protect the account archive in your device. + This password is used to protect the account archive in the device. +```{seealso} More information about Jami accounts is available in the [Account management](/developer/jami-concepts/account-management.md) section of the Developer manual. - +``` ### Where is my Jami ID? @@ -243,7 +242,7 @@ Changing a password will only change the password on the current device and it's ### Why don't I have to register a username? -The most permanent, secure identifier is your Jami ID. +The most permanent, secure identifier is the Jami ID. However, these are difficult to use for some people, there is also an the option of registering a username. Username registration requires a name server, such as Jami's default one at `ns.jami.net`. @@ -259,12 +258,12 @@ Usernames are unable to be changed on the default name server (`ns.jami.net`). ### What is the difference between a username and a display name? -You can use your username as an identifier. -The username points to your Jami ID, which is your permanent, secure identifier. -Two people cannot have the same username. +The username can be used as an identifier. +The username points to the Jami ID, which is the permanent, secure identifier. +Usernames are unique on the name server. -A display name allows you to choose another name that identifies you to your contacts. -Display names can be edited or changed at any time and only your contacts can see them. +A display name allows you to choose another name that identifies a Jami account to contacts. +Display names can be edited or changed at any time and only trusted peers can see them. ### How can I back up my account? @@ -281,47 +280,52 @@ There are two ways to back up an account: ### Can I retrieve my username without my keys? -If you used the default name server at `ns.jami.net`, **you can not**. -There is no way to prove it's your username without your key. +If the default name server at `ns.jami.net` stores a username, the username **cannot** be retrieved without the key. +There is no way to prove a username without the key. -If you use a different name server, there may be a way to move a username to a new Jami ID at the discretion of the administrator of that name server. +If a different name server was used to store a username, there may be a way to move the username to a new Jami ID at the discretion of the administrator of the name server. +```{seealso} More information about name servers is available in the [Name Server protocol](/developer/jami-concepts/name-server-protocol.md) section of the Developer manual. - +``` ### Can I recover my account if I forget my password? No. There is no traditional account recovery process; -you are the only person with access to your data. -If you are worried about forgetting your password, please use a password manager. +the user is the only person with access to the user's data. +```{{tip}} +Use a password manager if there is a concern about forgetting the Jami account password. +``` ### What happens when I delete my account? -Your account is only stored on your own devices. -If you delete your account from each device, the account is gone and you cannot get it back (unless you already made a backup of it earlier). -Nobody else can use your account after that. +The Jami account is only stored on devices which have the Jami account. + +The Jami account is gone and is unable to be restored if: +* there is no backup of the Jami account, and +* the Jami account is deleted from all devices. -Your contacts will still have the messages you sent them, but all -public record of your account on the DHT will eventually disappear -due to absence and lack of activity. +Furthermore, nobody else can use the Jami account. -> [!WARNING] -> -> The default `ns.jami.net` name server **does not** delete any registered usernames -- other name servers might (not recommended), at their administrator's discretion. -> So, if you have an account with a username registered on the default name server and you delete or lose your account, and did not back up your account earlier, nobody (including you) will be able to register a new account with that username again, thus nobody can reach you at that username anymore. -> -> To avoid losing your account **please** :ref:`back it up <user/faq:How can I back up my account?>`! +The contacts will still have the messages which were sent to them, but all public record of the account on the DHT will eventually disappear due to absence and lack of activity. + +```{warning} +The default `ns.jami.net` name server **does not** delete any registered usernames -- other name servers might (not recommended), at their administrator's discretion. +So, if an account has a registered username on the default name server and the account is deleted or lost (without a backup), nobody (including the user) will be able to register a new account with that username again; thus, nobody can reach the user at that username anymore. + +To avoid losing an account **please** {ref}`back it up <user/faq#how-can-i-back-up-my-account>`! +``` ### What happens when I link a new device? -When you link a device to your account, your :ref:`account archive <developer/technical-overview:Jami archive (export.gz)>` is put on the Jami network for a few minutes. -It is protected with a password Jami gives you. +When a device is linked to an account, the Jami account archive is put on the Jami network for a few minutes. +The Jami account is protected with a password Jami provides. -The new device receives your full account certificate with the master RSA keys, but it generates a new device key for signing/encrypting messages. +The new device receives the full account certificate with the master RSA keys, and it generates a new device key for signing/encrypting messages. ## Advanced @@ -354,7 +358,7 @@ Many users use Jami to transfer data from one machine to another. Push notifications allow Jami to operate in a way more adapted to the context of mobility (energy consumption, data, …). However, for the moment, notifications go through Google's servers, via the Firebase service. -Only one identifier is transferred and it is unusable for anyone who does not have access to your account. +Only one identifier is transferred and it is unusable for anyone who does not have access to the account. ### What is a bootstrap server? @@ -369,18 +373,18 @@ The default one in Jami is `bootstrap.jami.net`. A TURN server is a relay, and is generally used when two peers are unable to contact to each other due to some firewall restriction, have NAT without any opened port, and no IPv6. -A STUN server is only used for SIP accounts, and is generally used to get your public IP. -For Jami accounts, the DHT already gives this information. +A STUN server is only used for SIP accounts, and is generally used to obtain the device public IP address. +For Jami accounts, the DHT already provides the device public IP address. ### What is DHT proxy? -The DHT proxy is a server that registers on the DHT for you and relays your information to you. +The DHT proxy is a server that registers on the DHT on behalf of the device and relays information to and from the device. Thus, it is the server that will be active on the DHT and will participate in the network, and no longer the target device. Multiple devices can register on the same DHT proxy. Generally, to transfer data between two peers, there are 3 steps: -1. Exchange candidates (IPs) via the DHT +1. Exchange candidates (IP addresses) via the DHT 2. Negotiate the best [P2P](https://en.wikipedia.org/wiki/Peer-to-peer) channel between the peers 3. Transfer data on this socket. @@ -407,8 +411,8 @@ If it does not solve the issues, please open a bug report (ideally with a scenar ### How does the username registration service work? With the default name server (`ns.jami.net`), the usernames are registered on an Ethereum blockchain. -If you are a developer, you can build your own name server with the underlying data storage technology of your choice -(e.g. you could use a SQL database rather than using a blockchain). +It is possible to develop a name server with any underlying data storage technology. +For example, an SQL database could be used instead of a blockchain for the data storage technology. With the default name server, look up usernames with `https://ns.jami.net/name/test`, where `test` is a username for which we are looking for a matching [Infohash](/developer/jami-concepts/jami-identifiers.md). @@ -421,24 +425,30 @@ More information about name servers is available in the ### How can I change the timeout for a call? -In the `dring.yml` file (see :ref:`user/faq:Where are the -configuration files located?`), you can change the `ringingTimeout` -(in seconds). +In the `dring.yml` file (see {ref}`user/faq:Where are the +configuration files located?`), the `ringingTimeout` value, measured in seconds, can be changed. + ### How to back up and reimport conversations and accounts ```{note} -This is only for Desktop clients. +This is only applicable for Desktop clients. +Desktop clients run on GNU/Linux, macOS, and Windows operating systems. ``` -First you will need to export all your accounts -(For GNU/Linux: `Settings` → `Account` → `Export account`). -Then you will need to copy the database (in `~/.local/share/jami/` for example). +1. Export each accounts. + (For GNU/Linux: `Open settings` → `Account` → `Manage account` → `Backup account`). + +2. Copy and save the database (in `~/.local/share/jami/` for example). + +3. On the new device, to import the settings and contacts with empty conversations: + 1. if Jami is opened for the first time, import the archive backup. + `I already have an account` → `Import from an archive backup`. + 2. if Jami already has an account, import each archive backup. + `Add another account` → `I already have an account` → `Import from an archive backup`. + +4. Close Jami and replace the database with the database previously saved. -Then on the new device, when you will open Jami for the first time, you have to re-import your accounts via the archive previously saved. -This will re-import your settings and contacts (with empty conversations). -Then close the client and replace the database with the one previously saved. -That's all! ### How secure are you? @@ -547,7 +557,7 @@ Same as above, the ICE contains: Same as above, your public address is replaced by your VPN address. You can see it in the logs from daemon. -See :ref:`user/bug-report-guide:logs`. +See {ref}`user/bug-report-guide:logs`. #### (3) Tor @@ -663,8 +673,7 @@ or: } ``` -This file is :ref:`located in the same directory <user/faq:Where are -the configuration files located?>` as `dring.yml`. +This file is {ref}`located in the same directory <user/faq#where-are-the-configuration-files-located>` as `dring.yml`. To check which options are supported, use the command `ffmpeg -h encoder=[encoder_name]`, where `encoder_name` can be any of `libx264`, `libvpx`, `mpeg4`, `h263`, `libopus`, `libspeex`, `g722`, `pcm_alaw`, or `pcm_mulaw` (the FFmpeg names for all of Jami's supported encoders). @@ -675,7 +684,7 @@ An audio processor allows Jami to clean up and process your microphone's audio. It can remove echo, reduce noise, and equalize your microphone's volume. Additionally, it can detect when you're speaking and send this information to participants in your call. The audio processor settings can be set in your `dring.yml` file. -See :ref:`this section to find where this file is located <config-file-location>`. +See {ref}`this section to find where this file is located <config-file-location>`. The relevant preference keys are: