[sr-dev] rtpproxy-ng

Richard Fuchs rfuchs at sipwise.com
Tue Jul 9 18:56:02 CEST 2013


I've just committed the initial version of the rtpproxy-ng module to a
private branch (rfuchs/rtpproxy-ng) for comments and review. This module
is heavily based on the old rtpproxy module and addresses some, but not
all, of the concerns listed at [1]. Notably asynchronous discovery,
enabling and disabling of proxies is on my to-do list.

This module currently works with mediaproxy-ng [2] and supports full SDP
rewriting. It passes the complete body to the RTP proxy and receives
back a replacement body. As such, some of the features (such as ICE
handling) of the old rtpproxy module are removed from the module and
left to the RTP proxy instead. Other features not currently supported by
mediaproxy-ng, such as media playback or recording, are left
unimplemented (i.e. not rewritten and commented out) in rtpproxy-ng, but
it would be trivial to implement them.

Instead of JSON, it uses the bencode [3] format for the control
protocol, which has a very similar feature set, but is a much simpler
and more efficient encoding. The module includes a bencode "library"
(bencode.[ch]) which is deliberately written without any close ties to
the Kamailio core code, so that it can potentially be used in other
projects with little or no modification. For other languages, such as
Perl or Python, bencode modules already exist.

The control protocol in its current state is described at [4]. Most of
it is made to resemble the flags and other options and features of the
old rtpproxy module. The rtpproxy-ng module is also made to be a drop-in
replacement, all the function names and their syntax is the same. This
should make for easy transitioning. However, as more and more features
are added to the RTP proxies, I feel there's a need for a new set of
module functions with an extended syntax in the future. The control
protocol is made to be flexible and easily extendable.

Comments welcome.


[1] http://www.kamailio.org/wiki/devel/rtpproxy-ng
[2] https://github.com/sipwise/mediaproxy-ng
[3] http://en.wikipedia.org/wiki/Bencode
[4] https://github.com/sipwise/mediaproxy-ng#the-ng-control-protocol

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 897 bytes
Desc: OpenPGP digital signature
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20130709/cebf5229/attachment.pgp>

More information about the sr-dev mailing list