Linphone

Open source video SIP phone per desktop & mobile.

Linphone features

Core features

Signaling

  • 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

Media

  • Audio with the following codecs: speex (narrow band and wideband), G711 (ulaw,alaw), GSM, G722. Through additionals plugins, it also supports AMR-NB, SILK, G729 and iLBC.
  • Video with codecs: VP8 (WebM), H263, H263-1998, MPEG4, theora and H264 (thanks to a plugin based on x264), with resolutions from QCIF(176×144) to SVGA(800×600) provided that network bandwidth and cpu power are sufficient.
  • Audio conferencing
  • Supports SRTP and zRTP (encryption of voice and video)
  • ICE support (RFC5246) to allow peer to peer audio & video connections without media relay server
  • Supports any webcam with a V4L or V4L2 driver under linux and Directshow driver on windows
  • Acoustic echo cancelation using the great echo canceller available in libspeexdsp (works not only with speex codec of course)
  • Efficient bandwidth management: the bandwidth limitations are signaled using SDP (b=AS…), resulting in audio and video session established with bitrates that fits the user’s network capabilities.
  • Low bandwidth mode: make audio calls over EDGE
  • Adaptive audio & video bitrate algorithm to adapt to available network bandwidth.
  • Sound backends:
    • Linux: ALSA, OSS, PulseAudio
    • Windows: waveapi
    • MacOSX: HAL Audio Unit
    • iPhone: VoiceProcessing AudioUnit with built-in echo cancellation
    • Android sound system
    • JSR135 on BlackBerry
  • Can use plugins: to add new codecs, or new core functionalities, such as remote directory search of sip addresses for example.

General

  • Addressbook
  • Understands SIP ENUMS (sip phone numbers using the naptr DNS service, without proxy)
  • Nat friendly: guesses NAT address for SIP messages, uses STUN for RTP streams
  • Compliant with open standarts: see the full list there.

User interfaces

Gtk2 graphical interface

It is running for Linux, Windows and MacOSX

Console tools

  • Linphonec is a command line interface that can use readline on linux to get completion, history, such as bash.
  • Linphonecsh is another command line tool to remotely control a linphonec daemon. Unlike linphonec, linphonecsh immediately exits once the command is executed.

Mobile phones interfaces

Android and iPhone/iPad applications

  • Video support
  • Dedicated tablet user interface
  • Address book integration
  • Call history
  • Integration with push notification (requires compatible SIP server)
  • Instant messaging (text and images)
  • Account creation and set-up assistant
  • Bluetooth support (iOS only)

Blackberry application (no video support yet)

  • Written in pure j2me (due to platform constraints)
  • For BlackBerry 7
  • Audio features : AMR codec and low latency
  • Address book integration
  • Call history

Portability

  • Linux/x86 and Linux/x86-64
  • Windows XP and Vista
  • MacOS X x86 : audio and video. You can download a standalone bundle from this website or, use macports.
  • Linux/ARM: without graphical interface. Linphonec or liblinphone are good candidates to provide the software stack of an hardware phone or hardware communication system.
  • Linux/Blackfin: The uclinux.org project maintains a port of linphone for blackfin processors, without gui. Performance are impressive. See here for details.
  • Google Android: audio and video, download with the Android Market from your phone.
  • Iphone OS: audio and video, download from the AppStore on your iphone/ipad or ipod touch.
  • Blackberry OS: Audio only, pure j2me version of Linphone.
  • WebOS : unofficial port, see information here: http://www.webos-internals.org/wiki/Application:Linphone
  • May work also on FreeBSD and OpenBSD with minor modifications to the build system.