About RTPProxy
Backstory
Maksym Sobolyev wrote RTPProxy in 2003 so that VoIP calls could reach SIP user agents behind NAT and firewalls. In many of those cases the two endpoints could not exchange media directly. RTPProxy, working with a SIP proxy, solves this by relaying the RTP streams between them.
VoIP service providers soon adopted it to control how media flows through their networks. Over time it gained many other uses. Together with a signalling element (a SIP proxy or a SIP B2BUA), it can build complex VoIP networks, optimize traffic flow and collect voice quality information. It can also record calls, play pre-encoded announcements, copy streams in real time and re-frame RTP payloads.
Today
RTPProxy still does what it was built for, and it does much more. Recent releases added:
- WebRTC interop. The
dtls_gwandice_litemodules bridge DTLS-SRTP and plain RTP, answer ICE connectivity checks and multiplex RTCP. - SIPREC-style recording. Sessions can be forked and recorded in a single control transaction.
- Embedding.
librtpproxycan host multiple independent instances inside another process. RTP.io uses it to run the RTPProxy directly inside OpenSIPS, and Python applications such as Sippy B2BUA can embed it as well. - Packaging. Debian packages and Docker images are published with every release.
The rtpproxy modules of OpenSIPS and Kamailio, as well as the Sippy B2BUA, can drive many RTPProxy instances on remote machines for fault tolerance and load balancing. RTP Cluster adds high-capacity clustering on top of that.
Who maintains it
Sippy Software, Inc. actively develops and maintains RTPProxy, and it is available on GitHub. Many individuals and organizations have contributed features and fixes over the years, including Vonage, SipPulse, Voicenter and RateTel, either directly or by sponsoring development (often both).
The original idea also inspired several independent implementations, including MediaProxy, erlrtpproxy and RTPEngine.
Get involved
- Report bugs and send pull requests on GitHub.
- Ask questions on the mailing list.
- Follow @sippylabs for release announcements.
RTPProxy is distributed under the two-clause BSD license.