> 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

Reply via email to