[asterisk-dev] Proposal to seperate qualify & keep alive

John Lange john.lange at open-it.ca
Mon Jun 26 10:23:20 MST 2006


In the current implementation, qualify sends out a SIP request at the
specified interval and if it doesn't receive a reply within that same
interval asterisk flags the peer as unreachable.

This also acts as a sort of keep-alive for devices behind NAT when
combined with the nat=yes parameter. The regular flow of SIP packets
keeps the NAT connective alive for the device behind the firewall.

The problem is, these are two very different concepts and at times it
would be nice if we could separate the two.

Specifically; we have some clients with devices behind nat and
satellite. Their nat and satellite requires a more-or-less constant flow
of packets to keep the connection alive.  However due to the quirky
nature of satellite combined with long round-trip times the qualify
option needs to be set high (5000ms) or Asterisk won't send calls to the
client.

In fact we would like to set qualify=no because often the client appears
to be very lagged when the satellite perceives the connection to be idle
(apparently it queues packets until it has a bunch and sends them in
groups) but if you initiate a call the lag drops immediately to an
acceptable level (800ms).

But if we set qualify=no then the firewall closes the connection and
they can't receive any calls.

So, the question is; is it reasonable to undertake the implementation of
a keep alive for sip clients?

Any thoughts on how this should be done? SIP NOTIFY or would something
else make more sense?

John Lange





More information about the asterisk-dev mailing list