1. 19 Jul, 2021 3 commits
    • 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
  2. 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
  3. 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
  4. 14 Jul, 2021 1 commit
  5. 12 Jul, 2021 2 commits
  6. 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
  7. 08 Jul, 2021 1 commit
  8. 07 Jul, 2021 4 commits
  9. 06 Jul, 2021 1 commit
  10. 05 Jul, 2021 1 commit
  11. 02 Jul, 2021 2 commits
  12. 30 Jun, 2021 9 commits
  13. 29 Jun, 2021 7 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
    • Maxim Cournoyer's avatar
      build: Add missing header to Autotools build. · 89f894c1
      Maxim Cournoyer authored
      * src/meson.build (libjami_dep): Sort headers.
      * src/Makefile.am (nobase_include_HEADERS): Sort and add
      Change-Id: Ib66e4c9904906dcca4722cc81b6487aa43086e2e
    • Maxim Cournoyer's avatar
      libring: Specify LDFLAGS for the shared library. · 34ff6fa1
      Maxim Cournoyer authored and Sébastien Blin's avatar Sébastien Blin committed
      This avoids the error:
         ld: /home/mcournoyer/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/lib/libswscale.a(swscale.o): relocation R_X86_64_PC32 against symbol `ff_M24A' can not be used when making a shared object; recompile with -fPIC
         ld: final link failed: bad value
      caused by the missing '-Wl,-Bsymbolic' linker directive (which is
      documented as required by ffmpeg when a shared library is built
      against a static ffmpeg object).
      * src/Makefile.am (libring_la_LDFLAGS): Set to AM_LDFLAGS.
      [HAVE_WIN32]: Append using the += operator.
      [HAVE_OSX]: Likewise.
      [HAVE_LINUX]: Remove; it was not necessary.
      Change-Id: Id2af9ea5812b2d1fd3b4f7f893108bb94671ffc6
      GitLab: jami-packaging#101
    • Ming Rui Zhang's avatar
      sipaccountbase: ensure the value for published ip address · cdc7cadb
      Ming Rui Zhang authored and Adrien Béraud's avatar Adrien Béraud committed
      Gitlab: #567
      Change-Id: I9fdb1601f407759a8b6ef73bccc32769e5693b5b
    • Maxim Cournoyer's avatar
      dbus: Adjust the location of the jamid binary in the D-Bus service. · d5021c78
      Maxim Cournoyer authored and Sébastien Blin's avatar Sébastien Blin committed
      This is a follow up to commit 2afa99fd (Install dring to libexec and
      edit templates at install time).
      * bin/dbus/Makefile.am (do_subst): Replace bindir by libexecdir.
      Change-Id: I380e61467ef4f3c4873698c9e2061b9c61370d44
    • Olivier Dion's avatar
      fuzzing: Add GDB script · fb05a8d5
      Olivier Dion authored and Adrien Béraud's avatar Adrien Béraud committed
      Change-Id: Ia9ce297062ac28dcf7f03ee28247cad4411d1b0f