mmsharing/mmshavailability/src/musavaoptionhandler.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
--- a/mmsharing/mmshavailability/src/musavaoptionhandler.cpp	Tue Aug 31 15:12:07 2010 +0300
+++ b/mmsharing/mmshavailability/src/musavaoptionhandler.cpp	Wed Sep 01 12:31:01 2010 +0100
@@ -33,7 +33,6 @@
 #include "musavaterminal.h"
 #include "mussettingskeys.h"
 #include "mussettings.h"
-#include "mussesseioninformationapi.h"
 
 
 _LIT( KMusSipPrefix, "sip:" );
@@ -142,21 +141,6 @@
                             ( MMusAvaSipAdapter& ) *iSipAgent, 
                             KMusOptionsHandlerIndex ); 
     
-    MUS_LOG( "mus: [MUSAVA]     Check fast mode capability" )
-    
-    TRAPD( err,
-    iFastModeCapable = 
-        MultimediaSharingSettings::FastStartupModeL() == MusSettingsKeys::EFastModeOn  && 
-        MultimediaSharingSettings::VideoDirectionL() == MusSettingsKeys::ETwoWayVideo &&
-        MultimediaSharingSettings::CapabilityQuerySettingL() == MusSettingsKeys::EParallel );
-    if ( err == KErrNoMemory )
-        {
-        User::Leave( err );
-        }
-    
-    MUS_LOG2( "mus: [MUSAVA]     Fast mode check, err:%d, capable:%d", 
-              err, iFastModeCapable )
-    
     MUS_LOG( "mus: [MUSAVA]  <- CMusAvaOptionHandler::ConstructL()" )
     }
 
@@ -167,13 +151,8 @@
 //
 TBool CMusAvaOptionHandler::CapabilityQueryAnswered( TBool aAnswered )
     {
-    MUS_LOG1( "mus: [MUSAVA]  <-> CMusAvaOptionHandler::CapabilityQueryAnswered():%d", 
-              aAnswered )
-    
     iCapabilityQueryAnswered = aAnswered ? aAnswered : iCapabilityQueryAnswered;
     
-    HandleFastModeQueryAnswered();
-    
     return iCapabilityQueryAnswered;
         
     }
@@ -252,13 +231,13 @@
     if ( variantSetting == MusSettingsKeys::EOperatorSpecific 
         && iSettings.CallDirection() == 2 && !iCapabilitiesRequestAnswered )
         { // terminated party 
-        DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
+        SetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
         }
     else if ( MusSettingsKeys::ESequential ==  
      	        MultimediaSharingSettings::CapabilityQuerySettingL()
         && iSettings.CallDirection() == 2 && !iCapabilitiesRequestAnswered )
         { // terminated party 
-        DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
+        SetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
         }
     else
         {
@@ -289,11 +268,11 @@
                     if ( iCapabilityExchange->
                         TerminalL( sipAddress8->Des() ).QueryExecuting() )
                         {
-                        DoSetState( MMusAvaObserver::EMusAvaStatusOptionsSent );
+                        SetState( MMusAvaObserver::EMusAvaStatusOptionsSent );
                         }
     		    	else
     		    	    {
-    		    	    DoSetState( MMusAvaObserver::EMusAvaStatusAvailable );	
+    		    	    SetState( MMusAvaObserver::EMusAvaStatusAvailable );	
     		            }
     		        CleanupStack::PopAndDestroy( sipAddress8 );
     		    	}
@@ -302,24 +281,24 @@
                 // since we did not send any options set the state EMusAvaStatusNotExecuted.
                 else if( err == KErrSIPInvalidRegistrationState )
                     {
-                    DoSetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
+                    SetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
                     }
                 // anything other than this should be considered default , means options sent
                 // and was not successful.
     		    else
     		        {
-    		        DoSetState( MMusAvaObserver::EMusAvaOptionNotAvailable );
+    		        SetState( MMusAvaObserver::EMusAvaOptionNotAvailable );
     		        }
     	        }
     	    else
     	    	{
-    	    	DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );	
+    	    	SetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );	
     	    	}
         	}
         else
         	{
         	// option sending not needed 
-        	DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
+        	SetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
         	}  
         }
     
@@ -348,23 +327,6 @@
     return MMusAvaObserver::EMusAvaOptionHandler;
     }
 
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusAvaOptionHandler::PrepareForReceivedInviteL()
-    {
-    MUS_LOG( "mus: [MUSAVA]  -> CMusAvaOptionHandler::PrepareForReceivedInviteL()" )
-    
-    if ( iFastModeAvailabilityDelayed )
-        {
-        MUS_LOG( "mus: [MUSAVA]     Set delayed availability" )
-        SetState( MMusAvaObserver::EMusAvaStatusAvailable );
-        iFastModeAvailabilityDelayed = EFalse;
-        }
-    
-    MUS_LOG( "mus: [MUSAVA]  <- CMusAvaOptionHandler::PrepareForReceivedInviteL()" )
-    }
 
 // -----------------------------------------------------------------------------
 // 
