On Jul 20, 2007, at 9:06 AM, Rohan Mahy wrote:

Hi Adam,

What can I say but "You're right". Unless there is some fundamental objection, I will make this change pronto to my working copy.

I believe this also means I can remove the 'ob' parameter from the UAC's Contact header.

On further thought, I realized that the 'ob' parameter is still needed, since it reflects whether the UAC is sending over a flow for which out bound processing is being applied, as opposed to merely indicating the UAC is capable of requesting outbound.

thanks,
-rohan

thanks,
-rohan


On Jul 19, 2007, at 5:05 PM, Adam Roach wrote:
At the risk of further bloodying the corpse of this poor horse, I still think the usage of feature tags in outbound is way, way off in terms of the semantics described in 3261.

Reviewing the way this is defined to work in SIP:

3261:8.1.1.9:
   If the UAC supports extensions to SIP that can be applied by the
   server to the response, the UAC SHOULD include a Supported header
field in the request listing the option tags (Section 19.2) for those
   extensions.

3261:8.2.4:

   A UAS that wishes to apply some extension when generating the
   response MUST NOT do so unless support for that extension is
   indicated in the Supported header field in the request.  If the
desired extension is not supported, the server SHOULD rely only on
   baseline SIP and any other extensions supported by the client.
...
   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.  As a result of this, the Require header field in a
   response will only ever contain option tags defined in standards-
   track RFCs.

There are five normative statements in the text I quote above. The mechanism described in the outbound draft actually manages to violate _all_ _five_ of them.

The registrar infers *both* support for outbound *and* a request to apply the outbound extension by the presence of the "reg-id" Contact header field parameter. In particular, the client is apparently NOT supposed to send a "Supported: outbound" header field. This appears to contravene the normative statement in 8.1.1.9 cited above.

The registrar indicates that outbound procedures are being applied by including a "Supported" header field in the REGISTER response. (In 3261, "Supported" in a _response_ indicates that an extension _can_ _be_ supported in a future request, NOT that it is being applied to the current one -- sections 11 and 13.3.1.4 both talk about Supported usage in responses.)

In other words, the registrar (acting as a UAS) is applying an extension when generating a response without that extension being indicated in the "Supported" header field in the request. Again, this directly contravenes two normative statements from section 8.2.4 (cited above).

The registrar is further applying an extension to a non-421 response that is not listed in a "Require" header field, in violation of the remaining normative statement in the portion of section 8.2.4 cited above.

Why are we doing this so very, very wrong? It's almost as if we've gone out of our way to violate both the spirit AND the law of feature tag handling in as many ways as possible. Most annoyingly, we get exactly the desired behavior if we just do things the way they're described in 3261. To wit:

   * If a client supports outbound, it includes "Supported: outbound"
     in all REGISTER requests, regardless of whether the specific
     request makes use of that extension.

* The client adds a "reg-id" header field parameter to any Contacts
     to which outbound processing is to apply.

   * The registrar includes "Require: outbound" in any REGISTER
     requests to which outbound behavior is being applied.

   * The registrar is free to include "Supported: outbound" in any
     responses it generates -- and it means exactly what 3261 intends
it to mean: that outbound is *supported*, but is not being applied
     to the response in question.

/a



_______________________________________________
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