Andreas Granig writes:
With t_replicate() only two SERs can replicate back
and forth, and with
stateless forward()ing packets may get lost because of missing
retransmission.
you can have any number of proxies participating in replication. you
just check that you don't replicate a request that came from another
proxy. what comes to packets getting lost, that is again udp vs. tcp
issue.
Beside that the domain tables (location etc) get out
of synch if one of
the SERs is down for a moment, because retransmission is only tried a
few times.
i don't see why this needs to be the case with db mode 2. when ser
comes back up, it updates its location table from database.
In main route I have a routing logic like this
if(lookup("cfuc")) { /* cfuc active */ }
if(lookup("location") { /* a voip call */ }
else { /* a pstn call */ }
t_relay();
and in a failure route for example:
if(t_check_status("486") && lookup("cfb"))
{/*call forward on busy, relay*/}
So I register call forwarding destinations like aliases, like:
serctl cfuc add <real-user-name> sip:<forwarded-uri>
i can't say anything about that, but you could also put forwarding info
into avps and not use location table at all for them. thne you would
have one less availability thing to worry about.
Queueing has to be done anyway, because if one SER is
down for, say, ten
minutes, the registrations received in that time on other SERs have to
be replicated to that SER.
when ser comes up, it reads initializes its location info from
database. so i don't see your point here.
-- juha