On 22-06-2005 17:57, Juan Carlos Castro y Castro wrote:
Our company has a call center implementation on a client with up to 100 support personnel using X-Lite version 1050 softphones running under Windows 98. Until a few days ago, the softphones were logged in directly on our PBXs. Now, they log onto a separate SER 0.8.14 box and the PBXs forward calls to SER. That was needed to unify queue management.
It works. But some softphones are being randomly kicked out of SER, it seems SER isn't receiving the refresh REGISTER messages from the softphones. The re-register timeout is set to 500 seconds on the softphones. There's a lot of "removing spare zombie" and "Binding '<user>','<url>' has expired" messages in /var/log/messages.
The message means that SER did not receive REGISTER re-fresh and is thus removing the contact from the user location database.
Pick one user agent that has this problem and install ngrep monitor on the server to monitor all REGISTER messages from that user agent. This way you could find out if the problem is in the user agent or network (in this case you will not see REGISTER refresh messages on the server) or in SER (in that case you will see them but SER probably fails to process them).
Also make sure that SER is not configured to shorten the registration period. When registrar receives a REGISTER message, it is free to use shorter expires value for the Contac than what was suggested by the user agent in the request. In this case the real expires value of the contact will be in 200 OK and user agents are suppose to pick it up from there and update the refresh interval accordingly. This may not work in the case when Contact IP address is rewritten by the server for the purpose of NAT traversal. In this case the user agent will be unable to find its contact (because it has been rewritten) and will not update the refresh interval (resulting in expired registrations).
For now, we're instructing the client to increase the timeout to 10 hours on the softphones in which the problem happens most often. I don't know if that's really the right thing to do, I think we should somehow make sure the re-registers are done in a timely fashion and retried, but I could not find ant SER configuration option related to that. What should I do?
You can configure the maximum allowed expires value in SER, if a user agent tries to REGISTER a contact with longer expires value than it will be automatically updated by registrar to the value of max_expires parameter.
There is also min_expires parameter in registrar module but that one should not be used because the current implementation violates RFC3261.
If you are using any of the two parameter than it might be a good idea to retry without them (to see if the problem persists).
Jan.