Perguntas frequentes

Esta é uma lista exaustiva de perguntas frequentes, incluindo algumas questões técnicas.

Noções básicas

O que é Jami?

Veja a Introdução.

O que significa Jami?

A escolha do nome Jami foi inspirada na palavra swahili jamii, que significa comunidade como substantivo e juntos como advérbio. Ele foi escolhido porque reflete a visão do projeto: um programa gratuito / livre disponível para todos que ajuda a unir comunidades, é apoiado pela comunidade e respeita a liberdade e a privacidade dos usuários.

Como posso fazer um relatório de bugs?

Consulte o Guia de relatório de bugs.

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:

Topologia de rede centralizada, descentralizada e distribuída

Algumas das consequências podem parecer surpreendentes. Por exemplo, como as contas são armazenadas em seu dispositivo, as senhas são opcionais. No entanto, as diferenças práticas mais significativas são que você tem mais liberdade e privacidade.

O que significam os círculos de status verde / laranja / vermelho ao lado dos avatares?

Em sua própria conta, um círculo vermelho significa que você não está conectado ao DHT ou está off-line. Você deve ter um banner de erro detalhado explicando o problema. Talvez seja necessário verificar sua conexão ou reiniciar o aplicativo.

Para contatos, nenhum círculo significa que nenhum dispositivo foi detectado no DHT. Esse contato é inacessível. Se houver um círculo laranja, isso significa que pelo menos um dispositivo foi anunciado no DHT, portanto, esse contato PARECE estar acessível. Você ainda não tem uma conexão direta com esse par. Mas ele deve ser capaz de receber solicitações de conexão. Como o dispositivo não está diretamente conectado a nada, não podemos determinar com certeza o status desse dispositivo. Portanto, isso pode ser traduzido como “Parece estar acessível”, mas a conexão pode falhar (firewall, deadlock, NAT etc.).

A presença geralmente tem um TTL de 10 minutos no DHT e de várias horas se as notificações push estiverem ativadas.

Se um círculo verde estiver presente, isso significa que você está conectado a um dispositivo desse par.

Porque falta uma característica no meu cliente?

Nem todos os clientes implementam todos os recursos. Verifique a lista aqui para ver se o seu cliente não possui o recurso.

Você pode fazer pedidos de recursos em https://git.jami.net.

O Jami oferece suporte a confirmações de leitura? Posso ativá-las ou desativá-las?

Você pode ativar ou desativar as confirmações de leitura no Android. Outras plataformas podem ainda estar trabalhando neste recurso. Veja:doc:Todas as funcionalidades por cliente <all-features-by-client> para o status atual.

O Jami oferece suporte a notificações de digitação? Posso ativá-las ou desativá-las?

A maioria dos clientes suporta o envio e o recebimento de notificações de digitação. Você pode ativar / desativar essas notificações nas configurações gerais.

Posso compartilhar a minha tela?

Sim, em todas as plataformas, exceto no iOS. Procure um botão dedicado “Compartilhar tela” enquanto estiver em uma chamada de vídeo.

Posso fazer chamadas de conferência de grupo?

Sim. Você pode adicionar os contatos Jami às chamadas existentes (áudio ou vídeo) clicando no botão “Adicionar participante”.

O Jami tem conversas em grupo?

Sim, o Jami agora tem bate-papos em grupo ../developer/swarm. No entanto, eles são experimentais no momento e devem ser ativados manualmente nas configurações do aplicativo. Além disso, os bate-papos em grupo estão limitados a 8 participantes (para que bugs e problemas possam ser encontrados e corrigidos com mais facilidade em cenários menores e, com sorte, esse limite seja aumentado no futuro).

Por que minhas mensagens enviadas não estão aparecendo em todos os dispositivos vinculados?

Antes de ../developer/swarm, os dispositivos de uma conta recebiam as mesmas mensagens dos contatos se o dispositivo estivesse online no momento da mensagem ser enviada, mas as mensagens enviadas não apareceram em dispositivos diferentes daquele que envia a mensagem.

