> 1) must the contact returned in the > 200 OK response to a REGISTER match > exactly the contact sent in the REGISTER.
No. However the sip-uri portion must match based upon the rfc3261 (or rfc2543) matching rules. > 2) what should the UA do, if it doesn't match? It is considered an abnormal situation. Thus the device can act however it likes. However please do not continually re-register without a reasonable pause when the SBC or registrar are not compliant to rfc3261. > Does this mean the registration failed? Potentially. It can mean that a SBC changed the Contact in the request and did not change it back within the response. It can mean that the registrar has already stored the limit of contacts for the associated device. And the new contact has a lower q-value than the other contacts. However to avoid confusion, the registrar should still return the newly registered contact within the 200 to avoid confusion. (A 500 response with a retry-after might be a better response if the phones actually honor the retry-after value.) It can mean the registrar added or removed default parameters and are not yet compliant to the rfc3261 sip-uri matching rules. It can mean that registrar is not yet compliant to rfc3261 concerning what should occur when some of the contacts where not stored or even understood. > What expiry time will he apply ? It is considered an abnormal situation. Thus the device can act however it likes. If the contact matches user, host, and rfc2543 rules on port, I recommend using the returned expiration. If it does not match, use the expiration (or the 3600 default) sent within the register. Whatever you decide, please do not continually re-register without a reasonable pause when the SBC or registrar are not compliant to rfc3261. _______________________________________________ Sip-implementors mailing list [email protected] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
