1. 25 Feb, 2021 2 commits
  2. 24 Feb, 2021 3 commits
  3. 22 Feb, 2021 3 commits
  4. 19 Feb, 2021 3 commits
    • Ming Rui Zhang's avatar
      misc: omit cmake ZERO_CHECK to accommodate new vs update · 3b14731d
      Ming Rui Zhang authored
      daemon cmake ZERO_CHECK reference from ring-daemon vcxproj file
      will cause the build to fail for client qt sln on windows when
      using the newest Visual Studio
      
      Change-Id: I0488f65a636b28ab1ba9a2add4550d5ce9a52ca1
      3b14731d
    • Sébastien Blin's avatar
      rfc6544: fix "Connection refused" error code · f204ebb7
      Sébastien Blin authored
      4463ed9e introduced a regression
      and was checking for 70000+err instead of 120000+err.
      
      Connection refused is 120111 (PJ_ERRNO_START_SYS + 111) and
      not 70111 (PJ_ERRNO_START_STATUS + 111) leading to incorrect
      error detection and some negotiation failed.
      
      This patch also introduces some of the logs I used to debug this
      issue that can be useful if a similar scenario come back.
      
      Change-Id: I2a0e23f07f07ae81db14daea5d257976463c1133
      GitLab: #438
      f204ebb7
    • Adrien Béraud's avatar
      opensl: declare AEC interfaces as optional · 316d6fed
      Adrien Béraud authored
      Change-Id: I6ccffb6ed28255922db2ca752503c42269b982e2
      316d6fed
  5. 18 Feb, 2021 5 commits
  6. 17 Feb, 2021 2 commits
    • Sébastien Blin's avatar
      namedirectory: fix double free on requests_ · 34b53ccd
      Sébastien Blin authored
      the map should be protected to avoid erasing requests during
      the shutdown and in the callback
      
      Change-Id: I003b868239209c7ccd4f22274cbc2c949fefba2a
      GitLab: #440
      34b53ccd
    • Mohamed Chibani's avatar
      upnp: always delete released mappings · cafc155d
      Mohamed Chibani authored
      Currently, a released mapping is not deleted but rather set as
      available for future use. However, in some circumstances, the
      socket bound to the mapped port may take some time to be completed
      closed and ready for reuse. Which means if the mapping is reused
      shortly after it was released, the socket binding may fail  on the
      mapped port.
      To prevent this race, a relased  mapping is always deleted.
      Note that in the current implementation, new mapping will be
      automatically requested if needed.
      
      Gitlab: #413
      
      Change-Id: I9e6dce912aa14e29050669940b2846038b0a591c
      cafc155d
  7. 16 Feb, 2021 1 commit
  8. 15 Feb, 2021 3 commits
    • Mohamed Chibani's avatar
      upnp: improve IGD search · 13a365cb
      Mohamed Chibani authored
      This patch introduces the following  modifcations:
      1- The search for IGD and all requests will be  performed only
      if the local address is valid.
      2- A new search retry mechanism was introduced (similar to nat-pmp)
      to improve resilience against transient failures, in particular
      during a connectivity change. The search is perfomed a pre-defined
      number of times before it is definitely set as failed.
      3- The device UID was used to identify the IGD. However, some
      devices may have more than one IGD with the same device ID, which
      caused some of IGDs to wrongly ignored. This is problematic if the
      first IGD with the same device ID that was added does not pass
      the validation or does not respond successfully to mapping
      requests. Now, we use both the deviceId and the URL as identifier
      for the discoverd IGDs.
      4- Mapping address management was simplified.
      5- ICE will only considere mappings that have valid local address.
      
      Gitlab: #420
      
      Change-Id: I7eed337e9c1a190f6c42ebb1381957660f604410
      13a365cb
    • Mohamed Chibani's avatar
      upnp: refactor delete mappings by description · 1facf2b8
      Mohamed Chibani authored
      Change-Id: Ia723407cc2cdb4793e0d8b11c0d625b655005d45
      Gitlab: #420
      1facf2b8
    • Mohamed Chibani's avatar
      upnp: ignore callbacks from PUPNP lib if the client is not registered · 60d62cb9
      Mohamed Chibani authored
      A callback from PUPNP lib may be received during the shutdown of the
      daemon.
      To prevent this race, we lock the ctrl point and we ignore the callback
      if the client is registered.
      
      Change-Id: Ie6a3cb37fc189a271673e0935a5f03abce1ffc73
      Gitlab: #335
      60d62cb9
  9. 14 Feb, 2021 3 commits
  10. 13 Feb, 2021 1 commit
  11. 10 Feb, 2021 3 commits
    • Sébastien Blin's avatar
      connectionmanager: avoid multiple request if multiple connectDevice · 1689ace9
      Sébastien Blin authored
      Before this patch, connectDevice() triggered a new ICE negotiation
      until no TLS socket exists. This means, if when starting a
      communication with a Device by triggering two connectDevice() like
      a SIP channel and a data-transfer, two requests will be send.
      Now, connectDevice will store new connectDevice() requests into
      pendingCbs to only do one request at a time.
      Note that the other side can ask a new request via the DHT, in this
      case, behavior will not change, we accept all requests if
      authorized and this must not interact with the pendingCbs_
      
      Change-Id: I42a12458c364174e08531f568826da5b8348e08a
      1689ace9
    • Sébastien Blin's avatar
      connectionManager: fix answerTo logic · 8f35361a
      Sébastien Blin authored
      Previous answerTo's logic was weird. hasPublicIp() should be
      unnecessary here and we should send remote candidates when
      gathered (before ice->start).
      
      Change-Id: I3dc9466a1979878e5557fc7dd05cee6049935523
      8f35361a
    • Pierre Lespagnol's avatar
      encoder: fix unset default bitrate for conference · 19702b7c
      Pierre Lespagnol authored
      Change-Id: Ia8e96b9bf414b215a9fee01474754778a8c24295
      19702b7c
  12. 09 Feb, 2021 1 commit
  13. 08 Feb, 2021 1 commit
  14. 05 Feb, 2021 5 commits
    • Pierre Lespagnol's avatar
      sipcall: move ice destruction in IO pool · 36764836
      Pierre Lespagnol authored
      The ice transport destruction can take a while, move
      this in the io pool to avoid blocking the main thread.
      This patch fix the incorrect orientation for android
      devices after conferences.
      
      Change-Id: I7ce467628aa265c2e8afc140d3bb4980beebd2ae
      36764836
    • Mohamed Chibani's avatar
      upnp: Always use published address as reflexive candidates · bddba1ee
      Mohamed Chibani authored
      The external address of the IGD might not be always routable if
      the router is not directly connected to the internet.
      So we need to always add the published address returned by the DHT even if UPNP
      is enabled and actif. Failing to do so, and if the peer use only relay candidates,
      the TURN will reject all incoming connections from our public address because
      it were not in the candidates list and thus not authorized by TURN.
      
      The automatic reallocation of failing mappings was also improved.
      
      Change-Id: I5fb1424d5dc61b990595c229be647099b017eba1
      Gitlab: #335
      bddba1ee
    • Sébastien Blin's avatar
      sipcall: always check sdp_ before accessing it · 4a1d4e2b
      Sébastien Blin authored
      Change-Id: I9d11246efa4c86534d2e8940510df3165e1119f6
      GitLab: #426
      4a1d4e2b
    • Sébastien Blin's avatar
      ice: better handling for connection errors · 4463ed9e
      Sébastien Blin authored
      First, on_connect_complete dropped the connection errors but it
      must be handled for restarting failed check if necessary.
      Then, a problematic case was detected when the controlling agent
      got only a few active checks to do, but a passive will succeed.
      In the previous version the controlling was failing as soon as
      all active checks were checked. Now, if all active are failing
      the controlling agent will let some time for passive agents and
      then will decide to set the negotiation as failed.
      
      Change-Id: Ica728f55083a34496b031c859ed73b576e1eef26
      GitLab: #411
      4463ed9e
    • Mohamed Chibani's avatar
      upnp: use asynchronous version of PUPNP DeletePortMapping method · 546698a9
      Mohamed Chibani authored
      Calls to DeletePortMapping method are made synchronous which may cause
      lags. This might be particulary critical if the IGD does not respond
      fast enough since the calls are made on the shared main thread.
      
      Change-Id: I57366a70ffeb294e6277c4e8d946b339a8277309
      Gitlab: #420
      546698a9
  15. 04 Feb, 2021 1 commit
  16. 03 Feb, 2021 2 commits
  17. 02 Feb, 2021 1 commit
    • Mohamed Chibani's avatar
      upnp: unconditionally remove failed mappings · e9a6da65
      Mohamed Chibani authored
      In the previous implementation, a failed mapping was not removed if it's
      beeing used. The responsability was left to the owner to release it when
      done with it. This requires that all the owners implement the mapping
      callback and properly release the mapping. This might be somehow cumbersome
      and prune to error.
      Now, a failed mapping is automatically removed, and no further action is
      required from the owner. The mapping's owner will still receive a notification
      callback (if registered) when the state of the mapping changes to failed (or
      to any other state).
      
      Change-Id: I014ba3906b836efce3173fb22fbe298a4023db7e
      Gitlab: #335
      e9a6da65