You can support us by downloading this article as PDF from the Link below. Download the guide as PDF

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.

You can support us by downloading this article as PDF from the Link below. Download the guide as PDF