[OpenSIPS-Users] LCR-like modules
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Fri Aug 29 09:39:53 CEST 2008
Hi,
Following some discussions on the #opensips IRC channel about the LCR
module, I will like to push the topic further.
First, what is the status with the LCR module:
1) technical limitations
a) linear search through rules - quite slow
b) cannot handle large numbers of rules - limited number (in C
code) of rules and gateways
c) no inbound processing (only outbound)
d) difficult to enhanced as it has a bit twisted design - the
module was originally designed for DB-only search and later caching was
added
2) management issues - there is no maintainer for the module, so
development for this module may stale.
Solution:
We have a similar module (named Dynamic Routing - drouting) that
provides the same LCR functionality (based on rules and GW) and even more.
Technical adds:
- internal data organized as a search tree - very fast to search
through ( O(log(n)) instead of O(n) )
- unlimited number of rules and gateways (running on a production
setup with 200K rules and with no search penalties)
- rule matching may include time intervals and recurrence (when the
rule is valid)
- a rule may point to set of GWs to be used for (1) sequential
selection, (2) random selection , (3) weight selection
- inbound processing - prefix and strip for calls originated by the GWs
This module is almost 3 years old and stable - it is what we use in our
production setups.
Also, the module already has a nice web interface for provisioning (it
will released in the next month, along with an OpenSIPs Control Panel
Web interface)
Of course, we (Voice System) will take care and maintain the module. We
will also reduce our burn of maintaining the module privately ;)
So, the idea is to replace the LCR module with the DRouting module to:
1) technical advantages
2) maintenance advantages
I will like to know the opinion of this (if you find it a good or bad
idea), especially from the people using LCR module. Of course I will
prepare a more details documentation of this module for a better
understanding.
Regards,
Bogdan
More information about the Users
mailing list