[reSIProcate] DUM: Detecting Stale Re-Invites

Byron Campen bcampen at estacado.net
Mon Oct 1 14:39:56 CDT 2007


	We won't get a 408 if the other end sends a provisional.

Best regards,
Byron Campen

> I may have misunderstood but why do we need a timer at all? Can't we
> just tear down the dialog with a BYE if we receive a 408 to the
> reINVITE?
>
> On 10/1/07, Scott Godin <slgodin at icescape.com> wrote:
>>
>>
>>
>>
>> DUM currently has a mechanism to detect stale initial client invite
>> sessions, ie. those that receive a provisional response, but never  
>> a final
>> response.  We do this by starting a Stale call timer and tearing  
>> the usage
>> down if it fires.
>>
>>
>>
>> We do NOT have a similar mechanism for re-INVITES
>>
>>
>>
>> Consider the following scenario:
>>
>> -          We have an established Invite Session
>>
>> -          The remote UA goes "offline"
>>
>> -          DUM sends a re-INVITE request (either user initiated or  
>> session
>> timer refresh)
>>
>> -          The stack receives a 100 Trying from the first hop  
>> proxy – so we
>> will never see a 408 generated to DUM.
>>
>> -          DUM is now stuck in the SentReInvite state.
>>
>> -          Calling end(), causes a transition into the  
>> WaitingToTerminate
>> state, where we will wait forever for the final response to the  
>> reInvite
>> request.
>>
>> -          Apparently calling end() a second time, will cleanup  
>> the usage,
>> but this means the application must be responsible for this, and  
>> it is not
>> very clean
>>
>>
>>
>> Note: mid-dialog non-INVITE transitions will always see a 408 if  
>> no final
>> response is seen.
>>
>>
>>
>> I propose we add a ReInviteStaleCall timer to the DUM state  
>> machine in order
>> to be able recover better from this situation.  The timer can be  
>> relatively
>> short (say 32seconds) since this is a re-INVITE and a final  
>> response is
>> expected to be fast.
>>
>> 1.        Timer is started when we send a re-INVITE.
>>
>> 2.       Time is effectively stopped when we get a final response  
>> to the
>> re-INVITE.
>>
>> 3.       If timer fires in the SentReInvite or WaitingToTerminate  
>> states,
>> then we continue to send a BYE and tear down the usage.
>>
>>
>>
>> Make sense?
>>
>>
>>
>> Scott
>>
>>
>>
>>
>> _______________________________________________
>> resiprocate-devel mailing list
>> resiprocate-devel at resiprocate.org
>> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2423 bytes
Desc: not available
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20071001/10138da8/attachment.bin>


More information about the resiprocate-devel mailing list