[OpenSER-Devel] SF.net SVN: openser: [4242] trunk

Dan Pascu dan at ag-projects.com
Mon May 26 14:21:41 CEST 2008


On Monday 26 May 2008, Juha Heinanen wrote:
> Dan Pascu writes:
>  > I do not use load balancers, instead I use a P2P design, where each
>  > proxy is equivalent to the others and each can act as a network
>  > entry point, so there is no load balancer (each proxy acts as one
>  > for the others) and there are no master-slave clusters.
>
> dan,
>
> that would indeed be a good approach if it would be resilient.  so far
> i have not managed to figure out, how, in that kind of deployment, a UA
> behind NAT could keep on receiving calls if its entry proxy dies
> (assuming the UA can simultaneously use only one registrar/outbound
> proxy which is the case with most UAs on the market).  it would,
> namely, not be acceptable if there is a possibility for a registration
> interval long unavailability of the UA.
>
> i guess you must have some solution to this.

Yes, I have. In my case the distribution of the subscribers to the proxies 
is not fixed, determined by a configuration, but instead is dynamic based 
on the available proxies. When a proxy dies, the others will take over 
the resources managed by the dead proxy and redistribute them among 
themselves, thus the subscribers of the dead proxy are automatically 
moved to a new proxy and become available again when they send their next 
registration. Even before they re-register with the new home proxy, they 
can still make outgoing calls immediately after their home proxy failure, 
because them being mapped to a new proxy is instantaneous once a dead 
proxy is removed from the network. So in case of a proxy failure, the 
subscribers on that proxy will not be able to receive incoming calls for 
a few minutes until they re-register, which I think it is acceptable 
considering that such failures happen rarely and in my case the network 
is able to recover in a very short interval without human intervention.

-- 
Dan



More information about the Devel mailing list