Perguntas frequentes
Esta é uma lista de perguntas frequentes (FAQ), incluindo algumas questões técnicas.
As perguntas do [Fórum] (https://forum.jami.net/) também são adicionadas aqui.
Noções básicas
O que é Jami?
Ver a Introdução.
O que significa Jami?
A escolha do nome Jami foi inspirada na palavra Swahili [jamii] (https://en.wiktionary.org/wiki/jamii) que significa “comunidade” como substantivo e “juntos” como advérbio. Foi escolhido porque reflete a visão do projeto:
um programa gratuito/livre disponível para todos que ajuda a unir as comunidades,
é apoiado pela comunidade e
respeita a liberdade e a privacidade dos utilizadores.
Como posso fazer um relatório de bugs?
Por favor, veja o [Guia de relatório de erros] (bug-report-guide.md).
O que torna o Jami diferente de outras plataformas de comunicação?
O Jami não funciona como a maioria das plataformas de comunicação porque é distribuído:

Algumas das consequências podem parecer surpreendentes. Por exemplo, uma vez que as contas são armazenadas no dispositivo do utilizador, as palavras-passe são opcionais. No entanto, as diferenças práticas mais significativas são que o utilizador tem mais liberdade e privacidade.
O que significam os círculos de estado verdes / laranjas / vermelhos junto às fotografias de perfil?
Na conta de um utilizador, a indicação 🔴 (um círculo vermelho) significa que o dispositivo não está conectado ao DHT ou está offline. Deve ser apresentado um erro detalhado que explique o problema. Verificar a ligação à rede/Internet ou reiniciar a aplicação pode resolver o problema.
Para contactos:
nenhum círculo apresentado significa que não foi detetado nenhum dispositivo no DHT. O contacto não está acessível.
🟠 (um círculo laranja) apresentado significa que pelo menos um dispositivo é anunciado na DHT, pelo que o contacto PARECE estar acessível. O dispositivo ainda não tem uma ligação direta a este ponto a ponto. Mas deve ser capaz de receber pedidos de ligação. Como o dispositivo não está diretamente conectado a nada, o estado do dispositivo não pode ser determinado com certeza. Assim, isto pode ser conectado a “Parece estar contactável”, mas a ligação pode falhar (firewall, impasse, NAT, etc.). A presença tem geralmente um TTL de:
10 minutos sobre a DHT, e
várias horas se as notificações push estiverem ativadas.
🟢 (um círculo verde) apresentado significa que o dispositivo está conectado a um dispositivo deste par.
Porque falta uma característica no meu cliente?
Nem todos os clientes implementam todas as funcionalidades. Verifique a lista Todos os recursos por cliente para ver se o cliente não possui o recurso. Pedidos de recursos podem ser feitos em https://git.jami.net.
O Jami suporta recibos de leitura? Posso ativá-los ou desativá-los?
Sim. Os recibos de leitura podem ser ativados ou desativados nas definições do Jami para computador, Android, Android TV e iOS.
O Jami suporta indicadores de escrita? Posso ativá-los ou desativá-los?
Sim. Os indicadores de digitação podem ser ativados ou desativados nas definições do Jami para computador, Android e iOS.
Posso fazer chamadas de conferência de grupo?
Sim. Os contactos Jami podem ser adicionados a chamadas (áudio ou vídeo) clicando no botão “Adicionar participante”.
A Jami apoia as conversas de grupo?
Sim.
Por que minhas mensagens enviadas não estão aparecendo em todos os dispositivos vinculados?
Antes da implementação da tecnologia Enxame, os dispositivos de uma conta só recebiam as mesmas mensagens dos contactos se o dispositivo estivesse online no momento em que a mensagem era enviada. No entanto, as mensagens enviadas não apareciam noutros dispositivos para além daquele que enviava a mensagem.
Com a implementação da tecnologia Enxame, os históricos de novas conversas (incluindo conversas individuais) são totalmente sincronizados entre todos os dispositivos vinculados a uma conta. Atualize todas as versões antigas do Jami para a versão mais recente que inclui a tecnologia Enxame. A versão mais recente do Jami está sempre disponível na página de Transferências do Web site do Jami, em https://jami.net/download/.
Para saber mais sobre a tecnologia Enxame, visite a publicação do blogue Sincronizar o histórico de conversas com o Swarm e visite o Manual do programador.
Posso enviar mensagens para contatos offline?
Com as conversações da tecnologia Enxame, cada dispositivo armazena uma cópia de todas as mensagens dessa conversação. Se o dispositivo de um utilizador, ou de outro participante, estiver inacessível quando uma mensagem é enviada, quando se tornar acessível, tentará obter quaisquer mensagens novas de outros dispositivos acessíveis e sincronizar o histórico de mensagens. Isto pode ser feito sempre que pelo menos um outro dispositivo que tenha uma cópia das novas mensagens também esteja acessível.
Ver também
Para ler mais sobre a forma como as conversações da tecnologia Enxame são sincronizadas, visite a publicação do blogue [Sincronizar o histórico de conversações com o Enxame] (https://jami.net/synchronizing-conversation-history-with-swarm/).
Se os participantes numa conversa não estiverem frequentemente online ao mesmo tempo (por exemplo, devido a fusos horários diferentes), um deles pode optar por configurar o Jami num dispositivo frequentemente online. O dispositivo frequentemente online receberia as mensagens de cada participante e transmiti-las-ia ao(s) outro(s) sempre que este(s) estivesse(m) em linha. Assim, atuando de forma semelhante a um “servidor”, o Jami permanece distribuído por natureza.
Onde estão os arquivos de configuração?
Jami guarda sua configuração (conto, certificados, histórico) em diferentes locais dependendo da plataforma.
GNU/Linux: a configuração global está em
~/.config/jami/dring.yml
, e os ficheiros específicos da conta estão em~/.local/share/jami/
. Finalmente, há um diretório de cache em~/.cache/jami/
.macOS: a configuração completa está em
~/Library/Application Support/Jami/
se instalado via https://jami.net. A versão da loja de aplicações utiliza~/Library/Containers/com.savoirfairelinux.ring.macos/Data/Library/Application Support/jami/
.Android: a configuração completa está em
/data/data/cx.ring/
(pode exigir privilégios de root para ver ou alterar de fora do Jami).Windows: a configuração global está em
%AppData%/Local/jami/dring.yml
, e os ficheiros específicos da conta estão em%AppData%/Local/jami/
. Finalmente, existe um diretório de cache em%USERPROFILE%/.cache/jami/
.
Nota
As mensagens de áudio e vídeo são gravadas nos dados locais, na pasta: sent_data
Para os ficheiros, se um ficheiro for guardado (clique com o botão direito do rato no ficheiro e depois em Guardar), será adicionado ao diretório configurado nas definições da aplicação.
Quanta largura de banda preciso para as chamadas?
Para as chamadas de áudio, o Jami utiliza cerca de 100 Kbps. Para uma chamada de vídeo, são necessários cerca de 2 Mbit/s para uma qualidade média. Se a ligação for mais lenta, a taxa de bits será automaticamente reduzida.
Se um dispositivo estiver a acolher uma videoconferência, são necessários cerca de 2 Mbps adicionais por participante. Assim, por exemplo, para uma conferência com 10 participantes, cada participante precisará de 2 Mbps para cima e para baixo, e o anfitrião precisará de 20 Mbps para cima e para baixo.
O Jami também usa um algoritmo para alterar o consumo de acordo com a qualidade da conexão. Assim, a taxa de bits pode ter um mínimo de 200 Kbit/s e um máximo de 6 Mbit/s.
Como é que a Savoir-Faire Linux Inc. (SFL) pode dar-se ao luxo de oferecer o Jami gratuitamente? Como é que a SFL ganha dinheiro com o Jami?
A Savoir-Faire Linux Inc. (SFL) é uma empresa de consultoria com alguns projetos de I&D. O Jami é um projeto GPLv3+ e isso não vai mudar. A SFL já vende serviços para várias áreas de especialização (alojamento, desenvolvimento de sítios Web e aplicações, software incorporado, etc.).
A Jami é financiada de várias formas:
Serviços para outros projetos
Visibilidade
Despesas recorrentes de Jami:
Por ser um sistema distribuído, o Jami incorre em custos muito baixos
A coleta opcional de estatísticas anônimas pode ser adicionada no futuro para entender melhor o uso do Jami; no entanto, nenhum dado pessoal será coletado.
Gestão de contas
O que é uma conta Jami?
Uma conta Jami é uma chave de encriptação assimétrica. A conta Jami é identificada por um Jami ID, que é uma impressão digital da chave pública.
Que informações preciso fornecer para criar uma conta da Jami?
Quando é criada uma nova conta Jami, não são necessárias informações privadas como o endereço de correio eletrónico, a morada ou o número de telefone.
Podem ser fornecidas as seguintes informações:
Uma fotografia de perfil (opcional).
Um nome de apresentação (opcional), que é o nome que os clientes mostrarão para o seu contacto. Pode conter caracteres especiais.
Um nome de utilizador (opcional), que é um identificador único que está diretamente associado ao seu Jami ID. Este mapeamento nome de utilizador→ID do Jami é armazenado num servidor (
ns.jami.net
por defeito, mas pode alojar o seu próprio).Uma palavra-passe (opcional). Esta palavra-passe é utilizada para proteger o arquivo da conta no dispositivo.
Ver também
Mais informações sobre as contas Jami estão disponíveis na secção Gestão de contas do manual do Programador.
Onde está a minha identificação Jami?
O ID do Jami é apresentada na página principal da aplicação Jami. O ID Jami é uma cadeia de 40 caracteres de letras e números; por exemplo: f2c815f5554bcc22689ce84d45aefdda1bce9146
.
Porque não tenho de usar uma senha?
Num sistema centralizado, é necessária uma palavra-passe para autenticar com um servidor público onde as contas são armazenadas. Qualquer terceiro que saiba a palavra-passe de uma pessoa pode roubar a identidade dessa pessoa.
Com o Jami, a conta é armazenada numa pasta no dispositivo. Não existe um servidor público onde as contas Jami são armazenadas. Por conseguinte, não é necessária uma palavra-passe da conta com o Jami. A palavra-passe só é utilizada para encriptar uma conta Jami, de modo a proteger a conta Jami de alguém que tenha acesso físico ao dispositivo.
Uma palavra-passe pode não ser desejada ou necessária se o dispositivo estiver encriptado. As versões recentes do Jami não pedem uma palavra-passe de encriptação de conta por predefinição quando se criam novas contas.
Nota
A alteração de uma palavra-passe apenas altera a palavra-passe no dispositivo atual e não é sincronizada (porque não existe um servidor e os outros dispositivos podem estar offline).
Porque não tenho de registrar um nome de usuário?
O identificador mais permanente e seguro é o Jami ID. No entanto, estes são difíceis de usar para algumas pessoas, existe também a opção de registar um nome de utilizador. O registo do nome de utilizador requer um servidor de nomes, tal como o servidor padrão do Jami em ns.jami.net
.
Se não registrar um nome de usuário, você ainda poderá optar por registrar um mais tarde, a qualquer momento.
Se você hospedar seu próprio servidor de nomes em example.com
, os nomes de utilizadores registados lá podem ser procurados pesquisando por username@example.com
.
Posso mudar o meu nome de usuário?
Os nomes de utilizador não podem ser alterados no servidor de nomes predefinido (ns.jami.net
).
Qual é a diferença entre um nome de usuário e um nome de exibição?
O nome de utilizador pode ser utilizado como um identificador. O nome de utilizador aponta para o Jami ID, que é o identificador permanente e seguro. Os nomes de utilizador são únicos no servidor de nomes.
Um nome de apresentação permite-lhe escolher outro nome que identifique uma conta Jami aos contactos. Os nomes de apresentação podem ser editados ou alterados em qualquer altura e apenas os colegas de confiança os podem ver.
Como posso fazer backup da minha conta?
Existem duas formas de efetuar uma cópia de segurança de uma conta:
Vincule outro dispositivo à conta para que a conta esteja em dois dispositivos. Esta opção está disponível na página Configurações da conta.
Fazer a cópia de segurança do arquivo da conta. Estão disponíveis mais informações sobre as contas Jami na secção Gestão de contas do Manual do programador. Alguns clientes permitem exportar o arquivo da conta Jami a partir das Configurações de conta.
Posso recuperar o meu nome de usuário sem as minhas chaves?
Se o servidor de nomes padrão em ns.jami.net
armazena um nome de utilizador, o nome de utilizador não pode ser recuperado sem a chave. Não há nenhuma maneira de provar um nome de utilizador sem a chave.
Se tiver sido utilizado um servidor de nomes diferente para armazenar um nome de utilizador, pode haver uma forma de mover o nome de utilizador para um novo Jami ID, à discrição do administrador do servidor de nomes.
Ver também
Estão disponíveis mais informações sobre servidores de nomes na secção [Protocolo do servidor de nomes] (/developer/jami-concepts/name-server-protocol.md) do manual do Programador.
Posso recuperar a minha conta se esquecer a minha senha?
Não. Não existe um processo tradicional de recuperação de contas; o utilizador é a única pessoa com acesso aos seus dados.
Dica
Use a password manager if there is a concern about forgetting the Jami account password.
O que acontece quando eu excluo minha conta?
A conta Jami só é guardada em dispositivos que tenham a conta Jami.
A conta Jami desapareceu e não pode ser restaurada se:
não existe qualquer cópia de segurança da conta Jami, e
a conta Jami é eliminada de todos os dispositivos.
Além disso, mais ninguém pode utilizar a conta Jami.
Os contactos continuarão a ter as mensagens que lhes foram enviadas, mas todos os registos públicos da conta no DHT acabarão por desaparecer devido à ausência e falta de atividade.
Aviso
O servidor de nomes padrão ns.jami.net
não elimina nenhum nome de utilizador registado – outros servidores de nomes podem (não recomendado), à discrição do seu administrador. Então, se uma conta tem um nome de utilizador registado no servidor de nomes padrão e a conta é eliminada ou perdida (sem uma cópia de segurança), ninguém (incluindo o utilizador) será capaz de registar uma nova conta com esse nome de utilizador novamente; assim, ninguém mais pode contactar o utilizador com esse nome de utilizador.
To avoid losing an account please back it up!
O que acontece quando eu vincular um novo dispositivo?
Quando um dispositivo é ligado a uma conta, o arquivo da conta Jami é colocado na rede Jami durante alguns minutos. A conta Jami é protegida com uma palavra-passe fornecida pela Jami.
O novo dispositivo recebe o certificado de conta completo com as chaves RSA principais e gera uma nova chave de dispositivo para assinar / encriptar mensagens.
Avançado
Que protocolo o Jami usa para a criptografia de ponta a ponta?
Utilizamos o TLS 1.3 com um requisito de sigilo de encaminhamento perfeito para as cifras negociadas para chamadas e transferências de ficheiros. As mensagens são encriptadas com uma chave RSA.
Que dados passam pela minha máquina quando participo da rede Jami?
Todos esses dados são criptografados. Há:
descritores ICE de outros usuários do Jami (ICE é um protocolo que ajuda a estabelecer a comunicação entre dois computadores)
determinadas mensagens de texto
contas que estão sendo vinculadas a um novo dispositivo, conforme explicado acima.
Os fluxos de áudio / vídeo e algumas mensagens de texto passam através do protocolo VOIP. As mensagens de texto podem ser enviadas através de VOIP ou DHT (a rede distribuída), consoante já exista ou não um canal de comunicação VOIP aberto.
Por que sou capaz de me comunicar comigo mesmo?
Muitos usuários usam o Jami para transferir dados de uma máquina para outra.
Devo ativar as notificações push?
As notificações push permitem ao Jami funcionar de uma forma mais adaptada ao contexto da mobilidade (consumo de energia, dados…). No entanto, de momento, as notificações passam pelos servidores da Google, através do serviço Firebase. Apenas um identificador é transferido e é inutilizável por qualquer pessoa que não tenha acesso à conta.
O que é um servidor bootstrap?
Um servidor de arranque é o ponto de entrada da rede distribuída. Para entrar numa rede, o Jami tem de conhecer um outro nó. Este é o papel do bootstrap. Ele pode ser qualquer nó na rede, mas, os nós bootstrap geralmente estão sempre ativos e disponíveis. O nó padrão no Jami é bootstrap.jami.net
.
O que é um servidor TURN? O que é o STUN?
Um servidor TURN é um retransmissor e é geralmente utilizado quando dois pares não conseguem contactar um com o outro devido a alguma restrição de firewall, têm NAT sem qualquer porta aberta e não têm IPv6.
Um servidor STUN só é utilizado para contas SIP e é geralmente utilizado para obter o endereço IP público do dispositivo. Para as contas Jami, o DHT já fornece o endereço IP público do dispositivo.
O que é o DHT proxy?
O proxy DHT é um servidor que se regista na DHT em nome do dispositivo e retransmite informações de e para o dispositivo. Assim, é o servidor que estará ativo na DHT e participará na rede, e já não o dispositivo alvo. Vários dispositivos podem registar-se no mesmo proxy DHT.
Geralmente, para transferir dados entre dois pares, existem 3 etapas:
Troca de candidatos (endereços IP) através do DHT
Negociar o melhor canal P2P entre os pares
Transferir dados nesse soquete.
O DHT só é utilizado para o primeiro passo.
E se eu desativar o proxy DHT no Android e as notificações por push?
Há basicamente três modos de usar o aplicativo Android:
Com notificações push (o proxy DHT deve estar ativado). Este modo suporta notificações para Android (via Google/Firebase, e em breve UnifiedPush ou Apple/APN). Isto diminui o uso da bateria, removendo a sincronização necessária com o DHT e sem qualquer socket sempre vivo.
Sem notificações push, mas com o proxy DHT ativado. Isto evita que a aplicação se sincronize com outros nós, mas a opção “Executar em segundo plano” DEVE estar ativada para evitar que o sistema operativo “mate” a aplicação.
Sem proxy DHT. Neste caso, a opção “Executar em segundo plano” DEVE ser ativada para evitar que o sistema operativo mate a aplicação. A aplicação sincronizar-se-á com os outros nós DHT.
Ainda tenho problemas com o aplicativo Android, mesmo que a otimização da bateria esteja desativada
Leia https://dontkillmyapp.com para obter mais detalhes. Se não resolver os problemas, abra um relatório de erro (de preferência com um cenário para ajudar a reproduzir e/ou registos).
Como funciona o serviço de registro de nomes de usuário?
Com o servidor de nomes padrão (ns.jami.net
), os nomes de utilizador são registados numa blockchain Ethereum. É possível desenvolver um servidor de nomes com qualquer tecnologia de armazenamento de dados subjacente. Por exemplo, pode ser usado uma base de dados SQL em vez de um blockchain para a tecnologia de armazenamento de dados.
Com o servidor de nomes predefinido, procure nomes de utilizador com https://ns.jami.net/name/test
, onde test
é um nome de utilizador para o qual estamos à procura de um Infohash correspondente.
Uma vez registado, o servidor de nomes não fornece qualquer forma de remover o mapeamento.
Estão disponíveis mais informações sobre servidores de nomes na secção [Protocolo do servidor de nomes] (/developer/jami-concepts/name-server-protocol.md) do manual do Programador.
Como posso alterar o tempo para uma chamada?
In the dring.yml
file (see Onde estão os arquivos de configuração?), the ringingTimeout
value, measured in seconds, can be changed.
Como fazer backup e reimportar conversas e contas
Nota
Isso só é aplicável a clientes de desktop. Os clientes desktop são executados nos sistemas operacionais GNU/Linux, macOS e Windows.
Exportar cada conta. (Para GNU/Linux:
Abrir configurações
→Conta
→Gerir conta
→Conta de cópia de segurança
).Copie e guarde a base de dados (em
~/.local/share/jami/
por exemplo).No novo dispositivo, para importar as configurações e os contactos com conversas vazias:
se o Jami for aberto pela primeira vez, importar a cópia de segurança do arquivo.
Já tenho uma conta
→Importar de um arquivo de segurança
.se o Jami já tiver uma conta, importar cada cópia de segurança de arquivo.
Adicionar outra conta
→Já tenho uma conta
→Importar de uma cópia de segurança de arquivo
.
Feche o Jami e substitua a base de dados pela base de dados anteriormente guardada.
Quão seguro você está?
TLS/SRTP is used to secure connection and communications over the network.
SRTP over SIP is implemented using recommendations described in the following two RFCs:
Normalmente, são negociados 2 tipos de sockets. Um para o socket de controlo e o outro para os sockets de media.
Uma sessão de controlo típica utilizará o seguinte conjunto de cifras:
(TLS1.3)-(ECDHE-SECP384R1)-(RSA-PSS-RSAE-SHA384)-(AES-256-GCM)
(TLS_ECDHE_RSA_AES_256_GCM_SHA384)
Suporte para DTLS (fallback):
"SECURE192:-KX-ALL:+ANON-ECDH:+ANON-DH:+SECURE192:-VERS-TLS-ALL:+VERS-DTLS-ALL:-RSA:%SERVER_PRECEDENCE:%SAFE_RENEGOTIATION"
TLS:
"SECURE192:-KX-ALL:+ANON-ECDH:+ANON-DH:+SECURE192:-RSA:-GROUP-FFDHE4096:-GROUP-FFDHE6144:-GROUP-FFDHE8192:+GROUP-X25519:%SERVER_PRECEDENCE:%SAFE_RENEGOTIATION"
A criptografia suportada para a sessão de mídia é:
AES_CM_128_HMAC_SHA1_80 / SRTP_AES128_CM_HMAC_SHA1_80
AES_CM_128_HMAC_SHA1_32 / SRTP_AES128_CM_HMAC_SHA1_32
Quando é que as IPs públicas são expostas?
Podemos considerar três cenários principais de conetividade: (1) uma configuração clássica, (2) por detrás de uma VPN e (3) através do Tor.
Como o Jami é uma aplicação P2P, o leitor saberá provavelmente que (2) ou (3) são obrigatórios para evitar fugas de IP.
Além disso, mesmo que seja a minha resposta, pode optar por não confiar na minha resposta e verificar o código, ou utilizar o Wireshark ou outras ferramentas. Geralmente, os programadores do Jami utilizam o primeiro cenário (por vezes, o segundo). É impossível testar todas as configurações de rede possíveis, por isso, se descobrir um erro, por favor [reporte o problema] (bug-report-guide.md).
Para os três cenários, existem três ações principais:
Enviar uma mensagem (esta utilizará o DHT);
enviar um ficheiro (ligação TCP ICE como descrito na secção Transferência de ficheiros do manual do Programador; e
fazer uma chamada (ligação TCP + UDP ICE como descrito na secção Chamadas do manual do programador.
(1) Uma configuração clássica
Enviar mensagem
A aplicação Jami está a executar um nó DHT (https://opendht.net) no seu dispositivo. Assim, todas as operações no DHT irão utilizar o seu endereço IP. É por isso que o Jami tem a opção de utilizar um proxy DHT (por exemplo, dhtproxy.jami.net), o que evitará a utilização do seu nó, mas utilizará outro nó na rede (que verá o seu endereço IP). Note que a sua mensagem não é enviada diretamente para o outro dispositivo. Na verdade, a sua mensagem é enviada para alguns nós do DHT e o seu contacto irá recuperá-la nesse nó. Assim, o seu contacto não vê o seu endereço IP nesta fase, mas o nó que recebe a mensagem vê (ou vê o endereço IP do proxy).
Enviar um arquivo
Tal como descrito na documentação, enviará uma mensagem com todos os endereços IP que sabe que o seu par pode contactar num pacote encriptado. Assim, se o seu par lhe enviar um ficheiro ou se você enviar um ficheiro, os seus endereços aparecerão na mensagem ICE.
Chamadas
O mesmo que acima, o endereço IP está presente no ICE.
(2) Por trás de uma VPN
Enviar mensagem
O IP da sua VPN será usado pelo nó DHT. Se quiser uma prova, pode compilar o dhtnode e correr o comando la
para obter o seu endereço público detetado. Isto é o que eu obtive:
./tools/dhtnode -b bootstrap.jami.net
Bootstrap: bootstrap.jami.net:4222
OpenDHT node be58fdc9f782269bfc0bbfc21a60bca5f02cb881 running on port 54299
(type 'h' or 'help' for a list of possible commands)
>> la
Reported public addresses:
IPs OF MY VPN
Então, se você não usar um proxy, seus endereços VPN serão usados para usar o DHT.
Enviar um arquivo
O mesmo que acima, o ICE contém:
endereços da sua LAN
endereço público da sua VPN
Endereço TURN se TURN estiver ativado
Faça uma chamada.
O mesmo que acima, o seu endereço público é substituído pelo seu endereço VPN. Pode vê-lo nos registos do daemon. Veja Registros.
(3) Tor
Enviar mensagem
Tor basicamente não suporta UDP. Isso significa que você não pode usar seu nodo DHT localmente, você MUST usar um DHTProxy. Esse proxy verá o nodo de saída.
Enviar um arquivo
Prefiro uma prova a qualquer descrição. Então, fiz uma transferência de arquivos com Jami + TOR. Isso é o que vejo nos registros do controle remoto:
[1574218330.556|10688|p2p.cpp :241 ] [Account:93a03f519f394143] add remote ICE candidate: Hc0a8c801 1 TCP 2130706431 192.168.200.1 33293 typ host tcptype passive
[1574218330.556|10688|p2p.cpp :241 ] [Account:93a03f519f394143] add remote ICE candidate: Hc0a8c801 1 TCP 2130706431 192.168.200.1 9 typ host tcptype active
[1574218330.556|10688|p2p.cpp :241 ] [Account:93a03f519f394143] add remote ICE candidate: Hc0a80103 1 TCP 2130706431 192.168.1.3 33293 typ host tcptype passive
[1574218330.556|10688|p2p.cpp :241 ] [Account:93a03f519f394143] add remote ICE candidate: Hc0a80103 1 TCP 2130706431 192.168.1.3 9 typ host tcptype active
[1574218330.556|10688|p2p.cpp :241 ] [Account:93a03f519f394143] add remote ICE candidate: R33fe279d 1 TCP 16777215 51.254.39.157 27427 typ relay tcptype passive
[1574218330.556|10688|p2p.cpp :241 ] [Account:93a03f519f394143] add remote ICE candidate: Sc0a8c801 1 TCP 1694498815 185.220.101.24 33293 typ srflx tcptype passive
Os primeiros são alguns 192.168.x.x, então não nos importa. 51.254.39.157 é o endereço TURN na França (meu dispositivo está no Canadá). 185.220.101.24 é o nodo de saída Tor:
inetnum: 185.220.101.0 - 185.220.101.127
netname: MK-TOR-EXIT
Faça uma chamada.
Isto não vai funcionar (na verdade, você pode criar a conexão de controle SIP porque é uma conexão TCP), mas os meios de comunicação são negociados em UDP, então isso falhará.
Que portos usa Jami?
Jami trabalha como um servidor e recebe novas portas para cada conexão (randomamente ligadas).
Dht: UDP [4000, 8888]
Áudio: UDP [16384-32766]
Video: UDP [49152-65534]
Controle SIP: UDP/TCP ligado aleatoriamente
Nota
Se o UDP estiver bloqueado, pode ser utilizado um dhtproxy para utilizar o TCP. No entanto, o media não funcionará porque só suporta UDP.
Portanto, para o ufw, recomendamos executar sudo ufw default allow outgoing
.
Por enquanto, você não pode especificar um intervalo específico para configurar as portas usadas pelo Jami. O tráfego de entrada pode ser controlado sem problemas, Jami deve funcionar e pode usar um servidor TURN se necessário.
Se executar o seu próprio servidor proxy ou de nomes:
dhtproxy, name server: TCP [80-100], 443
Se executar o seu próprio servidor TURN:
TURN/STUN: TCP+UDP 3478, 5349
Posso utilizar o Jami numa rede local (LAN) sem acesso à Internet?
Sim! Graças à arquitetura do Jami, os utilizadores do Jami numa rede local / privada podem comunicar entre si utilizando o Jami, sem necessitarem de qualquer conetividade externa, como a Internet.
Para o fazer, nas definições de Conta
do Jami, abra Configurações avançadas da conta
. Lá, ative a configuração Ativar a descoberta local de pares
. Além disso, pode querer definir manualmente o endereço do nó bootstrap
(padrão: bootstrap.jami.net
) para o endereço IP de outro dispositivo na sua rede que também executa o Jami e/ou um nó OpenDHT.
Nota
Se utilizar esta conta Jami para comunicar apenas com outros dispositivos na mesma rede local / privada, pode desativar o TURN se assim o desejar. Se o fizer, e mais tarde decidir utilizar esta conta também para comunicar com outros dispositivos Jami fora da sua rede, não se esqueça de ativar novamente o TURN, uma vez que ajuda o Jami a contornar problemas com algumas firewalls demasiado restritivas.
Como posso configurar os codecs ainda mais?
Os codecs podem ser configurados através de um ficheiro. Nos ficheiros de configuração, pode criar um ficheiro chamado encoder.json
como este:
{
"libx264": {
"profile": 100,
"level": 42,
"crf": 20,
"preset": "ultrafast"
},
"h264_vaapi": {
"low_power": 1
},
"libopus": {
"application": "voip"
}
}
ou
{
"libopus": {
"bit_rate": 128000
}
}
This file is located in the same directory as dring.yml
.
Para verificar quais opções são suportadas, utilize o comando ffmpeg -h encoder=[nome_do_codificador]
, onde nome_do_codificador
pode ser qualquer um dos libx264
, libvpx
, mpeg4
, h263
, libopus
, libspeex
, g722
, pcm_alaw
, ou pcm_mulaw
(os nomes do FFmpeg para todos os codificadores suportados por Jami).
Como posso configurar o processador de áudio?
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 this section to find where this file is located.
As chaves de preferência pertinentes são:
audioProcessor
, que configura o processador de áudio a utilizar. As opções válidas são:webrtc
: abiblioteca de processamento de áudio WebRTC <https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/>
_speex
: abiblioteca DSP Speex <https://gitlab.xiph.org/xiph/speexdsp>
_null
: desativa o processamento áudio (embora o cancelador de eco do sistema possa ainda ser utilizado, ver abaixo)
echoCancel
, que configura a forma como o cancelamento de eco deve ser efetuado. As opções válidas são:auto
: tentar utilizar o cancelador de eco do seu sistema operativo (se existir), caso contrário, recorrer ao cancelador de eco do processador de áudio escolhidoaudioProcessor
: utilizar apenas o cancelador de eco do processador de áudio escolhidosystem
: utilizar apenas o cancelador de eco do seu sistema operativonull
: não fazer nenhum cancelamento de eco
noiseReduce
,true
/false
para definir a redução de ruído no processador de áudioautomaticGainControl
,true
/false
para definir o controlo automático de ganho no processador de áudiovoiceActivityDetection
,true
/false
para definir a deteção de atividade vocal no processador áudio