Hi, running old OpenSER 1.3 branch here.
Problem is as follows and I hope somebody can shed some light on it.
Our GW supplier has two SBC's that they switch between... to find these I
do a DNS lookup at their domain which gives me;
$ dig
sipsbc.domain.com NAPTR
; <<>> DiG 9.3.2-P2.1 <<>>
;; ANSWER SECTION:
sipsbc.domain.com. 600 IN NAPTR 1 0 "s" "SIP+D2U"
""
_sip._udp.sipsbc.domain.com.
... and a SRV lookup
$ dig
_sip._udp.sipsbc.domain.com SRV
; <<>> DiG 9.3.2-P2.1
;; ANSWER SECTION:
_sip._udp.sipsbc.domain.com. 372 IN SRV 1 1 5060
sbc2.sipsbc.domain.com.
_sip._udp.sipsbc.domain.com. 372 IN SRV 1 1 5060
sbc1.sipsbc.domain.com.
The "problem" is... OpenSER tries the first server (sbc2) first everytime.
Natural since it's listed first. However, this one doesn't answer most of
the time, and OpenSER then has to timeout before trying the next (with
frequent resends from my UAs overloading the servers more in the
meantime).
With fr_timer out of the tm module I can set this timeout to 2 seconds,
but it still takes nearly 10 seconds before I get a ringing signal (183)
from the GW SBC.
Is it possible to somehow get OpenSER to "cache" the active server? Or
query it "beforehand" with an OPTIONS message or something to see which
one is alive (that is quicker than waiting for timeouts and retries?)
Thanks in advance for your prompt help since our GW changed this overnight
on our production system and my users are not too happy about it :D
- Geir
UNINETT