voipplugins/sipconnectionprovider/inc/scpsipconnection.h
branchRCL_3
changeset 21 f742655b05bf
parent 20 65a3ef1d5bd0
child 22 d38647835c2e
--- 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