telephonyserverplugins/licenseetsystub/licensee_tsy_stub/src/cmmmockmesshandler.cpp
changeset 0 3553901f7fa8
child 14 7ef16719d8cb
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 
       
    14 //  INCLUDE FILES
       
    15 #include "cmmmockmesshandler.h"
       
    16 #include "cmmmessagerouter.h"
       
    17 #include "cmmcustomstubext.h"
       
    18 #include "tflogger.h"
       
    19 #include <pcktcs.h>
       
    20 #include <ctsy/rmmcustomapi.h>
       
    21 
       
    22 // callback timer interval
       
    23 const TInt KTimeInterval = 1000000; 
       
    24 const TUint KTmpPckgSize = 15; 
       
    25 
       
    26 // ======== MEMBER FUNCTIONS ========
       
    27 
       
    28 CMmMockMessHandler::CMmMockMessHandler()
       
    29     {  
       
    30     }
       
    31 
       
    32 void CMmMockMessHandler::ConstructL( CMmMessageRouter* aMessageRouter )
       
    33     {
       
    34     iMessageRouter = aMessageRouter;
       
    35 
       
    36     if ( !iTimer )
       
    37         {
       
    38         iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
       
    39  TFLOGSTRING("TSY: CMmMockMessHandler::ConstructL: timer created" );
       
    40         }
       
    41     }
       
    42 
       
    43 CMmMockMessHandler* CMmMockMessHandler::NewL( 
       
    44     CMmMessageRouter* aMessageRouter )
       
    45     {
       
    46     CMmMockMessHandler* self = new( ELeave ) CMmMockMessHandler();
       
    47     CleanupStack::PushL( self );
       
    48     self->ConstructL( aMessageRouter );
       
    49     CleanupStack::Pop();
       
    50     return self;
       
    51     }
       
    52 
       
    53 CMmMockMessHandler::~CMmMockMessHandler()
       
    54     {
       
    55     delete iTimer;
       
    56     iTimer = NULL;
       
    57     }
       
    58 
       
    59 // ---------------------------------------------------------------------------
       
    60 // CMmMockMessHandler::ExtFuncL
       
    61 // Handles stub requests
       
    62 // (other items were commented in a header)
       
    63 // ---------------------------------------------------------------------------
       
    64 //
       
    65 TInt CMmMockMessHandler::ExtFuncL( 
       
    66     TInt aIpc, 
       
    67     const CMmDataPackage* aDataPackage )
       
    68     {
       
    69 TFLOGSTRING2("TSY: CMmMockMessHandler::ExtFuncL. IPC: %d", aIpc );
       
    70     
       
    71     // callback indicators
       
    72     TInt ret( KErrNotSupported );
       
    73     TBool complete( EFalse );
       
    74     
       
    75     // datapackage for complete
       
    76     CMmDataPackage data;
       
    77     CMmDataPackage* package;
       
    78     package = NULL;
       
    79     TBuf8<KTmpPckgSize> temp;
       
    80     TUint8 routingActivated = 0x0;
       
    81     TInt mode( 0 );
       
    82     
       
    83     switch ( aIpc )
       
    84         {
       
    85         // return KErrNone without complete    
       
    86         case EMobilePhoneGetWaitingStatusPhase1:
       
    87         case EMobilePhoneGetALSLine:  
       
    88         case EMobilePhoneGetCallForwardingStatusPhase1:
       
    89         case EMobilePhoneGetLockInfo:
       
    90         case EMobilePhoneSetLockSetting:
       
    91         case EMobilePhoneGetBarringStatusPhase1:   
       
    92         case EMobileConferenceCallNotifyConferenceEvent:
       
    93         case EMobileConferenceCallNotifyCapsChangeCancel:
       
    94         case EMobileConferenceCallNotifyConferenceStatusChangeCancel:
       
    95         case EMobileConferenceCallNotifyConferenceEventCancel:
       
    96         case EMobileConferenceCallNotifyCapsChange:  
       
    97         case EMmTsyPhoneBookStoreWriteIPC:
       
    98         case EMmTsyONStoreDeleteIPC:   
       
    99         case EMmTsyPhoneBookStoreInitIPC:
       
   100         case EMmTsyPhoneBookStoreGetInfoIPC:
       
   101         case EMmTsyONStoreReadIPC:           
       
   102         case EMmTsyONStoreNotifyStoreEventIPC:            
       
   103         case EMobilePhoneStoreGetInfo:
       
   104         case EMobileSmsMessagingAckSmsStored:
       
   105         case EMobileSmsMessagingNackSmsStored:
       
   106         case EMobilePhoneStoreDelete:
       
   107         case EMobilePhoneStoreDeleteAll:
       
   108         case EMobilePhoneStoreRead: 
       
   109         case EMobilePhoneStoreWrite:
       
   110         case EMobileBroadcastMessagingReceiveMessage:
       
   111         case EMobileUssdMessagingSendMessage:
       
   112         case EMobileSmsMessagingGetMessageStoreInfo: 
       
   113         case EMobileSmsMessagingGetSmspListPhase1:
       
   114         case EMobilePhoneStoreReadAllPhase1:
       
   115         case EPacketNotifyDynamicCapsChange:
       
   116         case EPacketNotifyContextAdded:
       
   117         case EPacketNotifyStatusChange:
       
   118         case EPacketContextAddPacketFilter:
       
   119             ret = KErrNone;
       
   120             break;
       
   121         
       
   122         // return KErrNone and complete         
       
   123         case EMobilePhoneSetALSLine:
       
   124         case EMobilePhoneSelectNetwork:  
       
   125         case EMmTsyBootNotifySimStatusReadyIPC:      
       
   126         case EMobilePhoneSetCallWaitingStatus:
       
   127         case EMobilePhoneStopDTMFTone:
       
   128         case EMobilePhoneSetNetworkSelectionSetting:
       
   129         case EMobilePhoneSetCallForwardingStatus:
       
   130         case EMobilePhoneSetCallBarringStatus:
       
   131         case EMobilePhoneSendNetworkServiceRequest:
       
   132         case EMobilePhoneChangeSecurityCode:
       
   133         case EMobilePhoneAbortSecurityCode:
       
   134         case EMobilePhoneSetSSPassword:
       
   135         case EMobilePhoneSelectNetworkCancel:
       
   136         case EMobilePhoneGetDetectedNetworksCancel:
       
   137         case EMobileCallDialEmergencyCall:
       
   138         case EMobileCallSwap:
       
   139         case EMobileCallHold:
       
   140         case EMobileCallResume:
       
   141         case EMobileCallGoOneToOne:
       
   142         case EMobileCallTransfer:
       
   143         case EEtelCallAnswer:
       
   144         case EEtelCallHangUp:
       
   145         case EMobileCallSetDynamicHscsdParams:  
       
   146         case EMobileConferenceCallAddCall:
       
   147         case EMobileConferenceCallCreateConference:
       
   148         case EMobileConferenceCallSwap:
       
   149         case EMobileConferenceCallHangUp:
       
   150         case EMobileConferenceCallNotifyConferenceStatusChange: 
       
   151         case EMmTsyPhoneBookStoreCacheIPC:
       
   152         case EMmTsyPhoneBookStoreDeleteIPC:
       
   153         case EMmTsyPhoneBookStoreDeleteAllIPC:
       
   154         case EMmTsyONStoreWriteIPC: 
       
   155         case EMmTsyONStoreStoreAllIPC:
       
   156         case EMmTsyONStoreDeleteAllIPC:  
       
   157         case EMobileSmsMessagingStoreSmspList:
       
   158         case EMobileBroadcastMessagingReceiveMessageCancel:  
       
   159         case EMobileSmsMessagingSetMoSmsBearer:
       
   160         case ECustomTerminateCallIPC:
       
   161         case ECustomNetWakeupIPC:
       
   162         case ECustomSetAlsBlockedIPC:
       
   163         case ECustomClearCallBlackListIPC:
       
   164         case ECustomResetNetServerIPC:
       
   165         case ECustomSimLockActivateIPC:
       
   166         case ECustomSimLockDeActivateIPC:
       
   167         case ECustomDeleteSimCbTopicIPC:           
       
   168         case ECustomCheckSecurityCodeIPC:
       
   169         case ECustomCheckSecurityCodeCancelIPC:
       
   170         case ECustomDisablePhoneLockIPC: 
       
   171         case EPacketSetAttachMode:
       
   172         case EPacketSetDefaultContextParams:
       
   173             complete = ETrue;
       
   174             ret = KErrNone;
       
   175             break;
       
   176         
       
   177         // return KErrNotSupported and complete     
       
   178         case EMobilePhoneSendDTMFTones:
       
   179         case EMobilePhoneSendDTMFTonesCancel:
       
   180         case EMobilePhoneGetIdentityServiceStatus:
       
   181         case ECustomStartSimCbTopicBrowsingIPC:
       
   182             ret = KErrNotSupported;
       
   183             complete = ETrue;
       
   184             break; 
       
   185         
       
   186         // return KErrNotSupported    
       
   187         case EMobilePhoneGetNetworkRegistrationStatus:
       
   188         case EMobilePhoneGetPhoneStoreInfo:
       
   189         case EMmTsySimGetICCType:
       
   190         case EMmTsySecurityGetSimActivePinStateIPC:
       
   191         case EMobilePhoneGetDetectedNetworksV2Phase1:    
       
   192         case EMobilePhoneGetCipheringIndicatorStatus:
       
   193         case EMobilePhoneContinueDTMFStringSending:
       
   194         case EMobilePhoneStartDTMFTone:
       
   195         case EMobilePhoneGetServiceTable:
       
   196         case EMobilePhoneVerifySecurityCode:          
       
   197         case EMobileCallActivateCCBS:
       
   198         case EMobilePhoneAcceptCCBSRecall:
       
   199         case EMobilePhoneClearBlacklist:
       
   200         case EMobileCallDeflect:  
       
   201         case EMobileConferenceCallCreateConferenceCancel:
       
   202         case EMobileConferenceCallAddCallCancel:
       
   203         case EMobileConferenceCallSwapCancel:
       
   204         case EMobileConferenceCallHangUpCancel:  
       
   205         case EMobileConferenceCallGetCaps:
       
   206         case EMobileConferenceCallEnumerateCalls:   
       
   207         case EMmTsyENStoreReadAllPhase1IPC:
       
   208         case EMmTsyENStoreReadIPC: 
       
   209         case EMmTsyENStoreGetInfoIPC:
       
   210         case EMmTsyONStoreGetInfoIPC: 
       
   211         case EMobileSmsMessagingSendMessage:
       
   212         case EMmTsySmsSendSatMessage:   
       
   213         case EMobileSmsMessagingResumeSmsReception:    
       
   214         case ECustomCheckAlsPpSupportIPC:   
       
   215         case ECustomGetCipheringInfoIPC:
       
   216         case ECustomGetAlsBlockedIPC:
       
   217         case ECustomCheckEmergencyNumberIPC:
       
   218         case ECustomGetOperatorNameIPC:
       
   219         case ECustomCheckTwoDigitDialSupportIPC:    
       
   220         case ECustomGetNetworkProviderNameIPC:
       
   221         case ECustomReadSimFileIPC:
       
   222         case ECustomGetLifeTimeIPC:
       
   223         case ECustomSendAPDUReqIPC:
       
   224         case ECustomIsBlockedIPC:   
       
   225         case EPacketAttach:
       
   226         case EPacketDetach:
       
   227         case EPacketGetNtwkRegStatus:
       
   228         case EPacketSetPrefBearer:
       
   229         case EPacketRejectActivationRequest:    
       
   230         case EPacketContextGetDataVolumeTransferred:
       
   231         case EPacketContextInitialiseContext:             
       
   232         case EPacketContextDelete:
       
   233         case EPacketContextSetConfig:
       
   234         case EPacketContextActivate:
       
   235         case EPacketContextDeactivate:
       
   236         case EPacketContextModifyActiveContext:
       
   237         case EPacketQoSSetProfileParams:
       
   238             ret = KErrNotSupported;
       
   239             break; 
       
   240         
       
   241         // return KErrNotReady
       
   242         case EMobileConferenceCallGetMobileCallInfo:
       
   243             ret = KErrNotReady;
       
   244             break;
       
   245             
       
   246         // return KErrNotFound
       
   247         case EMmTsyPhoneBookStoreReadIPC:
       
   248             ret = KErrNotFound;
       
   249             break; 
       
   250             
       
   251             
       
   252         case EPacketInitProxiesIPC:
       
   253             GetHomeNetworkInfo();
       
   254             ret = KErrNone;
       
   255             break;
       
   256         case EPacketGetAttachMode:
       
   257             complete  = ETrue;
       
   258             mode = 1;          // 1 = When needed
       
   259             data.PackData( &mode );
       
   260             package = &data;
       
   261             ret = KErrNone;
       
   262             break;  
       
   263         case EMobilePhoneGetPhoneId:
       
   264             iTimer->Cancel();
       
   265             iTimer->Start( KTimeInterval, KTimeInterval, 
       
   266                 TCallBack( TimerCallback, this ) );    
       
   267             ret = KErrNone;
       
   268             break;       
       
   269         case EMobilePhoneGetSubscriberId:
       
   270             iTimer->Cancel();
       
   271             iTimer->Start( KTimeInterval, KTimeInterval, 
       
   272                 TCallBack( TimerCallback, this ) );    
       
   273             ret = KErrNone;
       
   274             break;
       
   275         case EMobilePhoneGetHomeNetwork:
       
   276             complete = ETrue;
       
   277             data.PackData( &iMyNetworkInfo );
       
   278             package = &data;
       
   279             ret = KErrNone;
       
   280             break; 
       
   281         case EMmTsyPhoneGetPin1DisableSupportedIPC:
       
   282             complete = ETrue;
       
   283             data.PackData ( &complete ); //Needed value for packet is ETrue
       
   284             package = &data;
       
   285             ret = KErrNone;
       
   286             break;    
       
   287         case EMmTsyActivateSmsRouting:
       
   288             routingActivated = 0x1;    //routing activated      
       
   289             data.PackData( &routingActivated );
       
   290             package = &data;
       
   291             ret = KErrNone;
       
   292             complete = ETrue;
       
   293             break;
       
   294                    
       
   295         // Custom functionality
       
   296         case EMmTsyGetCustomVendorExtPtrIPC:
       
   297             {
       
   298 TFLOGSTRING("TSY: CMmCustomMessHandler::ExtFuncL --- EMmTsyGetCustomVendorExtPtrIPC");            
       
   299             // return pointer to customapi extension
       
   300             CMmCustomVendorExt** extPtr;
       
   301             aDataPackage->UnPackData( &extPtr );
       
   302 
       
   303             if ( !iMmCustomStubExt )
       
   304                 {
       
   305                 iMmCustomStubExt = new ( ELeave ) CMmCustomStubExt( );
       
   306                 }
       
   307 
       
   308             *extPtr = iMmCustomStubExt;
       
   309             iMmCustomStubExt->SetMessageRouter( iMessageRouter );
       
   310             break;
       
   311             }
       
   312             
       
   313         default:
       
   314             ret = KErrNotSupported;
       
   315             break;
       
   316         }
       
   317 
       
   318     if( complete )
       
   319         {
       
   320         if( NULL != package )
       
   321             {
       
   322             iMessageRouter->MessageManager()->Complete( aIpc, package, ret );
       
   323             }
       
   324          else
       
   325              {
       
   326              iMessageRouter->MessageManager()->Complete( aIpc, ret );
       
   327              }
       
   328 
       
   329         return KErrNone; 
       
   330         }
       
   331         
       
   332     return ret;
       
   333     }
       
   334 
       
   335 // ---------------------------------------------------------------------------
       
   336 // CMmMockMessHandler::GetHomeNetwork
       
   337 // Creates and sends default values of Home network
       
   338 // (other items were commented in a header)
       
   339 // ---------------------------------------------------------------------------
       
   340 //
       
   341 void CMmMockMessHandler::GetHomeNetwork()
       
   342     {
       
   343 TFLOGSTRING("TSY: CMmMockMessHandler::GetHomeNetwork."); 
       
   344     
       
   345     iMyNetworkInfo.iMode = RMobilePhone::ENetworkModeGsm,
       
   346     iMyNetworkInfo.iStatus = RMobilePhone::ENetworkStatusCurrent,
       
   347     iMyNetworkInfo.iBandInfo = RMobilePhone::EBandUnknown;
       
   348     _LIT(KCountryCode, "358");
       
   349     iMyNetworkInfo.iCountryCode = KCountryCode;
       
   350     _LIT(KCdmaSID, "");
       
   351     iMyNetworkInfo.iCdmaSID = KCdmaSID;
       
   352     _LIT(KAnalogSID, "");
       
   353     iMyNetworkInfo.iAnalogSID = KAnalogSID;
       
   354     _LIT(KNetworkId, "NMC");
       
   355     iMyNetworkInfo.iNetworkId = KNetworkId;
       
   356     _LIT(KDisplayTag, "?");
       
   357     iMyNetworkInfo.iDisplayTag = KDisplayTag;
       
   358     _LIT(KShortName, "stub");
       
   359     iMyNetworkInfo.iShortName = KShortName;
       
   360     _LIT(KLongName, "stubtsy");
       
   361     iMyNetworkInfo.iLongName = KLongName;
       
   362     }
       
   363 
       
   364 // ---------------------------------------------------------------------------
       
   365 // CMmMockMessHandler::GetHomeNetworkInfo
       
   366 // Requests for GetHomeNetwork
       
   367 // (other items were commented in a header)
       
   368 // ---------------------------------------------------------------------------
       
   369 //
       
   370 void CMmMockMessHandler::GetHomeNetworkInfo()
       
   371     {
       
   372 TFLOGSTRING("TSY: CMmMockMessHandler::GetHomeNetworkInfo.");
       
   373     // call for completion 
       
   374     TRAP_IGNORE( ExtFuncL( EMobilePhoneGetHomeNetwork, NULL ); );
       
   375     }
       
   376 
       
   377 // ---------------------------------------------------------------------------
       
   378 // CMmMockMessHandler::TimerCallback
       
   379 // Compeltes IMEI and IMSI code to CommonTSY
       
   380 // (other items were commented in a header)
       
   381 // ---------------------------------------------------------------------------
       
   382 //
       
   383 TInt CMmMockMessHandler::TimerCallback( TAny* aThis )
       
   384     {
       
   385 TFLOGSTRING("TSY: CMmMockMessHandler::TimerCallback.");
       
   386 
       
   387     // cancel the callback timer
       
   388     ( ( CMmMockMessHandler* )aThis )->iTimer->Cancel();
       
   389     
       
   390     // create datapackage
       
   391     CMmDataPackage data;
       
   392     CMmDataPackage* package;
       
   393     package = NULL;
       
   394     
       
   395     // create dummy phone id            
       
   396     TBuf8<KTmpPckgSize> tmp;
       
   397     _LIT8( phoneid,"000000000000000" );            
       
   398     tmp.Copy( phoneid );
       
   399     data.PackData( &tmp );
       
   400     package = &data; 
       
   401     
       
   402 TFLOGSTRING2("TSY: CMmMockMessHandler::TimerCallback: IPC EMobilePhoneGetPhoneId  Phone Id : %d", phoneid );    
       
   403     ( ( CMmMockMessHandler* ) aThis )->iMessageRouter->MessageManager()->
       
   404         Complete( EMobilePhoneGetPhoneId, package, KErrNone );    
       
   405     
       
   406     //Create dummy IMSI
       
   407     _LIT8( imsi,"000000000000000" );
       
   408     TBuf8<KTmpPckgSize> temp;
       
   409     temp.Copy( imsi );
       
   410     data.PackData( &temp );
       
   411     package = &data;
       
   412     
       
   413 TFLOGSTRING2("TSY:CMmMockMessHandler::TimerCallback: IPC EMobilePhoneGetSubscriberId  Dummy imsi : %d", imsi );    
       
   414     ( ( CMmMockMessHandler* ) aThis )->iMessageRouter->MessageManager()->
       
   415         Complete( EMobilePhoneGetSubscriberId, package, KErrNone );
       
   416     
       
   417     return ETrue;
       
   418     }
       
   419 
       
   420 //  End of File