Flexisip

Overview

Flexisip is a complete, modular and scalable SIP server suite written in C++11, comprising proxy, presence and group chat functions.

Flexisip offers an easy-to-install SIP server solution, offering « out of the box » all the required features to deploy your own SIP service tuned for mobile or desktop applications. 

FlexiSIP can be integrated into your SIP infrastructure for different purposes :

FLEXISIP in the cloud

Flexisip instances can be deployed on server machines, in order to run a SIP VoIP service. 
The free linphone.org SIP service is running with Flexisip since 2011, and enables Linphone users to create their SIP addresses in order to communicate together.

FlexiSIP embedded

Thanks to its modular architecture and its limited number of required dependencies, Flexisip can perfectly run on small hardwares (embedded systems).

FlexiSIP Push Gateway

Push Gateway is a specific operation mode of FlexiSIP, developed by Belledonne Communications to deliver SIP incoming calls or text messages on mobile device platforms where push notifications are required to receive information while the app is in foreground. 

Supporting push notifications was already highly recommended and becomes mandatory on some OS (iOS ≥ 10, Android ≥ 8). The push system is promoted as the efficient, highly reliable, bug-free system to receive information while the phone is off.

FlexiSIP Push Gateway aims at being integrated into existing SIP infrastructures that do not support push notifications, most of the time without any configuration change. 

Features

Flexisip has the following main features:

Proxy

  • transports: SIP/UDP, SIP/TCP and SIP/TLS
  • digest and TLS client certificate authentication
  • routing based on registrar database or static route file, with forking
  • interconnected with push notifications systems for reliably notifying mobile apps of incoming calls or messages
  • « store and forward" logic for SIP MESSAGE (IM) so that text message can be delivered when the recipient connects to the network
  • NAT aware with built-in media relay module and ICE/STUN support - high level event logging for activity monitoring
  • real-time statistics available through command line
  • High availability and cluster mode for large deployments

Presence

Flexisip manages SIP SUBSCRIBE and PUBLISH from client applications, in order to
  • identify users of the service within the address book
  • provide users with real-time presence status

Group chat

  • entirely SIP-based solution
  • efficient management of groups and participants
  • multi-device support
  • notifications of group events (users joining or leaving, new admins…)

    Flexisip conference server can also be integrated into an existing third party server (read more on our wiki).

Implemented standards

Proxy

  • SIP, RFC 3261
  • An Extension to the Session Initiation Protocol (SIP), RFC 3581 (use of rport parameter)
  • Managing Client-Initiated Connections in the Session Initiation Protocol (+sip.instance parameter), RFC 5626
  • Connection reuse in the Session Initiation Protocol (alias parameter), RFC 5923
  • GRUUs; RFC 5627

Presence & Conference

  • Session Initiation Protocol (SIP) - Specific Event Notification, RFC 6665
  • Session Initiation Protocol (SIP) Extension for Event State Publication, RFC 3903
  • A Presence Event Package for the Session Initiation Protocol (SIP), RFC 3856
  • A Data Model for Presence, RFC 4479
  • RPID: Rich Presence Extensions to the Presence Information Data Format (PIDF), RFC 4480
  • Subscriptions to Request-Contained Resource Lists in the Session Initiation Protocol (SIP), RFC 5367
  • Conference Establishment Using Request-Contained Lists in SIP, RFC 5366
  • SIP body compression, RFC 1951
  • Message Body Handling in the Session Initiation Protocol, RFC 5621
  • SIP Event Package for Conference State, RFC 4575

Downloads

License

Flexisip is distributed for free under the Affero GPLv3 license. The Affero GPL is an open-source license similar to the GNU GPL license, with new conditions adapted to server-side software, mainly that the source code of the software must be made available to users of the service.

Alternate proprietary licensing is possible with commercial agreement. Please contact Belledonne Communications for costs and other service information.

Binary packages

Packages for Debian and Redhat/CentOS are available.

Please read installation instructions on our wiki.

Source code

Source code is available from git.

Project
git

Flexisip
(bc branch - includes submodules bctoolbox, sofia-sip, ortp)

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

Flexisip depends on sofia-sip stack, with minor patches applied, kept on git.linphone.org repository under "BC" branch.

oRTP is also a required dependency.

 

Documentation

Documentation is available from our wiki. For example:

To learn more about our Push Gateway solution, see our presentation FlexiSIP Push Gateway and find more advanced technical documentation on our wiki.

Mailing list

We invite anyone that wishes to get in touch with Flexisip's developer team to subscribe to flexisip-developers mailing list. Subscription is required to be authorized to post to this mailing list, in order to eliminate spam. Flexisip-developers mailing list is the place where to discuss technical issues and/or submit patches.