[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