@@ -379,17 +341,19 @@
         {
         // tell the upper layer that
         // query was succesfull. VS is available
-        DoSetState( MMusAvaObserver::EMusAvaStatusAvailable );
+        //record the number
+        iSettings.SetOptionSentNumber( iSettings.TelNumber() );
+        SetState( MMusAvaObserver::EMusAvaStatusAvailable );
         }
     else if ( aSentQuery.Result() == KCapabilityCapabilitiesForbidden )
         {
         // query returned with response "403 Forbidden". VS is NOT available
-        DoSetState( MMusAvaObserver::EMusAvaFailureCode );
+        SetState( MMusAvaObserver::EMusAvaFailureCode );
         }
     else
         {
         //query failed. VS is NOT available
-        DoSetState( MMusAvaObserver::EMusAvaOptionNotAvailable );
+        SetState( MMusAvaObserver::EMusAvaOptionNotAvailable );
         }
 
     MUS_LOG(
@@ -436,7 +400,6 @@
         "mus: [MUSAVA]  -> CMusAvaOptionHandler::\
         SetCapabilitiesResolvedForCingular()" )
     iCapabilitiesRequestAnswered = ETrue;
-    
     TRAPD( error, DoExecuteL() );
     if ( error )
         {
@@ -571,214 +534,8 @@
     {
     MUS_LOG("mus: [MUSAVA]  -> CMusAvaOptionHandler::VideoCodecsResolvedL()" )
     
-    iSettings.SetVideoCodecsL( aVideoCodecs );
+    iSettings.SetVideoCodecsL(aVideoCodecs);
     
     MUS_LOG("mus: [MUSAVA]  <- CMusAvaOptionHandler::VideoCodecsResolvedL()" )
     }
 
-
-// -----------------------------------------------------------------------------
-// If MO side fast mode negotiation has failed, cannot change the value anymore
-// as it is very likely that automatic invitation fails as well.
-// -----------------------------------------------------------------------------
-//
-void CMusAvaOptionHandler::FastModeResolved( MusSettingsKeys::TFastMode aMode )
-    {
-    MUS_LOG1("mus: [MUSAVA]  -> CMusAvaOptionHandler::FastModeResolved():%d", 
-        aMode )
-    
-    if ( FastModeNegotiationFailedMO() )
-        {
-        MUS_LOG("mus: [MUSAVA]  Ignore setting as failed already" )
-        }
-    else
-        {
-        iSettings.SetFastMode( aMode );
-        }
-    
-    MUS_LOG("mus: [MUSAVA]  <- CMusAvaOptionHandler::FastModeResolved()" )
-    }
-
-// -----------------------------------------------------------------------------
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CMusAvaOptionHandler::DoSetState( MMusAvaObserver::TAvailabilityStatus aNewState )
-    {
-    MUS_LOG1( "mus: [MUSAVA]  -> CMusAvaOptionHandler::DoSetState() state:%d", 
-              aNewState )
-    TInt err( KErrNone );
-    
-    if ( iFastModeCapable )
-        {
-        TRAP( err, aNewState = HandleFastModeL( aNewState  ) );
-        }
-    
-    SetState( aNewState );
-    
-    MUS_LOG1("mus: [MUSAVA]  <- CMusAvaOptionHandler::DoSetState(), err:%d", err )
-    
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-MMusAvaObserver::TAvailabilityStatus CMusAvaOptionHandler::HandleFastModeL(
-    MMusAvaObserver::TAvailabilityStatus aNewState )
-    {
-    MUS_LOG("mus: [MUSAVA]  -> CMusAvaOptionHandler::HandleFastModeL()" )
-    
-    switch ( aNewState )
-        {
-        case MMusAvaObserver::EMusAvaOptionNotAvailable:
-            {
-            aNewState = HandleFastModeOptionNotAvailableL( aNewState );
-            break;
-            }
-        case MMusAvaObserver::EMusAvaStatusOptionsNotSent:
-            {
-            aNewState = HandleFastModeOptionsNotSentL( aNewState );
-            break;
-            }
-        case MMusAvaObserver::EMusAvaStatusAvailable:
-            {
-            aNewState = HandleFastModeAvailableL( aNewState );
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    
-    MUS_LOG("mus: [MUSAVA]  <- CMusAvaOptionHandler::HandleFastModeL()" )
-    
-    return aNewState;
-    }
-
-// -----------------------------------------------------------------------------
-// If fast mode and call originator, application is started
-// automatically at background with two-way MO use case. If fast mode is
-// negotiated, availability publishing is delayed at MT side until invitation
-// is received (as MO will send invite automatically).
-// -----------------------------------------------------------------------------
-//
-MMusAvaObserver::TAvailabilityStatus CMusAvaOptionHandler::HandleFastModeAvailableL(
-    MMusAvaObserver::TAvailabilityStatus aNewState )
-    {
-    MUS_LOG("mus: [MUSAVA]  -> CMusAvaOptionHandler::HandleFastModeAvailableL()" )
-    
-    __ASSERT_ALWAYS( iSettings.Observer(), User::Leave( KErrNotReady ) );
-    
-    if ( State() != MMusAvaObserver::EMusAvaStatusAvailable &&
-         iSettings.FastMode() == MusSettingsKeys::EFastModeOn )
-        {
-        if ( iSettings.CallDirection() == NMusSessionInformationApi::ECallOrginated )
-            {
-            MUS_LOG("mus: [MUSAVA]      Starting application at background" )
-            iSettings.Observer()->StartApplicationL( MultimediaSharing::EMusTwoWayVideo );
-            }
-        else
-            {
-            MUS_LOG("mus: [MUSAVA]      Delay availability publishing" )
-            iFastModeAvailabilityDelayed = ETrue;
-            aNewState = State();
-            }
-        }
-    
-    MUS_LOG("mus: [MUSAVA]  <- CMusAvaOptionHandler::HandleFastModeAvailableL()" )
-    
-    return aNewState;
-    }
-
-// -----------------------------------------------------------------------------
-// If fast mode and call terminated side, answering to 200 ok is already enough
-// to set us available in delayed manner as other end can start sending
-// invitation already after getting fast mode information in answer. 
-// -----------------------------------------------------------------------------
-//
-void CMusAvaOptionHandler::HandleFastModeQueryAnswered()
-    {
-    if ( FastModeNegotiatedByAnswerMT() )
-        {
-        MUS_LOG( "mus: [MUSAVA]     Set fastmode available already as answered" )
-        
-        // Will result delayed availability handling
-        DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// If options wasn't sent because of missing information, state can be set to
-// available immediately as MT cannot start waiting for invite unless it is
-// sure that other end is about to send it.
-// -----------------------------------------------------------------------------
-//
-MMusAvaObserver::TAvailabilityStatus 
-CMusAvaOptionHandler::HandleFastModeOptionsNotSentL(
-    MMusAvaObserver::TAvailabilityStatus aNewState )
-    {
-    MUS_LOG("mus: [MUSAVA]  -> CMusAvaOptionHandler::HandleFastModeOptionsNotSentL()" )
-    
-    if ( FastModeNegotiatedByAnswerMT() )
-        {
-        MUS_LOG("mus: [MUSAVA]      Answered already, set available" )
-        // Make available but start waiting for invitation
-        aNewState = HandleFastModeAvailableL( MMusAvaObserver::EMusAvaStatusAvailable );
-        }
-    
-    MUS_LOG("mus: [MUSAVA]  <- CMusAvaOptionHandler::HandleFastModeOptionsNotSentL()" )
-    
-    return aNewState;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-MMusAvaObserver::TAvailabilityStatus 
-CMusAvaOptionHandler::HandleFastModeOptionNotAvailableL(
-    MMusAvaObserver::TAvailabilityStatus aNewState )
-    {
-    MUS_LOG("mus: [MUSAVA]  -> CMusAvaOptionHandler::HandleFastModeOptionNotAvailableL()" )
-    
-    if ( iFastModeAvailabilityDelayed || 
-         State() == MMusAvaObserver::EMusAvaStatusAvailable )
-        {
-        MUS_LOG("mus: [MUSAVA]  In delayed mode or available, ignore" )
-        aNewState = State();
-        }
-    
-    MUS_LOG("mus: [MUSAVA]  <- CMusAvaOptionHandler::HandleFastModeOptionNotAvailableL()" )
-    
-    return aNewState;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusAvaOptionHandler::FastModeNegotiatedByAnswerMT()
-    {
-    return ( iFastModeCapable && 
-             iCapabilityQueryAnswered && 
-             iSettings.FastMode() == MusSettingsKeys::EFastModeOn &&
-             iSettings.CallDirection() == NMusSessionInformationApi::ECallTerminated );
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusAvaOptionHandler::FastModeNegotiationFailedMO()
-    {
-    return ( iFastModeCapable && 
-             iSettings.FastMode() != MusSettingsKeys::EFastModeOn &&
-             iSettings.CallDirection() == NMusSessionInformationApi::ECallOrginated &&
-             State() != MMusAvaObserver::EMusAvaStatusAvailable && 
-             State() != MMusAvaObserver::EMusAvaStatusOptionsSent );
-    }
-
-// End of file