phonesrv_plat/service_provider_settings_api/inc/spdefinitions.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:15:03 +0100
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c)  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:  service provider settings definitions
*
*/


#ifndef SPDEFINITIONS_H
#define SPDEFINITIONS_H

/**  Maximum length of descriptor data */
const TInt KSPMaxDesLength = 512;

/** Service attribute mask */
enum TPropertyServiceAttributes
	{
	ESupportsCSVoiceCall 			= 0x00000001, // Supports CS voice call
	ESupportsCSVideoCall			= 0x00000002, // Supports CS video call
	ESupportsCSData					= 0x00000004, // Supports CS data transfer
	ESupportsFax					= 0x00000008, // Service supports fax
	ESupportsInternetCall			= 0x00000010, // Service supports internet call
	ESupportsEmergencyCall 			= 0x00000020, // service supports emergency call
	ESupportsMSISDNAddressing		= 0x00000040, // Service supports MSISDN addressing
	ESupportsAlphanumericAddressing	= 0x00000080, // Service supports alphanumeric addressing
	EIsVisibleInCallMenu 			= 0x00000100, // Service is visible in call menu
	EBootstrapCallProvider			= 0x00000200, // Boostrap call provider
	ESupportVoIPSS                  = 0x00000400, // Supports VoIP SS
	ESimplifiedConferenceCallBubble	= 0x00000800  // Simplified conference call bubble
	};
	
/** Supported feature check */	
enum TSPServiceFeature
	{
	ESupportInternetCallFeature,	//ESupportsInternetCall + ESupportsAlphanumericAddressing + EIsVisibleInCallMenu 
	ESupportCallOutFeature,			//ESupportsInternetCall + ESupportsMSISDNAddressing + EIsVisibleInCallMenu
	ESupportVoIPSSFeature,			//ESupportVoIPSS
	ESupportVoIPFeature				//FeatureManager::FeatureSupported()+dynamic voip flag check+with subservice voip
	};

/**  Service provider ID not defined */
const TInt KSPNoId = 0;
/**  Types of service provider settings items in settings table
     - for internal use */
enum TSPItemType
    {
    EItemTypeNotDefined = 1,
    EItemTypeDeleted,
    EItemTypeEntry,
    EItemTypeProperty,

    // Specifies certain subservice group
    EItemTypeVoIPSubProperty,
    EItemTypePresenceSubProperty,
    EItemTypeIMSubProperty,
    EItemTypeVMBXSubProperty,
    };

