Andreas Granig wrote:
Greger, Klaus,
Another problem: nathelper uses the in memory
location table to ping
natted clients. Thus, also nathelper would have to query the database
and we need a process to watch the expires and delete outdated entries.
Interesting thoughts. I still don't have the overall overview of the
cache and where exactly it is used, but I already thought this won't be
that easy.
However, I'll start writing my diploma thesis the next weeks, and it
will target SIP clusters using SER, because there's rather few work done
which is available for the public.
The basic idea is to use one SER pair (let's say sip1.foo.bar) as some
kind of session border controller secured with some failover protocol
(carp/vrrp/...) which does the NAT ping and SIP balancing stuff. When
this border proxy reaches it's max. capacity, you can just add another
pair (sip2.foo.bar) and propagate it to new customers.
This means, you also have to store the contacts of the registered
clients in these proxies.
Behind that border proxy you can dynamically
add/remove the proxies
which do the routing. They all have a database cluster behind them which
they use for location lookup and other stuff. After experimenting a lot
with SIP replication I think it's best to delegate this to the DB system
where a lot of work is done in this area for years now.
As you have routing proxies and outbound proxies, have you thought about
how to route the SIP messages from the routing proxies via the
corresponding outbound proxy? Using the Path: header, or rewriting the
contact in the REGISTER messages in the outboundproxy before forwarding
it to the routing proxy, or any other method?
regards,
klaus
I'm fully aware that all this sounds much easier than it is, but IMHO
this is the way to go, because it's the only solution I can think of
which scales and is also able to handle NAT.
Well, we'll see where this all leads us (or me) to ;o)
Andy