--- a/voipplugins/voipadapters/cpvoipadapter/inc/CWPVoIPItem.h Tue Feb 02 00:05:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,864 +0,0 @@
-/*
-* Copyright (c) 2002-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: Holds and stores one VoIP item.
-*
-*/
-
-
-#ifndef CWPVOIPITEM_H
-#define CWPVOIPITEM_H
-
-// INCLUDES
-#include <e32base.h> // CBase.
-#include <crcseprofileentry.h> // TOnOff, RCSE entry
-#include "CWPVoIPCodec.h" // VoIP codecs.
-
-// CONSTANTS
-const TUint KMaxTerminalTypeLength = 64;
-const TUint KWlanMacAddressLength = 50;
-const TUint KPhoneModelLength = 20;
-const TUint KUAHLength = 200;
-
-// MACROS
-
-// DATA TYPES
-typedef CRCSEProfileEntry VoIPProfileEntry;
-
-// FORWARD DECLARATIONS
-class CWPCharacteristic;
-class CWPVoIPCodec;
-class CCoeEnv;
-
-// CLASS DECLARATION
-/**
- * This class keeps transiently the VoIP setting values and stores the
- * values via interface provided by RCSE and SPS.
- *
- * @lib CWPVoIPAdapter.lib
- * @since S60 3.0
- */
-class CWPVoIPItem : public CBase
- {
- #ifdef _DEBUG
- /**
- * Friend class for unit testing.
- */
- friend class UT_CWPVoIPItem;
- friend class UT_CWPVoIPAdapter;
- #endif
-
- public: // Data types
-
- /** For setting telephony preference */
- enum TTelephonyPreference
- {
- ECSPreferred,
- EPSPreferred
- };
-
- /** For telling which settings storage ID is related to. */
- enum TSettingsType
- {
- ESIP,
- ESCCP,
- ENATFW,
- EPresence,
- ESNAP
- };
-
- public: // Constructor and destructor
-
- static CWPVoIPItem* NewL();
- virtual ~CWPVoIPItem();
-
- public: // New functions
-
- /**
- * Setter for AppRef.
- *
- * @since S60 3.2
- * @param aAppRef.
- */
- void SetAppRefL( const TDesC8& aAppRef );
-
- /**
- * Getter for AppRef.
- *
- * @since S60 3.2
- * @return AppRef.
- */
- HBufC8* AppRef();
-
- /**
- * Setter for provider.
- *
- * @since S60 3.0
- * @param aPROVIDERID.
- */
- void SetProviderIdL( const TDesC& aPROVIDERID );
-
- /**
- * Setter for user viewable name of the setting.
- *
- * @since S60 3.0
- * @param aNAME - value is TCP or UDP.
- */
- void SetNameL( const TDesC& aNAME );
-
- /**
- * Setter for TO-APPREF parameter values.
- *
- * @since S60 3.0
- * @param aTOAPPREF (i.e.actual CP parameter TO-APPREF).
- */
- void AddToAppRefL( const TDesC8& aTOAPPREF );
-
- /**
- * Setter for start media port.
- *
- * @since S60 3.0
- * @param aSMPORT.
- */
- void SetStartMediaPort( TInt aSMPORT );
-
- /**
- * Setter for end media port.
- *
- * @since S60 3.0
- * @param aEMPORT.
- */
- void SetEndMediaPort( TInt aEMPORT );
-
- /**
- * Setter for media QoS.
- *
- * @since S60 3.0
- * @param aMediaQoSValue.
- */
- void SetMediaQoS( TInt aMEDIAQOS );
-
- /**
- * Setter for switching DTMF in-band on/off.
- *
- * @since S60 3.0
- * @param aDTMFInBand (derived from CP parameter NODTMFIB, where
- * "NO" means negation).
- */
- void SetDTMFInBand( TInt aDTMFInBand );
-
- /**
- * Setter for DTMF out-of-band parameter.
- *
- * @since S60 3.0
- * @param aDTMFOutBandValue (derived from CP parameter
- * NODTMFOOB, where "NO" means negation).
- */
- void SetDTMFOutBand( TInt aDTMFOutBandValue );
-
- /**
- * Setter for VoIP codecs.
- * Takes ownership of aVoIPCodec.
- *
- * @since S60 3.0
- * @param aVoIPCodec.
- */
- void AddCodecL( const CWPVoIPCodec* aVoIPCodec );
-
- /**
- * Setter for iSecureCallPreference.
- *
- * @since S60 3.0
- * @return aSecureCallPreference.
- */
- void SetSecureCallPref( TInt aSecureCallPref );
-
- /**
- * Setter for iRTCP.
- *
- * @since S60 3.0
- * @param aRTCP.
- */
- void SetRTCP( TInt aRTCP );
-
- /**
- * Setter for iUAHTerminalType.
- *
- * @since S60 3.0
- * @param aUAHTerminalType SIP User Agent Header:
- * terminal type display.
- */
- void SetUAHTerminalType( TInt aUAHTerminalType );
-
- /**
- * Setter for iUAHWLANMAC.
- *
- * @since S60 3.0
- * @param aUAHWLANMAC SIP User Agent Header: WLAN MAC address display.
- */
- void SetUAHWLANMAC( TInt aUAHWLANMAC );
-
- /**
- * Setter for iUAHString.
- *
- * @since S60 3.0
- * @param aUAHString SIP User Agent Header: free string.
- */
- void SetUAHStringL( const TDesC& aUAHString );
-
- /**
- * Setter for iProfileLockedToIAP.
- *
- * @since S60 3.0
- * @param aProfileLockedToIAP Is profile locked to a pre-defined IAP.
- */
- void SetProfileLockedToIAP( TInt aProfileLockedToIAP );
-
- /**
- * Setter for iVoIPPluginUid.
- *
- * @since S60 3.0
- * @param aVoIPPluginUid VoIP plugin UID.
- */
- void SetVoIPPluginUid( TInt aVoIPPluginUid );
-
- /**
- * Setter for iAllowVoIPOverWCDMA.
- *
- * @since S60 3.0
- * @param aAllowVoIPOverWCDMA Allow VoIP over WCDMA.
- */
- void SetAllowVoIPOverWCDMA( TInt aAllowVoIPOverWCDMA );
-
- /**
- * Setter for iVoIPDigits.
- *
- * @since S60 3.0
- * @param aVoIPDigits Number of meaningful VoIP digits for call
- * identification.
- */
- void SetVoIPDigits( TInt aVoIPDigits );
-
- /**
- * Setter for iDomainPartIgnoreRule.
- *
- * @since S60 3.0
- * @param aDomainPartIgnoreRule Rule for ignoring domain part of URI
- * for VoIP calls.
- */
- void SetDomainPartIgnoreRule( TInt aDomainPartIgnoreRule );
-
- /**
- * Setter for iAddUserPhoneToAllNumbers.
- *
- * @since S60 3.2
- * @param aAddUserPhone The indication whether or not to add
- * user=phone to all numbers.
- */
- void SetAddUserPhone( TInt32 aAddUserPhone );
-
- /**
- * Setter for iSIPConnTestAddress.
- *
- * @since S60 3.2
- * @param aSIPConnTestAddress Connectivity test call address
- * in registering.
- */
- void SetSipConnTestAddressL( const TDesC& aSIPConnTestAddress );
-
- /**
- * Setter for iServiceProviderBookmark.
- *
- * @since S60 3.2
- * @param aServiceProviderBookmark Absolute URI for service
- * provider bookmark.
- */
- void SetServiceProviderBookmarkL(
- const TDesC& aServiceProviderBookmark );
-
- /**
- * Setter for iSIPMinSE.
- *
- * @since S60 3.2
- * @param aSIPMinSE The minimum allowed value for the session timer.
- */
- void SetSipMinSe( TInt32 aSIPMinSE );
-
- /**
- * Setter for iSIPSessionExpires.
- *
- * @since S60 3.2
- * @param aSIPMinSE The session interval for a SIP session.
- */
- void SetSipSessionExpires( TInt32 aSIPSessionExpires );
-
- /**
- * Setter for iIPVoiceMailBoxURI.
- *
- * @since S60 3.
- * @param aIPVoiceMailBoxURI IP Voice Mail Box address.
- */
- void SetIPVoiceMailBoxURIL( const TDesC& aIPVoiceMailBoxURI );
-
- /**
- * Setter for iVmbxListenAddress.
- *
- * @since S60 3.2
- * @param aVmbxListenAddress VoiceMailBox listening address.
- */
- void SetVoiceMailBoxListenURIL( const TDesC& aVmbxListenAddress );
-
- /**
- * Setter for iReSubscribeInterval.
- *
- * @since S60 3.2
- * @param aReSubscribeInterval Interval for sending re-SUBSCRIBE.
- */
- void SetReSubscribeInterval( TInt32 aReSubscribeInterval );
-
- /**
- * Setter for iBrandingDataAddress.
- *
- * @since S60 3.2
- * @param aBrandingDataAddress URI to branding data xml.
- */
- void SetBrandingDataAddressL( const TDesC& aVmbxListenAddress );
-
- /**
- * Setter for iAutoAcceptBuddy.
- *
- * @since S60 3.2
- * @param aAutoAcceptBuddy for defining auto accept buddy presence
- * subscription request.
- */
- void SetAutoAcceptBuddyRequest( TInt32 aAutoAcceptBuddyRequest );
-
- /**
- * Setter for iAutoEnableService.
- *
- * @since S60 3.2
- * @param aAutoEnableService for defining
- * auto enable state of service.
- */
- void SetAutoEnableService( TInt32 aAutoEnableService );
-
- /**
- * Setter for NAPDEF (IAP settings).
- *
- * @since S60 3.2
- * @param aNapDef NAPDEF (IAP settings) characteristic.
- */
- void SetNapDef( CWPCharacteristic* aNapDef );
-
- /**
- * Setter for TO-NAPID parameter.
- *
- * @since S60 3.2
- * @param aNapDefName TO-NAPID value.
- */
- void SetToNapIdL( const TDesC8& ToNapId );
-
- /**
- * Setter for IAP ID.
- *
- * @since S60 3.2
- * @param aIapId IAP ID.
- */
- void SetIapId( TUint32 aIapId );
-
- /**
- * Setter for storage ID's (APPREF/TO-APPREF linkage).
- *
- * @since S60 3.2
- * @param aAppId APPID value.
- * @param aStorageId Storage ID.
- * @return ETrue if storage ID was set,
- EFalse if storage ID was not set.
- */
- TBool SetStorageId( TSettingsType aProfileType, TUint32 aStorageId,
- const TDesC8& aAppRef );
-
- /**
- * Sets TO-APPREF value to internal variable.
- *
- * @since S60 3.2
- * @param aToAppRef TO-APPREF value.
- */
- void SetVoipUrisToAppRefL( const TDesC8& aToAppRef );
-
- /**
- * Setter for iUsedNatProtocol.
- *
- * @since S60 3.2
- * @param aUsedNatProtocol for indicating which NAT protocol should
- * be used.
- */
- void SetUsedNatProtocol( TInt32 aUsedNatProtocol);
-
- /**
- * Getter for user viewable name of VoIP settings item.
- *
- * @since S60 3.0
- * @return Settings name.
- */
- const TDesC& Name() const;
-
- /**
- * Getter for iUAHString.
- *
- * @since S60 3.0
- * @return SIP VoIP User Agent header: free string.
- */
- const TDesC& UAHString() const;
-
- /**
- * Getter for NAPDEF (IAP settings).
- *
- * @since S60 3.2
- * @return NAPDEF characteristic.
- */
- CWPCharacteristic* NapDef();
-
- /**
- * Getter for TO-NAPID value.
- *
- * @since S60 3.2.
- * @return TO-NAPID value.
- */
- const TDesC8& ToNapId() const;
-
- /**
- * Returns TO-APPREF value.
- *
- * @since S60 3.2
- * @return TO-APPREF value.
- */
- const TDesC8& VoipUrisToAppRef() const;
-
- /**
- * Saves the VoIP settings and returns the uid of the stored new VoIP
- * profile.
- *
- * @since S60 3.0
- * @return VoIP profile ID.
- */
- TUint StoreL();
-
- /**
- * Return profile ID as a descriptor.
- *
- * @since 3.0
- * @return ID of the VoIP item (VoIP profile ID).
- */
- const TDesC8& SaveData() const;
-
- /**
- * Make update for data that is received after the actual StoreL save
- * method call. Data received after that can be: SIP profile ids in
- * VoIP profile settings and in the SIP specific VoIP settings items
- * and SCCP profile ids. SIP and SCCP ids are always received from the
- * other adapters via CWPAdapter::SettingsSaved mehod that can be
- * called after call to StoreL.
- *
- * @since S60 3.0
- */
- void SavingFinalizedL();
-
- /**
- * Sets CS/PS telephony preference.
- *
- * @since S60 3.0
- * @param aTelephonyPreference state to set
- */
- void SetTelephonyPreferenceL( const TTelephonyPreference&
- aTelephonyPreference ) const;
-
- /**
- * Gather SIP User-Agent header.
- *
- * @since S60 3.0
- * @param aUserAgentHeader User Agent Header.
- */
- void GetUserAgentHeaderL( TBuf8<KUAHLength>& aUserAgentHeader ) const;
-
- /**
- * Getter for RCSE storage ID.
- *
- * @since S60 3.2
- * @return RCSE storage ID.
- */
- TUint32 ItemId();
-
- /**
- * Sets IM enabled flag to true.
- *
- * @since S60 3.2
- */
- void EnableIm();
-
- private:
-
- CWPVoIPItem();
- void ConstructL();
-
- private: // New functions
-
- /**
- * Check for duplicate provider and settingsname and renames if same.
- *
- * @since S60 3.0
- * @param aProfile Profile to check.
- * @return ETrue if operation was done; otherwise EFalse.
- */
- TBool CheckDuplicatesL( CRCSEProfileEntry& aEntry ) const;
-
- /**
- * Get Terminal Type for SIP User Agent Header.
- *
- * @since S60 3.0
- * @param aTeminalType Terminal type.
- */
- void GetTerminalTypeL(
- TBuf<KMaxTerminalTypeLength>& aTerminalType ) const;
-
- /**
- * Get WLAN MAC address for SIP User Agent Header.
- *
- * @since S60 3.0
- * @param aMac WLAN MAC address.
- */
- void GetWlanMacAddressL( TBuf<KWlanMacAddressLength>& aMac ) const;
-
- /**
- * Cleanup method for array.
- *
- * @since S60 3.1
- * @param aParameter Parameter to be cleaned.
- */
- static void CleanupArrayItem( TAny* aArray );
-
- /**
- * Creates default codecs.
- *
- * @since S60 3.2
- * @param aProfile Profile to append new codecs.
- */
- void AddDefaultCodecsL( CRCSEProfileEntry& aProfileEntry );
-
- private: // Data.
-
- /*
- * VoIP codecs.
- * Own.
- */
- RPointerArray<CWPVoIPCodec> iCodecs;
-
- /*
- * Identifies the item.
- */
- TUint iItemId;
-
- /* Provider of settings. See OMA ProvCont document.
- * CP parameter: PROVIDER-ID.
- * Own.
- */
- HBufC* iProviderId;
-
- /* Name of VoIP settings visible to user when viewing the provisioning
- * message. See OMA ProvCont document.
- * CP parameter: NAME
- * Own.
- */
- HBufC* iName;
-
- /* All APPREFs that are referenced from this VoIP item's TO-APPREF
- * parameter.
- * Own.
- */
- RPointerArray<HBufC8> iToAppRefs;
-
- /* Start media port.See w9013.txt or VoIP software settings document.
- * CP parameter: SMPORT.
- */
- TInt32 iStartMediaPort;
-
- /* End media port.See w9013.txt or VoIP software settings document.
- * CP parameter: EMPORT.
- */
- TInt32 iEndMediaPort;
-
- /* Quality of service for the media.See w9013.txt or VoIP software
- * settings document.
- * CP parameter: MEDIAQOS.
- */
- TInt32 iMediaQoS;
-
- /* In band. See w9013.txt or VoIP software settings document.
- * CP parameter: NODTMFIB
- */
- TInt32 iDTMFInBand;
-
- /* Out-of-band. See w9013.txt or VoIP software settings document.
- * CP parameter: NODTMFOOB.
- */
- TInt32 iDTMFOutBand;
-
- /* VoIP id as descriptor to be returned by the SaveData method to the
- * framework via adapter SaveDataL.
- * Own.
- */
- HBufC8* iSavedProfileId;
-
- /**
- * Secure call preference. See w9013.txt or VoIP software settings
- * document.
- */
- TInt iSecureCallPref;
-
- /**
- * RTCP, Real-Time Control Protocol reporting. See w9013.txt or VoIP
- * software settings document.
- */
- TInt iRTCP;
-
- /**
- * SIP VoIP User Agent header: terminal type display. See w9013.txt or
- * VoIP software settings document.
- */
- TInt iUAHTerminalType;
-
- /**
- * SIP VoIP User Agent header WLAN MAC address display. See w9013.txt
- * or VoIP software settings document.
- */
- TInt iUAHWLANMAC;
-
- /**
- * SIP VoIP User Agent header: free string. See w9013.txt or VoIP
- * software settings document.
- * Own.
- */
- HBufC* iUAHString;
-
- /**
- * Profile locked to IAP. See w9013.txt or VoIP software settings
- * document.
- */
- TInt iProfileLockedToIAP;
-
- /**
- * VoIP plugin UID. See w9013.txt or VoIP software settings document.
- */
- TInt iVoIPPluginUid;
-
- /**
- * Allow VoIP over WCDMA. See w9013.txt or VoIP software settings
- * document.
- */
- TInt iAllowVoIPOverWCDMA;
-
- /**
- * Number of meaningful VoIP digits for call identification.
- * See w9013.txt.
- */
- TInt iVoIPDigits;
-
- /**
- * Ignore domain part of address (URI) for VoIP calls rule.
- * See w9013.txt.
- */
- TInt iDomainPartIgnoreRule;
-
- /**
- * Flag to prevent set vmbx sip id if no vmbx settings are used.
- */
- TBool iVmbxSettingsExist;
-
- /**
- * Whether or not to add user=phone to all numbers.
- * See w9013.txt.
- */
- TInt32 iAddUserPhoneToAllNumbers;
-
- /**
- * Connectivity test call address in registering.
- * See w9013.txt.
- * Own.
- */
- HBufC* iSIPConnTestAddress;
-
- /**
- * Absolute URI for service provider bookmark.
- * See w9013.txt.
- * Own.
- */
- HBufC* iServiceProviderBookmark;
-
- /**
- * The minimum allowed value for the session timer.
- * See w9013.txt.
- */
- TInt32 iSIPMinSE;
-
- /**
- * The session interval for a SIP session.
- * See w9013.txt.
- */
- TInt32 iSIPSessionExpires;
-
- /**
- * VoiceMailBox: MWI-URI.
- * See w9013.txt.
- * Own.
- */
- HBufC* iIPVoiceMailBoxURI;
-
- /**
- * VoiceMailBox: VoiceMailBox listening address.
- * See w9013.txt.
- * Own.
- */
- HBufC* iVmbxListenAddress;
-
- /**
- * VoiceMailBox: Interval for sending re-SUBSCRIBE.
- * See w9013.txt.
- */
- TInt32 iReSubscribeInterval;
-
- /**
- * VoiceMailBox: NAPDEF.
- * See w9013.txt.
- * Not own.
- */
- CWPCharacteristic* iNapDef;
-
- /**
- * VoiceMailBox: IAP ID.
- * See w9013.txt.
- */
- TUint32 iVmbxIapId;
-
- /**
- * URI to branding data xml.
- * See w9013.txt
- * Own.
- */
- HBufC* iBrandingDataAddress;
-
- /**
- * Auto accept buddy presence subscription request.
- * see w9013.txt.
- */
- TInt32 iAutoAcceptBuddyRequest;
-
- /**
- * Auto enable state of service.
- * see w9013.txt.
- */
- TInt32 iAutoEnableService;
-
- /**
- * TO-NAPID value.
- * See w9013.txt
- * Own.
- */
- HBufC8* iToNapId;
-
- /**
- * SIP profile ID for VoIP profile.
- */
- TUint32 iSipId;
-
- /**
- * SCCP profile ID for VoIP profile.
- */
- TUint32 iSccpId;
-
- /**
- * SIP profile ID for VoiceMailBox.
- */
- TUint32 iVmbxSipId;
-
- /**
- * NATFW profile ID for VoIP profile.
- */
- TUint32 iNatFwId;
-
- /**
- * Presence settings ID for service settings.
- */
- TUint32 iPresenceId;
-
- /**
- * Boolean for telling if SIP ID is already set.
- */
- TBool iSipIdSet;
-
- /**
- * Boolean for telling if SCCP ID is already set.
- */
- TBool iSccpIdSet;
-
- /**
- * Boolean for telling if VMBX SIP ID is already set.
- */
- TBool iVmbxSipIdSet;
-
- /**
- * Boolean for telling if NATFW ID is already set.
- */
- TBool iNatFwIdSet;
-
- /**
- * Boolean for telling if Presence ID is already set.
- */
- TBool iPresenceIdSet;
-
- /**
- * TO-APPREF value under characteristic VOIPURIS.
- * Own.
- */
- HBufC8* iVoipUrisToAppRef;
-
- /**
- * Indicates which NAT protocol should be used.
- * see w9013.txt.
- */
- TInt32 iUsedNatProtocol;
-
- /**
- * Boolean for telling if SNAP ID is already set.
- */
- TBool iSnapIdSet;
-
- /**
- * SNAP profile ID for VoIP profile.
- */
- TUint32 iSnapId;
-
- /**
- * APPREF of this settings item.
- * Own.
- */
- HBufC8* iAppRef;
-
- /**
- * Tells if IM is enabled or not.
- */
- TBool iImEnabled;
- };
-
-#endif // CWPVOIPITEM_H
-
-// End of File