O Jami é um mensageiro instantâneo peer-to-peer (ponto-a-ponto ou P2P). Diferente de outros mensageiros mais comuns, como WhatsApp, Telegram ou Signal, que são centralizados, ou de outros mensageiros que vimos aqui, como Session e Element, que são descentralizados, o Jami usa uma abordagem distribuída e não requer um servidor para transmitir mensagens entre usuários. Duas pessoas conectadas à mesma rede (pode ser até uma rede local sem acesso à Internet) podem se comunicar pelo Jami, ao menos na teoria (explicarei a seguir).
Todas as comunicações no Jami são criptografadas de ponta a ponta. Sua conta não é armazenada em nenhum servidor, apenas no seu dispositivo. Você não precisa fornecer nenhuma informação pessoal, como número de telefone ou endereço de e-mail, para criar uma conta. As informações que você pode fornecer (se quiser) são todas opcionais. Você pode criar um nome de usuário para facilitar que outras pessoas te encontrem. E também pode definir uma senha, que é usada apenas para criptografar o arquivo da sua conta, protegendo suas mensagens de alguém que consiga acesso físico ao seu dispositivo.
Quando você usa o Jami pela primeira vez, ele apresenta um assistente de configuração. O aplicativo pede que você crie um nome de usuário, uma senha, um nome de exibição e um avatar. Você pode criar uma conta sem nenhum desses dados, se quiser, e configurá-los mais tarde. Depois dessa configuração inicial, que pode ser feita mesmo que você não tenha acesso à Internet, o Jami gera uma JamiID aleatória (única) para você. É um número hexadecimal comprido, escrito com 40 caracteres, que tecnicamente é a impressão digital (fingerprint) da sua chave pública. E é isso, agora você tem uma conta do Jami.
Eu disse “ao menos na teoria” antes porque, nos meus testes com o Jami, eu não consegui fazê-lo entregar mensagens sem usar uma conexão com a Internet. Eu conectei um notebook e um smartphone Android à mesma rede Wi-Fi. Baixei e instalei o Jami em ambos os dispositivos e, em seguida, desconectei o cabo do provedor do meu roteador Wi-Fi. Portanto, os dois dispositivos ficaram na mesma rede local, mas sem acesso à Internet. Em seguida, configurei o Jami em ambos os dispositivos. É bem verdade que a configuração inicial funcionou offline. Mas então, quando tentei enviar mensagens de um dispositivo para o outro, elas não foram entregues. Só foram depois que eu devolvi o cabo do provedor.
Isso mostra a desvantagem de mensageiros peer-to-peer como o Jami: embora o P2P seja bom para a privacidade, já que a ausência de um servidor central significa ausência de um ponto central de falha ou interceptação, as mensagens só podem ser transmitidas quando remetente e destinatário estão ambos online. No entanto, o aplicativo pode guardar as mensagens localmente para esperar que o contato se conecte novamente, o que o Jami faz.
Provavelmente meu teste de mensagens offline não funcionou porque, na verdade, o Jami depende de alguns servidores. Mas você pode levantar servidores semelhantes próprios (self-hosted) e configurar seus aplicativos cliente para usá-los. Os principais servidores usados pelo Jami são o que hospeda a DHT (tabela hash distribuída, mesma técnica usada pelo BitTorrent e pelo IPFS para ajudar os nós na rede a se conectarem uns aos outros) e o servidor de nomes, usado para resolver nomes de usuários. Por padrão, o Jami vem configurado para usar os servidores dhtproxy.jami.net
e ns.jami.net
, respectivamente.
Você pode ter a mesma conta associada a mais de um dispositivo. Para isso, você deve abrir o Jami em um dispositivo que já possui a conta e escolher associar um novo dispositivo. O Jami gera um PIN aleatório e disponibiliza sua conta na DHT por 10 minutos. Em seguida, no outro dispositivo, abra o Jami e escolha associá-lo a uma conta existente. Eu testei esse recurso também e apenas os contatos foram copiados, não as mensagens. Além disso, depois que a conta estava associada a ambos os dispositivos e ambos estavam online, as mensagens recebidas foram exibidas em ambos os dispositivos, mas as enviadas apareciam apenas no dispositivo que as enviou de fato. Portanto, embora esse recurso funcione, não é tão transparente quanto em outros mensageiros, como o Telegram.
Associar a conta a outro dispositivo também é uma das formas de fazer backup de uma conta do Jami. Como ela só existe nos dispositivos associados, a outra maneira de fazer backup é copiar os arquivos da conta do dispositivo para outro lugar. Nas versões para Linux e Android, existe uma opção nas configurações da conta que facilita essa cópia.
Além disso, como sua conta existe somente nos seus dispositivos, não é possível redefinir a senha se você criar uma senha e depois esquecê-la. Não há a quem recorrer ou pedir ajuda. Se você tem medo de esquecer sua senha, pode usar um gerenciador de senhas para anotá-la com segurança, como o KeePassXC, que vem com o Linux Kamarada.
Ao usar o Jami, você é o único responsável pelos seus dados. Por isso, tome cuidado. Se não quiser perder sua conta, faça backup dos seus arquivos e da sua senha. Por outro lado, se você deseja excluir sua conta, basta desinstalar o Jami e excluir seus arquivos em todos os dispositivos associados. Fazendo isso, sua conta não existirá mais e ninguém poderá restaurá-la. Jamais.
O Jami é desenvolvido pela Savoir-faire Linux — uma empresa canadense que oferece consultoria em GNU/Linux — mas também é considerado um projeto do GNU apoiado pela Free Software Foundation. O código-fonte do Jami está disponível no GitLab do projeto e o aplicativo é distribuído sob a licença GPL versão 3 ou mais recente.
O Jami sempre foi desenvolvido pela Savoir-faire Linux, mas nem sempre se chamou assim. Lançado em 2004, no início era um softphone SIP chamado SFLphone. Depois, em 2015, ele ganhou recursos de chat e criptografia e foi renomeado para Ring. Em 2016, passou a fazer parte do Projeto GNU. Finalmente, em 2019, foi renomeado para Jami para evitar confusão com produtos comerciais (alguns até com recursos semelhantes). O nome Jami é inspirado em uma palavra suaíli que significa “comunidade”. Por causa desse histórico relacionado principalmente a chamadas, alguns sites consideram o Jami uma alternativa livre ao Skype.
O Jami oferece a maioria dos recursos comuns aos mensageiros: permite enviar mensagens de texto, de voz e de vídeo, assim como fotos, vídeos e arquivos, fazer chamadas de voz e de vídeo, conferências e transmitir a tela. O Jami também mantém o suporte ao SIP de quando era SFLphone e permite que você adicione contas SIP ao aplicativo além das contas Jami. Com isso, você pode fazer chamadas tanto para usuários do Jami quanto para usuários de SIP.
Grupos ainda não são suportados pelo Jami, mas esse é um recurso em desenvolvimento.
Eu não recomendaria o Jami para o público em geral, porque acredito que a maioria das pessoas não quer se preocupar com fazer backup das mensagens por conta própria e precisará recorrer a algum tipo de recuperação de conta algum dia. Mas, para usuários preocupados com a privacidade, o Jami certamente é uma ótima opção.
O site do Jami fornece instruções sobre como instalá-lo em algumas distribuições Linux, inclusive o openSUSE. Por exemplo, no openSUSE Leap 15.2 (e no Linux Kamarada 15.2):
1
2
# zypper addrepo https://dl.jami.net/nightly/opensuse-leap_15.2/ring-nightly.repo
# zypper install jami
Eu, pessoalmente, achei mais fácil instalar o Jami usando Flatpak a partir do Flathub:
1
# flatpak install net.jami.Jami
O app do Jami para Android pode ser instalado a partir do Google Play ou do F-Droid.
Também existem versões do Jami para outros sistemas. Veja mais em: jami.net.
O Jami tem duas páginas muito explicativas de perguntas frequentes no seu site e no GitLab do projeto.
Esse texto faz parte da série: