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+ interface for windows, mac and linux

The console interface (linphonec, linphonecsh)

The iPhone application built in objective C

The Android application running in java

The Windows Phone application 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 or video call 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.