diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshavailability/src/musavacapabilitysipagent.cpp --- a/mmsharing/mmshavailability/src/musavacapabilitysipagent.cpp Tue Aug 31 15:12:07 2010 +0300 +++ b/mmsharing/mmshavailability/src/musavacapabilitysipagent.cpp Wed Sep 01 12:31:01 2010 +0100 @@ -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() ?