• Stars
    star
    142
  • Rank 258,495 (Top 6 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created about 9 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Mirror of Gerrit Jami Core Library and Daemon
COPYRIGHT NOTICE

Copyright (C) 2004-2023 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
------------

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. Jami comes with
various graphical user interfaces and even scripts to control the daemon from
the shell.

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 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 libjami.
- bin/ contains applications main code.
- bin/dbus, the D-Bus XML interfaces, and C++ bindings

About Savoir-faire Linux Inc.
-----------------------------

Savoir-faire Linux Inc. 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

A) With Autotools (recommended)

cd ../..
./autogen.sh
./configure
make
make install

B) With Meson

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 macOS
-----------------------

# 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 libjamiclient and native client easiest way is to
add to ./configure: --prefix=<prefix_path>

Do a little dance!

How to compile in a Docker container
-----------------------

docker build --tag jami-daemon .

# To build with custom build args

```bash
docker build --tag jami-daemon --build-arg config_args="--with-nodejs" .
```


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 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 Jami mailing-list:
https://lists.gnu.org/mailman/listinfo/jami

More Repositories

1

opendht

OpenDHT: a C++17 Distributed Hash Table implementation
C++
1,024
star
2

num2words

Modules to convert numbers to words. 42 --> forty-two
Python
785
star
3

jami-project

This (mirror) repo groups all parts of Jami.
Shell
182
star
4

jami-client-android

Mirror of Gerrit Jami Android Client
Kotlin
138
star
5

ansible-nexus3-oss

Ansible role to provision Nexus Repository Manager 3.x for RedHat/CentOS
Groovy
110
star
6

jami-client-gnome

Mirror of Gerrit Jami GNOME Client
C++
74
star
7

sous-chef

Sous-Chef is a web application to help organizations to plan and deliver meals, and to manage clients files.
Python
66
star
8

cqfd

cqfd helps running commands inside the Docker container configured for your project, keeping the user and working directory the same inside the container
Shell
65
star
9

sflvault

The networked credentials store and authentication manager
Python
60
star
10

jami-libclient

Mirror of Gerrit Jami Libclient (formerly LibRingClient, or LRC for short) Library
C++
31
star
11

cukinia

A simple on-target system test framework for Linux
Shell
30
star
12

odoo_payroll

Odoo Payroll
Python
28
star
13

monitoring-tools

Collection of monitoring tools for Shinken, Nagios, etc.
Python
28
star
14

jami-client-windows

Mirror of Gerrit Jami Windows Client
C++
25
star
15

meta-embedded-containers

Provide two approaches to embed Docker container(s) into a target root filesystem with Yocto. The Docker images will be pulled from an external Docker registry.
BitBake
21
star
16

jami-client-macos

Mirror of Gerrit Jami macOS Client
Objective-C++
20
star
17

jami-client-ios

Mirror of Gerrit Jami iOS Client
Swift
17
star
18

ansible-django

Provisions a Django project behind nginx/uwsgi
Shell
16
star
19

ansible-reboot-if-needed

Reboots hosts if needed, pausing for confirmation
14
star
20

flake8-copyright

Adds copyright checks to flake8
Python
14
star
21

mod-influxdb

Shinken module for exporting data to InfluxDB
Python
13
star
22

project-addons

Odoo project related addons
Python
11
star
23

ansible-gitpush-deploy

Shell
10
star
24

odoo-cms-theme-exploration

An exploration of theme for odoo-cms with bootflat for Odoo
JavaScript
10
star
25

ansible-puma-rbenv-nginx

Deploy a Ruby rbenv environment with Puma and Nginx virtual host all-in-one.
Shell
9
star
26

django-vagrant-demo

Showcase of a Django project automatically deploying itself locally with Vagrant
JavaScript
8
star
27

training-odoo

Training doc
8
star
28

jami-client-qt

C++
8
star
29

flashlight-search

An instanceable and customizable search portlet for Liferay 7
Java
7
star
30

ansible-php-fpm-nginx

7
star
31

openerp-pyui

Generate OpenERP XML views through a Python API
Python
7
star
32

jami-nameservice

Mirror of Gerrit jami-nameserver project
JavaScript
7
star
33

redmine-add-ldap-user-to-group

Automatically add newly logged-in LDAP user to a specific group.
Ruby
7
star
34

ansible-nginx

Installs and globally configures nginx
6
star
35

meta-jami

BitBake
6
star
36

office-365-integration

Office365 integration for Liferay gives an out of the box access to use the msgraph-sdk from your own Liferay plugin. This includes the ability to let your user login to Microsoft with Auth0.
Java
6
star
37

drupal-monitoring

Containers stack for the Bansho drupal module
Python
5
star
38

vanilla-slick

Soon! The vanilla JavaScript version of the last carousel you'll ever need!
JavaScript
5
star
39

jami-client-uwp

Mirror of Gerrit Jami UWP Client
C++
5
star
40

ringme.js

A library to display a « Ring Me » button on a website.
JavaScript
5
star
41

redmine-issue-status-auto-open

Redmine Plugin : When someone spent time on a task, automatically switch it's status to open if the current status order is below.
Ruby
5
star
42

secure-odoo

