1. 25 Apr, 2017 1 commit
  2. 24 Apr, 2017 2 commits
  3. 21 Apr, 2017 1 commit
    • Adrien Béraud's avatar
      contrib: bump gnutls version · 3addcc04
      Adrien Béraud authored
      GnuTLS 3.5 is now the supported stable version of GnuTLS.
      As a security-critical component, it should be kept updated.
      GnuTLS 3.5 requires Nettle 3.3, also bumped.
      
      GnuTLS 3.5.11 adds support for the macOS system key chain,
      so the related patch is removed.
      
      Change-Id: Ie5eb54e195083dadedde7daabf227f77cca7105e
      Reviewed-by: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>
      3addcc04
  4. 20 Apr, 2017 3 commits
  5. 19 Apr, 2017 3 commits
  6. 18 Apr, 2017 1 commit
  7. 13 Apr, 2017 1 commit
  8. 12 Apr, 2017 2 commits
  9. 11 Apr, 2017 2 commits
  10. 10 Apr, 2017 2 commits
  11. 08 Apr, 2017 1 commit
    • Anthony Léonard's avatar
      video: save codec bitrate when quality is not auto · dffb0d6d
      Anthony Léonard authored
      Commit 1ed6a0fe revealed a
      case where codec quality is not saved and restored correctly
      when holding/un-holding if quality is not set to auto.
      
      The videoBitrateInfo_ struct of the VideoRtpSession is left to its
      default value where quality is equal to 0. When un-holding a call,
      the quality value to be used by the codec is then equal to 0 which
      put the codec in CBR mode. As the default bitrate on H.264 codec is
      very low (250 kbits/s), very poor quality was noticed on average resolution.
      
      We now initialize videoBitrateInfo_ with the default quality settings
      which makes the restored quality consistent on un-hold.
      
      Change-Id: I23ef27cae953bcf60f1f90b18e042c3affd8ecd0
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      dffb0d6d
  12. 03 Apr, 2017 2 commits
    • Alexandre Lision's avatar
      coreaudio: modern C++ · b6a1cdfb
      Alexandre Lision authored
      This commit is a duplicate of f3d677fb which has been reverted due
      to a regression in the OSX audio layer
      
      - replace malloc by C++ vector or new[]
      - use unique_ptr for dynamic allocations
      - use C++ cast than C cast
      - do not copy, use const&, & or move-idiom
      - replace NULL by nullptr
      - AAA rule
      - general coding rules
      
      Change-Id: I820b3cf8da7a65dfd087046d0d009d55cec2246d
      Reviewed-by: default avatarAlexandre Lision <alexandre.lision@savoirfairelinux.com>
      b6a1cdfb
    • Anthony Léonard's avatar
      video: disable auto quality by default · 1ed6a0fe
      Anthony Léonard authored
      Many problems arise when codec quality is set to automatic
      configuration. Micro-cuts can appear at a periodic interval
      during a call and network burst effects on a conversation
      last for a longer period than the burst itself.
      
      As disabling automatic configuration proved to fix those
      issues, it is now disabled by default.
      
      Change-Id: Ib5098d3acc77913d605034530a44a61d3003599d
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      1ed6a0fe
  13. 01 Apr, 2017 1 commit
    • Guillaume Roguez's avatar
      fix build on gcc below v5.2 · a28a8f63
      Guillaume Roguez authored
      gcc below 5.2 doesn't support usage of std::unique_ptr as method argument
      with a default assignement to nullptr if the type is forward declared.
      
      This patch is a quick fix, that remove the default assignement and
      force the value where needed.
      
      Change-Id: If619dceaed9cca9c9f00f3b9b3f92c768f2c1135
      a28a8f63
  14. 31 Mar, 2017 6 commits
    • atraczyk's avatar
      ringtone: prevent attempt to play ringtone file on UWP · aa47a9bf
      atraczyk authored
      - libsndfile was removed from the UWP and incoming ringtones
        are handled within the client. This patch conditionally prevents
        playRingtone from being called, so that an empty buffer is not
        played.
      
      Change-Id: Ib6f6fcfe4cb53eaf5114c344b51444c01940df2a
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      aa47a9bf
    • Guillaume Roguez's avatar
      sipcall: use dual-buffered ice transport · 2e3b0e00
      Guillaume Roguez authored
      This patch refactor the ICE transport system used for media streams
      by using a dual-buffered like transport:
      - one temporary used during the connection establishment
      - one used when established and used by other components
      
      When the established is used, the temporary is used to hide all the
      connection stuff that can take time to succeed.
      
      This has the (good) side-effect to resolve an issue on holding media
      during a call (unhold doesn't work, media using an old transport).
      
      Change-Id: I6b634443e06ece2dec2dd26a4b7ea429319d98d2
      Reviewed-by: default avatarAnthony Léonard <anthony.leonard@savoirfairelinux.com>
      2e3b0e00
    • Guillaume Roguez's avatar
      call: move ICE transport into SIPCall class · c04cde48
      Guillaume Roguez authored
      Just moving all ICE transport related methods from Call class
      into the SIPCall call.
      This is done in the mind of refactoring media transport system.
      
      Call is agnostic to transport implementation and this stuff
      has to be handled by concrete classes of Call that known all about
      transport information.
      
      Note: <algorithm> included in audiolayer.cpp to make this patch
      buildable on UWP platform.
      
      Change-Id: I04b780dcff3483237a2de3c47ee667df9bba9f97
      Reviewed-by: default avatarOlivier SOLDANO <olivier.soldano@savoirfairelinux.com>
      c04cde48
    • Adrien Béraud's avatar
      ringaccount: improve banned contact handling · c84633fc
      Adrien Béraud authored
      * addContact/removeContact have no effect if the contact is already
        added/removed
      * removeContact: works even if contact didn't exist
      * removeContact: add parameter to ban or just remove the contact
      * sync: properly sync banned status
      
      Change-Id: Ic76c02e7380b7de32803c02a28230341ae0ee802
      Reviewed-by: default avatarAline Bonnet <aline.bonnet@savoirfairelinux.com>
      c84633fc
    • Adrien Béraud's avatar
      trust store: fix bad pointer access · 760fa362
      Adrien Béraud authored
      gnutls_x509_trust_list_add_cas makes the trust list take ownership
      of the certificate. The certificate is then destroyed by
      gnutls_x509_trust_list_remove_cas.
      At this point using existing shared_ptr<Certificate> pointing to this
      structure will cause use of freed memory (bad pointer access).
      
      To fix this we use new dht::crypto::Certificate method getCopy(),
      that returns a raw gnutls certificate structure copy, to provide
      to the trust list or any other APIs taking ownership of the object.
      
      Change-Id: I6152ce0de5e463df01cfda0b18ef5c40a1739c2a
      Tuleap: #1548
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      760fa362
    • Adrien Béraud's avatar
      contrib: bump opendht and fix uwp build · 35550d22
      Adrien Béraud authored
      Bump OpenDHT to commit 09b4e71d (30/03/2017) to fix various bugs since
      last bump and to add new API to fix issues with certificate memory
      management.
      
      This includes a patch for UWP to build this new version.
      
      Change-Id: I80dc2aa5113a394b725764fa6c71b35b4b18a853
      Tuleap: #1548
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      35550d22
  15. 30 Mar, 2017 6 commits
    • Guillaume Roguez's avatar
      Move local ports management from Call to SIPCall class · b708fd23
      Guillaume Roguez authored
      Call class is an ABC and not supposed to know and even more handles
      how it's connected to the peer.
      This is the purpose of concrete classes as SIPCall.
      
      To respect this design local ports members and related API,
      used for medias, are removed from Call and re-implemented
      into SIPCall.
      
      Notice the removal of mutex use, not required as read and write are
      done in the same calling flow, and also the better RING_VIDEO define
      checks around localVideoPort_.
      
      Change-Id: I1feefe20a45f6b89b2eab448be78cd525e7a28c7
      b708fd23
    • Guillaume Roguez's avatar
      call: move media related API in dedicated header section · fe186bee
      Guillaume Roguez authored
      Media API are in refactoring.
      To help to this huge task this patch moves all media related
      API declaration from Call class header into a dedicated section.
      It's help maintainance and new insertion, then it help to detect
      what is wrong with current media design.
      
      Change-Id: I4f65436112337b4a44eea37680d56e0fb4f5696d
      fe186bee
    • Guillaume Roguez's avatar
      sip: remove annoying debug log · d3b9585c
      Guillaume Roguez authored
      Remove a log output that doesn't give any information even for general debug.
      It's a line for saying "I don't parse these event type" in SIP and this
      line outputs too often.
      
      Change-Id: I542e6d43a0da493b86924647c7a508e250e447f5
      d3b9585c
    • Guillaume Roguez's avatar
      Minor fixes in SIPCall class · 6dea0615
      Guillaume Roguez authored
      - remove 'virtual' keyword to overridded methods
      - remove 'inline' to methods inside class declaration
      
      Change-Id: I621523b62a41e6bfc23e716e50c71fcabf80131a
      Reviewed-by: Andreas Traczyk's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
      6dea0615
    • Guillaume Roguez's avatar
      Clarify SIPCall class header · e221a967
      Guillaume Roguez authored
      SIPCall API's is huge (~50 methods) and not easy to maintain
      (related APIs seem to be spread over the file).
      Some of them seem not even related to SIP!
      
      The patch tries to cleanup a bit the code and sort API's to emphasize
      relationships in those API.
      
      List of changes:
      - code cleanup (pragma once, fix comments, no extra indent)
      - API sorting:
        - class management (ctors/dtor/...)
        - overridden methods
        - SIP related
        - Non-SIP related
      
      This last block shows good candidates for refactoring.
      This will be done later.
      
      Change-Id: I235892c9a1118575a3b31c2f6854c32bf8b74aaf
      Reviewed-by: Andreas Traczyk's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
      e221a967
    • Guillaume Roguez's avatar
      video: fix jitter buffer size and delay · 4d42ed49
      Guillaume Roguez authored
      Correctly sets jitter buffer max delay (in us) to 1 sec instead of
      0.1 sec. Increases jitter buffer max size to keep up with larger
      packet sizes and resolutions.
      
      Change-Id: I9d608c7ed8353079186b0c2ad234683b3d0bcf69
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      4d42ed49
  16. 29 Mar, 2017 1 commit
    • Guillaume Roguez's avatar
      call: fix multidevice implementation · 6a93bcdc
      Guillaume Roguez authored
      Following patch was not reviewed (bussiness pressure):
      1dccd81b [multi-device: initial implementation]
      
      This patch repays it partially by fixing Call::addSubCall() and
      Call::merge() (and overloading) methods.
      
      Many weird and hard-to-debug errors are fixed, as example:
      when a device call is in ICE connection step and fails
      due to OpenDHT error, the device call is terminated but not the
      master call and client is not aware of the situation.
      
      It's a complex patch due to the interlacements of some changes.
      Consider it as a new implementation of multi-device inside Call/IM
      components.
      
      This is a lists of changes made:
      
      - add more documentation to indicate the intent.
      - use reference (&) rather than const shared_ptr<>& type
        as it's identical, if we know that we'll not keep a reference
        (like in merge).
      - add Call::getPtr() and SIPCall::getPtr() helper functions to
        simplify code when we need smart pointer on such objects.
        This also permits to make SIPCall::merge() private and
        more safe-to-bad-usage.
        This also removes the RTTI usage due to a dynamic cast and reduce API.
      - fix std::set() to use correct Compare method when type is a smart ptr.
      - use parent (Call&) rather than the "quiet" member, not always used
        as its name indicates and can reduce the code.
      - remove TRYING state set in addSubcall() as this call is already
        in this state.
      - lock callMutex at right places to ensure multi-thread safety.
      - replace "fat-lambda" by member method (lambda is an unnamed function,
        it's hard to debug in gdb, so keep it thin and simple to make sure
        we don't need to debug that).
      - better pending IM handling.
      - use "override" when we override a virtual method.
      - return immediately when instance maybe deleted as we relaxed smrt_ptr.
      - fix the incorrect state of the parent call when subcall is over.
      - do not send handle IM when subcall is being answered (it's the job
        of the parent call).
      - log pollution: replace RING_WARN by RING_DBG when we don't want to warn
      - remove/re-write log output to have consistency, useful and
        non-redundant information.
      - code cleanup, coding rules, logic blocks spacing, etc.
      
      Change-Id: I8da9747db6ca01d6a50dcde2378ecf8499cf6685
      Reviewed-by: Andreas Traczyk's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
      Reviewed-by: default avatarAline Bonnet <aline.bonnet@savoirfairelinux.com>
      6a93bcdc
  17. 28 Mar, 2017 2 commits
  18. 27 Mar, 2017 3 commits
    • Guillaume Roguez's avatar
      Remove dead API in Call/SIPCall classes · c0dfd893
      Guillaume Roguez authored
      Deadcode removal:
      - waitForIce*
      - isIceUsed
      - localAddr_ related
      
      Change-Id: I7360a6c2c14524de7f5ca783f60730fce9f5663f
      c0dfd893
    • Romain Bertozzi's avatar
      ios: open signals for iOS platform · 27d77de2
      Romain Bertozzi authored
      This patch opens signals for the iOS platform.
      The signals that are opened are:
          - GetAppDataPath
          - GetHardwareAudioFormat
      
      Issue: #1540
      Change-Id: Ia0a5d999aaf358a562fa8af58bc1c630fb1388f5
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      27d77de2
    • atraczyk's avatar
      fix: crash during unpack due to CRLF line endings on UWP · 1451a220
      atraczyk authored
      - The std::ios_base::binary flag needs to be used when opening
        files for output of encoded data on windows, otherwise bytes with
        the value 0A (LF) will be replaced with 0D0A (CRLF).
        This will cause deserialization to behave incorrectly.
      
      - This patch adds the binary flag where encoded data is saved for
        the name cache, id list, device list, node cache, contacts list,
        and incoming trust request list.
      
      Change-Id: I0b1b671014af1cb42bc2f76a1064bc6008c70419
      1451a220