diff -r 2d2c7d1515f7 -r 33a5d2bbf6fc mmsharing/mmshavailability/src/musavacapabilitysipagent.cpp --- a/mmsharing/mmshavailability/src/musavacapabilitysipagent.cpp Thu Jul 15 18:35:08 2010 +0300 +++ b/mmsharing/mmshavailability/src/musavacapabilitysipagent.cpp Thu Aug 19 09:51:39 2010 +0300 @@ -30,6 +30,7 @@ #include #include +#include "mussettings.h" #include "muslogger.h" #include "musavacapabilityexchange.h" #include "musavacapabilityquery.h" @@ -164,12 +165,25 @@ { MUS_LOG( "mus: [MUSAVA] -> CMusAvaCapabilitySipAgent::IncomingRequest" ) TInt retval = KErrNone; + MusSettingsKeys::TOperatorVariant variantValue = MusSettingsKeys::EStandard; + TRAPD( error, variantValue = + MultimediaSharingSettings::OperatorVariantSettingL() ); + if( error ) + { + MUS_LOG("CMusAvaCapabilitySipAgent::IncomingRequest\ + Get OperatorVariantSettingL worng"); + } + if ( aTransaction->Type() == SIPStrings::StringF( SipStrConsts::EOptions ) ) { - // Answer 200OK only when CS call remain at Availability States + // Answer 200OK when CS call remain at Availability States + //or at EMusAvaOptionNotAvailable State in operatorspecific mode if ( MMusAvaObserver::EMusAvaStatusNotExecuted <= - iAvailabilityObserver.AvailabilityPluginState() ) + iAvailabilityObserver.AvailabilityPluginState() + ||( ( iAvailabilityObserver.AvailabilityPluginState() == + MMusAvaObserver::EMusAvaOptionNotAvailable ) + && ( variantValue == MusSettingsKeys::EOperatorSpecific ))) { retval = iCapabilityExchange.QueryObserver().CapabilityQueryAnswered() ?