Giter Site home page Giter Site logo

new2010 / flexisip Goto Github PK

View Code? Open in Web Editor NEW

This project forked from belledonnecommunications/flexisip

0.0 1.0 0.0 6.38 MB

Linphone.org mirror for flexisip (git://git.linphone.org/flexisip.git)

Home Page: http://flexisip.org

License: GNU Affero General Public License v3.0

CMake 2.35% Makefile 0.88% Shell 1.56% M4 1.61% C++ 81.90% Python 1.89% C 9.80%

flexisip's Introduction

Flexisip is a SIP server suite comprising:

  • Flexisip proxy server, a SIP proxy with media-relay built-in.
  • Flexisip presence server, a presence server using resource-lists contained in SUBSCRIBE.

It bests runs on GNU/Linux, but can also be used on MacOS X. 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/xwiki/wiki/public/view/Flexisip/

Dependencies

Flexisip depends on the following required projects:

  • sofia-sip
  • ortp
  • bctoolbox

These above are referenced as git submodules in Flexisip's git repository. The dependencies below are optional, though stronly recommended for a reliable and scalable deployment:

  • hiredis
  • soci
  • protobuf
  • netsnmp

Specifically for presence server:

Compilation

Flexisip uses cmake as build system, extended by a prepare.py script written in python. Note that some automake/autoconf scripts and Makefile.am are also present in the source code, however they are no longer the recommended way for building flexisip, and these files will be removed in mid term.

GNU/Linux developer build

You can issue ./prepare.py -lf to see all possible build options. Then use the following to proceed with compilation: ./prepare.py make

Alternatively, provided that ortp, bctoolbox and sofia-sip dependencies are installed on the system, flexisip's cmake integration can be used directly, for example:

cmake . -DCMAKE_INSTALL_PREFIX=/opt/belledonne-communications -DSYSCONF_INSTALL_DIR=/etc
make

rpm and deb packages

The "flexisip-rpm" ./prepare.py target can be used to generate rpm packages for flexisip and its dependencies. "Alien" program is used internaly to convert into debian packages, when this build is run on a debian or debian like linux OS.

./prepare.py flexisip-rpm
make

Macos X

The cmake scripts of flexisip can be used to develop with Flexisip in Xcode. You need to run:

  • ./prepare.py -G Xcode flexisip \ -DENABLE_REDIS=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

The soci dependency is not easy to install on MacOS. If you need it, you can use these tips, based on "brew" system:

You need to install and unlink mysql : brew install mysql brew unlink mysql Then install mysql-connector-c brew install mysql-connector-c And finally install soci with mysql brew install soci --with-mysql

You can now use -DENABLE_SOCI=ON in your prepare options.

Configuration

Flexisip needs a configuration file for running correctly. You can either:

  • copy and modify file flexisip.conf.sample to flexisip.conf in directory /etc/flexisip
  • or issue flexisip --dump-default all > flexisip.conf in a terminal to generate a configuration file with the default values.

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.

flexisip's People

Contributors

viish avatar bagage avatar gberaudo avatar fgrisez avatar datbewar avatar sanavak avatar smorlat avatar mickhopes avatar gui13 avatar wescoeur avatar peppsac avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.