Com a introdução do enxame, os históricos de conversas de novas conversas do enxame (incluindo conversas individuais) são totalmente sincronizados entre todos os dispositivos vinculados de uma conta. Se estiver usando uma versão mais antiga do Jami, atualize para a versão mais recente com suporte ao enxame. A versão mais recente do Jami está sempre disponível na página de download do site do Jami, em https://jami.net/download/.

Para saber mais sobre o enxame, você pode ler nossa postagem no blogue Sincronizando o histórico de conversas com o enxame e consultar a página ../developer/swarm do manual do desenvolvedor do Jami.

Posso enviar mensagens para contatos offline?

Com as conversas ../developer/swarm, cada dispositivo armazena uma cópia de todas as mensagens dessa conversa. Se um dispositivo (seja o seu próprio ou o de outro participante) não estiver disponível/online quando uma mensagem for enviada, quando ele voltar a ficar online, tentará buscar novas mensagens de outros dispositivos / pares online e sincronizar o histórico de mensagens. Isso pode ser feito sempre que pelo menos um outro dispositivo que tenha uma cópia das novas mensagens também estiver on-line.

Nota

Você pode ler mais sobre como as conversas do grupo são sincronizadas em nosso blog post Synchronizing conversation history with Swarm.

Se os participantes em uma conversa muitas vezes não estiverem online ao mesmo tempo (por exemplo, devido a diferenças de fuso horário), um deles pode optar por configurar o Jami em um dispositivo frequentemente on-line que receberá as mensagens de cada participante e as repassarão para o outro sempre que eles estiverem on-line.

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á sob ~/.config/jami/dring.yml, e os arquivos específicos da conta estão sob ~/.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 instalada através de https://jami.net. A versão da loja de aplicativos usa ~/Library/Containers/com.savoirfairelinux.ring.macos/Data/Library/Application Support/jami/.

  • Android: a configuração completa está sob /data/cx.ring/ (poderá exigir privilégios de raiz para visualizar ou alterar a partir de fora do Jami).

  • Windows: configuração global está em %AppData%/Local/jami/dring.yml, e arquivos específicos da conta estão em %AppData%/Local/jami/. Finalmente, há 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 arquivos, se um arquivo for salvo (clique com o botão direito do mouse no arquivo e, em seguida, em salvar), ele será adicionado ao diretório que você configurou nas configurações do aplicativo.

Quanta largura de banda preciso para as chamadas?

Para chamadas de áudio, o Jami usa cerca de 100 Kbps. Para uma chamada de vídeo, você precisa de cerca de 2 Mbit/s para uma qualidade média. Se sua conexão for mais lenta, a taxa de bits será reduzida automaticamente.

Se você estiver hospedando uma videoconferência, precisará de aproximadamente 2 Mbps adicionais por participante. Assim, por exemplo, para uma conferência com 10 participantes, cada participante precisará de 2 Mbps para envio e recepção e o hospedeiro precisará de 20 Mbps para envio e recepção.

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 a Savoir-Faire Linux (SFL) pode se dar ao luxo de oferecer o Jami gratuitamente? Como a SFL ganha dinheiro com o Jami?

A Savoir-Faire Linux (SFL) é uma empresa de consultoria com alguns projetos de pesquisa e desenvolvimento. O Jami é um projeto GPLv3+ e isso não mudará. A Savoir-Faire Linux já vende serviços para várias áreas de especialização (hospedagem, desenvolvimento de sites e aplicativos, software incorporado etc.). O Jami é financiado de várias maneiras:

  • Doações

  • Contratos de personalização

  • Serviços para outros projetos

  • Visibilidade

  • Pesquisa e desenvolvimento

  • https://jami.biz

  • 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 criptografia assimétrica. Sua conta Jami é identificada por um ID Jami, que é uma impressão digital de sua chave pública.

Que informações preciso fornecer para criar uma conta da Jami?

Quando você cria uma nova conta Jami, você não precisa fornecer nenhuma informação privada como um e-mail, endereço ou número de telefone.

