mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-07 22:02:12 +08:00
196 lines
5.5 KiB
Plaintext
196 lines
5.5 KiB
Plaintext
COPYRIGHT NOTICE
|
|
|
|
Copyright (C) 2004-2022 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 !
|
|
|
|
Note:
|
|
If you don't want SHM to be used, you can build with `--without-dbus`
|
|
|
|
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
|
|
|
|
Note: to build the tests add `-Dtests=true` ; or it can be enabled later with `meson --reconfigure -Dtests=true build`
|
|
|
|
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
|