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.