Esta é a informação que pode fornecer se escolher (é opcional):

  1. Um avatar.

  2. Um nome de exibição, que é o nome que os clientes exibem para o seu contato. Pode conter caracteres especiais.

  3. Um nome de usuário opcional, que é um identificador único que está diretamente associado ao seu ID Jami. O mapeamento Nome de Usuário -> ID Jami é armazenado em um servidor (`` ns.jami.net`` por padrão, mas você pode hospedar o seu próprio).

  4. Uma senha. Esta senha é usada para proteger o arquivo da conta no seu dispositivo.

Mais informações sobre as contas Jami estão disponíveis em Visão geral técnica.

Onde está a minha identificação Jami?

Seu Jami ID deve ser exibido com destaque em qualquer aplicativo que você esteja usando. Ele se parece com uma longa sequência de letras e números, por exemplo: f2c815f5554bcc22689ce84d45aefdda1bce9146.

Porque não tenho de usar uma senha?

Não é obrigatório ter uma senha na sua conta. num sistema centralizado, você usaria a senha para autenticar com um servidor público onde a sua conta é armazenada. Alguém que conheça a senha pode roubar a sua identidade.

Com o Jami, sua conta é armazenada em uma pasta em seu dispositivo. **A senha é usada apenas para criptografar sua conta, a fim de protegê-lo de alguém que tenha acesso físico ao seu dispositivo.

Se o seu dispositivo estiver criptografado, talvez você não queira ou não precise usar uma senha e, de fato, as versões recentes do Jami não solicitam uma senha de criptografia de conta por padrão ao criar novas contas.

Nota: a alteração de uma senha só mudará a senha no dispositivo atual e ela não será sincronizada (porque não há servidor e outros dispositivos podem estar off-line de qualquer forma).

Porque não tenho de registrar um nome de usuário?

O identificador mais permanente e seguro é o seu Jami ID, mas como isso é difícil de usar para algumas pessoas, você também tem a opção de registrar um nome de usuário. O registro do nome de usuário requer um servidor de nomes, como o 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ê hospeda seu próprio servidor de nomes em example.com, os nomes de usuários registrados lá podem ser procurados procurando username@example.com.

Posso mudar o meu nome de usuário?

Com o servidor de nomes padrão (ns.jami.net) você não pode alterar seu nome de usuário.

Qual é a diferença entre um nome de usuário e um nome de exibição?

Você pode usar seu nome de usuário como um identificador. O nome de usuário aponta para o seu Jami ID, que é o seu identificador permanente e seguro. Duas pessoas não podem ter o mesmo nome de usuário.

Um nome de exibição permite que você escolha outro nome que o identifique para seus contatos. Os nomes de exibição podem ser editados ou alterados a qualquer momento e somente seus contatos podem vê-los.

Como posso fazer backup da minha conta?

Há duas maneiras de fazer backup da sua conta:

  1. Vincule outro dispositivo à sua conta para que sua conta esteja em dois dispositivos. Você pode encontrar essa opção na página de configurações da conta.

  2. Faça o backup do arquivo da conta. Esse arquivo pode ser encontrado nos arquivos de conta pasta. Em alguns clientes, você pode exportar esse arquivo a partir das configurações da conta.

Posso recuperar o meu nome de usuário sem as minhas chaves?

Se você usou o servidor de nomes padrão em ns.jami.net, não pode. Não há como provar que é o seu nome de usuário sem a sua chave.

Se você usar um servidor de nome diferente, pode haver uma maneira de mover um nome de usuário para um novo ID Jami, a critério do administrador desse servidor de nome.

Para obter mais informações sobre servidores de nomes, consulte ../developer/name-server-protocol.

Posso recuperar a minha conta se esquecer a minha senha?

Não. Não pode haver um processo tradicional de recuperação de conta; você é a única pessoa com acesso aos seus dados. Se você está preocupado em esquecer a senha, use um gerenciador de senha.

