Flexisip is a SIP proxy server implementation compliant to RFC 3261, written in C++11, running for Linux, though compilation on MacOS X is possible.
It has the following main features:
- Transports: SIP/UDP, SIP/TCP and SIP/TLS
- built-in ICE-capable media-relay module and STUN server
- Digest authentication based on external SQL password database or static password file
- Routing based on registrar database or static route file, with forking
- Store and forward operation for SIP MESSAGE requests (instant messaging).
- Interconnected with push notifications systems for reliably notifying mobile apps of incoming calls or messages
- High level event logging for activity monitoring
- High availability and cluster mode operation for large deployments
The project was started by Belledonne Communications in 2011. The focus was to develop a SIP proxy solution easy to install, configure and maintain, and offering “out of the box” all the required behaviors to deploy a SIP service tuned for mobile applications.
Flexisip is a general purpose SIP proxy with media capabilities.
It is released under the , which you should understand and agree on before deployment.
An alternate proprietary licensing is available from.
Flexisip is designed around the concept of modules taking in charge a particular processing : authentication, registration, media-relay, routing... All requests and responses go through a chain of modules in order to be processed. Modules are listed and documented.
Flexisip's underlying SIP stack is a forked version of, that provides excellent performance and robust, asynchronous transport layer. The fork simply adds a few maintainance patches.
Configuration and operation
The configuration of flexisip is defined by a single /etc/flexisip/flexisip.conf ini-style configuration file. A template configuration file with full documentation of sections and keys, and their default values, is generated by invoking
and installed in /etc/flexisip/flexisip.conf.sample, in order to be filled and tuned by the administrator.
In addition to the configuration file, a command-line calledand an interface are available, allowing remote administration or run-time reconfiguration of the server. Both flexisip_stats.py and SNMP allow to list and fetch in real-time internal statistics of the Flexisip process.
Flexisip outputs warning, error or debug logs via syslog, which goes to journald logs on systemd-capable systems.
Additionally, event logs can be enabled to log call, message, register activity, per user, in a mysql database.
Flexisip is designed to work with several instances running on different server, communicating through Redis backend in which routing information of users is stored. Several Flexisip instances can be used together in order to scale a large deployment and tolerate faults. This is achieved without load balancer (the load balancer would be a single point of failure): instead we recommend to userecords to define priorities between flexisip server and client-based load-balancing (using DNS-SRV weights).
- account creator
- audio latency
- bitbake linphone
- bug report
- codec H264
- compiling liblinphone
- developer community
- developer mailing list
- download H264
- dtls configuration
- embedded target
- file transfer
- global settings
- instant messaging
- Interactive Connectivity Establishment
- linphone recipe
- mailing lists
- module flexisip
- monitoring application
- push notifications
- raspberry pi
- reason header
- remote provisioning
- socket api
- user mailing list
- vcard contacts
- Visual studio