Skip to content
Snippets Groups Projects
  1. Jan 28, 2022
    • Olivier Dion's avatar
      test/agent/jami/signal: Add syntax rules for signal handlers · 945c4ce9
      Olivier Dion authored
      Small helpers for signal handling.
      
      `with-signal-handler` is useful for scoping signal handler and
      `with-signal-handler-sync` for signal synchronization.
      
      Change-Id: Idc7696fb273003d526f3a4658e7fb5623c2c5827
      945c4ce9
    • Sébastien Blin's avatar
      swarm: sync read status across devices · 84c7c9de
      Sébastien Blin authored
      Because swarm is a synched history compatible with multi-devices,
      if a message from the swarm is read on one device it should be
      synchronized with other devices as much as possible.
      The idea of this patch is to add lastDisplayed sent in synched
      datas to allow clients to update the read status. However, there
      is several scenarios to take into account, because the history
      can be partially synched across devices.
      
      5 scenarios are supported:
      + if the last displayed sent by other devices is the same as the
      current one, there is nothing to do.
      + if there is no last displayed for the current device, the remote
      displayed message is used.
      + if the remote last displayed is not present in the repo, it means
      that the commit will be fetched later, so cache the result
      + if the remote is already fetched, we check that the local last
      displayed is before in the history to replace it
      + Finally if a message is announced from the same author, it means
      that we need to update the last displayed.
      
      If the last displayed message is updated, AccountMessageStatusChanged
      is triggered for the client.
      
      Doc: https://git.jami.net/savoirfairelinux/jami-project/-/wikis/technical/2.3.%20Swarm
      Change-Id: Iedd29129d72cbeb43499471bdfd492dd4d49dcb6
      84c7c9de
  2. Jan 26, 2022
    • Sébastien Blin's avatar
      jamiaccount: add test for migrations · d1bc9390
      Sébastien Blin authored
      Accounts can see their certificates expire. When it's the case, a
      migration is needed. However, several regressions can happen, because
      this behaviour can be tricky to test correctly. In this patch, a
      test is added to validate that the migration is done whenever the
      certificate expires.
      
      + OpenDHT needs to be bumped in order to be able to change the validity
      period of a certificate.
      + In ArchiveAccountManager, a method is added to change the validity
      of a certificate in the chain.
      + This patch also fixes a crash when a migration occurs directly on
      the archive (info_ was null causing a segfault).
      + Finally, cleanup some signatures unused in JamiAccount.
      
      GitLab: #684 (this is some preparative work)
      Change-Id: I901bc67fd63ce2ab26ded64662f8333d3a0eed50
      Unverified
      d1bc9390
  3. Jan 25, 2022
    • Sébastien Blin's avatar
      conversationrepository: fix isValidUserAtCommit · 9fa8bf16
      Sébastien Blin authored
      The method was bugguy, because the whole point here is to check
      if the conversation contains enough informations at this point to
      validate the user, not to compare with pinned certificate.
      Moreover, a user can sync the history from another device, without
      ever connecting to the original author, so the certificateStore
      will not have the device certificate in this case, so only uses
      from the repository.
      A test is added to reflect this.
      
      Change-Id: I3af5e7769174eedcb54e17181d4530593960c9c9
      9fa8bf16
    • Mohamed Chibani's avatar
      SIP call: re-invite without ice re-negotiation · 70a2a650
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      When muting/un-muting the video, a re-invite is performed
      leading to a full media renegotiation and restart,  including
      ICE session if used.
      With these changes, the mute/unmute video will still require
      a re-invite (a new SDP to indicate the new media directions), but
      the ICE session is re-used and only the video is stopped/started
      accordingly.
      The behavior improves the UX by avoiding unnecessary audio disruptions
      and is more compliant with SIP/ICE specs (see RFC-5245 section 9.1.1.1
      for example)
      
      Gitlab: #671
      
      Change-Id: I13caf9a965af1d76e922fe5f6b86d5332b3296d6
      70a2a650
  4. Jan 24, 2022
    • Sébastien Blin's avatar
      misc: remove unused files · 518b4b04
      Sébastien Blin authored
      Major part seems from SFLPhone
      
      Change-Id: Icc557d84acf96b35520a03e998b710fb553c93b1
      518b4b04
    • Sébastien Blin's avatar
      misc: remove shortcuts preferences · a290a6f7
      Sébastien Blin authored
      Unsed by all the clients, since years.
      
      Change-Id: I47654d25a04b9574ddac8a717adec25ba3efaa90
      a290a6f7
    • Sébastien Blin's avatar
      certstore: make TrustStore thread safe · 90a5ea27
      Sébastien Blin authored
      Because multiple threads can access the TrustStore to update/add/rm
      certificates, introduce a mutex to protect the maps.
      
      Because a lot of methods only access the maps in read-only, the
      mutex is mutable. Moreover, because isAllowed will check the whole
      chain, to avoid multiple lock/unlocks, the mutex is a recursive one.
      
      Change-Id: Iec197221e2eefba4a7192f36f1a9a952f2533778
      GitLab: #690
      90a5ea27
  5. Jan 21, 2022
    • Mohamed Chibani's avatar
      conference/auto-answer: fix request media change · 8ca7dd3a
      Mohamed Chibani authored
      In conference and auto-answer mode, if the remote peer requests
      a media change, the remote media was used to configure the local
      media. This is bad, since if the remote muted its audio, it will
      also mute the local audio.
      Now, the existing media will not be modified, and the new media
      will be automatically added if any.
      
      Gitlab: #688
      
      Change-Id: Id5388ed916eaa5755202b4b5b5fad118f0dc9c1e
      8ca7dd3a
  6. Jan 20, 2022
    • Maxim Cournoyer's avatar
      build: Rename PROGSHAREDIR to JAMI_DATADIR. · 754ae6bf
      Maxim Cournoyer authored and Amin Bandali's avatar Amin Bandali committed
      This name matches a common naming convention in build systems.
      
      * compat/msvc/config.h (PROGSHAREDIR): Rename to...
      (JAMI_DATADIR) ... this.
      * globals.mk (-DJAMI_DATADIR): Likewise.
      * meson.build (conf): Likewise.
      * src/account.cpp: Likewise.
      * src/manager.cpp (Manager::playRingtone): Likewise.
      
      Change-Id: I123251f3e420948bc7359ce0a3ac54bddd12977a
      754ae6bf
  7. Jan 19, 2022
    • Sébastien Blin's avatar
      jamiaccount: avoid to block in doUnregister if ERROR_GENERIC · 89b7ffe9
      Sébastien Blin authored
      If the account is incorrectly registered (i.e. the common case
      is that the DHT socket is not correctly initialized),
      setRegistrationState(RegistrationState::ERROR_GENERIC) will be
      called and the dht will not be usable.
      
      Calling doUnregister will cause the daemon to block on
      dht_->shutdown(). Because the account is not ready to be used,
      doUnregister() should do nothing if any error happened during the
      registration.
      
      Also, removes 2 unused states.
      
      Change-Id: I0393786afea8c13506c7c87caf265b09182ea0ae
      89b7ffe9
  8. Jan 14, 2022
  9. Jan 12, 2022
  10. Jan 10, 2022
  11. Jan 07, 2022
  12. Jan 05, 2022
  13. Jan 03, 2022
  14. Dec 30, 2021
  15. Dec 28, 2021
  16. Dec 23, 2021
  17. Dec 22, 2021
  18. Dec 20, 2021
  19. Dec 17, 2021
  20. Dec 16, 2021
    • Sébastien Blin's avatar
      sipvoiplink: avoid to drop rotation's informations · c74375b3
      Sébastien Blin authored
      if videoRtp is not initialized, the information is dropped. So,
      it should be stored to avoid any drop of informations.
      Note: in the future the container should change, because rotation
      is currently applied to all video streams.
      
      Change-Id: I036ffe7b6a248a3d8d7defeff1be78e008447fbd
      GitLab: #678
      c74375b3
    • Mohamed Chibani's avatar
      SDP - set media direction according to mute state · a887b2de
      Mohamed Chibani authored and Sébastien Blin's avatar Sébastien Blin committed
      Currently, the media attribute in the SDP is always set to
      'sendrecv' regardless of the mute state of the media.
      In this patch, media direction will be set according to mute
      state of the media.
      Note that this only applies if the mute/unmute requires media
      renegotiation (SIP re-invite with new SDP session). Currently,
      this only the case for video media. For audio, mute/unmute is
      done locally without SIP re-invite.
      
      References:
      RFC-3264
      RFC-4317 (non-normative)
      
      Gitlab: #645
      
      Change-Id: I604331255bd25dfe732e192039a673a0980105fa
      a887b2de
    • Sébastien Blin's avatar
      misc: remove dead code · dd700c31
      Sébastien Blin authored
      This code is unused since we introduced processRtcpChecker()
      
      Change-Id: If86295d885997c415e8f1681c6b9ad049c93de9e
      dd700c31
  21. Dec 15, 2021
    • Sébastien Blin's avatar
      videomanager: protect double video input creation · 40ee25ff
      Sébastien Blin authored
      getVideoInput is called in two different place:
      + openVideoInput from the client
      + VideoRtpSession::startSender() from the daemon
      Nothing is blocking both sides to do it at the same time.
      In this case, two VideoInputs can be created, causing the second
      one to fail because the device is busy (used by the first one)
      and causing weird results (i.e. sometimes the video is not shown).
      
      Change-Id: I23e34a95efe4972fbe111c19f0f0989f5e8ae8a9
      Unverified
      40ee25ff
    • Sébastien Blin's avatar
      opensl: fix incorrect injected buffer · ea97002a
      Sébastien Blin authored
      Sometimes, buffer with incorrect capacity were injected into
      the audio, causing the daemon to crash.
      Before the stream's split, stopStream was flushing the buffers.
      In this patch, stopStream will correctly re-init the buffers and
      avoid to inject incorrect buffer into the audio.
      Also, remove unused value in buf_manager.h and clean some warnings
      for log.
      Finally, modify engineServiceRing to avoid many push operations
      and make it similar to engineServicePlay
      
      Change-Id: I589cea814452d3dbf5172af6369e448dcd9d5c72
      GitLab: #676
      ea97002a
    • Kateryna Kostiuk's avatar
      video: fix screen sharing on macOS · 41eab75d
      Kateryna Kostiuk authored and Kateryna Kostiuk's avatar Kateryna Kostiuk committed
      Because media encoder flush() involves encoding we should change
      initialized flag after calling flush(), otherwise, it could lead to
      new stream initializing.
      
      jami-client-macos#299
      
      Change-Id: I88d5648a6f252bd78776f505f891f09a4e5b12e1
      41eab75d
    • Aline Gondim Santos's avatar
      misc: fix typo · 9c9d11e4
      Aline Gondim Santos authored and Sébastien Blin's avatar Sébastien Blin committed
      - tranport -> transport
      
      Change-Id: I1991ba7324c22625e8b6cdf568357e3ff6540557
      9c9d11e4
  22. Dec 14, 2021
Loading