Comments inline. I think we are in substantial agreement.

        Thanks,
        Paul

Christer Holmberg wrote:
> Hi Paul,
> 
>> This seems to have covered most things. The addition of descriptions of 
>> the sorts of resources that can be released is quite helpful. I have a 
>> few comments on the new version
>>
>>    If multiple usages [RFC5057] are used within an early dialog, and it
>>    is not clear which dialogusage the 199 response terminates, SIP
>>    entities that keep dialog state SHALL NOT release resources
>>    associated with the early dialog when they receive the 199 response.
>>
>> Under what circumstances can it not be clear which usage the 199 applies 
>> to? AFAIK the 199 should only be used with an INVITE dialog usage, and 
>> there can only be one of those per dialog. (We don't allow early dialogs 
>> for other usages.)
> 
> I think it's clear that the 199 applies to the invite dialog usage. But, what 
> if there are other usages? You would need to know whether the error response 
> which triggered the 199 also affects those usages.
> 
> Again, this would only happen if you have established the other usage during 
> the early phase of the invite dialog (which I think is only theoretical).

OK. I think I see what you are getting at, but it is somewhat obscure.

Lets suppose for a minute we have an early invite dialog usage, and have 
another dialog usage sharing the dialog with it. (E.g. maybe we sent a 
REFER and got a refer subscription going.) [At this point Robert runs 
out of the room, screaming.]

Of course the invite was also forked, and we have another early dialog 
going as well.

Now something happens that leads the forking proxy to want to send a 199 
response. Because this is a 1xx class response, it must be something 
that has happened pertaining to the INVITE, since we now only allow 
provisionals for INVITE. I guess the question is whether the response 
that provokes the 199 might *also* imply the termination of the dialog 
as a whole rather than just the invite dialog usage. That can only be 
determined if the actual final response is known, and we have excluded 
that have we not?

>>    5. limited access resources - in case of forking and multiple stream
>>    there may not be possible to allow early media on all dialogs, so
>>    some dialogs may e.g. be set to "inactive".  When a dialog is
>>    terminated, media can be allowed on other dialogs.
> 
>> s/there may not be possible/it may not be possible/
> 
> I'll fix that.
> 
> 
> 
>>    When a forking proxy receives a non-2xx final response which
>>    terminates one or more early dialogs and the proxy does not intend to
>>    forward the final response immediately (due to the rules for a
>>    forking proxy), and the UAC has indicated support of the 199 response
>>    code, the forking proxy MUST send a 199 provisional response, for
>>    each associated early dialog that it can associate with the final
>>    response, upstream towards the sender of the associated request.  The
>>    199 provisional response MUST contain a To header tag parameter,
>>    which identifies the early dialog that has been terminated.
> 
>> This still seems to require sending a 199 even if a 199 was previously 
>> received and forwarded. IMO the proxy should never send a 199 if one was 
>> previously received and forwarded for the same dialog. Keeping record of 
>> that should be a requirement for any proxy that intends to send a 199.
> 
> Yes, I was thinking about the same thing. Having two 199s sent (one by the 
> forking proxy, and one by the UAS) is not a good thing.
> 
> 
> 
>>    Since all SIP entities involved in a session setup do not necessarily
>>    support the specific meaning of the 199 Early Dialog Terminated
>>    provisional response, the sender of the response MUST be prepared to
>>    receive SIP requests and responses associated with the dialog for
>>    which the 199 response was sent (a proxy may receive SIP messages
>>    from either direction).  If such request is received, and the
>>    receiver maintains state of the dialogs, the receiver MUST reply to
>>    such requests with a 481 final response.  A UAC that receives a 199
>>    response for an early dialog MUST NOT send any further requests on
>>    that dialog, except for requests which acknowledge reliable
>>    responses.
> 
>> I'm dubious of requiring, or even expecting or allowing, proxies to 
>> generate 481 responses. For instance, the UAC is still permitted to send 
>> PRACKs, and the proxies had better forward them. So I think it would be 
>> best for a proxy to always forward requests even if it thinks the dialog 
>> has ceased to exist.
> 
> Yes. I was thinking of an UAS only, so I will clarify that this does not 
> apply to proxies.
> 
> 
> 
>>    NOTE: According to [RFC3262] and [RFC3264], if the INVITE request did
>>    not contain an SPD offer, the first relaible response (provisonal or
>>    final) MUST contain an SDP offer.  However, since 199 is only sent on
>>    established early dialog, it will never be the first response sent.
>>
>> IMO a better rationale here is that the 199 response is not sent 
>> reliably, and so isn't obligated to carry the offer. I think the above 
>> logic is weaker and questionable - an early dialog can be established 
> without sending a reliable response. And I *think* a 199 can still be 
>> used in that case.
>>
>> I guess the UAS is permitted to send a reliable 199, but it would be 
>> sufficient to say that it must not do so if that would obligate it to 
>> include an offer. Better yet, lets just say that 199 should *never* be 
>> sent reliably.
> 
> I have no problem saying that. But, again, I don't think there are cases 
> where you would be obligated  to include an offer/answer in 199, because you 
> have already sent at least one 18x.
> 
> Of course, one use-case is when the UAS first sends a 18x unreliably, and 
> then send a 199 reliably. In this case, if the INVITE didn't contain an 
> offer, the 199 would have to contain one, since it's the first RELIABLE 
> provisional response sent.

Good - you found your own counterexample!

> But, I have no problem saying that 199 must not be sent reliably (not even by 
> a UAS), if people are ok with that.
> 
> 
> 
>>    This section registers a new SIP response code, 199.  The required
>>    information for this registration, as specified in RFC 3261, is:
>>
>> I have mixed feelings about using "199" as the option-tag. It is 
>> syntactically valid, but using an all-numeric token bothers me. It could 
>> be something like "use199". But if nobody else is bothered by a numeric 
>> token I can live with it.
> 
> We can use another value, if someone comes up with something more sexy than 
> "199" :)
> 
> Regards,
> 
> Christer
> 
> 
> 
> 
> 
> Christer Holmberg wrote:
>> Hi,
>>
>> Based on a large number of good comments and suggestions off-line I have
>> produced and submitted a new version (-01) of the draft-ietf-sip-199
>> draft.
>>
>> Until available, it can also be found at:
>>
>> http://users.piuha.net/cholmber/drafts/draft-ietf-sip-199-01.txt
>>
>> Some work is still needed on the security section.
>>
>> I also realized that, in the reference section, I still refer to the
>> dialog-usage draft document, eventhough it became an RFC.
>>
>> Regards,
>>
>> Christer
>>
>> _______________________________________________
>> Sip mailing list  https://www.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
>>
> 
> 
_______________________________________________
Sip mailing list  https://www.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