O que acontece quando eu excluo minha conta?

Sua conta é armazenada somente em seus próprios dispositivos. Se você excluir sua conta de cada dispositivo, ela desaparecerá e você não poderá recuperá-la (a menos que já tenha feito um backup dela anteriormente). Ninguém mais poderá usar sua conta depois disso.

Seus contatos ainda terão as mensagens que você enviou a eles, mas todos os registros públicos da sua conta no DHT acabarão desaparecendo devido à ausência e à falta de atividade.

Aviso

O servidor de nomes padrão ns.jami.net não exclui nenhum nome de usuário registrado - outros servidores de nomes podem (não recomendado), a critério do administrador. Portanto, se você tiver uma conta com um nome de usuário registrado no servidor de nomes padrão e excluir ou perder sua conta, e não tiver feito backup dela antes, ninguém (inclusive você) poderá registrar uma nova conta com esse nome de usuário novamente e, portanto, ninguém mais poderá entrar em contato com você com esse nome de usuário.

Para evitar a perda de sua conta por favor fazer backup!

Avançado

Que protocolo o Jami usa para a criptografia de ponta a ponta?

Usamos o TLS 1.3 com um requisito de sigilo de encaminhamento perfeito para as cifras negociadas para chamadas e transferências de arquivos. As mensagens são criptografadas 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 pelo protocolo VOIP. As mensagens de texto podem ser enviadas via VOIP ou DHT (a rede distribuída), dependendo do fato de um canal de comunicação VOIP já estar aberto ou não.

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 que o Jami opere de forma mais adaptada ao contexto da mobilidade (consumo de energia, dados…). No entanto, no momento, as notificações passam pelos servidores do Google, por meio do serviço Firebase. Apenas um identificador é transferido e ele não pode ser usado por ninguém que não tenha acesso à sua conta.

O que é um servidor bootstrap?

Um servidor bootstrap é o ponto de entrada da rede distribuída. Para entrar em uma rede, o Jami precisa conhecer um outro nó. Essa é a função do bootstrap. Ele pode ser qualquer nó da rede, mas, em geral, os nós de bootstrap estão sempre ativos e disponíveis. O nó padrão no Jami é bootstrap.jami.net.

O que é um servidor TURN? O que é STUN?

Um servidor TURN é um retransmissor e geralmente é usado quando dois pares não podem entrar em contato um com o outro devido a alguma restrição de firewall, têm NAT sem nenhuma porta aberta e não têm IPv6.

Um servidor STUN é usado somente para contas SIP e geralmente é usado para obter seu IP público. Para contas Jami, o DHT já fornece essas informações.

O que é o DHT proxy?

O proxy DHT é um servidor que se registra no DHT para você e retransmite suas informações para você. Portanto, é o servidor que estará ativo no DHT e participará da rede, e não mais o dispositivo de destino. Vários dispositivos podem se registrar no mesmo proxy DHT.

Geralmente, para transferir dados entre dois pares, existem 3 etapas:

  1. Candidatos de intercâmbio (IPs) através do DHT

  2. Negociar o melhor canal p2p entre os pares

  3. 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 habilitado). Esse modo é compatível com

notificações para Android (via Google/Firebase e, em breve, Unified Push ou Apple/APN). Isso diminui o uso da bateria, removendo a sincronização necessária com o DHT e sem nenhum soquete sempre ativo. + Sem notificações push, mas com o proxy DHT ativado. Isso evita que o aplicativo seja sincronizado com outros nós, mas a opção “Executar em segundo plano” DEVE estar ativada para evitar que o sistema operacional mate o aplicativo. + Sem proxy DHT. Nesse caso, a opção “Executar em segundo plano” DEVE ser ativada para evitar que o sistema operacional encerre o aplicativo. O aplicativo será sincronizado 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 isso não resolver o seu problema, você pode abrir um relatório de bug (de preferência com um cenário para nos ajudar a reproduzir e/ou registros).

Como funciona o serviço de registro de nomes de usuário?

