[reSIProcate] onStaleCallTimeout() is never called after 100 Trying

Dmitry Semyonov dsemyonov at dins.ru
Sun Jun 6 13:21:29 CDT 2010


Hi All.

I'm writing this message in a bit of rush. So, excuse me for possible 
mistake, and absence of proposed fix, (I'm not quite familiar with the 
code involved).

The situation is as follows: DUM sends INV, and receives 100 Trying. 
Then the remote side crashes. In this case onStaleCallTimeout() is 
never called.

(Moreover, eventually DUM hangs on shutdown due to this stale session, 
but the shutdown probem might actually be unrelated.)

I believe the following code (from DialogSet::dispatch()) is executed 
when 100 Trying is received:

       if (response.header(h_StatusLine).statusCode() == 100)
       {
          if (mDum.mDialogSetHandler)
          {
             mDum.mDialogSetHandler->onTrying(mAppDialogSet->getHandle(), msg);
          }
          return;
       }

And I think the problem is caused by the fact that handleProvisional() 
is never called in this situation, thus DumTimeout::StaleCall timer is 
never created.

Could anybody confirm my findings, and fix the problem if possible? 
TIA

-- 
...Bye..Dmitry.



More information about the resiprocate-devel mailing list