--- a/group/bld.inf Thu Jul 15 19:02:22 2010 +0300
+++ b/group/bld.inf Thu Aug 19 10:16:25 2010 +0300
@@ -20,7 +20,9 @@
#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"
+#include "../sipproviderplugins/sipprovider/group/bld.inf"
--- a/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/inc/sipalrmonitor.h Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/inc/sipalrmonitor.h Thu Aug 19 10:16:25 2010 +0300
@@ -64,48 +64,48 @@
* Starts to monitor IAP availability for the SNAP.
* The observer will be informed asynchronouysly
* when any IAP is available for the monitored SNAP.
- * @param aSnapId SNAP id
+ * @param aConfigData SNAP Data to identify the correct SNAP Monitor.
* @param aObserver observer to be informed when an IAP becomes available
*/
- void MonitorSnapL( TUint32 aSnapId,
- MSipAlrObserver& aObserver );
+ void MonitorSnapL( TSipSNAPConfigurationData & aConfigData,
+ MSipAlrObserver& aObserver);
/**
* Refreshes the IAP availability for the SNAP.
* Scans the available IAPs for the SNAP and informs all the observers
* if a better IAP than the current one is available.
- * @param aSnapId SNAP id
+ * @param aConfigData SNAP Data to identify the correct SNAP Monitor.
*/
- void RefreshIapAvailabilityL( TUint32 aSnapId );
+ void RefreshIapAvailabilityL( TSipSNAPConfigurationData & aConfigData );
/**
* Allows migration to a new IAP for the SNAP.
- * @param aSnapId SNAP id
+ * @param aConfigData SNAP Data to identify the correct SNAP Monitor.
* @return KErrNone on success, otherwise a system wide error code.
*/
- TInt AllowMigration( TUint32 aSnapId );
+ TInt AllowMigration( TSipSNAPConfigurationData & aConfigData );
/**
* Disallows migration to a new IAP for the SNAP.
- * @param aSnapId SNAP id
+ * @param aConfigData SNAP Data to identify the correct SNAP Monitor.
* @return KErrNone on success, otherwise a system wide error code.
*/
- TInt DisallowMigration( TUint32 aSnapId );
+ TInt DisallowMigration( TSipSNAPConfigurationData & aConfigData );
/**
* The migration has succeeded and the new IAP has been taken into use.
- * @param aSnapId SNAP id
+ * @param aConfigData SNAP Data to identify the correct SNAP Monitor.
* @return KErrNone on success, otherwise a system wide error code.
*/
- TInt NewIapAccepted( TUint32 aSnapId );
+ TInt NewIapAccepted( TSipSNAPConfigurationData & aConfigData );
/**
* The migration has failed and the new IAP was not taken into use.
- * @param aSnapId SNAP id
+ * @param aConfigData SNAP Data to identify the correct SNAP Monitor.
* @return KErrNone on success, otherwise a system wide error code.
*/
- TInt NewIapRejected( TUint32 aSnapId );
+ TInt NewIapRejected( TSipSNAPConfigurationData & aConfigData );
/**
* Frees all the resources reserved for the observer.
@@ -122,8 +122,9 @@
private: // New functions
- CSipAlrSnapMonitor* FindSnapMonitor( TUint32 aSnapId );
-
+ CSipAlrSnapMonitor* FindSnapMonitor( TSipSNAPConfigurationData & aConfigData);
+
+
private: // Data
// Used for monitoring SNAP availability
--- a/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/inc/sipalrobserver.h Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/inc/sipalrobserver.h Thu Aug 19 10:16:25 2010 +0300
@@ -82,4 +82,22 @@
};
+// CLASS DECLARATION
+/**
+* This is the class that encapsulates all snap specific data.
+*/
+
+class TSipSNAPConfigurationData
+ {
+public:
+
+ TSipSNAPConfigurationData(TUint32 aSnapId , TUint32 aBearerId)
+ {
+ iSnapId = aSnapId;
+ iBearerId = aBearerId;
+ };
+
+ TUint32 iSnapId;
+ TBool iBearerId;
+ };
#endif // MSIPALROBSERVER_H
--- a/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/inc/sipalrsnapmonitor.h Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/inc/sipalrsnapmonitor.h Thu Aug 19 10:16:25 2010 +0300
@@ -34,6 +34,7 @@
#include <e32base.h>
#include <in_sock.h>
#include <connpref.h>
+#include <extendedconnpref.h>
#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
#include <comms-infras/es_mobility_apiext.h>
@@ -56,10 +57,10 @@
public: // Constructors and destructor
static CSipAlrSnapMonitor* NewLC(
- TUint32 aSnapId,
+ TSipSNAPConfigurationData aSnapData,
MSipAlrObserver& aObserver,
RSocketServ& aSocketServer,
- CSipSystemStateMonitor& aSystemStateMonitor );
+ CSipSystemStateMonitor& aSystemStateMonitor);
~CSipAlrSnapMonitor();
@@ -108,7 +109,9 @@
void NewIapAccepted();
- void NewIapRejected();
+ void NewIapRejected();
+
+ TBool BearerId();
private: // New functions
@@ -134,9 +137,9 @@
private: // Constructors
CSipAlrSnapMonitor(
- TUint32 aSnapId,
+ TSipSNAPConfigurationData aSnapData,
RSocketServ& aSocketServer,
- CSipSystemStateMonitor& aSystemStateMonitor );
+ CSipSystemStateMonitor& aSystemStateMonitor);
void ConstructL(
MSipAlrObserver& aObserver );
@@ -152,7 +155,7 @@
private: // Data
- TUint32 iSnapId;
+ TSipSNAPConfigurationData iSnapData;
RSocketServ& iSocketServer;
CSipSystemStateMonitor& iSystemStateMonitor;
RConnection iConnection;
@@ -164,6 +167,8 @@
TBool iFirstStartHasSucceeded;
TBool iConnectionActive;
TBool iDying;
+ TConnPrefList iPrefList;
+ TExtendedConnPref iExtPrefs;
private: // For testing purposes
@@ -173,4 +178,4 @@
#endif
};
-#endif //CSIPALRSNAPMONITOR_H
\ No newline at end of file
+#endif //CSIPALRSNAPMONITOR_H
--- a/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -71,12 +71,12 @@
// CSipAlrMonitor::RefreshIapAvailabilityL
// -----------------------------------------------------------------------------
//
-void CSipAlrMonitor::RefreshIapAvailabilityL ( TUint32 aSnapId )
+void CSipAlrMonitor::RefreshIapAvailabilityL ( TSipSNAPConfigurationData & aConfigData )
{
PROFILE_DEBUG3( "CSipAlrMonitorImplementation::RefreshIapAvailabilityL",
- aSnapId )
+ aConfigData.iSnapId )
- CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId );
+ CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData );
if ( monitor )
{
monitor->RefreshL();
@@ -87,11 +87,11 @@
// CSipAlrMonitor::AllowMigration
// -----------------------------------------------------------------------------
//
-TInt CSipAlrMonitor::AllowMigration( TUint32 aSnapId )
+TInt CSipAlrMonitor::AllowMigration( TSipSNAPConfigurationData & aConfigData )
{
- PROFILE_DEBUG3("CSipAlrMonitor::AllowMigration, SnapId",aSnapId)
-
- CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId );
+ PROFILE_DEBUG3("CSipAlrMonitor::AllowMigration, SnapId",aConfigData.iSnapId)
+ PROFILE_DEBUG3("CSipAlrMonitor::AllowMigration, BearerFiltering",aConfigData.iBearerId)
+ CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData );
if ( monitor )
{
monitor->AllowMigration();
@@ -103,11 +103,11 @@
// CSipAlrMonitor::DisallowMigration
// -----------------------------------------------------------------------------
//
-TInt CSipAlrMonitor::DisallowMigration( TUint32 aSnapId )
+TInt CSipAlrMonitor::DisallowMigration( TSipSNAPConfigurationData& aConfigData )
{
- PROFILE_DEBUG3("CSipAlrMonitor::DisallowMigration, SnapId",aSnapId)
-
- CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId );
+ PROFILE_DEBUG3("CSipAlrMonitor::DisallowMigration, SnapId",aConfigData.iSnapId)
+ PROFILE_DEBUG3("CSipAlrMonitor::DisallowMigration, BearerFiltering",aConfigData.iBearerId)
+ CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData );
if ( monitor )
{
monitor->DisallowMigration();
@@ -120,11 +120,11 @@
// CSipAlrMonitor::NewIapAccepted
// -----------------------------------------------------------------------------
//
-TInt CSipAlrMonitor::NewIapAccepted( TUint32 aSnapId )
+TInt CSipAlrMonitor::NewIapAccepted( TSipSNAPConfigurationData & aConfigData)
{
- PROFILE_DEBUG3("CSipAlrMonitor::NewIapAccepted, SnapId",aSnapId)
+ PROFILE_DEBUG3("CSipAlrMonitor::NewIapAccepted, SnapId",aConfigData.iSnapId)
- CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId );
+ CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData );
if ( monitor )
{
monitor->NewIapAccepted();
@@ -137,11 +137,11 @@
// CSipAlrMonitor::NewIapRejected
// -----------------------------------------------------------------------------
//
-TInt CSipAlrMonitor::NewIapRejected( TUint32 aSnapId )
+TInt CSipAlrMonitor::NewIapRejected( TSipSNAPConfigurationData & aConfigData )
{
- PROFILE_DEBUG3( "CSipAlrMonitor::NewIapRejected, SnapId",aSnapId )
+ PROFILE_DEBUG3( "CSipAlrMonitor::NewIapRejected, SnapId",aConfigData.iSnapId )
- CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId );
+ CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData );
if ( monitor )
{
monitor->NewIapRejected();
@@ -155,13 +155,14 @@
// -----------------------------------------------------------------------------
//
void CSipAlrMonitor::MonitorSnapL(
- TUint32 aSnapId,
- MSipAlrObserver& aObserver )
+ TSipSNAPConfigurationData& aConfigData,
+ MSipAlrObserver& aObserver)
{
PROFILE_DEBUG4( "CSipAlrMonitor::MonitorSnapL",
- aSnapId, reinterpret_cast< TUint >( &aObserver ) )
-
- CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId );
+ aConfigData.iSnapId, reinterpret_cast< TUint >( &aObserver ) )
+
+
+ CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData);
if ( monitor )
{
// Monitor exists, add observer and get current IAP availability
@@ -173,7 +174,7 @@
else
{
monitor = CSipAlrSnapMonitor::NewLC(
- aSnapId, aObserver, iSocketServer, iSystemStateMonitor );
+ aConfigData, aObserver, iSocketServer, iSystemStateMonitor);
iSnapMonitors.AppendL( monitor );
CleanupStack::Pop( monitor );
@@ -203,15 +204,18 @@
// CSipAlrMonitor::FindSnapMonitor
// -----------------------------------------------------------------------------
//
-CSipAlrSnapMonitor* CSipAlrMonitor::FindSnapMonitor( TUint32 aSnapId )
+CSipAlrSnapMonitor* CSipAlrMonitor::FindSnapMonitor( TSipSNAPConfigurationData & aConfigData)
{
CSipAlrSnapMonitor* monitor = NULL;
for ( TInt i = 0; i < iSnapMonitors.Count() && !monitor; i++ )
{
- if ( iSnapMonitors[i]->SnapId() == aSnapId )
- {
- monitor = iSnapMonitors[i];
+ if ( iSnapMonitors[i]->SnapId() == aConfigData.iSnapId && iSnapMonitors[i]->BearerId() == aConfigData.iBearerId ) //mtr found
+ {
+ monitor = iSnapMonitors[i];
}
}
return monitor;
}
+
+
+
--- a/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrsnapmonitor.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrsnapmonitor.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -28,14 +28,14 @@
// -----------------------------------------------------------------------------
//
CSipAlrSnapMonitor* CSipAlrSnapMonitor::NewLC(
- TUint32 aSnapId,
+ TSipSNAPConfigurationData aSnapData,
MSipAlrObserver& aObserver,
RSocketServ& aSocketServer,
- CSipSystemStateMonitor& aSystemStateMonitor )
+ CSipSystemStateMonitor& aSystemStateMonitor)
{
CSipAlrSnapMonitor* self =
new ( ELeave ) CSipAlrSnapMonitor(
- aSnapId, aSocketServer, aSystemStateMonitor );
+ aSnapData, aSocketServer, aSystemStateMonitor);
CleanupStack::PushL( self );
self->ConstructL( aObserver );
return self;
@@ -46,15 +46,15 @@
// -----------------------------------------------------------------------------
//
CSipAlrSnapMonitor::CSipAlrSnapMonitor(
- TUint32 aSnapId,
+ TSipSNAPConfigurationData aSnapData,
RSocketServ& aSocketServer,
- CSipSystemStateMonitor& aSystemStateMonitor ) :
+ CSipSystemStateMonitor& aSystemStateMonitor) :
CActive ( CActive::EPriorityStandard ),
- iSnapId( aSnapId ),
+ iSnapData( aSnapData ),
iSocketServer( aSocketServer ),
- iSystemStateMonitor( aSystemStateMonitor )
+ iSystemStateMonitor( aSystemStateMonitor )
{
- iPrefs.SetSnap( iSnapId );
+ iPrefs.SetSnap( aSnapData.iSnapId );
CActiveScheduler::Add( this );
}
@@ -67,9 +67,16 @@
PROFILE_DEBUG1( "CSipAlrSnapMonitor::ConstructL entered" )
iSystemStateMonitor.StartMonitoringL(
- CSipSystemStateMonitor::ESnapAvailability, iSnapId, *this );
+ CSipSystemStateMonitor::ESnapAvailability, SnapId(), *this );
AddObserverL( aObserver );
+
+ if(IsSnapAvailable())
+ {
+ // SNAP is already Available to be started.
+ // No Need to wait for Notification from System State Monitor.
+ StartSnap();
+ }
PROFILE_DEBUG1( "CSipAlrSnapMonitor::ConstructL returns" )
}
@@ -91,7 +98,7 @@
iObservers.Close();
iSystemStateMonitor.StopMonitoring(
- CSipSystemStateMonitor::ESnapAvailability, iSnapId, *this );
+ CSipSystemStateMonitor::ESnapAvailability, SnapId(), *this );
PROFILE_DEBUG1( "CSipAlrSnapMonitor::~CSipAlrSnapMonitor returns" )
}
@@ -129,7 +136,7 @@
for ( TInt i = iObservers.Count() - 1; i >= 0; --i )
{
iObservers[i].iObserver->AlrEvent(
- MSipAlrObserver::EOfferedIapRejected, iSnapId, KNoIap );
+ MSipAlrObserver::EOfferedIapRejected, SnapId(), KNoIap );
}
}
else
@@ -188,7 +195,7 @@
TAccessPointInfo aNewAP,
TBool /*aIsSeamless*/ )
{
- PROFILE_DEBUG3( "CSipSnapAlrMonitor::NewCarrierActive", iSnapId )
+ PROFILE_DEBUG3( "CSipSnapAlrMonitor::NewCarrierActive", SnapId() )
NotifyInitializedObservers( aNewAP.AccessPoint(),
MSipAlrObserver::EIapActive );
@@ -206,7 +213,7 @@
PROFILE_DEBUG1( "CSipSnapAlrMonitor::Error iCommsMobilityAO==NULL")
return;
}
- if ( aError == KErrNotFound)
+ if ( aError == KErrNotFound && !BearerId())
{
NotifyInitializedObservers( KNoIap,
MSipAlrObserver::ENoNewIapAvailable );
@@ -217,8 +224,12 @@
if ( !iDying )
{
ResetState();
+ if(!BearerId())
+ {
+ PROFILE_DEBUG3( "CSipSnapAlrMonitor::Error, Start Snap as Bearer Id is ", BearerId() )
StartSnap();
}
+ }
}
// -----------------------------------------------------------------------------
@@ -235,7 +246,7 @@
if ( !IsActive() &&
aVariable == CSipSystemStateMonitor::ESnapAvailability &&
- aObjectId == iSnapId )
+ aObjectId == SnapId() )
{
if ( aValue == CSipSystemStateMonitor::ESnapAvailable )
{
@@ -257,7 +268,7 @@
//
TUint32 CSipAlrSnapMonitor::SnapId() const
{
- return iSnapId;
+ return iSnapData.iSnapId;
}
// -----------------------------------------------------------------------------
@@ -324,7 +335,7 @@
for ( TInt i = iObservers.Count() - 1; i >= 0; --i )
{
iObservers[i].iObserver->AlrEvent(
- MSipAlrObserver::ERefreshError, iSnapId, KNoIap );
+ MSipAlrObserver::ERefreshError, SnapId(), KNoIap );
}
}
}
@@ -402,7 +413,6 @@
TInt CSipAlrSnapMonitor::StartSnap()
{
PROFILE_DEBUG1( "CSipAlrSnapMonitor::StartSnap entered" )
-
TInt err = KErrNone;
if ( !IsActive() && IsSnapAvailable() )
{
@@ -413,14 +423,40 @@
if ( err == KErrNone )
{
- iConnection.Start( iPrefs, iStatus );
- SetActive();
+ if(BearerId())
+ {
+ if(BearerId()== 1)
+ {
+ iExtPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerWLAN);
+ }
+ else if(BearerId() == 2)
+ {
+ iExtPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerCellular);
+ }
+ PROFILE_DEBUG1( "CSipAlrSnapMonitor::Starting Bearer Filtered connection" )
+ iExtPrefs.SetSnapId( SnapId());
+
+ TRAPD(error, iPrefList.AppendL(&iExtPrefs));
+ if(error)
+ {
+ return error;
+ }
+ // Start connecting
+ iConnection.Start( iPrefList, iStatus );
+ SetActive();
+ }
+ else
+ {
+ PROFILE_DEBUG1( "CSipAlrSnapMonitor::Starting Normal Connection" )
+ iConnection.Start( iPrefs, iStatus );
+ SetActive();
+ }
}
}
PROFILE_DEBUG3( "CSipAlrSnapMonitor::StartSnap returns", err )
return err;
- }
+ }
// -----------------------------------------------------------------------------
// CSipAlrSnapMonitor::CreateMobilityAoL
@@ -476,7 +512,7 @@
void CSipAlrSnapMonitor::NotifyObservers( TUint aIapId )
{
PROFILE_DEBUG4( "CSipSnapAlrMonitor::NotifyObservers SNAP, IAP",
- iSnapId, aIapId )
+ SnapId(), aIapId )
NotifyInitializedObservers( aIapId, MSipAlrObserver::EIapAvailable );
NotifyNewObservers( aIapId );
@@ -495,9 +531,9 @@
if ( iObservers[i].iInitialEventDone )
{
PROFILE_DEBUG3( "CSipAlrSnapMonitor::NotifyIntitializedObservers",
- iSnapId )
+ SnapId() )
- iObservers[i].iObserver->AlrEvent( aEvent, iSnapId, aIapId );
+ iObservers[i].iObserver->AlrEvent( aEvent, SnapId(), aIapId );
}
}
}
@@ -512,10 +548,10 @@
{
if ( !iObservers[i].iInitialEventDone )
{
- PROFILE_DEBUG3( "CSipAlrSnapMonitor::NotifyNewObservers", iSnapId )
+ PROFILE_DEBUG3( "CSipAlrSnapMonitor::NotifyNewObservers", SnapId() )
iObservers[i].iObserver->AlrEvent(
- MSipAlrObserver::EIapAvailable, iSnapId, aIapId );
+ MSipAlrObserver::EIapAvailable, SnapId(), aIapId );
iObservers[i].iInitialEventDone = ETrue;
}
@@ -529,6 +565,15 @@
TBool CSipAlrSnapMonitor::IsSnapAvailable() const
{
return ( iSystemStateMonitor.CurrentValue(
- CSipSystemStateMonitor::ESnapAvailability, iSnapId ) ==
+ CSipSystemStateMonitor::ESnapAvailability, SnapId() ) ==
CSipSystemStateMonitor::ESnapAvailable );
}
+
+// -----------------------------------------------------------------------------
+// CSipAlrSnapMonitor::BearerId
+// -----------------------------------------------------------------------------
+//
+TBool CSipAlrSnapMonitor::BearerId()
+ {
+ return iSnapData.iBearerId;
+ }
--- a/realtimenetprots/sipfw/ProfileAgent/Client/Api/sipprofile.h Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Client/Api/sipprofile.h Thu Aug 19 10:16:25 2010 +0300
@@ -195,6 +195,15 @@
*/
const TUint32 KSecondaryAPN = 21;
+/**
+* BearerType is of type TUint32.
+* Possible Values and its purpose.
+* 0 --> Not Specified.
+* 1 --> WLAN Bearer Only.
+* 2 --> Cellular Data Bearer Only.
+**/
+const TUint32 KBearerType = 22;
+
// CLASS DECLARATION
/**
--- a/realtimenetprots/sipfw/ProfileAgent/Client/Src/sipmanagedprofile.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Client/Src/sipmanagedprofile.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -185,6 +185,7 @@
case KSIPDigestPassword:
case KSIPHeaders:
case KSIPSoIpTOS:
+ case KBearerType:
User::Leave(KErrNotFound);
case KSIPContactHeaderUser:
User::Leave(KErrAccessDenied);
@@ -276,6 +277,7 @@
case KSIPSnapId:
case KPrimaryAPN:
case KSecondaryAPN:
+ case KBearerType:
User::Leave(KErrNotFound);
default:
iSIPProfile->SetExtensionParameterL(aParam, aVal);
--- a/realtimenetprots/sipfw/ProfileAgent/Group/sipprofileserver.mmp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Group/sipprofileserver.mmp Thu Aug 19 10:16:25 2010 +0300
@@ -94,6 +94,8 @@
LIBRARY commsdat.lib
LIBRARY featmgr.lib
LIBRARY commdb.lib
+LIBRARY extendedconnpref.lib
+LIBRARY netmeta.lib
VENDORID 0x70000001
--- a/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfprofilecontext.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfprofilecontext.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -442,12 +442,12 @@
CurrentState() == MSIPProfileContext::ERegistered) &&
(aError == K408TimeOut ||
aError == K500ServerInternalError ||
- aError == KErrSIPOutboundProxyNotResponding ||
+ aError == KErrTimedOut ||
+ (( aError == KErrSIPOutboundProxyNotResponding ||
aError == KErrSIPResolvingFailure ||
- aError == KErrTimedOut ||
aError == KErrSIPTransportFailure ||
- aError == KErrSIPICMPFailure &&
- iConnection.State() != CSIPConnection::ESuspended))
+ aError == KErrSIPICMPFailure ) &&
+ iConnection.State() != CSIPConnection::ESuspended)))
{
if ( iRetryCounterSum + 1 < KMaxRetryForOneAddress &&
iRetryCounter < KMaxRetryForOneAddress )
--- a/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/Sipimsprofilecontext.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/Sipimsprofilecontext.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -749,11 +749,11 @@
aError == K500ServerInternalError ||
aError == K504ServerTimeOut ||
aError == KErrTimedOut ||
- aError == KErrSIPOutboundProxyNotResponding ||
+ ((aError == KErrSIPOutboundProxyNotResponding ||
aError == KErrSIPResolvingFailure ||
aError == KErrSIPTransportFailure ||
- aError == KErrSIPICMPFailure &&
- iConnection.State() != CSIPConnection::ESuspended)
+ aError == KErrSIPICMPFailure )&&
+ iConnection.State() != CSIPConnection::ESuspended))
{
SetRetryPossible(ETrue);
iRetriedRegister = ETrue;
--- a/realtimenetprots/sipfw/ProfileAgent/Profile/Src/sipconcreteprofile.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Profile/Src/sipconcreteprofile.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -14,7 +14,7 @@
// Name : sipconcreteprofile.cpp
// Part of : SIP / SIP Profile Agent / SIP Concrete Profile
// Implementation
-// Version : %version: 3.1.2 %
+// Version : %version: 3.1.2.1.2 %
//
@@ -2256,5 +2256,12 @@
PROFILE_DEBUG3("Exceptional SNAP Entry verifier :", KDefaultSNAPIdentifier)
SetExtensionParameterL(KSIPSnapId,KDefaultSNAPIdentifier);
}
+
+if ( ExtensionParameter(KBearerType,iVal) == KErrNotFound)
+ {
+PROFILE_DEBUG3("CSIPConcreteProfile::ValidateProfileParamsL.. Setting bearer Id to 0", 0)
+ TUint32 defaultId=0;
+ SetExtensionParameterL(KBearerType,defaultId);
+ }
return res;
}
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Inc/SipProfileCacheItem.h Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Inc/SipProfileCacheItem.h Thu Aug 19 10:16:25 2010 +0300
@@ -567,7 +567,10 @@
*/
void HandleProfileError(TInt aError,
CSIPConcreteProfile& aProfile);
-
+/**
+ * Function returns the Bearer ID for the Profile.
+ */
+ TUint32 BearerID();
private:
/**
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Inc/SipProfileServerCore.h Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Inc/SipProfileServerCore.h Thu Aug 19 10:16:25 2010 +0300
@@ -36,6 +36,7 @@
#include "sipprofileerrorhandler.h"
#include <sipsystemstateobserver.h>
#include "sipapnmanager.h"
+#include "sipalrobserver.h"
#include <e32base.h>
// FORWARD DECLARATIONS
@@ -466,10 +467,10 @@
/**
* Gets the migration controller of the given SNAP id. If a controller
* does not exists, creates a new one.
- * @param aSnapId SNAP id
+ * @param aSnapData
* @return Migration controller, ownership is not transferred.
*/
- CSipAlrMigrationController& MigrationControllerL(TUint32 aSnapId);
+ CSipAlrMigrationController& MigrationControllerL(TSipSNAPConfigurationData aSnapData);
CSIPProfileState& UnregisteredState();
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -969,9 +969,12 @@
StopSnapMonitoring();
}
- if (!iMigrationController)
+ if (!iMigrationController)
{
- iMigrationController = &iServerCore.MigrationControllerL(aSnapId);
+ TUint32 bearerId = BearerID();
+ TSipSNAPConfigurationData aSnapData(aSnapId,bearerId);
+ iMigrationController = &iServerCore.MigrationControllerL(aSnapData);
+ PROFILE_DEBUG3("ProfileCacheItem::BearerFilter value is", bearerId)
TUint32 iapId = iMigrationController->AttachProfileL(*this);
if (iapId)
{
@@ -1403,3 +1406,13 @@
return iIsOfflineInitiated;
}
+// -----------------------------------------------------------------------------
+// CSIPProfileCacheItem::BearerID
+// This function will return the Bearer ID of the Profile.
+// -----------------------------------------------------------------------------
+//
+TUint32 CSIPProfileCacheItem::BearerID()
+{ TUint32 bearerId(0);
+ LatestProfile().ExtensionParameter(KBearerType , bearerId);
+ return bearerId;
+}
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -507,27 +507,7 @@
{
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 Offline
} //end if SystemState
else if(aVariable == CSipSystemStateMonitor::ERfsState)
{
@@ -1906,20 +1886,22 @@
// -----------------------------------------------------------------------------
//
CSipAlrMigrationController&
-CSIPProfileServerCore::MigrationControllerL(TUint32 aSnapId)
+CSIPProfileServerCore::MigrationControllerL(TSipSNAPConfigurationData aSnapData)
{
- RemoveUnusedMigrationControllers(aSnapId);
+ RemoveUnusedMigrationControllers(aSnapData.iSnapId);
for (TInt i = 0; i < iMigrationControllers.Count(); ++i)
{
- if (iMigrationControllers[i]->SnapId() == aSnapId)
+ // Migration controller is unique based on the SNAP ID and Bearer ID.
+ if (iMigrationControllers[i]->SnapId() == aSnapData.iSnapId
+ && iMigrationControllers[i]->BearerId() == aSnapData.iBearerId)
{
return *iMigrationControllers[i];
}
}
CSipAlrMigrationController* ctrl =
- CSipAlrMigrationController::NewLC(iAlrHandler->AlrMonitorL(), aSnapId);
+ CSipAlrMigrationController::NewLC(iAlrHandler->AlrMonitorL(),aSnapData);
iMigrationControllers.AppendL(ctrl);
CleanupStack::Pop(ctrl);
return *ctrl;
@@ -2210,8 +2192,7 @@
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)
+ if (item->IsReferred() && (status == CSIPConcreteProfile::EUnregistered) )
{
TRAPD(err, item->StartRegisterL(*(self->iWaitForIAP), *(self->iRegInProg), ETrue));
if (err != KErrNone)
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrhandler.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrhandler.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -134,8 +134,8 @@
TUint32 snapId(0);
__ASSERT_ALWAYS(aProfile.IsSNAPConfigured(snapId),
User::Leave(KErrArgument));
-
- AlrMonitorL().RefreshIapAvailabilityL(snapId);
+ TSipSNAPConfigurationData aSnapData(snapId ,aProfile.BearerID());
+ AlrMonitorL().RefreshIapAvailabilityL(aSnapData);
}
// -----------------------------------------------------------------------------
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrmigrationcontroller.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrmigrationcontroller.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -30,10 +30,10 @@
// -----------------------------------------------------------------------------
//
CSipAlrMigrationController*
-CSipAlrMigrationController::NewLC(CSipAlrMonitor& aAlrMonitor, TUint32 aSnapId)
+CSipAlrMigrationController::NewLC(CSipAlrMonitor& aAlrMonitor, TSipSNAPConfigurationData aSnapData)
{
CSipAlrMigrationController* self =
- new (ELeave) CSipAlrMigrationController(aAlrMonitor, aSnapId);
+ new (ELeave) CSipAlrMigrationController(aAlrMonitor, aSnapData);
CleanupStack::PushL(self);
return self;
}
@@ -44,9 +44,9 @@
//
CSipAlrMigrationController::CSipAlrMigrationController(
CSipAlrMonitor& aAlrMonitor,
- TUint32 aSnapId) :
+ TSipSNAPConfigurationData aSnapData) :
iAlrMonitor(aAlrMonitor),
- iSnapId(aSnapId)
+ iSnapData(aSnapData)
#ifdef CPPUNIT_TEST
// Set the array granularity to 1, so it allocates memory in each append
, iObservers(1)
@@ -125,9 +125,14 @@
//
TUint32 CSipAlrMigrationController::SnapId() const
{
- return iSnapId;
+ return iSnapData.iSnapId;
}
+TUint32 CSipAlrMigrationController::BearerId() const
+ {
+ return iSnapData.iBearerId;
+ }
+
// -----------------------------------------------------------------------------
// CSipAlrMigrationController::IsUsed
// -----------------------------------------------------------------------------
@@ -148,12 +153,13 @@
{
TSipAlrMigrationObserverInfo observerInfo(aObserver);
iObservers.AppendL(observerInfo);
-
+
const TInt KFirstObserverExists = 1;
if (iObservers.Count() == KFirstObserverExists)
{
- PROFILE_DEBUG3("CSipAlrMigrCtrl::AttachProfileL snapId", iSnapId)
- iAlrMonitor.MonitorSnapL(iSnapId, *this);
+ PROFILE_DEBUG3("CSipAlrMigrCtrl::AttachProfileL snapId", SnapId())
+ PROFILE_DEBUG3("CSipAlrMigrCtrl::AttachProfileL BearerFiltered.. ", BearerId())
+ iAlrMonitor.MonitorSnapL(iSnapData, *this);
return KNoIap;
}
@@ -251,11 +257,11 @@
TInt err(KErrNone);
if (iMigrationDisallowed)
{
- err = iAlrMonitor.DisallowMigration(iSnapId);
+ err = iAlrMonitor.DisallowMigration(iSnapData);
}
else
{
- err = iAlrMonitor.AllowMigration(iSnapId);
+ err = iAlrMonitor.AllowMigration(iSnapData);
}
if (err != KErrNone)
{
@@ -274,9 +280,10 @@
//
void CSipAlrMigrationController::RefreshIapAvailabilityL(TUint32 aSnapId)
{
- if (!iRefreshIssued && aSnapId == iSnapId)
+ if (!iRefreshIssued && aSnapId == SnapId())
{
- iAlrMonitor.RefreshIapAvailabilityL(aSnapId);
+
+ iAlrMonitor.RefreshIapAvailabilityL(iSnapData);
iRefreshIssued = ETrue;
}
}
@@ -293,7 +300,7 @@
PROFILE_DEBUG4("CSipAlrMigrCtrl::SetIapAcceptance, iap,works=",
iAllowedIapId,
aIapWorks)
-
+
TInt index = FindIndex(aObserver);
if (index != KErrNotFound && iObservers[index].iIsWaitingForAcceptance)
{
@@ -306,14 +313,14 @@
iObservers[i].iIsWaitingForAcceptance = EFalse;
}
PROFILE_DEBUG1("CSipAlrMigrCtrl::SetIapAcceptance accepted")
- return iAlrMonitor.NewIapAccepted(iSnapId);
+ return iAlrMonitor.NewIapAccepted(iSnapData);
}
if (!ObserversWaitingAcceptance())
{
// Nobody got IAP to work
PROFILE_DEBUG1("CSipAlrMigrCtrl::SetIapAcceptance rejected")
- return iAlrMonitor.NewIapRejected(iSnapId);
+ return iAlrMonitor.NewIapRejected(iSnapData);
}
}
return KErrNone;
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrmigrationcontroller.h Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrmigrationcontroller.h Thu Aug 19 10:16:25 2010 +0300
@@ -58,7 +58,7 @@
public:
static CSipAlrMigrationController* NewLC(CSipAlrMonitor& aAlrMonitor,
- TUint32 aSnapId);
+ TSipSNAPConfigurationData aSnapData);
~CSipAlrMigrationController();
@@ -71,6 +71,8 @@
public: // New functions
TUint32 SnapId() const;
+
+ TUint32 BearerId() const;
/**
* Check if any profile is using this instance.
@@ -116,11 +118,13 @@
TBool aIapWorks);
void ResetFlags();
+
+
private: // Constructors
CSipAlrMigrationController(CSipAlrMonitor& aAlrMonitor,
- TUint32 aSnapId);
+ TSipSNAPConfigurationData aSnapData);
private: // New functions
@@ -143,9 +147,6 @@
RArray<TSipAlrMigrationObserverInfo> iObservers;
- // SNAP id that is monitored. Does not change.
- const TUint32 iSnapId;
-
// The IAP id, that was most recently offered to observers with
// MSipAlrMigrationObserver::IapAvailableL.
TUint32 iOfferedIapId;
@@ -163,6 +164,9 @@
// Will be set to EFalse, when ALR monitor notifies about IAP, using
// MSipAlrObserver::IapAvailable.
TBool iRefreshIssued;
+
+ // This contains the SNAP ID and the Bearer ID configured for the SNAP.
+ TSipSNAPConfigurationData iSnapData;
private: // For testing purposes
#ifdef CPPUNIT_TEST
--- a/realtimenetprots/sipfw/SIP/Codec/src/CSIPAcceptEncodingHeader.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/SIP/Codec/src/CSIPAcceptEncodingHeader.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -164,7 +164,7 @@
tmp->Des().Trim();
//Allowing '/' token for interoperability issues
RArray<TSIPChar> array;
- if(CFeatureDiscovery::IsFeatureSupportedL(TUid::Uid(KFeatureIdFfSipApnSwitching)))
+ if(CFeatureDiscovery::IsFeatureSupportedL(TUid::Uid(KFeatureIdFfSipNonstandardInteropfix)))
{
array.Append('/');
}
--- a/realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTransport.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTransport.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -1489,7 +1489,15 @@
{
uri.SIPURI()->SetSIPS( EFalse );
}
- } //end if (aMessage->IsRequest)
+ //set the port information as per sip scheme and if there is no
+ //port information set in the contact header.=
+ if(uri.SIPURI()->IsSIPSURI() && (0 == uri.SIPURI()->HostPort().Port()))
+ uri.SIPURI()->HostPort().SetPort(KDefaultSipsPort);
+ else if ((EFalse == uri.SIPURI()->IsSIPSURI()) && (0 == uri.SIPURI()->HostPort().Port()))
+ uri.SIPURI()->HostPort().SetPort(KDefaultSipPort);
+ else
+ {}
+ } //end if (aMessage->IsRequest)
} //end if (uri.IsSIPURI())
} //end if(sipaddr)
} //end while
--- a/sipplugins/sippdevmgmtsipadapter/inc/smldmsipadapterconstants.h Thu Jul 15 19:02:22 2010 +0300
+++ b/sipplugins/sippdevmgmtsipadapter/inc/smldmsipadapterconstants.h Thu Aug 19 10:16:25 2010 +0300
@@ -77,6 +77,8 @@
"DestinationNetwork" );
_LIT8( KNSmlDMSIPSigQos,
"SignalingQoS" );
+_LIT8( KNSmlDMSIPBearerID,
+ "BearerID" );
// Explanations of parameters
_LIT8( KNSmlDMSIPNodeNameExp,
@@ -127,6 +129,8 @@
"Reference to Destination Network" );
_LIT8( KNSmlDMSIPSigQosExp,
"Signaling QoS" );
+_LIT8( KNSmlDMSIPBearerIDExp,
+ "Bearer ID" );
// For SIP URI.
// References: OMA DM MO for Nokia SIP and IETF RFC3261.
--- a/sipplugins/sippdevmgmtsipadapter/src/nsmldmsipadapter.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/sipplugins/sippdevmgmtsipadapter/src/nsmldmsipadapter.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -499,6 +499,16 @@
sigQos.SetDFFormatL( MSmlDmDDFObject::EInt );
sigQos.AddDFTypeMimeTypeL( KNSmlDMSIPTextPlain );
sigQos.SetDescriptionL( KNSmlDMSIPSigQosExp );
+
+ //Bearer ID
+ MSmlDmDDFObject& bearerid = idNode.AddChildObjectL( KNSmlDMSIPBearerID );
+ bearerid.SetAccessTypesL( accessTypesGetReplaceAdd );
+ bearerid.SetOccurenceL( MSmlDmDDFObject::EZeroOrOne );
+ bearerid.SetScopeL( MSmlDmDDFObject::EDynamic );
+ bearerid.SetDFFormatL( MSmlDmDDFObject::EInt );
+ bearerid.AddDFTypeMimeTypeL( KNSmlDMSIPTextPlain );
+ bearerid.SetDescriptionL( KNSmlDMSIPBearerIDExp );
+
DBG_PRINT("CNSmlDmSIPAdapter::DDFStructureL(): end");
}
@@ -856,6 +866,22 @@
}
}
+ // SIP/x/BearerId
+ if ( KNSmlDMSIPBearerID() == lastUriSeg )
+ {
+ TUint32 bearerid = DesToInt( aObject );
+ if ( bearerid )
+ {
+ err = iProfiles->At( profileID )->SetParameter(
+ KBearerType, bearerid );
+ }
+ else
+ {
+ status = CSmlDmAdapter::EInvalidObject;
+ }
+ }
+
+
// ==============================
// OutboundProxy settings node
// ==============================
@@ -1260,6 +1286,16 @@
sigQos >>= 2;
segmentResult.Num( sigQos );
}
+
+ // SIP/x/BearerId
+ if ( KNSmlDMSIPBearerID() == lastUriSeg )
+ {
+ TUint32 bearerid;
+ err = iProfiles->At( profileID )->GetParameter(
+ KBearerType, bearerid );
+ segmentResult.Num( bearerid );
+ }
+
// Set error if fetch failed.
if ( -1 > err )
@@ -1520,6 +1556,12 @@
segmentName );
currentURISegmentList->InsertL( currentURISegmentList->Size(),
KNSmlDMSIPSeparator8 );
+
+ segmentName.Copy( KNSmlDMSIPBearerID );
+ currentURISegmentList->InsertL( currentURISegmentList->Size(),
+ segmentName );
+ currentURISegmentList->InsertL( currentURISegmentList->Size(),
+ KNSmlDMSIPSeparator8 );
}
// SIP/x/OutboundProxy
@@ -1821,7 +1863,11 @@
}
}
}
- return aURI.Left( i );
+
+ if(i < 0)
+ return aURI.Left(i+1);
+ else
+ return aURI.Left( i );
}
// ---------------------------------------------------------------------------
--- a/sipplugins/sippsipadapter/inc/CWPSIPItem.h Thu Jul 15 19:02:22 2010 +0300
+++ b/sipplugins/sippsipadapter/inc/CWPSIPItem.h Thu Aug 19 10:16:25 2010 +0300
@@ -488,6 +488,9 @@
* @param aSigQos Signalling QoS value.
*/
void SetSigQos( TUint32 aSigQos );
+
+ void SetBearerID(TUint32 aBearerId);
+ TUint32 GetBearerID();
private:
@@ -686,6 +689,8 @@
* Signalling QoS value.
*/
TUint32 iSigQos;
+
+ TUint32 iBearerId;
private:
//friend class UT_CWPSIPItem; // For testing purposes.
--- a/sipplugins/sippsipadapter/src/CWPSIPAdapter.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/sipplugins/sippsipadapter/src/CWPSIPAdapter.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -52,6 +52,7 @@
_LIT( KParmLOCK, "LOCK" );
_LIT( KParmAUTOREG, "AUTOREG" );
_LIT( KParmSIGQOS, "SIGQOS" );
+_LIT( KParmBearerID, "PBEARERID" );
// For other purposes.
const TUint32 KNotSet = 0xffffffff;
@@ -501,6 +502,14 @@
iCurrentSIPItem->SetSigQos( parmVal );
}
}
+
+ else if(aParameter.Name() == KParmBearerID )
+ {
+ TInt bearerid;
+ TLex8 lex( tmpValue->Des() );
+ User::LeaveIfError( lex.Val( bearerid ) );
+ iCurrentSIPItem->SetBearerID((TUint32) bearerid );
+ }
break;
}
case EWPParameterAppRef:
--- a/sipplugins/sippsipadapter/src/CWPSIPItem.cpp Thu Jul 15 19:02:22 2010 +0300
+++ b/sipplugins/sippsipadapter/src/CWPSIPItem.cpp Thu Aug 19 10:16:25 2010 +0300
@@ -146,6 +146,7 @@
iToAppRef = HBufC8::NewL( 0 );
iNetwork = HBufC::NewL( 0 );
iSnapId = KErrNotFound;
+ iBearerId = 0;
SetSigQos( 40 );
DBG_PRINT( "CWPSIPItem::ConstructL - end" );
}
@@ -1007,7 +1008,9 @@
// Signalling QoS parameter.
cSIPManagedProfile->SetParameter( KSIPSoIpTOS, iSigQos );
-
+
+ cSIPManagedProfile->SetParameter( KBearerType, iBearerId );
+
// Stores SIP profile to permanent storage
cSIPManagedProfileRegistry->SaveL( *cSIPManagedProfile );
@@ -1259,4 +1262,14 @@
iSigQos = tosBits;
}
+
+void CWPSIPItem::SetBearerID(TUint32 aBearerId)
+{
+iBearerId = aBearerId;
+}
+
+TUint32 CWPSIPItem:: GetBearerID()
+{
+return iBearerId;
+}
// End of file.