[OpenSIPS-Users] [Freeswitch-users] Brainstorming load balancing feature - dispatcher & FS

Shanon Swafford DFWAVC shanon at dfwavc.com
Tue Feb 25 16:38:16 CET 2014


What about using SNMP as well?  Have the OpenSIPS machine poll for load
average every so often and set some variable?

1.	Poll for load average
2.	Send Options to make sure FS is alive
3.	Set variable for OpenSIPs to use

I wouldn’t dare run my network without Cacti and Nagios monitoring it so I
already have SNMP built out.

You can extend SNMP with scripts of your choice:

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/
6/html/Deployment_Guide/sect-System_Monitoring_Tools-Net-SNMP-Extending.html

I have mine counting pids, asterisk active calls, and G729 licenses.

Load average and CPU usage are built into net-snmp.

Shanon

From: users-bounces at lists.opensips.org
[mailto:users-bounces at lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu
Sent: Saturday, February 22, 2014 7:37 AM
To: OpenSIPS users mailling list; FreeSWITCH Users Help;
norm at voicenetwork.ca
Subject: Re: [OpenSIPS-Users] [Freeswitch-users] Brainstorming load
balancing feature - dispatcher & FS

Hey Norman,

That is possible but not sufficient as:
    - any party in the call may hangup the call, so BYE may come to FS
(versus being generated by FS) - but I guess you can add the header to the
200 OK BYE too
    - relying on the BYEs (calls) OpenSIPS will not be able to get a
continuous information on the load - if there are no calls, no new updates
on the load are received by OS - this may be a major problem if one FS
instance is used by multiple OS balancers (or handles call from any other
parties).

Currently we are looking into fetching the load information directly via FS
APIs. 

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 20.02.2014 22:29, Norman Tomlins wrote:
Well, 

You could have FreeSwitch send it in the bye message when each call hangs
up.      That will give you a rough idea.
ie:

<action application="set" data="sip_bye_h_X-CPU=95%"/>
And you could set this variable in the hang up hook and opensips could use
this number for load balancing and strip the info before sending back to the
customer.





On Mon, Feb 17, 2014 at 4:10 PM, Bogdan-Andrei Iancu <bogdan at opensips.org>
wrote:
Hello,

Indeed, we had some discussions with Ken Rice about interconnecting OpenSIPS
and FreeSwitch. The main idea is to make use of the Load-Balancer module in
OpenSIPS (please note this is not a simple dispatcher or
probabilistic/hashing routing, but actually a LOAD based routing engine) and
have this LB module connected into FreeSwitch to collect information about
real load on FS (currently, LB module in OpenSIPS counts as load the number
of ongoing calls). But as here suggested, the load on FS can be evaluated
based on CPU/memory usage or any other internal FS parameters which may be
relavant.

The interconnection between OS and FS can be either via one of the FS APIs
(having the two software talking directly) or, as Jay suggested, directly
via SIP OPTIONS (when to add the load info in replied can be determined
based on the src IP of the OPTIONS request).

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 17.02.2014 17:40, Ali Pey wrote:
This would be a pretty cool feature and I know that OpenSIPS guys have
discussed such a feature with FreeSWITCH dev. This would be a great addition
for load balancing. 

Adding OpenSIPS user mailing list.


Regards,
Ali Pey

On Mon, Feb 17, 2014 at 8:15 AM, Karsten Horsmann <khorsmann at gmail.com>
wrote:
Hello List, 

i read too the nice http://wiki.freeswitch.org/wiki/Enterprise_deployment
Enterprise Deployment Setups.
Personaly i run FS 1.2.x as Session Border Controller where sip clients
could register and internal (3rd party) IVRs could reachs the clients.

I plan to use DNS SRV on the to scale up the FS Servers and have fault
talerance.

For that i have to diffrent uplinks that i could use for the DNS SRV Records
and AFAIK i could use track-calls=true in sofia profiles
to track the right incoming/outgoing profile.

The only thing i missed is that my 3rd party IVRs used FS as outbound proxy
and therefore only one IP is spezified on the internal network.

With an virtual IP on the FS side i could solve that but then the FS servers
is IMHO limited to be a active/passiv duo.

Any ideas how to handle that?


2014-02-17 2:45 GMT+01:00 jay binks <jaybinks at gmail.com>:
So I want to bash out a feature I was thinking of, please can anyone chime
in some ideas on this. 

So its easy to have OpenSIP / Kamailio ( dispatcher ) send SIP Options to FS
to see if its responding ..  this is great ...

My request would be to have some kind of control over the response FS Sends
back.
What I would love is to respond with idle CPU , current SPS / Max SPS or
channels / Max Channels.

This is only a high level "this would be nice" , so I havnt totally thought
this through but...
we would have to provide an ACL for who to provide this back to,  coz I
wouldnt really want any old guy on the internet sending me options and me
respond going ... oh yea bro, Im at 90% ... dont have to try hard to DDOS
Me.. :)

but yea... if we could give this back to the load balancers, then we could
easily instruct them to back traffic off to this gateway. 

the next part is , how do you back off the traffic.
one option is to have FS respond differently if any of these are close to
thresholds.
or to provide these values in custom headers, but that would require changes
in dispatcher ( which is ok I Guess )

anyways... I wanted some input on peoples thoughts here..
let me know what you think.


Jay 




More information about the Users mailing list