Flexisip is general purpose SIP proxy with media capabilities.
It is released under the AGPLv3 or later. Please understand the terms of AGPLv3 in COPYING before deploying it.
Documentation
---------------------
You will find a comprehensive documentation on how to use Flexisip online
here: https://wiki.linphone.org/wiki/index.php/Flexisip:start
Compilation
---------------------
Flexisip depends on the following required externals:
- oRTP
- sofia-sip library, 'bc' branch maintained by belledonne communications.
You can clone it from git://git.linphone.org/sofia-sip -b bc
- autotools, libtool (for compilation only)
It is recommended that you compile and install flexisip and the dependencies
in a prefix, so that they don't interfere with legitimate versions installed
in your system.
Optionally it also depends on:
- mediastreamer2 (use --disable-trancoder if not present)
- net-snmp
- odbc
- hiredis
- protobuf
- xsd (>= 4, for old OS on which this version isn't packaged, rpm and deb
are available here: http://www.codesynthesis.com/products/xsd/download.xhtml)
- pdflatex to generate the documentation in PDF format.
- xercesc3
You can issue ./configure --help to specify these up.
cmake/Xcode under macosx
--------------
To compile, with cmake/Xcode, first update submodule using:
- git submodule update --init
- ./prepare.py -G Xcode flexisip \
-DENABLE_REDIS=NO \
-DENABLE_ODBC=NO \
-DEP_sofiasip_CONFIGURE_OPTIONS=PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/
- xcodebuild -project WORK/flexisip/cmake/Project.xcodeproj/
- open WORK/flexisip/Build/flexisip/flexisip.xcodeproj
Configuration
---------------------
Flexisip needs a configuration file for running correctly.
You can either:
- copy and modify file flexisip.conf.sample to flexisip.conf in directory <prefix>/etc/flexisip
- or issue `flexisip --dump-default all > flexisip.conf` in a terminal
to generate a configuration file with the default values.
ODBC
---------------------
ODBC allows you to use a database for authentication.
Some tuning is possible to allow for better performances.
Enable pooling in odbc.ini and use a thread safe driver.
Use ODBCINI and ODBCSYSINI environement variable to override ini files location.
The connection string defined in authentication section of flexisip.conf may use
either a DSN or a DSN-less connection string.
Example odbc.ini file:
[myodbc3]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Description = MySQL ODBC 3.51 Driver DSN
Server = localhost
Port =
User = user
Password = password
Database = flexisip
Option = 4
Socket =
Developer notes:
---------------------
With sofia-sip, you have the choice between msg_dup and msg_copy,
sip_from_dup and sip_from_copy etc...
The difference isn't well documented in sofia-sip documentation.
However it is important to understand that
*_copy() just makes a copy of the structure, not the strings pointed by it
*_dup() makes a copy of structure plus all included strings inside.
*_copy() versions can be thus dangerous. Use *_dup() in doubt.