[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Sip] Doubt related to use of Supported and Require header.
[Copying Robert in hopes there is some SIPit experience on this]
Comments inline.
Thanks,
Paul
Vineet Gupta wrote:
> Hi Paul/All,
>
> I totally agree with the points mentioned in your email. However, I
> still have doubts whether most implementations follow this approach or not.
>
> *Firstly,* I share the same feeling with you with respect to presence of
> the Supported header in the request. The Require and Supported should
> not have common options in a request. Also, Supported in request is
> required if UAC wants to be generous enough to allow UAS to enforce an
> option, it itself does not require.
>
> However, I was slightly confused by the following statement in RFC3261
> with respect to the Supported header (Section 20.37 , [Page 178]):
> /"The Supported header field enumerates all the extensions supported by
> the UAC or UAS"/.
Yeah, it says that. Its also hopelessly naive. Sometimes options are
supported in one context, and not in another. There is no way to express
that. Some examples:
- An option may be supported for one method but not another.
- A B2BUA may only support an option if the device on the other
side also supports it. The device on the other side can change
over time.
> *So, for inter-operatablity reasons, should all the application have
> same options in Require and Supported header or not?*
I think, *when you can*, you should list all the options you support all
the time.
> *Secondly, *I had discussed the scope of options mentioned in
> Require/Supported header, in an earlier debate regarding this (whether
> it applies to a transaction/dialog) in this mailing list long back. As
> per my understanding, from RFC3261 the scope of Require/Supported header
> seems to be a transaction only. If we go by this assumption, once
> session in established using 100rel and precondition (as per 3gpp
> call-flow), a re-INVITE request can be sent without both these options
> (if for example the UAC realizes that no QoS establishment would be
> required).
> However, I got a feeling that most of the implementions go by the
> assumption that Require/Supported extension apply through out the dialog.
This is an area that needs some clarification. Some people think the
scope of Supported/Require is a transaction, some a dialog, some for as
long as not changed, ... There is no great clarity on this in the specs.
Its more a matter of observation based on what behavior is called for in
various specs defining options.
> Can you let me know in your opinion, what is the general consensus on
> this. *Are most SIP implementations prepared to handle change in
> Require/Supported options in re-INVITE request (They ofcourse can still
> reject such a re-INVITE by sending 420 Bad Extension/421 Extension
> Required)?*
I don't have data on this. Maybe there is some from SIPit.
Note: this isn't really just about Require/Supported. There are other
headers with similar issues:
Accept, Accept_Encoding, Accept-Language, Allow
Thanks,
Paul
> Regards,
> Vineet.
>
>
> On Tue, Sep 9, 2008 at 9:38 PM, Paul Kyzivat <pkyzivat at cisco.com
> <mailto:pkyzivat at cisco.com>> wrote:
>
>
>
> Vineet Gupta wrote:
>
> Hi,
> I have a small doubt related to use of Supported and Require
> header. While from RFC 3261 it is clear the Require header is
> used by the UAC and UAS to enforce the extension implemention
> for a particular session, while the Supported header is mostly
> used by UAC to express the extensions which can be enforced by
> UAS through the Require header.
> My doubt is that, is it *mandatary that every extension that is
> present in Require header must be present in Supported header
> *in the request? According to me, presence/absence of Required
> extensions in Supported header does not make any impact on UAS
> handling. *Even if it is not mandatory, what is the preferred
> approach?*
>
>
> This is pretty loosely defined.
>
> For one thing, Require doesn't necessarily apply to a "particular
> session". The most that can be said with certainty is that is
> applies to a transaction. Often it applies longer, but how long
> isn't well defined.
>
> Second, there is some asymmetry in Supported/Require, but this
> varies based on the option. Require from a UAC states what it
> requires of the UAS, but doesn't necessarily imply that a Require
> for the same option, coming the other way, would be supported.
>
> Also, Supported and Require are often used together to do a negotiation:
> Supported in a request is paired with Require of the same option in
> the response to negotiate its use.
>
> In most cases there is no requirement to include Supported in
> requests. The main place it is essential is in a 420 response.
>
> Thanks,
> Paul
>
>
_______________________________________________
Sip mailing list https://www.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors at cs.columbia.edu for questions on current sip
Use sipping at ietf.org for new developments on the application of sip