--- a/voipplugins/sipconnectionprovider/inc/scpsipconnection.h Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,469 +0,0 @@
-/*
-* 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"
-* 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:
-*
-*/
-
-#ifndef C_SCPSIPCONNECTION_H
-#define C_SCPSIPCONNECTION_H
-
-#include <e32base.h>
-#include <rconnmon.h>
-#include <sipconnectionobserver.h>
-#include <sipprofileregistryobserver.h>
-
-#include "scpdefs.h"
-
-class CSIPProfileRegistry;
-class CSIPProfile;
-class CSIPManagedProfileRegistry;
-class MScpSipConnectionObserver;
-
-/**
- * Register/unregister protocol profiles.
- *
- * @lib sipconnectionprovider.dll
- * @since Series 60 3.2
- */
-class CScpSipConnection : public CBase,
- public MSIPConnectionObserver
- {
-public:
-
- enum TConnectionState
- {
- EUnknown = 0,
- ERegistering,
- ERegistered,
- EDeregistering,
- EDeregistered,
- };
-
- enum TRegistrationRequestState
- {
- ENoRequest = 0,
- ERegistrationRequested,
- EDeregistrationRequested
- };
-
- /**
- * Two-phased constructor.
- */
- static CScpSipConnection* NewL( TInt aProfileId,
- CSIPProfileRegistry& aProfileRegistry,
- CSIPManagedProfileRegistry& aManagedProfileRegistry,
- CSIP& aSip );
- /**
- * Destructor.
- */
- virtual ~CScpSipConnection();
-
- /**
- * Return sip profile id of this connection
- * @return Profile id
- */
- TInt ProfileId() const;
-
- /**
- * Enables the connection
- */
- void EnableL();
-
- /**
- * Disables the connection.
- * @return Symbian error codes
- */
- TInt Disable();
-
- /**
- * Disables the connection ungracefully.
- * @return Symbian error codes
- */
- TInt ForceDisable();
-
- /**
- * Returns state of deregistration request
- * @return Registration state
- */
- TRegistrationRequestState RegistrationRequestState() const;
-
- /**
- * Get sip connection state
- * @return State
- */
- void GetState( TConnectionState& aState, TInt& aError ) const;
-
- /**
- * Adds observer for the connection
- * @param aObserver Observer
- */
- void AddObserver( MScpSipConnectionObserver& aObserver );
-
- /**
- * Removes observer from this connection
- * @param aObserver Observer
- * @return Symbian error codes
- */
- TInt RemoveObserver( MScpSipConnectionObserver& aObserver );
-
- /**
- * Gets Protocol Profile's IAP Id.
- * @return Iap id
- */
- TInt GetIap( TUint32& aIapId ) const;
-
- /**
- * Gets Protocol Profile's SNAP Id.
- * @return Snap id.
- */
- TInt GetSnap( TUint32& aSnapId ) const;
-
- /**
- * Gets Protocol Profile's Username..
- * @param aUsername Username of profile.
- * @return KErrNone if succeed.
- */
- TInt GetUsername( TDes8& aUsername ) const;
-
- /**
- * Gets Protocol Profile's domain.
- * @param aDomain Domain of profile.
- * @return KErrNone if succeed.
- */
- TInt GetDomain( TDes8& aDomain ) const;
-
- /**
- * Gets Protocol Profile's User name from Contact header
- * @param aDomain Domain of profile.
- * @return KErrNone if succeed.
- */
- TInt GetContactHeaderUser( RBuf8& aContactHeaderUser ) const;
-
- /**
- * Get CSIPProfile
- * @return CSIPProfile
- */
- CSIPProfile& SipProfile() const;
-
- /**
- * Set Protocol Profile use this IAP.
- * @since Series 60 3.2
- * @param aIapId Iap Id.
- * @return KErrNone if succeed.
- */
- TInt SetIap( TUint32 aIapId );
-
- /**
- * Set Protocol Profile use this SNAP.
- * @param aSnapId Profile new SNAP Id.
- * @return KErrNone if succeed.
- */
- TInt SetSnap( TUint32 aSnapId );
-
- /**
- * Returns the type of the iap this connection's profile is using
- * @return Iap type
- */
- TScpIapType GetIapTypeL() const;
-
- /**
- * Profile registry error occurred
- * @param aProfileId Profile id
- * @param aError error code
- */
- void ProfileRegistryErrorOccurred( TInt aError );
-
- /**
- * Updates the sip connection for the used sip profile
- * @param aProfileId Profile id
- * @param aEvent Event
- */
- void ProfileRegistryEventOccurred( MSIPProfileRegistryObserver::TEvent aEvent );
-
- /**
- * Reserve/Free the used connection for a service's use.
- * For example a VoIP service might reserve the profile for a
- * duration of a VoIP call
- * @param aReserved Reserved
- */
- void SetReserved( TBool aReserved );
-
- /**
- * Returns information about if a connection is reserved or not
- * @return ETrue if reserved
- */
- TBool Reserved() const;
-
- /**
- * Raises the flag fot iap availability offered. Iap availability
- * offers may come from SIP during ALR. If the connection is reserved,
- * the ARL is not allowed and iap available offered is raised.
- * When the connection is freed the ALR can occur.
- */
- void SetIapAvailableOffered( TBool aIapAvailableOffered );
-
- /**
- * Returns the iap available offered flag
- * @return ETrue if iap available was offered
- */
- TBool IapAvailableOffered() const;
-
- /**
- * Sets flag that currenlty the profile is romaing
- */
- void SetProfileCurrentlyRoaming();
-
- /**
- * Handle ongoing alr
- */
- void HandleMigrationStarted();
-
- /**
- * Handle alr error
- * @param aError the error that occurred
- * @param aProfileId identifies the SIP profile related to the error
- * @param aSnapId the SNAP related to the event
- * @param aIapId the IAP related to the error
- */
- void HandleMigrationError( TInt aError,
- TUint32 aProfileId, TUint32 aSnapId, TUint32 aIapId );
-
- /**
- * Password check.
- * @return returns always ETrue because information cannot
- * be checked from sip
- */
- TBool IsPasswordSet() const;
-
- /**
- * Username check.
- * Checks if digest username is set and username is in aor.
- * @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;
-
- /**
- * Checks if IAP connection method used by sip profile is
- * available
- * @return ETrue if available
- */
- TBool IsIapConnectionAvailable( TInt aIapId ) const;
-
- /**
- * Gets bearer filttering setting used by sip profile.
- * 0 --> Not Specified.
- * 1 --> WLAN Bearer Only.
- * 2 --> Cellular Data Bearer Only.
- * @param aBearerFilttering bearer filttering setting
- *
- * @return KErrNone if succeed.
- */
- TInt BearerFiltteringSetting( TUint32& aBearerFilttering ) const;
-
-#ifdef _DEBUG
- void GetInfo( TDes& aInfo ) const;
-#endif
-
-private:
-
- // From MSIPConnectionObserver
- void IncomingRequest( CSIPServerTransaction* /*aTransaction*/ ) {};
-
- void IncomingRequest( CSIPServerTransaction* /*aTransaction*/,
- CSIPDialog& /*aDialog*/ ) {};
-
- void IncomingResponse( CSIPClientTransaction& /*aTransaction*/ ) {};
-
- void IncomingResponse( CSIPClientTransaction& /*aTransaction*/,
- CSIPDialogAssocBase& /*aDialogAssoc*/ ) {};
-
- void IncomingResponse( CSIPClientTransaction& /*aTransaction*/,
- CSIPInviteDialogAssoc* /*aDialogAssoc*/ ) {};
-
- void IncomingResponse( CSIPClientTransaction& /*aTransaction*/,
- CSIPRegistrationBinding& /*aRegistration*/ ) {};
-
- void ErrorOccured( TInt /*aError*/, CSIPTransactionBase& /*aTransaction*/ ) {};
-
- void ErrorOccured( TInt /*aError*/,
- CSIPClientTransaction& /*aTransaction*/,
- CSIPRegistrationBinding& /*aRegistration*/ ) {};
-
- void ErrorOccured( TInt /*aError*/,
- CSIPTransactionBase& /*aTransaction*/,
- CSIPDialogAssocBase& /*aDialogAssoc*/ ) {};
-
- void ErrorOccured( TInt /*aError*/, CSIPRefresh& /*aSIPRefresh*/ ) {};
-
-
- void ErrorOccured( TInt /*aError*/,
- CSIPRegistrationBinding& /*aRegistration*/ ) {};
-
- void ErrorOccured( TInt /*aError*/,
- CSIPDialogAssocBase& /*aDialogAssoc*/) {};
-
- void InviteCompleted( CSIPClientTransaction& /*aTransaction*/ ) {};
-
- void InviteCanceled( CSIPServerTransaction& /*aTransaction*/ ) {};
-
- void ConnectionStateChanged( CSIPConnection::TState aState );
-
- /**
- * Checks if connection method used by the sip profile is
- * available
- * @return ETrue if available
- */
- TBool IsNetworkConnectionAvailable() const;
-
-private:
-
- /**
- * C++ default constructor.
- */
- CScpSipConnection( TInt aProfileId,
- CSIPProfileRegistry& aProfileRegistry,
- CSIPManagedProfileRegistry& aManagedProfileRegistry,
- CSIP& aSip );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- /**
- * Starts timeout timer
- * @param aFunction The function to call after the time out
- */
- void StartEnableTimeoutTimer( TInt (*aFunction)(TAny* aPtr) );
-
- /**
- * Cancels the disable timer
- */
- void CancelEnableTimeoutTimer();
-
- /**
- * Profile register timeout callback
- * @param aSelf this object
- */
- static TInt EnableTimeout( TAny* aSelf );
-
- /**
- * Handles sip profile register timeout
- */
- void HandleEnableTimeout();
-
- /**
- * Changes SIP profile from "Always on" to "When needed" if
- * the profile was originally set to "Always on"
- */
- void DisableAlwaysOnModeL();
-
- /**
- * Checks if Sip profile type is IMS
- */
- TBool SipProfileIMS() const;
-
-private:
-
- /**
- * Sip profile id
- */
- TInt iProfileId;
-
- /**
- * Sip profile registry
- */
- CSIPProfileRegistry& iProfileRegistry;
-
- /**
- * Managed sip profile registry
- */
- CSIPManagedProfileRegistry& iManagedProfileRegistry;
-
- /**
- * SIP instance
- */
- CSIP& iSip;
-
- /**
- * Sip profile. May change. Own
- */
- CSIPProfile* iSipProfile;
-
- /**
- * Observer
- */
- MScpSipConnectionObserver* iObserver;
-
- /**
- * Registration request state
- */
- TRegistrationRequestState iRegistrationRequestState;
-
- /**
- * Registration faile flag
- */
- TInt iConnectionStateError;
-
- /**
- * Timeout timer. Owned.
- */
- CPeriodic* iEnableTimeoutTimer;
-
- /**
- * Connection reserved for services' usage
- */
- TBool iReserved;
-
- /**
- * Iap available offered
- */
- TBool iIapAvailableOffered;
-
- /**
- * Profile is currently roaming
- */
- TBool iProfileCurrentlyRoaming;
-
- /**
- * Connection monitor
- */
- RConnectionMonitor iConnectionMonitor;
-
- /**
- * SIP connection
- * Own.
- */
- CSIPConnection* iSipConnection;
-
-// This need to be cleaned to separate macro/header
-#ifdef _DEBUG
- friend class T_CScpSipConnection;
- friend class T_CScpProfileHandler;
- friend class T_CScpServiceManager;
- friend class T_CScpVmbxHandler;
- friend class T_CScpVoipHandler;
-#endif
- };
-
-#endif // C_SCPSIPCONNECTION_H
-
-// End of File