- 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 2 commits
-
-
Sébastien Blin authored
P2P file transfer should support UPnP as a NAT traversal technique. Change-Id: I62f9990fd646c874f611d3dba7277bef54caeb46 Gitlab: #86
-
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
-
- 08 Apr, 2019 1 commit
-
-
Adrien Béraud authored
std::string includes the string size. Use that size to initialize pj_str_t instead of calling strlen. Also make constexpr some static strings Change-Id: Icc1cdd16ad17aa03c16f44aef10cbe949e16ff0b Reviewed-by:
Sébastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 02 Apr, 2019 2 commits
-
-
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
-
Adrien Béraud authored
Change-Id: Ia7c6cf3b0215f10bdb36c8c9bd4160501d7f3fa8
-
- 02 Jan, 2019 1 commit
-
-
Sébastien Blin authored
Change-Id: Ia4ed75d04a284efa0763c917aeaa2f08863a87cb
-
- 18 Sep, 2018 1 commit
-
-
Adrien Béraud authored
Change-Id: Ia9e6bfe6623b5198e6485fea99068005ee55559a Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
- 13 Sep, 2018 1 commit
-
-
Adrien Béraud authored
Change-Id: I9f5bb169861f841e3efafbeae1b3f321b3df1a5b
-
- 07 Sep, 2018 1 commit
-
-
Adrien Béraud authored
Change-Id: I65ba7e0ad6b9490e0816e175ea95574f34626851 Reviewed-by:
Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
-
- 30 Jan, 2018 2 commits
-
-
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>
-
Olivier SOLDANO authored
when the remote (server) has a IPV6 interface selected by ICE, and local (client) has a IPV4 selected, the path MTU discovery triggers errors for packets too big on server side because of different IP headers overhead. Hence we have to signal to the TLS session to reduce the MTU discovery packets payload size on client side accordingly. [GR: use GenericSocket class to export local/remote address] Change-Id: I724b97c9ccd5e7240a87fb60ef000b4485710131 Signed-off-by:
Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> Reviewed-by:
Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
-
- 23 Jan, 2018 1 commit
-
-
Guillaume Roguez authored
Change-Id: I1ef88bc640f79790aad2b5285ea2c776aa8cd366
-
- 03 Jan, 2018 1 commit
-
-
Guillaume Roguez authored
Or at least independant of underlaying transport... To make TlsSession able to handle both TLS and DTLS this patch removes the ICE dependency and replace is by the generic network ABC class 'GenericTransport'. As a first step this class is declared in tls_session.h. Side effects of this change are: * refactoring of PMTUD procedure: 'MTU' for gnutls has the meaning on 'payload-for-gnutls' so this information is now drived by the generic transport and not hardcoded anymore. The minimal value of probing remains hardcoded, as is a minimum given by RFC's documentation and it's based on an IPv4 packet associated with UDP protocol. * getMtu() is now maxPayload() and represent correctly what the application must have. * TlsSession implements itself GenericTransport: we can chain GenericTransport instances to construct an overlayed transport protocol. * TlsSession is now considered as non thread-safe for its public API. Caller must bring itself this property. This permit to remove a redundant mutex in send() operation. Note: and it's the case in the only user (SipsIceTransport), that why the mutex is redundant in 100% of cases. Notice the benefit of this genericity refactoring let us write a unit-test for this TlsSession class without having an heavy ICE transport to mock-up. Also ICE transport gained of this by adding a new IceSocketTransport to replace IceSocket in a near future (need async IO in GenericSocket, but not required for the moment). Change-Id: I6f4591ed6c76fa9cb5519c6e9296f8fc3a6798aa Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 05 Dec, 2017 1 commit
-
-
Guillaume Roguez authored
Continue the compilation firewall work. Also update code to use C++14 features. Rationale: prepare the change to a new transport abstraction over the project. Change-Id: I4d387bea8447f5dc251a6bd64ecb63b234bd1cdf Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 01 Dec, 2017 1 commit
-
-
Guillaume Roguez authored
Remove IceTransport::getNextPacketSize() API and IceSocket one. Unused and on-going to be deprecated API. Change-Id: I6cdf72e81838411060e3cae636b156f309200e14 Reviewed-by:
Nicolas Jäger <nicolas.jager@savoirfairelinux.com>
-
- 19 Nov, 2017 1 commit
-
-
Guillaume Roguez authored
This is a helper to detect cases where the connection cannot be established due to absence of public addresses. Change-Id: Ibfdc221624f5edc9e8e0b9bcebc35e2b5335770f
-
- 21 Jun, 2017 1 commit
-
-
Guillaume Roguez authored
move register_thread function into sip_utils namespace and reduce code duplication. Change-Id: Iff38e0b89a9780d94949a1dbce1ef2c4d4ab4e27
-
- 28 Apr, 2017 2 commits
-
-
Guillaume Roguez authored
Add transport pointer value at each log to make clear which transport is impacted. Change-Id: I6704cc54351a371618df4bf29184748e23580d38 Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
Guillaume Roguez authored
This patch fixes an PJSIP assert due to an invalid access on a disabled component, by getLocalAddress/getRemoteAddress API. Change-Id: Ic42b03cc373085344ea7f4bbde5bd4f322034c12 Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 12 Apr, 2017 2 commits
-
-
Guillaume Roguez authored
Move the registering of public IP for media transport (ICE) at the right place: after its initialization. Before, the ICE register method was silently return immediatly without registering. This has effect to give a better connection (real P2P) if possible. A error log has also been added in the ICE publc IP register method to detect such case. Change-Id: If88a6801aa55833f687cd552033efe579ab29393
-
Guillaume Roguez authored
Print as log debug the list of local/remote connection pairs, one per component, when the negotation of an ICE transport succeed. Useful to know how we are connected. Change-Id: Ife42dd17251f9c35dd8df4882b53ef18263f7865 Reviewed-by:
Olivier Soldano <olivier.soldano@savoirfairelinux.com>
-
- 16 Mar, 2017 1 commit
-
-
Guillaume Roguez authored
PJ_ICE_CAND_TYPE_PRFLX candidate type was not supported in SDP. This patch adds support for that. Not supporting this type has a minor impact, but we may miss some connectivity possibility. Change-Id: I8acd810aee4d262083c60d1fc860f5854a822a9d Reviewed-by:
Anthony Léonard <anthony.leonard@savoirfairelinux.com>
-
- 15 Feb, 2017 1 commit
-
-
Olivier SOLDANO authored
This implementation uses gnutls dtls heartbeat API to test path MTU. heartbeat allowing messages with automated response in a datagram, the application is able to guess the MTU via a timeout in the heartbeat. (timeout on packet sent and no response, implies that the MTU is lower than the lost payload.) To minimize false positives (a response is lost for example), each attempt triggers one retry on the first timeout. This version ensures a minimal MTU of 512 bytes will be returned in case of any failure in the procedure. For retrocompatibility with non heartbeat capable clients, a fallback MTU is set at 1280. Change-Id: Ib9a7f63a70e8bdad239d8fc103779a0f2c387e87 Reviewed-by:
Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
-
- 12 Jan, 2017 1 commit
-
-
Guillaume Roguez authored
This patch uses the fist IPv6 address given by DHT nodes as public address used for ICE negotiation. This address is used in priority, overloading any previous one registered, in particular over IPv4 one. Change-Id: Ie3b3d9edcfe61871adcb87b965860530ab4f1d31 Reviewed-by:
Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
-
- 05 Jan, 2017 1 commit
-
-
Guillaume Roguez authored
Change-Id: I6dbc51dd41c1f44d1446fe7365026af037bc86d9 Reviewed-by:
Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
-
- 15 Dec, 2016 1 commit
-
-
atraczyk authored
- Causes the UWP build condition to use thread_local when registering threads with pj_thread_register(), as __thread is not available. Note: __declspec(thread) is also equivalent. Change-Id: Ibee418d4c7084264acb0591015cdb8f72abc50ba Tuleap: #790
-
- 31 Oct, 2016 1 commit
-
-
Guillaume Roguez authored
WARNING: this patch breaks the compatibility of ICE message format. This patch introduces a new ICE message format to serialize ICE transport information. This format permits futur evolutions of this functionality by: - adding a version tag to indicate the format used - use msgpack to have a compact and easy way to handle data Change-Id: I1df6197e487ec119cf55a34fc531d2514f6fcf16 Reviewed-by:
Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
-
- 29 Oct, 2016 1 commit
-
-
Guillaume Roguez authored
addReflectiveCandidate is a hack of how PJNATH ICE transport work and has made some assumptions only available on PJSIP 2.4.x. PJNATH has changed of implementation when PJSIP 2.5.5 has been released to support IPv6 addressing. This bump to 2.5.5 invalids these assumptions causing some nasty effects when addReflectiveCandidate is called (ex: UPnP). This patch adapts the hack by a wonder-more-powerful hack. It hacks the ICE transport STUN server array, that normally filled by at leas one or two local host IP (as a local host is seen as a local STUN server by PJNATH ICE transport layer). This permits internal PJNATH implementation to be "happy". -sorry Change-Id: I38d133bd8891675251521e14916eeeaa557703f2 Reviewed-by:
Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
-
- 26 Oct, 2016 1 commit
-
-
Guillaume Roguez authored
This patch implements the possibility of set multiple STUN and TURN servers to an ICE transport. This also by same way fixes bad given username/realm (security fix). Change-Id: Ibcc249c78fd4ef5f5657806b2354b5914bf8a360 Reviewed-by:
Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
-
- 18 Oct, 2016 2 commits
-
-
Guillaume Roguez authored
This patch contains following changes: * getLocalAddress : wasn't return the negotiated IP if available * getRemoteAddress : do not check for negotiation state * some debug added This fixes bugs during call establishement when IPv6 pair is negotiated, but an IPv4 TURN is given as candidate (and not selected, but used as default IP). Change-Id: I89a973c16674b24cce35dc6dd9433554cb3a41bd Tuleap: #891
-
Guillaume Roguez authored
This commit patches PJSIP to not terminate with failure an ICE stream transport during its initialization if a TURN is set and this one is unreachable. In such situation, as we don't try to negotiate with remaining candidates, we don't let the session have a chance to succeed with these candidates. The commit also fixes an "over-trying" of contact the TURN server: a contact phase is normaly done PJ_STUN_MAX_TRANSMIT_COUNT (7 currently) time with an incrementally sized duration between tries. But the whole process is made PJ_TURN_MAX_DNS_SRV_CNT time (was 4, changed for 1) even if it's always the same IP. This leds with our current settings to an very long time before contact phase timeout (around 2 minutes!). We also increase number of STUN servers per transport (PJ_ICE_MAX_STUN) to 3 as we need 2 entries for IPv4 and IPv6, and one set by user. Finaly, our code is changed to not depend on an timeout now for the Ring account ICE initialization (the one for SIP), to let TURN registring enough time to succeed. This fixes also blocking client issue when it want to cancel the call during this init phase. Change-Id: I1aa2e95c1668d4706213930526aaccaffbe0538d Tuleap: #1047
-
- 17 Oct, 2016 1 commit
-
-
Guillaume Roguez authored
This patch follows the bump of PJSIP to 2.5.5 version, introducing IPv6 support to PJNATH library. - ICE configuration is modified to support IPv6 STUN and TURN servers - we add by default the host addresses in IPv6 and IPv4 (in this order, so IPv6 can be selected in priority) Tuleap: #891 Change-Id: Ia0355c2691e3d03346e85295265dd9acc424d58e
-
- 01 Jun, 2016 1 commit
-
-
aviau authored
This new method allows for testing the initialization of an ICE transport with the current account configuration. Tuleap: #671 Change-Id: I364958ea420186e44275b47c4b2a6a7c99ff1fe1
-
- 26 Apr, 2016 1 commit
-
-
Guillaume Roguez authored
This patch increases STUN RTO to 500ms. This gives a better total time to check all ICE connections (during negotiation). The previous RTO let less than 8s, too short for ICE messages exchange over DHT. Change-Id: I8088abdc4d2306931adb3fdc19edda290479ab6f Tuleap: #614
-
- 09 Mar, 2016 1 commit
-
-
Guillaume Roguez authored
tools/update-copyright script used for that Change-Id: I89b13300d9ccbdbcd47dba679ba64be82499e83d Tuleap: #454
-
- 15 Feb, 2016 1 commit
-
-
Guillaume Roguez authored
TLS session (class handling gnutls session client/server) has to be extracted from SipsIceTransport class. This last is PJSIP transport related, but we need TLS session to securise other kind of network socket. This extract has moslty re-written all previous classes has the global working model has change. This also introduces: - flood protection in server SYN cookie state - better FSM model in TLS session - network statistics recording - simplify SipsIceTransport design - ICE fixes to not block in waitForData() if ICE is stopped - integrate Diffie-Hellman params generation from RingAccount Change-Id: I32cf1f0c82dee548912d9efdaca5a4447ab05ec7 Tuleap: #106
-
- 27 Jan, 2016 1 commit
-
-
Alexandre Lision authored
When there is no internet connection, an error is thrown in IceTransport constructor. This destroys what has already been initialized including the thread. Change-Id: I81b6ec1f52b9312a1d6ea24c5f55dfa94da7e877 Tuleap: #189 Tuleap: #258
-
- 18 Nov, 2015 1 commit
-
-
Guillaume Roguez authored
IceTransport::isXXX() API are not thread-safe, not clear in which state the transport is and not easy to manipulate (order of state). This patch tries to solve that by: - Procted API by a mutex - Remove uneeded isComplete() API - Ensure that each API are ordered (one at true implies true on all lower states: INITIALIZED -> STARTED -> RUNNING). All return false on Fail state. - Change usage accordingly Tuleap: #107 Change-Id: I17211e54322d70bbfe18c28f06cf9967b9ef93d2
-
- 21 Sep, 2015 1 commit
-
-
Guillaume Roguez authored
- remove OpenSSL exception - fix Savoir-faire Linux naming - fix common Author: representation Issue: #80663 Change-Id: I6c3b2ca1ed48ed474a0ecd5a30fe793526e11b00
-