--- a/callcontinuity/vcc/inc/cvccdirector.h Mon Mar 15 12:39:55 2010 +0200
+++ b/callcontinuity/vcc/inc/cvccdirector.h Wed Mar 31 21:20:05 2010 +0300
@@ -545,7 +545,12 @@
*/
CVccDtmfProvider* iDtmfProvider;
-
+ /**
+ * Used in initialization logic to inform of
+ * failed converged call provider plugin.
+ */
+ TInt iMandatoryPluginFailedError;
+
friend class T_CVccDirector;
friend class T_CVccDTMFProvider;
};
--- a/callcontinuity/vcc/src/cvccdirector.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/callcontinuity/vcc/src/cvccdirector.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -197,9 +197,14 @@
User::Leave( KErrNotFound );
}
+ iMandatoryPluginFailedError = KErrNone;
+
//MT: setting CVccDirector as observer to plugin
Initialize( *this, aSsObserver );
-
+
+ // Leave if mandatory plugins failed
+ User::LeaveIfError( iMandatoryPluginFailedError );
+
// save CCP monitor ; CCCEPluginMCCPObserver
const MCCPCSObserver& obs = static_cast<const MCCPCSObserver&>( aMonitor );
iCCPObserver = const_cast<MCCPCSObserver*>(&obs);
@@ -229,19 +234,28 @@
TRAPD( err, InitializeL( aMonitor, aSsObserver, *(iProviders[ i ]) ) );
RUBY_DEBUG1( "initialization err = %d", err );
- switch( err )
- {
- case KErrNone:
- iInitialisedPlugins.Append( pluginUid.iUid );
- //fall-through
- case KErrAlreadyExists:
- RUBY_DEBUG0( "-- VCC plugin initialization OK" );
- break;
- default:
- RUBY_DEBUG0( "-- VCC plugin initialization FAILED" );
- initSucceeded = EFalse;
- break;
- }
+ if ( KErrNone != err && KCSCallProviderPlugId == pluginUid.iUid ) // CS plugin mandatory
+ {
+ RUBY_DEBUG0( "-- Mandatory VCC plugin initialization FAILED" );
+ initSucceeded = EFalse;
+ iMandatoryPluginFailedError = err;
+ }
+ else
+ {
+ switch( err )
+ {
+ case KErrNone:
+ iInitialisedPlugins.Append( pluginUid.iUid );
+ //fall-through
+ case KErrAlreadyExists:
+ RUBY_DEBUG0( "-- VCC plugin initialization OK" );
+ break;
+ default:
+ RUBY_DEBUG0( "-- VCC plugin initialization FAILED" );
+ initSucceeded = EFalse;
+ break;
+ }
+ }
}
RUBY_DEBUG1( "-- VCC plugin nbr of initialized plugins:%d",
--- a/callcontinuity/vcc/src/cvccperformer.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/callcontinuity/vcc/src/cvccperformer.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -673,13 +673,12 @@
ActivateTrigger( ETrue );
//get new service id for voip call and set it to parameters
//this is used later for loading correct CTI plugins
- TInt id = KErrNotFound;
- TRAP( id, VccSettingsReader::VoIPServiceIdL() );
- RUBY_DEBUG1( "CVccPerformer::HandoverReady() -- new Service Id: %d", id );
+ TInt VoIPServiceId(KErrNotFound);
+ TRAP_IGNORE( VoIPServiceId = VccSettingsReader::VoIPServiceIdL() );
+ RUBY_DEBUG1( "CVccPerformer::HandoverReady() -- new Service Id: %d", VoIPServiceId );
CCCPCallParameters* params = NULL;
- //TRAP_IGNORE( CCCPCallParameters::NewL() );
TRAP_IGNORE( params = iPrimaryCall->Parameters().CloneL() );
- params->SetServiceId( id ); //iServiceId = id;
+ params->SetServiceId( VoIPServiceId );
iPrimaryCall->SetParameters( *params );
//inform through phone engine to phone about call bubble update needs
MCCPCallObserver::TCCPCallEvent event =
--- a/callcontinuity/vcchotrigger/inc/vccsignallevelhandler.h Mon Mar 15 12:39:55 2010 +0200
+++ b/callcontinuity/vcchotrigger/inc/vccsignallevelhandler.h Wed Mar 31 21:20:05 2010 +0300
@@ -43,7 +43,7 @@
class CVccSignalLevelHandler : public CTimer
{
-private:
+protected:
/** Level of the signal */
enum TStrengthState
@@ -192,24 +192,19 @@
*/
TInt32 iStrength;
-
-private: // data
-
/**
* Flag to determine if the observing/notifications are on or off
*/
TBool iNotificationsOn;
- /**
- * Current signal state
+ /* Current operation
+ */
+ TOperation iOperation;
+
+ /* Current signal state
*/
TStrengthState iState;
-
- /**
- * Current operation
- */
- TOperation iOperation;
-
+
VCC_UNITTEST( UT_CVccWlanSignalLevelHandler )
VCC_UNITTEST( UT_CVccGsmSignalLevelHandler )
--- a/callcontinuity/vcchotrigger/inc/vccwlansignallevelhandler.h Mon Mar 15 12:39:55 2010 +0200
+++ b/callcontinuity/vcchotrigger/inc/vccwlansignallevelhandler.h Wed Mar 31 21:20:05 2010 +0300
@@ -112,6 +112,11 @@
* Destructor.
*/
virtual ~CVccWlanSignalLevelHandler();
+
+ /**
+ * for telling WLAN Signal Level Handler that manual HO is done or not done
+ */
+ void SetManualHoDone( TBool aValue );
private:
@@ -177,7 +182,16 @@
* @see MWlanMgmtNotifications::OldNetworksLost()
*/
void OldNetworksLost();
-
+
+ /**
+ * Overriding this because WLAN signal level handler needs to observe the signal level
+ * more frequently than GSM Signal Level Handler
+ */
+ void RunL();
+
+ //overriding this because specific actions needed for cancellation for WLAN
+ void DoCancel();
+
private: // data
/**
@@ -190,6 +204,11 @@
* for informing the states
*/
CVccEngPsProperty& iVccPsp;
+
+ /**
+ * indicates is manual HO done or not
+ */
+ TBool iManualHoDone;
};
#endif // VCCWLANSIGNALLEVELHANDLER_H
--- a/callcontinuity/vcchotrigger/src/vcchotrigger.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/callcontinuity/vcchotrigger/src/vcchotrigger.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -506,6 +506,8 @@
{
RUBY_DEBUG_BLOCK( "CVccHoTrigger::ManualHoCallStarted" );
iManualHoDone = ETrue;
+ //notify Wlan Signal Level Handler so it can stop polling WLAN signal
+ iWlanSignalLevelHandler->SetManualHoDone( ETrue );
}
// -----------------------------------------------------------------------------
@@ -516,6 +518,8 @@
{
RUBY_DEBUG_BLOCK( "CVccHoTrigger::ManualHoCallReleased" );
iManualHoDone = EFalse;
+
+ iWlanSignalLevelHandler->SetManualHoDone( EFalse );
}
// -----------------------------------------------------------------------------
--- a/callcontinuity/vcchotrigger/src/vccwlansignallevelhandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/callcontinuity/vcchotrigger/src/vccwlansignallevelhandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -26,6 +26,9 @@
// Min. signal strength.
static const TInt32 KStrengthMin = 110;
+const TInt KWlanPollIntervalLowSignal= 1000000;
+const TInt KWlanPollIntervalHighSignal= 5000000;
+
// ---------------------------------------------------------------------------
// C++ destructor.
// ---------------------------------------------------------------------------
@@ -80,6 +83,7 @@
const TSignalLevelParams& aParams, CVccEngPsProperty& aPsProperty )
: CVccSignalLevelHandler( aObserver, aParams ), iVccPsp( aPsProperty )
{
+ iManualHoDone = EFalse;
}
// ---------------------------------------------------------------------------
@@ -248,3 +252,191 @@
iObserver.WlanSignalChanged( aSignalStrength, aClass );
}
+
+
+// ---------------------------------------------------------------------------
+// Handles getting the signal strength and notifying the observer about
+// strength changes.
+// ---------------------------------------------------------------------------
+
+void CVccWlanSignalLevelHandler::RunL()
+ {
+ RUBY_DEBUG_BLOCK( "CVccWlanSignalLevelHandler::RunL" );
+
+ // Zero (0) is not acceptable.
+ if ( !iStrength )
+ {
+ RUBY_DEBUG0( " -0 strength not acceptable, setting to KStrengthMin");
+ iStrength = KStrengthMin;
+ }
+
+ RUBY_DEBUG3( " -iStrength = %d iState = %d iOp = %d", iStrength, iState, iOperation );
+
+ switch ( iOperation )
+ {
+ case EOperationGet:
+ {
+
+ // We are in the Get-mode to get the signal strength.
+ // If the strength is < than the high level (== the strength
+ // is good), start timer to check if we are still in good level
+ // after the timer completes.
+ // The same is done if we have a low level (== bad).
+
+ RUBY_DEBUG0( " -EOperationGet");
+
+ if ( iStrength <= iParams.iHighLevel && iStrength > 0 )
+ {
+ RUBY_DEBUG0( " set state = EStrengthHigh, op = EOperationWait" );
+
+ After( iParams.iHighTimeout );
+ iState = EStrengthHigh;
+ iOperation = EOperationWait;
+ }
+ else if ( iStrength >= iParams.iLowLevel )
+ {
+ RUBY_DEBUG0( " set state = EStrengtLow, op = EOperationWait" );
+ After( iParams.iLowTimeout );
+ iState = EStrengthLow;
+ iOperation = EOperationWait;
+ }
+ else
+ {
+ RUBY_DEBUG0( " strength between low and high, set op = EOperationNone" );
+
+ //WLAN signal is almost weak, check again with low interval
+ After( KWlanPollIntervalLowSignal );
+ iOperation = EOperationNone;
+ iState = EStrengthLow;
+ // PCLint
+ }
+ break;
+ }
+
+ case EOperationWait:
+ {
+
+ // Timer has completed. Check the signal level again.
+
+ RUBY_DEBUG0( " -EOperationWait" );
+ RUBY_DEBUG0( " set op = EOperationComplete" );
+ GetStrength();
+
+ SetActive();
+
+ iOperation = EOperationComplete;
+
+ break;
+ }
+
+ case EOperationComplete:
+ {
+ // Checking signal strength is now done.
+ // Notify our observer (if needed).
+
+ RUBY_DEBUG1( " -EOperationComplete, iStrength = %d", iStrength );
+
+ // Do we have a good signal level?
+ if ( iStrength <= iParams.iHighLevel && iStrength > 0 && iState == EStrengthHigh )
+ {
+ RUBY_DEBUG0( " -if ( iStrength <= iParams.iHighLevel" );
+ NotifyChanges( iStrength, MVccSignalLevelObserver::ESignalClassNormal );
+ }
+ // Or do we have a bad signal level?
+ else if ( iStrength >= iParams.iHighLevel && iState == EStrengthLow )
+ {
+ RUBY_DEBUG0( " -else if ( iStrength >= iParams.iHighLevel" );
+ NotifyChanges( iStrength, MVccSignalLevelObserver::ESignalClassWeak );
+ }
+ else
+ {
+ // PCLint
+ }
+
+ TTimeIntervalMicroSeconds32 interval;
+
+ if( iState == EStrengthHigh )
+ {
+ RUBY_DEBUG0( " high interval" );
+ interval = KWlanPollIntervalHighSignal;
+ }
+ else
+ {
+ RUBY_DEBUG0( " low interval" )
+ interval = KWlanPollIntervalLowSignal;
+ }
+
+ After( interval );
+
+ iState = EStrengthUnknown;
+ iOperation = EOperationNone;
+
+ break;
+ }
+
+ case EOperationNone:
+ {
+ RUBY_DEBUG0( " -EOperationNone" );
+
+ //if manual HO is done then there is no need for checking signal strength so much,
+ //so stopping the loop
+ if( !iManualHoDone )
+ {
+ RUBY_DEBUG0( " -call GetStrength()" );
+ GetStrength();
+ SetActive();
+ RUBY_DEBUG1( " -iStrength = %d, set op = EOperationGet \
+ state = EStrengthUnknown", iStrength );
+ iOperation = EOperationGet;
+ }
+ break;
+
+ }
+
+
+ default:
+ {
+ break;
+ }
+ }
+
+ }
+
+// ---------------------------------------------------------------------------
+// Lets Wlan Signal Level Handler know is manual handover done or not done
+//
+// ---------------------------------------------------------------------------
+
+
+void CVccWlanSignalLevelHandler::SetManualHoDone( TBool aValue )
+ {
+ RUBY_DEBUG_BLOCK( "CVccWlanSignalLevelHandler::SetManualHoDone" );
+ iManualHoDone = aValue;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Cancel outstanding requests.
+// ---------------------------------------------------------------------------
+//
+void CVccWlanSignalLevelHandler::DoCancel()
+ {
+ RUBY_DEBUG_BLOCK( "CVccSignalLevelHandler::DoCancel" );
+ switch ( iOperation )
+ {
+ case EOperationWait:
+ case EOperationNone:
+ {
+ RUBY_DEBUG0( "EOperationWait / EOperationNone" );
+ CTimer::DoCancel();
+
+ break;
+ }
+
+
+ default:
+ {
+ break;
+ }
+ }
+ }
--- a/commsconfig/cscapplicationui/inc/csc.hlp.hrh Mon Mar 15 12:39:55 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-//
-// csc.hlp.hrh
-//
-
-//
-// File generated by cshlpcmp Version 011
-//
-
-#ifndef __CSC_HLP_HRH__
-#define __CSC_HLP_HRH__
-
-_LIT( KVOIP_HLP_CSC, "VOIP_HLP_CSC"); //service view
-_LIT( KSERVTAB_HLP_SETTINGS, "SERVTAB_HLP_SETTINGS"); //settings ui
-
-const TUid KUidCscHelp = {0x10275458};
-const TUid KUidCscSettingsUiHelp = {0x1020E566};
-
-#endif // __CSC_HLP_HRH__
--- a/commsconfig/cscapplicationui/src/cscserviceview.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/commsconfig/cscapplicationui/src/cscserviceview.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -567,8 +567,7 @@
// ---------------------------------------------------------------------------
//
void CCSCServiceView::ExecuteStartupActionsL(
- TBool aForeGroundEvent,
- TBool aLaunchedFromAi )
+ TBool /*aForeGroundEvent*/, TBool aLaunchedFromAi )
{
CSCDEBUG( "CCSCServiceView::ExecuteStartupActionsL - begin" );
@@ -588,10 +587,10 @@
}
case CCSCEngStartupHandler::ERemoveSetupPluginService:
{
- if ( KNullUid != pluginUid && !aForeGroundEvent )
+ if ( KNullUid != pluginUid )
{
TRAPD( err, iContainer->HandleServicePluginRemovationL(
- pluginUid ) );
+ pluginUid ) );
// If error in service plugin removal, close csc.
if ( err )
--- a/commsconfig/cscgsplugin/src/cscgsplugin.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/commsconfig/cscgsplugin/src/cscgsplugin.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -22,9 +22,9 @@
#include <bldvariant.hrh>
#include <StringLoader.h>
#include <AknNullService.h>
-#include <GSParentPlugin.h>
+#include <gsparentplugin.h>
#include <cscgspluginrsc.rsg>
-#include <GSPrivatePluginProviderIds.h>
+#include <gsprivatepluginproviderids.h>
#include "cscgsplugin.h"
--- a/convergedconnectionhandler/cchclientapi/cchuinotif/src/cchuinotifier.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/convergedconnectionhandler/cchclientapi/cchuinotif/src/cchuinotifier.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -34,7 +34,7 @@
#include "cchuinotifconnectionhandler.h"
_LIT( KResourceDir, "\\resource\\apps\\" );
-_LIT( KResourceFileName, "cchuinotif.r??" );
+_LIT( KResourceFileName, "cchuinotif.r*" );
// SCP-plugin uid for Sip VoIP
const TInt32 KSipVoIPSubServicePlugId = 0x1027545A;
--- a/convergedconnectionhandler/cchserver/inc/cchphonestartupmonitor.h Mon Mar 15 12:39:55 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CCchPhoneStartupMonitor.
-*
-*/
-
-#ifndef C_CCHPHONESTARTUPMONITOR_H
-#define C_CCHPHONESTARTUPMONITOR_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include <e32property.h>
-
-class CCchUIHandler;
-
-/**
- * CCchPhoneStartupMonitor declaration
- * Monitors phone startup.
- * @lib cchserver.exe
- * @since S60 5.0
- */
-class CCchPhoneStartupMonitor : public CActive
- {
-
-public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CCchPhoneStartupMonitor* NewL( CCchUIHandler& aCchUIHandler );
-
- /**
- * Two-phased constructor.
- */
- static CCchPhoneStartupMonitor* NewLC( CCchUIHandler& aCchUIHandler );
-
- /**
- * Destructor.
- */
- virtual ~CCchPhoneStartupMonitor();
-
- /**
- Implements cancellation of an outstanding request.
- @see CActive::Cancel
- */
- virtual void DoCancel();
-
- /**
- Handles an active object's request completion event.
- */
- virtual void RunL();
-
- /**
- Handles leaving of RunL.
- */
- virtual TInt RunError(TInt aError);
-
-private:
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- /**
- * C++ default constructor.
- */
- CCchPhoneStartupMonitor( CCchUIHandler& aCchUIHandler );
-
- /**
- Monitor phone startup phases.
- */
- void MonitorPhoneStartupPhaseL();
-
-private: // data
-
- /**
- * Handle to cch ui handler.
- */
- CCchUIHandler& iCchUIHandler;
-
- /**
- * Handle to RProperty.
- */
- RProperty iStartupUiPhaseProperty;
-
- /**
- * Should I commit suicide
- */
- TBool iDie;
- };
-
-#endif // C_CCHPHONESTARTUPMONITOR_H
-
-// End of file
--- a/convergedconnectionhandler/cchserver/src/cchcommdbwatcher.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/convergedconnectionhandler/cchserver/src/cchcommdbwatcher.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -21,7 +21,7 @@
#include <cmconnectionmethoddef.h>
#include <cmpluginwlandef.h>
#include <centralrepository.h>
-#include <CommsDat.h>
+#include <commsdat.h>
#include "cchcommdbwatcher.h"
#include "cchcommdbwatcherobserver.h"
--- a/convergedconnectionhandler/cchserver/src/cchnotehandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/convergedconnectionhandler/cchserver/src/cchnotehandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -31,7 +31,7 @@
#include "cchlogger.h"
_LIT( KCchResourceDir, "\\resource\\apps\\" );
-_LIT( KCchResourceFileName, "cch.r??" );
+_LIT( KCchResourceFileName, "cch.r*" );
// ============================ MEMBER FUNCTIONS ===============================
--- a/convergedconnectionhandler/cchserver/src/cchphonestartupmonitor.cpp Mon Mar 15 12:39:55 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: CCchPhoneStartupMonitor implementation.
- *
-*/
-
-#include "cchlogger.h"
-#include "cchuihandler.h"
-#include "cchphonestartupmonitor.h"
-
-#include <startupdomainpskeys.h>
-
-// ============================= LOCAL FUNCTIONS =============================
-
-// ============================ MEMBER FUNCTIONS =============================
-
-// ---------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::CCchPhoneStartupMonitor
-// C++ default constructor can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-//
-CCchPhoneStartupMonitor::CCchPhoneStartupMonitor(
- CCchUIHandler& aCchUIHandler ) :
- CActive( CActive::EPriorityStandard ),
- iCchUIHandler( aCchUIHandler )
- {
- CCHLOGSTRING( "CCchPhoneStartupMonitor::CCchPhoneStartupMonitor" );
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::ConstructL
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-//
-void CCchPhoneStartupMonitor::ConstructL()
- {
- CCHLOGSTRING( "CCchPhoneStartupMonitor::ConstructL - IN" );
-
- iStartupUiPhaseProperty.Attach( KPSUidStartup, KPSStartupUiPhase );
- MonitorPhoneStartupPhaseL();
-
- CCHLOGSTRING( "CCchPhoneStartupMonitor::ConstructL - OUT" );
- }
-
-// ---------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::NewL
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CCchPhoneStartupMonitor* CCchPhoneStartupMonitor::NewL(
- CCchUIHandler& aCchUIHandler )
- {
- CCHLOGSTRING( "CCchPhoneStartupMonitor::NewL" );
- CCchPhoneStartupMonitor* self =
- CCchPhoneStartupMonitor::NewLC( aCchUIHandler );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::NewLC
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CCchPhoneStartupMonitor* CCchPhoneStartupMonitor::NewLC(
- CCchUIHandler& aCchUIHandler )
- {
- CCHLOGSTRING( "CCchPhoneStartupMonitor::NewLC" );
- CCchPhoneStartupMonitor* self =
- new (ELeave) CCchPhoneStartupMonitor( aCchUIHandler );
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::~CCchPhoneStartupMonitor()
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CCchPhoneStartupMonitor::~CCchPhoneStartupMonitor()
- {
- CCHLOGSTRING( "CCchPhoneStartupMonitor::~CCchPhoneStartupMonitor" );
-
- iStartupUiPhaseProperty.Cancel();
- Cancel();
- }
-
-// ----------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::DoCancel()
-// ----------------------------------------------------------------------------
-void CCchPhoneStartupMonitor::DoCancel()
- {
- CCHLOGSTRING("CCchPhoneStartupMonitor::DoCancel()");
- }
-
-// ----------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::RunL()
-// ----------------------------------------------------------------------------
-void CCchPhoneStartupMonitor::RunL()
- {
- CCHLOGSTRING("CCchPhoneStartupMonitor::RunL() IN");
-
- MonitorPhoneStartupPhaseL();
-
- CCHLOGSTRING("CCchPhoneStartupMonitor::RunL() OUT");
- }
-
-// ----------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::RunError()
-// ----------------------------------------------------------------------------
-TInt CCchPhoneStartupMonitor::RunError( TInt /*aError*/ )
- {
- return KErrNone;
- }
-
-// ----------------------------------------------------------------------------
-// CCchPhoneStartupMonitor::MonitorPhoneStartupPhaseL()
-// ----------------------------------------------------------------------------
-void CCchPhoneStartupMonitor::MonitorPhoneStartupPhaseL()
- {
- CCHLOGSTRING("CCchPhoneStartupMonitor::MonitorPhoneStartupPhaseL() IN");
-
- TInt status( 0 );
- TInt err = iStartupUiPhaseProperty.Get(
- KPSUidStartup,
- KPSStartupUiPhase,
- status );
-
- CCHLOGSTRING2(
- "CCchPhoneStartupMonitor::MonitorPhoneStartupPhaseL() ERR=%d", err );
-
- if ( !err )
- {
- TBool networkConnAllowed = iCchUIHandler.NetworkConnectionsAllowed();
-
- CCHLOGSTRING2( " --> status=%d", status );
- CCHLOGSTRING2( " --> networkConnAllowed=%d", networkConnAllowed );
-
- if ( EStartupUiPhaseAllDone == status && !networkConnAllowed )
- {
- iCchUIHandler.ShowEmergencyWarningNoteL( EFalse );
- Cancel();
- }
- else
- {
- iStartupUiPhaseProperty.Subscribe( iStatus );
- SetActive();
- }
- }
-
- CCHLOGSTRING("CCchPhoneStartupMonitor::MonitorPhoneStartupPhaseL() OUT");
- }
-
-// ========================== OTHER EXPORTED FUNCTIONS =======================
-
-// End of File
--- a/package_definition.xml Mon Mar 15 12:39:55 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
- <package id="iptelephony" name="IP Telephony" levels="eng plugin util ui">
- <collection id="iptelcommsconfig" name="IP Telephony Comms Config" level="ui">
- <component id="cscgsplugin" filter="s60" name="CSC GS Plugin" class="plugin" introduced="^2">
- <unit bldFile="commsconfig/cscgsplugin/group"/>
- </component>
- <component id="cscsipvoipcleanupplugin" filter="s60" name="CSC SIP VoIP Cleanup Plugin" class="plugin" introduced="^2">
- <unit bldFile="commsconfig/cscsipvoipcleanupplugin/group"/>
- </component>
- <component id="cscengine" filter="s60" name="Connection Service Configurator Engine" introduced="^2">
- <unit bldFile="commsconfig/cscengine/group"/>
- </component>
- <component id="cscsettingsui" filter="s60" name="CSC Settings UI" introduced="^2">
- <unit bldFile="commsconfig/cscsettingsui/group"/>
- </component>
- <component id="cscapplicationui" filter="s60" name="CSC Application UI" introduced="^2">
- <unit bldFile="commsconfig/cscapplicationui/group"/>
- </component>
- <component id="commsconfig_build" filter="s60" name="Comms Config Build" introduced="^2">
- <!-- consider distributing this into the above components -->
- <unit bldFile="commsconfig/group"/>
- </component>
- </collection>
- <collection id="convergedconnectionhandler" name="Converged Connection Handler" level="eng">
- <component id="cchserver" filter="s60" name="CCH Server" introduced="^2">
- <unit bldFile="convergedconnectionhandler/cchserver/group"/>
- </component>
- <component id="cchclient" filter="s60" name="CCH Client" introduced="^2">
- <unit bldFile="convergedconnectionhandler/cchclient/group"/>
- </component>
- <component id="cchclientapi" filter="s60" name="CCH Client API" introduced="^2">
- <unit bldFile="convergedconnectionhandler/cchclientapi/group"/>
- </component>
- <component id="convergedconnectionhandler_build" filter="s60" name="CCH Build" introduced="^2">
- <!-- consider distributing this into the above components, or collapse the collection into a single component -->
- <unit bldFile="convergedconnectionhandler/group"/>
- </component>
- </collection>
- <collection id="richcallsettingsengine" name="Rich Call Settings Engine" level="eng">
- <component id="rcse2" filter="s60" name="Rich Call Settings Engine Build" introduced="^2">
- <unit bldFile="richcallsettingsengine/rcse2/group"/>
- </component>
- </collection>
- <collection id="sipvoipprovider" name="SIP VoIP Provider" level="plugin">
- <component id="svp" filter="s60" name="SIP VoIP Provider Build" class="plugin" introduced="^2">
- <unit bldFile="sipvoipprovider/group"/>
- </component>
- </collection>
- <collection id="voipplugins" name="VoIP Plugins" level="plugin">
- <component id="sipmxresolver" filter="s60" name="SIP MX Resolver" class="plugin" introduced="^2">
- <unit bldFile="voipplugins/sipmxresolver/group"/>
- </component>
- <component id="sipconnectionprovider" filter="s60" name="SIP Connection Provider" class="plugin" introduced="^2">
- <unit bldFile="voipplugins/sipconnectionprovider/group"/>
- <!-- can only have one unit, can the next be #'included from the above? -->
- <unit bldFile="voipplugins/sipconnectionprovider/ipvoicemailengine/group"/>
- </component>
- <component id="ipapputils" filter="s60" name="IP App Utils" introduced="^2">
- <unit bldFile="voipplugins/ipapputils/group"/>
- </component>
- <component id="voipadapters" filter="s60" name="VoIP Adapters" class="plugin" introduced="^2">
- <unit bldFile="voipplugins/voipadapters/group"/>
- </component>
- <component id="accountcreationplugin" filter="s60" name="Account Creation Plugin" class="plugin" introduced="^2">
- <unit bldFile="voipplugins/accountcreationplugin/group"/>
- </component>
- <component id="dhcppositionprovider" filter="s60" name="DHCP Position Provider" class="plugin" introduced="^2">
- <unit bldFile="voipplugins/dhcppositionprovider/group"/>
- </component>
- <component id="svtmatching" filter="s60" name="SIP VoIP Telephony Matching" class="plugin" introduced="^2">
- <unit bldFile="voipplugins/svtmatching/group"/>
- </component>
- <component id="svtlogging" filter="s60" name="SVT Logging" class="plugin" introduced="^2">
- <unit bldFile="voipplugins/svtlogging/group"/>
- </component>
- <component id="svtcallmenu" filter="s60" name="SVT Call Menu" class="plugin" introduced="^2">
- <unit bldFile="voipplugins/svtcallmenu/group"/>
- </component>
- </collection>
- <collection id="callcontinuity" name="Call Continuity" level="util">
- <component id="vccutils" filter="s60" name="VCC Utils" introduced="^2">
- <unit bldFile="callcontinuity/vccutils/group"/>
- </component>
- <component id="nsmldmvccadapter" filter="s60" name="SyncML DM VCC Adapter" class="plugin" introduced="^2">
- <unit bldFile="callcontinuity/nsmldmvccadapter/group"/>
- </component>
- <component id="vccclientprovisioningadapter" filter="s60" name="VCC Client Provisioning Adapter" class="plugin" introduced="^2">
- <unit bldFile="callcontinuity/vccclientprovisioningadapter/group"/>
- </component>
- <component id="vccpropertyhandler" filter="s60" name="VCC Property Handler" introduced="^2">
- <unit bldFile="callcontinuity/vccpropertyhandler/group"/>
- </component>
- <component id="vcchotrigger" filter="s60" name="VCC HO Trigger" introduced="^2">
- <unit bldFile="callcontinuity/vcchotrigger/group"/>
- </component>
- <component id="vcc" filter="s60" name="VoIP Call Continuity" class="plugin" introduced="^2">
- <unit bldFile="callcontinuity/vcc/group"/>
- </component>
- <component id="settingsreader" filter="s60" name="Settings Reader" purpose="development" introduced="^2">
- <!-- what to do with this component? -->
- <!-- <unit bldFile="callcontinuity/settingsreader/group"/> -->
- </component>
- <component id="callcontinuity_build" filter="s60" name="Call Continuity Build" introduced="^2">
- <!-- consider distributing this into the above components -->
- <unit bldFile="callcontinuity/group"/>
- </component>
- </collection>
- <collection id="iptelephony_info" name="IP Telephony Info" level="ui">
- <component id="iptel_plat" filter="s60" class="api" name="IP Telephony Platform Interfaces" introduced="^2">
- <unit bldFile="iptel_plat/group"/>
- </component>
- </collection>
- </package>
-</SystemDefinition>
--- a/sipvoipprovider/inc/svpmosession.h Mon Mar 15 12:39:55 2010 +0200
+++ b/sipvoipprovider/inc/svpmosession.h Wed Mar 31 21:20:05 2010 +0300
@@ -288,7 +288,7 @@
* @return HBufC8* constructed uri
*/
HBufC8* CompleteUriL( const TDesC8& aRecipient,
- const CSIPProfile&,
+ const CSIPProfile& aSipProfile,
const TUint32& aSecurityStatus,
TBool aUserEqualsPhoneRequired );
--- a/sipvoipprovider/src/svpmosession.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/sipvoipprovider/src/svpmosession.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -140,8 +140,6 @@
{
// set crypto contexts
SetCryptoContextL();
- // Set AVP to use instead of SAVP
- iSession->SetModifierL( KMceSecureSession, KMceSecurePlainAVP );
// set secured flag to ETrue to indicate that this is secure session
SetSecurePreferred( ETrue );
// set iSecured flag so UI can show right icon
@@ -158,8 +156,6 @@
{
// set crypto contexts
SetCryptoContextL();
- // Set AVP to use instead of SAVP
- iSession->SetModifierL( KMceSecureSession, KMceSecurePlainAVP );
// set secure mandatory flag ETrue, only secure session allowed
SetSecureMandatory( ETrue );
// set iSecured flag so UI can show right icon
@@ -291,13 +287,37 @@
TBool aUserEqualsPhoneRequired )
{
SVPDEBUG1( "CSVPMoSession::CompleteUriL In" )
-
+
// create instance of uri parser
CSVPUriParser* uriParser = CSVPUriParser::NewLC();
-
- const TDesC8* userAor = NULL;
- aSIPProfile.GetParameter( KSIPUserAor, userAor );
+
+ HBufC8* userAor( NULL );
+ const MDesC8Array* aors( NULL ); // Array of registered address of records
+
+ TInt result = aSIPProfile.GetParameter( KSIPRegisteredAors, aors );
+ if ( !aors || aors->MdcaCount() == KErrNone )
+ {
+ SVPDEBUG1( "CSVPMoSession::CompleteUriL - registered aors array empty" )
+ const TDesC8* userAorStr = NULL;
+ result = aSIPProfile.GetParameter( KSIPUserAor, userAorStr );
+ SVPDEBUG2( "CSVPMoSession::CompleteUriL - KSIPUserAor result: %d", result )
+ userAor = HBufC8::NewLC( userAorStr->Length() );
+ userAor->Des().Copy( *userAorStr );
+ }
+ else
+ {
+ #ifdef _DEBUG
+ TBuf<KSvpMaxDebugBufferSize> tmpUri;
+ for ( TInt i = 0; i < aors->MdcaCount(); i++ )
+ {
+ tmpUri.Copy( aors->MdcaPoint( i ) );
+ SVPDEBUG3( "CSVPMoSession::CompleteUriL - registered AOR[%d]: %S", i, &tmpUri )
+ }
+ #endif
+ userAor = HBufC8::NewLC( aors->MdcaPoint( 0 ).Length() );
+ userAor->Des().Copy( aors->MdcaPoint( 0 ) );
+ }
// set service id to uri parser, needed for setting user=phone
uriParser->SetUserEqualsPhoneRequiredL( aUserEqualsPhoneRequired );
@@ -321,7 +341,7 @@
SVPDEBUG1( "CSVPMoSession::CompleteUriL Completing SIPS URI..." )
uri = uriParser->CompleteSecureSipUriL( aRecipient, *userAor );
}
-
+ CleanupStack::PopAndDestroy( userAor );
CleanupStack::PopAndDestroy( uriParser );
SVPDEBUG1( "CSVPMoSession::CompleteUriL Out" )
--- a/sipvoipprovider/src/svpsslogcall.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/sipvoipprovider/src/svpsslogcall.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -211,10 +211,16 @@
{
SVPDEBUG1("CSVPSSLogCall::FindContactTitleL, manyCompleteMatches");
manyCompleteMatches = ETrue;
+
+ // Set to NULL if multiple matches
+ if ( title )
+ {
+ delete title;
+ title = NULL;
+ }
}
else
- {
- iLogEvent->SetContact( contactId ); // Set aItem based on complete match.
+ {
title = tempContactItem->GetContactTitleL();
compId = contactId;
ind = count;
@@ -224,6 +230,12 @@
}
contactId = iter->NextL();
}
+
+ // Set contact if only one match found
+ if ( compId && !manyCompleteMatches )
+ {
+ iLogEvent->SetContact( compId );
+ }
CleanupStack::PopAndDestroy( iter );
CleanupStack::PopAndDestroy( contacts );
@@ -277,8 +289,8 @@
SVPDEBUG1(" CSVPSSLogCall::HandleCallLoggingL, URI address is seen" );
HBufC* contactName = FindContactTitleL( number );
if ( contactName )
- { // Phonebook contact id has been found
- //tempBufTwo.Copy( contactName->Des() );
+ {
+ // Phonebook contact id has been found
tempBufTwo.Copy( number );
iLogEvent->SetRemoteParty( contactName->Des() );
}
@@ -287,7 +299,13 @@
tempBufTwo.Copy( number );
iLogEvent->SetRemoteParty( number );
}
- delete contactName;
+
+ if ( contactName )
+ {
+ delete contactName;
+ contactName = NULL;
+ }
+
tempBufOne.Append( tempBufTwo );
tempBufTwo.Zero();
tempBufOne.Append( KLogFieldDelimiter() );
--- a/sipvoipprovider/src/svpuriparser.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/sipvoipprovider/src/svpuriparser.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -154,7 +154,15 @@
SVPDEBUG1( "CSVPUriParser::CompleteSipUriL In" )
// Copy the parameter to a new buffer.
- HBufC8* uri = aUri.AllocLC();
+ HBufC8* uri = aUri.AllocLC(); // CS: 1
+
+#ifdef _DEBUG
+ TBuf<KSvpMaxDebugBufferSize> tmpStr;
+ tmpStr.Copy( aAOR );
+ SVPDEBUG2( "CSVPUriParser::CompleteSipUriL IN aAOR: %S", &tmpStr )
+ tmpStr.Copy( aUri );
+ SVPDEBUG2( "CSVPUriParser::CompleteSipUriL IN aURI: %S", &tmpStr )
+#endif // _DEBUG
// Trim ALL white space from URI, even if used as an user name
uri->Des().TrimAll();
@@ -166,7 +174,7 @@
KErrNotFound != uri->Des().Left( KTelPrefixLength ).Find( KTelPrefix ) &&
KErrNotFound == uri->Des().Find( KSVPAt ) )
{
- CleanupStack::Pop( uri );
+ CleanupStack::Pop( uri ); // CS:0
return uri;
}
@@ -250,10 +258,13 @@
{
SVPDEBUG1( " CSVPUriParser::CompleteSipUriL uri null" )
}
-
+
+#ifdef _DEBUG
+ tmpStr.Copy( *uri );
+ SVPDEBUG2( "CSVPUriParser::CompleteSipUriL OUT: %S", &tmpStr )
+#endif // _DEBUG
+
CleanupStack::Pop( 1 ); // uri
-
- SVPDEBUG1( "CSVPUriParser::CompleteSipUriL Out" )
return uri;
}
@@ -286,6 +297,14 @@
// Copy the parameter to a new buffer.
HBufC8* uri = aUri.AllocLC();
+
+#ifdef _DEBUG
+ TBuf<KSvpMaxDebugBufferSize> tmpStr;
+ tmpStr.Copy( aAOR );
+ SVPDEBUG2( "CSVPUriParser::CompleteSecureSipUriL IN aAOR: %S", &tmpStr )
+ tmpStr.Copy( aUri );
+ SVPDEBUG2( "CSVPUriParser::CompleteSecureSipUriL IN aURI: %S", &tmpStr )
+#endif // _DEBUG
// Trim ALL white space from URI, even if used as an user name
uri->Des().TrimAll();
@@ -363,10 +382,13 @@
{
SVPDEBUG1( " CSVPUriParser::CompleteSecureSipUriL uri null" )
}
-
+
+#ifdef _DEBUG
+ tmpStr.Copy( *uri );
+ SVPDEBUG2( "CSVPUriParser::CompleteSecureSipUriL OUT: %S", &tmpStr )
+#endif // _DEBUG
+
CleanupStack::Pop( 1 ); // uri
-
- SVPDEBUG1( "CSVPUriParser::CompleteSecureSipUriL Out" )
return uri;
}
@@ -420,7 +442,7 @@
{
SVPDEBUG1( "CSVPUriParser::CheckSipsPrefix" )
- // The "sip:" prefix is expected to be at the beginning of the URI.
+ // The "sips:" prefix is expected to be at the beginning of the URI.
return ( 0 == aUri.Find( KSVPSipsPrefix ) );
}
@@ -559,7 +581,7 @@
// Re-allocate the URI
aUri = aUri->ReAllocL( aUri->Length() + domainBuf->Length() );
- aUri->Des().Append( domainBuf->Des() ); // Append the domain.
+ aUri->Des().Append( *domainBuf ); // Append the domain.
CleanupStack::PopAndDestroy( domainBuf ); // CS : 0
--- a/sipvoipprovider/svptransfer/src/svptransfercontroller.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/sipvoipprovider/svptransfer/src/svptransfercontroller.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -27,6 +27,10 @@
#include "svpsipconsts.h"
#include "svpconsts.h"
+// These have to be handled as well
+_LIT8( KSVPNotifyRinging183, "SIP/2.0 183 Ringing" );
+_LIT8( KSVPNotifyOk, "SIP/2.0 200 Ok" );
+
// ---------------------------------------------------------------------------
// CSVPTransferController::CSVPTransferController
// ---------------------------------------------------------------------------
@@ -225,7 +229,8 @@
}
}
}
- else if ( !content->Find( TPtrC8( KSVPNotifyOK ) ) )
+ else if ( !content->Find( TPtrC8( KSVPNotifyOK ) ) ||
+ !content->Find( TPtrC8( KSVPNotifyOk ) ) )
{
if ( iTransferContext->IsAttended() )
{
@@ -254,11 +259,12 @@
SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, UnAttended: SIP/2.0 200 OK" );
}
}
- else if ( !content->Find( TPtrC8( KSVPNotifyRinging ) ) &&
- !iTransferContext->IsAttended())
+ else if ( ( !content->Find( TPtrC8( KSVPNotifyRinging ) ) ||
+ !content->Find( TPtrC8( KSVPNotifyRinging183 ) ) ) &&
+ !iTransferContext->IsAttended())
{
// Polycom send Ringing instead of Trying in unattended case.
- SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, UnAttended and 180 Ringing" );
+ SVPDEBUG1( "CSVPTransferController::NotifyReceivedL, UnAttended and Ringing" );
// Check if 202 Accepted already received
if ( iAccepted )
--- a/voipplugins/sipconnectionprovider/inc/scppresencehandler.h Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/inc/scppresencehandler.h Wed Mar 31 21:20:05 2010 +0300
@@ -76,7 +76,13 @@
* Destructor.
*/
virtual ~CScpPresenceHandler();
-
+
+ /**
+ * Update XDM settings access point.
+ * XDM AP should be the same as SIP profile.
+ */
+ void UpdateXdmSettingsL();
+
public: // From CScpServiceHandlerBase
/**
@@ -148,12 +154,6 @@
void ConstructL();
/**
- * Update XDM settings access point.
- * XDM ap should be same as sip profile.
- */
- void UpdateXdmSettingsL();
-
- /**
* Binds SCP's presence context.
*/
void ServerBindL();
@@ -283,6 +283,12 @@
*/
TBool iDisableAfterXimpRequestsCompleted;
+ /**
+ * Flag for indicating if network is lost and roaming is
+ * concluded to be ongoing
+ */
+ TBool iNetworkLostRoamingOngoing;
+
#ifdef _DEBUG
friend class T_CScpPresenceHandler;
#endif
--- a/voipplugins/sipconnectionprovider/inc/scpsipconnection.h Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/inc/scpsipconnection.h Wed Mar 31 21:20:05 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -246,7 +246,14 @@
* @return ETrue when username exists
*/
TBool IsUsernameSetL() const;
-
+
+ /**
+ * Checks if SNAP connection method used by the SIP profile is
+ * available
+ * @return ETrue if available
+ */
+ TBool IsSnapConnectionAvailable( TInt aSnapId ) const;
+
#ifdef _DEBUG
void GetInfo( TDes& aInfo ) const;
#endif
@@ -303,13 +310,6 @@
TBool IsNetworkConnectionAvailable() const;
/**
- * Checks if SNAP connection method used by the sip profile is
- * available
- * @return ETrue if available
- */
- TBool IsSnapConnectionAvailable( TInt aSnapId ) const;
-
- /**
* Checks if IAP connection method used by sip profile is
* available
* @return ETrue if available
--- a/voipplugins/sipconnectionprovider/ipvoicemailengine/inc/ipvmbxbase.h Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/ipvoicemailengine/inc/ipvmbxbase.h Wed Mar 31 21:20:05 2010 +0300
@@ -98,11 +98,6 @@
void DeleteEvent();
/**
- * Update status of voice mails.
- */
- static TInt ReSubscribe( TAny* aThis );
-
- /**
* Cancel resubscribe timer
*/
void Cancel();
@@ -185,17 +180,6 @@
CMceManager& iMceManager;
/**
- * Re SUBSCRIBE timer
- * Own.
- */
- CDeltaTimer* iReSubscribe;
-
- /**
- * Re SUBSCRIBE period
- */
- TTimeIntervalMicroSeconds iReSubscribePeriod;
-
- /**
* State of base class
*/
TIpVmbxBaseStates iState;
@@ -230,12 +214,6 @@
*/
CIpVmbxEngine& iVmbxEngine;
- /**
- * Re subscribe callback
- */
- TDeltaTimerEntry iUpdateEvent;
-
-
EUNIT_IMPLEMENTATION
};
--- a/voipplugins/sipconnectionprovider/ipvoicemailengine/src/ipvmbxbase.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/ipvoicemailengine/src/ipvmbxbase.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -28,8 +28,6 @@
const TInt KMinReSubscribeDelta = 600; // 10 min
const TInt KMaxReSubscribeDelta = 86400; // 24 h
-const TUint32 KServerRefreshInterval = KMaxReSubscribeDelta;
-const TInt KSecondsToMicro = 1000000;
_LIT8( KEventHeader8, "message-summary" );
@@ -47,7 +45,6 @@
iSipProfile( NULL ),
iMceOutEvent( NULL ),
iMceManager( aMceManager ),
- iReSubscribe( NULL ),
iVmbxEngine( aVmbxEngine )
{
}
@@ -59,13 +56,10 @@
//
void CIpVmbxBase::ConstructL( TDesC8& aVoiceMailUri8 )
{
- iReSubscribe = CDeltaTimer::NewL( CActive::EPriorityIdle );
if ( iVmbxUri8.MaxLength() >= aVoiceMailUri8.Length() )
{
iVmbxUri8.Copy( aVoiceMailUri8 );
}
- TCallBack cb( ReSubscribe, this );
- iUpdateEvent.Set( cb );
}
@@ -99,11 +93,6 @@
{
IPVMEPRINT( "CIpVmbxBase::~CIpVmbxBase - IN" );
- if ( iReSubscribe )
- {
- iReSubscribe->Remove( iUpdateEvent );
- }
- delete iReSubscribe;
delete iMceOutEvent;
IPVMEPRINT( "CIpVmbxBase::~CIpVmbxBase - OUT" );
@@ -143,8 +132,11 @@
aReSubscribe = KMaxReSubscribeDelta;
}
- iReSubscribePeriod = ( TInt64 ) aReSubscribe * ( TInt64 ) KSecondsToMicro;
-
+ TUint32 resubscribeInterval = ( TUint32 ) aReSubscribe;
+
+ IPVMEPRINT2( "CIpVmbxAppBase::SubscribeL - resubscribe interval=%d",
+ resubscribeInterval );
+
__ASSERT_DEBUG( !iMceOutEvent, Panic( KErrAlreadyExists ) );
if ( !iMceOutEvent )
@@ -154,7 +146,7 @@
*iSipProfile,
iVmbxUri8,
KEventHeader8,
- KServerRefreshInterval );
+ resubscribeInterval );
}
else
{
@@ -183,7 +175,6 @@
{
IPVMEPRINT( "CIpVmbxAppBase::TerminateEventL - IN" );
- iReSubscribe->Remove( iUpdateEvent );
if ( iMceOutEvent && CMceEvent::EActive == iMceOutEvent->State() )
{
iMceOutEvent->TerminateL();
@@ -209,68 +200,6 @@
}
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CIpVmbxBase::ReSubscribe( TAny* aThis )
- {
- CIpVmbxBase* base = reinterpret_cast<CIpVmbxBase*> ( aThis );
- __ASSERT_DEBUG( base, Panic( KErrArgument ) );
- IPVMEPRINT2(
- "CIpVmbxAppBase::ReSubscribeL - IN state: %d",
- base->iMceOutEvent->State() );
-
- if ( base && base->iMceOutEvent )
- {
- switch ( base->iMceOutEvent->State() )
- {
- case CMceEvent::EActive:
- {
- TRAPD( err, base->iMceOutEvent->UpdateL( KServerRefreshInterval ) );
- if ( err )
- {
- base->iVmbxEngine.HandleMessage(
- base->iServiceProviderId, CIpVmbxEngine::EEngineNetworkError );
- }
- base->iPendingResubscribeCount = 0;
- if ( !base->iReSubscribe->IsActive() )
- {
- base->iReSubscribe->QueueLong(
- base->iReSubscribePeriod,
- base->iUpdateEvent );
- }
- break;
- }
- case CMceEvent::EPending:
- {
- if ( base->iPendingResubscribeCount++ )
- {
- // Allows to skip one resubscribe before error occurs
- base->iVmbxEngine.HandleMessage(
- base->iServiceProviderId,
- CIpVmbxEngine::EEngineNetworkLost );
- }
- break;
- }
- case CMceEvent::EIdle:
- case CMceEvent::ETerminated:
- {
- base->iVmbxEngine.HandleMessage(
- base->iServiceProviderId,
- CIpVmbxEngine::EEngineNetworkLost );
- break;
- }
- default:
- IPVMEPRINT( "Unhandled message!" );
- }
- }
-
- IPVMEPRINT( "CIpVmbxAppBase::ReSubscribeL - OUT" );
- return KErrNone;
- }
-
-
// ----------------------------------------------------------------------------
//
// ----------------------------------------------------------------------------
@@ -278,7 +207,6 @@
void CIpVmbxBase::Cancel()
{
iState = EDisabled;
- iReSubscribe->Remove( iUpdateEvent );
}
@@ -309,10 +237,6 @@
void CIpVmbxBase::SetStateRegistered()
{
iState = ERegistered;
- if ( !iReSubscribe->IsActive() )
- {
- iReSubscribe->QueueLong( iReSubscribePeriod, iUpdateEvent );
- }
}
--- a/voipplugins/sipconnectionprovider/ipvoicemailengine/src/ipvmbxengine.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/ipvoicemailengine/src/ipvmbxengine.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -418,11 +418,17 @@
//
void CIpVmbxEngine::UnsubscribeProfileL( TUint32 aServiceProviderId )
{
+ IPVMEPRINT2( "CIpVmbxEngine::UnsubscribeProfileL: %d - IN",
+ aServiceProviderId );
+
CIpVmbxBase* subscription( SubscriptionByProvider( aServiceProviderId ) );
if ( !subscription )
{
User::Leave( KErrNotFound );
}
+
+ IPVMEPRINT2( "CIpVmbxEngine::UnsubscribeProfileL: state=%d",
+ subscription->State() );
switch( subscription->State() )
{
--- a/voipplugins/sipconnectionprovider/src/scppresencehandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/src/scppresencehandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -39,7 +39,7 @@
#include <ximpcontext.h>
#include <ximpstatus.h>
#include <pressettingsapi.h> //presence settings
-#include <xdmsettingsapi.h>
+#include <XdmSettingsApi.h>
#include <cvimpstsettingsstore.h>
#include "scppresencehandler.h"
@@ -78,7 +78,8 @@
CScpPresenceHandler::CScpPresenceHandler( CScpSubService& aSubService ) :
CScpServiceHandlerBase( aSubService ),
iPresenceState( ENoBind ),
- iDisableAfterXimpRequestsCompleted( EFalse )
+ iDisableAfterXimpRequestsCompleted( EFalse ),
+ iNetworkLostRoamingOngoing( EFalse )
{
SCPLOGSTRING2( "CScpPresenceHandler[0x%x]::CScpPresenceHandler", this );
}
@@ -238,6 +239,8 @@
SCPLOGSTRING4( "CScpPresenceHandler[0x%x]::HandleSipConnectionEvent id: %d event: %d",
this, aProfileId, aEvent );
+ iNetworkLostRoamingOngoing = EFalse;
+
if ( iSubService.SipProfileId() == aProfileId &&
iSubService.EnableRequestedState() != CScpSubService::EScpNoRequest )
{
@@ -249,9 +252,23 @@
if ( KErrNotReady == err )
{
- SCPLOGSTRING( "CScpPresenceHandler - EScpNetworkLost -> note ready: unbind" );
+ SCPLOGSTRING( "CScpPresenceHandler - EScpNetworkLost -> not ready: unbind" );
TRAP_IGNORE( ServerUnBindL() );
}
+
+ TUint32 snapId;
+ CScpProfileHandler& profileHandler = iSubService.ProfileHandler();
+ CScpSipConnection* sipConnection = profileHandler.GetSipConnection( iSubService.SipProfileId() );
+
+ if ( sipConnection )
+ {
+ TInt error = sipConnection->GetSnap( snapId );
+
+ if ( !error && sipConnection->IsSnapConnectionAvailable( snapId ) )
+ {
+ iNetworkLostRoamingOngoing = ETrue;
+ }
+ }
}
if ( EScpRoaming == aEvent )
@@ -918,18 +935,20 @@
else if ( reqType == EUnBindReq && EUnBinding == iPresenceState )
{
SCPLOGSTRING( "CScpPresenceHandler::HandleRequestCompleteEvent status offline" );
-
// Do not send info to our client if roaming is ongoing
- if ( !iSubService.IsRoaming() )
+ if ( !iNetworkLostRoamingOngoing )
{
- DeregisterNow();
+ if ( !iSubService.IsRoaming() )
+ {
+ DeregisterNow();
+ }
+ else
+ {
+ // Inform SIP to start ALR migration
+ iSubService.ProfileHandler().StartAlrMigration(
+ iSubService.SipProfileId() );
+ }
}
- // Inform SIP to start ALR migration
- else
- {
- iSubService.ProfileHandler().StartAlrMigration( iSubService.SipProfileId() );
- }
-
SCPLOGSTRING( "CScpPresenceHandler::HandleRequestCompleteEvent status offline end" );
}
--- a/voipplugins/sipconnectionprovider/src/scpprofilehandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/src/scpprofilehandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -471,9 +471,12 @@
iAlrController->AllowMigrationL( aProfileId, iNewAlrIapId ) );
CScpSipConnection* sipConnection( NULL );
+ sipConnection = GetSipConnection( aProfileId );
- sipConnection = GetSipConnection( aProfileId );
- sipConnection->SetProfileCurrentlyRoaming();
+ if ( sipConnection )
+ {
+ sipConnection->SetProfileCurrentlyRoaming();
+ }
SCPLOGSTRING( "CScpProfileHandler::StartMigrtion -exit" );
}
--- a/voipplugins/sipconnectionprovider/src/scpsettinghandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/src/scpsettinghandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -22,8 +22,8 @@
#include <spproperty.h>
#include <spsettingsvoiputils.h>
#include <pressettingsapi.h>
-#include <XdmSettingsApi.h>
-#include <XdmSettingsCollection.h>
+#include <xdmsettingsapi.h>
+#include <xdmsettingscollection.h>
#include "scpsettinghandler.h"
#include "scpservice.h"
--- a/voipplugins/sipconnectionprovider/src/scpsipconnection.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/src/scpsipconnection.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -34,6 +34,8 @@
const TInt KUsernameMaxLength = 255;
+_LIT8( KSCPAt8, "@" );
+
// -----------------------------------------------------------------------------
// CScpSipConnection::CScpSipConnection
// -----------------------------------------------------------------------------
@@ -567,23 +569,55 @@
SCPLOGSTRING2( "CScpSipConnection[0x%x]::GetUsername", this );
TInt result( KErrNotFound );
+
+ // Check if profile is registered
+ TBool val( EFalse );
+ result = iSipProfile->GetParameter( KSIPProfileRegistered, val );
+
const TDesC8* aor( NULL );
// Get SIP's Username
result = iSipProfile->GetParameter( KSIPUserAor, aor );
- if ( result == KErrNone && aor )
+ if ( result == KErrNone && aor->Length() > KErrNone )
{
if ( aor->Length() <= aUsername.MaxLength() )
{
+ SCPLOGSTRING( "CScpSipConnection::GetUsername - Got username from AOR" );
aUsername.Copy( *aor );
}
else
{
+ SCPLOGSTRING( "CScpSipConnection::GetUsername - KErrOverflow" );
result = KErrOverflow;
}
}
-
+ else if ( val ) // registered
+ {
+ // Might be IMS case and UserAor is incomplete, then
+ // Get SIP's Username from registered AORs
+ const MDesC8Array* aors = 0;
+ result = iSipProfile->GetParameter( KSIPRegisteredAors, aors );
+ if ( !aors || aors->MdcaCount() == 0 )
+ {
+ SCPLOGSTRING( "CScpSipConnection::GetUsername - KErrNotReady" );
+ result = KErrNotReady;
+ }
+ else
+ {
+ HBufC8* tmpUserName = HBufC8::NewLC( aors->MdcaPoint( 0 ).Length() );
+ tmpUserName->Des().Copy( aors->MdcaPoint( 0 ) );
+ #ifdef _DEBUG
+ TBuf<256> tmpUri;
+ tmpUri.Copy( aors->MdcaPoint( 0 ) );
+ SCPLOGSTRING2( "CScpSipConnection::GetUsername - use first registered AOR: %S", &tmpUri );
+ #endif
+ TInt atPos = tmpUserName->Find( KSCPAt8 );
+ aUsername.Copy( tmpUserName->Left( atPos ) );
+ CleanupStack::PopAndDestroy( tmpUserName );
+ }
+ }
+ SCPLOGSTRING2( "CScpSipConnection::GetUsername - return error: %d", result );
return result;
}
--- a/voipplugins/sipconnectionprovider/src/scpsubservice.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/src/scpsubservice.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -29,6 +29,7 @@
#include "scppresencehandler.h"
#include "scpimhandler.h"
#include "scpsubserviceobserver.h"
+#include "scppresencehandler.h"
// -----------------------------------------------------------------------------
// CScpSubService::NewL
@@ -517,6 +518,17 @@
{
iSubServiceState =
TScpStateContainer::Instance( ECCHEnabled );
+
+ if ( ECCHVoIPSub == iSubServiceType )
+ {
+ if ( iService.ContainsSubServiceType( ECCHPresenceSub ) )
+ {
+ CScpPresenceHandler* presenceHandler = static_cast<CScpPresenceHandler*>(
+ &iService.GetSubServiceByType( ECCHPresenceSub )->ServiceHandler() );
+
+ presenceHandler->UpdateXdmSettingsL();
+ }
+ }
}
break;
--- a/voipplugins/sipconnectionprovider/src/scpvoiphandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/sipconnectionprovider/src/scpvoiphandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -17,7 +17,7 @@
#include <e32property.h>
-#include <NetworkHandlingDomainPSKeys.h>
+#include <networkhandlingdomainpskeys.h>
#include <spdefinitions.h>
#include "scpvoiphandler.h"
#include "scpprofilehandler.h"
--- a/voipplugins/voipadapters/dmvoipadapter/group/nsmldmvoipadapter.mmp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/dmvoipadapter/group/nsmldmvoipadapter.mmp Wed Mar 31 21:20:05 2010 +0300
@@ -55,6 +55,8 @@
LIBRARY cone.lib
LIBRARY nsmldmiapmatcher.lib
LIBRARY serviceprovidersettings.lib
+LIBRARY presencesettingsapi.lib
+LIBRARY nsmldmclientserverutils.lib
LIBRARY ipapputils.lib
LIBRARY featmgr.lib
LIBRARY vimpstsettings.lib // For setting IM tone.
--- a/voipplugins/voipadapters/dmvoipadapter/inc/nsmldmvoipadapter.h Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/dmvoipadapter/inc/nsmldmvoipadapter.h Wed Mar 31 21:20:05 2010 +0300
@@ -28,6 +28,7 @@
const TUint KWlanMacAddressLength = 50;
const TUint KPhoneModelLength = 20;
const TInt KMaxUriLength = 64;
+const TInt KMaxDebugPrintLength = 256;
// CLASS DECLARATION
class CRCSEProfileRegistry;
@@ -491,7 +492,15 @@
* @return Presence profile ID.
*/
TUint32 PresenceIdL( const TDesC8& aObject ) const;
-
+
+ /**
+ * Checks if Presence Settings ID is valid.
+ * @since S60 3.2
+ * @param aSetId Presence Settings ID.
+ * @return ETrue if settings exists, EFalse if not.
+ */
+ TBool IsPresIDValidL( TUint32 aSetId ) const;
+
/**
* Get SNAP ID.
* @since S60 3.2.
--- a/voipplugins/voipadapters/dmvoipadapter/src/nsmldmvoipadapter.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/dmvoipadapter/src/nsmldmvoipadapter.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -38,8 +38,11 @@
#include <spproperty.h> // For Service Provider Settings.
#include <featmgr.h>
#include <nsmldmiapmatcher.h> // For fetching IAP.
+#include <nsmldmuri.h> // for parsing uris
#include <pathinfo.h> // For getting phone rom root path.
#include <cvimpstsettingsstore.h> // For IM tone path
+#include <pressettingsset.h> // for checking if presence settings is valid
+#include <pressettingsapi.h> // for checking if presence settings is valid
#include "nsmldmvoipadapter.h"
#include "cdmvoipspsettings.h"
@@ -4357,10 +4360,12 @@
sipProfReg->SaveL( *sipManProf );
uahArray->Reset();
// uahArray, sipManProf
- CleanupStack::PopAndDestroy( 2, sipManProf ); // CS:2
+ CleanupStack::PopAndDestroy( uahArray ); // CS:3
+ CleanupStack::PopAndDestroy( sipManProf ); // CS:2
}// if
// sipProfReg, sipRegObs
- CleanupStack::PopAndDestroy( 2, sipRegObs ); // CS:0
+ CleanupStack::PopAndDestroy( sipProfReg ); // CS:1
+ CleanupStack::PopAndDestroy( sipRegObs ); // CS:0
sipProf = NULL;
}// if
}// for
@@ -4812,7 +4817,8 @@
err = spSettings->UpdateEntryL( *spEntry );
// property, spEntry
- CleanupStack::PopAndDestroy( 2, spEntry ); // CS:1
+ CleanupStack::PopAndDestroy( property ); // CS:2
+ CleanupStack::PopAndDestroy( spEntry ); // CS:1
} // for
CleanupStack::PopAndDestroy( spSettings ); // CS:0
iSPSettings.ResetAndDestroy();
@@ -5037,7 +5043,8 @@
childList->Des().Copy( RemoveLastURISeg ( childList->Des() ) );
}
// childList, result
- CleanupStack::PopAndDestroy( 2, result ); //childList
+ CleanupStack::PopAndDestroy( childList ); // CS:1
+ CleanupStack::PopAndDestroy( result ); // CS:0
result = NULL;
childList = NULL;
DBG_PRINT("CNSmlDmVoIPAdapter::GetSipIdL() : end");
@@ -5131,7 +5138,8 @@
childList->Des().Copy( RemoveLastURISeg ( childList->Des() ) );
}
// childList, result
- CleanupStack::PopAndDestroy( 2, result ); //childList
+ CleanupStack::PopAndDestroy( childList ); // CS:1
+ CleanupStack::PopAndDestroy( result ); // CS:0
result = NULL;
childList = NULL;
DBG_PRINT("CNSmlDmVoIPAdapter::GetSccpIdL() : end");
@@ -5371,16 +5379,19 @@
{
aObject.Copy( uri->Des() );
// luid, uri
- CleanupStack::PopAndDestroy( 2, uri ); // CS:2
+ CleanupStack::PopAndDestroy( luid ); // CS:3
+ CleanupStack::PopAndDestroy( uri ); // CS:2
break;
}
// luid, uri
- CleanupStack::PopAndDestroy( 2, uri ); // CS:2
+ CleanupStack::PopAndDestroy( luid ); // CS:3
+ CleanupStack::PopAndDestroy( uri ); // CS:2
childList->Des().Copy( RemoveLastURISeg( childList->Des() ) );
}
// childList, result
- CleanupStack::PopAndDestroy( 2, result ); // CS:0
+ CleanupStack::PopAndDestroy( childList ); // CS:1
+ CleanupStack::PopAndDestroy( result ); // CS:0
DBG_PRINT("CNSmlDmVoIPAdapter::GetNatFwUriL : end");
return errorStatus;
}
@@ -5431,7 +5442,8 @@
found = ETrue;
}
// uri8, iapMatch
- CleanupStack::PopAndDestroy( 2, iapMatch ); // CS:0
+ CleanupStack::PopAndDestroy( uri8 ); // CS:1
+ CleanupStack::PopAndDestroy( iapMatch ); // CS:0
DBG_PRINT("CNSmlDmVoIPAdapter::GetConRefL() : end");
if ( !found )
{
@@ -5509,15 +5521,18 @@
{
aObject.Copy( uri->Des() );
// luid, uri
- CleanupStack::PopAndDestroy( 2, uri ); // CS:2
+ CleanupStack::PopAndDestroy( luid ); // CS:3
+ CleanupStack::PopAndDestroy( uri ); // CS:2
break;
}
childList->Des().Copy( RemoveLastURISeg( childList->Des() ) );
// luid, uri
- CleanupStack::PopAndDestroy( 2, uri ); // CS:2
+ CleanupStack::PopAndDestroy( luid ); // CS:3
+ CleanupStack::PopAndDestroy( uri ); // CS:2
}
// childList, result
- CleanupStack::PopAndDestroy( 2, result ); // CS:0
+ CleanupStack::PopAndDestroy( childList ); // CS:1
+ CleanupStack::PopAndDestroy( result ); // CS:0
DBG_PRINT("CNSmlDmVoIPAdapter::GetPresenceUriL : end");
return errorStatus;
}
@@ -5529,22 +5544,61 @@
//
TUint32 CNSmlDmVoIPAdapter::PresenceIdL( const TDesC8& aObject ) const
{
- DBG_PRINT("CNSmlDmVoIPAdapter::PresenceIdL : begin");
+#ifdef _DEBUG
+ TBuf<KMaxDebugPrintLength> object;
+ object.Copy( aObject );
+ DBG_PRINT2("CNSmlDmVoIPAdapter::PresenceIdL : begin uri: %S", &object );
+#endif
__ASSERT_ALWAYS( iDmCallback != NULL, User::Leave( KErrArgument ) );
-
- HBufC8* luid = HBufC8::NewLC( KMaxUriLength ); // CS:1
- luid->Des().Copy( iDmCallback->GetLuidAllocL( aObject )->Des() );
- if ( luid->Des().Length() )
+ TPtrC8 uri = RemoveDotSlash( aObject );
+
+ HBufC8* luid = iDmCallback->GetLuidAllocL( uri );
+ CleanupStack::PushL( luid ); //CS:1
+
+ // check whether above found id is valid or not
+ TUint32 profileId;
+ if ( luid->Length() == KErrNone )
{
- TUint32 profileId = DesToTUint( LastURISeg( luid->Des() ) );
+ //try to find it another way
+ if( NSmlDmURI::NumOfURISegs( uri ) > 1 )
+ {
+ TPtrC8 idSegment = NSmlDmURI::URISeg( uri, 2 );
+ TBuf<KMaxDebugPrintLength> tempSegment;
+ tempSegment.Copy( idSegment );
+ DBG_PRINT2("CNSmlDmVoIPAdapter::PresenceIdL - idSegment:%S", &tempSegment );
+ profileId = DesToTUint(idSegment);
+ if(!IsPresIDValidL(profileId))
+ {
+ CleanupStack::PopAndDestroy( luid ); // CS:0
+ DBG_PRINT("CNSmlDmVoIPAdapter::PresenceIdL : ID not valid - return KErrNone");
+ return KErrNone;
+ }
+ CleanupStack::PopAndDestroy( luid ); // CS:0
+ DBG_PRINT2("CNSmlDmVoIPAdapter::PresenceIdL - settingsId found local way:%d", profileId);
+ return profileId;
+ }
CleanupStack::PopAndDestroy( luid ); // CS:0
- DBG_PRINT("CNSmlDmVoIPAdapter::PresenceIdL : end");
- return profileId;
- }
+ DBG_PRINT("CNSmlDmVoIPAdapter::PresenceIdL : ID not valid, too short uri");
+ return KErrNone;
+ }
+ profileId = DesToTUint( *luid );
CleanupStack::PopAndDestroy( luid ); // CS:0
- DBG_PRINT("CNSmlDmVoIPAdapter::PresenceIdL : end");
- return KErrNone;
+ DBG_PRINT2("CNSmlDmVoIPAdapter::PresenceIdL : return profleId: %d", profileId );
+ return profileId;
+ }
+
+// -----------------------------------------------------------------------------
+// CPresenceDMAdapter::IsPresIDValidL
+// -----------------------------------------------------------------------------
+//
+TBool CNSmlDmVoIPAdapter::IsPresIDValidL( TUint32 aSetId ) const
+ {
+ TPresSettingsSet tempSet;
+ if ((PresSettingsApi::SettingsSetL( (TInt)aSetId,tempSet)) == KErrNone)
+ return ETrue;
+ DBG_PRINT2(" CNSmlDmVoIPAdapter::IsPresIDValidL - Invalid settings : %d", aSetId );
+ return EFalse;
}
// ---------------------------------------------------------------------------
@@ -5620,15 +5674,18 @@
{
aObject.Copy( uri->Des() );
// luid, uri
- CleanupStack::PopAndDestroy( 2, uri ); // CS:2
+ CleanupStack::PopAndDestroy( luid ); // CS:3
+ CleanupStack::PopAndDestroy( uri ); // CS:2
break;
}
childList->Des().Copy( RemoveLastURISeg( childList->Des() ) );
// luid, uri
- CleanupStack::PopAndDestroy( 2, uri ); // CS:2
+ CleanupStack::PopAndDestroy( luid ); // CS:3
+ CleanupStack::PopAndDestroy( uri ); // CS:2
}
// childList, result
- CleanupStack::PopAndDestroy( 2, result ); // CS:0
+ CleanupStack::PopAndDestroy( childList ); // CS:1
+ CleanupStack::PopAndDestroy( result ); // CS:0
DBG_PRINT( "CNSmlDmVoIPAdapter::GetSnapUriL - end" );
return status;
}
--- a/voipplugins/voipadapters/voipxmlprovisioning/provisioningappui/Inc/VoIPProvisioningAppUi.h Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/provisioningappui/Inc/VoIPProvisioningAppUi.h Wed Mar 31 21:20:05 2010 +0300
@@ -27,7 +27,7 @@
// INCLUDES
#include <aknappui.h>
-#include <DownloadMgrClient.h>
+#include <downloadmgrclient.h>
class CAknWaitDialog;
--- a/voipplugins/voipadapters/voipxmlprovisioning/provisioningappui/Inc/VoIPProvisioningDocument.h Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/provisioningappui/Inc/VoIPProvisioningDocument.h Wed Mar 31 21:20:05 2010 +0300
@@ -26,7 +26,7 @@
#endif
// INCLUDES
-#include <akndoc.h>
+#include <AknDoc.h>
// FORWARD DECLARATIONS
class CEikAppUi;
--- a/voipplugins/voipadapters/voipxmlprovisioning/provisioningappui/Src/VoIPProvisioningAppUi.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/provisioningappui/Src/VoIPProvisioningAppUi.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -17,20 +17,20 @@
// INCLUDES
-#include <EIKDOC.H>
-#include <stringloader.h>
+#include <eikdoc.h>
+#include <StringLoader.h>
#include <AknQueryDialog.h>
#include <VoIPProvisioningApp.rsg>
#include <aknnotewrappers.h>
#include <apgcli.h> // RApaLsSession
#include <bautils.h>
-#include <xspviewservices.h>
-#include <BrowserUiSDKCRKeys.h>
+#include <xSPViewServices.h>
+#include <browseruisdkcrkeys.h>
#include <pathinfo.h>
-#include <DriveInfo.h>
+#include <driveinfo.h>
#include <zipfile.h>
#include <zipfilememberinputstream.h>
-#include <aknwaitdialog.h>
+#include <AknWaitDialog.h>
#include "voipxmlparser.h"
#include "VoIPProvisioningAppUi.h"
--- a/voipplugins/voipadapters/voipxmlprovisioning/provisioningappui/group/VoIPProvisioningApp.mmp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/provisioningappui/group/VoIPProvisioningApp.mmp Wed Mar 31 21:20:05 2010 +0300
@@ -47,7 +47,7 @@
END
USERINCLUDE .
-USERINCLUDE ../inc
+USERINCLUDE ../Inc
USERINCLUDE ../../voipxmlprocessor/inc
APP_LAYER_SYSTEMINCLUDE
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/inc/voipxmlparser.h Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/inc/voipxmlparser.h Wed Mar 31 21:20:05 2010 +0300
@@ -19,9 +19,9 @@
#ifndef VOIPXMLPARSER_H
#define VOIPXMLPARSER_H
-#include <GMXMLParser.h>
-#include <GMXMLElement.h>
-#include <GMXMLNode.h>
+#include <gmxmlparser.h>
+#include <gmxmlelement.h>
+#include <gmxmlnode.h>
#include "voipxmlparamhandler.h"
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/rd-key.pem Mon Mar 15 12:39:55 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQDLRF+r1FGGkCwTrb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW4
-6Y+LWaA8HMlDdoHRB0FgASisYcFagwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh
-7W7Dt9F5FZij8F7/9Pi6+FhhxZFIf1DD+yry9D7+Sp+BgdNALe4XOpf25QIBAwKB
-gQCHgupyjYuvCsgNHn7PNtnvVxInrB5MQNoPli+O+uNJWUK/Q+57Rl+yO8AoEzDX
-pFaLWiuVVhsdloDnAgabT/FXzYncs6uOHyEUV+dSXb78vtLPJqAX+Fg2i3hOXreB
-yskcZ13/OsKVOu5wgrJkx2baZufkqMwOSytf5y9nwjEIKwJBAP+inobagVNrN62j
-KQva3cC+UN/6XnKdTc0CA6bHyLOaJoH1xiMwG/VS2PGjHI0tiSMNtLn/QPpHJ003
-iabGhdUCQQDLjp/9UjFT6K6CF66Chqf30pZXhx+GTSQZmv/gvZiMly7X9fX9BGX3
-2MbJohBC4yI21XKTbisWywkF73Hwh+TRAkEAqmxprzxWN5zPyRdwspHpKymLP/w+
-9xOJM1atGdqFzRFvAU6EF3Vn+OHl9my9s3OwwgkjJqorUYTE3iUGby8D4wJBAIe0
-aqjhdjfwdFa6dFcEb/qMZDpaFQQzbWZnVUB+ZbMPdI/5TqitmU/l2dvBYCyXbCSO
-TGJJcg8yBgP09qBamIsCQFL7j1tM0XPVQJQ89WpKCld7O9ORxRGVj1eG0tWijrH8
-mGbYh8SGCVoWV3vrKSS8GBrFVgQnqUaHuEdtM7tpCAQ=
------END RSA PRIVATE KEY-----
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/rd.cer Mon Mar 15 12:39:55 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICzDCCAjWgAwIBAgIBADANBgkqhkiG9w0BAQUFADArMRAwDgYDVQQKEwdSRCBD
-ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZTAeFw0wNDExMTUxMjQyMDZaFw0z
-NzA5MjMxMjQyMDZaMCsxEDAOBgNVBAoTB1JEIENlcnQxFzAVBgNVBAMTDlJEIENl
-cnRpZmljYXRlMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDLRF+r1FGGkCwT
-rb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW46Y+LWaA8HMlDdoHRB0FgASisYcFa
-gwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh7W7Dt9F5FZij8F7/9Pi6+FhhxZFI
-f1DD+yry9D7+Sp+BgdNALe4XOpf25QIBA6OCAQAwgf0wDAYDVR0TBAUwAwEB/zAL
-BgNVHQ8EBAMCAoQwHQYDVR0OBBYEFFi/kuGzxhVpjGxe9ZwlxC3fH9jFMFMGA1Ud
-IwRMMEqAFFi/kuGzxhVpjGxe9ZwlxC3fH9jFoS+kLTArMRAwDgYDVQQKEwdSRCBD
-ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZYIBADBsBgNVHSAEZTBjMGEGBFUd
-IAAwWTATBggrBgEFBQcCARYHaHR0cDovLzBCBggrBgEFBQcCAjA2GjRGb3IgUiZE
-IHVzYWdlIG9ubHkuIFRoaXMgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWQuMA0G
-CSqGSIb3DQEBBQUAA4GBAHGB4RQMAgBdeT2hxfOr6f2nA/dZm+M5yX5daUtZnET9
-Ed0A9sazLawfN2G1KFQT9kxEParAyoAkpbMAsRrnRz/9cM3OHgFm/NiKRnf50DpT
-7oCx0I/65mVD2kt+xXE62/Ii5KPnTufIkPi2uLvURCia1tTS8JmJ8dtxDGyQt8BR
------END CERTIFICATE-----
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlparser.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlparser.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -17,11 +17,8 @@
#include <e32base.h>
-#include <GMXMLParser.h>
-#include <GMXMLDocument.h>
-#include <GMXMLNode.h>
-#include <GMXMLElement.h>
-#include <GMXMLText.h>
+#include <gmxmldocument.h>
+#include <gmxmltext.h>
#include <e32cmn.h>
#include <e32def.h>
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlpresencehandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlpresencehandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -22,8 +22,8 @@
#include <pressettingsset.h>
#include <sysutil.h>
#include <pathinfo.h>
-#include <Authority16.h>
-#include <stringloader.h>
+#include <authority16.h>
+#include <StringLoader.h>
#include <escapeutils.h>
#include "voipxmlutils.h"
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlsiphandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlsiphandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -23,8 +23,8 @@
#include <sysutil.h>
#include <wlaninternalpskeys.h>
#include <pathinfo.h>
-#include <Authority16.h>
-#include <stringloader.h>
+#include <authority16.h>
+#include <StringLoader.h>
#include <escapeutils.h>
#include "voipxmlutils.h"
--- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlxdmhandler.cpp Mon Mar 15 12:39:55 2010 +0200
+++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmlxdmhandler.cpp Wed Mar 31 21:20:05 2010 +0300
@@ -18,12 +18,12 @@
#include <e32cmn.h>
#include <coecntrl.h>
-#include <xdmsettingsapi.h>
+#include <XdmSettingsApi.h>
#include <XdmSettingsCollection.h>
#include <sysutil.h>
#include <pathinfo.h>
-#include <Authority16.h>
-#include <stringloader.h>
+#include <authority16.h>
+#include <StringLoader.h>
#include <escapeutils.h>
#include "voipxmlutils.h"