1. 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
  2. 15 Jul, 2021 1 commit
    • 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.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
  3. 02 Jul, 2021 1 commit
  4. 28 Jun, 2021 2 commits
  5. 25 Jun, 2021 1 commit
  6. 22 Jun, 2021 1 commit
    • Maxim Cournoyer's avatar
      daemon: Install dring to libexec and edit templates at install time. · 2afa99fd
      Maxim Cournoyer authored
      Executables are typically installed under bin/, sbin/ or libexec,
      rather than lib/.  The problem was noticed when trying to use Jami
      with a Guix relocatable pack, which only wraps executables found under
      the above locations.  Since dring is a daemon and should not be run
      directly by users under normal circumstances, the convention is to use
      the libexec directory, according to the File Hierchy Standard 3.0.
      
      Also tackled in this change is the substitution of the Autoconf
      variables at installation time rather than configuration time, as per
      the GNU Coding Standards.  The following solution is taken from
      https://github.com/gentoo/eudev/pull/183/commits, which in turn is
      adapted from the Autoconf manual (c.f.: info "(autoconf)Installation
      Directory Variables").
      
      * bin/Makefile.am (ringlibdir): Delete variable.
      * bin/dbus/Makefile.am (do_subst): New variable.
      (cx.ring.Ring.service): Derive from the cx.ring.Ring.service.in
      template.
      [HAVE_WIN32]: (ringlib_PROGRAMS): Rename to ...
      (bin_PROGRAMS): ... this.
      [HAVE_OSX, RING_DBUS]: Likewise.
      * bin/dbus/cx.ring.Ring.service.in (Exec): Adust.
      * globals.mk (ringlibdir): Delete variable.
      * configure.ac [with_dbus] <AC_CONFIG_FILES>: Remove
      bin/dbus/cx.ring.Ring.service.  Also remove the LIBDIR variable, no
      longer used.  Fix indentation.
      
      Thanks to Vladimir Stoiakin for providing feedback on this change.
      
      Change-Id: I845bf2bd590a9457e70ca173027217b8f164d713
      2afa99fd
  7. 15 Jun, 2021 1 commit
  8. 11 Jun, 2021 2 commits
    • Sébastien Blin's avatar
      data-transfer: re-ask for transfer · 612f7f6b
      Sébastien Blin authored
      add API to ask for a failed transfer. This can be used when the
      client detects a transfer they doesn't have yet. It will ask all
      members of the conversation to send the transfer back.
      
      GitLab: #136
      Change-Id: I1484298c4fa0eabb614132e22d8032612e14b949
      612f7f6b
    • Mohamed Chibani's avatar
      multi-stream: check peer's Daemon version · 53d0ae39
      Mohamed Chibani authored and Aline Gondim Santos's avatar Aline Gondim Santos committed
      Check peer's Daemon version and ignore media change request
      action from the client if the the peer does not support the
      feature.
      Also bump Daemon version to 10.0.2
      
      Gitlab: #551
      
      Change-Id: Ifd105d2fe2706b4667f5bafabcb3d91e771e7299
      53d0ae39
  9. 28 May, 2021 1 commit
  10. 19 May, 2021 1 commit
  11. 13 May, 2021 1 commit
    • Sébastien Blin's avatar
      multiplexed_socket: add ping/pong logic · ffa12c74
      Sébastien Blin authored and Adrien Béraud's avatar Adrien Béraud committed
      Detecting that a socket is down via a keep alive can take time, moreover
      if a relay is used, because the keep alive can continue to work even if the
      connection is half closed.
      In this patch, we add a mechanism where a beacon is sent over the multiplexed
      socket to know if the peer can answer. This message can be used to detect
      if a socket is usable and is sent whenever the user starts a call or that
      a connectivityChanged() occurs.
      Moreover, the multiplexedsocket can now sends a version to enable features
      and if a bad packet on the control socket comes, the socket is not stopped.
      
      GitLab: #542
      Change-Id: Ia66d8d7f9b66bba02927f4ea41c21ef27089bceb
      ffa12c74
  12. 11 May, 2021 1 commit
  13. 04 May, 2021 1 commit
  14. 16 Apr, 2021 1 commit
    • Maxim Cournoyer's avatar
      configure.ac: Fix typo in help string. · 9b94f3fd
      Maxim Cournoyer authored and Adrien Béraud's avatar Adrien Béraud committed
      Using '--without-webrtc-ap' would still attempt to build the
      webrtc-based echo canceler.  Adjust the help string of the option to
      match the actual option name.
      
      * configure.ac (webrtcap): Help text changed from --without-webrtc-ap
      to --without-webrtcap.
      
      Change-Id: I46a30dc87963ca67b0b135fed08523f16834f715
      9b94f3fd
  15. 14 Apr, 2021 1 commit
  16. 10 Apr, 2021 1 commit
  17. 09 Apr, 2021 1 commit
  18. 07 Apr, 2021 1 commit
  19. 30 Mar, 2021 2 commits
  20. 28 Mar, 2021 4 commits
    • Adrien Béraud's avatar
      configure: remove obsolete macro · 80e62ef2
      Adrien Béraud authored
      Change-Id: I7a2227aafe585bee1f4ed115f22e987e77fd49ff
      80e62ef2
    • Maxim Cournoyer's avatar
      configure.ac: Harmonize indentation. · 286d5f15
      Maxim Cournoyer authored and Adrien Béraud's avatar Adrien Béraud committed
      Bring consistency in the indentation rules used throughout the file.
      
      GitLab: #487
      Change-Id: I4d8e4050a0f21df9a380fc25e0d3de04f15fe941
      286d5f15
    • Maxim Cournoyer's avatar
      configure.ac: Do not set user variables. · bfe7a844
      Maxim Cournoyer authored and Adrien Béraud's avatar Adrien Béraud committed
      The CFLAGS, CXXFLAGS, LDFLAGS and other variables intended to be
      overridden by the user should not directly be set by the package.
      This change uses one of the approaches recommended by the Autoconf and
      Automake manuals, which is to use custom variables to accumulate flags
      in the configure script and add them to the make targets they apply
      to.  This has the benefit of not cluttering the flags used during the
      Autoconf tests, which has proved problematic (see the previous commit
      for a demonstration).
      
      * configure.ac: Replace CFLAGS, CXXFLAGS, CPPFLAGS and LDFLAGS by
      DAEMONCFLAGS, DAEMONCXXFLAGS, DAEMONCPPFLAGS and DAEMONLDFLAGS,
      respectively.
      Use these custom variables as the default values of AM_CFLAGS,
      AM_CXXFLAGS, AM_CPPFLAGS and AM_LDFLAGS, respectively.  Remove an
      extraneous check on jsoncpp.
      * bin/Makefile.am (ringcli_CXXFLAGS): Honor the the AM_CXXFLAGS variable.
      globals.mk: Extend rather than override the AM_CPPFLAGS variable.
      * src/Makefile.am (libring_la_LDFLAGS): Honor AM_LDFLAGS.
      (libring_la_CFLAGS): Honor AM_CFLAGS.
      (libring_la_CXXFLAGS): Honor AM_CXXFLAGS.
      * src/client/Makefile.am (libclient_la_CXXFLAGS): Honor AM_CXXFLAGS.
      * src/im/Makefile.am (libim_la_CXXFLAGS): Remove variable.
      * src/jamidht/Makefile.am (libringacc_la_CXXFLAGS): Likewise.
      * src/media/audio/Makefile.am (libaudio_la_CXXFLAGS): Honor
      AM_CXXFLAGS.
      (libaudio_la_LDFLAGS): Honor the AM_CXXFLAGS variable.
      * src/media/audio/coreaudio/Makefile.am (libcoreaudiolayer_la_CXXFLAGS):
      Likewise.
      * src/media/video/Makefile.am (libvideo_la_CFLAGS): Honor the
      AM_CFLAGS variable.
      (libvideo_la_CXXFLAGS): Honor the AM_CXXFLAGS variable.
      * src/media/video/v4l2/Makefile.am (AM_CXXFLAGS): Extend rather than
      override.
      * src/plugin/Makefile.am (libplugin_la_CXXFLAGS): Honor the
      AM_CXXFLAGS variable.
      * src/security/Makefile.am (libsecurity_la_CXXFLAGS): Likewise.
      * src/sip/Makefile.am (libsiplink_la_CXXFLAGS): Likewise.
      * src/upnp/Makefile.am (libupnpcontrol_la_CXXFLAGS): Remove variable.
      * src/upnp/protocol/Makefile.am (libupnpprotocol_la_CXXFLAGS): Likewise.
      * src/upnp/protocol/natpmp/Makefile.am (libnat_pmp_la_CXXFLAGS): Likewise.
      * src/upnp/protocol/pupnp/Makefile.am (libpupnp_la_CXXFLAGS): Likewise.
      * test/sip/Makefile.am (AM_CXXFLAGS, AM_LDFLAGS): Extend rather than override.
      * test/unitTest/Makefile.am (AM_CXXFLAGS, AM_LDFLAGS): Likewise.
      
      GitLab: #487
      Change-Id: I18be9d812159f8156efb9f7849e7eac6d4c6b3ca
      
      squash! configure.ac: Do not set user variables.
      
      Change-Id: I1146ea15d6fb75fe53d3cbdd782e981c933e82a6
      bfe7a844
    • Maxim Cournoyer's avatar
      configure.ac: Resolve libnatpmp conftest issue. · 5cca2625
      Maxim Cournoyer authored and Adrien Béraud's avatar Adrien Béraud committed
      Do not unnecessarily clutter CPPFLAGS; the variable is honored by
      Autoconf while running its conftests and can cause issues such as
      symbol clashes between the libnatpmp and webrtc-audio-processing
      library observed below:
      
      configure:20851: checking for initnatpmp in -lnatpmp
      configure:20873: g++ -std=gnu++17 -o conftest  -DNDEBUG=1 -O3 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPJ_AUTOCONF=1  -I/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/include  -fvisibility=hidden -DDRING_BUILD  -Ddring_EXPORTS  -DASIO_STANDALONE -I/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/include -I/gnu/store/zimpk6gqmjrwxc7fnam212kv3a6dwpzz-jsoncpp-1.9.2/include -DWEBRTC_AUDIO_PROCESSING_ONLY_BUILD -DWEBRTC_POSIX -I/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/include/webrtc_audio_processing  -Wl,-Bsymbolic -ldl -L/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/lib -L/gnu/store/zimpk6gqmjrwxc7fnam212kv3a6dwpzz-jsoncpp-1.9.2/lib -ljsoncpp -L/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/lib -lwebrtc_audio_processing conftest.cpp -lnatpmp -lpthread  -lssl -lcrypto >&5
      ld: /tmp/cc5prP4w.o: in function `main':
      conftest.cpp:(.text.startup+0x0): multiple definition of `main'; /home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/lib/libwebrtc_audio_processing.a(libwebrtc_audio_processing_la-click_annotate.o):click_annotate.cc:(.text.startup+0x0): first defined here
      collect2: error: ld returned 1 exit status
      configure:20873: $? = 1
      
      This was causing the link test of the libnatpmp library to fail,
      which in turned caused the natpmp support to be disabled entirely.
      
      * src/Makefile.am (libring_la_LDFLAGS): Add @WEBRTC_LIBS@.
      (libring_la_CFLAGS): Add @WEBRTC_CFLAGS@.
      * src/media/audio/Makefile.am (libaudio_la_CXXFLAGS)
      [HAVE_WEBRTC_AP]: Add @WEBRTC_CFLAGS@.
      * src/media/audio/echo-cancel/Makefile.am
      (libecho_cancel_la_CXXFLAGS): Add @WEBRTC_CFLAGS@ and honor AM_CXXFLAGS.
      
      GitLab: #487
      Change-Id: I064d6a563318b34b2f3f516ca2aa8c2831205b09
      5cca2625
  21. 26 Mar, 2021 2 commits
    • Maxim Cournoyer's avatar
      configure.ac: Remove uses of obsolete macros. · cc6024cc
      Maxim Cournoyer authored and Adrien Béraud's avatar Adrien Béraud committed
      * configure.ac: Bump required autoconf version to 2.69 and remove the
      uses of the obsoleted AC_HEADER_STDC and AC_HEADER_TIME macros.
      
      GitLab: #487
      Change-Id: Idb210870c298b83ddabe189e341d0846f04a1bb9
      cc6024cc
    • Maxim Cournoyer's avatar
      build: Enable the use of the dbusxx-xml2cpp tool built from contrib. · ad8909f0
      Maxim Cournoyer authored
      Previously, the build machine would need to provide dbusxx-xml2cpp
      itself, while the library would be used from the contribs (always
      forced, as dbusxx-xml2cpp is unmaintained and slightly broken on newer
      GCCs).  This change removes the requirement to have the dbus-c++
      package installed on the build machine.
      
      Change-Id: I25ad2ee3e80afc33b320de9256b724a3c254f4fb
      ad8909f0
  22. 15 Mar, 2021 2 commits
    • Andreas Traczyk's avatar
      aec: move aec implementations into EchoCanceller · e787de4e
      Andreas Traczyk authored and Adrien Béraud's avatar Adrien Béraud committed
      Hide speexdsp's echo cancellation implementation details behind an
      EchoCanceller derived class. An AudioLayer may now instantiate
      implementations of the EchoCanceller. This may be platform specific
      compile-time or swapped out at runtime.
      
      Introduces a null echo canceller for testing. As the speexdsp aec
      is not currently functional, the null echo canceller is replaced
      as the default implementation.
      
      GitLab: #454
      Change-Id: I169f1e9758afbed884fc42d9d78a69ce28d12fe2
      e787de4e
    • Andreas Traczyk's avatar
      contrib: add webrtc-audio-processing @ v0.3.1 · 5d0247d2
      Andreas Traczyk authored and Adrien Béraud's avatar Adrien Béraud committed
      Change-Id: Ib7396b12f98947b25bc96605381cbc29594aa1b7
      5d0247d2
  23. 09 Mar, 2021 1 commit
  24. 15 Jan, 2021 1 commit
  25. 11 Dec, 2020 2 commits
  26. 12 Nov, 2020 1 commit
  27. 27 Oct, 2020 1 commit
  28. 13 Oct, 2020 1 commit
    • Sébastien Le Stum's avatar
      src: hooks: remove urlhook feature · 569d44b5
      Sébastien Le Stum authored and Sébastien Blin's avatar Sébastien Blin committed
      This feature is mostly a relicate from SFLPhone and introduced a remote
      attack vector abusing the system() function weaknesses.
      
      Provided that "sipEnabled" parameter is on in the remote target's
      configuration, a malicious peer calling that remote target could
      send SIP messages with a crafted "X-ring-url" string in order to
      execute arbitrary shell commands on the target.
      
      Header entry "X-ring-url" content is actually consumed by UrlHook
      as arguments for the "x-www-browser" command executed using system().
      
      By adding a shell escape sequence to circumvent existing arguments
      sanitizing attempts, the malicious peer could execute any shell command
      under remote peer user's identity and access sensitive information
      available using its privileges.
      
      Remove that feature altogether and enforce users that are relying on
      that feature to migrate to Jami "plugins", which are more suitable
      for introducing custom Jami behaviors.
      
      Change-Id: I1d6d07771e2b5a7c7f2cb8fc838821106c0a6708
      569d44b5
  29. 01 Sep, 2020 1 commit
  30. 31 Aug, 2020 2 commits