- 21 Jun, 2019 1 commit
-
-
Adrien Béraud authored
This reverts commit e83a1006. Reason for revert: some major issues remain Change-Id: I6c59880ef9aacb1a0646c4879186b3f269b8541e
-
- 20 Jun, 2019 1 commit
-
-
Sébastien Blin authored
NOTE: SIP over TCP is disabled for now on Windows, waiting for TLS 1.3 support. To re-enable it, check the #ifdef _WIN32 in ice_transport.cpp Our pjsip version supports the RFC6544. With this patch, when starting a call, the daemon is using two ICE sessions for the SIP channel. One is negotiating a UDP socket, and the other a TCP socket and transmits both SDP on the DHT. If both negotiations succeed, TCP is prefered and will be used to transmit SIP messages and the VCard. This should solve the 30 seconds timeout on bad networks. Note that the media channel is still using UDP to transmit audio and video. MAJOR CHANGE: the SIP channel use TLS on top of TCP, no DTLS, so the transport is considered as reliable. Also lot of changes in rfc6544.patch to link to rfc6062. The patch needs to be cleaned, cf TODO notes Also this seems to fix the ICE shutdown at the end of the call (after the IDLE Timeout) Change-Id: I55c5f51377fd8787bc951d6d282eec46f8eaf977 Gitlab: #103 Gitlab: #108
-
- 30 Apr, 2019 1 commit
-
-
Sébastien Blin authored
+ Remove some unused using + Remove useless std::move + Reduce duplicate code + Avoid some copy Change-Id: I7bdbc14aa1b79ce10d30f2f1ef005dd8839de62a
-
- 29 Apr, 2019 1 commit
-
-
Sébastien Blin authored
This patch is the first one used to perform ICE over TCP. Leads to major changes: + IceTransport has now a tcpEnable parameters to use TCP instead of UDP. Also, this patch makes ICE aggressive nomination available. + File transfer is now usable without TURN in a local network. For now, UPnP is not supported, this will come in a near future. Now, it can use a direct connection between two pairs. If the negotiation between peer fails, the TURN is used as a fallback. Moreover, to avoid breaking compability when a peer wants to connect, it will send the SDP message followed by TURN ips (like the current version). Change-Id: I0425c7da34ff2bc272c376261847195be768d522
-
- 02 Apr, 2019 1 commit
-
-
Adrien Béraud authored
* rename namespace from ring to jami * rename logs methods from RING_* to JAMI_* * rename RING_VIDEO to ENABLE_VIDEO Change-Id: Ic98498652d7059fafe58a96220d565bcdfa53658
-
- 02 Jan, 2019 1 commit
-
-
Sébastien Blin authored
Change-Id: Ia4ed75d04a284efa0763c917aeaa2f08863a87cb
-
- 31 Dec, 2018 2 commits
-
-
Sébastien Blin authored
Change-Id: Ibbf85bd1449785feee76067341c908cbd8dc4ea2 Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
Sébastien Blin authored
+ Rename connect->waitForReady (that is the goal of that method) + Remove while loops to wait for a new state (use condition_variables) Change-Id: I9f763245e4bd0300fab2f015704366a2c43ace88 Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
- 21 Nov, 2018 1 commit
-
-
Andreas Traczyk authored
- unfortunately, windows sockets are not file descriptors and are invalid parameters for close() Change-Id: I3ff28af672718e6394f22f7df7f1d36d9b9cacb9
-
- 30 Jul, 2018 1 commit
-
-
Andreas Traczyk authored
Change-Id: I02061e1319499e694817000e6184d1735c67261f
-
- 07 May, 2018 1 commit
-
-
Sébastien Blin authored
With the current implementation, when a user send a file to a contact who got several devices connected, a request will be sent to all of these devices and the first which answer will get the transfer. So, a user can't know on which device they will get the file. With this patch, in the same configuration the peer will receives the file on all of its devices and add the possibility to accept or refuse the file. To avoid to see multiple file transfers because a peer has several devices, I introduced a OptimisticMetaOutgoingInfo which represents the best current state of the transfer (for example, if one subtransfer is ongoing and one failed (cause refused) it will show the outgoing one). This is an ongoing work, in the near future we must: + Give the ability to clients to see the real status of each subtransfer (with the ability to cancel/retry transfer by devices) + Add a timer to close awaiting transfers to avoid to let a unused connection for too long. Change-Id: I84eb243bff2bfdc087a83dd7eced45c361f27d16 Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
- 05 Apr, 2018 1 commit
-
-
Sébastien Blin authored
A buffer can arrive before the ATTACH_INPUT or ATTACH_OUTPUT, we should store this buffer and inject it as soon as a stream is attached or we might have a blocked data transfer. Change-Id: I110f7edc3d3e93fc4a9349c9e8a6d6aed699984b
-
- 23 Mar, 2018 1 commit
-
-
Sébastien Blin authored
This patchs implies a lot of changes for file transfer. First, a TURN connection is made only for one file transfer. This allows us to cancel a transfer by closing this connection without cancel future file transfers. The TURN connection is closed when a transfer is finished or canceled. Avoid to keep unused connections. Second point, a ftpserver uses the id of its attached stream. Note: removed unimplemented refuse and abortStream in peer_connection Change-Id: I65ba104066de0494ba5a7954f0fad63eb2c9d6ac Reviewed-by:
Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
-
- 01 Mar, 2018 1 commit
-
-
Guillaume Roguez authored
- implement "cancel" file transfer method - fixing various bugs found during testing Change-Id: Iea23cb3e2cdf8b4649afdf7436ec0701f9b67bdf
-
- 26 Feb, 2018 1 commit
-
-
Guillaume Roguez authored
Add support for "wait_peer_acceptance" state. Now a sender blocks until it receives acceptance from receiver. Change-Id: I3252a9c20c1ef2f2e1da573c570b99d816cbb451 Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 09 Feb, 2018 1 commit
-
-
atraczyk authored
- adds rfc6062 patch for pjsip 2.5.5 for uwp - updates files built by the vs project (adds some related to file transfer, removes those that are deprecated) - corrects native build problems - simplifies project layout - links the minimal client with libdl(temp fix) Change-Id: Ib82b0470f568cb79dc1f4353cb5a5ef20de93033
-
- 01 Feb, 2018 1 commit
-
-
Guillaume Roguez authored
PeerConnection eventloop was blocked on receiver side on a read() call. Use a polling method to let possiblity to event msg to be handled. This fix non-working data transfer cancelation. Change-Id: I602b6ba27091e59ad0978f4e4023204d39ee8223 Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 30 Jan, 2018 1 commit
-
-
Guillaume Roguez authored
To dectect TCP RST event at initiator side this patch does following actions: * add waitForData() implementation everywhere * forward transport errors by TLS session. * use waitForData()/read() inside PeerImplementation eventloop to detect read() broken pipe error transmitted by TLS. * ignore SIGPIPE signal (detected by read now) to not stop the application. Change-Id: Ia5721e11ce52ba606a5395ecda3122b64f4afa6d Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 29 Jan, 2018 1 commit
-
-
Guillaume Roguez authored
Implementation based on dht::crypto::TrustList was not able to remove the disconnected peer (API to do so doesn't exist). Re-implement another system to check incoming TLS certificates. Change-Id: I230775d22dde0b4b0a6768b7db3c94faef56634b Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 23 Jan, 2018 3 commits
-
-
Guillaume Roguez authored
Change-Id: I1ef88bc640f79790aad2b5285ea2c776aa8cd366
-
Guillaume Roguez authored
This certificate is know after a successful connect(). Change-Id: Ie8a351a1c6b97ec65c7d92b8ef4432d412f357eb Reviewed-by:
Nicolas Jäger <nicolas.jager@savoirfairelinux.com>
-
Guillaume Roguez authored
Compare only public Id is not secure enough to ensure certificate comparaison. Use a byte-comparaison to verify the peer certificate during TLS certificate checkings. Change-Id: Ic90877ba3722e69d833f3adf841b3ebde8e44d9f Reviewed-by:
Nicolas Jäger <nicolas.jager@savoirfairelinux.com>
-
- 10 Jan, 2018 1 commit
-
-
Guillaume Roguez authored
fix crash occuring during data transfer destruction due to nullptr access when the turn transport is destroyed. list of changes: * fix Turn/PJSIP callbacks registration (was a NPA due to unique_ptr dtor implementation) * add a shutdown method to GenericSocket. * implement shutdown into TlsSession and TurnTransport. * use shutdown to unlock PeerConnection blocked into a read. * do not call blocking methods that raises CtrlMsg into the eventloop. * destroy clients/servers before turn socket . * fix Turn pool cache destruction causing bad mem free. Change-Id: I9995ce9419e8af965def9328a5de4a8973a4334f Reviewed-by:
Anthony Léonard <anthony.leonard@savoirfairelinux.com>
-
- 09 Jan, 2018 1 commit
-
-
Guillaume Roguez authored
io error in endpoint write operation was not handled. Add this by this patch and fixes write issues (ex, when peer disconnect). Change-Id: I24dada649f4d9f9627d2d2ff8efcea2b2d44b4ad Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 08 Jan, 2018 1 commit
-
-
Anthony Léonard authored
static constexpr in class/struct need to be redeclared in namespace scope until C++17 (at which point it will be deprecated). Change-Id: I27f0448edd65f9d7d51ad5eb7263c76d17563072 Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 05 Jan, 2018 1 commit
-
-
Guillaume Roguez authored
First implementation of Reliable Data Transfer feature in Ring. This implementation is a draft, comes with a Python script tools/dringctrl/sendfile.py to play with and doesn't implement all the API as described into "datatransfer: API proposal" commit. This version uses TLS over TCP-TURN sockets to encrypt data. Transfers require a TURN server with TCP peer connections as described by the RFC-6062. Testing: Currently only sendFile API is implemented and data are saved into a temporary file saved in "/tmp/ring_XXXXXX", where XXXXXX are replace by mkstemp() command. Change-Id: I5b8f48432edd58df5046e368a99f58ea44046dcd Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-