diff -r a7d1e54a7332 -r 822e1f077722 realtimenetprots/sipfw/ProfileAgent/profile_fsm/src/Sipprflderegisterrequestedstate.cpp --- a/realtimenetprots/sipfw/ProfileAgent/profile_fsm/src/Sipprflderegisterrequestedstate.cpp Tue May 25 13:04:58 2010 +0300 +++ b/realtimenetprots/sipfw/ProfileAgent/profile_fsm/src/Sipprflderegisterrequestedstate.cpp Wed Jun 09 10:04:26 2010 +0300 @@ -14,7 +14,7 @@ // Name : sipprflderegisterrequestedstate.cpp // Part of : sip profile fsm // implementation -// Version : %version: 2.1.1 % +// Version : %version: 2.1.2 % // @@ -98,6 +98,41 @@ } // ----------------------------------------------------------------------------- +// CSIPPrflDeregisterRequestedState::DeregisterL() +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CSIPPrflDeregisterRequestedState::DeregisterL( + MSIPProfileContext& aContext) + { + __ASSERT_DEBUG(aContext.Profile()!=0, User::Invariant()); + __ASSERT_DEBUG(aContext.Registration()!=0, User::Invariant()); + if (aContext.Connection().State()==CSIPConnection::EActive) + { + if (iUser.AddProfileIntoQueue(*aContext.Profile())) //compares the registrar of the present profile with the other profiles existing in the connection context array. + { + iUser.DeregisterProfileL(*aContext.Profile()); + + } + else + { + CSIPMessageElements* elements = + aContext.CreateDeRegisterElementsL(); + CleanupStack::PushL(elements); + CSIPClientTransaction* tx = + aContext.Registration()->DeregisterL(elements); + CleanupStack::Pop(elements); + aContext.SetTransaction(tx); + aContext.SetNextState(*iDeregistrationInProgressState); + } + } + aContext.AgentObserver().SIPProfileStatusEvent( + *aContext.Profile(), + aContext.Registration()->ContextId()); + } + + +// ----------------------------------------------------------------------------- // CSIPPrflDeregisterRequestedState::ErrorOccured() // This can happen if the de-register was reguested while the connection is // suspended (registered->de-register requested). SIP stack has removed