Com o servidor de nome padrão (ns.jami.net), os nomes de usuários são registrados em um blockchain Ethereum. Se você é um desenvolvedor, você pode construir seu próprio servidor de nome com a tecnologia de armazenamento de dados subjacente de sua escolha (por exemplo, você poderia usar um banco de dados SQL em vez de usar um blockchain).

Com o servidor de nome padrão, você pode procurar nomes de usuário em https://ns.jami.net/name/test, onde test é um nome de usuário para o qual estamos procurando um correspondente:doc:Infohash <../developer/jami-identifiers>. Uma vez registrado, este servidor de nome ** não fornece qualquer maneira de remover o mapeamento.

Leia mais sobre o Jami:doc:../desenvolvedor/nome-servidor-protocol.

Como posso alterar o tempo para uma chamada?

No arquivo dring.yml (ver:ref:user/faq:Onde estão os arquivos de configuração?), você pode alterar o ringingTimeout (em segundos).

Como fazer backup e reimportar conversas e contas

Nota

Este recurso é aplicável apenas aos clientes baseados em LRC (desktop).

Primeiro, você precisará exportar todas as suas contas (Para GNU/Linux: Configurações => `Conta => `Cópia de segurança da conta`). Depois você precisará copiar o banco de dados (em ~/.local/share/jami por exemplo)

Em seguida, no novo dispositivo, quando você abrir Jami pela primeira vez, você tem que re-importar suas contas através do arquivo anteriormente guardado. Isso vai re-importar suas configurações e contatos (com conversas vazias).

Quão seguro você está?

Usamos TLS/SRTP para proteger a conexão e as comunicações através da rede.

Implementamos o SRTP sobre o SIP usando as recomendações descritas nos dois RFCs seguintes:

Normalmente, são negociados 2 tipos de soquetes. Um para o soquete de controle e o outro para os soquetes de mídia.

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

DTLS (fallback) suportado:

"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 conectividade: (1) uma configuração clássica, (2) por trás de uma VPN, (3) através do Tor. Como Jami é um aplicativo p2p, o leitor provavelmente saberia que (2) ou (3) é um pouco obrigatório para evitar vazamentos de IP.

Além disso, mesmo que seja a minha resposta, você pode optar por não confiar na minha resposta e verificar o código, ou usar wireshark ou outras ferramentas. Geralmente, eu (e, tanto quanto eu conheço a maioria dos outros desenvolvedores Jami) uso o primeiro cenário (às vezes o segundo), e certamente não podemos testar todas as configurações de rede possíveis que gostaríamos, então, se você descobrir um bug, por favor:doc:open um problema <bug-report-guide>.

De qualquer forma, nesses três cenários, há três ações principais:

  • Enviar uma mensagem (esta utilizará o DHT);

  • enviar um arquivo (conexão TCP ICE conforme descrito aqui: ../developer/file-transfer; e

  • colocação de uma chamada (conexão ICE TCP + UDP, tal como descrito aqui: ../developer/calls).

Configuração clássica

  • Enviar mensagem

O aplicativo Jami está executando um nó DHT (https://opendht.net) no seu dispositivo. Portanto, todas as operações no DHT usarão seus ips. É por isso que o Jami tem a opção de usar um dhtproxy (por exemplo, dhtproxy.jami.net), o que evitará o uso de seu nó, mas usará outro nó na rede (que verá seu ip). Observe que sua mensagem não é enviada diretamente para o outro dispositivo. Na verdade, sua mensagem é enviada em alguns nós do DHT e seu contato recuperará a mensagem nesse nó. Portanto, o seu contato não verá o seu IP nessa etapa, mas o nó que receber a mensagem verá (ou verá o IP do proxy).

  • Enviar um arquivo

Como descrito nos documentos, você enviará uma mensagem com toda a IP que sabe que seu colega pode entrar em contato em um pacote criptografado.

  • Chamadas

Tal como acima, o IP está presente no ICE.

Por trás de uma VPN

  • Enviar mensagem

O IP da sua VPN será usado pelo nodo DHT. Se você quiser uma prova, você pode compilar o dhtnode e executar o comando la para obter o seu endereço público detectado.

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

Tal como acima, o ICE contém: + endereços da sua LAN + endereço público da sua VPN + endereço TURN se o TURN estiver habilitado

  • Faça uma chamada.

Como acima, seu endereço público é substituído por seu endereço VPN. Você pode vê-lo nos logs do daemon.

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 for bloqueado, um dhtproxy pode ser usado para usar TCP em vez disso.

Portanto, para ufw, recomendamos executar ``sudo ufw permitir o default sair ``.

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 seu próprio proxy ou servidor de nomes:

  • Dhtproxy, servidor de nomes: TCP [80-100], 443

Se executar o seu próprio servidor TURN:

  • TURN/STUN: TCP+UDP 3478, 5349

Posso usar Jami em uma rede local (LAN) sem acesso à Internet?

Graças à arquitetura de Jami, os usuários de Jami em uma rede local/privada podem se comunicar entre si usando Jami, sem precisar de qualquer conectividade externa, como a internet.

Para fazer isso, a partir da configuração `Account `` do Jami abre as configurações `. Ali, ativa a configuração Enable local peer discovery ``. Além disso, você pode querer definir manualmente o endereço do ``bootstrap` (default: ``bootstrap.jami.net) para o endereço IP de outro dispositivo na sua rede que também executa Jami e/ou um nó OpenDHT.

Nota

Se você usar esta conta Jami para se comunicar apenas com outros dispositivos na mesma rede local / privada, você pode desativar TURN se quiser. Se você fizer isso e depois decidir usar essa conta também para se comunicar com outros dispositivos Jami fora da sua rede, não se esqueça de ativar TURN novamente, pois ajuda a Jami a lidar com problemas com alguns firewalls excessivamente restritivos.

Como posso configurar os codecs ainda mais?

Os codecs podem ser configurados através de um arquivo. Nos arquivos de configurações, você pode criar um arquivo chamado encoder.json assim:

{
    "libx264": {
        "profile": 100,
        "level": 42,
        "crf": 20,
        "preset": "ultrafast"
    },
    "h264_vaapi": {
        "low_power": 1
    },
    "libopus": {
        "application": "voip"
    }
}

ou

{
    "libopus": {
        "bit_rate": 128000
    }
}

Este arquivo é :ref:` localizado no mesmo diretório <user/faq:Onde estão os arquivos de configuração?>` como dring.yml.

Para verificar quais opções são suportadas, use o comando ffmpeg -h encoder=[encoder_name], onde encoder_name` pode ser qualquer um dos `libx264`, libvpx, `mpeg4`, ``h263, `libopus, `libspeex`, `g722, pcm_alaw, ou pcm_mulaw (os nomes FFmpeg para todos os encodadores suportados da Jami).

Como posso configurar o processador de áudio?

Um processador de áudio permite que Jami limpe e processar o áudio do seu microfone. Ele pode remover eco, reduzir ruído e igualar o volume do seu microfone. Além disso, ele pode detectar quando você está falando e enviar essas informações para os participantes em sua chamada. As configurações do processador de áudio podem ser definidas em seu arquivo dring.yml. Veja:ref:` esta seção para encontrar onde este arquivo está localizado <config-file-location>`.

As chaves de preferência pertinentes são:

  • audioProcessor, que configura qual processador de áudio utilizar.

  • echoCancel, que configura como deve ser feita a cancelamento de eco.

    • auto: tente usar o cancelador de eco do seu sistema operacional (se existir), caso contrário, volte ao cancelador de eco do processador de áudio escolhido

    • audioProcessor: apenas use o cancelador de eco do processador de áudio escolhido

    • system: apenas use o cancelador de eco do seu sistema operacional

    • null: não faça qualquer cancelamento de eco.

  • noiseReduce, true/false

  • automaticGainControl, true/false

  • voiceActivityDetection, true/false