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
    • 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
    • Ming Rui Zhang's avatar
      sip: add allow ip auto rewrite · 95f99b2f
      Ming Rui Zhang authored
      Gitlab: #567
      Change-Id: I7f9eb1f9eb13250a999f7b26441ea7c47b81f796
    • Sébastien Blin's avatar
      tls_session: fix verifyOcsp potential crashes · ef39a26f
      Sébastien Blin authored and Adrien Béraud's avatar Adrien Béraud committed
      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
  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
  5. 15 Jul, 2021 4 commits
    • Adrien Béraud's avatar
      alsa: cleanup, fix deadlock · 7ba51932
      Adrien Béraud authored and Sébastien Blin's avatar Sébastien Blin committed
      Change-Id: Ia395103ba2ec2ec85400cf710a07c40888568d68
    • 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
    • Maxim Cournoyer's avatar
      daemon: Rename dring occurrences in code and file names to jamid. · ba3a411c
      Maxim Cournoyer authored and Maxim Cournoyer's avatar Maxim Cournoyer committed
      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.po...
    • 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:
      and other methods like SIPCall::hangup will try to 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
  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
    • Olivier Dion's avatar
      sip: Fix increment of invite session · b34d1a3c
      Olivier Dion authored and Sébastien Blin's avatar Sébastien Blin committed
      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
    • Sébastien Blin's avatar
      conversationrepository: fix pointer check · 7e15841b
      Sébastien Blin authored
      Change-Id: I0f0a926996d34ae22051f0247e36575ab755d0ba
    • 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
  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
    • 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