Polycom fixed this bug in software version 3.2.0 (released September 2009).
Only versions of Polycom software prior to 3.2.0 have this issue.
This is an issue only if there is more than one phone is registered for a single user.
From the end users perspective, "My phone appears to be registered, but people are calling me and my phone is not ringing!". However, upon checking the OnSIP admin portal for the registration listing, the Polycom phone will not show up as a registered contact. A rather confusing situation.
A workaround is to make sure that the Polycom is configured with a registration period that is equal to or longer than all other devices registered for the particular AOR (email@example.com in the example above). For example, if you have a softphone registering every 10 minutes, configure your Polycom phone to register every 20 minutes.
Technically, the problem is that the Polycom phone always uses the expire time associated with the first contact when there are multiple contacts returned in a Contact header in the 200 Ok returned by registration which can be the expire time for another phone.
- firstname.lastname@example.org registers his eyeBeam phone with a registration period of 3600 seconds
- email@example.com also registers his Polycom phone with a registration period of 600 seconds
When the Polycom registers in step 2, the OnSIP registration server will (correctly) return information about the contact information for both registrations 1 and 2. Unfortunately, the Polycom may incorrectly use the expire time associated with the eyeBeam registration in 1. The result being that the Polycom may not re-register for up to an hour, but its registration actually expires in the 10 minutes thus leaving the Polycom unreachable for up to 50 minutes.
The OnSIP registration server is operating correctly as per RFC 3261 and we will not be providing a server side work around. Here is the relevant excerpt from the RFC...
Section 10.3 Processing REGISTER Requests
8. The registrar returns a 200 (OK) response. The response MUST
contain "Contact" header field values enumerating all current
bindings. Each "Contact" value MUST feature an "expires"
parameter indicating its expiration interval chosen by the
registrar. The response SHOULD include a "Date" header field.
See our top business VoIP phone recommendations