Install RTPProxy from Source on CentOS 7

Posted on 53 views

In our guide today, we will discuss the steps to install RTPProxy from Source on CentOS 7. RTPProxy is a software proxy delivering high-performance control to any kind of VoIP network infrastructure. RTPProxy enables the following services in a VoIP network.

  1. VoIP calls to traverse NAT firewalls systems
  2. Packet flow optimization
  3. Relaying of voice, video or any RTP stream of data
  4. Playing of pre-encoded in-band announcements
  5. Re-framing of RTP payload
  6. Routing VoIP to VPN links routing
  7. Real-time stream copying

Install RTPProxy on CentOS 7 Linux server using steps provided below:

Install GCC:

sudo yum -y install centos-release-scl
sudo yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
scl enable devtoolset-7 bash

Confirm version of GCC:

$ gcc --version
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Step 1: Change directory to /usr/src.

cd /usr/src/

Step 2: Clone rtpproxy source from github.

sudo yum -y install git
sudo git clone -b master https://github.com/sippy/rtpproxy.git

Step 3: Change into rtpproxy source tree.

cd rtpproxy/

Step 4: Configure the source tree for installing rtpproxy

sudo git  submodule update --init --recursive
sudo ./configure

Step 5: Compile RTPProxy on CentOS 7

sudo make

Step 6: Install RTPProxy on CentOS 7

sudo make install

Sample output:

......
libtool: install: /usr/bin/install -c udp_contention /usr/local/bin/udp_contention
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/usr/src/rtpproxy/pertools/udp_contention'
make[2]: Leaving directory `/usr/src/rtpproxy/pertools/udp_contention'
make[2]: Entering directory `/usr/src/rtpproxy/pertools'
make[3]: Entering directory `/usr/src/rtpproxy/pertools'
make[3]: Nothing to be done for `install-exec-am'.
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/usr/src/rtpproxy/pertools'
make[2]: Leaving directory `/usr/src/rtpproxy/pertools'
make[1]: Leaving directory `/usr/src/rtpproxy/pertools'
Making install in tests
make[1]: Entering directory `/usr/src/rtpproxy/tests'
make[2]: Entering directory `/usr/src/rtpproxy/tests'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/rtpproxy/tests'
make[1]: Leaving directory `/usr/src/rtpproxy/tests'
make[1]: Entering directory `/usr/src/rtpproxy'
make[2]: Entering directory `/usr/src/rtpproxy'
make[2]: Nothing to be done for `install-exec-am'.
 /usr/bin/mkdir -p '/usr/local/share/man/man8'
 /usr/bin/install -c -m 644 rtpproxy.8 '/usr/local/share/man/man8'
make[2]: Leaving directory `/usr/src/rtpproxy'
make[1]: Leaving directory `/usr/src/rtpproxy'

Step 7: Copy init.d script to /etc/rc.d/init.d directory.

sudo cp rpm/rtpproxy.init /etc/rc.d/init.d/rtpproxy

Make the file executable:

sudo chmod +x /etc/rc.d/init.d/rtpproxy

Step 8: Change rtpproxy=/usr/bin/rtpproxy to /usr/local/bin/rtpproxy, pidfile in /etc/rc.d/init.d/rtpproxy file

$ sudo vi /etc/rc.d/init.d/rtpproxy
rtpproxy=/usr/local/bin/$prog

Step 9: Add a user that will run the program. I will add user called rtpproxy and group called rtpproxy:

sudo  mkdir -p /var/run/rtpproxy
sudo groupadd -g 8002 rtpproxy
sudo useradd -u 8002 -g 8002 -d /var/run/rtpproxy -M -s /bin/false  rtpproxy
sudo chown rtpproxy:rtpproxy -R /var/run/rtpproxy/

Step 10: Check the location of RTPProxy executable file

$ which rtpproxy
/usr/local/bin/rtpproxy

Step 12: You can include Additional Options like below (Optional)

$ sudo vi /etc/sysconfig/rtpproxy
OPTIONS=" -l 192.168.1.60 -s unix:/var/run/rtpproxy.sock"

Rtpproxy will listen on ip: 192.168.1.60 , control socket being unix:/var/run/rtpproxy.sock.
To make it listen on an UDP socket, add option:

CONTROL_SOCK=udp:127.0.0.1:7722

Step 13: Reload and start rtpproxy

sudo systemctl daemon-reload 
sudo /etc/init.d/rtpproxy start

Step 14: To set to run at startup, type:

sudo chkconfig rtpproxy on

You are done with the installation. In case of any error, alert us via comment section.

coffee

Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.