Subject: [SIP] First cut review of Session Timer draft.

From: Ben Campbell <[email-masked]>
Date: Tue, 24 Apr 2001 12:57:17 -0400

Here are my first cut comments on session-timer for the upcoming last-call.
Most of these are minor comments. Please forgive me if I am re-opening old
discussions, as I did not follow the original session-timer work. 

Comments referring to specific parts of the document are prefixed with
(page:paragraph)

Global - We might need language (perhaps in security considerations) that
recommends against using session-timer for billing purposes with out
additional corroboration. I can imagine a theft-of-service attack where the
UAs collude in letting the session expire, but maintain the RTP session. Any
proxy in the middle would assume the call was over. This will not work if
the timer controls a firewall, but it could if the timer was only used to
establish end-of-call for billing purposes.

Global - (nit) there are several sections where the normative language is
not clear. For example, it often says "X does Y" instead of "X MUST|MAY|etc
do Y." Most of these are in the early descriptions, so perhaps the intent is
to reserve normative language for the specific behavior descriptions later
in the draft. If that is so, then it is not consistent.

3:2-A proxy can lower but not increase the expiration time. Jonathan brought
up the issue of a DoS attack using insanely small expirations. If a proxy
cannot increase the expiration, it at least needs the option of rejecting
requests with expiration values below a threshold.

3:4 - (Typo) Sentence "They UAS MAY..." should read "The UAS MAY..."

3:4 - (Minor) I am not sure I see the value in pushing responsibility back
to a supporting UAC, if the UAC did not request the timer in the first
place. Why not just let the UAS deal with it, if the UAS is the element that
wishes to use a timer? At least it might make sense to say that the UAS must
insert the Required header IF it wishes the UAC to handle the re-invites.

4:5  What happens if the UAC does _NOT_ include a Session-Expires header on
the re-invite? I assume everyone resets their timers with the original
values? Or does timer processing cease?

5:2 - Doesn't option of absolute time imply an assumption that all elements
have their clocks reasonably synchronized?

5:3 - Again, we need to allow elements to reject expirations below a
configured threshold.

10:2 - How can a proxy know that it is the closes proxy to the UAC that
cares about the timer? Except in the trivial case where the proxy is the
closest to the UAC period, this seems problematic.

_______________________________________________
This list is for continuing development of the SIP protocol.
The sip-implementor's list is the place to discuss implementation,
and to receive advice on understanding existing sip.
To subscribe to it, send mail to 
[email-masked] with "subscribe" in the body.

---

From: "Brett Tate" <[email-masked]>
Date: Thu, 26 Apr 2001 20:06:25 -0400

> Comments referring to specific parts of the document are prefixed with

<snip>

> wishes to use a timer? 

I agree.  However the text is mainly to deal 
with proxies adding the "Session-Expires and 
Require timer" for functionality that it 
knows is supported by the UAC.  Hopefully 
a UAS isn't requiring it of the UAC when UAS 
is the one that wants it and could have done 
it.

> At least it might make sense to say 
> that the UAS must

It does elsewhere in the document: 
section 5.2 Case 1 and section 6 paragraph 2.

> values? Or does timer processing cease?

Timer processing ceases unless re-added 
by proxy or UAS.

> have their clocks reasonably synchronized?

The Date header should be included to avoid 
the date/time synchronization problem.

> 5:3 - Again, we need to allow elements to reject expirations below a

I agree.  And if possible, lets allow the minimum 
value to be returned with a standard format so that 
the request could be sent again hopefully without 
having to get the users and proxy admins involved 
for success.

> closest to the UAC period, this seems problematic.

I agree.  The text should reflect that the first 
proxy that receives the final response and wants 
the Session-Expires to be honored should add 
(if not present) the remembered Session-Expires 
and Require header containing "timer".