Last active
September 7, 2020 07:12
-
-
Save ghafran/544546bb4ca15c4a767c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# https://code.google.com/p/webrtc2sip/wiki/Building_Source_v2_0 | |
sudo su | |
sudo yum -y update | |
sudo yum install -y make libtool autoconf subversion git cvs wget libogg-devel gcc gcc-c++ pkgconfig nasm | |
#Building libsrtp | |
cd /usr/local/src/ | |
git clone https://github.com/cisco/libsrtp/ | |
cd libsrtp | |
git checkout v1.5.0 | |
CFLAGS="-fPIC" ./configure --enable-pic && make && make install | |
#Building OpenSSL | |
yum install -y openssl-devel | |
# cd /usr/local/src/ | |
# wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz | |
# tar -xvzf openssl-1.0.1c.tar.gz | |
# cd openssl-1.0.1c | |
# ./config shared --prefix=/usr/local --openssldir=/usr/local/openssl && make && make install | |
#Building libspeex and libspeexdsp | |
cd /usr/local/src/ | |
wget http://downloads.xiph.org/releases/speex/speex-1.2beta3.tar.gz | |
tar -xvzf speex-1.2beta3.tar.gz | |
cd speex-1.2beta3 | |
./configure --disable-oggtest --without-libogg && make && make install | |
#Building YASM | |
cd /usr/local/src/ | |
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz | |
tar -xvzf yasm-1.2.0.tar.gz | |
cd yasm-1.2.0 | |
./configure && make && make install | |
#Building libvpx | |
sudo yum install -y libvpx-devel | |
# cd /usr/local/src/ | |
# git clone http://git.chromium.org/webm/libvpx.git | |
# cd libvpx | |
# ./configure --enable-realtime-only --enable-error-concealment --disable-examples --enable-vp8 --enable-pic --enable-shared --as=yasm | |
# make && make install | |
#Building libyuv - documents say to skip it | |
# cd /usr/local/src/ | |
# yum install -y gcc gcc-c++ kernel-devel | |
# mkdir libyuv && cd libyuv | |
# svn co http://src.chromium.org/svn/trunk/tools/depot_tools . | |
# ./gclient config http://libyuv.googlecode.com/svn/trunk | |
# ./gclient sync && cd trunk | |
# make -j6 V=1 -r libyuv BUILDTYPE=Release | |
# make -j6 V=1 -r libjpeg BUILDTYPE=Release | |
# cp out/Release/obj.target/libyuv.a /usr/local/lib | |
# cp out/Release/obj.target/third_party/libjpeg_turbo/libjpeg_turbo.a /usr/local/lib | |
# mkdir --parents /usr/local/include/libyuv/libyuv | |
# cp -rf include/libyuv.h /usr/local/include/libyuv | |
# cp -rf include/libyuv/*.h /usr/local/include/libyuv/libyuv | |
#Build libopus | |
cd /usr/local/src/ | |
wget http://downloads.xiph.org/releases/opus/opus-1.0.2.tar.gz | |
tar -xvzf opus-1.0.2.tar.gz | |
cd opus-1.0.2 | |
./configure --with-pic --enable-float-approx && make && make install | |
#Building opencore-amr | |
cd /usr/local/src/ | |
git clone git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/opencore-amr | |
cd opencore-amr | |
autoreconf --install && ./configure && make && make install | |
#Building libgsm - document says to skip it | |
# sudo yum install gsm-devel | |
# cd /usr/local/src/ | |
# wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz | |
# tar -xvzf gsm-1.0.13.tar.gz | |
# cd gsm-1.0-pl13 && make && make install | |
# cp -rf ./inc/* /usr/local/include | |
# cp -rf ./lib/* /usr/local/lib | |
#Building g729 - document says to skip it | |
# cd /usr/local/src/ | |
# svn co http://g729.googlecode.com/svn/trunk/ g729b | |
# cd g729b | |
# ./autogen.sh && ./configure --enable-static --disable-shared && make && make install | |
#Building iLBC | |
cd /usr/local/src/ | |
svn co http://doubango.googlecode.com/svn/branches/2.0/doubango/thirdparties/scripts/ilbc | |
cd ilbc | |
wget http://www.ietf.org/rfc/rfc3951.txt | |
awk -f extract.awk rfc3951.txt | |
./autogen.sh && ./configure | |
make && make install | |
#Building x264 | |
cd /usr/local/src/ | |
wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 | |
tar -xvjf last_x264.tar.bz2 | |
# the output directory may be difference depending on the version and date | |
cd x264-snapshot-20141218-2245 | |
./configure --enable-shared --enable-pic --disable-asm && make && make install | |
#Building OpenH264 | |
cd /usr/local/src/ | |
git clone https://github.com/cisco/openh264.git | |
cd openh264 | |
git checkout v1.1 | |
make ENABLE64BIT=Yes # Use ENABLE64BIT=No for 32bit platforms | |
make install | |
#Building FFmpeg | |
cd /usr/local/src/ | |
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg | |
cd ffmpeg | |
# grap a release branch | |
git checkout n1.2 | |
# configure source code | |
./configure \ | |
--extra-cflags="-fPIC" \ | |
--extra-ldflags="-lpthread" \ | |
--enable-pic --enable-memalign-hack --enable-pthreads \ | |
--enable-shared --disable-static \ | |
--disable-network --enable-pthreads \ | |
--disable-ffmpeg --disable-ffplay --disable-ffserver --disable-ffprobe \ | |
--enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 \ | |
--enable-gpl --enable-nonfree \ | |
--enable-encoder=h263 --enable-encoder=h263p --enable-decoder=h263 \ | |
--disable-debug | |
# to force enabling h264, append to the configure command: --enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 | |
# to force enabling h263 and h263+, append to the configure command: --enable-encoder=h263 --enable-encoder=h263p --enable-decoder=h263 | |
# build and install | |
make && make install | |
#Building Doubango | |
cd /usr/local/src/ | |
svn checkout http://doubango.googlecode.com/svn/branches/2.0/doubango doubango | |
cd doubango | |
chmod 755 ./autogen.sh && ./autogen.sh | |
#./configure --with-doubango=/usr/local/src/doubango --with-ssl --with-srtp --with-vpx --with-yuv --with-amr --with-speex --with-speexdsp --with-opus --with-gsm --with-ilbc --with-g729 --with-ffmpeg | |
./configure --with-doubango=/usr/local/src/doubango --with-ssl --with-srtp --with-vpx --with-amr --with-speex --with-speexdsp --with-opus --with-ilbc --with-ffmpeg | |
make && make install | |
#Building webrtc2sip | |
cd /usr/local/src/ | |
yum install -y libxml2-devel | |
svn co https://webrtc2sip.googlecode.com/svn/trunk/ webrtc2sip | |
cd webrtc2sip | |
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" | |
export PREFIX=/opt/webrtc2sip | |
./autogen.sh && ./configure --prefix=$PREFIX CFLAGS='-lpthread' LDFLAGS='-ldl' LIBS='-ldl' | |
make clean && make && make install | |
cp -f ./config.xml $PREFIX/sbin/config.xml | |
# generate cert | |
cd /opt/webrtc2sip/sbin | |
sudo openssl req -new > new.ssl.csr | |
sudo openssl rsa -in privkey.pem -out new.cert.key | |
sudo openssl x509 -in new.ssl.csr -out new.cert.cert -req -signkey new.cert.key -days 999999 | |
sudo mkdir -p /etc/ssl/certs/ | |
sudo cp new.cert.cert /etc/ssl/certs/server.crt | |
sudo chmod 640 /etc/ssl/certs/server.crt | |
sudo mkdir -p /etc/ssl/private/ | |
sudo cp new.cert.key /etc/ssl/private/server.key | |
sudo chmod 640 /etc/ssl/private/server.key | |
#config.xml | |
cd /opt/webrtc2sip/sbin | |
cp config.xml config.bak.xml | |
cat <<EOF > config.xml | |
<?xml version="1.0" encoding="utf-8" ?> | |
<!-- Please check the technical guide (http://webrtc2sip.org/technical-guide-1.0.pdf) for more information on how to adjust this file --> | |
<config> | |
<debug-level>INFO</debug-level> | |
<transport>udp;*;10060</transport> | |
<transport>ws;*;10060</transport> | |
<transport>wss;*;10062</transport> | |
<!--transport>tcp;*;10063</transport--> | |
<!--transport>tls;*;10064</transport--> | |
<enable-rtp-symetric>yes</enable-rtp-symetric> | |
<enable-100rel>no</enable-100rel> | |
<enable-media-coder>yes</enable-media-coder> | |
<enable-videojb>yes</enable-videojb> | |
<video-size-pref>vga</video-size-pref> | |
<rtp-buffsize>65535</rtp-buffsize> | |
<avpf-tail-length>100;400</avpf-tail-length> | |
<srtp-mode>optional</srtp-mode> | |
<srtp-type>sdes;dtls</srtp-type> | |
<dtmf-type>rfc4733</dtmf-type> | |
<codecs>opus;pcma;pcmu;vp8;h264-bp;h264-mp;h263;h263+</codecs> | |
<codec-opus-maxrates>48000;48000</codec-opus-maxrates> | |
<stun-server>stun.l.google.com;19302;;</stun-server> | |
<enable-icestun>yes</enable-icestun> | |
<max-fds>-1</max-fds> | |
<!--nameserver>66.66.66.6</nameserver--> | |
<ssl-certificates> | |
/etc/ssl/private/server.key; | |
/etc/ssl/certs/server.crt; | |
yes | |
</ssl-certificates> | |
<!-- ***CLICK-TO-CALL SERVICE*** --> | |
<transport>c2c;*;10070</transport> | |
<transport>c2cs;*;10072</transport> | |
<database>sqlite;*</database> | |
<!--account-mail>smtps;*;*;auth.smtp.1and1.fr;465;[email protected];[email protected];mysecret</account-mail--> | |
<!--account-sip-caller>*;sip:[email protected];a;example.com;mysecret</account-sip-caller--> | |
</config> | |
EOF | |
# upstart webrtc2sip | |
echo 'Defaults:root !requiretty' > /etc/sudoers.d/888-cloud-init-requiretty | |
service ntpd restart | |
mkdir -p /var/log/webrtc2sip | |
touch /var/log/webrtc2sip/webrtc2sip.log | |
chmod 666 /var/log/webrtc2sip/webrtc2sip.log | |
cat <<EOF > /etc/init/webrtc2sip.conf | |
description "webrtc2sip" | |
start on (local-filesystems and net-device-up IFACE=eth0) | |
stop on shutdown | |
respawn | |
script | |
exec sudo -u root /opt/webrtc2sip/sbin/webrtc2sip --config=/opt/webrtc2sip/sbin/config.xml >> /var/log/webrtc2sip/webrtc2sip.log 2>&1 | |
end script | |
EOF | |
start webrtc2sip | |
#tail logs | |
tail -f /var/log/webrtc2sip/webrtc2sip.log | |
# test webrtc2sip | |
# cd /opt/webrtc2sip/sbin | |
# ./webrtc2sip --help | |
# ./webrtc2sip |
Hello my friend, do you offer paid support? or reccomend me developer for paid support?
to build custom installations on CentOS-6.9-X86_64
doubango, click2call, webrtc2sip, and configure asterisk to use it?
dahili dot network at g mail dot com
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello my friend, is this some kind of batch file that installs everything?