1. 29 Sep, 2021 3 commits
    • Mohamed Chibani's avatar
      ice: decouple instantiation and initialization of ICE transport · 2a676123
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      Instantiation and initialization of ICE are done in a single
      stage (in the class constructor).
      To initialize the ICE instance, connection information must
      first be gathered asynchronously.
      However, when sharing ICE media instance between subcalls,
      it's better to have a valid ICE instance as soon as possible
      (even if not fully initialized) to proceed with the call
      initialization process, then wait for ICE initialization to start
      the call.
      Thus, the ICE instantiation will be performed synchronously as
      soon as the parent (main) call is created, then it will be
      initialized asynchronously when the connection info are ready.
      
      Gitlab: #619
      
      Change-Id: I9c97516238f1a690603975ec968c8c6733155d4a
      2a676123
    • Mohamed Chibani's avatar
      ice: share ice instance between subcalls · b98db961
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      Currently, when making an outgoing call to a Jami account with
      multiple registered devices, a new ice media instance is created
      for each subcall. This is not necessary, because all ice instances
      will be similar until the peer answers (and provide its candidates)
      But when the answer is received from the peer, all ice instances are
      destroyed except the instance of the successful subcall, which will
      be used to negotiate the media path.
      Instead, only one instance will be created for the parent call, and
      shared amongst the attached subcalls.
      
      Gitlab: #619
      
      Change-Id: I001c27f69d21b3ea640b189aea401e43c3f6bdef
      b98db961
    • Mohamed Chibani's avatar
      sipcall/ice: remove obsolete temporary shared pointer · 910a5c5d
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      This patch removes the temporary ICE shared pointer
      
      Gitlab: #619
      
      Change-Id: Icacac9df1102327d4d1a0f0d67dfa457016048cd
      910a5c5d
  2. 02 Sep, 2021 1 commit
  3. 16 Aug, 2021 1 commit
    • Mohamed Chibani's avatar
      ice: avoid duplicating srfx candidates · 34d45147
      Mohamed Chibani authored
      Avoid adding generic srflx candidates if UPNP candidates are
      available. This will reduc the size of the check list and also
      increase the chance for UPNP candidates to be selected.
      
      Change-Id: Ia1504beffe7e12063ff1c1ad0f54d65bb60496d6
      Gitlab: #607
      34d45147
  4. 11 Aug, 2021 1 commit
    • Mohamed Chibani's avatar
      ICE: add srflx candidates in answer · 1acdde67
      Mohamed Chibani authored and Adrien Béraud's avatar Adrien Béraud committed
      ICE srflx candidates are not added when answering a call. This
      could cause media ICE negotiation to fail if the local endpoint
      does not have TURN and UPNP enabled, and peer only has TURN enabled.
      Now, srflx candidates are added in the answer as done in the offer.
      
      Gitlab: #607
      
      Change-Id: I5af3e24e85846f518cf4f746d31c067dcf57ff15
      1acdde67
  5. 06 Aug, 2021 1 commit
  6. 03 Aug, 2021 1 commit
    • Mohamed Chibani's avatar
      rtcp-ice: fix setting of rtcp ICE component · 64e72a0b
      Mohamed Chibani authored
      RTCP default address might not be provided by peer in the
      received SDP, leading to misconfiguration of RTCP ICE
      socket. Now, when the RTCP default address is not present,
      the RTP address will be used instead.
      Note when ICE is used, the RTP/RTCP default addresses are
      only needed to identify the underlying ICE socket.
      
      Gitlab: #587
      
      Change-Id: Ia16eb7d25407e67b6ab5a29c18fc3c56e6fc15aa
      64e72a0b
  7. 02 Aug, 2021 1 commit
  8. 27 Jul, 2021 1 commit
  9. 23 Jul, 2021 1 commit
    • Mohamed Chibani's avatar
      media attribute: update media source only if set · d02e768e
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      When a new media list is provided (during a media change request
      for instance), the media source and source type will be updated
      only if set in the new media attribute list. This will prevent unwanted
      overwriting of media source and source type.
      This patch will fix the ut_media_negotiation unit test.
      
      Gitlab: #576
      
      Change-Id: If6f994def1e113265eeff0cce93fe5d314dffd5d
      d02e768e
  10. 22 Jul, 2021 1 commit
  11. 19 Jul, 2021 1 commit
    • Mohamed Chibani's avatar
      mute in conference: rework mute/un-mute of local host · 1cf24333
      Mohamed Chibani authored
      When a call is added to a conference, the control of the mute/un-mute
      state of the media of the call is taken over by the conference, and
      the mute state of the participating calls will be controlled by the
      state of the local host set in the conference, which basically consists
      of attaching/detaching the source to/from the mixer. Currently the local
      host mute state might not be correctly initialized, leading to
      inconsistent mute states.
      The proposed changes will correctly set the local host state according
      to the initial mute states of each call joining the conference.
      
      Gitlab: #576
      
      Change-Id: I0a746aae82da57222cc7ff91c2e39a1a2bbaff8e
      1cf24333
  12. 09 Jul, 2021 1 commit
    • Mohamed Chibani's avatar
      ut_ice_sdp_parser: rework test · 04ec59a1
      Mohamed Chibani authored
      Rework the test to use two audio streams instead of audio+video.
      This is needed to run the test on environments where the camera
      is not available (e.g. Docker). For this specific test, the media
      type is irrelevant, so using two audio media is acceptable.
      
      Gitlab: #516
      
      Change-Id: Idc4911d5aea5ffdd931bd7d63516ed484344d41c
      04ec59a1
  13. 02 Jul, 2021 1 commit
    • Mohamed Chibani's avatar
      sipcall: answer with audio only to empty offers · 60691866
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      Currently, when an empty offer is received, a media offer is
      generated with audio, and video if enabled in the account.
      Now, the generated offer will include only audio. Both
      participants can add video to the call if they wish.
      Also some code clean-up
      
      Gitlab: #556
      
      Change-Id: Id51bf44b2b84fd9341de4b67bf53963614088ef8
      60691866
  14. 29 Jun, 2021 3 commits
  15. 28 Jun, 2021 1 commit
    • Adrien Béraud's avatar
      sip: accept more version strings, cleanup · ffe7d64f
      Adrien Béraud authored
      Now support more possible version strings from the peer,
      in case of future changes:
      * 4-component versions (2.1.3.1)
      * <3-component versions (10 or 10.1), in case we want to provide
        less details to the peer about our version in the future.
      
      Also cleanup to use string-view (2 less string allocations).
      
      Change-Id: Ifbd35d203a47fc573b4670218ce4ccc9bebaecc5
      ffe7d64f
  16. 11 Jun, 2021 2 commits
  17. 28 May, 2021 1 commit
  18. 05 May, 2021 1 commit
    • Mohamed Chibani's avatar
      multi-stream: report an incoming call with a media list · bac6a6e9
      Mohamed Chibani authored and Adrien Béraud's avatar Adrien Béraud committed
      Currently, an incoming call is always assumed to have either audio
      and video media or only audio media.
      This assumption was removed and the incoming call are reported with
      the list of included media with some of their attributes as found in
      the call invite (SDP). This will allow to process calls with an
      arbitrary number of media.
      It will also allow to add new media to a call by requesting a media
      change using a SIP re-invite (with new SDP). For instance, add video
      to an audio-only call. The peer will receive the new offer and may
      choose to accept or not the new media.
      Not all media change requests require validation from the user/client.
      Meaning that for instance, if a new SDP (media change request) is
      received to notify that the peer muted it's audio, the media change
      request can be processed without requiring validation from the
      user/client.
      
      Gitlab: #445
      
      Change-Id: Ibc2b2501a3ec7e2c22f4e9d47cec3eda3dd43fef
      bac6a6e9
  19. 30 Apr, 2021 1 commit
  20. 20 Apr, 2021 1 commit
  21. 13 Apr, 2021 1 commit
  22. 09 Apr, 2021 1 commit
    • Mohamed Chibani's avatar
      Multi-stream: Create and update media of an outgoing call · a66b10c3
      Mohamed Chibani authored
      Add APIs to set a list of desired media to included when making
      outgoing calls.
      Also add APIs to update the media of an ongoing call. The update
      can be used for example to "mute/un-mute" a media, or to add a new
      media (add video to an audio-only call).
      
      Gitlab: #380
      
      Change-Id: Iab32a72547f3a0a2328408aadc6a7656c971a7b0
      a66b10c3
  23. 31 Mar, 2021 1 commit
  24. 16 Mar, 2021 1 commit
  25. 04 Mar, 2021 1 commit
  26. 25 Feb, 2021 1 commit
  27. 24 Feb, 2021 2 commits
  28. 18 Feb, 2021 1 commit
  29. 25 Jan, 2021 2 commits
  30. 14 Dec, 2020 1 commit
  31. 11 Dec, 2020 2 commits
  32. 29 Nov, 2020 1 commit