Preparing the system
1 | sudo yum update |
The first step is to checkout Doubango 2.0 source code:
1 | svn checkout https://doubango.googlecode.com/svn/branches/2.0/doubango doubango |
Building libsrtp
libsrtp is optional.
1 | git clone https://github.com/cisco/libsrtp/ |
Building OpenSSL
OpenSSL is required if you want to use the RTCWeb Breaker module or Secure WebSocket transport (WSS). OpenSSL version 1.0.1 is required if you want support for DTLS-SRTP.
This section is only required if you don’t have OpenSSL installed on your system or using version prior to 1.0.1 and want to enable DTLS-SRTP.
A quick way to have OpenSSL may be installing openssl-devel package but this version will most likely be outdated (prior to 1.0.1). Anyway, you can check the version like this:
1 | openssl version |
To build OpenSSL:
1 | wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz |
Building libspeex and libspeexdsp
libspeex (audio codec) an libspeexdsp (audio processing and jitter buffer) are optional. It’s highly recommended to enable libspeexdsp.
You can install the devel packages:
1 | sudo yum install speex-devel |
Or build the source by yourself:
1 | wget http://downloads.xiph.org/releases/speex/speex-1.2beta3.tar.gz |
Building YASM
YASM is only required if you want to enable VPX (VP8 video codec) or x264 (H.264 codec).
1 | wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz |
Building libvpx
libvpx adds support for VP8 and is optional but highly recommended if you want support for video when using Google Chrome or Mozilla Firefox.
You can install the devel packages:
1 | sudo yum install libvpx-devel |
Or build the source by yourself:
1 | git clone http://git.chromium.org/webm/libvpx.git |
Building libyuv
libyuv is optional. Adds support for video scaling and chroma conversion.
1 | mkdir libyuv && cd libyuv |
Building libopus
libopus is optional but highly recommended as it’s an MTI codec for WebRTC. Adds support for Opus audio codec.
1 | wget http://downloads.xiph.org/releases/opus/opus-1.0.2.tar.gz |
Building opencore-amr
opencore-amr is optional. Adds support for AMR audio codec.
1 | git clone git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/opencore-amr |
Building libgsm
libgsm is optional. Adds support for GSM audio codec.
You can install the devel packages (recommended):
1 | sudo yum install gsm-devel |
Or build the source by yourself:
1 | wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz |
Building g729
G729 is optional. Adds support for G.729 audio codec.
1 | svn co http://g729.googlecode.com/svn/trunk/ g729b |
Building iLBC
iLBC is optional. Adds support for iLBC audio codec.
1 | svn co http://doubango.googlecode.com/svn/branches/2.0/doubango/thirdparties/scripts/ilbc |
Building x264
x264 is optional and adds support for H.264 video codec (requires FFmpeg).
1 | wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 |
Building FFmpeg
FFmpeg is optional and adds support for H.263, H.264 (requires x264) and MP4V-ES video codecs.
1 | git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg |
Building OpenH264
OpenH264 is optional. Adds support for H.264 constrained baseline video codec.
1 | git clone https://github.com/cisco/openh264.git |
Building Doubango
- Minimal build
1 | cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp |
- Recommended build
1 | cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp --with-ffmpeg --with-opus |
- Full build
1 | cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-vpx --with-yuv --with-amr --with-speex --with-speexdsp --enable-speexresampler --enable-speexdenoiser --with-opus --with-gsm --with-ilbc --with-g729 --with-ffmpeg |