[Serdev] Concept for a SIP cluster implementation

Evan Borgstrom evan.borgstrom at ca.mci.com
Thu Sep 29 17:22:00 UTC 2005


	All of the issues mentioned here are solvable today with some 
creativity. We currently have a multi-domain, multi-proxy, multi-backend 
spread over multiple physical sites using nothing but SER (with our own 
cacheless usrloc implementation), nathelper, rtpproxy & mysql (4.1 
cluster). The only external component we have that's not a open source 
item is SIP hardware load balancers doing global load balancing between 
the physical sites instead of using SRV records (we're currently 
deploying this right now to start moving away from SRV records).

	The dst_ip patch I subbmitted to the AVPOPs module was a big part in 
getting this all working. Store the IP of the proxy the user registered 
with via AVPOPs, when a new message comes in compare $dst_ip with the 
value stored in the database, if != forward off to the value from the 
database and do ALL processing there. That ensures that all messages 
that are required to pass through the NAT pin hole do. Some gotcha's to 
watch out for include things like making sure accounting is only done 
once, and use registered() instead of lookup() right until the VERY end 
before you t_relay() the message to ensure as it bounces around the 
proxies the URI is kept correct.

-Evan

Jan Janak wrote:
> On 27-09-2005 13:00, Klaus Darilion wrote:
>> Jan Janak wrote:
>>>  - A user agent does not have to send INVITE messages through the same
>>>    proxy instance as REGISTER messages. The proxy server that received
>>>    the INVITE request can make sure that the uac is reachable
>>>    for the duration of the transaction by retransmitting the
>>>    provisional response periodically (simulates NAT ping). All other
>>>    transactions finish immediately and do not need this.
>> What happens in the callee hangs up (send the BYE)? This will be 
>> loose-routed via the same proxy, which may not have a pinhole to 
>> traverse the NAT :-(
> 
>   In my case the proxy would insert the IP of the correct proxy (the one
>   that keeps the NAT hole open) because it knows it.
> 
>     Jan.
> 
> _______________________________________________
> Serdev mailing list
> serdev at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serdev




More information about the Serdev mailing list