This patch includes major changes. Now, a call will use the previously negotiated
transport. This means that no control socket is negotiated anymore and call
are basically instantanely in a calling state
Change-Id: Ied2ebf4f54f8c3233ebb7c69529f1b0dbfadbaa8
This patch includes major changes on how messages are transmitted. It's the first
patch that uses the ConnectionManager. Each time a device is detected via the DHT,
Jami will ask a new p2p connection with that device and then will open a new SIP
channel. Also, the same mechanism exists when the user try to send a new message
through the DHT.
In the future, that SIP channel will be used to send vCards, presence status,
read status, etc.
Change-Id: I415553193accd8b1259ffdc037e684524fe03876
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
A new key has been added to the config.yml file in order to keep the compatibility with all versions.
If the new key is not found, we convert id list to AVCodecId list for activated codecs
Do not expose H265 during codec negociation if the hardware acceleration is disabled
Change-Id: Icbe9fa8d33a7158f432465d6686b18915ad3bfba
Add a new codec in the codec container creates an offset in the list of active codecs in config.yml file
Change-Id: I8148b921947317761ffd5840392f8f11d3696797
Handle all hardware devices instead of the default one.
Handle cases when opening codec fail (more than 2 nvenc sessions for example)
Change-Id: I90da2d2cc988648bd6aafba0ec560e28264d7698
This fix a huge CPU consumption for mobile devices and we doesn't need
any server that serve UPnP related documents
Change-Id: I6eee8d9b14b710a7b1be237612f514abff23198d