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
    • 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
    • Adrien Béraud's avatar
      opensl: declare AEC interfaces as optional · 316d6fed
      Adrien Béraud authored
      Change-Id: I6ccffb6ed28255922db2ca752503c42269b982e2
  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
    • 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
  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
    • Mohamed Chibani's avatar
      upnp: refactor delete mappings by description · 1facf2b8
      Mohamed Chibani authored
      Change-Id: Ia723407cc2cdb4793e0d8b11c0d625b655005d45
      Gitlab: #420
    • 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
      To prevent this race, we lock the ctrl point and we ignore the callback
      if the client is registered.
      Change-Id: Ie6a3cb37fc189a271673e0935a5f03abce1ffc73
      Gitlab: #335
  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
    • 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
    • Pierre Lespagnol's avatar
      encoder: fix unset default bitrate for conference · 19702b7c
      Pierre Lespagnol authored
      Change-Id: Ia8e96b9bf414b215a9fee01474754778a8c24295
  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
    • 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
    • Sébastien Blin's avatar
      sipcall: always check sdp_ before accessing it · 4a1d4e2b
      Sébastien Blin authored
      Change-Id: I9d11246efa4c86534d2e8940510df3165e1119f6
      GitLab: #426
    • 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
    • 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
  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