1. 22 Jul, 2021 2 commits
  2. 20 Jul, 2021 2 commits
  3. 19 Jul, 2021 4 commits
    • Olivier Dion's avatar
      manager: Fix double answer of call · 93aa262d
      Olivier Dion authored
      If `DRing::acceptWithMedia()` is called within an `IncomingCall` signal handler,
      then `processIncomingCall` will wrongly try to answer the same call.
      
      Gitlab: #589
      
      Change-Id: Ica7a5c17852d83e6228e71e0f9a2a83b24cb315b
      93aa262d
    • 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
    • Ming Rui Zhang's avatar
      sip: add allow ip auto rewrite · 95f99b2f
      Ming Rui Zhang authored
      Gitlab: #567
      
      Change-Id: I7f9eb1f9eb13250a999f7b26441ea7c47b81f796
      95f99b2f
    • Sébastien Blin's avatar
      tls_session: fix verifyOcsp potential crashes · ef39a26f
      Sébastien Blin authored
      verifyOcsp takes a callback with arguments passed by reference.
      However, if the method finishes (verifyCertificateWrapper) cert
      will be destroyed and references potentially invalidated.
      So, instead of waiting on a condition variable use a future to
      be sure that the cert is used before destruction.
      The callback is always called by sendOcspRequest with a similar
      timeout so also remove the useless timeout.
      
      Change-Id: If1a8eba70e13d2d613b758ad24629efa4fe57bb3
      GitLab: #577
      ef39a26f
  4. 16 Jul, 2021 1 commit
    • Maxim Cournoyer's avatar
      autoconf: Use libtool, not dolt replacement. · 9727bd57
      Maxim Cournoyer authored
      Dolt doesn't provide the performance benefits it promises, so drop it
      to simplify the moving parts of the Autotools build system.
      
      Also remove unused M4 modules.
      
      * m4/dolt.m4: Delete file.
      * m4/ax_boost_base.m4: Likewise.
      * configure.ac: Do not call DOLT.
      
      Change-Id: I58d286457005ad82129e089679c52933989c59a8
      9727bd57
  5. 15 Jul, 2021 4 commits
    • Adrien Béraud's avatar
      alsa: cleanup, fix deadlock · 7ba51932
      Adrien Béraud authored
      Change-Id: Ia395103ba2ec2ec85400cf710a07c40888568d68
      7ba51932
    • Sébastien Blin's avatar
      conversationrepository: detect malformed conversations · c247f1d5
      Sébastien Blin authored
      For whatever reason, a conversation can be malformed. This should
      be detected and the conversation not loaded. The conversation
      will be removed and re-synced if necessary.
      
      Change-Id: I40e78564559e7f09159ceba4d263a4ea75b25794
      c247f1d5
    • Maxim Cournoyer's avatar
      daemon: Rename dring occurrences in code and file names to jamid. · ba3a411c
      Maxim Cournoyer authored
      Automated using the following commands:
      
        $ mv src/{dring,jami}
        $ git grep -l src/dring | xargs sed -i 's,src/dring,src/jami,g'
        $ git grep -l '#include "dring/' | \
          xargs sed -i 's,#include "dring/,#include "jami/,g'
        $ git grep -l 'dring.h' | xargs sed -i 's,dring.h,jami.h,g'
      
      And finally,
      
        $ git grep -l 'dring' | xargs sed -i 's,dring,jami,g'
      
        $ files=$(find -name '*dring*' | sort)
        $ for f in $files; do mkdir -p "$(dirname "$f")"; \
            mv "$f" "$(echo $f | sed 's/dring/jami/g')"; done
      
      To resolve a bad renaming favorably:
      
        $ git grep -l -i AlsaCarjami | \
          xargs sed -i -E 's/([Aa])lsaCarjami/\1lsaCardRingtone/g'
      
      The above renaming command is not perfect, so some hand-tuning was
      required to complete it.
      
      * src/manager.cpp (Manager::ManagerPimpl::retrieveConfigPath):
      Preserve the dring.yml configuration file name, until we add something
      to migrate (rename) it to jami.yml.
      * man/dring.pod: Delete.
      * bin/dbus/jamid.pod: Move to ...
      * man/jamid.pod: here.
      * bin/dbus/meson.build (jamid_targets): Normalize man section to the
      pre-existing 1 and adjust accordingly.
      * src/jami/def.h (dring_EXPORTS): Rename to ...
      (jami_EXPORTS): ... this.
      
      change-Id: I9828be6da9c711ab2f22c4d1b9539fea89d7b6fb
      ba3a411c
    • Sébastien Blin's avatar
      sipvoiplink: do not lock callMutex_ from pjsip's callback · 86a21e06
      Sébastien Blin authored
      This logic was added via 9d9a6b3d,
      but this will give potential deadlocks, because pj's group lock
      will be locked at this point. So we will have:
      group-lock->callMutex_
      and other methods like SIPCall::hangup will try to lock:
      callMutex_->group-lock
      causing a deadlock.
      
      The original issue was adding this line due to a use after free,
      however since then we fixed the ref counter of inv, so it should
      be a valid fix.
      
      Change-Id: I2fdc236ca63487634ebf2659ecdebb8e0c3234fe
      GitLab: #586
      86a21e06
  6. 14 Jul, 2021 1 commit
  7. 12 Jul, 2021 2 commits
  8. 09 Jul, 2021 4 commits
    • Mohamed Chibani's avatar
      ut_sip_basic_calls: enable scenario with all media disabled · c16041fc
      Mohamed Chibani authored
      Gitlab: #570
      
      Change-Id: I87f476082f0f04b342e737e523eae976b0717bca
      c16041fc
    • Olivier Dion's avatar
      sip: Fix increment of invite session · b34d1a3c
      Olivier Dion authored
      Increment of the invite session has to be done before SIPCall takes a reference
      to it.
      
      Otherwise, `pjsip_inv_dec_ref()` will be called internally by PJSIP when the
      reference counter has reached 0.  This happen when `SIPCall::setInviteSession()`
      is called in `invite_session_state_changed_cb()`, resulting in the deletion of
      the invitation.
      
      Change-Id: Icba0985ea26ce5dec462bd124cca4dd2187d6a47
      b34d1a3c
    • Sébastien Blin's avatar
      conversationrepository: fix pointer check · 7e15841b
      Sébastien Blin authored
      Change-Id: I0f0a926996d34ae22051f0247e36575ab755d0ba
      7e15841b
    • 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
  9. 08 Jul, 2021 1 commit
  10. 07 Jul, 2021 4 commits
  11. 06 Jul, 2021 1 commit
  12. 05 Jul, 2021 1 commit
  13. 02 Jul, 2021 2 commits
  14. 30 Jun, 2021 9 commits
  15. 29 Jun, 2021 2 commits
    • Sébastien Blin's avatar
      multiplexed_socket: avoid incorrect buffer in setOnRecv · 18988295
      Sébastien Blin authored
      setOnRecv must lock socketsMutex. Generally it,s the case because onAccept
      will be ready right away and still locked, however if onChannelReady_ retrigger
      the callback, setOnRecv will be used without socketsMutex locked.
      
      Retrigger in a thread and always lock socketsMutex to be sure.
      
      Change-Id: If44d240e113585a5ce3320b8f17feaaaa8be8515
      18988295
    • Sébastien Blin's avatar
      sipcall: lock transport while initializing ICE · eebf8601
      Sébastien Blin authored
      When starting an outgoing call, if the ICE initialization is too fast:
      + SIPCall::initIceMediaTransport will init the ICE transport
      + onInitDone will be called before tmpMediaTransport_ initialized
      + JamiAccount::SIPStartCall will be called and add ICE candidates
      BUT because transportMtx_ is not locked, tmpMediaTransport_ will be null
      and no ICE transport will be added.
      
      This is why createUTransport should be done while locked. Anyway the method is
      async so should not block.
      
      GitLab: #574
      Change-Id: Id88dc92f6d77c18de3ea4614e2b5fd79d3429ff0
      eebf8601