Enhancements of Ratelimit Module

The new version of "ratelimit" module on 1.8.0 (trunk) comes with a set of major enhancements:

1) Dynamic and flexible pipes

The new version of ratelimit module allows you to create an unlimited number of pipes and even more, in a dynamic way at runtime (versus the old version where the number of pipes was limited to 16 and they had to be statically defined).
This is very helpful when you want to do rate-limiting on a per subscriber-base, on a per trunk-base, etc. ; you can create on the fly pipes for each subscriber / trunk / gw, etc, without the need of pre-defining them.

2) Distributed across multi opensips instances

A major enhancement for this new module is the distributed support for rate limiting. Until now, the scope of a pipe was limited to a single OpenSIPS instance. This is a problem when you need to perform rate limiting for an entire platform. The new ratelimit module has been integrated with the CacheDB interface (with redis, memcache support) in order to provide distributed pipes, that are visible in all the platform. Hence the limitation will no longer be applied for a single instance, but for the entire platform as a whole.
Such feature is useful if you have multiple opensips instancing acting as a single platform (like a cluster of load-balancers or dispatchers , or active-active setups, or multi-SBCs, etc)

You can find documentation about the new module at:
http://www.opensips.org/html/docs/modules/devel/ratelimit.html

Posted by Bogdan-Andrei Iancu 2011-11-03