Secure Odoo
Python
4
star
43

colorlogging

Simple color logging for Python.
Python
4
star
44

dhtnet

Mirror
C++
4
star
45

redmine-timebank

Show a table with summation total of spent and estimated hours, story points, remaining and projected in version pages.
Ruby
4
star
46

mod-booster-snmp

Shinken module for boosting SNMP connections
Python
3
star
47

quick-phone_ts-tpc-7990

Uses Yocto to build an image which runs quick-phone on the TS-TPC-7990
Shell
3
star
48

redmine-list-of-roles-members

Redmine Plugin : Easily get a list of all members of a Role grouped by projects.
HTML
3
star
49

ansible-uwsgi-nginx

This Ansible role will install uWSGI as needed from official repositories, create NGINX virtual host, manage apps with theirs UNIX sockets + ensure that required plugins are installed.
3
star
50

meta-jami-imx-toradex

BitBake
2
star
51

ansible-ssh-access

Facilitates SSH access from one remote to other(s)
2
star
52

lightweight-liferay-theme

An example of a lightweight liferay theme
FreeMarker
2
star
53

liferay-theme-switcher

A theme switcher module for Liferay 7
Java
2
star
54

odoo-env

A Docker image for Odoo development
2
star
55

starlight

Cross-functional skill tracking system for Agile teams. 🌟
Python
2
star
56

ansible-sync-cron

Provisions crontab entries allowing to rsync folders.
2
star
57

multi-redmine

Installs and configure Redmine from it Git repo, needs rbenv environment.
2
star
58

quick-phone

QML
2
star
59

sflphone

The free software enterprise-class softphone for GNU/Linux
2
star
60

meta-jami-imx

2
star
61

ansible-ansible-install

Installs ansible on the target host, possibly in a virtualenv
2
star
62

connector-rt

Connector between Odoo and Request Tracker (https://www.bestpractical.com/rt/)
2
star
63

pack-vmware-system-https

Checks for VMware virtual machine and ESX/ESXi
2
star
64

redmine-role-members-batch-copy

Copy or move in batch the members of a role to another role in all projects.
HTML
2
star
65

redmine-subtask-overview-enhanced

Show time spent and estimated time of each tasks into the subtasks overview of a task page.
Ruby
2
star
66

jmeter-openstack

JMeter OpenStack, easily develop performance tests for OpenStack
Java
2
star
67

odoo-ci

Odoo image to do CI of our public modules.
Dockerfile
1
star
68

ansible-compile-website

Ansible role that crawl sitemap URLs pages in order to fill all the caches.
1
star
69

oe-sfl

BitBake
1
star
70

lampd

A Drupal-oriented LAMP stack base image for Docker, based on Phusion
Dockerfile
1
star
71

pack-linux-system-nrpe

1
star
72

sflphone-test

1
star
73

ansible-postgres-install

Installs postgresql server on debian jessie
1
star
74

odoo-sh-sfl

1
star
75

pack-generic-repodeb-http

Debian and Ubuntu repository active checks with HTTP requests
1
star
76

mattermost_bot_poc

A Mattermost bot POC to explore the possibilities (yet another hello world project)
Python
1
star
77

ansible-django-deploy

Ansible role to set up a Django project in a non-privileged environment.
Jinja
1
star
78

WAQ2017-exercices-react.js

Repo des exercices de la présentation https://savoirfairelinux.github.io/WAQ2017-react.js
JavaScript
1
star
79

angular-application-example

Angular Application Example
HTML
1
star
80

angular-ringme.js

Angular component for Ringme.js (https://github.com/savoirfairelinux/ringme.js)
1
star
81

pack-generic-radius

Generic pack for radius check
1
star
82

pack-generic-redis

Shinken pack for redis server
1
star
83

ansible-redmine

Installs and globally configures Redmine in a secure way.
1
star
84

mod-carbon

Python
1
star
85

openerp-sane

Small utilities to ease OpenERP development
Python
1
star
86

hr-addons

HR related Odoo addons
Python
1
star
87

OpenERP-sentry-patch

Patch for setting up OpenERP to work with sentry for Exception reporting
1
star
88

test-report-pdf

Generate a cukinia test report with AsciiDoc
Python
1
star
89

pack-generic-multisite-http

CheckMK Multisite active checks with HTTP requests
1
star
90

ansible-fail2ban

Easily edit and deploy simple Fail2ban service into your server on the fly with easy configuration.
1
star
91

fabmob

Répertoire des contributions faites dans le cadre de la Fabrique de mobilité
Python
1
star
92

node-server-example

Node Server Example
JavaScript
1
star
93

ossec-decoders-and-rules

OSSEC customs decoders and rules for various applications that are not in the default OSSEC
Python
1
star
94

PiKake

Remote controlled dashboard for the minix neo Z64
Python
1
star
95

web-addons

Web related addons
JavaScript
1
star
96

ansible-backup-cron

Shell
1
star
97

pack-generic-smb

Pack to monitor samba shared directory
1
star
98

stock-addons

Odoo stock related addons
Python
1
star
99

pack-generic-ssh

SSH active checks with SSH request
1
star
100

pack-generic-ldap

LDAP active checks with LDAP requests
1
star