Understanding the internals of linphone

Software architecture

Linphone has inside a separation between the user interfaces and the core engine, allowing to create various kinds of user interface on top of the same functionalities.

  • The user interface frontends:
    • Gtk+/glade interface
    • The console interface (linphonec, linphonecsh)
    • The iPhone application built in objective C
    • The Android application running in java
  • Liblinphone, the core engine: this is the library that implements all the fonctionnalities of linphone. Liblinphone is a powerful SIP VoIP video SDK that anyone can use to add audio or video call capabilities to an application. It provides a high level api to initiate, receive, terminate calls.
    Liblinphone relies on the following software components:
    • mediastreamer2, a powerfull multimedia SDK to make audio/video streaming and processing.
    • oRTP, a simple RTP library.
    • belle-sip the SIP user agent library.

Liblinphone and all its dependencies are written in pure C.

Linphone software architecture overview



Audio tunables and configuration file options

Linphone can be adapted to a variety of hardware platforms, not only PCs. A wide range of options is available to allow improving the audio quality for a target platform or environment. Read this document for information about these possibilities.