Commit Graph

14141 Commits

Author SHA1 Message Date
a60f82ff06 jni: check for swig 4.0+
Change-Id: Ia4eeeb6c2111934e6dc12fa7f2fe47aaf1034ee8
2020-02-22 15:43:25 -05:00
c285b54129 sip: pass calls on channeled transport
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
2020-02-21 21:40:54 -05:00
0196c5ec8e sip: maintain SIP connections with contacts
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
2020-02-21 21:40:53 -05:00
d2b316da32 accel: cleanup
Change-Id: I3a4a95855d178844d82b2606e4ed48ad3a1a5114
2020-02-19 15:35:24 -05:00
753461b0d9 accel: remove tabs
Change-Id: Iab397772c9b7c0384e1b434a04064b49b6155f94
2020-02-19 14:37:43 -05:00
00dfad657a winvideo: use MinFrameInterval to calculate maximum fps
Change-Id: Id070a72d5711fa47ff6080ed47d19c384cd95637
2020-02-19 14:25:12 -05:00
c6ab78a01c accel: filter accel APIs by platform
Use ffmpeg flags

Change-Id: I86246e86d3c7038825fc4416789d7b62a2f260a4
2020-02-18 14:36:51 -05:00
18751c3cfe contrib: update SpeexDSP
Change-Id: If4bcc00319f12b844970a32315f8183fa28e1d91
2020-02-18 14:06:01 -05:00
87f66dcdfb accel: fix crash during qsv initialization
Change-Id: I568c0df19aa4bb6f88bb014b3b7d3c6f2d33261b
2020-02-18 12:56:57 -05:00
2df2f02dab pjproject: send keep alive on socket and add callback
Change-Id: I8d99d7f229e25f970a2a12cd7d2a2bee69017a5a
2020-02-14 15:29:13 -05:00
eb0fb2bdc2 ConnectionManager: first version
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
2020-02-14 15:29:13 -05:00
3382382233 contrib: update OpenDHT
Change-Id: Ia3b830e67401e8875842af6207de86da0ebd2807
2020-02-14 14:12:01 -05:00
4c5bf01207 msvc: move MSVC to compat folder and ignore cmake generated files
Change-Id: I5d1d0ac43221264a6cd756894dde07648382f6c3
2020-02-12 16:36:53 -05:00
6f74188fb1 scripts: regenerate vcxproj files when building daemon
Change-Id: I7e6b7ecf43ec19e9ac02019526335a1e127ab64e
2020-02-12 14:32:16 -05:00
fbeda91629 contrib: update OpenDHT
Change-Id: I3ca5b2a63abe9290a723e8ebcab47ce81275a088
2020-02-11 17:21:30 -05:00
aed1e342b7 jamiaccount: fix reply detection when multiple devices
Change-Id: I506a9e1649a683339dc9ebfaa1c18b0e9394bb20
2020-02-11 16:20:34 -05:00
6c5a1a88da Revert "media/codec: disable temporarily HEVC/H265"
This reverts commit ebd77cf1fb.

Change-Id: Id37a7263cb3b1a2c307e08cd20b9043ee7bf4a15
2020-02-10 17:51:10 -05:00
5f88485169 sipcall: avoid to block when hangup is called during onPeerRinging
Change-Id: Iada9a972ece86ea2536b9baa0b9e07b9bb2c35fc
2020-02-10 16:52:20 -05:00
fc96111cbb call: prevent crash
Prevent crash that was caused by receiving call when app shutdown was
starting but not finished.

Change-Id: I6304fb22512ef91275ed0b1a2a49246d5ea876bc
2020-02-10 16:03:15 -05:00
bcf2e8d789 codec: use AVCodecId instead of id for codec management
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
2020-02-10 15:22:36 -05:00
6ab0d2f204 tls: fix shutdown during file transfer or calls
Change-Id: I1ed610c2bfd72e8f092940be2e0e96129a4d64ba
2020-02-10 11:12:52 -05:00
56a87cc849 namedirectory: ignore final /
Change-Id: Ie6c67c2d195bc9d98f0b5a8b7f7de10f80554a30
2020-02-07 14:14:46 -05:00
bf3f1ac4f8 media/codec: enable h265 for windows
Change-Id: Icbf5ad283c16c953fce12cd0884cd781fcab1202
2020-02-06 16:41:16 -05:00
ebd77cf1fb media/codec: disable temporarily HEVC/H265
Add a new codec in the codec container creates an offset in the list of active codecs in config.yml file

