Liblinphone

Overview

Description

Liblinphone is a high level library integrating all the SIP video calls feature into a single easy to use API. Usually telecommunications is made of two things: media (transport of voice or video, encoding and decoding...), and signaling (routing calls, ringing, accepting a call etc...).

Liblinphone aims at combining the two things together and doing most things automatically. This makes it easier to the programmer to implement video calls in any application, without being an expert in VoIP and telecommunications. Liblinphone is an open source library based on Mediastreamer2 for voice/video streaming, and belle-sip for SIP signaling.

Liblinphone in Linphone architecture

Linphone and linphonec are directly based on Liblinphone.

Features

Signaling features

  • SIP user agent compliant with RFC 3261
  • SIP/UDP, SIP/TCP, SIP/TLS
  • Supports IPv6
  • Digest authentication
  • Supports multiple calls simultaneously with call management features: hold on with music, resume, transfer...
  • Multiple SIP proxy support: registrar, proxies, outbound proxies
  • Text instant messaging with delivery notification
  • Presence using the SIMPLE standard in peer to peer mode
  • DTMF (telephone tones) support using SIP INFO or RFC 2833

Portability

Liblinphone is available on the following platforms:

  • Linux (x86, x86_64, ARM, blackfin)
  • Windows XP, vista and 7
  • Apple MacOS X
  • Apple iOS
  • Google Android
  • BlackBerry OS10

Signaling protocols

Registration, calls

  • Session Initiation Protocol, RFC 3261
    • 8. General User Agent behaviour
    • 9. Cancelling a request
    • 10. Registrations
    • 12. Dialogs
    • 13. Initiating a session
    • 14. Modifying an existing session
    • 15. Terminating a session
    • 17. Transactions
    • 18. Transports
    • 22.4 The Digest Authentication Scheme
  • Session Description Protocol, RFC 4566
  • An Offer/Answer Model with the Session Description Protocol (SDP), RFC 3264
  • An Extension to the Session Initiation Protocol (SIP), RFC 3581 (use of rport parameter)
  • Session Initiation Protocol (SIP) INFO Method and Package Framework, RFC 6086
    • 4. The INFO Method
  • The Session Initiation Protocol (SIP) Refer Method, RFC 3515
    • 2. The REFER Method
  • Session Description Protocol (SDP) Security Descriptions for Media Streams, RFC 4568

Presence and Instant Messaging

  • Session Initiation Protocol (SIP)-Specific Event Notification, RFC 3265
  • A Presence Event Package for the Session Initiation Protocol (SIP), RFC 3856
  • Session Initiation Protocol (SIP) Extension for Instant Messaging, RFC 3428 (only text/plain messages)
  • Session Initiation Protocol (SIP) Extension for Event State Publication, RFC 3903 (Creation of PUBLISH requests)
  • A Data Model for Presence, RFC 4479

Downloads

License

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

Binaries

Liblinphone Android version 2.3:

https://www.linphone.org/snapshots/android/liblinphone-android-sdk-2.3.zip

Liblinphone iOS version 2.2.2:

http://www.linphone.org/snapshots/ios/liblinphone-iphone-sdk-2.2.2.zip

Source code

Project git

linphone, including:

  • oRTP
  • mediastreamer2
  • liblinphone
  • linphonec
  • linphone (gtk)

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

Liblinphone BB10

git://git.linphone.org/linphone-bb10.git

Documentation

Liblinphone has a C-level API documented with Doxygen.

A java interface is available with JNI glue for Android.

The Linphone Wrapper Python documentation is available here.