Utilizar o Jami numa LAN

Devido à natureza distribuída do Jami, é possível utilizá-lo através de uma [rede local (LAN)] (https://pt.wikipedia.org/wiki/Rede_de_%C3%A1rea_local), sem qualquer ligação à Internet. Isto permite-lhe continuar a comunicar com outras pessoas da empresa/edifício/país sem acesso global à Internet. No entanto, alguns serviços são externos, pelo que neste documento explicaremos alguns ajustes de que pode necessitar.

Bootstrapping

O que é um bootstrap?

O Jami utiliza a tecnologia distributed hash table (DHT) para encontrar outros utilizadores. Assim, todos os utilizadores que pretende contactar têm de estar acessíveis na mesma rede DHT (por exemplo, se a Internet estiver dividida entre dois edifícios, os utilizadores do primeiro edifício não conseguirão chegar ao segundo edifício). Para entrar numa rede DHT, é necessário poder contactar pelo menos um outro nó. Este nó chama-se bootstrap e é o ponto de entrada da rede. Por defeito, bootstrap.jami.net está configurado, mas qualquer nó na DHT pública pode ser um bootstrap (é um nó clássico, geralmente sempre online).

Assim, se a Internet for cortada, é necessário outro bootstrap para criar uma rede. Numa LAN, existem duas formas de a configurar no Jami:

Configurações bootstrap

Nas configurações avançadas da conta, o utilizador pode configurar várias bootstraps. bootstrap.jami.net é normalmente o padrão, bootstrap.jami.net;your.bootstrap.tld será válido. O IP:porta de outro nó DHT pode ser especificado como um bootstrap.

Executar um bootstrap

É possível executar um nó DHT para servir como um bootstrap para os clientes Jami. Neste caso, o campo bootstrap nas configurações deve ser substituído pelo novo bootstrap. A documentação para executar um nó DHT está localizada no wiki do OpenDHT: https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode.

Descoberta local de pares

Outra forma é ativar a descoberta de pares. Isto irá anunciar o bootstrap na rede através da difusão de pacotes UDP (como uma impressora). Portanto, a difusão UDP deve ser suportada pela rede para funcionar. No entanto, este método não precisa de especificar um ip:porta nas configurações, pelo que pode ser preferido.

TURN

Outro serviço externo é o servidor TURN, usado como um fallback para conexões se o NAT bloquear todas as conexões possíveis. Geralmente é turn.jami.net mas pode ser qualquer TURN (nós usamos coturn).

Numa LAN, pode ser ignorado (porque não haverá NAT), mas a sua desativação não deve ser necessária (porque não será utilizado se estiver inacessível).

No telemóvel (proxy DHT)

Um proxy DHT é utilizado com dispositivos móveis para poupar bateria, evitando a sincronização. Geralmente é dhtproxy.jami.net mas pode ser qualquer nó DHT com a API REST activada. No entanto, se o proxy DHT estiver a utilizar notificações push, dependerá de outro serviço externo (Firebase ou APN ou uma instância UnifiedPush). Neste caso, apenas o terceiro pode ser auto-hospedado.

No iOS é basicamente impossível trabalhar sem notificações push, uma vez que o sistema operativo da Apple elimina qualquer aplicação assim que esta estiver em segundo plano. Assim, não é possível desativar a utilização de notificações push. No entanto, para Android, pode querer auto-hospedar o seu proxy (com ou sem suporte UnifiedPush), ou pode desativar o DHT Proxy e ativar “Run in the background” para usar o seu DHT local.

Nome do servidor

Finally, the last external service you may need is a name server. This is used to translate addresses (the 40-characters fingerprint ID) to usernames. You may not have access to ns.jami.net, but you can self-host one (name server protocol) or only use IDs.