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, and with the help of a global community of users and contributors, Jami positions itself as a potential free Skype replacement.

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.

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.

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.

Packages are available for all major Linux distributions including Debian, Fedora, and Ubuntu. Documentation is available on Ring's Tuleap wiki.

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. In 2009, CIO magazine listed SFLphone among the top five open-source VoIP softphones to watch. SFLphone was renamed to Ring in 2016 and then to Jami in 2018.

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
 * Unlimited number of calls
 * Instant messaging
 * Searchable call history
 * Call recording
 * Attended call transfer
 * Automatic call answering
 * Call holding
 * Audio and video calls with multi-party audio and video conferencing
 * Multi-channel audio support (experimental)
 * Streaming of video and audio files during a call
 * TLS and SRTP support
 * Multiple 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
 * 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
 * Decentralised (no internet connection necessary)