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 GNU/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.
oRTP, a simple RTP library.
belle-sip the SIP library.
Liblinphone and all its dependencies are written in pure C.