[reSIProcate] Session Timers bug: refresher="uas" is not respected by InviteSession

Scott Godin slgodin at icescape.com
Mon Sep 24 21:38:35 CDT 2007


Hi Jeremy,

 

Some history..

 

When I first implemented session timers (a while back now) - I was confused
over the terms refresher=uac and refresher=uas.   About whether the
refresher parameter (uas vs uac) on a refresh request was referring to the
original invite or the the actual refresh request  - so I posed a question
to the IETF list.  The answer I got was that the refresher parameter refers
to the transaction itself.

 

So given your example below - since the proxy is requesting "uas" refresher
and it is the UAS of the initial invite - then it should send the refresh
(as it does).   In the refresh request your proxy is specifying that the UAS
is the refresher - in this case the UAS of this re-invite, is actually DUM -
so DUM should be the refresher.  And it tries to do refresh (passing itself
as the refresher - uac). 

 

The short story is, that given the advice I previously received, DUM is
behaving correctly.

 

Scott

 

From: Jeremy Geras [mailto:jgeras at counterpath.com] 
Sent: September 24, 2007 4:24 PM
To: resiprocate-devel at list.resiprocate.org
Cc: slgodin at icescape.com
Subject: Session Timers bug: refresher="uas" is not respected by
InviteSession

 

Hi,

 

I'm seeing odd behaviour with session timers in the following case.  I have
a fix that I've tested out (see attached patch), but I'd like to run it by
you (Scott) before committing it as I believe you're more familiar with that
code...

 

(note that the default Session-Expires used in the following is 90 seconds)

 

DUM   -------------------   proxy

 

INVITE ----> (no refresher preference specified)

<---- 100

<---- 180

<---- 200 (refresher="uas")

ACK ---->

 

. 45 seconds go by .

 

<---- INVITE (refresher="uas")

200 ----> (refresher="uas")

 

. 45 seconds go by .

 

<---- INVITE (refresher="uas")

INVITE ----> (refresher="uac")

 

At this point, DUM is confused and thinks that it is the refresher, so we
get the INVITE glare condition, and things go downhill from there.  The
problem seems to be logic in InviteSession that gets executed when it
receives the first refresh after 45 seconds.

 

I've tested out the attached patch, but please let me know if you think I've
missed something.

 

Thanks,

 - Jeremy -

 

 

Jeremy Geras

Software Developer

CounterPath Solutions Inc.

(formerly NewHeights Software Corp.)

 

 

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20070924/850042c3/attachment.htm>


More information about the resiprocate-devel mailing list