jami-docs/tutorials/Frequently-Asked-Questions.md

15 KiB

Jami FAQ

Basics

Account management

Audio / video

Advanced

This page aims to gather as many resources as possible (technical or not) and condense them to create concise documentation. Then, this can then be integrated into a tutorial or a help page on the website or in the clients.

Resources :

Basics

What is Jami?

Jami is an innovative communication system. It doesn't work like other solutions since its designed to protect user's freedom.

The Jami network is distributed, hence, you may be invited to perform some actions that are considered bad practices on centralized or decentralized systems, but that are totally acceptable with Jami.

  • Jami is fundamentally different from other communication tools
  • Jami protects the privacy of its users
  • A Jami account is stored on the device, it must be saved

It misses a feature!

Not all features are implemented in all clients yet. Check list at: https://git.jami.net/savoirfairelinux/ring-project/wikis/features/All-features-by-client Contributions to this document are greatly appreciated!

If you can't wait to have this feature, you can try another client.

Jami just crashed / have a bug. What can I do?

There's a orange / red exclamation side by my avatar. What does it mean?

It's because your account is not connected to the DHT. Verify your internet connection or try to relaunch the application. If you use the push notifications, try to disable this option (and re-enable it).

Account management

What is a Jami account?

Jami is not like a lot of communication software. It's not based on any central server and your account is only stored on your device. When you want to use Jami with your account, you don't have to use a classical login/password authentification.

When you create a new Jami account, you don't have to provide private informations like a mail or a phone number. But this is the informations you can provide (all optionals):

  1. An avatar
  2. A display name, it's the name client will display on your contact entry with the avatar. It can contains special character.
  3. A username, this is a unique identifier and can be the direct translation of your JamiID. This identifier is stored on a server (ns.jami.net by default). Cf https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Name-Server-Protocol for more details on how you can use your own name server.
  4. A password. This password is used to protect the account archive in your device.

So, after this step, the client will generate an archive (protected by the password you gave). This archive will contains your account's keys. And a JamiID is now created (a 40 chars length string. Technically, this ID is the fingerprint of your public key. And that's it, you have a Jami account.

No password?

With Jami, you are not forced to have a password on your account. Don't worry, it's a decentralized system, consequences are not the same than on other systems.

With a centralized system, you use your password to authenticate on a public server. Someone who knows your password can usurp your identity.

With Jami, your account is stored in a folder on your device. The password is only used to protect you from someone who have a physical access to your device by encrypting the account's archive (and don't let anyone access your private key)

If your device is encrypted, you may not want/need to use a password.

No username?

For a while, Jami had no username management system. Instead, we had to use Infohashs. They are quite difficult to use for most people (ie : 3d1112ab2bb089370c0744a44bbbb0786418d40b). To mitigate the issue, we created a system that associate your Infohashs to a username of your choice that will be much more easier to remember. We recommand you to create a username: Jami will be friendlier.

The technology we used to associate a username to a Infohashs, Ethereum blockchain, is also distributed, but it doesn't allow to modify or delete the association between a username and a InfoHash.

You can still create an account without a username if you wish. Please note that if you choose this option, it is still possible to register a username later.

How can I back-up my account?

There is two ways to back-up your account:

  1. Link another device to your account, so your account will be in two devices. You can find this option in the account's settings page.
  2. Copy the account's archive on a USB flashdrive or any another place. This file can be found in the paths given in the previous question. In the linux client, you can export this archive from the client in the account's settings page.

See https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Ring-configuration-path

The content of the export.gz is explained here: https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/2.1.-Manage-Accounts#how-it-works-from-scratch

How can I retrieve my username without my keys?

It depends. If you used ns.jami.net, you can't. There is no way to prove it's your username without your key (and there is no way to change your current username). If it's another name server, it depends if it's possible to change the username linked. See this page for more details: https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Name-Server-Protocol

I forgot my password, what can I do?

Nothing. Because we don't have access to your datas, we can't have an option like "I forget my password". You are the only one in charge of your datas, so take care. If you are scared to forget a password, please use a password manager.

