On 2/22/12 5:54 AM, OKUMURA Shinji wrote:
> Hi Paul,
>
> I think that the following rule should be applied to Session-Expires.
>
> RFC3311/5.1 Sending an UPDATE
>     If a UA
>     uses an UPDATE request or response to modify the remote target while
>     an INVITE transaction is in progress, and it is a UAS for that INVITE
>     transaction, it MUST place the same value into the Contact header
>     field of the 2xx to the INVITE that it placed into the UPDATE request
>     or response.
>
>
> But a particular crossing case is not avoidable as yet.
>
>                     A                               B
>                     |                               |
>                     |re-INV                         |
>                     |------------------------------>|
>                     |                        18x-rel|
>                   b1|<------------------------------|b1
>                     |                            2xx|
>                     |               /---------------|b2/s1
>                     |UPD           /                |
>                     |=============/================>|
>                     |            /          2xx(UPD)|
>                b3/s2|<==========/===================|b3/s2
>                     |          /                    |
>              * b2/s1|<--------/                     |
>                     |ACK                            |
>                     |------------------------------>|
>                     |                               |
>
> UA-A may need a new UPDATE or re-INVITE to confirm a common view
> of Session-Expires.

In this case, only B has enough info to realize there is a problem.
So if it discovers that there is an ambiguity it would need to initiate 
another session timer refresh.

        Thanks,
        Paul

> Regards,
> Shinji.
>
> Paul Kyzivat<[email protected]>
> Mon, 20 Feb 2012 12:24:08 -0500
>> On 2/20/12 8:43 AM, Brett Tate wrote:
>>>> The RFC 4028 allows 2 simultaneous session timer
>>>> negotiations i.e with Re-Invite and Update. So the following
>>>> combinations are possible for session refresh request.
>>>
>>> <snip>
>>>
>>>> The session timers (session interval and session expires)
>>>> will be started based on the session expires header values
>>>> in the 2xx response of refresh request.
>>>>
>>>> The cross over of the response messages is also possible
>>>> (Response for the first refresh request received after the
>>>> response for the second refresh request).
>>>
>>> Correct.  As discussed within the following and related threads,
>>> this is one of the potential SIP race conditions.
>>>
>>> https://lists.cs.columbia.edu/pipermail/sip-implementors/2010-October/025881.html
>>>
>>>
>>>> The session expires in the 2xx response must be validated
>>>> by the stack as per the rules defied in RFC4028.
>>>>
>>>> What would be the most elegant way of handling such scenarios:
>>>
>>> Assume that the latest received/sent 2xx is the most accurate.
>>> If overly concerned that the race condition may cause the session
>>> to not be refreshed in time, you can do something like pick the
>>> lowest interval among the choices and act as the refresher.
>>>
>>> If you want to see the issue fixed or addressed as a BCP, you
>>> might raise the issue within the dispatch or sipcore working
>>> groups to see if anyone else wants this and similar race condition
>>> ambiguities resolved.  If I recall correctly, this was not one of
>>> the issues fully addressed by RFC 6141 or RFC 5407.
>>
>> I'm generally supportive of working out all the ambiguities in the sip
>> specs. But some cases are so minor and theoretical that they don't
>> warrant the work required to work out and publish the clarification. I'd
>> be interested in hearing descriptions of instances of this problem "in
>> the wild".
>>
>> It would be appropriate to file an errata against the draft. That will
>> mean that the issue will at least be addressed if/when the draft is
>> revised in the future.
>>
>> (BTW, Its my impression that session timer is vastly over-used. There is
>> no need for two UAs to use session timer to monitor the session between
>> them: each may send an in-dialog request at any time to verify it. The
>> primary value of session timer if for record-routed proxies.)
>>
>>      Thanks,
>>      Paul
>

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to