mmsharing/mmshavailability/src/musavacapabilitysipagent.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
equal deleted inserted replaced
32:73a1feb507fb 33:bc78a40cd63c
    28 #include <siprefresh.h>
    28 #include <siprefresh.h>
    29 #include <sipstrings.h>
    29 #include <sipstrings.h>
    30 #include <sipstrconsts.h>
    30 #include <sipstrconsts.h>
    31 #include <sipresponseelements.h>
    31 #include <sipresponseelements.h>
    32 
    32 
       
    33 #include "mussettings.h"
    33 #include "muslogger.h"
    34 #include "muslogger.h"
    34 #include "musavacapabilityexchange.h"
    35 #include "musavacapabilityexchange.h"
    35 #include "musavacapabilityquery.h"
    36 #include "musavacapabilityquery.h"
    36 #include "musavaterminal.h"
    37 #include "musavaterminal.h"
    37 #include "musavasharedobject.h"
    38 #include "musavasharedobject.h"
   162 TInt CMusAvaCapabilitySipAgent::IncomingRequest(
   163 TInt CMusAvaCapabilitySipAgent::IncomingRequest(
   163                                         CSIPServerTransaction* aTransaction )
   164                                         CSIPServerTransaction* aTransaction )
   164     {
   165     {
   165     MUS_LOG( "mus: [MUSAVA] -> CMusAvaCapabilitySipAgent::IncomingRequest" )
   166     MUS_LOG( "mus: [MUSAVA] -> CMusAvaCapabilitySipAgent::IncomingRequest" )
   166     TInt retval = KErrNone;
   167     TInt retval = KErrNone;
       
   168     MusSettingsKeys::TOperatorVariant variantValue = MusSettingsKeys::EStandard;
       
   169     TRAPD( error, variantValue = 
       
   170                   MultimediaSharingSettings::OperatorVariantSettingL() );
       
   171     if( error )
       
   172     	{
       
   173          MUS_LOG("CMusAvaCapabilitySipAgent::IncomingRequest\
       
   174         		  Get OperatorVariantSettingL worng");
       
   175     	}
       
   176     
   167     if ( aTransaction->Type() == 
   177     if ( aTransaction->Type() == 
   168                         SIPStrings::StringF( SipStrConsts::EOptions ) )
   178                         SIPStrings::StringF( SipStrConsts::EOptions ) )
   169         {  
   179         {  
   170         // Answer 200OK only when CS call remain at Availability States
   180         // Answer 200OK when CS call remain at Availability States
       
   181         //or at EMusAvaOptionNotAvailable State in operatorspecific mode
   171         if ( MMusAvaObserver::EMusAvaStatusNotExecuted <= 
   182         if ( MMusAvaObserver::EMusAvaStatusNotExecuted <= 
   172              iAvailabilityObserver.AvailabilityPluginState() )
   183              iAvailabilityObserver.AvailabilityPluginState()  
       
   184              ||( ( iAvailabilityObserver.AvailabilityPluginState() ==
       
   185               MMusAvaObserver::EMusAvaOptionNotAvailable ) 
       
   186               && ( variantValue == MusSettingsKeys::EOperatorSpecific  )))
   173             {
   187             {
   174             retval = 
   188             retval = 
   175              iCapabilityExchange.QueryObserver().CapabilityQueryAnswered() ?
   189              iCapabilityExchange.QueryObserver().CapabilityQueryAnswered() ?
   176              KErrNotFound : KErrNone;
   190              KErrNotFound : KErrNone;
   177         
   191