... | ... | @@ -34,164 +34,41 @@ list](https://lists.gnu.org/mailman/listinfo/ring) |
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
## End user notes
|
|
|
|
|
|
How to install
|
|
|
--------------
|
|
|
This wiki contains technical documentation and resources for anyone who wants to understand how Jami works or if you want to develop something with the platform. If you are a end-user, please refer to our [website](https://jami.net) or the [FAQ](https://git.jami.net/savoirfairelinux/ring-project/wikis/tutorials/Frequently-Asked-Questions).
|
|
|
|
|
|
*We provide Jami for RPM based (RedHat/Fedora) and DEB based
|
|
|
(Debian/Ubuntu) distributions, Microsoft 7/8.1/10, Mac OS/X 10.8+, and
|
|
|
Android (4.4+).*
|
|
|
Also, if you prefer to build your binaries from source, please refer to the [build instructions](https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions) page.
|
|
|
|
|
|
''External contributions may provide support for others type of
|
|
|
platforms, please take a look to our
|
|
|
[contributions](https://jami.net/contribute/) page.
|
|
|
Also, you can see features by client via [this page](https://git.jami.net/savoirfairelinux/ring-project/wikis/features/All-features-by-client)
|
|
|
|
|
|
Obtain your copy of Jami with following methods:
|
|
|
|
|
|
### Package managers
|
|
|
|
|
|
We maintain packaged versions for the supported and LTS versions of
|
|
|
mentioned GNU/Linux distributions.
|
|
|
|
|
|
you can install them manually by following these instruction:
|
|
|
|
|
|
- Debian 9
|
|
|
|
|
|
<!-- -->
|
|
|
|
|
|
```bash
|
|
|
su -
|
|
|
apt-get install dirmngr
|
|
|
sh -c "echo 'deb https://dl.ring.cx/ring-nightly/debian_9/ ring main' > /etc/apt/sources.list.d/ring-nightly-main.list"
|
|
|
apt-key adv --keyserver pgp.mit.edu --recv-keys A295D773307D25A33AE72F2F64CD5FA175348F84
|
|
|
apt-get update && sudo apt-get install ring
|
|
|
```
|
|
|
|
|
|
- Fedora
|
|
|
|
|
|
The supported Fedora versions are: 25 and 26\
|
|
|
you can adapt this script to your version by replacing the
|
|
|
**{VERSION}** with your distribution version number
|
|
|
|
|
|
```bash
|
|
|
sudo dnf config-manager --add-repo https://dl.ring.cx/ring-nightly/fedora_{VERSION}/ring-nightly.repo
|
|
|
sudo dnf install ring
|
|
|
```
|
|
|
|
|
|
- Ubuntu
|
|
|
|
|
|
The supported Ubuntu versions are: 16.04, 17.04, and 17.10.\
|
|
|
you can adapt this script to your version by replacing the
|
|
|
**{VERSION}** with your distribution version number
|
|
|
|
|
|
```bash
|
|
|
sudo sh -c "echo 'deb https://dl.ring.cx/ring-nightly/ubuntu_{VERSION}/ ring main' > /etc/apt/sources.list.d/ring-nightly-main.list"
|
|
|
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys A295D773307D25A33AE72F2F64CD5FA175348F84
|
|
|
sudo add-apt-repository universe
|
|
|
sudo apt-get update && sudo apt-get install ring
|
|
|
```
|
|
|
|
|
|
|
|
|
- Packages
|
|
|
|
|
|
You can also download the .deb and .rpm packages directly from
|
|
|
<https://dl.ring.cx/ring-manual/>.
|
|
|
|
|
|
The ring-daemon packages contain the applicative core of Jami, the
|
|
|
ring-gnome are containing the gnome client, and the ring\_ packages are
|
|
|
containing the two.
|
|
|
|
|
|
### Direct download
|
|
|
|
|
|
Browse our official website [Download Jami](https://jami.net/download/)
|
|
|
dedicated to end-user applications.
|
|
|
|
|
|
### Build from sources
|
|
|
|
|
|
We maintain [github](https://github.com/savoirfairelinux/ring-project),
|
|
|
[gerrit](https://gerrit-ring.savoirfairelinux.com/#/admin/projects/ring-project)
|
|
|
and [gitlab](https://git.ring.cx) mirrors
|
|
|
to download the project's sources.
|
|
|
|
|
|
Then you can follow [Build Instructions](technical/Build-instructions) with
|
|
|
platform specific explanations.
|
|
|
|
|
|
General Documents
|
|
|
-----------------
|
|
|
|
|
|
- The [FAQ](https://ring.cx/en/documentation/faq) and
|
|
|
[About](https://ring.cx/en/about/technical) sections on the end-user
|
|
|
applications website
|
|
|
|
|
|
<!-- -->
|
|
|
|
|
|
- Contribute to the [Jami distributed
|
|
|
network](tutorials/Jami-distributed-network).
|
|
|
|
|
|
Technical Documents
|
|
|
-------------------
|
|
|
|
|
|
### Nameserver
|
|
|
|
|
|
We provide a name registration system based upon an Ethereum Blockchain,
|
|
|
but anyone can implement theirs using the following informations:
|
|
|
|
|
|
- Description of the [REST API for name query](technical/Name-Server-Protocol)
|
|
|
|
|
|
### Security / Privacy
|
|
|
|
|
|
Jami provides perfect forward secrecy for calls and in call text
|
|
|
messages with different Eliptic Curve Diffie-Hellman key negociation at
|
|
|
every call. For out of call messaging single RSA-4096 is used. The
|
|
|
cryptography library used is GNUTLS
|
|
|
|
|
|
More informations:
|
|
|
|
|
|
- [Technical overview](technical/Technical-overview) of concepts and
|
|
|
protocols inside Jami
|
|
|
|
|
|
### Connectivity
|
|
|
|
|
|
Jami relies on a [distributed
|
|
|
network](tutorials/Jami-distributed-network), that brings multiple
|
|
|
advantages when compared to federated networks:
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
- No point of failure,
|
|
|
- More resilient to censorship,
|
|
|
- Do not depend on anything other than its users,
|
|
|
- Trust amongst nodes is not necessary.
|
|
|
## Technical documentation
|
|
|
|
|
|

|
|
|
The technical documentation is mainly available [here](https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/0.-Introduction) and [here](https://git.jami.net/savoirfairelinux/ring-project/wikis/pages)
|
|
|
|
|
|
This network forms a Distributed Hash Table (DHT)
|
|
|
But this is the main parts:
|
|
|
|
|
|
The core problem of distributed communication systems is peer
|
|
|
connectivity, Jami achieves it through two elements:
|
|
|
+ [OpenDHT](https://opendht.net), a DHT library to provide the basis of our distributed network
|
|
|
+ [Nameserver](https://git.jami.net/savoirfairelinux/ring-nameservice), (optional) is our registration system based upon an Ethereum Blockchain, but anyone can implement theirs using the following informations:
|
|
|
- Description of the [REST API for name query](technical/Name-Server-Protocol)
|
|
|
+ The daemon in charge of the accounts management, SIP features, crypto, video, etc
|
|
|
+ The clients for all platform to interact with the daemon.
|
|
|
|
|
|
- Encrypted announcements on DHT,
|
|
|
- Use of standard protocols for NAT hole punching.
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Miscellaneous documents
|
|
|
## Resources for contributors
|
|
|
|
|
|
- Auto-generated (Doxygen) [Daemon code
|
|
|
documentation](https://docs.jami.net/doxygen/daemon/)
|
|
|
- Auto-generated (Doxygen) [LRC API
|
|
|
documentation](https://docs.jami.net/doxygen/lrc/)
|
|
|
- Testing (LCOV) [Daemon coverage](https://docs.jami.net/coverage)
|
|
|
- [Important RFCs](technical/Important-RFCs) used by Jami
|
|
|
- [Jami configuration path](technical/Ring-configuration-path)
|
|
|
- A list of public STUN servers is maintained
|
|
|
[here](http://www.voip-info.org/wiki/view/STUN)
|
|
|
- [File transfer](tutorials/file-transfer)
|
|
|
|
|
|
Development Processes and Contributing
|
|
|
--------------------------------------
|
|
|
### Development Processes and Contributing
|
|
|
|
|
|
- The [Release Process](technical/release-process)
|
|
|
- [Reporting Bugs and Enhancements](tutorials/Bug-report-guide)
|
|
|
- [Working with Gerrit](tutorials/Working-with-gerrit), our Git
|
|
|
repositories manager and code-review tool for all submitted patches
|
|
|
- *Coding Rules and Guidelines*:
|
|
|
- [Daemon](guidelines/Libring-coding-rules)
|
|
|
- [LRC](guidelines/Libringclient-Coding-Rules)
|
|
|
- [UI / UX Development](guidelines/UI-and-UX-development) |
|
|
\ No newline at end of file |
|
|
repositories manager and code-review tool for all submitted patches |
|
|
\ No newline at end of file |