Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/201911
  • release/releaseWindowsTestOne
  • release/windowsReleaseTest
  • release/releaseTest
  • release/releaseWindowsTest
  • release/201910
  • release/qt/201910
  • release/windows-test/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • 4.0.0
  • 2.2.0
  • 2.1.0
  • 2.0.1
  • 2.0.0
  • 1.4.1
  • 1.4.0
  • 1.3.0
  • 1.2.0
  • 1.1.0
30 results

jami-daemon

  • Clone with SSH
  • Clone with HTTPS
  • Sébastien Blin's avatar
    Sébastien Blin authored
    Also clarify a log.
    
    GitLab: https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282
    
    Change-Id: Id7a4bd88886159e7a6d053b5858222a864e3cca5
    a89c7634
    History
    COPYRIGHT NOTICE
    
    Copyright (C) 2004-2021 Savoir-faire Linux Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    
    Introduction
    ------------
    
    GNU Jami is a Voice-over-IP software phone. We want it to be:
    - user friendly (fast, sleek, easy to learn interface)
    - professional grade (transfers, holds, optimal audio quality)
    - compatible with Asterisk (using SIP account)
    - decentralized call (P2P-DHT)
    - customizable
    
    As the SIP/audio daemon and the user interface are separate processes,
    it is easy to provide different user interfaces. GNU Jami comes with
    various graphical user interfaces and even scripts to control the daemon from
    the shell.
    
    GNU Jami is currently used by the support team of Savoir-faire Linux Inc.
    
    More information is available on the project homepage:
      https://www.jami.net/
    
    This source tree contains the daemon application only that handles
    the business logic of GNU Jami. UIs are located in differents repositories. See
    the Contributing section for more information.
    
    
    Short description of content of source tree
    -------------------------------------------
    
    - src/ is the core of DRing.
    - bin/ contains applications main code.
    - bin/dbus, the D-Bus XML interfaces, and C++ bindings
    
    About Savoir-faire Linux
    ------------------------
    
    Savoir-faire Linux is a consulting company based in Montreal, Quebec.
    For more information, please check out our website:
    https://www.savoirfairelinux.com/
    
    
    How to compile on Linux
    -----------------------
    
    1) Compile the dependencies first
    
    cd contrib
    mkdir native
    cd native
    ../bootstrap
    make
    
    2) Then the jamid application
    
    cd ../../
    mkdir build
    export PATH=$PATH:`pwd`/contrib/`cc -dumpmachine`/bin
    meson -Dpkg_config_path=`pwd`/contrib/`cc -dumpmachine`/lib/pkgconfig -Ddefault_library=static -Dinterfaces=dbus build
    cd build
    ninja
    ninja install
    
    Done !
    
    More details available here:
    https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions
    
    How to compile on Linux for Android
    -----------------------------------
    
    1) Download and install Android NDK
    2) Compile the dependencies
    
    export ANDROID_NDK=<NDK>
    export ANDROID_ABI=arm64-v8a
    export ANDROID_API=29
    export TOOLCHAIN=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64
    export TARGET=aarch64-linux-android
    export CC=$TOOLCHAIN/bin/$TARGET$ANDROID_API-clang
    export CXX=$TOOLCHAIN/bin/$TARGET$ANDROID_API-clang++
    export AR=$TOOLCHAIN/bin/$TARGET-ar
    export LD=$TOOLCHAIN/bin/$TARGET-ld
    export RANLIB=$TOOLCHAIN/bin/$TARGET-ranlib
    export STRIP=$TOOLCHAIN/bin/$TARGET-strip
    export PATH=$PATH:$TOOLCHAIN/bin
    cd contrib
    mkdir native
    cd native
    ../bootstrap --build=x86_64-pc-linux-gnu --host=$TARGET$ANDROID_API
    make
    
    3) Update directories in the file /cross-files/android_arm64_api29.txt
    4) Compile the library libjami.so
    
    cd ../../
    mkdir build
    meson --cross-file `pwd`/cross-files/android_arm64_api29.txt build
    cd build
    ninja
    ninja install
    
    How to compile on OSX
    ---------------------
    
    # These first steps are only necessary if you don't use a package manager.
    cd extras/tools
    ./bootstrap
    make
    export PATH=$PATH:/location/of/ring/daemon/extras/tools/build/bin
    
    # Or, use your favorite package manager to install the necessary tools
    (macports or brew).
    automake, pkg-config, libtool, gettext, yasm
    
    # Compile the dependencies
    cd contrib
    mkdir native
    cd native
    ../bootstrap
    make -j
    
    # Then the daemon
    cd ../../
    ./autogen.sh
    ./configure  --without-dbus --prefix=<install_path>
    make
    
    If you want to link against libringclient and native client easiest way is to
    add to ./configure: --prefix=<prefix_path>
    
    Do a little dance!
    
    
    Common Issues
    -------------
    
    autopoint not found: When using Homebrew, autopoint is not found even when
    gettext is installed, because symlinks are not created.
    Run: 'brew link --force gettext' to fix it.
    
    
    Clang compatibility (developers only)
    -------------------------------------
    
    It is possible to compile jamid with Clang by setting CC and CXX variables
    to 'clang' and 'clang++' respectively when calling ./configure.
    
    Currently it is not possible to use the DBus interface mechanism, and the
    interaction between daemon and client will not work; for each platform where
    D-Bus is not available the client should implement all the methods in the
    *_stub.cpp files.
    
    
    SIP accounts
    ---------------------
    
    You may register an existing SIP account through the account wizard in both
    clients (KDE and GNOME).
    By doing this, you will be able to call other accounts known to this server.
    
    
    Contributing to GNU Jami
    ------------------------
    
    Of course we love patches. And contributions. And spring rolls.
    
    Development website / Bug Tracker:
     - https://git.jami.net/savoirfairelinux/ring-project
    
    Repositories are hosted on Gerrit, which we use for code review. It also
    contains the client subprojects:
     - https://review.jami.net/#/admin/projects/
    
    Do not hesitate to join us and post comments, suggestions, questions
    and general feedback on the GNU Jami mailing-list:
    https://lists.gnu.org/mailman/listinfo/jami