You got the question right.

And you got the right answer too. :-)

        Thanks,
        Paul

Robert Sparks wrote:
> So I've lost track of the question during the musing.
> 
> I _think_ the fundamental question being asked is this:
> 
> Is an endpoint required to reject (with a 481) an OPTIONS request that 
> arrives with at to-tag but does not match any existing dialog state. 
> (Assuming some earlier requirement hasn't forced another error code). Or 
> is it OK if it just sends
> a 200 OK anyhow.
> 
> My take on the collection of specs is that its _not_ ok for it to send 
> the 200 OK anyhow and that it is required to send
> the 481. I base this primarily on these sentences from 11.2 in 3261:
> 
>    The response to an OPTIONS is constructed using the standard rules
>    for a SIP response as discussed in Section 8.2.6.  The response code
>    chosen MUST be the same that would have been chosen had the request
>    been an INVITE.
> 
> Did I miss the point of the question?
> 
> On May 15, 2008, at 12:48 PM, Paul Kyzivat wrote:
> 
>> [Including Robert in hopes of getting his insight on this.]
>>
>> I certainly agree that receiving a 481 to an OPTIONS would not imply 
>> that there is no INVITE-usage, or any other *particular* usage. It at 
>> best would indicate that there is no *dialog*, and hence *no* usages 
>> of that dialog can exist. It is far less clear that *not* getting a 
>> 481 implies that there *is* a dialog usage. (It may be permissible to 
>> allow a dialog to linger after all its usages have disappeared.)
>>
>> But, that still means that if one received a 481 for an OPTIONS, one 
>> should be able to conclude that any usages of that dialog you thought 
>> were good are in fact gone.
>>
>> However we must first determine if an "in dialog" OPTIONS is to 
>> receive a 481 if the dialog doesn't exist, or conversely if it is to 
>> be processed as if received outside any dialog.
>>
>> The problem with reading 3261 for answers to this is that it uses 
>> "dialog" inconsistently - sometimes to truly mean the dialog and 
>> sometimes to mean the dialog usage. RFC 5057 treats this more 
>> carefully. It says:
>>
>>   According to [1], "an OPTIONS request received within a dialog
>>   generates a 200 OK response that is identical to one constructed
>>   outside a dialog and does not have any impact on that dialog".  Thus,
>>   OPTIONS does not belong to any usage.  Only those failures discussed
>>   in Section 5.1 and Section 5.2 that destroy entire dialogs will have
>>   any effect on the usages sharing the dialog with a failed OPTIONS
>>   request.
>>
>> That also doesn't directly answer this question. I think it says that 
>> if the response to an "in dialog" OPTIONS is one of those that destroy 
>> the entire dialog, then that happens. I don't think we can draw any 
>> conclusion about the converse from this.
>>
>> Lets see what Robert has to say.
>>
>>     Thanks,
>>     Paul
>>
>> Brett Tate wrote:
>>>> The ambiguous part has to do with whether an OPTIONS received with a 
>>>> dialog id should get a 481 response if the dialog doesn't exist.
>>> Since OPTIONS defined within rfc2543 and rfc3261, many tried to get
>>> OPTIONS approved (so workable if not actually desired) as a poor man's
>>> dialog ping mechanism to obtain 481 if dialog/call no longer exists to
>>> avoid the need of a re-INVITE or methods defined within other RFCs.
>>> Unfortunately AFAIK, nobody was successful in the attempt.
>>> My understanding of rfc3261 and rfc5057 is that an OPTIONS cannot cause
>>> a 481.  And if a OPTIONS 481 is returned, the UAC cannot interpret the
>>> 481 to indicate any or all usages of the dialog should be
>>> destroyed/released.
>>> <snip>
>>>> BUT, as application layer logic, I think it would still be ok to 
>>>> note that the OPTIONS failed with a 481, then note that the 
>>>> application has only an INVITE usage in that dialog, and *decide* 
>>>> this would be a good time to send a BYE to the INVITE.
>>> I don't disagree; however AFAIK it is not per rfc3261 and rfc5057.  If
>>> the OPTIONS 481 should be sent and received as indication that the
>>> INVITE dialog usage no longer exists, it would have been a nice
>>> mechanism to avoid using re-INVITE.
>>> <snip>
>>>>> RFC 5057 section 5.3: "OPTIONS does not belong to any
>>>> usage.  Only those failures discussed in Section 5.1 and Section 5.2 
>>>> that destroy entire dialogs will have any effect on the usages 
>>>> sharing the dialog with a failed OPTIONS request."
>>>>> Thus if a device decides to return a 481, per rfc 5057 is
>>>> would not tear down any usages.  The appropriate response is per 
>>>> rfc3261; however some vendors do not exactly follow rfc3261.  If 
>>>> within the dialog, some vendors return OPTIONS based upon this 
>>>> particular call.
>>>>>
>>>>> RFC 3261 section 12.2.2:
>>>>>
>>>>> "Requests that do not change in any way the state of a
>>>> dialog may be received within a dialog (for example, an OPTIONS 
>>>> request).  They are processed as if they had been received outside 
>>>> the dialog."
> 
> 
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to