Return TRUE to delete it.
| 316 | |
| 317 | // Return TRUE to delete it. |
| 318 | bool SipClientTrLayer::TLPeriodicServiceV() |
| 319 | { |
| 320 | LOG(DEBUG) << LOGVAR(mTimerDK) <<LOGVAR(mTimerBF) <<LOGVAR(mTimerAE); |
| 321 | ScopedLock lock(mstLock); |
| 322 | if (mstState == stInitializing) { return false; } |
| 323 | if (mstState == stTerminated) { return true; } |
| 324 | // The timerDK is the time in the Completed state, and used just to suck up additional incoming replies. |
| 325 | if (mTimerDK.expired()) { stDestroyV(); return true; } // The transaction completed, a message was sent to layer3, so we just exit. |
| 326 | if (mTimerBF.expired()) { |
| 327 | if (mstState == stCallingOrTrying || mstState == stProceeding) { |
| 328 | stFail(408); // 408 - SIP Timeout. Must send a fail message to layer3. |
| 329 | } |
| 330 | TUTimeoutV(); |
| 331 | stDestroyV(); |
| 332 | return true; |
| 333 | } |
| 334 | if (mstState == stCallingOrTrying && mTimerAE.expired()) { stWrite(&mstOutRequest); mTimerAE.setDouble(); } |
| 335 | return false; |
| 336 | } |
| 337 | |
| 338 | |
| 339 |
no test coverage detected