mirror of
https://github.com/resiprocate/resiprocate.git
synced 2026-01-12 00:05:02 +08:00
- enable c-ares by default for linux systems so that TFM will build correctly
- convert README to markdown format
This commit is contained in:
@@ -93,7 +93,6 @@ endif()
|
|||||||
# Top-level user-settable variables (with defaults)
|
# Top-level user-settable variables (with defaults)
|
||||||
# Those can be queried from the command line using "cmake -LH" and can be
|
# Those can be queried from the command line using "cmake -LH" and can be
|
||||||
# specified on the command line, using cmake-gui or ccmake.
|
# specified on the command line, using cmake-gui or ccmake.
|
||||||
option(WITH_C_ARES "Link against libc-ares (rather than rutil/dns/ares)" FALSE)
|
|
||||||
option(WITH_SSL "Link against SSL libraries" TRUE)
|
option(WITH_SSL "Link against SSL libraries" TRUE)
|
||||||
option(USE_POPT "Link against POPT libraries" TRUE)
|
option(USE_POPT "Link against POPT libraries" TRUE)
|
||||||
option(USE_SIGCOMP "Use OpenSigComp" FALSE)
|
option(USE_SIGCOMP "Use OpenSigComp" FALSE)
|
||||||
@@ -136,23 +135,26 @@ option(BUILD_TESTING "Build manual & unit tests" TRUE)
|
|||||||
|
|
||||||
# Enable/disable linux based settings appropriately
|
# Enable/disable linux based settings appropriately
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
set(WITH_C_ARES_DEFAULT OFF)
|
||||||
set(BUILD_QPID_PROTON_DEFAULT OFF)
|
set(BUILD_QPID_PROTON_DEFAULT OFF)
|
||||||
set(RESIP_ASSERT_SYSLOG_DEFAULT OFF)
|
set(RESIP_ASSERT_SYSLOG_DEFAULT OFF)
|
||||||
set(REGENERATE_MEDIA_SAMPLES_DEFAULT OFF)
|
set(REGENERATE_MEDIA_SAMPLES_DEFAULT OFF)
|
||||||
set(BUILD_DSO_PLUGINS_DEFAULT OFF)
|
set(BUILD_DSO_PLUGINS_DEFAULT OFF)
|
||||||
else()
|
else()
|
||||||
|
set(WITH_C_ARES_DEFAULT ON) # Needed for TFM to build correctly on linux
|
||||||
set(BUILD_QPID_PROTON_DEFAULT ON)
|
set(BUILD_QPID_PROTON_DEFAULT ON)
|
||||||
set(RESIP_ASSERT_SYSLOG_DEFAULT ON)
|
set(RESIP_ASSERT_SYSLOG_DEFAULT ON)
|
||||||
set(REGENERATE_MEDIA_SAMPLES_DEFAULT ON)
|
set(REGENERATE_MEDIA_SAMPLES_DEFAULT ON)
|
||||||
set(BUILD_DSO_PLUGINS_DEFAULT ON)
|
set(BUILD_DSO_PLUGINS_DEFAULT ON)
|
||||||
endif()
|
endif()
|
||||||
|
option(WITH_C_ARES "Link against libc-ares (rather than rutil/dns/ares)" ${WITH_C_ARES_DEFAULT})
|
||||||
option(BUILD_QPID_PROTON "Build components requiring qpid-proton (AMQP)" ${BUILD_QPID_PROTON_DEFAULT})
|
option(BUILD_QPID_PROTON "Build components requiring qpid-proton (AMQP)" ${BUILD_QPID_PROTON_DEFAULT})
|
||||||
option(RESIP_ASSERT_SYSLOG "Log assertion failures with Syslog" ${RESIP_ASSERT_SYSLOG_DEFAULT})
|
option(RESIP_ASSERT_SYSLOG "Log assertion failures with Syslog" ${RESIP_ASSERT_SYSLOG_DEFAULT})
|
||||||
option(REGENERATE_MEDIA_SAMPLES "Regenerate the header files containing raw audio samples (requires sox, xxd)" ${REGENERATE_MEDIA_SAMPLES_DEFAULT})
|
option(REGENERATE_MEDIA_SAMPLES "Regenerate the header files containing raw audio samples (requires sox, xxd)" ${REGENERATE_MEDIA_SAMPLES_DEFAULT})
|
||||||
option(BUILD_DSO_PLUGINS "Build DSO plugins" ${BUILD_DSO_PLUGINS_DEFAULT})
|
option(BUILD_DSO_PLUGINS "Build DSO plugins" ${BUILD_DSO_PLUGINS_DEFAULT})
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# Windows vcxproj files specify 10
|
# Windows vcxproj files specify 10 in sipXtapi
|
||||||
set(DEFAULT_BRIDGE_MAX_IN_OUTPUTS 10 CACHE STRING "recon: Maximum connections on bridge (must match value sipXtapi was compiled with)")
|
set(DEFAULT_BRIDGE_MAX_IN_OUTPUTS 10 CACHE STRING "recon: Maximum connections on bridge (must match value sipXtapi was compiled with)")
|
||||||
else()
|
else()
|
||||||
# Pre-build linux packages uses 20
|
# Pre-build linux packages uses 20
|
||||||
|
|||||||
82
README
82
README
@@ -1,82 +0,0 @@
|
|||||||
Overview
|
|
||||||
========
|
|
||||||
|
|
||||||
The reSIProcate repository contains the following C++ libraries and applications:
|
|
||||||
* resip library: comprehensive (RFC3261) SIP stack
|
|
||||||
* DUM library: higher level SIP library for creating SIP user agents
|
|
||||||
* rePro SIP Proxy application
|
|
||||||
* reTurn TURN server application
|
|
||||||
* reTurn TURN client library
|
|
||||||
* recon library: high level SIP UA library with media library integration
|
|
||||||
* tfm library: a SIP based SIP framework
|
|
||||||
|
|
||||||
Please see the following wiki for more information: www.resiprocate.org
|
|
||||||
|
|
||||||
|
|
||||||
CMake Instructions
|
|
||||||
==================
|
|
||||||
|
|
||||||
To create an in-tree build:
|
|
||||||
Navigate to git root folder where top level CMakeLists.txt file is
|
|
||||||
$ cmake
|
|
||||||
$ make
|
|
||||||
|
|
||||||
To create an _out of tree_ build:
|
|
||||||
$ mkdir cmake_build # Or any other name
|
|
||||||
$ cd cmake_build
|
|
||||||
$ cmake ..
|
|
||||||
$ make
|
|
||||||
|
|
||||||
Once this is built, you can run the unit tests with:
|
|
||||||
$ ctest
|
|
||||||
|
|
||||||
or, for verbose output:
|
|
||||||
$ ctest -V
|
|
||||||
|
|
||||||
If you want to start fresh either delete the out of tree build directory or
|
|
||||||
delete the CMakeCache.txt file.
|
|
||||||
|
|
||||||
Windows (Generating Visual Studio solution and project files):
|
|
||||||
Navigate to git root folder where top level CMakeLists.txt file is.
|
|
||||||
>cmake
|
|
||||||
OR
|
|
||||||
>cmake -DUSE_SIPXTAPI=ON
|
|
||||||
Open resiprocate.sln in visual studio: Build -> Build Solution
|
|
||||||
|
|
||||||
If you want to the unit tests, then right click on the RUN_TESTS project and Build it.
|
|
||||||
|
|
||||||
Windows (Using Ninja)
|
|
||||||
-Open the resiprocate folder by using Visual Studio Open Folder feature
|
|
||||||
-Use CMake GUI for changing CMake build settings and options: Project->CMake Settings for resiprocate
|
|
||||||
-Build -> Build All
|
|
||||||
-WARNING: You must not enable sipXtapi(recon) if you are using Ninja, since Ninja won't integrate nicely
|
|
||||||
with sipXtapi's linked VS project and solution builds. For sipXtapi(recon) use the above instructions to generate
|
|
||||||
Visual Studio solution and project files for resip.
|
|
||||||
|
|
||||||
|
|
||||||
Configuration Flags
|
|
||||||
===================
|
|
||||||
|
|
||||||
* This is not fully implemented on all flags yet *
|
|
||||||
|
|
||||||
CMake "cached" variables are used to specify options such as whether c-ares
|
|
||||||
should be used or not. You can get the list and tweak them with:
|
|
||||||
|
|
||||||
$ cmake -i ..
|
|
||||||
|
|
||||||
You can also set them on the command line like:
|
|
||||||
|
|
||||||
$ cmake -DWITH_C_ARES=true ..
|
|
||||||
|
|
||||||
|
|
||||||
Future Considerations
|
|
||||||
=====================
|
|
||||||
|
|
||||||
Installation Packages
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
CMake supports rpm/deb?/NSIS to build installable packages using CPack. If this
|
|
||||||
built-in support can not be used we could always specify internal build targets
|
|
||||||
that will run external commands to package the appropriate bundle depending on
|
|
||||||
the platform.
|
|
||||||
|
|
||||||
145
README.md
Normal file
145
README.md
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
# Overview
|
||||||
|
|
||||||
|
The reSIProcate repository contains the following C++ libraries and applications:
|
||||||
|
* resip library: comprehensive (RFC3261) SIP stack
|
||||||
|
* dum (Dialog Usage Manager) library: high level SIP library for creating SIP user agents (no media stack)
|
||||||
|
* recon library: high level SIP UA library with media stack integration
|
||||||
|
* rePro application: SIP Proxy server
|
||||||
|
* reTurn application: STUN/TURN server
|
||||||
|
* MOHParkServer appplication: a SIP based Music-on-hold server using recon
|
||||||
|
* reConServer application: a SIP based B2BUA server with media using recon
|
||||||
|
* reTurn library: STUN/TURN client library
|
||||||
|
* tfm library: a SIP based SIP framework
|
||||||
|
|
||||||
|
Please see the following wiki for more information: www.resiprocate.org
|
||||||
|
|
||||||
|
|
||||||
|
# CMake Instructions
|
||||||
|
|
||||||
|
## Building on *nix Systems
|
||||||
|
|
||||||
|
To create an in-tree build:
|
||||||
|
Navigate to git root folder where top level CMakeLists.txt file is
|
||||||
|
```
|
||||||
|
$ cmake
|
||||||
|
$ make
|
||||||
|
```
|
||||||
|
|
||||||
|
To create an _out of tree_ build:
|
||||||
|
```
|
||||||
|
$ mkdir cmake_build # Or any other name
|
||||||
|
$ cd cmake_build
|
||||||
|
$ cmake ..
|
||||||
|
$ make
|
||||||
|
```
|
||||||
|
|
||||||
|
Once this is built, you can run the unit tests with:
|
||||||
|
```
|
||||||
|
$ ctest
|
||||||
|
```
|
||||||
|
or, for verbose output:
|
||||||
|
```
|
||||||
|
$ ctest -V
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want to start fresh either delete the out of tree build directory or
|
||||||
|
delete the CMakeCache.txt file.
|
||||||
|
|
||||||
|
### Tips
|
||||||
|
* Some linux packages can be hard to track down. If you don't need the features that enabling these packages provides you can disable them in the build. One such package is QPID Proton.
|
||||||
|
```
|
||||||
|
$ cmake -DBUILD_QPID_PROTON=OFF
|
||||||
|
```
|
||||||
|
|
||||||
|
### Required Packages For Default Enabled CMake Settings
|
||||||
|
* git
|
||||||
|
* make
|
||||||
|
* cmake
|
||||||
|
* clang or g++ (resip CI uses clang-13, lld-13, g++-10)
|
||||||
|
* gperf
|
||||||
|
* libssl-dev (WITH_SSL)
|
||||||
|
* libc-ares-dev (WITH_C_ARES)
|
||||||
|
* libasio-dev
|
||||||
|
* libboost-all-dev
|
||||||
|
* libdb++-dev
|
||||||
|
* libsrtp2-dev
|
||||||
|
* libgeoip-dev (USE_MAXMIND_GEOIP)
|
||||||
|
* libpopt-dev (USE_POPT)
|
||||||
|
* libcppunit-dev (BUILD_TFM)
|
||||||
|
* libnetxx-dev (BUILD_TFM)
|
||||||
|
* libqpid-proton-cpp12-dev (BUILD_QPID_PROTON)
|
||||||
|
* sox (REGENERATE_MEDIA_SAMPLES)
|
||||||
|
* xxd (REGENERATE_MEDIA_SAMPLES)
|
||||||
|
|
||||||
|
### Optional Packages
|
||||||
|
* default-libmysqlclient-dev (USE_MYSQL)
|
||||||
|
* libfmt-dev (USE_FMT)
|
||||||
|
* libgloox-dev (BUILD_ICHAT_GW)
|
||||||
|
* libgstreamermm-1.0-dev (USE_GSTREAMER)
|
||||||
|
* postgresql-server-dev-all (USE_POSTGRESQL)
|
||||||
|
* libradcli-dev (RESIP_HAVE_RADCLI)
|
||||||
|
* libsipxtapi-dev (USE_SIPXTAPI)
|
||||||
|
* libsnmp-dev (USE_NETSNMP)
|
||||||
|
* libpq-dev (USE_SOCI_POSTGRESQL)
|
||||||
|
* libsoci-dev (USE_SOCI_POSTGRESQL)
|
||||||
|
* libtelepathy-qt5-dev (BUILD_TELEPATHY_CM)
|
||||||
|
* libwebsocketpp-dev (USE_KURENTO)
|
||||||
|
* libxerces-c-dev
|
||||||
|
* perl
|
||||||
|
* python3-cxx-dev (BUILD_PYTHON)
|
||||||
|
* python3-dev (BUILD_PYTHON)
|
||||||
|
|
||||||
|
|
||||||
|
## Building on Windows Systems
|
||||||
|
|
||||||
|
### Generating Visual Studio solution and project files
|
||||||
|
|
||||||
|
Navigate to git root folder where top level CMakeLists.txt file is.
|
||||||
|
```
|
||||||
|
> cmake
|
||||||
|
```
|
||||||
|
Open resiprocate.sln in visual studio: Build -> Build Solution
|
||||||
|
|
||||||
|
If you want to run the unit tests, then right click on the RUN_TESTS project and Build it.
|
||||||
|
|
||||||
|
To build recon with sipXtapi media support you need to do the following:
|
||||||
|
* Clone sipXtapi github repo to same folder as level as you have closed resiprocate github repo. **The root folder name MUST be: sipXtapi**.
|
||||||
|
* Run cmake in the resiprocate cloned folder with the following argument:
|
||||||
|
```
|
||||||
|
> cmake -DUSE_SIPXTAPI=ON
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Using Ninja via Visual Studio
|
||||||
|
* Open the resiprocate folder by using Visual Studio Open Folder feature
|
||||||
|
* Use CMake GUI for changing CMake build settings and options: Project->CMake Settings for resiprocate
|
||||||
|
* Build -> Build All
|
||||||
|
|
||||||
|
> WARNING: You must not enable sipXtapi(recon) if you are using Ninja, since Ninja won't integrate nicely
|
||||||
|
> with sipXtapi's linked VS project and solution builds. For sipXtapi(recon) use the above instructions to generate
|
||||||
|
> Visual Studio solution and project files for resip. We may address this short coming in the future.
|
||||||
|
|
||||||
|
|
||||||
|
## Configuration Flags
|
||||||
|
|
||||||
|
CMake "cached" variables are used to specify options such as whether c-ares
|
||||||
|
should be used or not. You can get the list and tweak them with:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cmake -i ..
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also set them on the command line like:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cmake -DWITH_C_ARES=true ..
|
||||||
|
```
|
||||||
|
|
||||||
|
# Future Considerations
|
||||||
|
|
||||||
|
## Installation Packages
|
||||||
|
|
||||||
|
CMake supports rpm/deb?/NSIS to build installable packages using CPack. If this
|
||||||
|
built-in support can not be used we could always specify internal build targets
|
||||||
|
that will run external commands to package the appropriate bundle depending on
|
||||||
|
the platform.
|
||||||
@@ -63,7 +63,6 @@ moetje = Matthias Moetje <moetje@terasens.com>
|
|||||||
nagendra = Nagendra Modadugu <nagendra@cs.stanford.edu>
|
nagendra = Nagendra Modadugu <nagendra@cs.stanford.edu>
|
||||||
nash = Nash Tsai <nash.teltel@gmail.com>
|
nash = Nash Tsai <nash.teltel@gmail.com>
|
||||||
nils = Nils Ohlmeier <nils@iptel.org>
|
nils = Nils Ohlmeier <nils@iptel.org>
|
||||||
(no author) = <no_author@resiprocate.org>
|
|
||||||
oej = Olle Johansson <oej@edvina.net>
|
oej = Olle Johansson <oej@edvina.net>
|
||||||
partim = Martin Hoffmann <hn@nvnc.de>
|
partim = Martin Hoffmann <hn@nvnc.de>
|
||||||
pckizer = Philip Kizer <pckizer@estacado.net>
|
pckizer = Philip Kizer <pckizer@estacado.net>
|
||||||
|
|||||||
Reference in New Issue
Block a user