--- a/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -20,6 +20,7 @@
#include "../ipappprotocols_plat/group/bld.inf"
#include "../rtp/group/bld.inf"
+#include "../realtimenetprots/rtp/group/bld.inf"
#include "../realtimenetprots/sipfw/Group/bld.inf"
#include "../sipplugins/group/bld.inf"
--- a/realtimenetprots/rtp/cfrtp/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/rtp/cfrtp/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -27,7 +27,7 @@
../inc/rtp_proto_id.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(rtp_proto_id.h)
#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
../inc/rtp_subconparams.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(rtp_subconparams.h)
-./cfrtp.iby /epoc32/rom/include/cfrtp.iby
+./cfrtp.iby CORE_MW_LAYER_IBY_EXPORT_PATH(cfrtp.iby)
PRJ_MMPFILES
cfrtp.mmp
--- a/realtimenetprots/rtp/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/rtp/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -25,10 +25,10 @@
PRJ_EXPORTS
-./rtp.iby /epoc32/rom/include/rtp.iby
+./rtp.iby CORE_MW_LAYER_IBY_EXPORT_PATH(rtp.iby)
PRJ_TESTEXPORTS
-./te_rtp.iby /epoc32/rom/include/te_rtp.iby
+./te_rtp.iby /epoc32/rom/include/te_rtp.iby
./rtptest.xml z:/testdata/configs/rtp/rtptest.xml
--- a/realtimenetprots/rtp/rtpcore/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/rtp/rtpcore/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -19,7 +19,7 @@
*/
PRJ_EXPORTS
-./rtpcore.iby /epoc32/rom/include/rtpcore.iby
+./rtpcore.iby CORE_MW_LAYER_IBY_EXPORT_PATH(rtpcore.iby)
PRJ_MMPFILES
rtpcore.mmp
--- a/realtimenetprots/rtp/shimrtp/eabi/rtpmu.def Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/rtp/shimrtp/eabi/rtpmu.def Thu May 27 13:13:56 2010 +0300
@@ -116,4 +116,5 @@
_ZN20RRtpSession_Internal36SetPrePostProcessingRegisterCallbackEP26MPrePostProcessingCallback @ 115 NONAME
_ZN20RRtpSession_Internal5OpenLER11RSocketServR9TSockAddrS3_iR14RSubConnectioniRK6TDesC8 @ 116 NONAME
_ZN14RRtpSendPacket5CloseEv @ 117 NONAME
+ _ZNK11RRtcpRRItem10SenderSSRCEv @ 118 NONAME
--- a/realtimenetprots/rtp/shimrtp/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/rtp/shimrtp/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -21,7 +21,7 @@
PRJ_EXPORTS
-./shimrtp.iby /epoc32/rom/include/shimrtp.iby
+./shimrtp.iby CORE_MW_LAYER_IBY_EXPORT_PATH(shimrtp.iby)
../inc/rtp.h SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(rtp.h)
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
../inc/rtpsession_internal.h SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(rtpsession_internal.h)
--- a/realtimenetprots/rtp/shimrtp/src/rtp/rtcp.cpp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/rtp/shimrtp/src/rtp/rtcp.cpp Thu May 27 13:13:56 2010 +0300
@@ -70,6 +70,12 @@
return iPtr->dlsr;
}
+EXPORT_C TUint RRtcpRRItem::SenderSSRC() const
+ {
+ __RTP_LOG(_L("RRtcpSRItem::SenderSSRC() ... "));
+ return AboutSSRC();
+ }
+
/******/
EXPORT_C RRtcpRRPart::RRtcpRRPart(TRtcpRRPart& aRR) :iRRPart(aRR)
--- a/realtimenetprots/rtp/shimrtp/src/stubs/rtcp_stub.cpp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/rtp/shimrtp/src/stubs/rtcp_stub.cpp Thu May 27 13:13:56 2010 +0300
@@ -70,6 +70,11 @@
return 0;
}
+EXPORT_C TUint RRtcpRRItem::SenderSSRC() const
+ {
+ ASSERT(0);
+ return 0;
+ }
/******/
EXPORT_C RRtcpRRPart::RRtcpRRPart(TRtcpRRPart& aRR) :iRRPart(aRR)
Binary file realtimenetprots/sipfw/Data/101F413C.txt has changed
Binary file realtimenetprots/sipfw/Data/101f413c.cre has changed
--- a/realtimenetprots/sipfw/Group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/Group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -35,8 +35,6 @@
../Data/101F413C.txt z:/private/10202be9/101f413c.txt
// ProfileAgent's cenrep configuration file for expiry duration
../Data/2001F889.txt z:/private/10202be9/2001f889.txt
-// ProfileAgent's default cre file
-../Data/101f413c.cre z:/private/10202be9/101f413c.cre
// ConfML files
../conf/sipframework.confml MW_LAYER_EXPORTS_CONFML(sipframework.confml)
@@ -46,8 +44,8 @@
../conf/sipframework_2001f889.crml MW_LAYER_EXPORTS_CRML(sipframework_2001f889.crml)
// SIP iby-files
-../rom/sipsw.iby /epoc32/rom/include/sipsw.iby
-../rom/siph2lanbearermonitor.iby /epoc32/rom/include/siph2lanbearermonitor.iby
+../rom/sipsw.iby CORE_MW_LAYER_IBY_EXPORT_PATH(sipsw.iby)
+../rom/siph2lanbearermonitor.iby CORE_MW_LAYER_IBY_EXPORT_PATH(siph2lanbearermonitor.iby)
// SDP Codec API
../SDP/api/SdpAttributeField.h SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(sdpattributefield.h)
--- a/realtimenetprots/sipfw/ProfileAgent/Group/sipietfagent.mmp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Group/sipietfagent.mmp Thu May 27 13:13:56 2010 +0300
@@ -60,6 +60,6 @@
VENDORID 0x70000001
-CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData
+CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData NetworkControl
SMPSAFE
--- a/realtimenetprots/sipfw/ProfileAgent/Group/sipimsagent.mmp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Group/sipimsagent.mmp Thu May 27 13:13:56 2010 +0300
@@ -83,9 +83,10 @@
LIBRARY commsdat.lib
LIBRARY flogger.lib
LIBRARY efsrv.lib
+LIBRARY satclient.lib
VENDORID 0x70000001
-CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData
+CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData NetworkControl
SMPSAFE
--- a/realtimenetprots/sipfw/ProfileAgent/Group/sipprofilefsm.mmp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Group/sipprofilefsm.mmp Thu May 27 13:13:56 2010 +0300
@@ -58,6 +58,6 @@
VENDORID 0x70000001
-CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData
+CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData NetworkControl
SMPSAFE
--- a/realtimenetprots/sipfw/ProfileAgent/Group/sipprofileserver.mmp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Group/sipprofileserver.mmp Thu May 27 13:13:56 2010 +0300
@@ -97,7 +97,7 @@
VENDORID 0x70000001
-CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData
+CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData NetworkControl
// MACRO PLAT_SEC_TEST
--- a/realtimenetprots/sipfw/ProfileAgent/Group/sipproxyrsv.mmp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Group/sipproxyrsv.mmp Thu May 27 13:13:56 2010 +0300
@@ -43,6 +43,6 @@
VENDORID 0x70000001
-CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData
+CAPABILITY ProtServ NetworkServices ReadDeviceData WriteDeviceData NetworkControl
SMPSAFE
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Inc/SipProfileCacheItem.h Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Inc/SipProfileCacheItem.h Thu May 27 13:13:56 2010 +0300
@@ -290,6 +290,18 @@
*/
TBool IsShutdownInitiated() const;
+ /**
+ * System is about to go in Offline Mode
+ */
+ void OfflineInitiated(TBool aOfflineInitiated);
+
+ /**
+ * Tells if system is about to be Offline.
+ * @return ETrue if system Offline has been initiated
+ * EFalse otherwise
+ */
+ TBool IsOfflineInitiated() const;
+
/**
* System is about to be shut down.
*/
@@ -554,11 +566,7 @@
* @param aStatus Status of the profile
*/
void HandleProfileError(TInt aError,
- CSIPConcreteProfile& aProfile);
- /**
- * Function resets the boolean variable iIsShutdownInitiated
- */
- void ResetShutdownvariable();
+ CSIPConcreteProfile& aProfile);
private:
@@ -647,6 +655,9 @@
// ETrue if system shutdown has been initiated
TBool iIsShutdownInitiated;
+ //ETrue if system offline has been initiated
+ TBool iIsOfflineInitiated;
+
// ETrue if Rfs has been initiated
TBool iIsRfsInprogress;
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Inc/SipProfileServerCore.h Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Inc/SipProfileServerCore.h Thu May 27 13:13:56 2010 +0300
@@ -493,7 +493,7 @@
*Starts timer of type CDeltaTimer,
*which callback is ConnectionCloseTimerExpired function
*/
- void StartConnectionCloseTimer();
+ void StartConnectionCloseTimer(TInt aValue);
/**
* A callback for CDeltaTimer
@@ -770,9 +770,23 @@
*/
TBool CheckIapSettings(TUint32 aProfileId);
+ /**
+ * Issues the change of APN to PrimaryAPN
+ */
void UsePrimaryApn(TUint32 aIapId);
-
+
+ /**
+ * Issues the change of APN to SecondaryAPN
+ */
void UseBackupApn( TUint32 aIapId, TBool aFatalFailure = ETrue );
+
+ /**
+ * Compares the two plugin typr info
+ * @returns ETrue if the match completely
+ * EFalse otherwise
+ */
+ static TBool Compare(const TSIPProfileTypeInfo& first,
+ const TSIPProfileTypeInfo& second);
private: // Data
@@ -821,8 +835,6 @@
//ApnManager
CSIPApnManager* iApnManager; // iBackupApnSettings;
RArray<TStoreSwitchEnabledProfile> iWaitForApnSettings;
-
- TBool iOfflineEventReceived;
TBool iFeatMgrInitialized;
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp Thu May 27 13:13:56 2010 +0300
@@ -87,6 +87,7 @@
iIsVpnInUse = EFalse;
iInitialApnSelected = EFalse;
iApnSwitchEnabled = EFalse;
+ iIsOfflineInitiated = EFalse;
iDeltaTimerEntry.Set(iDeltaTimerCallBack);
}
@@ -1357,14 +1358,6 @@
iServerCore.SendErrorEvent(
*this, CSIPConcreteProfile::ERegistrationInProgress, KErrCancel );
}
-// -----------------------------------------------------------------------------
-// CSIPProfileCacheItem::ResetShutdownvariable
-// -----------------------------------------------------------------------------
-//
-void CSIPProfileCacheItem::ResetShutdownvariable()
- {
- iIsShutdownInitiated = EFalse;
- }
// -----------------------------------------------------------------------------
// CSIPProfileCacheItem::DefaultSNAPL
@@ -1384,3 +1377,28 @@
PROFILE_DEBUG3("CSIPProfileCacheItem::DefaultSNAPL with Value: ", aSnapId)
CleanupStack::PopAndDestroy();
}
+
+// -----------------------------------------------------------------------------
+// CSIPProfileCacheItem::OfflineInitiated
+// -----------------------------------------------------------------------------
+//
+void CSIPProfileCacheItem::OfflineInitiated(TBool aOfflineInitiated)
+ {
+ if(aOfflineInitiated)
+ {
+ iIsOfflineInitiated = ETrue;
+ iCurrentState->ShutdownInitiated(*this);
+ }
+ else
+ iIsOfflineInitiated = EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CSIPProfileCacheItem::IsOfflineInitiated
+// -----------------------------------------------------------------------------
+//
+TBool CSIPProfileCacheItem::IsOfflineInitiated() const
+ {
+ return iIsOfflineInitiated;
+ }
+
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp Thu May 27 13:13:56 2010 +0300
@@ -57,6 +57,7 @@
const TInt KMicroSecInSec = 1000000;
const TInt KIdleTimer = 2;
+const TInt KOfflineTimer = 5;
// ============================ MEMBER FUNCTIONS ===============================
@@ -171,8 +172,6 @@
iNotify = CSIPProfileStorageSecureBackup::NewL(this);
iServer = CSIPProfileCSServer::NewL(*this);
-
- iOfflineEventReceived = EFalse;
PROFILE_DEBUG1("ProfileServer started")
}
@@ -291,8 +290,11 @@
}
}
+
+ //For Profiles which were in RegInProgress and has moved to Registered State,
+ //needs to be deregistered if Offline or RFs or Vpn if in Use has been triggered.
TBool eventCompleted = EFalse;
- if(item && (item->IsRfsInprogress() || iOfflineEventReceived ||
+ if(item && (item->IsRfsInprogress() || item->IsOfflineInitiated() ||
(FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn )&&
item->IsVpnInUse())))
{
@@ -305,19 +307,30 @@
{
count--;
}
- else if (status == CSIPConcreteProfile::ERegistered )
+ else if (status == CSIPConcreteProfile::ERegistered)
{
- iProfileCache[i]->ShutdownInitiated();
- }
- }
+ if(item->IsOfflineInitiated())
+ {
+ //Don't do anything. If the ProfileStatusEvent = Registered in Offline, it
+ //will only be for WLAN so don't deregister it. If ProfileStatusEvent = Deregistered
+ //means application triggered deregistration so ProfileAgent should not attempt registering it.
+ }
+ else
+ {
+ iProfileCache[i]->ShutdownInitiated();
+ }
+ } //end if unregistered
if ( !count )
eventCompleted = ETrue;
- }
+ } //end for
+ } //end outer if
+
+
if(eventCompleted)
{
if (item->IsRfsInprogress())
- StartConnectionCloseTimer();
- else if(iOfflineEventReceived)
+ StartConnectionCloseTimer(KIdleTimer);
+ else if(item->IsOfflineInitiated() )
ConfirmSystemstateMonitor(CSipSystemStateMonitor::ESystemState);
else if((FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn )&&
item->IsVpnInUse()))
@@ -444,50 +457,56 @@
{
PROFILE_DEBUG3("CSIPProfileServerCore::SystemVariableUpdated System State changed to value", aValue)
- //If the SystemState is Offline, turn the boolean variable to true so that Profile-Server
- //can indicate System State monitor that event processing is completed, provided all the
- //profiles have got deregistered
- if (CSipSystemStateMonitor::ESystemOffline == aValue)
- iOfflineEventReceived = ETrue;
-
- if ( aVariable == CSipSystemStateMonitor::ESystemState &&
- (aValue == CSipSystemStateMonitor::ESystemShuttingDown ||
- aValue == CSipSystemStateMonitor::ESystemOffline
- ))
+ if ( aVariable == CSipSystemStateMonitor::ESystemState )
{
- TBool waitForDeregistration = EFalse;
- for (TInt i = 0; i < iProfileCache.Count(); i++)
- {
- iProfileCache[i]->ShutdownInitiated();
- CSIPConcreteProfile::TStatus status;
- iPluginDirector->State(status, iProfileCache[i]->UsedProfile());
- if(status != CSIPConcreteProfile::EUnregistered)
- waitForDeregistration = ETrue;
- }
- if(!waitForDeregistration)
- {
- ConfirmSystemstateMonitor(CSipSystemStateMonitor::ESystemState);
- }
- }
- //If the System State is Online, register all the profiles in always on mode
- else if(aVariable == CSipSystemStateMonitor::ESystemState &&
- aValue == CSipSystemStateMonitor::ESystemOnline)
- {
- iOfflineEventReceived = EFalse;
- for (TInt i = 0; i < iProfileCache.Count(); i++)
- {
- iProfileCache[i]->ResetShutdownvariable();
- CSIPProfileCacheItem* item = iProfileCache[i];
- if (iProfileCache[i]->IsReferred())
- {
- TRAPD(err, item->StartRegisterL(*iWaitForIAP, *iRegInProg, ETrue));
- if (err != KErrNone)
- {
- HandleAsyncError(*item,CSIPConcreteProfile::ERegistrationInProgress,err);
- }
- }
- }
- }
+ // If the System is Shutting down
+ if(aValue == CSipSystemStateMonitor::ESystemShuttingDown)
+ {
+ for (TInt i = 0; i < iProfileCache.Count(); i++)
+ {
+ iProfileCache[i]->ShutdownInitiated();
+ }
+ } //end if Shutdown
+
+ //If the System receives Offline event
+ if(aValue == CSipSystemStateMonitor::ESystemOffline)
+ {
+ StartConnectionCloseTimer(KOfflineTimer);
+ TBool waitForDeregistration = EFalse;
+ for (TInt i = 0; i < iProfileCache.Count(); i++)
+ {
+ iProfileCache[i]->OfflineInitiated(ETrue);
+ CSIPConcreteProfile::TStatus status;
+ iPluginDirector->State(status, iProfileCache[i]->UsedProfile());
+ if(status != CSIPConcreteProfile::EUnregistered)
+ waitForDeregistration = ETrue;
+ }
+ if(!waitForDeregistration)
+ {
+ ConfirmSystemstateMonitor(CSipSystemStateMonitor::ESystemState);
+ }
+ } //end if Offline
+
+ //If the System receives Online event
+ if(aValue == CSipSystemStateMonitor::ESystemOnline)
+ {
+ for (TInt i = 0; i < iProfileCache.Count(); i++)
+ {
+ CSIPProfileCacheItem* item = iProfileCache[i];
+ item->OfflineInitiated(EFalse);
+ CSIPConcreteProfile::TStatus status;
+ iPluginDirector->State(status, item->UsedProfile());
+ if (item->IsReferred() && status == CSIPConcreteProfile::EUnregistered)
+ {
+ TRAPD(err, item->StartRegisterL(*iWaitForIAP, *iRegInProg, ETrue));
+ if (err != KErrNone)
+ {
+ HandleAsyncError(*item,CSIPConcreteProfile::ERegistrationInProgress,err);
+ }
+ }
+ }
+ } //end if Online
+ } //end if SystemState
else if(aVariable == CSipSystemStateMonitor::ERfsState)
{
if(aValue == CSipSystemStateMonitor::ERfsStarted)
@@ -622,7 +641,12 @@
CImplementationInformation* ecomInfo = infoArray[i];
TSIPProfileTypeInfo info;
ConvertTypeInfoL(*ecomInfo, info);
- array.AppendL(info);
+ TIdentityRelation<TSIPProfileTypeInfo> identityRelation(CSIPProfileServerCore::Compare);
+ TInt alreadyExits = array.Find(info,identityRelation);
+ if(alreadyExits == KErrNotFound)
+ {
+ array.AppendL(info);
+ }
}
}
CleanupStack::Pop(&infoArray);
@@ -1067,7 +1091,15 @@
}
}
else
- User::LeaveIfError(KErrNotSupported);
+ {
+ // At this point the registration has failed fatally already and profile will be in
+ // unregistered state. Since we cann't do any regisrtation related activity and
+ // not to lose user's updated data we are doing this.
+ if(item->UsedProfile().Status() == CSIPConcreteProfile::EUnregistered)
+ {
+ item->ClearOldProfile();
+ }
+ }
}
else
{
@@ -2123,11 +2155,11 @@
// CSIPProfileServerCore::StartConnectionCloseTimer
// -----------------------------------------------------------------------------
//
-void CSIPProfileServerCore::StartConnectionCloseTimer()
+void CSIPProfileServerCore::StartConnectionCloseTimer(TInt aValue)
{
PROFILE_DEBUG1("CSIPProfileServerCore::StartConnectionCloseTimer")
iDeltaTimer->Remove(iDeltaTimerEntry);
- TTimeIntervalMicroSeconds32 interval(KMicroSecInSec * KIdleTimer);
+ TTimeIntervalMicroSeconds32 interval(KMicroSecInSec * aValue);
iDeltaTimer->Queue(interval, iDeltaTimerEntry);
}
@@ -2139,7 +2171,33 @@
{
PROFILE_DEBUG1("CSIPProfileServerCore::ConnectionCloseTimerExpired")
CSIPProfileServerCore* self = reinterpret_cast<CSIPProfileServerCore*>(aPtr);
- self->ConfirmSystemstateMonitor(CSipSystemStateMonitor::ERfsState);
+
+ TBool IsOffline = self->iProfileCache[0]->IsOfflineInitiated();
+ if(IsOffline)
+ {
+ self->ConfirmSystemstateMonitor(CSipSystemStateMonitor::ESystemState);
+ for (TInt i = 0; i < self->iProfileCache.Count(); i++)
+ {
+ CSIPProfileCacheItem* item = self->iProfileCache[i];
+ CSIPConcreteProfile::TStatus status;
+ self->iPluginDirector->State( status, self->iProfileCache[i]->UsedProfile() );
+ item->OfflineInitiated(EFalse);
+ if (item->IsReferred() && (!self->iApnManager->IsIapGPRSL(item->Profile().IapId()))
+ && status == CSIPConcreteProfile::EUnregistered)
+ {
+ TRAPD(err, item->StartRegisterL(*(self->iWaitForIAP), *(self->iRegInProg), ETrue));
+ if (err != KErrNone)
+ {
+ self->HandleAsyncError(*item,CSIPConcreteProfile::ERegistrationInProgress,err);
+ }
+ }
+ else
+ {}
+ } //end for
+ }//end Outer If
+ else
+ self->ConfirmSystemstateMonitor(CSipSystemStateMonitor::ERfsState);
+
return ETrue;
}
@@ -2149,9 +2207,8 @@
//
void CSIPProfileServerCore::ConfirmSystemstateMonitor(
CSipSystemStateMonitor::TSystemVariable aVariable)
- {
- iSystemStateMonitor->EventProcessingCompleted(
- aVariable, 0, *this);
+ {
+ iSystemStateMonitor->EventProcessingCompleted(aVariable, 0, *this);
}
// ----------------------------------------------------------------------------
@@ -2353,11 +2410,34 @@
}
// ----------------------------------------------------------------------------
+// CSIPProfileServerCore::Compare
+// ----------------------------------------------------------------------------
+//
+TBool CSIPProfileServerCore::Compare(const TSIPProfileTypeInfo& first,
+ const TSIPProfileTypeInfo& second)
+ {
+ TInt result = first.iSIPProfileName.Compare(second.iSIPProfileName);
+ return ( 0 == result && first.iSIPProfileClass == second.iSIPProfileClass);
+ }
+
+// ----------------------------------------------------------------------------
// CSIPProfileServerCore::IsUpdateAllowed
// ----------------------------------------------------------------------------
//
TBool CSIPProfileServerCore::IsUpdateAllowed( CSIPConcreteProfile *aProfile )
{
- PROFILE_DEBUG1("CSIPIMSProfileAgent::IsUpdateAllowed, enter")
- return !(iApnManager->IsFailed(aProfile->IapId()));
+ PROFILE_DEBUG1("CSIPProfileServerCore::IsUpdateAllowed, enter")
+ TBool allowed(ETrue);
+ CSIPProfileCacheItem* item = ProfileCacheItem(aProfile->Id());
+ if(item)
+ {
+ CSIPConcreteProfile& profile = item->LatestProfile();
+ TBool iapIdChange(profile.IapId()!=aProfile->IapId());
+ if(iapIdChange &&
+ (iApnManager->IsFailed(aProfile->IapId()) || iApnManager->IsFailed(profile.IapId())))
+ {
+ allowed = EFalse;
+ }
+ }
+ return allowed;
}
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileStateUnregistered.cpp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileStateUnregistered.cpp Thu May 27 13:13:56 2010 +0300
@@ -114,7 +114,7 @@
TBool isVpnInUse = (FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn )
&& aItem.IsVpnInUse());
- if ( aItem.IsReferred() && !aItem.IsShutdownInitiated() &&
+ if ( aItem.IsReferred() && !aItem.IsShutdownInitiated() && !aItem.IsOfflineInitiated() &&
!aItem.IsRfsInprogress() && !isVpnInUse)
{
aItem.ClearOldProfile();
--- a/realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTransport.cpp Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTransport.cpp Thu May 27 13:13:56 2010 +0300
@@ -610,7 +610,12 @@
// Sent-by is now set for the first time, must set the port too
if ( receivePort == 0 )
{
- receivePort = KDefaultSipPort;
+ //If the Transport in the outgoing request is TLS and port value = 0
+ //provide 5061 for TLS and 5060 for UDP/TCP
+ if(SIPStrings::StringF(SipStrConsts::ETLS) == viaHeader->Transport())
+ receivePort = KDefaultSipsPort;
+ else
+ receivePort = KDefaultSipPort;
}
}
if ( receivePort )
Binary file realtimenetprots/sipfw/conf/sipframework_101f413c.crml has changed
--- a/realtimenetprots/sipfw/rom/sipsw.iby Mon May 03 12:50:54 2010 +0300
+++ b/realtimenetprots/sipfw/rom/sipsw.iby Thu May 27 13:13:56 2010 +0300
@@ -77,7 +77,7 @@
ECOM_PLUGIN(siptls.dll,siptls.rsc)
-#ifdef SYMBIAN_EXCLUDE_IPSEC
+#ifndef __IPSEC
REM Feature IPSEC not included in this rom
#else
ECOM_PLUGIN(sipipsec.dll,sipipsec.rsc)
@@ -103,14 +103,13 @@
ECOM_PLUGIN(sipietfagnt.dll,sipietfagnt.rsc)
+#ifndef FF_EXCLUDE_STANDARD_IMSAGENT
ECOM_PLUGIN(sipimsagnt.dll,sipimsagnt.rsc)
+#endif
/* Resources - XML for secure profile backup*/
data=ZPRIVATE\101F413C\backup_registration.xml private\101F413C\backup_registration.xml
-// ProfileAgent's default cre file
-data=DATAZ_\private\10202be9\101f413c.cre private\10202be9\101f413c.cre
-
#endif /* SYMBIAN_EXCLUDE_SIP*/
#endif /* __SIPSW_IBY__ */
--- a/sipplugins/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/sipplugins/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -19,7 +19,6 @@
#include "../sippwlanplugin/group/bld.inf"
-#include "../sippsipsettingsui/group/bld.inf"
#include "../sippdevmgmtsipadapter/group/bld.inf"
#include "../sippsystemstatemonitor/group/bld.inf"
#include "../sippsipadapter/group/bld.inf"
--- a/sipproviderplugins/sipprovider/sipconnectionplugins/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/sipproviderplugins/sipprovider/sipconnectionplugins/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -26,7 +26,7 @@
../data/esock_sip.cmi z:/private/101f7988/esock_sip.cmi
-../group/sipproviders.iby /epoc32/rom/include/sipproviders.iby
+../group/sipproviders.iby CORE_MW_LAYER_IBY_EXPORT_PATH(sipproviders.iby)
PRJ_MMPFILES
sipproviders.mmp
--- a/sipproviderplugins/sipprovider/sipdummyprt/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/sipproviderplugins/sipprovider/sipdummyprt/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -21,13 +21,13 @@
*/
PRJ_EXPORTS
-../group/SIPDummyPRT.iby /epoc32/rom/include/sipdummyprt.iby
+../group/SIPDummyPRT.iby CORE_MW_LAYER_IBY_EXPORT_PATH(sipdummyprt.iby)
../data/sip.providers.esk z:/private/101f7989/esock/sip.providers.esk
#ifndef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-../group/siphlapi.iby /epoc32/rom/include/siphlapi.iby
+../group/siphlapi.iby CORE_MW_LAYER_IBY_EXPORT_PATH(siphlapi.iby)
../data/esock_sip.cmi z:/private/101f7988/esock_sip.cmi
#endif // SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
--- a/sipproviderplugins/sipprovider/sipstatemachine/group/bld.inf Mon May 03 12:50:54 2010 +0300
+++ b/sipproviderplugins/sipprovider/sipstatemachine/group/bld.inf Thu May 27 13:13:56 2010 +0300
@@ -25,5 +25,5 @@
SipStateMachine.mmp
PRJ_EXPORTS
-../group/SipStateMachine.iby /epoc32/rom/include/sipstatemachine.iby
+../group/SipStateMachine.iby CORE_MW_LAYER_IBY_EXPORT_PATH(sipstatemachine.iby)
../inc/siphlerr.h SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(siphlerr.h)
\ No newline at end of file