I have remote users who currently connect via an SBC, in order to mitigate firewall issues we have set the registration timer to 30 seconds to keep the phones from loosing the firewall pinhole. But what I am seeing is that the phones are actually attempting to re-register every 15 seconds even though our SBC is sending the expiry as 30 seconds seconds(verified via PCAP).Is this behavior part of the design?
By my understanding, part of the standard behaviour of the SIP standard is that they retry registration after 50% of the re-registration time has elapsed, to try allow time to retry registration without hitting the registration timeout. DHCP does much the same thing, sending directed re-registration packets to the server half way through the lease duration to try and minimise network broadcasts.
I've heard it said that although somewhat counter intuitive, that lowering the registration timeout to anything below about 300 secs can actually have a negative effect on reliability for this reason.
I think therefore this is probably by design, although all of this IMHO of course.
From the Polycom Admin Guide 3.3.0, page A-143 "voipProt.server.x.expires.overlap". "The number of seconds before the expiration time returned by server X at which the phone should try to re-register. The phone will try to re-register at half the expiration time returned by the server if that value is less than the configured overlap value. The default value for this entry is 60 seconds. Since your server's expire = 30, the phone will re-register every 15 seconds (half of 30 = 15, which is less than 60). Research the "nat.keepalive.interval" in the Polycom Admin Guide. You may find it more suitable for keeping pinholes open than re-registers.