Change-Id: I8148b921947317761ffd5840392f8f11d3696797
2020-02-06 12:53:56 -05:00
daa6effb81 accel: cleanup
Change-Id: I066b20464f54a82691811993aea7eeb17059f8fe
2020-02-05 17:13:12 -05:00
5efc224236 namedirectory: use full url for requests
Change-Id: I09a2c206d35c30c998f2f7978f98c466c0ba3921
2020-02-05 11:50:24 -05:00
6fd754dc77 contrib: update opendht
Change-Id: I692de8891a3350e52f1382a57ec43ccbb729e3bd
2020-02-05 11:50:24 -05:00
11c1afb659 sipaccountbase: avoid use after free for publishedIpAddress_
Change-Id: I2b6b5c81798b6fb9fbd977e64705bbd2d3364d27
2020-02-04 12:54:45 -05:00
1b6ab3dff0 media/codec: add of h265 (with hardware acceleration only)
Change-Id: I52d4ced3ed9fc2a58f1a5bf0f6be6aa45f4aa5d3
2020-02-04 12:54:11 -05:00
133638dcd4 accel: improve hardware acceleration detection and software fallback
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
2020-02-04 12:54:11 -05:00
ce6da76f4c p2p: fix tlsSession deletion
Change-Id: Ic65a866f1d769f57d7e831a7f90bc3ff678732a5
2020-02-03 14:01:49 -05:00
61196f55f5 tls session: use newState and call onStateChange's callback
Change-Id: I7fb16f21046eaf4bb6aa88a3af3d97da4c0a4e08
2020-01-31 15:01:07 -05:00
553a2978eb ringtone: fix for iOS
Change-Id: Ic0f1856fe5bd6f68717331c25847778ca105c5c7
2020-01-31 13:04:36 -05:00
3724d89949 jamiaccount: don't load proxy list if proxy is disabled
Change-Id: Id60ad54c256b6597bda16880169d1d8c4d4d0690
2020-01-31 11:14:50 -05:00
54c86661c7 contrib: update pupnp
Change-Id: Id08a5fb2c038256408fac127b88626cef325baa7
2020-01-30 15:34:25 -05:00
9e53aa4f7b upnp: connectivityChanged if not running
Change-Id: I3e4b9850b96c5bd2b312e1a89beceeab8ff0a59a
2020-01-30 15:27:37 -05:00
4a165f997e upnp: cleanup, remove mapping when unregistering
Change-Id: I67398c415e6fb9effa9bfbd0b8abff8703a4e0dd
2020-01-30 09:28:59 -05:00
c496049ff7 swig4: bump to swig 4
+ fix uint8_t conversion to jbyte
+ update JavaJNI2CJNI_Load.py to account for java inner classes

Change-Id: I9177a93611e6ef5b164586f70f20112bc8cc6f68
Reviewed-by: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
2020-01-28 12:22:04 -05:00
adf290f33e jamiaccount: add preferences for bootstrap, proxy lists
Change-Id: Ibb5cb02d8103b0944a55ed593f1f17ebd1985910
2020-01-23 11:34:29 -05:00
20a09c8735 contrib: update opendht
Change-Id: Idaa553d378700254a60c097a6c19f2c80a507e89
2020-01-22 16:38:17 -05:00
2d9e4562f6 yaml: throw if value not present
Change-Id: I9830989041247e093dbf99e95d72c13326ebfb4e
2020-01-21 15:45:06 -05:00
8d8da12acc fileutils: add way to save file from any raw data
Change-Id: I6b778ec237ab4f517a710f1a827d55a264341e07
2020-01-21 15:45:06 -05:00
dfdc0b6113 Dockerfile: remove libgsm
Change-Id: Ie55b08b063c7419e53c3844e5a94ea2a2c76e889
2020-01-21 14:15:26 -05:00
421a02db11 contrib: update opendht
Change-Id: I49a4a1b84fc59abd8d74f101c46be4e33b407c56
2020-01-17 16:32:21 -05:00
d8dfb1b5d4 pupnp: disable integrated mini web server
This fix a huge CPU consumption for mobile devices and we doesn't need
any server that serve UPnP related documents

Change-Id: I6eee8d9b14b710a7b1be237612f514abff23198d
2020-01-16 16:24:08 -05:00
2b5627c643 contrib: update opendht
Change-Id: I1dde09f8763af52a770c573504cbd1e4468e3469
2020-01-16 10:13:21 -05:00
f1ce96db4e video: support client and daemon input
This patch allows to choose at runtime if video input will be
from client or from daemon.

Change-Id: I77db3e13803e4cf0c28fc5a81f6df9002df96670
2020-01-16 09:19:06 -05:00
3216662aa0 ffmpeg: removes duplicate code in makefile
Change-Id: Iddf7ecd564bb58ebb21ddec9659cc07224a548c0
2020-01-15 10:33:23 -05:00
7149cbbb23 audio: start capture or playback stream.
Change-Id: If67bb0d338daca8d96a0398d0f9f0cbecb3293c9
2020-01-14 12:45:02 -05:00
ecc471059c message engine: retry messages for each new detected device
Change-Id: I01337b82106959cebd3e522d2051ee64a46a14de
2020-01-14 11:33:23 -05:00