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
