Hi,
We have a setup where there is a main SER server and an alternate SER
server. They both replicate all registrations to each other. We are
using the "t_on_failure" directive to send INVITES to the other server
when it fails the first attempt (this may happen because there was a
failure on the replication or because the called user is behind a
"restricted cone" or "port restricted cone" NAT and he had registered
on the other server--- we use STUN BTW).
In any case, this setup works relatively well, but we would like to fine
tune it a bit. In the case where the called user is BUSY. We would
like to implement some logic in ser.cfg so that "t_on_failure" does not
spit the INVITE again to the alternate server. Something like:
if (user is busy) then send STATUS 486 to caller,
else if (some other failure) then send INVITE to alternate server
Is this possible?
Our problem is that we are getting an increasing number of complaints
from users saying they just hear "dead air" on their phone for a long
time. Ethereal traces show that this happens because the first INVITE
gets a STATUS 486 (user is busy) so the SER server sends the INVITE
again to the alternate. But the alternate cannot reach the end user
because he is behind a "resticted cone" NAT and that user is registered
on the main server, hence the "fr_timer" kicks in and the caller just
hears "dead air" for a while, until finaly he gets a 408 - Request Timeout.
Thanks.
--
Andres
Network Admin
http://www.telesip.net