Douglas Garstang wrote:
All,
I'm trying to get SRV lookups to work with OpenSER 1.0.0. I've
exhausted every avenue of documentation including newsgroups, various
forums etc.
Using t_relay, OpenSER seems to be performing the correct DNS SRV
queries and obtaining a list of hosts to try. Below are the relevant
sections of my DNS zone file. We're talking UDP, and based on the
priority and weights below, OpenSER should be basically doing a
round-robin approach, and it seems to be.
The problem occurs when one of the hosts is not contactable. OpenSER
simply stops and does not try the next host in it's list. I would
have thought that for OpenSER to fully support SRV lookups, it should
try each until it is successful. After all, that's a large part of
the whole point of SRV records.
(open)ser does not support SRV failover. It just looks for
_sip._protocol and uses the first found record. No failover if there is
a problem with the destination.
Does the t_relay() function have logic within
itself to keep trying
hosts until it gets a connection? What would be the definition a
no
failure that would make it move onto the next
host be anyway? Network
failure certainly, but would a 'Not found' be considered a failure
that would cause it to move on? Would anything other than an ACK be a
failure?
If you receive a SIP response, than there is no transport failure -> no
failover to other SRV hosts.
The next SRV record should be tried if a 503 "Service Unavailable" SIP
response message is received, according to RFC3263 section 4.3.
/Mikael