From: Kenneth Soerensen <[EMAIL PROTECTED]>

   A SIP UA is communicating with two redundant SIP servers - a primary and
   a secondary. The addresses and priorities of these servers are obtained
   through DNS SRV.

   The primary server is failing and the UA needs to communicate with the
   secondary server.

In the sipX project, we've been discussing a solution along these
lines (although we haven't implemented it):

Keep track of the state of all IP address/port pairs.  By default, a
pair is considered responding, but if an attempt to contact it fails,
it will be marked non-responding.

When sorting the list of address/port pairs returned by DNS, have the
primary sort be on the state, with all responding pairs ranked higher
than all non-responding pairs.  (This ensure that if all allegedly
responding pairs fail, you will fall back to the pairs thought to be
non-responding.)

Any time a non-responding pair shows up in a DNS list, set a bit on
the pair which means "probe this pair sometime in the future".  Have a
background process run through the set of non-responding pairs
periodically and probe the pairs that have the probe bit set.  If the
pair responds, mark it responding (remove it from the blacklist).  If
the pair does not respond, just clear the probe bit.  (The probe bit
ensures that you do not attempt to probe a pair any more frequently
that you would send it legitimate traffic, reducing the chances you
will swamp it.)

Dale
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to