Hello,
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.
cheerse
[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