diff -r 7d48bed6ce0c -r 987c9837762f convergedcallengine/serviceselector/src/cssconnectionhandler.cpp --- a/convergedcallengine/serviceselector/src/cssconnectionhandler.cpp Tue Aug 31 15:45:17 2010 +0300 +++ b/convergedcallengine/serviceselector/src/cssconnectionhandler.cpp Wed Sep 01 12:15:03 2010 +0100 @@ -57,11 +57,13 @@ // void CSsConnectionHandler::ConstructL() { + iCch = CCch::NewL(); } // Destructor CSsConnectionHandler::~CSsConnectionHandler() { + delete iCch; } // ----------------------------------------------------------------------------- @@ -71,11 +73,24 @@ // TBool CSsConnectionHandler::IsVoipServiceRegistered ( - TUint /*aServiceId */ + TUint aServiceId ) const { - - TBool registered( EFalse ); + TCchServiceStatus serviceStatus; + TBool registered( EFalse ); + CCchService* service = iCch->GetService( aServiceId ); + if ( service ) + { + service->GetStatus( ECCHVoIPSub, serviceStatus ); + registered = ( KErrNone == serviceStatus.Error() ) && + ( ECCHEnabled == serviceStatus.State() ); + } + + CSSLOGSTRING4("CSSelector::IsRegistered: id:%d ,enabled:%d ,error:%d", + (TInt) aServiceId, + (TInt) ECCHEnabled == serviceStatus.State(), + (TInt) serviceStatus.Error()); + return registered; }