Klaus Darilion wrote:
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