diff -r a858c2cf6a45 -r 7cdef8deefa0 realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfprofilecontext.cpp --- a/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfprofilecontext.cpp Tue Jul 06 14:39:54 2010 +0300 +++ b/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfprofilecontext.cpp Wed Aug 18 10:07:48 2010 +0300 @@ -442,12 +442,12 @@ CurrentState() == MSIPProfileContext::ERegistered) && (aError == K408TimeOut || aError == K500ServerInternalError || - aError == KErrSIPOutboundProxyNotResponding || + aError == KErrTimedOut || + (( aError == KErrSIPOutboundProxyNotResponding || aError == KErrSIPResolvingFailure || - aError == KErrTimedOut || aError == KErrSIPTransportFailure || - aError == KErrSIPICMPFailure && - iConnection.State() != CSIPConnection::ESuspended)) + aError == KErrSIPICMPFailure ) && + iConnection.State() != CSIPConnection::ESuspended))) { if ( iRetryCounterSum + 1 < KMaxRetryForOneAddress && iRetryCounter < KMaxRetryForOneAddress ) @@ -562,10 +562,12 @@ PROFILE_DEBUG3("SIPIetfProfileContext::IncomingResponse", ProfileId()) aHandled = ETrue; const CSIPResponseElements* response = aTransaction.ResponseElements(); - TUint responseCode = response->StatusCode(); + TInt responseCode = KErrGeneral; TBool retry = EFalse; if (response) { + responseCode = response->StatusCode(); + retry = RetryRegister( &aTransaction, responseCode); if( !retry ) {