telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp
branchRCL_3
changeset 66 07a122eea281
parent 65 630d2f34d719
child 74 9200f38b1324
equal deleted inserted replaced
65:630d2f34d719 66:07a122eea281
     1 // Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    14 //
    14 //
    15 
    15 
    16 
    16 
    17 
    17 
    18 // INCLUDE FILES
    18 // INCLUDE FILES
    19 
       
    20 #include "OstTraceDefinitions.h"
       
    21 #ifdef OST_TRACE_COMPILER_IN_USE
       
    22 #include "cmmussdtsyTraces.h"
       
    23 #endif
       
    24 
       
    25 #include <etelmm.h>
    19 #include <etelmm.h>
    26 #include <mmlist.h>
    20 #include <mmlist.h>
    27 #include "cmmussdtsy.h"
    21 #include "cmmussdtsy.h"
    28 #include <ctsy/serviceapi/cmmsmsutility.h>
    22 #include <ctsy/serviceapi/cmmsmsutility.h>
    29 #include "MmTsy_timeoutdefs.h"
    23 #include "MmTsy_timeoutdefs.h"
    41     }
    35     }
    42 
    36 
    43 void CMmUssdTsy::ConstructL(
    37 void CMmUssdTsy::ConstructL(
    44     CMmPhoneTsy* aMmPhoneTsy )
    38     CMmPhoneTsy* aMmPhoneTsy )
    45     {
    39     {
    46 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_CONSTRUCTL_1, "TSY: CMmUssdTsy::ConstructL\n" );
    40 TFLOGSTRING("TSY: CMmUssdTsy::ConstructL\n" );
    47     iMmPhone = aMmPhoneTsy;
    41     iMmPhone = aMmPhoneTsy;
    48 
    42 
    49     // register .
    43     // register .
    50     iMmPhone->MessageManager()->RegisterTsyObject(
    44     iMmPhone->MessageManager()->RegisterTsyObject(
    51 		CMmMessageManagerBase::EUssdMessagingTsy, this );
    45 		CMmMessageManagerBase::EUssdMessagingTsy, this );
    80     return aMmUssdTsy;
    74     return aMmUssdTsy;
    81     }
    75     }
    82 
    76 
    83 CMmUssdTsy::~CMmUssdTsy()
    77 CMmUssdTsy::~CMmUssdTsy()
    84     {
    78     {
    85 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_DTOR_1, "TSY: CMmUssdTsy::~CMmUssdTsy" );
    79 TFLOGSTRING("TSY: CMmUssdTsy::~CMmUssdTsy" );
    86     // unregister.
    80     // unregister.
    87     if ( iMmPhone )
    81     if ( iMmPhone )
    88         {
    82         {
    89         // deregister tsy object from message manager
    83         // deregister tsy object from message manager
    90         iMmPhone->MessageManager()->DeregisterTsyObject(this);        
    84         iMmPhone->MessageManager()->DeregisterTsyObject(this);        
   130     // before processing further the request, check if offline mode status
   124     // before processing further the request, check if offline mode status
   131     // is enabled and if the given request can be perfomed in that case.
   125     // is enabled and if the given request can be perfomed in that case.
   132     if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() && 
   126     if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() && 
   133         ( !IsRequestPossibleInOffline( aIpc ) ) )  
   127         ( !IsRequestPossibleInOffline( aIpc ) ) )  
   134         {
   128         {
   135 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_EXTFUNC_1, "TSY: Offline mode ON, request is not allowed: %d", aIpc );
   129 TFLOGSTRING2 ("TSY: Offline mode ON, request is not allowed: %d", aIpc );
   136         ret = CMmCommonStaticUtility::EpocErrorCode( KErrGeneral, 
   130         ret = CMmCommonStaticUtility::EpocErrorCode( KErrGeneral, 
   137             KErrGsmOfflineOpNotAllowed );
   131             KErrGsmOfflineOpNotAllowed );
   138 
   132 
   139         // Complete the request with appropiate error
   133         // Complete the request with appropiate error
   140         ReqCompleted ( aTsyReqHandle, ret ); 
   134         ReqCompleted ( aTsyReqHandle, ret ); 
   349 // ---------------------------------------------------------------------------
   343 // ---------------------------------------------------------------------------
   350 //
   344 //
   351 TInt CMmUssdTsy::RegisterNotification(
   345 TInt CMmUssdTsy::RegisterNotification(
   352     const TInt aIpc )                             // Notification IPC number
   346     const TInt aIpc )                             // Notification IPC number
   353     {
   347     {
   354     OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_REGISTERNOTIFICATION_1,  "TSY: CMmUssdTsy::RegisterNotification. IPC: %d", aIpc );
   348     TFLOGSTRING2( "TSY: CMmUssdTsy::RegisterNotification. IPC: %d", aIpc );
   355 
   349 
   356     TInt ret( KErrNone );
   350     TInt ret( KErrNone );
   357 
   351 
   358     switch ( aIpc )
   352     switch ( aIpc )
   359         {
   353         {
   380 // ---------------------------------------------------------------------------
   374 // ---------------------------------------------------------------------------
   381 //
   375 //
   382 TInt CMmUssdTsy::DeregisterNotification(
   376 TInt CMmUssdTsy::DeregisterNotification(
   383     const TInt aIpc )                             // Notification IPC number
   377     const TInt aIpc )                             // Notification IPC number
   384     {        
   378     {        
   385     OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_DEREGISTERNOTIFICATION_1,  "TSY: CMmUssdTsy::DeregisterNotification. IPC: %d", aIpc );
   379     TFLOGSTRING2( "TSY: CMmUssdTsy::DeregisterNotification. IPC: %d", aIpc );
   386 
   380 
   387     TInt ret( KErrNone );
   381     TInt ret( KErrNone );
   388 
   382 
   389     switch ( aIpc )
   383     switch ( aIpc )
   390         {
   384         {
   520 //
   514 //
   521 void CMmUssdTsy::CompleteReceiveMessage(
   515 void CMmUssdTsy::CompleteReceiveMessage(
   522     TInt aError, 
   516     TInt aError, 
   523 	CMmDataPackage* aDataPackage )
   517 	CMmDataPackage* aDataPackage )
   524     {
   518     {
   525 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETERECEIVEMESSAGE_1, "TSY: CMmUssdTsy::CompleteReceiveMessage.\n" );
   519 TFLOGSTRING("TSY: CMmUssdTsy::CompleteReceiveMessage.\n" );
   526     TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
   520     TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
   527         EMultimodeUssdReceiveMessage );
   521         EMultimodeUssdReceiveMessage );
   528 
   522 
   529     if ( ( EMultimodeUssdReqHandleUnknown != reqHandle ) )
   523     if ( ( EMultimodeUssdReqHandleUnknown != reqHandle ) )
   530         {
   524         {
   561 TInt CMmUssdTsy::SendMessageL( 
   555 TInt CMmUssdTsy::SendMessageL( 
   562     const TTsyReqHandle aTsyReqHandle, 
   556     const TTsyReqHandle aTsyReqHandle, 
   563     TDes8* aData, 
   557     TDes8* aData, 
   564     TDes8* aAttributes )
   558     TDes8* aAttributes )
   565     { 
   559     { 
   566 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDMESSAGEL_1, "TSY: CMmUssdTsy::SendMessage - Data length: %d", aData->Length() );
   560 TFLOGSTRING2("TSY: CMmUssdTsy::SendMessage - Data length: %d", aData->Length() );
   567 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDMESSAGEL_2, "TSY: CMmUssdTsy::SendMessageL: iUssdNoFdnCheckFlag: %d", iUssdNoFdnCheckFlag);
   561 TFLOGSTRING2("TSY: CMmUssdTsy::SendMessageL: iUssdNoFdnCheckFlag: %d", iUssdNoFdnCheckFlag);  
   568     TInt ret = KErrNone;
   562     TInt ret = KErrNone;
   569 
   563 
   570     if ( iSsTransactionOngoing )
   564     if ( iSsTransactionOngoing )
   571 	    {
   565 	    {
   572 	    ret = KErrServerBusy;
   566 	    ret = KErrServerBusy;
   667 // ---------------------------------------------------------------------------
   661 // ---------------------------------------------------------------------------
   668 //
   662 //
   669 void CMmUssdTsy::CompleteSendMessage(
   663 void CMmUssdTsy::CompleteSendMessage(
   670     TInt aError )
   664     TInt aError )
   671     {
   665     {
   672 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETESENDMESSAGE_1, "TSY: CMmUssdTsy::CompleteSendMessage.\n" );
   666 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendMessage.\n" );
   673     TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
   667     TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
   674         EMultimodeUssdSendMessage );
   668         EMultimodeUssdSendMessage );
   675 	
   669 	
   676     if ( EMultimodeUssdReqHandleUnknown != reqHandle )
   670     if ( EMultimodeUssdReqHandleUnknown != reqHandle )
   677         {
   671         {
   701     if ( 0 < sendReleaseHandle )
   695     if ( 0 < sendReleaseHandle )
   702         {
   696         {
   703         // The request is already in processing because of previous request
   697         // The request is already in processing because of previous request
   704         // Complete request with status value informing the client about 
   698         // Complete request with status value informing the client about 
   705         // the situation.
   699         // the situation.
   706 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDRELEASEL_1, "LTSY: CMmUssdTsy::SendRelease - KErrServerBusy");
   700 TFLOGSTRING("LTSY: CMmUssdTsy::SendRelease - KErrServerBusy");
   707         ReqCompleted( aTsyReqHandle, KErrServerBusy );
   701         ReqCompleted( aTsyReqHandle, KErrServerBusy );
   708         }
   702         }
   709     else
   703     else
   710         {
   704         {
   711 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDRELEASEL_2, "TSY: CMmUssdTsy::SendRelease called");
   705 TFLOGSTRING("TSY: CMmUssdTsy::SendRelease called");
   712 
   706 
   713         TInt ret = KErrGeneral;
   707         TInt ret = KErrGeneral;
   714 
   708 
   715         TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* ussdSendSSRequestPckg =
   709         TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* ussdSendSSRequestPckg =
   716             reinterpret_cast< TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* > 
   710             reinterpret_cast< TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* > 
   762 //
   756 //
   763 void CMmUssdTsy::CompleteSendRelease(
   757 void CMmUssdTsy::CompleteSendRelease(
   764     TInt aErrorCode, 
   758     TInt aErrorCode, 
   765     CMmDataPackage* aDataPackage )
   759     CMmDataPackage* aDataPackage )
   766     {
   760     {
   767 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETESENDRELEASE_1, "TSY: CMmUssdTsy::CompleteSendRelease" );
   761 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendRelease" );
   768     // reset req handle. Returns the deleted req handle
   762     // reset req handle. Returns the deleted req handle
   769     TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( 
   763     TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( 
   770 		EMultimodeUssdSendRelease );
   764 		EMultimodeUssdSendRelease );
   771 
   765 
   772     if( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle )
   766     if( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle )
   809 TInt CMmUssdTsy::NotifyNetworkRelease(
   803 TInt CMmUssdTsy::NotifyNetworkRelease(
   810     const TTsyReqHandle aTsyReqHandle,
   804     const TTsyReqHandle aTsyReqHandle,
   811     TDes8* aMsgData,
   805     TDes8* aMsgData,
   812     TDes8* aMsgAttributes) // aMsgAttributes may be NULL
   806     TDes8* aMsgAttributes) // aMsgAttributes may be NULL
   813     {
   807     {
   814 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_NOTIFYNETWORKRELEASE_1, "TSY: CMmUssdTsy::NotifyNetworkRelease" );
   808 TFLOGSTRING("TSY: CMmUssdTsy::NotifyNetworkRelease" );
   815     
   809     
   816 	if (aMsgData->MaxLength() < sizeof(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg))
   810 	if (aMsgData->MaxLength() < sizeof(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg))
   817 		{
   811 		{
   818 	    OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_NOTIFYNETWORKRELEASE_2, "TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg1)");
   812 	    TFLOGSTRING ("TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg1)");
   819 	    // Complete the request with appropiate error        
   813 	    // Complete the request with appropiate error        
   820 	    return KErrArgument;		
   814 	    return KErrArgument;		
   821 		}
   815 		}
   822 	if (aMsgAttributes && 
   816 	if (aMsgAttributes && 
   823 		aMsgAttributes->MaxLength() < sizeof(RMobileUssdMessaging::TMobileUssdAttributesV1Pckg))
   817 		aMsgAttributes->MaxLength() < sizeof(RMobileUssdMessaging::TMobileUssdAttributesV1Pckg))
   824 		{
   818 		{
   825 	    OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_NOTIFYNETWORKRELEASE_3, "TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg2)");
   819 	    TFLOGSTRING ("TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg2)");
   826 	    // Complete the request with appropiate error        
   820 	    // Complete the request with appropiate error        
   827 	    return KErrArgument;			
   821 	    return KErrArgument;			
   828 		}
   822 		}
   829 
   823 
   830 	TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* ussdSendSSRequestPckg =
   824 	TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* ussdSendSSRequestPckg =
   870 void CMmUssdTsy::CompleteNotifyNetworkRelease(
   864 void CMmUssdTsy::CompleteNotifyNetworkRelease(
   871     TInt aErrorCode,
   865     TInt aErrorCode,
   872     CMmDataPackage* aDataPackage )
   866     CMmDataPackage* aDataPackage )
   873     {
   867     {
   874 
   868 
   875 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETENOTIFYNETWORKRELEASE_1, "TSY: CMmUssdTsy::CompleteNotifyNetworkRelease. Error: %d", aErrorCode );
   869 TFLOGSTRING2("TSY: CMmUssdTsy::CompleteNotifyNetworkRelease. Error: %d", aErrorCode );
   876     // reset req handle. Returns the deleted req handle
   870     // reset req handle. Returns the deleted req handle
   877     TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle(
   871     TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle(
   878 		EMultimodeUssdNotifyNetworkRelease );
   872 		EMultimodeUssdNotifyNetworkRelease );
   879 
   873 
   880     if( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle )
   874     if( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle )
  1064 //
  1058 //
  1065 void CMmUssdTsy::ReqCompleted(
  1059 void CMmUssdTsy::ReqCompleted(
  1066     const TTsyReqHandle aTsyReqHandle, 
  1060     const TTsyReqHandle aTsyReqHandle, 
  1067     const TInt aError )
  1061     const TInt aError )
  1068     {
  1062     {
  1069 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_REQCOMPLETED_1, "TSY: CMmUssdTsy::ReqCompleted. Handle: %d Error: %d", aTsyReqHandle, aError);
  1063 TFLOGSTRING3("TSY: CMmUssdTsy::ReqCompleted. Handle: %d Error: %d", aTsyReqHandle, aError);
  1070     CTelObject::ReqCompleted( aTsyReqHandle, aError );
  1064     CTelObject::ReqCompleted( aTsyReqHandle, aError );
  1071     }
  1065     }
  1072 #endif // TF_LOGGING_ENABLED
  1066 #endif // TF_LOGGING_ENABLED
  1073 
  1067 
  1074 // ---------------------------------------------------------------------------
  1068 // ---------------------------------------------------------------------------
  1115 // ---------------------------------------------------------------------------
  1109 // ---------------------------------------------------------------------------
  1116 //
  1110 //
  1117 TInt CMmUssdTsy::SendMessageNoFdnCheckCancel( 
  1111 TInt CMmUssdTsy::SendMessageNoFdnCheckCancel( 
  1118     const TTsyReqHandle aTsyReqHandle )
  1112     const TTsyReqHandle aTsyReqHandle )
  1119     {
  1113     {
  1120 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDMESSAGENOFDNCHECKCANCEL_1, "TSY: CMmUssdTsy::SendMessageNoFdnCheckCancel" );
  1114 TFLOGSTRING("TSY: CMmUssdTsy::SendMessageNoFdnCheckCancel" );
  1121 
  1115 
  1122     // reset the req handle
  1116     // reset the req handle
  1123     TTsyReqHandle reqHandle  = iTsyReqHandleStore->ResetTsyReqHandle( 
  1117     TTsyReqHandle reqHandle  = iTsyReqHandleStore->ResetTsyReqHandle( 
  1124         EMultimodeUssdSendMessageNoFdnCheck );
  1118         EMultimodeUssdSendMessageNoFdnCheck );
  1125     
  1119     
  1141 // ---------------------------------------------------------------------------
  1135 // ---------------------------------------------------------------------------
  1142 //
  1136 //
  1143 void CMmUssdTsy::CompleteSendMessageNoFdnCheck(
  1137 void CMmUssdTsy::CompleteSendMessageNoFdnCheck(
  1144     TInt aError )
  1138     TInt aError )
  1145     {
  1139     {
  1146 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETESENDMESSAGENOFDNCHECK_1, "TSY: CMmUssdTsy::CompleteSendMessageNoFdnCheck.\n" );
  1140 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendMessageNoFdnCheck.\n" );
  1147     // get reg handle
  1141     // get reg handle
  1148     TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
  1142     TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
  1149         EMultimodeUssdSendMessageNoFdnCheck );
  1143         EMultimodeUssdSendMessageNoFdnCheck );
  1150 	
  1144 	
  1151     if ( EMultimodeUssdReqHandleUnknown != reqHandle )
  1145     if ( EMultimodeUssdReqHandleUnknown != reqHandle )