Jami is a peer-to-peer communication platform with no server component.
Configuration is done on each client device.
| Attribute |
Details |
| License |
GPLv3+ |
| Technical Stack |
C++, Python (clients) |
| Architecture |
Peer-to-peer (no server) |
| Config Location |
Per-device client settings |
- Launch Jami client
- Select “Create Account”
- Choose account type:
- Jami Account: Decentralized P2P (recommended)
- SIP Account: Traditional SIP provider
| Setting |
Description |
| Username |
Your unique ID on the DHT network |
| Password |
Encrypts your account locally |
| Display Name |
How others see you |
- Accounts are stored locally on each device
- No central server stores account data
- Backup your account by exporting it
Settings → Account → Export Account
Save the .gz file securely. Import on other devices to sync your identity.
For restrictive networks, configure a TURN server:
- Go to Settings → Account → Advanced
- Add TURN server:
- Server:
turn:turn.example.com:3478
- Username: (from your TURN admin)
- Password: (from your TURN admin)
If behind a corporate proxy:
- Settings → Network
- Configure SOCKS5 or HTTP proxy
- Test connection
Default ports used by Jami:
| Port |
Protocol |
Purpose |
| 42222 |
UDP/TCP |
DHT communication |
| 50000-51000 |
UDP |
Media (RTP) |
- Settings → Audio/Video
- Select devices:
- Microphone
- Speaker
- Camera
- Video resolution: Adjust based on bandwidth
- Frame rate: Lower for bandwidth-constrained networks
- Echo cancellation: Enable for speakerphone use
¶ Bandwidth Management
Settings → Audio/Video → Bandwidth
- Set maximum upload/download limits
- Enable adaptive quality
- Configure audio-only fallback
- Auto-accept contacts: Disable for privacy
- Contact requests: Require manual approval
- Block contacts: Add unwanted contacts to block list
Always verify contact identities:
- Open contact details
- Compare fingerprint/hash
- Verify out-of-band (phone, in-person)
All Jami communications are encrypted by default:
- Signaling: Encrypted
- Media: End-to-end encrypted (DTLS-SRTP)
- Chat: End-to-end encrypted
- Font size: Adjust for readability
- Notifications: Enable/disable per-contact
- History: Local storage duration
- Download location: Set default folder
- Auto-download: Configure size limits
- File size limit: Maximum transfer size
- Auto-answer: Disable (security)
- Call forwarding: Not applicable (P2P)
- Do Not Disturb: Enable when unavailable
- Default audio/video: Set preference
- HD mode: Enable for high-quality calls
- Bootstrap nodes: Default (leave unchanged)
- DHT port: Change if firewall requires
Settings → Advanced → Logging
- Enable debug logging for troubleshooting
- Log location:
~/.local/share/jami/logs/ (Linux)
- Hardware acceleration: Enable for video
- Low bandwidth mode: For constrained networks
¶ Verification Commands
# Linux: Check Jami version
jami --version
# Check configuration directory
ls -la ~/.config/jami/
# Check data directory
ls -la ~/.local/share/jami/
# View logs
tail -f ~/.local/share/jami/logs/jami.log
Any questions?
Feel free to contact us. Find all contact information on our contact page.