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. 17 Apr, 2019 1 commit
  4. 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
  5. 02 Jan, 2019 1 commit
  6. 23 Aug, 2018 1 commit
  7. 23 Jan, 2018 1 commit
  8. 03 Jan, 2018 1 commit
    • Guillaume Roguez's avatar
      make TlsSession great again · bdafdfb4
      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: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>
      bdafdfb4
  9. 15 Feb, 2017 1 commit
    • Olivier SOLDANO's avatar
      Path MTU discovery implementation · 29ae5d8a
      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's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
      29ae5d8a
  10. 05 Jan, 2017 1 commit
  11. 02 Dec, 2016 1 commit
    • Guillaume Roguez's avatar
      fix SipsIceTransport implementation · e375f828
      Guillaume Roguez authored
      SipsIceTransport doesn't set internal PJSIP transport correctly
      causing many troubles in how our ICE/DTLS underlaying transport
      works with PJSIP.
      
      This patch:
      * adds a custom dtls PJSIP transport type
      * implement correctly custom PJSIP transport creation
      * revert unneeded patches about IM fixes (da0a2d17 and 0cf16b30)
        as this patch fixes also the 30s issue
      
      Side-effect: this fixes the 'call failed' effect when peer hangs-up
      
      Change-Id: If88b8245d6c9ff76bc2f2456f06ff65bc5e723b1
      e375f828
  12. 16 Jun, 2016 1 commit
    • Guillaume Roguez's avatar
      tls: remove async_send() and add send() API · 82ebcf8f
      Guillaume Roguez authored
      async_send() method was needed for SipsTransport class.
      But it's a dedicated behavior of PJSIP.
      To have a clean generic TlsSession class, this method was removed
      and a new synchronous send() method replace it.
      
      SipsTransport has been modified to implement the asynchronous
      send behavior requested by PJSIP.
      
      Change-Id: I3a68e36a33beab30cad19967d39f20598589ec30
      Tuleap: #660
      82ebcf8f
  13. 01 Mar, 2016 1 commit
    • Guillaume Roguez's avatar
      sips: fix send ack · dfb97916
      Guillaume Roguez authored
      send ack message was queued in a queue unstacked in
      the main thread, but this last is busy by application
      waiting for the ack... deadloop!
      This patch fixes this by calling the application ack
      confirmation callback immediatly when the TLS acknowledge
      the ack.
      
      Change-Id: Ic8fe6102acca184d78f86e3e8524382e9b257f4b
      Tuleap: #433
      dfb97916
  14. 15 Feb, 2016 1 commit
    • Guillaume Roguez's avatar
      security: extract TLS session from SipsIceTransport · c8f451e4
      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
      c8f451e4
  15. 03 Nov, 2015 1 commit
    • Guillaume Roguez's avatar
      sips: fix memory leak · 4302c6bd
      Guillaume Roguez authored
      This patch fixes a memory leak in SipsIceTransport class.
      gnutls_priority_init() allocates memory, no gnutls_priority_deinit()
      is called to free it.
      This last has been added in SipsIceTransport destructor.
      This patch also fixes code rules error on priority_cache_ naming
      (this is the variable initialized by gnutls_priority_init).
      
      Change-Id: I32a8a7347d4af96886a0def2d9a6d77fe0fad7c7
      Tuleap: #92
      4302c6bd
  16. 21 Sep, 2015 1 commit
    • Guillaume Roguez's avatar
      update Copyright header · 5236ab05
      Guillaume Roguez authored
      - remove OpenSSL exception
      - fix Savoir-faire Linux naming
      - fix common Author: representation
      
      Issue: #80663
      Change-Id: I6c3b2ca1ed48ed474a0ecd5a30fe793526e11b00
      5236ab05
  17. 25 Jun, 2015 1 commit
  18. 13 Jun, 2015 1 commit
    • Guillaume Roguez's avatar
      sips_transport_ice: fix threading issues · aa3af301
      Guillaume Roguez authored
      This patch moves SIP transport send request reply callback calls from
      internal thread loop to the MainLoop where SIP transport has been created.
      This prevents PJSIP crashes when some locks are deleted by not
      owning thread.
      This patch fixes also non-replied send request when they falls into timeout.
      
      Refs #75193
      
      Change-Id: Ia457d856962dce0d661de95bed651843119f0e24
      aa3af301
  19. 11 Jun, 2015 1 commit
  20. 10 Jun, 2015 1 commit
  21. 22 Apr, 2015 1 commit
  22. 27 Mar, 2015 2 commits
  23. 24 Mar, 2015 1 commit
  24. 20 Mar, 2015 1 commit
  25. 09 Mar, 2015 3 commits
  26. 27 Feb, 2015 1 commit
  27. 26 Feb, 2015 2 commits
  28. 23 Feb, 2015 3 commits