[Freeswitch-users] (yet another?) freeswitch load balancer

Dave Horton dave at dchorton.com
Tue Dec 1 18:02:47 MSK 2015


I’m not sure I completely understand your desired setup — when you say “same config available on two different IPs”, are you talking about having two freeswitch servers available as potential targets on two different IPs?  Or the proxy running on a multi-homed host that has two different IPs?  (Or two instances of the proxy running on different IPs but with the same config?)

In any case, to be a load-balancing proxy really means that you need to be at least transaction stateful — so I don’t think you are actually looking for a stateless proxy.

To the extent you want to modify the proxy to change destinations at any time (i.e. to switch new calls to a different freeswitch without informing customers), this proxy will let you do that.  You simply would update the configuration file to add your new freeswitch server IP address and associated information, and (if desired) remove the old one.  You do not need to restart anything either — changes like that to the config file are automatically noticed and taken into affect immediately.

Dave
On Dec 1, 2015, at 9:52 AM, Regis M <regis.freeswitch.org at tornad.net> wrote:

What I need is to have  a frontal proxy with same config available on 2 differents IPs. 

Both of them send request to the same Freeswitch based on config rules.

Then, if I change the config and reload both proxy, I could use another Freeswitch without informing customers.

The running calls could be lose.

IP failover with no proxy and 1 freeswitch is not an option for me..

The proxy need to act as nginx for web... He choose destination based on request rules..


So for me I thnik I need a Stateless proxy. But I'm not interested by the call failover potential...
But Your first definition sounds good for me..

Regards,


2015-12-01 15:36 GMT+01:00 Dave Horton <dave at dchorton.com <mailto:dave at dchorton.com>>:
When people talk about stateful or stateless there can be different interpretations, so I will try to be specific:

Call stateful (or stateless): meaning whether the proxy remains in the dialog after a successful INVITE transaction (e.g. to receive subsequent BYE message, in order to do accounting etc).  With this proxy, you have a choice of whether to be call stateful or not (depends on setting of the ‘remainInDialog’ property to the req.proxy method)

Stateless proxy: an entity that does not maintain transaction state of client or server SIP transactions, simply forwards request.  This proxy is _not_ a stateless proxy, because it needs to maintain transaction state in order to do things like handle temporary failures from one freeswitch and then land the call on another.

Dave

On Dec 1, 2015, at 9:14 AM, Regis M <regis.freeswitch.org at tornad.net <mailto:regis.freeswitch.org at tornad.net>> wrote:

Hi Dave,

Does your proxy could act as a stateless proxy or not ?
I'm looking for a stateless proxy, I had ever test your solution but haven't find the answer to this question during my test.

Thanks

Regards,


2015-12-01 14:32 GMT+01:00 Dave Horton <dave at dchorton.com <mailto:dave at dchorton.com>>:
It is a proxy.  I am using the sofia sip stack (specifically nta) which is capable of any type of sip processing, but this application uses it as a SIP proxy.


On Dec 1, 2015, at 8:20 AM, Vik Killa <vipkilla at gmail.com <mailto:vipkilla at gmail.com>> wrote:

Hi,
I see this is described as a SIP Proxy but you are using the sofia SIP stack.
Is this technically a B2BUA or a Proxy?
Thanks,
/V

On Tue, Dec 1, 2015 at 8:14 AM, Dave Horton <dave at dchorton.com <mailto:dave at dchorton.com>> wrote:
I’ve developed a nodejs-based freeswitch load balancer that may be of interest to those who prefer Javascript to configuration file-driven routing.  Even better if you are a nodejs developer familiar with expressjs or connect, then you may find the nuts of it to be very simple:


app.invite( function(req, res) {
   ...
    req.proxy({
       remainInDialog: false,
       handleRedirects: true,
       provisionalTimeout: '1s',
       destination: targets
    }, function(err) {
      if( err ) {
        console.error('Error proxying request: ', err) ;
      }
   }) ;
}) ;


Details here:

http://davehorton.github.io/drachtio-fs-load-balancing-proxy/ <http://davehorton.github.io/drachtio-fs-load-balancing-proxy/>





_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org <mailto:consulting at freeswitch.org>
http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>

Official FreeSWITCH Sites
http://www.freeswitch.org <http://www.freeswitch.org/>
http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
http://www.cluecon.com <http://www.cluecon.com/>

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
http://www.freeswitch.org <http://www.freeswitch.org/>
_________________________________________________________________________
Professional FreeSWITCH Consulting Services: 
consulting at freeswitch.org <mailto:consulting at freeswitch.org>
http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>

Official FreeSWITCH Sites
http://www.freeswitch.org <http://www.freeswitch.org/>
http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
http://www.cluecon.com <http://www.cluecon.com/>

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
http://www.freeswitch.org <http://www.freeswitch.org/>

_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org <mailto:consulting at freeswitch.org>
http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>

Official FreeSWITCH Sites
http://www.freeswitch.org <http://www.freeswitch.org/>
http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
http://www.cluecon.com <http://www.cluecon.com/>

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
http://www.freeswitch.org <http://www.freeswitch.org/>

_________________________________________________________________________
Professional FreeSWITCH Consulting Services: 
consulting at freeswitch.org <mailto:consulting at freeswitch.org>
http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>

Official FreeSWITCH Sites
http://www.freeswitch.org <http://www.freeswitch.org/>
http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
http://www.cluecon.com <http://www.cluecon.com/>

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
http://www.freeswitch.org <http://www.freeswitch.org/>

_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org <mailto:consulting at freeswitch.org>
http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>

Official FreeSWITCH Sites
http://www.freeswitch.org <http://www.freeswitch.org/>
http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
http://www.cluecon.com <http://www.cluecon.com/>

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
http://www.freeswitch.org <http://www.freeswitch.org/>

_________________________________________________________________________
Professional FreeSWITCH Consulting Services: 
consulting at freeswitch.org
http://www.freeswitchsolutions.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20151201/4c4ea3d7/attachment.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list