Jami (software)
Jami (formerly GNU Ring, SFLphone) is a SIP-compatible distributed peer-to-peer softphone and SIP-based instant messenger for Linux, Microsoft Windows, macOS, iOS, and Android. Jami was developed and maintained by the Canadian company Savoir-faire Linux,[5][6] and with the help of a global community of users and contributors, Jami positions itself as a potential free Skype replacement.[7]
Developer(s) | Savoir-faire Linux Inc. |
---|---|
Preview release(s) [±] | |
Android 20210813 (August 13, 2021[1]) [±] Desktop 20201230 (December 30, 2020[2]) [±] | |
Repository | |
Written in | Java, Kotlin, Python, Shell, Makefile, PowerShell, roff |
Operating system | Android, FreeBSD, iOS, iPhone, Linux, Microsoft Windows, macOS[4] |
Platform | x86, x86-64, 32- and 64-bit ARM, powerpc, sparc, |
Available in | English, French, German, Spanish, Russian, Chinese, Italian, Vietnamese, Portuguese, Hungarian |
Type | VoIP, telephony, softphone, SIP |
License | GPL-3.0-or-later |
Website | jami |
Jami is free and open-source software released under the GNU GPL-3.0-or-later. In November 2016, it became part of the GNU Project.[8]
Two account types are currently available, and many of each type can be configured concurrently. Both types offer similar features including messaging, video and audio. The account types are SIP and Ring. A SIP account enables the Jami softphone to connect to a standard SIP server and a Ring account can register (or use an account set up) on the decentralised Jami network which requires no central server. By default, Jami uses a OpenDHT node maintained by Savoir-faire Linux to join the network when the user connects for the first time. However, the application gives users the choice to run this through their own bootstrap server in the advanced settings.[9]
By adopting distributed hash table technology (as used, for instance, within the BitTorrent network), Jami creates its own network over which it can distribute directory functions, authentication and encryption across all systems connected to it.[10]
Packages are available for all major Linux distributions including Debian, Fedora, and Ubuntu.[11] Documentation is available on Ring's Tuleap wiki.[12]
History
Jami was initially known as SFLphone, and was one of the few softphones under Linux to support PulseAudio out of the box. The Ubuntu documentation recommended it for enterprise use because of features like conferencing and attended call transfer.[13] In 2009, CIO magazine listed SFLphone among the top five open-source VoIP softphones to watch.[14] SFLphone was renamed to Ring in 2016 and then to Jami in 2018.[15]
Design
Jami is based on a MVC model, with a daemon (the model) and client (the view) communicating. The daemon handles all the processing including communication layer (SIP/IAX), audio capture and playback, and so on. The client is a graphical user interface. D-Bus can act as the controller enabling communication between the client and the daemon.
Features
- SIP-compatible with OpenDHT support[16][17]
- Unlimited number of calls
- Instant messaging
- Searchable call history
- Call recording[16]
- Attended call transfer
- Automatic call answering
- Call holding
- Audio and video calls with multi-party audio[16] and video conferencing[18][19]
- Multi-channel audio support (experimental)
- Streaming of video and audio files during a call
- TLS and SRTP support
- Multiple[16] audio codecs supported: G711u, G711a, GSM, Speex (8, 16, 32 kHz), Opus, G.722 (silence detection supported with Speex)
- Multiple SIP accounts support, with per-account STUN support and SIP presence subscription
- DTMF support
- Automatic Gain Control
- Account assistant wizard
- Global keyboard shortcuts
- Flac and Vorbis ringtone support[18]
- Desktop notification: voicemail number, incoming call, information messages
- SIP Re-invite
- Address book integration in GNOME and KDE
- PulseAudio support
- Jack Audio Connection Kit support
- Locale settings: French, English, Russian, German, Chinese, Spanish, Italian, Vietnamese
- Automatic opening of incoming URL
- End-to-end encryption used for chat, video and voice[20]
- Decentralised (no internet connection necessary)
See also
References
- Savoir-faire Linux Inc. (6 January 2021). "Commits · master · savoirfairelinux _ ring-client-android · GitLab". git.ring.cx. Savoir-faire Linux Inc. Retrieved 8 January 2021.
- Savoir-faire Linux Inc. (30 December 2020). "Commits · master · savoirfairelinux _ ring-project · GitLab". git.ring.cx. Savoir-faire Linux Inc. Retrieved 8 January 2021.
- Savoir-faire Linux Inc. (4 January 2021). "Commits · master · savoirfairelinux _ ring-client-ios · GitLab". git.ring.cx. Savoir-faire Linux Inc. Retrieved 8 January 2021.
- "News". Ring. 2018-07-25. Archived from the original on 2018-12-26. Retrieved 2018-12-01.
- Free Software Foundation
- "Ring's Tuleap Server". Archived from the original on 2018-04-19. Retrieved 2016-02-17.
- Robertson, Donald. "The Licensing and Compliance Lab interviews Guillaume Roguez, Ring Project Director". Free Software Foundation. Retrieved 2016-02-19.
- GNU Ring beta 2 release announcement
- "Why is Jami truly distributed?". Jami. 2019-10-09. Retrieved 2020-09-25.
- Say Hello to Ring (Savoir-faire Linux)
- "Ring Download". Archived from the original on 2018-12-26. Retrieved 2016-09-19.
- "Ring's Tuleap wiki". Archived from the original on 2018-10-19. Retrieved 2016-02-17.
- Official Ubuntu documentation
- "5 open source VoIP softphones to watch". CIO. Archived from the original on 2017-05-01. Retrieved 2012-01-03.
- https://linuxreviews.org/Jami
- Sanders, James. "Privacy-focused Skype alternative Ring shows promise – TechRepublic". TechRepublic. Retrieved 2016-02-19.
- OpenDHT project on Github
- Huber, Mathias (17 January 2014). "Software-Telefon SFLphone KDE 1.3.0 veröffentlicht » Linux-Magazin". Linux-Magazin. Retrieved 2016-02-19.
- "All features by client · Wiki jami-project". Jami GitLab. savoirfairelinux.
- "Protocol".
Once an encrypted and authenticated peer-to-peer communication channel is available, the SIP protocol must be used to place a call and send messages.