Hi,

Setup: kamailio acting as a UAC needs to register with a server whose outbound proxy is DNS SRV based only, there's no A record on the proxy's FQDN. The provider advertises two SRV records.  

;; ANSWER SECTION:
_sips._tcp.sip.provider.com. 10 IN SRV 10 50 5061 sip11-sip.provider.com.
_sips._tcp.sip.provider.com. 10 IN SRV 15 50 5061 sip10-sip.provider.com.

Everything was working fine, until the provider changed the SRV priority, putting a lower priority on the host that is actually down at the moment. In this case, sip11-sip.provider.com is DOWN and sip10-sip.provider.com is UP.

Now, what's happening is Kamailio tries to REGISTER with the lower priority host, gets no reply back (TCP connection doesn't get established). It then takes 30 seconds for Kamailio to try the host with the higher priority, registering successfully. And so it goes for every re-register: failure => 30 seconds => register OK.

The same happens for INVITES to the downstream: INVITE => timeout => 30 seconds => INVITE (other host 200 OK).

I've tried to play with TCP and DNS params, but so far no luck: no matter what I did - it took the same 30 seconds for Kamailio to detect failure and retry the secondary host.

Any suggestions will be highly appreciated.

Kamailio 5.6.4 (x86_64/linux) 239d0a

tcp_connection_lifetime=3604
tcp_max_connections=60
tcp_connect_timeout=10
tcp_keepalive = yes
tcp_crlf_ping=yes
tcp_keepcnt=3
tcp_keepidle=30
tcp_keepintvl=30
tcp_reuse_port=1
tcp_accept_no_cl=yes
tcp_rd_buf_size=16384

use_dns_cache = on
use_dns_failover = on
dns_srv_loadbalancing = on
dns_try_naptr = on
dns_try_ipv6=no
dns_try_naptr=no
dns_use_search_list=no
dns_retr_time=1
dns_retr_no=3

Thanks
--Sergiu