(Last Updated On: September 24, 2018)
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.x using steps provided below:

  1. Change directory to /usr/src.
[[email protected] ~]# cd /usr/src/
  1. Clone rtpproxy source from github.
[[email protected] src]# git clone https://github.com/sippy/rtpproxy.git
Cloning into 'rtpproxy'...
remote: Counting objects: 8581, done.
remote: Total 8581 (delta 0), reused 0 (delta 0), pack-reused 8581
Receiving objects: 100% (8581/8581), 3.82 MiB | 561.00 KiB/s, done.
Resolving deltas: 100% (6205/6205), done.
[[email protected] src]#
  1. cd into rtpproxy source tree.
[[email protected] src]# cd rtpproxy/

4.Configure the source tree for installing rtpproxy

[[email protected] rtpproxy]# ./configure
  1. Compile rtpproxy
[[email protected] rtpproxy]# make
  1. Install Rtpproxy
[[email protected] rtpproxy]# make install
  1. Copy init.d script to /etc/rc.d/init.d directory.
[[email protected] rtpproxy]# cp rpm/rtpproxy.init /etc/rc.d/init.d/rtpproxy
  1. Make the file executable
[[email protected] rtpproxy]# chmod +x /etc/rc.d/init.d/rtpproxy
  1. Add a user that will run the program. I will add user called rtpproxy and group called rtpproxy:
[email protected] rtpproxy]# mkdir -p /var/run/rtpproxy
[email protected] rtpproxy]# groupadd -g 8002 rtpproxy
[email protected] rtpproxy]# useradd -u 8002 -g 8002 -d /var/run/rtpproxy -M -s /bin/false  rtpproxy
[email protected] rtpproxy]# chown rtpproxy:rtpproxy -R /var/run/rtpproxy/
  1. Check the location of rtpproxy executable file
[email protected] rtpproxy]# which rtpproxy
  1. Change rtpproxy=/usr/bin/rtpproxy to /usr/local/bin/rtpproxy, pidfile in /etc/rc.d/init.d/rtpproxy file
[[email protected] rtpproxy]# nano /etc/rc.d/init.d/rtpproxy

Sample output is as shown:

# Source function library.
. /etc/rc.d/init.d/functionsopy
prog=rtpproxy
rtpproxy=/usr/local/bin/$prog
user=rtpproxy
lockfile=/var/lock/subsys/$prog
pidfile=/var/run/$prog.pid
  1. You can include Additional Options like:
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

12 Reload and start rtpproxy

[[email protected] rtpproxy]# systemctl daemon-reload 
[[email protected] rtpproxy]# /etc/init.d/rtpproxy start
  1. To set to run at startup, type:
[[email protected] rtpproxy]# chkconfig rtpproxy on

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