/**  List of predefined properties */
enum TServicePropertyName 
    {
    EPropertyUnknown                        = 0x00000001, // Unknown property
    
    EServiceName                            = 0x00002000, // Service name. Set by RCSE / VoIP adapter
    
    // TInt
    // properties
    EPropertyServiceAttributeMask           = 0x00003000, // Service attributes, see TPropertyServiceAttributes. Set by RCSE
    EPropertyCTIPluginId                    = 0x00004000, // Phone Engine CTI plugin UID
    EPropertyCLIPluginId                    = 0x00005000, // Phone application CLI plugin UID. Set by RCSE
    EPropertyCallLoggingPluginId            = 0x00006000, // Phone application call logging plugin UID. Set by RCSE
    EPropertyCallStateIndicatorPluginId     = 0x00007000, // Phone application call state indicator plugin UID. Set by RCSE
    EPropertyCallMenuHandlerPluginId        = 0x00008000, // Phone application menu handler plugin UID. Set by RCSE
    EPropertyCallProviderPluginId           = 0x00009000, // CCE call provider plugin UID. Set by RCSE
    EPropertyPCSPluginId                    = 0x0000A000, // Presence FW PSC plugin UID. Set by RCSE
    EPropertyVoIPSubServicePluginId         = 0x0000B000, // CCH VoIP subservice connectivity plugin UID. Set by RCSE
    EPropertyPresenceSubServicePluginId     = 0x0000C000, // CCH Presence subservice connectivity plugin UID. Set by VoIP adapter
    EPropertyIMSubServicePluginId           = 0x0000D000, // CCH Instant Messaging subservice connectivity plugin UID
    EPropertyVMBXSubServicePluginId         = 0x0000E000, // CCH VMBX subservice connectivity plugin UID. Set by RCSE
    EPropertyServiceSetupPluginId           = 0x0000F000, // Service setup plugin UID. Set by RCSE
    EPropertyContactViewId                  = 0x00010000, // Phonebook2 contact view ID. Set by Phonebook extension
    EPropertyBrandVersion                   = 0x00011000, // Brand version
    EPropertyBrandLanguage                  = 0x00012000, // Brand language
    EPropertyLogCntLinkMaxLength            = 0x00013000, // Maximum length of a serialised contact link. Set by RCSE
    EPropertyContactViewPluginId            = 0x00014000, // Contact view plugin UID. Set by RCSE
    EPropertySendFwImPluginId               = 0x00015000, // SendUi service provider UID
    EPropertyRingtoneTimeout                = 0x00016000, // Ringtone timeout

    // Subproperties
    // VoIP subproperties
    ESubPropertyVoIPSettingsId              = 0x00017000, // VoIP settings ID. Set by RCSE
    ESubPropertyVoIPPreferredSNAPId         = 0x00018000, // Preferred SNAP ID. Set by VoIP adapter
    ESubPropertyVoIPPreferredIAPId          = 0x00019000, // Preferred IAP ID. Set by VoIP adapter
    ESubPropertyVoIPTemporaryIAPId          = 0x0001A000, // Temporary IAP ID. Set by Phonebook extension

    // Presence subproperties
    ESubPropertyPresenceSettingsId          = 0x0001B000, // Presence settings ID. Set by VoIP adapter
    ESubPropertyPresencePreferredSNAPId     = 0x0001C000, // Preferred SNAP ID
    ESubPropertyPresencePreferredIAPId      = 0x0001D000, // Preferred IAP ID
    ESubPropertyPresencePresentityIDFieldType = 0x0001E000, // Presentity ID field type. Set by RCSE
    ESubPropertyPresenceLaunchMethod        = 0x0001F000, // Presence launching method
    ESubPropertyPresenceLaunchUid           = 0x00020000, // Presence plugin or application UID

    // IM subproperties
    ESubPropertyIMSettingsId                = 0x00021000, // IM settings ID
    ESubPropertyIMPreferredSNAPId           = 0x00022000, // Preferred SNAP ID
    ESubPropertyIMPreferredIAPId            = 0x00023000, // Preferred IAP ID
    ESubPropertyIMLaunchMethod              = 0x00024000, // IM launching method
    ESubPropertyIMLaunchUid                 = 0x00025000, // IM plugin or application UID

    // VMBX subproperties
    ESubPropertyVMBXSettingsId              = 0x00026000, // VMBX settings ID. Set by VoIP adapter
    ESubPropertyVMBXPreferredSNAPId         = 0x00027000, // Preferred SNAP ID
    ESubPropertyVMBXPreferredIAPId          = 0x00028000, // Preferred IAP ID. Set by VoIP adapter
    ESubPropertyVMBXMWISubscribeInterval    = 0x00029000, // Message waiting indicator, Re-subscribe interval. Set by VoIP adapter
    ESubPropertyVMBXLaunchMethod            = 0x0002A000, // VMBX launching method
    ESubPropertyVMBXLaunchUid               = 0x0002B000, // VMBX plugin or application UID


    // DES
    //--------------------------------------------------------------------
    // Properties
    EPropertyBrandId                        = 0x0002C000, // Brand ID. Links the service to brand information
                                                          // stored in the branding server. Set by RCSE
    EPropertyContactStoreId                 = 0x0002D000, // Virtual phonebook contact store ID. Set by RCSE
    EPropertyServiceBookmarkUri             = 0x0002E000, // Service provider bookmark URI. Set by VoIP adapter
    EPropertyIncomingEmailserver            = 0x0002F000, // Service incoming e-mail server
    			

    // Subproperties
    // VoIP subproperties
    ESubPropertyVoIPRelNumber               = 0x00030000, // VoIP release number
    ESubPropertyVoIPBrandDataUri            = 0x00031000, // VoIP branding data URI. Set by VoIP adapter
    ESubPropertyVoIPBrandIconUri            = 0x00032000, // VoIP branding icon URI
    ESubPropertyVoIPAddrScheme              = 0x00033000, // VoIP addressing scheme
    
    // Presence subproperties
    ESubPropertyPresenceAddrScheme          = 0x00034000, // Presence addressing scheme
    
    // IM subproperties
    ESubPropertyIMAddrScheme                = 0x00035000, // IM addressing scheme
    
    // VMBX subproperties
    ESubPropertyVMBXListenAddress           = 0x00036000, // VMBX listen address. Set by VoIP adapter
    ESubPropertyVMBXMWIAddress              = 0x00037000, // VMBX message waiting indicator address. Set by VoIP adapter
    ESubPropertyVMBXBrandIconUri            = 0x00038000, // Brand icon URI
    ESubPropertyVMBXAddrScheme              = 0x00039000, // VMBX addressing scheme


    // OnOff
    //--------------------------------------------------------------------
    // VoIP subproperties
    ESubPropertyVoIPEnabled                 = 0x0003A000, // Enable/disable VoIP. Set by VoIP adapter
    
    // Presence subproperties
    ESubPropertyPresenceEnabled             = 0x0003B000, // Enable/disable presence. Set by VoIP adapter
    ESubPropertyPresenceRequestPreference   = 0x0003C000, // Auto accept buddy request. Set by VoIP adapter
    
    // IM subproperties
    ESubPropertyIMEnabled                   = 0x0003D000, // Enable/disable IM
    
    // VMBX subproperties
    ESubPropertyVMBXListenRegister          = 0x0003E000, // Listen without or with registration
    ESubPropertyVMBXEnabled                 = 0x0003F000,  // Enable/disable VMBX. Set by VoIP adapter
    
    //VCC subproperties
    ESubPropertyVccName                         = 0x00040000,
    ESubPropertyVccVDI                          = 0x00041000,
    ESubPropertyVccVDN                          = 0x00042000,
    ESubPropertyVccPreferredDomain              = 0x00043000,                     
    ESubPropertyVccImmediateDomainTransfer      = 0x00044000, 
    ESubPropertyVccDtCstoPsAllowed              = 0x00045000,
    ESubPropertyVccDtPstoCsAllowed              = 0x00046000,
    ESubPropertyVccDtHeldWaitingCallsAllowed    = 0x00047000,
    ESubPropertyVccDtCSHoTriggerLevel           = 0x00048000, 
    ESubPropertyVccDtCSHoHysteresis             = 0x00049000,
    ESubPropertyVccDtCSHoHysteresisTimerLow     = 0x0004A000,
    ESubPropertyVccDtCSHoHysteresisTimerHigh    = 0x0004B000,
    ESubPropertyVccDtWLANHoTriggerLevel         = 0x0004C000,
    ESubPropertyVccDtWLANHoHysteresis           = 0x0004D000,
    ESubPropertyVccDtWLANHoHysteresisTimerLow   = 0x0004E000,
    ESubPropertyVccDtWLANHoHysteresisTimerHigh  = 0x0004F000,
    ESubPropertyVccHoNotificationToneMode		= 0x00050000,
    ESubPropertyVccDtVoipServiceId              = 0x00051000,
    ESubPropertyVccDtAllowedWhenCsOriginated    = 0x00052000,
    ESubPropertyVccAppId                        = 0x00053000,

    };


/**  On/off data type */
enum TOnOff
    {
    EOONotSet = -1,
    EOff = 0,
    EOn = 1
    };

/**  List of supported datatypes of properties */
enum TPropertyDataType
    {
    EDataTypeNotSet,  // NotSet
    EDataTypeUnknown, // Unknown
    EDataTypeInt,     // TInt
    EDataTypeDes,     // TDesC
    EDataTypeOnOff,   // TOnOff
    };
    
/** List of subservice launching method */
enum TSPSubServiceLaunchMethod
	{
	ESPFrameWorkPlugin,
	ESPLauncherPlugin,
	ESPApplication
	};


/**  Service ID */
typedef TUint TServiceId;

/**  Array of CSPProperty objects */
class CSPProperty;
typedef RPointerArray<CSPProperty> RPropertyArray;

/**  Array of service provider IDs */
typedef RArray<TServiceId> RIdArray;

/**  Array of service provider IDs */
typedef RArray<TServicePropertyName> RPropertyNameArray;

/**	 central repsitory keys array */
typedef RArray<TUint32> RKeyArray;


#endif      // SPDEFINITIONS_H