Hello,
adding more info here.
I guess the dispatcher from the forked project didn't evolve from the
moment of the fork if they added a different module, so I assume it is
more or less dispatcher as it was in kamailio 1.4.
Meanwhile in kamailio (as we are at version 3.2.1), dispatcher got lot
of new features, including calls load distribution, algorithm 10:
http://kamailio.org/docs/modules/stable/modules_k/dispatcher.html#id2498405
Call load distribution counts the number of active calls per destination
address, dispatcher selecting the least loaded. It uses script functions
to manage the load (see the readme), since dispatcher can work event in
stateless mode (so no tm or dialog modules are needed for such feature),
thus is very lightweight, which is really important for scalable load
balancing implementation.
Among new features since dispatcher for kamailio 1.4:
- weight based load balancing
- priority based gateway selection
- refactored keepalive mechanism for detecting when a gateway is down/up
- execution of event_route blocks in config when a gateway is down/up
- management through RPC commands
Cheers,
Daniel
On 12/28/11 1:43 PM, Alex Balashov wrote:
On 12/28/2011 07:21 AM, Ronald Kiel wrote:
I understand Kamailio has the Dispatcher-module
for load-balancing.
OpenSIPS has both a Dispatcher-module and a LB-module, which seems
to offer improved functionality. Is there also something like the
LB-module in Kamailio?
No, there's nothing in Kamailio that implements what the LB module
does, exactly. However, I wouldn't call the LB module 'improved'
functionality; it extends a particular subset of 'dispatcher' in a
specific way, nothing more.
Furthermore, with Kamailio it is relatively trivial to come up with
your own load-aware routing process in route script. I think that's
one reason it doesn't get wrapped in a module. If you want to
periodically poll some outside source for load information, define a
periodic 'rtimer' process that can go out and do that:
http://www.kamailio.org/docs/modules/3.2.x/modules_k/rtimer.html
Store the results in 'htable' or some other data structure, and then
check it when routing calls. And that's all there is to it. :-) Now
you can implement skills-based routing or anything else esoteric,
because the algorithm is 100% yours to override.
-- Alex
--
Daniel-Constantin Mierla --
http://www.asipto.com
http://linkedin.com/in/miconda --
http://twitter.com/miconda