1. 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
  2. 11 Mar, 2019 1 commit
  3. 07 Mar, 2019 2 commits
  4. 02 Jan, 2019 1 commit
  5. 06 Dec, 2018 2 commits
    • Philippe Gorley's avatar
      recorder: remove expected/received streams logic · a2264383
      Philippe Gorley authored
      Caller should know what streams to add to the recorder and use
      Observable::attach before calling Recordable::startRecording.
      
      Change-Id: I14d19406cdaf047bd3b612c69775fc4ddbc21142
      a2264383
    • Philippe Gorley's avatar
      recorder: subscribe to audio/video sources · 351856e7
      Philippe Gorley authored
      Makes the MediaRecorder an observer on AudioInput, AudioReceiveThread,
      VideoInput and VideoReceiveThread, so they no longer need a reference
      to the recorder.
      
      Makes sure the framerate is set for the recorder by adding a way to get
      the stream parameters from the video receiver and input, since AVFrame
      does not carry framerate and time base information.
      
      Adds way to detach the recorder from the media sources, so it can be
      reattached on subsequent records.
      
      Change-Id: I71bac0825541f6445861f4f949288e1c62416f05
      351856e7
  6. 03 Dec, 2018 1 commit
    • Philippe Gorley's avatar
      audio: implement switch input · 10126454
      Philippe Gorley authored
      Lays the groundwork for file streaming by allowing the audio source to
      be changed while an audio input is active.
      
      Don't notify observers if there's no frame.
      
      Renames videoInput_ to mediaInput_ now that it is also used for audio.
      
      Change-Id: I0a10d4a339e77b890ee006a5f977383e8942505b
      10126454
  7. 30 Nov, 2018 1 commit
  8. 30 Oct, 2018 1 commit
    • Hugo Lefeuvre's avatar
      call management: add PEER_BUSY status · a031c92d
      Hugo Lefeuvre authored
      There is currently no distinction between the "peer busy" and "we
      replied busy after timeout" states, since both end in the BUSY state.
      
      Add a new PEER_BUSY state allowing such a distinction:
      * PEER_BUSY is set when peer replied busy
      * BUSY is set when we replied busy to an incoming call
      
      Bump daemon API number to major 7.0.0 since this is breaking the
      current API. In fact, these changes should not break anything in
      any well implemented client because unknown states should be properly
      handled, but better check.
      
      Change-Id: Id83f6db3d4524a91951b9945797f5fd2c019ff2f
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
      a031c92d
  9. 24 Oct, 2018 1 commit
  10. 13 Sep, 2018 1 commit
  11. 04 Sep, 2018 1 commit
    • Hugo Lefeuvre's avatar
      call management: add ringing timeout · 9a12c78a
      Hugo Lefeuvre authored
      Currently there is no timeout for received calls. If a peer is
      connected but doesn't answer a call, then this call will stay in
      RINGING state 'forever' until the calling user manually aborts
      it or peer becomes unreachable.
      
      This patch implements a timeout system: When a call starts ringing
      a job is scheduled in a fixed amount of time (corresponding to a new
      user preference, by default 30s) to check whether the call is still
      ringing or not. If the call is still ringing after timeout, hangup()
      is called with 486 (BUSY) state and ringing stops.
      
      Change-Id: I49218f5d4bdef8e4a8cee35fa6dde80f572b46c6
      Gitlab: #42
      9a12c78a
  12. 27 Jul, 2018 1 commit
  13. 26 Jul, 2018 1 commit
  14. 10 Jul, 2018 1 commit
  15. 03 Jul, 2018 1 commit
  16. 16 Jun, 2018 1 commit
    • Philippe Gorley's avatar
      sipcall: add peer uri · 2a20afcf
      Philippe Gorley authored
      For SIP accounts, peer uri contains a well formed sip uri. For Ring
      accounts, contains "ring:username" if a registered name is found, else
      "ring:ringid".
      
      Change-Id: I55bc46e905adf4cf8fe8ea955a2f9cb13438de7e
      2a20afcf
  17. 07 Jun, 2018 1 commit
  18. 06 Jun, 2018 1 commit
    • Philippe Gorley's avatar
      media: add video recording support · c21c5b77
      Philippe Gorley authored
      If there are 2 video streams, overlays local video over peer video. Peer
      video will be upscaled if it is too small, while local video will be
      scaled to 1/16th the size of the peer video.
      
      If there is only 1 video stream, uses peer video settings if they are
      valid, or fall back on local video settings.
      
      Adds title and description metadata to recorded file.
      
      Change-Id: I182de013e3ac2d18161eadf406fc6494e5f59a4e
      c21c5b77
  19. 04 Jun, 2018 1 commit
  20. 29 May, 2018 1 commit
  21. 23 Jan, 2018 2 commits
  22. 15 Jan, 2018 1 commit
    • Philippe Gorley's avatar
      accel: refactor and speed up fallback · ecf3e901
      Philippe Gorley authored
      Falling back from hardware to software decoding requires only a
      reinitialization of the AVCodecContext. Hardware decoding failure is no
      longer bubbled up to the RTP session, which makes it much faster.
      
      Change-Id: I79fdfcfa41f822b3299d74ac654146789fcfd97b
      ecf3e901
  23. 05 Dec, 2017 1 commit
  24. 04 Dec, 2017 2 commits
  25. 11 Jul, 2017 1 commit
    • Sébastien Blin's avatar
      media: fix pause issue · 12853b51
      Sébastien Blin authored
      Wait for ICE negotiation to end before hold or unhold the call
      
      Change-Id: I9e6ddf124cc345d60c3e8ceb14887cd4a09e3f19
      12853b51
  26. 15 May, 2017 1 commit
  27. 09 May, 2017 1 commit
  28. 12 Apr, 2017 1 commit
    • Guillaume Roguez's avatar
      sipcall: fix non used public address for media transport · b680e4f1
      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
      b680e4f1
  29. 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
  30. 31 Mar, 2017 2 commits
    • 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
  31. 30 Mar, 2017 1 commit
    • 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
  32. 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
  33. 27 Mar, 2017 1 commit
  34. 27 Feb, 2017 1 commit
    • Guillaume Roguez's avatar
      sipcall: fix nullptr access in remote sdp handling · a20eff52
      Guillaume Roguez authored
      sipvoiplink code may set remote sdp to nullptr and this case was not
      handled correctly later.
      This patch fixes that by not using the nullptr to set ICE call transport.
      Also moved the code to use the remote sdp, duplicated, into sipcall
      for factorization.
      
      Change-Id: I6dcfd3bebed3fd754c91dd7f2cab7ca110d3de09
      a20eff52
  35. 22 Feb, 2017 1 commit