Skip to content
Snippets Groups Projects
Sébastien Blin's avatar
Sébastien Blin authored
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
eb0fb2bd
History
Name Last commit Last update