When you choose to "link your device with another account", you have to enter the password of your account on your first device and a PIN. This PIN is generated by the first device, when you click on "Link this account to another device" (Generally in Settings -> Accounts -> Choose your account -> Link this account to another device), the account will be sent on the DHT during 5 minutes and a PIN is generated at this moment. This is the PIN you need to enter on the other device.

How to delete my account?

Accounts without Infohash

A Jami account only exists on linked devices with this account. So, you only have to delete this account in app on all these devices and your account will not exists anymore. Or to uninstall Jami. If you delete the account's archive, your account will no longer exists. If you uninstall Jami, your data will be deleted too. And nobody will be able to retrieve your account. Never ever.

  • GNU/Linux

In the settings page, go to Accounts, choose your account and click on the Delete button in the GUI. Another way is to remove configuration files

  • Android

In the hamburger menu, choose Manage accounts, choose the account to delete and click on the trash icon.

Note for accounts with a username

The technology that handle usernames is also distributed. So, it depends the nameservice you choose to make the translation between a nickname and your Jami ID. By default, a username is registered on ns.jami.net where you can't modify the Jami ID associated to this username. So, if you delete or if you lost your account you will not be able to retrieve this username, ever. Nobody will be able to recreate an account with the same username.

NOTE: If your account has a username, this username will not be deleted. For example, if you use the username pseudo on the name server ns.jami.net, when you will delete your Jami account and you create a new account, you will not be able to retrieve this username, because ns.jami.net can't prove it's your username.

If you do not want to lose your account, please back-up files related to this one.

What happens when I bind my account to a new device?

When you start the binding procedure, the folder containing your account information is simply put on the Jami network for a few minutes. It is protected by a password Jami gives you.

My contact is not seeing my avatar

Due to technical limitations of distributed technologies, avatars are only transfered to your contacts when a call (audio or video) is established.

Audio / video

How to configure echo cancellation?

Go to settings -> media -> and set change your audio manager. We recommend using Pulse audio.

Video is laggy

Use a lower definition. Go to settings -> media -> and change resolution. You can also try auto mode by clicking the HQ button during a call.

I can't see myself

End call and check that you have selected the right video device. Go to settings -> media -> and change device.

Check that you can effectively see yourself in the right panel of settings -> media. You can double check that your device is working by installing the cheese application.

Others can't ear me

End call and try changing audio driver or audio input device.

I have no sound

End call and try changing audio driver or audio output device.

Advanced

What data passes through my machine when I participate in the Jami network?

All these data are encrypted. There is:

  • ICE descriptors of other Jami users. ICE is a protocol that help establishing communication between two computers
  • certain text messages
  • as indicated above, accounts currently being linked to a new device

Audio/video streams and some text messages pass through the VOIP protocol. Text messages can be sent either via VOIP or DHT (the distributed network) depending on whether a VOIP communication channel is already open or not.

Why am I able to communicate with myself?

Many users use Jami to transfer data from one machine to another.

Should I enable push notifications?

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.

What is DHT proxy?

The DHT proxy is a server that registers on the DHT for you and relays your information to you. 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.

How the username registration service works?

The usernames are registered on an Ethereum blockchain. By default, it's ns.jami.net that is used, but if you are a developper, you can create your own system. Hence, nothing forces you to implement it with a blockchain. You can check results at http://ns.jami.net/name/test, where "test" is a username for which we are looking for a matching Infohashs.

How can I change the timeout for a call

In the dring.yml file, you can change your ringingTimeout (in seconds)

How to back up and reimport conversations and accounts

Note: This is only for client based on LRC (desktop ones)

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).

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?

** We use TLS/SRTP to secure connection and communications over the network.**

We implement SRTP over SIP using recommendations written in following RFCs:

Supported crypto suite are::

  • AES_CM_128_HMAC_SHA1_80 / SRTP_AES128_CM_HMAC_SHA1_80
  • AES_CM_128_HMAC_SHA1_32 / SRTP_AES128_CM_HMAC_SHA1_32