Linphone is an open source SIP Phone for voice/video calls and instant messaging, available on mobile and desktop environments (iOS, Android, GNU/Linux, MAC OSX, Windows Desktop, Windows 10 UWP).
Linphone has inside a separation between the user interfaces and the core engine, allowing to create various kind of user interface on top of the same functionalities.
- The user interface frontends:
- Qt/QML interface for Windows, Mac and GNU/Linux
- The console interface (linphone-daemon)
- The iPhone application built in objective C
- The Android application running in java
- The Windows 10 application (UWP : mobile and desktop) written in C#
- Liblinphone, the core engine: this is the library that implements all the functionalities of Linphone.
Liblinphone is a powerful SIP VoIP video SDK that anyone can use to add audio and video calls or instant messaging capabilities to an application. It provides a high level api to initiate, receive, terminate audio & video calls.
Liblinphone relies on the following software components:
- Mediastreamer2, a powerful multimedia SDK to make audio/video streaming and processing
- oRTP, a simple RTP library
- belle-sip, the SIP library
Liblinphone and all its dependencies are written in C++ and C.
Linphone-daemon is a console-mode program based on Liblinphone, that can register, send and receive calls from simple text commands read from standard input, or from a UNIX socket. In response to each command, linphone-daemon writes the command's execution status on standard output (or socket).
This tool can easily be used from a shell script to execute simple SIP scenarios, for those who do not require the full capabilities of the Liblinphone SDK.
Linphone-daemon obsoletes the former "linphonec" console tool, by proposing a more clever syntax for inputs and outputs.
Common Features (Mobile and Desktop)
- Audio & HD video calls
- Multiple calls management (pause & resume)
- Call transfer
- Audio conferencing (merge calls into a conference)
- Instant Messaging with message delivery status (IMDN)
- Pictures and files sharing
- Contact list
- Call History
- Display of advanced call statistics
- Echo Cancellation
- Call quality indicator
- Secure communications: zRTP, TLS, SRTP
- Supported languages: English, French
- Account creation assistant
- Audio codecs: OPUS, SILK, SPEEX, G722, AMR-WB (G722.2), AMR-NB, GSM 6.10, ILBC, G729, ISAC, BV16, G711, Codec2
- Video codecs: VP8, H264, MPEG4
- HD video support
- Integration with push notification (requires compatible SIP server, linphone.org sip service has push enabled)
- ICE support (RFC5245) to allow peer to peer audio & video connections without media relay server
- Low bandwidth mode for audio calls over 2G networks.
- Call handover accross network access type change (start a call in wifi and continue in 3G)
- Ability to configure multiple proxy accounts with different transports (UDP, TCP, TLS)
- IPv6 (dual stack and v6-only support)
- DTMF with RFC4733
Consult the complete list of implemented standards in Liblinphone section.
Mobile specific features
- Multi-participant Instant Messaging (group chat)
- Smart contact list (shows people using the service)
- Bluetooth headset support
- Dedicated tablet user interface
- Languages : contributions for Japanese and Arabic have been integrated
Linphone is available on following mobile platforms :
- Apple iOS 9 to 11 (ARM v7, ARM 64)
- Google Android 4.1 to 8.1 (ARM v7-v8, x86)
- Windows 10 UWP : mobile and desktop (ARM v7)
iOS additional features
- Blind accessibility
- AAC-ELD support
Android additional features
- Video overlay
Windows 10 uwp
- Windows 10 support
- Multiple calls management and audio conferencing are not supported.
Desktop specific features
The Qt (QML) graphical interface is running on GNU/Linux, Windows and Mac OS X.
- HD video calls in fullscreen mode
- Call recording (audio & video)
- Presence status
- Smart search bar
- Chat access during calls
- Unified history
- Quick access through my recent events
- Ability to create audio conference calls instantaneously
- GNU/Linux: x86, x86-64, ARM v5, v7, arm64 ; Debian 8/9, Centos 7
- Windows Desktop: x86 (works also on x86_64), Windows 7 and later
- Mac OS X: x86_64 ; 10.11 and later.
- GNU/Linux embedded: Linphonec or liblinphone are good candidates to provide the software stack of an hardware phone or hardware communication system.
Linphone is dual licensed. It can be licensed and distributed:
Download Mobile versions
Download Desktop versions
Mac osx / Windows
flatpak package for GNU/linux
- Install flatpak as described on: http://flatpak.org/getting.html
- Type the following command to install Linphone:
flatpak --user install --from https://linphone.org/flatpak/linphone.flatpakref
- Launch Linphone from the application menu
Clone linphone sources with git:
git clone git://git.linphone.org/linphone-desktop.git --recursive
git clone git://git.linphone.org/linphone-iphone.git --recursive
git clone git://git.linphone.org/linphone-android.git --recursive
|git clone git://git.linphone.org/linphone-windows10.git --recursive|
For those who are behind a proxy:
You can change the access method from git:// to http:// as follows:
Normal git access:
git clone git://git.linphone.org/msilbc.git
Behind a proxy, use http access:
git clone http://git.linphone.org/msilbc.git
Daily builds (testing)
Every day some binary packages generated from the current git state are uploaded at http://www.linphone.org/snapshots . It is worth to visit it if you want to test and see the latest changes, especially when a long time has elapsed since the last official stable release. These snapshots are generated automatically and not tested, some features might be broken from time to time.
Additionally, our developer wiki provides highlights on specific subjects: