mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00

This patch introduces the first version for the first layer of group chat, the ConnectionManager. This class provides an API to get a channel socket between two devices. Behind that API, channel sockets are working on top of a MultiplexedSocket, working on top of a TLS Socket. So, if an user want a socket, they just have to call connectDevice. The manager will contact the other device through the DHT, negotiate (via the ICE protocol) a socket, start a TLS session and then open a new channel. Channel 0 is used as a control channel (to get channel requests and answer). Other channels are for the user. When a TLS packet is sent, the format is usually: | 16 bits = len of the content | 16 bits = channel | content... | Scenarios are described in the unitTest linked to that patch. Finally, each Jami accounts has its own ConnectionManager. Change-Id: I9cdd681e91ca71f24338e728fc382349393c6912