1. 21 Jun, 2019 1 commit
  2. 20 Jun, 2019 1 commit
    • Sébastien Blin's avatar
      sip: negotiate both UDP and TCP for the control channel · e83a1006
      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
      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
  3. 30 Apr, 2019 1 commit
    • Sébastien Blin's avatar
      sonarqube: fix some code smells · 5aa17595
      Sébastien Blin authored
      + Remove some unused using
      + Remove useless std::move
      + Reduce duplicate code
      + Avoid some copy
      Change-Id: I7bdbc14aa1b79ce10d30f2f1ef005dd8839de62a
  4. 29 Apr, 2019 1 commit
    • Sébastien Blin's avatar
      ice: support RFC 6544 ICE over TCP · ee2fe1a4
      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
  5. 02 Apr, 2019 1 commit
    • Adrien Béraud's avatar
      sources: rename to jami · 2130f067
      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
  6. 02 Jan, 2019 1 commit
  7. 31 Dec, 2018 2 commits
  8. 21 Nov, 2018 1 commit
  9. 30 Jul, 2018 1 commit
  10. 07 May, 2018 1 commit
    • Sébastien Blin's avatar
      datatransfer: multi devices support when sending files · 55be1e14
      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's avatarPhilippe Gorley <philippe.gorley@savoirfairelinux.com>
  11. 05 Apr, 2018 1 commit
  12. 23 Mar, 2018 1 commit
    • Sébastien Blin's avatar
      datatransfer: supports canceling while transfering and multi-tranfer · 49ae2efe
      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's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
  13. 01 Mar, 2018 1 commit
    • Guillaume Roguez's avatar
      fix datatransfer · fe5e13c3
      Guillaume Roguez authored
      - implement "cancel" file transfer method
      - fixing various bugs found during testing
      Change-Id: Iea23cb3e2cdf8b4649afdf7436ec0701f9b67bdf
  14. 26 Feb, 2018 1 commit
  15. 09 Feb, 2018 1 commit
    • atraczyk's avatar
      build: update visual studio project and fix some build issues · 616d4785
      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
  16. 01 Feb, 2018 1 commit
  17. 30 Jan, 2018 1 commit
  18. 29 Jan, 2018 1 commit
  19. 23 Jan, 2018 3 commits
  20. 10 Jan, 2018 1 commit
    • Guillaume Roguez's avatar
      data transfer: fix data transfer destruction · 73dea6d8
      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: default avatarAnthony Léonard <anthony.leonard@savoirfairelinux.com>
  21. 09 Jan, 2018 1 commit
  22. 08 Jan, 2018 1 commit
  23. 05 Jan, 2018 1 commit
    • Guillaume Roguez's avatar
      data transfer: first implementation · 755347dd
      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"
      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: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>