Linphone

Overview

Description

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.

Architecture

Console tools

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. 

Features

Common Features (Mobile and Desktop)

Overall features

  • 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

Advanced features

  • 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.

Specific features 

  • 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

Portability

  • 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.

 

Downloads

License

Linphone is dual licensed. It can be licensed and distributed:

  • under GNU GPLv2 license - for free (open source).
  • under proprietary and commercial license to be used in closed source applications. Contact Belledonne Communications for costs and other service information.

Download Mobile versions

Download Desktop versions

Mac osx / Windows

Download Linphone for Mac OS X

Download Linphone for Windows

flatpak package for GNU/linux

flatpak --user install --from https://linphone.org/flatpak/linphone.flatpakref

  • Launch Linphone from the application menu
 

Source code

Download Linphone source package

or

Clone linphone sources with git:

Project git

linphone-desktop, including:

  • linphone (Qt)
  • linphonec
  • liblinphone
  • mediastreamer2
  • ortp
  • belle-sip
  • dependencies

git clone git://git.linphone.org/linphone-desktop.git --recursive

linphone-iphone

  • iPhone app
  • liblinphone
  • dependencies

git clone git://git.linphone.org/linphone-iphone.git --recursive

linphone-android

  • Android app
  • liblinphone
  • dependencies

git clone git://git.linphone.org/linphone-android.git --recursive

linphone-windows10

  • Linphone windows 10 universal app, and dependencies
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.

Documentation

Please refer to the README.md file of each project (linphone-iphone, linphone-android, linphone-desktop, linphone-windows10) for developer information about the applications.

Additionally, our developer wiki provides highlights on specific subjects: