
Hoje foi lançado da plataforma de comunicação descentralizada Jami, que é distribuída sob o codinome Together. Anteriormente, o projeto foi desenvolvido sob outro nome — Ring, e antes disso — SFLPhone. Em 2018, o mensageiro descentralizado foi renomeado para evitar possíveis conflitos com marcas registradas.
O código do mensageiro é distribuído sob a licença GPLv3. Jami foi lançado para GNU/Linux, Windows, MacOS, iOS, Android e Android TV. Se desejado, é possível escolher uma das opções de interfaces baseadas em Qt, GTK e Electron. Mas o mais importante aqui, é claro, não são as interfaces, mas o que Jami trocar mensagens sem se conectar a servidores externos dedicados.
Em vez disso, é estabelecida uma conexão direta entre os usuários usando criptografia de ponta a ponta. As chaves estão presentes apenas no lado do cliente. O procedimento de autenticação é baseado em certificados X.509. Além de mensagens, a plataforma permite realizar chamadas de áudio e vídeo, criar teleconferências, trocar arquivos, organizar acesso compartilhado a arquivos e conteúdo da tela.
Inicialmente, este projeto foi posicionado e desenvolvido como um telefone SIP de software. Mas depois os desenvolvedores decidiram expandir a funcionalidade do projeto, mantendo a compatibilidade com SIP e permitindo fazer chamadas usando esse protocolo. O software suporta vários codecs, incluindo G711u, G711a, GSM, Speex, Opus, G.722, além dos protocolos ICE, SIP, TLS.
As funções de comunicação incluem cancelamento de encaminhamento, retenção de chamadas, gravação de chamadas, histórico de chamadas com busca, controle automático de volume, integração com as agendas de contatos GNOME e KDE.
Acima mencionamos brevemente o sistema confiável de autenticação de usuários. O mecanismo é baseado em blockchain — a agenda funcione com base no Ethereum. Com isso, é possível conectar-se a partir de vários dispositivos, interagindo com o usuário, independentemente de qual dispositivo esteja ativo. A agenda, responsável pela transmissão de nomes para RingID, é implementada com o uso de nós que são suportados por diversos participantes. Com eles, é possível iniciar seu próprio nó para manter uma cópia local da agenda global.
Quanto à endereçamento de usuários, os desenvolvedores utilizaram o protocolo OpenDHT para resolver essa tarefa, que não requer o uso de registros centralizados com informações sobre os usuários. A base do Jami é o jami-daemon, responsável pelo processamento de conexões, organização da comunicação, e trabalho com vídeo e áudio.
A interação com o jami-daemon é realizada com base na biblioteca LibRingClient. Esta é fundamental para a construção do software cliente e oferece a funcionalidade necessária, que não está vinculada à interface do usuário e a plataformas. E é sobre a LibRingClient que os aplicativos cliente são desenvolvidos.
Na reformulação do mensageiro P2P em uma plataforma de telecomunicações, os desenvolvedores novas e atualizaram funcionalidades existentes. Aqui estão elas:
- Melhorou o desempenho em redes com baixa largura de banda.
- Reduzido o número de recursos utilizados ao operar em Android e iOS.
- Reescrito o cliente para Windows. Ele pode operar no modo tablet.
- Foram adicionadas ferramentas para a realização de teleconferências com vários participantes.
- Adicionada a possibilidade de alterar o modo de transmissão na conferência.
- O aplicativo pode ser transformado em servidor com um clique (isso pode ser necessário, por exemplo, para realizar conferências).
- Implementado o servidor de gerenciamento de contas JAMS.
- Há a possibilidade de conectar plugins que ampliam as capacidades do mensageiro básico.
Fonte: habr.com
