After more than a year of development, the Dino 0.3 communication client has been released, supporting participation in chats and messaging using the Jabber/XMPP protocol. The program is compatible with various XMPP clients and servers, focused on ensuring the confidentiality of communications and supports end-to-end encryption using the OMEMO XMPP extension based on the Signal protocol or encryption using OpenPGP. The project's code is written in Vala using the GTK toolkit and is distributed under the GPLv3+ license.
In the new version, in addition to text messages, support for video calls and video conferences has been implemented, allowing video calls with two or more participants. Video streams are encrypted using end-to-end encryption, and the traffic is routed directly between users in P2P mode, but as a backup option, the possibility of working through an intermediary server is also provided.

The tools for group calls have been expanded — users can initiate a call in a private group or invite additional participants to an existing call. Group calls can be organized in P2P mode without involving additional servers, serversexcept for the XMPP server coordinating the connection to the conference. For conferences with a large number of participants, to reduce bandwidth requirements, operation through a centralized server can be organized. Key exchange for encrypting the participants' traffic, generated on the client side, is carried out via DTLS, after which data is transmitted over an encrypted SRTP channel. The authenticity of the keys is authenticated using the OMEMO XMPP extension.
To establish a connection, the XMPP protocol and standard XMPP extensions (XEP-0353, XEP-0167) are used, allowing calls to be made between Dino and any other XMPP clients supporting the corresponding specifications. For example, encrypted video calls can be established with Conversations and Movim applications, as well as unencrypted calls with the Gajim application. If video support is not available, an audio call can be established.
Key features of Dino and supported XEP extensions:
- Multi-user chats with support for private groups and public channels (in groups, communication can only be done with included group members on any topic, while in channels any users can communicate only on the specified topic);
- Use of avatars;
- Message archive management;
- Marking the last received and read messages in chats;
- Attaching files and images to messages. Files can be transferred either directly from client to client or uploaded to a server with a link provided for another user to download the file;
- Support for direct multimedia content transfer (audio, video, files) between clients using the Jingle protocol;
- Support for SRV records to establish a direct encrypted connection using TLS, in addition to sending through an XMPP server;
- Encryption using OMEMO and OpenPGP;
- Message distribution via subscription (Publish-Subscribe);
- Notification of message typing status by another user (it is possible to disable typing notifications in relation to chats or individual users);
- Delayed message delivery;
- Bookmarking chats and web pages;
- Notification of successful message delivery;
- Advanced messaging search and output filtering tools in conversation history;
- Support for working in a single interface with multiple accounts, for example, to separate work and personal conversations;
- Offline mode operation with actual message sending and received accumulated messages after a network connection becomes available; server messages after the network connection appears;
- Support for SOCKS5 for enabling direct P2P connections;
- Support for XML vCard format.

Source: opennet.ru
