telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp
branchopencode
changeset 78 d4cfc65049ba
parent 77 930a53cdc2d3
child 81 7f379d8ed02d
equal deleted inserted replaced
77:930a53cdc2d3 78:d4cfc65049ba
    57 
    57 
    58     // Reset all CMmUssdTsy variables
    58     // Reset all CMmUssdTsy variables
    59     ResetVariables();
    59     ResetVariables();
    60 
    60 
    61     // Initialize boolean flag
    61     // Initialize boolean flag
    62     iUssdNoFdnCheckFlag =  EUssdNoFdnCheckUnknown;
    62     iUssdNoFdnCheckFlag =  EUssdNoFdnCheckUnknown;    
    63     iSendToDefaultHandler = EFalse;
       
    64     }
    63     }
    65 
    64 
    66 CMmUssdTsy* CMmUssdTsy::NewL( 
    65 CMmUssdTsy* CMmUssdTsy::NewL( 
    67     CMmPhoneTsy* aMmPhone )                                 
    66     CMmPhoneTsy* aMmPhone )                                 
    68     {
    67     {
   257         {
   256         {
   258         case EMobileUssdMessagingReceiveMessage:
   257         case EMobileUssdMessagingReceiveMessage:
   259             ReceiveMessageCancel( aTsyReqHandle );
   258             ReceiveMessageCancel( aTsyReqHandle );
   260             ret = KErrNone;
   259             ret = KErrNone;
   261             break;
   260             break;
       
   261         case EMobileUssdMessagingSendMessageDefaultHandler:
   262         case EMobileUssdMessagingSendMessage:
   262         case EMobileUssdMessagingSendMessage:
   263             SendMessageCancel( aTsyReqHandle );
   263             SendMessageCancel( aTsyReqHandle );
   264             ret = KErrNone;
   264             ret = KErrNone;
   265             break;
   265             break;        
   266         case EMobileUssdMessagingSendMessageDefaultHandler: 
       
   267         	SendMessageCancelDefaultHandler( aTsyReqHandle );
       
   268         	ret = KErrNone;
       
   269         	break;
       
   270         case EMobileUssdMessagingSendMessageNoFdnCheck:
   266         case EMobileUssdMessagingSendMessageNoFdnCheck:
   271             SendMessageNoFdnCheckCancel( aTsyReqHandle );
   267             SendMessageNoFdnCheckCancel( aTsyReqHandle );
   272             ret = KErrNone;
   268             ret = KErrNone;
   273             break;            
   269             break;            
   274         case EMobileUssdMessagingSendRelease:
   270         case EMobileUssdMessagingSendRelease:
   668         	(EFalse == iSendToDefaultHandler)) 
   664         	(EFalse == iSendToDefaultHandler)) 
   669             {
   665             {
   670             // Set timer for the request
   666             // Set timer for the request
   671             SetTypeOfResponse( EMultimodeUssdSendMessage, 
   667             SetTypeOfResponse( EMultimodeUssdSendMessage, 
   672                 aTsyReqHandle );
   668                 aTsyReqHandle );
   673             }  
   669             }        
   674         if ( (iUssdNoFdnCheckFlag == EUssdNoFdnCheckNotUsed) && 
   670         if ( (iUssdNoFdnCheckFlag == EUssdNoFdnCheckNotUsed) && 
   675 			(EFalse != iSendToDefaultHandler)) //send to default hadnler 
   671 			(EFalse != iSendToDefaultHandler)) //send to default hadnler 
   676 			   {
   672 			   {
   677 			   // Set timer for the request
   673 			   // Set timer for the request
   678 			   SetTypeOfResponse( EMultimodeUssdSendMessageDefaultHandler, 
   674 			   SetTypeOfResponse( EMultimodeUssdSendMessageDefaultHandler, 
   679 				   aTsyReqHandle );
   675 				   aTsyReqHandle );
   680 			   }  
   676 			   }	 
   681 #else
   677 #else
   682         // Check if NoFdnCheck is used or not
   678         // Check if NoFdnCheck is used or not
   683         if ( iUssdNoFdnCheckFlag == EUssdNoFdnCheckUsed )
   679         if ( iUssdNoFdnCheckFlag == EUssdNoFdnCheckUsed )
   684             {
   680             {
   685             // Save SendMessageNoFdnCheck request handle, set timer
   681             // Save SendMessageNoFdnCheck request handle, set timer
   707 //
   703 //
   708 TInt CMmUssdTsy::SendMessageCancel(
   704 TInt CMmUssdTsy::SendMessageCancel(
   709     const TTsyReqHandle aTsyReqHandle )
   705     const TTsyReqHandle aTsyReqHandle )
   710     {
   706     {
   711     // reset the req handle
   707     // reset the req handle
   712     iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeUssdSendMessage );
   708 	if(EFalse == iSendToDefaultHandler)
       
   709 		{
       
   710 		iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeUssdSendMessage );
       
   711 		}
       
   712 	else // default handler
       
   713 		{
       
   714 		iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeUssdSendMessageDefaultHandler );
       
   715 		}
       
   716     
   713     
   717     
   714     CancelReserveSession();
   718     CancelReserveSession();
   715     
   719     
   716     // complete with cancel
   720     // complete with cancel
   717     ReqCompleted( aTsyReqHandle, KErrCancel );
   721     ReqCompleted( aTsyReqHandle, KErrCancel );
   720     iUssdNoFdnCheckFlag = EUssdNoFdnCheckUnknown;
   724     iUssdNoFdnCheckFlag = EUssdNoFdnCheckUnknown;
   721     
   725     
   722     return KErrNone;
   726     return KErrNone;
   723     }
   727     }
   724    
   728    
   725 // ---------------------------------------------------------------------------
   729 
   726 // CmmUssdTsy::SendMessageCancelDefaultHandler
   730 
   727 // Cancels cancelling of USSD session.
   731 // ---------------------------------------------------------------------------
   728 // (other items were commented in a header).
   732 // CMmUssdTsy::CompleteSendMessage
   729 // ---------------------------------------------------------------------------
       
   730 //
       
   731 TInt CMmUssdTsy::SendMessageCancelDefaultHandler(
       
   732     const TTsyReqHandle aTsyReqHandle )
       
   733     {
       
   734     // reset the req handle
       
   735     iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeUssdSendMessageDefaultHandler );
       
   736     
       
   737     CancelReserveSession();
       
   738     
       
   739     // complete with cancel
       
   740     ReqCompleted( aTsyReqHandle, KErrCancel );
       
   741     iSsTransactionOngoing = EFalse;
       
   742     
       
   743     iUssdNoFdnCheckFlag = EUssdNoFdnCheckUnknown;
       
   744     
       
   745     return KErrNone;
       
   746     }
       
   747 
       
   748 // ---------------------------------------------------------------------------
       
   749 // CMmUssdTsy::CompleteSendMessageDefaultHandler
       
   750 // Complete SendMessage 
   733 // Complete SendMessage 
   751 // (other items were commented in a header).
   734 // (other items were commented in a header).
   752 // ---------------------------------------------------------------------------
   735 // ---------------------------------------------------------------------------
   753 //
   736 //
   754 void CMmUssdTsy::CompleteSendMessageDefaultHandler(
   737 void CMmUssdTsy::CompleteSendMessage(
   755     TInt aError )
   738     TInt aError )
   756     {
   739     {
   757 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendMessage.\n" );
   740 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendMessage.\n" );
   758     TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
   741     TTsyReqHandle reqHandle;
   759         /*EMultimodeUssdSendMessage*/EMultimodeUssdSendMessageDefaultHandler );
   742     
       
   743     if(EFalse == iSendToDefaultHandler)
       
   744     	{
       
   745     	reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
       
   746     	        EMultimodeUssdSendMessage );
       
   747     	}
       
   748     else //default hanlder
       
   749     	{
       
   750     	reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
       
   751     			EMultimodeUssdSendMessageDefaultHandler );
       
   752     	}
   760 	
   753 	
   761     if ( EMultimodeUssdReqHandleUnknown != reqHandle )
   754     if ( EMultimodeUssdReqHandleUnknown != reqHandle )
   762         {
   755         {
   763         // reset req handle. Returns the deleted req handle
   756         // reset req handle. Returns the deleted req handle
   764         reqHandle = iTsyReqHandleStore->ResetTsyReqHandle(
   757     	if(EFalse == iSendToDefaultHandler)
   765         		/*EMultimodeUssdSendMessage*/EMultimodeUssdSendMessageDefaultHandler );     
   758     		{
   766         // If the session is already in progress then no session management
   759     		reqHandle = iTsyReqHandleStore->ResetTsyReqHandle(
   767         // action is required. Otherwise we either promote the reserved
   760         		EMultimodeUssdSendMessage );
   768         // session to an open session or cancel the reservation.
   761     		}
   769         if ( !IsSessionInProgress() && IsSessionReserved() )
   762     	else// default handler
   770             {
   763     		{
   771             if ( KErrNone == aError )
   764     		reqHandle = iTsyReqHandleStore->ResetTsyReqHandle(
   772                 {
   765     		        		EMultimodeUssdSendMessageDefaultHandler );
   773                 SetSessionOwnerByTsyHandle( reqHandle );
   766     		}
   774                 }
       
   775             else
       
   776                 {
       
   777                 CancelReserveSession();
       
   778                 }
       
   779             }
       
   780        
       
   781         ReqCompleted( reqHandle, aError );
       
   782         iSsTransactionOngoing = EFalse;
       
   783         iUssdNoFdnCheckFlag = EUssdNoFdnCheckUnknown;
       
   784         }
       
   785     }
       
   786 // ---------------------------------------------------------------------------
       
   787 // CMmUssdTsy::CompleteSendMessage
       
   788 // Complete SendMessage 
       
   789 // (other items were commented in a header).
       
   790 // ---------------------------------------------------------------------------
       
   791 //
       
   792 void CMmUssdTsy::CompleteSendMessage(
       
   793     TInt aError )
       
   794     {
       
   795 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendMessage.\n" );
       
   796     TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( 
       
   797         EMultimodeUssdSendMessage );
       
   798 	
       
   799     if ( EMultimodeUssdReqHandleUnknown != reqHandle )
       
   800         {
       
   801         // reset req handle. Returns the deleted req handle
       
   802         reqHandle = iTsyReqHandleStore->ResetTsyReqHandle(
       
   803         		EMultimodeUssdSendMessage );     
       
   804         // If the session is already in progress then no session management
   767         // If the session is already in progress then no session management
   805         // action is required. Otherwise we either promote the reserved
   768         // action is required. Otherwise we either promote the reserved
   806         // session to an open session or cancel the reservation.
   769         // session to an open session or cancel the reservation.
   807         if ( !IsSessionInProgress() && IsSessionReserved() )
   770         if ( !IsSessionInProgress() && IsSessionReserved() )
   808             {
   771             {
   955     const TTsyReqHandle aTsyReqHandle,
   918     const TTsyReqHandle aTsyReqHandle,
   956     TDes8* aMsgData,
   919     TDes8* aMsgData,
   957     TDes8* aMsgAttributes) // aMsgAttributes may be NULL
   920     TDes8* aMsgAttributes) // aMsgAttributes may be NULL
   958     {
   921     {
   959 TFLOGSTRING("TSY: CMmUssdTsy::NotifyNetworkRelease" );
   922 TFLOGSTRING("TSY: CMmUssdTsy::NotifyNetworkRelease" );
   960 /*
   923 
       
   924 //TODO if we do not remove the following if block emulator would not start in GUI mode
   961 	//Check if there is a session in progress
   925 	//Check if there is a session in progress
   962 	if ( !IsSessionInProgress() )
   926 	if ( !IsSessionInProgress() )
   963     {
   927     {
   964     // You can't release a dialogue that isn't in progress.
   928     // You can't release a dialogue that isn't in progress.
   965     return KErrDisconnected;
   929     return KErrDisconnected;
   966     }
   930     }
   967 */
   931 
   968 
   932 
   969 	if (aMsgData->MaxLength() < sizeof(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg))
   933 	if (aMsgData->MaxLength() < sizeof(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg))
   970 		{
   934 		{
   971 	    TFLOGSTRING ("TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg1)");
   935 	    TFLOGSTRING ("TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg1)");
   972 	    // Complete the request with appropiate error        
   936 	    // Complete the request with appropiate error        
  1185     CMmDataPackage package;
  1149     CMmDataPackage package;
  1186     
  1150     
  1187     switch( aReqHandleType )
  1151     switch( aReqHandleType )
  1188         {
  1152         {
  1189         // Cases handled with automatic completion
  1153         // Cases handled with automatic completion
  1190         case EMultimodeUssdSendMessage:
  1154     	case EMultimodeUssdSendMessageDefaultHandler:
       
  1155     	case EMultimodeUssdSendMessage:
  1191             CompleteSendMessage( aError );
  1156             CompleteSendMessage( aError );
  1192             break; 
  1157             break; 
  1193         case EMultimodeUssdSendMessageDefaultHandler:
       
  1194              CompleteSendMessageDefaultHandler( aError );
       
  1195              break;
       
  1196         case EMultimodeUssdSendMessageNoFdnCheck:
  1158         case EMultimodeUssdSendMessageNoFdnCheck:
  1197             CompleteSendMessageNoFdnCheck( aError );
  1159             CompleteSendMessageNoFdnCheck( aError );
  1198             break;
  1160             break;
  1199         case EMultimodeUssdSendRelease:
  1161         case EMultimodeUssdSendRelease:
  1200             returnResult.iOpCode = static_cast< TUint8 >( KErrTimedOut );
  1162             returnResult.iOpCode = static_cast< TUint8 >( KErrTimedOut );