Jami does NOT have a server component. It is a pure peer-to-peer (P2P) communication platform.
| Attribute | Details |
|---|---|
| License | GPLv3+ |
| Technical Stack | C++, Python (clients) |
| Architecture | Peer-to-peer (no server) |
| Deployment | Client installation only |
| GitHub | savoirfairelinux |
| Documentation | docs.jami.net |
Jami operates on a distributed hash table (DHT) network:
User A (Jami Client) ←→ Direct P2P Connection ←→ User B (Jami Client)
↓
DHT Network (for discovery only)
The DHT network is used only for:
All actual communication (voice, video, chat, files) happens directly between devices.
# Debian/Ubuntu (via repository)
sudo add-apt-repository ppa:ring/ring
sudo apt update
sudo apt install jami
# Fedora
sudo dnf install jami
# Arch Linux
sudo pacman -S jami
Jami needs these ports for optimal P2P connectivity:
| Port | Protocol | Purpose |
|---|---|---|
| 42222 | UDP | DHT communication |
| 42222 | TCP | DHT fallback |
| 50000-51000 | UDP | Media (RTP) |
Jami uses:
For improved connectivity in restrictive networks, you can run a TURN server:
# Debian/Ubuntu
sudo apt install coturn
# Configure
sudo nano /etc/turnserver.conf
listening-port=3478
tls-listening-port=5349
realm=turn.example.com
server-name=turn.example.com
lt-cred-mech
user=jami:strong-password
In Jami client settings:
turn:turn.example.com:3478Since Jami is client-only, configuration is per-device:
See Jami Configuration for client configuration details.
Key security considerations for Jami:
See Jami Security for hardening guidance.
Any questions?
Feel free to contact us. Find all contact information on our contact page.