ccservices/cmsservices/cmsengine/Server/src/cmsserverutils.cpp
changeset 0 e686773b3f54
child 68 9da50d567e3c
equal deleted inserted replaced
-1:000000000000 0:e686773b3f54
       
     1 /*
       
     2 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *       
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 #include <VPbkEng.rsg>
       
    22 #include <spproperty.h>
       
    23 #include <spsettings.h>
       
    24 #include <spentry.h>
       
    25 #include "cmsserver.h"
       
    26 #include "cmsserverutils.h"
       
    27 #include "cmsdebug.h"
       
    28 
       
    29 // ----------------------------------------------------------
       
    30 // CCmsSession::ReadMsgParamLC
       
    31 // 
       
    32 // ----------------------------------------------------------
       
    33 //
       
    34 HBufC* CmsServerUtils::ReadMsgParam16LC( TInt aMsgIndex, const RMessage2& aMessage )
       
    35     {
       
    36     
       
    37     PRINT( _L( "Start CmsServerUtils::ReadMsgParam16LC()" ) );
       
    38     
       
    39     TInt length = aMessage.GetDesLength( aMsgIndex );
       
    40     HBufC* buffer = HBufC::NewLC( length );
       
    41     TPtr descriptor( buffer->Des() );
       
    42     aMessage.ReadL( aMsgIndex, descriptor );
       
    43     PRINT( _L( "End CmsServerUtils::ReadMsgParam16LC()" ) );
       
    44     return buffer;
       
    45     }
       
    46 
       
    47 // ----------------------------------------------------------
       
    48 // CmsServerUtils::ReadMsgParam8LC
       
    49 // 
       
    50 // ----------------------------------------------------------
       
    51 //
       
    52 HBufC8* CmsServerUtils::ReadMsgParam8LC( TInt aMsgIndex, const RMessage2& aMessage )
       
    53     {
       
    54     PRINT( _L( "'Start CmsServerUtils::ReadMsgParam8LC()" ) );
       
    55     TInt length = aMessage.GetDesLength( aMsgIndex );
       
    56     HBufC8* buffer = HBufC8::NewLC( length );
       
    57     TPtr8 descriptor( buffer->Des() );
       
    58     aMessage.ReadL( aMsgIndex, descriptor );
       
    59     return buffer;
       
    60     }
       
    61 
       
    62 // ----------------------------------------------------------
       
    63 // CmsServerUtils::ConvertDesc
       
    64 // 
       
    65 // ----------------------------------------------------------
       
    66 //
       
    67 TInt CmsServerUtils::ConvertDesc( const TDesC8& aNumberDesc )
       
    68     {
       
    69     TInt ret = 0;
       
    70     TLex8 lex( aNumberDesc );
       
    71     TInt error = lex.Val( ret );
       
    72     return error == KErrNone ? ret : error;
       
    73     }
       
    74 
       
    75 // ---------------------------------------------------------
       
    76 // CmsServerUtils::DescriptorCast
       
    77 //
       
    78 // ---------------------------------------------------------
       
    79 //
       
    80 TPtr8 CmsServerUtils::DescriptorCast( const TDesC8& aConstData )
       
    81 	{
       
    82     TInt length = aConstData.Length();
       
    83     TPtr8 constCast( CONST_CAST( TUint8*, aConstData.Ptr() ), length, length );
       
    84     constCast.TrimAll();
       
    85     return constCast;
       
    86 	}
       
    87 
       
    88 // ---------------------------------------------------------
       
    89 // CmsServerUtils::ConvertDescL
       
    90 //
       
    91 // ---------------------------------------------------------
       
    92 //
       
    93 HBufC8* CmsServerUtils::ConvertDescLC( const TDesC& a16bitDescriptor )
       
    94     {
       
    95     HBufC8* eightBit = HBufC8::NewLC( a16bitDescriptor.Length() );
       
    96     eightBit->Des().Copy( a16bitDescriptor );
       
    97     return eightBit;
       
    98     }
       
    99 
       
   100 // ---------------------------------------------------------
       
   101 // CmsServerUtils::ConvertDescL
       
   102 //
       
   103 // ---------------------------------------------------------
       
   104 //
       
   105 HBufC* CmsServerUtils::ConvertDescLC( const TDesC8& a8bitDescriptor )
       
   106     {
       
   107     HBufC* sixteen = HBufC::NewLC( a8bitDescriptor.Length() );
       
   108     sixteen->Des().Copy( a8bitDescriptor );
       
   109     return sixteen;
       
   110     }
       
   111 
       
   112 // ----------------------------------------------------
       
   113 // CmsServerUtils::IsVoIPSupported
       
   114 // 
       
   115 // ----------------------------------------------------
       
   116 // 
       
   117 TBool CmsServerUtils::IsVoIPSupportedL()
       
   118     {
       
   119     TBool supported( EFalse );
       
   120     RIdArray idArray;
       
   121     CleanupClosePushL(idArray);
       
   122     CSPSettings* settings = CSPSettings::NewLC();
       
   123     
       
   124     User::LeaveIfError( settings->FindServiceIdsL(idArray) );
       
   125     for (TInt i = 0; !supported && i < idArray.Count(); ++i)
       
   126         {
       
   127         CSPEntry* entry = CSPEntry::NewLC();
       
   128         TServiceId id = idArray[i];
       
   129         User::LeaveIfError( settings->FindEntryL(id, *entry) );
       
   130         const CSPProperty* property = NULL;
       
   131         if (entry->GetProperty(property, ESubPropertyVoIPSettingsId) == KErrNone)
       
   132             {
       
   133             supported = ETrue;
       
   134             }
       
   135 
       
   136         if (entry->GetProperty(property, EPropertyServiceAttributeMask) == KErrNone)
       
   137             {
       
   138             TInt value = 0;
       
   139             property->GetValue(value);
       
   140             supported = value & ESupportsInternetCall; 
       
   141             }
       
   142 
       
   143         CleanupStack::PopAndDestroy(); // entry
       
   144         }
       
   145     CleanupStack::PopAndDestroy(2); // settings, idArray
       
   146     return supported;
       
   147     }
       
   148 
       
   149 // ----------------------------------------------------
       
   150 // CCmsServerAsyncContact::IsImCapableL
       
   151 // 
       
   152 // ----------------------------------------------------
       
   153 //
       
   154 TBool CmsServerUtils::IsFeatureSupportedL( TInt aFeature, const TDesC& aScheme )
       
   155     {
       
   156     RIdArray ids;
       
   157     CleanupClosePushL( ids );
       
   158     TBool isImCapable = EFalse;
       
   159     CSPSettings* settings = CSPSettings::NewL();
       
   160     CleanupStack::PushL( settings );
       
   161     CDesCArrayFlat* nameArray = new ( ELeave ) CDesCArrayFlat( 2 );
       
   162     CleanupStack::PushL( nameArray );    
       
   163     TInt error = settings->FindServiceIdsL( ids );  
       
   164     User::LeaveIfError( error );     
       
   165     error = settings->FindServiceNamesL( ids, *nameArray );  
       
   166     User::LeaveIfError( error );
       
   167     TBool ready = EFalse;   
       
   168     const TInt count = nameArray->MdcaCount();
       
   169     for( TInt i = 0; !ready && i < count; i++)
       
   170         {
       
   171         TPtrC desc = nameArray->MdcaPoint( i );
       
   172         if( desc.CompareF( aScheme ) == 0 )
       
   173             {
       
   174             CSPProperty* property = CSPProperty::NewLC();
       
   175             TServicePropertyName feature = ( TServicePropertyName )aFeature; 
       
   176             error = settings->FindPropertyL( ids[i], feature, *property );
       
   177             if( KErrNone == error )
       
   178                 {
       
   179                 isImCapable = ETrue;
       
   180                 ready = ETrue;
       
   181                 }
       
   182             CleanupStack::PopAndDestroy();  //property
       
   183             }
       
   184         }
       
   185     CleanupStack::PopAndDestroy( 3 );  //nameArray, settings, ids
       
   186     return isImCapable;
       
   187     }
       
   188 
       
   189 // ----------------------------------------------------------
       
   190 // CmsServerUtils::MatchFieldType
       
   191 // 
       
   192 // ----------------------------------------------------------
       
   193 //
       
   194 TInt CmsServerUtils::MatchFieldType( CCmsContactFieldItem::TCmsContactField aCmsFieldType )
       
   195     {
       
   196     PRINT1( _L( "CmsServerUtils::MatchFieldType( enum ) - Field: %d" ), aCmsFieldType );
       
   197    
       
   198     switch( aCmsFieldType )
       
   199         {
       
   200         case CCmsContactFieldItem::ECmsLastName:
       
   201             return R_VPBK_FIELD_TYPE_LASTNAME;
       
   202         case CCmsContactFieldItem::ECmsMiddleName:
       
   203             return R_VPBK_FIELD_TYPE_MIDDLENAME;
       
   204         case CCmsContactFieldItem::ECmsFirstName:
       
   205             return R_VPBK_FIELD_TYPE_FIRSTNAME;
       
   206         case CCmsContactFieldItem::ECmsLandPhoneGeneric:
       
   207             return R_VPBK_FIELD_TYPE_LANDPHONEGEN;
       
   208         case CCmsContactFieldItem::ECmsLandPhoneHome:
       
   209             return R_VPBK_FIELD_TYPE_LANDPHONEHOME;
       
   210         case CCmsContactFieldItem::ECmsMobilePhoneHome:
       
   211             return R_VPBK_FIELD_TYPE_MOBILEPHONEHOME;
       
   212         case CCmsContactFieldItem::ECmsFaxNumberHome:
       
   213             return R_VPBK_FIELD_TYPE_FAXNUMBERHOME;
       
   214         case CCmsContactFieldItem::ECmsVideoNumberHome:
       
   215             return R_VPBK_FIELD_TYPE_VIDEONUMBERHOME;
       
   216         case CCmsContactFieldItem::ECmsAddrLabelGeneric:
       
   217             return R_VPBK_FIELD_TYPE_ADDRLABELGEN;
       
   218         case CCmsContactFieldItem::ECmsAddrPOGeneric:
       
   219             return R_VPBK_FIELD_TYPE_ADDRPOGEN;
       
   220         case CCmsContactFieldItem::ECmsAddrExtGeneric:
       
   221             return R_VPBK_FIELD_TYPE_ADDREXTGEN;
       
   222         case CCmsContactFieldItem::ECmsAddrStreetGeneric:
       
   223             return R_VPBK_FIELD_TYPE_ADDRSTREETGEN;
       
   224         case CCmsContactFieldItem::ECmsAddrLocalGeneric:
       
   225             return R_VPBK_FIELD_TYPE_ADDRLOCALGEN;
       
   226         case CCmsContactFieldItem::ECmsAddrRegionGeneric:
       
   227             return R_VPBK_FIELD_TYPE_ADDRREGIONGEN;
       
   228         case CCmsContactFieldItem::ECmsAddrPostcodeGeneric:
       
   229             return R_VPBK_FIELD_TYPE_ADDRPOSTCODEGEN;
       
   230         case CCmsContactFieldItem::ECmsAddrCountryGeneric:
       
   231             return R_VPBK_FIELD_TYPE_ADDRCOUNTRYGEN;        
       
   232         case CCmsContactFieldItem::ECmsAddrLabelHome:
       
   233             return R_VPBK_FIELD_TYPE_ADDRLABELHOME;
       
   234         case CCmsContactFieldItem::ECmsAddrPOHome:
       
   235             return R_VPBK_FIELD_TYPE_ADDRPOHOME;
       
   236         case CCmsContactFieldItem::ECmsAddrExtHome:
       
   237             return R_VPBK_FIELD_TYPE_ADDREXTHOME;
       
   238         case CCmsContactFieldItem::ECmsAddrStreetHome:
       
   239             return R_VPBK_FIELD_TYPE_ADDRSTREETHOME;
       
   240         case CCmsContactFieldItem::ECmsAddrLocalHome:
       
   241            return R_VPBK_FIELD_TYPE_ADDRLOCALHOME;
       
   242         case CCmsContactFieldItem::ECmsAddrRegionHome:
       
   243             return R_VPBK_FIELD_TYPE_ADDRREGIONHOME;
       
   244         case CCmsContactFieldItem::ECmsAddrPostcodeHome:
       
   245             return R_VPBK_FIELD_TYPE_ADDRPOSTCODEHOME;
       
   246         case CCmsContactFieldItem::ECmsAddrCountryHome:
       
   247             return R_VPBK_FIELD_TYPE_ADDRCOUNTRYHOME;
       
   248             
       
   249         case CCmsContactFieldItem::ECmsAddrLabelWork:
       
   250             return R_VPBK_FIELD_TYPE_ADDRLABELWORK;
       
   251         case CCmsContactFieldItem::ECmsAddrPOWork:
       
   252             return R_VPBK_FIELD_TYPE_ADDRPOWORK;
       
   253         case CCmsContactFieldItem::ECmsAddrExtWork:
       
   254             return R_VPBK_FIELD_TYPE_ADDREXTWORK;
       
   255         case CCmsContactFieldItem::ECmsAddrStreetWork:
       
   256             return R_VPBK_FIELD_TYPE_ADDRSTREETWORK;
       
   257         case CCmsContactFieldItem::ECmsAddrLocalWork:
       
   258            return R_VPBK_FIELD_TYPE_ADDRLOCALWORK;
       
   259         case CCmsContactFieldItem::ECmsAddrRegionWork:
       
   260             return R_VPBK_FIELD_TYPE_ADDRREGIONWORK;
       
   261         case CCmsContactFieldItem::ECmsAddrPostcodeWork:
       
   262             return R_VPBK_FIELD_TYPE_ADDRPOSTCODEWORK;
       
   263         case CCmsContactFieldItem::ECmsAddrCountryWork:
       
   264             return R_VPBK_FIELD_TYPE_ADDRCOUNTRYWORK;
       
   265             
       
   266         case CCmsContactFieldItem::ECmsVoipNumberHome:
       
   267             return R_VPBK_FIELD_TYPE_VOIPHOME;
       
   268         case CCmsContactFieldItem::ECmsEmailHome:
       
   269             return R_VPBK_FIELD_TYPE_EMAILHOME;
       
   270         case CCmsContactFieldItem::ECmsLandPhoneWork:
       
   271             return R_VPBK_FIELD_TYPE_LANDPHONEWORK;
       
   272         case CCmsContactFieldItem::ECmsEmailGeneric:
       
   273             return R_VPBK_FIELD_TYPE_EMAILGEN;
       
   274         case CCmsContactFieldItem::ECmsMobilePhoneGeneric:
       
   275             return R_VPBK_FIELD_TYPE_MOBILEPHONEGEN;
       
   276         case CCmsContactFieldItem::ECmsMobilePhoneWork:
       
   277             return R_VPBK_FIELD_TYPE_MOBILEPHONEWORK;
       
   278         case CCmsContactFieldItem::ECmsVideoNumberWork:
       
   279             return R_VPBK_FIELD_TYPE_VIDEONUMBERWORK;
       
   280         case CCmsContactFieldItem::ECmsVideoNumberGeneric:
       
   281             return R_VPBK_FIELD_TYPE_VIDEONUMBERGEN;  
       
   282         case CCmsContactFieldItem::ECmsFaxNumberWork:
       
   283             return R_VPBK_FIELD_TYPE_FAXNUMBERWORK;
       
   284         case CCmsContactFieldItem::ECmsVoipNumberWork:
       
   285             return R_VPBK_FIELD_TYPE_VOIPWORK;
       
   286         case CCmsContactFieldItem::ECmsVoipNumberGeneric:
       
   287             return R_VPBK_FIELD_TYPE_VOIPGEN;
       
   288         case CCmsContactFieldItem::ECmsEmailWork:
       
   289             return R_VPBK_FIELD_TYPE_EMAILWORK;
       
   290         case CCmsContactFieldItem::ECmsSipAddress:
       
   291             return R_VPBK_FIELD_TYPE_SIP;
       
   292         case CCmsContactFieldItem::ECmsThumbnailPic:
       
   293             return R_VPBK_FIELD_TYPE_THUMBNAILPIC;
       
   294         case CCmsContactFieldItem::ECmsImpp:       
       
   295             return R_VPBK_FIELD_TYPE_IMPP;    
       
   296         case CCmsContactFieldItem::ECmsFullName:
       
   297             return aCmsFieldType; //do not change anything
       
   298         case CCmsContactFieldItem::ECmsUrlWork:
       
   299             return R_VPBK_FIELD_TYPE_URLWORK;
       
   300         case CCmsContactFieldItem::ECmsUrlHome:
       
   301             return R_VPBK_FIELD_TYPE_URLHOME;
       
   302         case CCmsContactFieldItem::ECmsUrlGeneric:
       
   303             return R_VPBK_FIELD_TYPE_URLGEN;
       
   304         case CCmsContactFieldItem::ECmsNote:
       
   305             return R_VPBK_FIELD_TYPE_NOTE;
       
   306         case CCmsContactFieldItem::ECmsNickname:
       
   307             return R_VPBK_FIELD_TYPE_SECONDNAME;    //TODO!!
       
   308         case CCmsContactFieldItem::ECmsJobTitle:
       
   309             return R_VPBK_FIELD_TYPE_JOBTITLE;
       
   310         case CCmsContactFieldItem::ECmsCompanyName:
       
   311             return R_VPBK_FIELD_TYPE_COMPANYNAME;
       
   312         case CCmsContactFieldItem::ECmsDepartment:
       
   313             return R_VPBK_FIELD_TYPE_DEPARTMENT;
       
   314         case CCmsContactFieldItem::ECmsBirthday:
       
   315             return KErrNotFound;    //TODO!!
       
   316         case CCmsContactFieldItem::ECmsAnniversary:
       
   317             return R_VPBK_FIELD_TYPE_ANNIVERSARY;
       
   318         case CCmsContactFieldItem::ECmsAssistantNumber:
       
   319             return R_VPBK_FIELD_TYPE_ASSTPHONE;
       
   320         case CCmsContactFieldItem::ECmsPagerNumber:
       
   321             return R_VPBK_FIELD_TYPE_PAGERNUMBER;
       
   322         case CCmsContactFieldItem::ECmsCarPhone:
       
   323             return R_VPBK_FIELD_TYPE_CARPHONE;
       
   324         case CCmsContactFieldItem::ECmsPushToTalk:
       
   325             return R_VPBK_FIELD_TYPE_POC;
       
   326         case CCmsContactFieldItem::ECmsShareView:
       
   327             return R_VPBK_FIELD_TYPE_SWIS;
       
   328         case CCmsContactFieldItem::ECmsAddrGeoGeneric:
       
   329             return R_VPBK_FIELD_TYPE_GEOGEN;
       
   330         case CCmsContactFieldItem::ECmsAddrGeoHome:
       
   331             return R_VPBK_FIELD_TYPE_GEOHOME;
       
   332         case CCmsContactFieldItem::ECmsAddrGeoWork:
       
   333             return R_VPBK_FIELD_TYPE_GEOWORK;
       
   334         case CCmsContactFieldItem::ECmsImageName:
       
   335             return R_VPBK_FIELD_TYPE_CALLEROBJIMG;
       
   336         default:
       
   337             return KErrNotFound; 
       
   338         }
       
   339     }
       
   340 
       
   341 // ----------------------------------------------------------
       
   342 // CmsServerUtils::MatchFieldType
       
   343 // 
       
   344 // ----------------------------------------------------------
       
   345 //
       
   346 CCmsContactFieldItem::TCmsContactField CmsServerUtils::MatchFieldType( TInt aPhonebookResId )
       
   347     {
       
   348     PRINT1( _L( "CmsServerUtils::MatchFieldType( ResID ) - Field: %d" ), aPhonebookResId );
       
   349     
       
   350     switch( aPhonebookResId )
       
   351         {
       
   352         case R_VPBK_FIELD_TYPE_LASTNAME:
       
   353             return CCmsContactFieldItem::ECmsLastName;
       
   354         case R_VPBK_FIELD_TYPE_MIDDLENAME:
       
   355             return CCmsContactFieldItem::ECmsMiddleName;
       
   356         case R_VPBK_FIELD_TYPE_FIRSTNAME:
       
   357             return CCmsContactFieldItem::ECmsFirstName;
       
   358         case R_VPBK_FIELD_TYPE_LANDPHONEGEN:
       
   359             return CCmsContactFieldItem::ECmsLandPhoneGeneric;
       
   360         case R_VPBK_FIELD_TYPE_LANDPHONEHOME:
       
   361             return CCmsContactFieldItem::ECmsLandPhoneHome;
       
   362         case R_VPBK_FIELD_TYPE_MOBILEPHONEHOME:
       
   363             return CCmsContactFieldItem::ECmsMobilePhoneHome;
       
   364         case R_VPBK_FIELD_TYPE_ADDRLABELGEN:
       
   365             return CCmsContactFieldItem::ECmsAddrLabelGeneric;
       
   366         case R_VPBK_FIELD_TYPE_ADDRPOGEN:
       
   367             return CCmsContactFieldItem::ECmsAddrPOGeneric;
       
   368         case R_VPBK_FIELD_TYPE_ADDREXTGEN:
       
   369             return CCmsContactFieldItem::ECmsAddrExtGeneric;
       
   370         case R_VPBK_FIELD_TYPE_ADDRSTREETGEN:
       
   371             return CCmsContactFieldItem::ECmsAddrStreetGeneric;
       
   372         case R_VPBK_FIELD_TYPE_ADDRLOCALGEN:
       
   373             return CCmsContactFieldItem::ECmsAddrLocalGeneric;
       
   374         case R_VPBK_FIELD_TYPE_ADDRREGIONGEN:
       
   375             return CCmsContactFieldItem::ECmsAddrRegionGeneric;
       
   376         case R_VPBK_FIELD_TYPE_ADDRPOSTCODEGEN:
       
   377             return CCmsContactFieldItem::ECmsAddrPostcodeGeneric;
       
   378         case R_VPBK_FIELD_TYPE_ADDRCOUNTRYGEN:
       
   379             return CCmsContactFieldItem::ECmsAddrCountryGeneric;
       
   380         case R_VPBK_FIELD_TYPE_ADDRLABELHOME:
       
   381             return CCmsContactFieldItem::ECmsAddrLabelHome;
       
   382         case R_VPBK_FIELD_TYPE_ADDRPOHOME:
       
   383             return CCmsContactFieldItem::ECmsAddrPOHome;
       
   384         case R_VPBK_FIELD_TYPE_ADDREXTHOME:
       
   385             return CCmsContactFieldItem::ECmsAddrExtHome;
       
   386         case R_VPBK_FIELD_TYPE_ADDRSTREETHOME:
       
   387             return CCmsContactFieldItem::ECmsAddrStreetHome; 
       
   388         case R_VPBK_FIELD_TYPE_ADDRLOCALHOME:
       
   389            return CCmsContactFieldItem::ECmsAddrLocalHome; 
       
   390         case R_VPBK_FIELD_TYPE_ADDRREGIONHOME:
       
   391             return CCmsContactFieldItem::ECmsAddrRegionHome;
       
   392         case R_VPBK_FIELD_TYPE_ADDRPOSTCODEHOME:
       
   393             return CCmsContactFieldItem::ECmsAddrPostcodeHome;
       
   394         case R_VPBK_FIELD_TYPE_ADDRCOUNTRYHOME:
       
   395             return CCmsContactFieldItem::ECmsAddrCountryHome;
       
   396             
       
   397         case R_VPBK_FIELD_TYPE_ADDRLABELWORK:
       
   398             return CCmsContactFieldItem::ECmsAddrLabelWork;
       
   399         case R_VPBK_FIELD_TYPE_ADDRPOWORK:
       
   400             return CCmsContactFieldItem::ECmsAddrPOWork;
       
   401         case R_VPBK_FIELD_TYPE_ADDREXTWORK:
       
   402             return CCmsContactFieldItem::ECmsAddrExtWork;
       
   403         case R_VPBK_FIELD_TYPE_ADDRSTREETWORK:
       
   404             return CCmsContactFieldItem::ECmsAddrStreetWork; 
       
   405         case R_VPBK_FIELD_TYPE_ADDRLOCALWORK:
       
   406            return CCmsContactFieldItem::ECmsAddrLocalWork; 
       
   407         case R_VPBK_FIELD_TYPE_ADDRREGIONWORK:
       
   408             return CCmsContactFieldItem::ECmsAddrRegionWork;
       
   409         case R_VPBK_FIELD_TYPE_ADDRPOSTCODEWORK:
       
   410             return CCmsContactFieldItem::ECmsAddrPostcodeWork;
       
   411         case R_VPBK_FIELD_TYPE_ADDRCOUNTRYWORK:
       
   412             return CCmsContactFieldItem::ECmsAddrCountryWork;
       
   413             
       
   414         case R_VPBK_FIELD_TYPE_FAXNUMBERHOME:
       
   415             return CCmsContactFieldItem::ECmsFaxNumberHome;
       
   416         case R_VPBK_FIELD_TYPE_VIDEONUMBERHOME:
       
   417             return CCmsContactFieldItem::ECmsVideoNumberHome;
       
   418         case R_VPBK_FIELD_TYPE_VOIPHOME:
       
   419             return CCmsContactFieldItem::ECmsVoipNumberHome;
       
   420         case R_VPBK_FIELD_TYPE_EMAILHOME:
       
   421             return CCmsContactFieldItem::ECmsEmailHome;
       
   422         case R_VPBK_FIELD_TYPE_LANDPHONEWORK:
       
   423             return CCmsContactFieldItem::ECmsLandPhoneWork;
       
   424         case R_VPBK_FIELD_TYPE_MOBILEPHONEWORK:
       
   425             return CCmsContactFieldItem::ECmsMobilePhoneWork;
       
   426         case R_VPBK_FIELD_TYPE_VIDEONUMBERWORK:
       
   427             return CCmsContactFieldItem::ECmsVideoNumberWork;
       
   428         case R_VPBK_FIELD_TYPE_FAXNUMBERWORK:
       
   429             return CCmsContactFieldItem::ECmsFaxNumberWork;
       
   430         case R_VPBK_FIELD_TYPE_VOIPWORK:
       
   431             return CCmsContactFieldItem::ECmsVoipNumberWork;
       
   432         case R_VPBK_FIELD_TYPE_EMAILWORK:
       
   433             return CCmsContactFieldItem::ECmsEmailWork;
       
   434         case R_VPBK_FIELD_TYPE_MOBILEPHONEGEN:
       
   435             return CCmsContactFieldItem::ECmsMobilePhoneGeneric;
       
   436         case R_VPBK_FIELD_TYPE_VOIPGEN:
       
   437             return CCmsContactFieldItem::ECmsVoipNumberGeneric;
       
   438         case R_VPBK_FIELD_TYPE_VIDEONUMBERGEN:
       
   439             return CCmsContactFieldItem::ECmsVideoNumberGeneric;
       
   440         case R_VPBK_FIELD_TYPE_EMAILGEN:
       
   441             return CCmsContactFieldItem::ECmsEmailGeneric;
       
   442         case R_VPBK_FIELD_TYPE_SIP:
       
   443             return CCmsContactFieldItem::ECmsSipAddress;
       
   444         case R_VPBK_FIELD_TYPE_THUMBNAILPIC:
       
   445             return CCmsContactFieldItem::ECmsThumbnailPic;
       
   446         case R_VPBK_FIELD_TYPE_URLGEN:
       
   447             return CCmsContactFieldItem::ECmsUrlGeneric;
       
   448         case R_VPBK_FIELD_TYPE_URLHOME:
       
   449             return CCmsContactFieldItem::ECmsUrlHome;
       
   450         case R_VPBK_FIELD_TYPE_URLWORK:
       
   451             return CCmsContactFieldItem::ECmsUrlWork;
       
   452         case R_VPBK_FIELD_TYPE_IMPP:        
       
   453             return CCmsContactFieldItem::ECmsImpp;
       
   454         case R_VPBK_FIELD_TYPE_NOTE:
       
   455             return CCmsContactFieldItem::ECmsNote;
       
   456         case R_VPBK_FIELD_TYPE_SECONDNAME:
       
   457             return CCmsContactFieldItem::ECmsNickname;    //TODO!!
       
   458         case R_VPBK_FIELD_TYPE_JOBTITLE:
       
   459             return CCmsContactFieldItem::ECmsJobTitle;
       
   460         case R_VPBK_FIELD_TYPE_COMPANYNAME:
       
   461             return CCmsContactFieldItem::ECmsCompanyName;
       
   462         case R_VPBK_FIELD_TYPE_DEPARTMENT:
       
   463             return CCmsContactFieldItem::ECmsDepartment;
       
   464         //case CCmsContactFieldItem::ECmsBirthday:
       
   465         //    return KErrNotFound;    //TODO!!
       
   466         case R_VPBK_FIELD_TYPE_ANNIVERSARY:
       
   467             return CCmsContactFieldItem::ECmsAnniversary;
       
   468         case R_VPBK_FIELD_TYPE_ASSTPHONE:
       
   469             return CCmsContactFieldItem::ECmsAssistantNumber;
       
   470         case R_VPBK_FIELD_TYPE_PAGERNUMBER:
       
   471             return CCmsContactFieldItem::ECmsPagerNumber;
       
   472         case R_VPBK_FIELD_TYPE_CARPHONE:
       
   473             return CCmsContactFieldItem::ECmsCarPhone;
       
   474         case R_VPBK_FIELD_TYPE_POC:
       
   475             return CCmsContactFieldItem::ECmsPushToTalk;
       
   476         case R_VPBK_FIELD_TYPE_SWIS:
       
   477             return CCmsContactFieldItem::ECmsShareView;
       
   478         case R_VPBK_FIELD_TYPE_GEOGEN:
       
   479             return CCmsContactFieldItem::ECmsAddrGeoGeneric;
       
   480         case R_VPBK_FIELD_TYPE_GEOHOME:
       
   481             return CCmsContactFieldItem::ECmsAddrGeoHome;
       
   482         case R_VPBK_FIELD_TYPE_GEOWORK:
       
   483             return CCmsContactFieldItem::ECmsAddrGeoWork;
       
   484         case R_VPBK_FIELD_TYPE_CALLEROBJIMG:
       
   485             return CCmsContactFieldItem::ECmsImageName;
       
   486         default:
       
   487             return CCmsContactFieldItem::ECmsUndefined;
       
   488         }
       
   489     }
       
   490 
       
   491 
       
   492 
       
   493 
       
   494 
       
   495 
       
   496 
       
   497