This message is to clarify an issue that has been causing me some
confusion, namely the meaning and use of the Require header in
responses.  I hope it helps others avoid my mistakes.

The bulk of RFC 3261 (including section 8.1.1.9 "Supported and
Require", 20.32 "Require", and 20.37 "Supported") describes the use of
the Supported and Require headers in a very straightforward way:
Supported is used to inform the other end of a dialog that the UA
supports the specified extensions.  Require is used in requests to
compel the other UA to reject a request if the other UA does not
support the specified extensions.

Within this framework, using Require in a response is pointless -- if
the UAC does not support the extension, it would be required to
discard the response, thus leaving it with no way of knowing that the
UAS wants to make use of the extension.

However, there is separate meaning for Require when it is used in a
response, namely to indicate that the UAS has performed some
particular processing specified in the extension in question.

This use is described in section 8.2.4 "Applying Extensions":

   Any extensions applied to a non-421 response MUST be listed in a
   Require header field included in the response.  Of course, the server
   MUST NOT apply extensions not listed in the Supported header field in
   the request.

Of course, exactly what processing is implied by a Require header in a
response is determined by the specification of the extension in
question.

If I recall correctly, there are three extensions or proposed
extensions that use Require headers in responses routinely.  One is
the GRUU extension, but I've forgotten the other two.

Dale


_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [EMAIL PROTECTED] for questions on current sip
Use [EMAIL PROTECTED] for new developments on the application of sip

Reply via email to