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
      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
      e83a1006
  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
      5aa17595
  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
      ee2fe1a4
  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
      2130f067
  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>
      55be1e14
  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>
      49ae2efe
  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
      fe5e13c3
  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
      616d4785
  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>
      73dea6d8
  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"
      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: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>
      755347dd