telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp
branchopencode
changeset 85 96b4f933d69a
parent 81 7f379d8ed02d
child 88 5e27cc612ac7
equal deleted inserted replaced
81:7f379d8ed02d 85:96b4f933d69a
   193             ret = SendMessageL( 
   193             ret = SendMessageL( 
   194                 aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n() );
   194                 aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n() );
   195             }
   195             }
   196             break;
   196             break;
   197         case EMobileUssdMessagingSendMessageDefaultHandler: 
   197         case EMobileUssdMessagingSendMessageDefaultHandler: 
   198 			{
   198 			{			
   199 			iUssdNoFdnCheckFlag = EUssdNoFdnCheckNotUsed;
   199 			iUssdNoFdnCheckFlag = EUssdNoFdnCheckNotUsed;
   200 			iSendToDefaultHandler = ETrue;
   200 			iSendToDefaultHandler = ETrue;
   201 			ret = SendMessageL( 
   201 			ret = SendMessageL( 
   202 				aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n() );
   202 				aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n() );
   203 			}
   203 			}
   561         if ( KErrNone == aError )
   561         if ( KErrNone == aError )
   562             { 
   562             { 
   563             TDes8* unpackedReceiveUssdMessagePtr = NULL;
   563             TDes8* unpackedReceiveUssdMessagePtr = NULL;
   564             RMobileUssdMessaging::TMobileUssdAttributesV1* unpackedReceiveUssdMessageAttributesPtr = NULL;            
   564             RMobileUssdMessaging::TMobileUssdAttributesV1* unpackedReceiveUssdMessageAttributesPtr = NULL;            
   565             aDataPackage->UnPackData (&unpackedReceiveUssdMessagePtr, &unpackedReceiveUssdMessageAttributesPtr);
   565             aDataPackage->UnPackData (&unpackedReceiveUssdMessagePtr, &unpackedReceiveUssdMessageAttributesPtr);
   566                                   
   566                     
   567             if(iReceiveUssdMessagePtr->MaxLength() >= unpackedReceiveUssdMessagePtr->Length())
   567             if(iReceiveUssdMessagePtr->MaxLength() >= unpackedReceiveUssdMessagePtr->Length())
   568                	{             
   568                	{             
   569 				*iReceiveUssdMessagePtr = *unpackedReceiveUssdMessagePtr;
   569 				*iReceiveUssdMessagePtr = *unpackedReceiveUssdMessagePtr;
   570 				*iReceiveUssdMessageAttributesPtr = *unpackedReceiveUssdMessageAttributesPtr;            		            	
   570 				*iReceiveUssdMessageAttributesPtr = *unpackedReceiveUssdMessageAttributesPtr;            		            	
   571             	}
   571             	}
   572             else
   572             else
   573             	{            	
   573             	{            	
   574             	aError = KErrArgument;
   574             	aError = KErrArgument;
   575             	}               
   575             	}
   576 			}
   576 			}
   577         ReqCompleted( reqHandle, aError );
   577         ReqCompleted( reqHandle, aError );
   578         }
   578         }
   579     }
   579     }
   580 
   580 
   621         		ret = iMmPhone->MessageManager()->HandleRequestL( 
   621         		ret = iMmPhone->MessageManager()->HandleRequestL( 
   622         				EMobileUssdMessagingSendMessage, &package );
   622         				EMobileUssdMessagingSendMessage, &package );
   623         		}
   623         		}
   624         	else //default handler 
   624         	else //default handler 
   625 				{
   625 				{
   626 					ret = iMmPhone->MessageManager()->HandleRequestL( 
   626 				ret = iMmPhone->MessageManager()->HandleRequestL( 
   627 						EMobileUssdMessagingSendMessageDefaultHandler, &package );            
   627 						EMobileUssdMessagingSendMessageDefaultHandler, &package );            
   628 				}      	
   628 				}      	
   629             }
   629             }
   630         
       
   631             
       
   632         iSsTransactionOngoing = ETrue;        
   630         iSsTransactionOngoing = ETrue;        
   633         }
   631         }
   634 
   632 
   635     if ( KErrNone != ret )
   633     if ( KErrNone != ret )
   636         {
   634         {
   760         		EMultimodeUssdSendMessage );
   758         		EMultimodeUssdSendMessage );
   761     		}
   759     		}
   762     	else// default handler
   760     	else// default handler
   763     		{
   761     		{
   764     		reqHandle = iTsyReqHandleStore->ResetTsyReqHandle(
   762     		reqHandle = iTsyReqHandleStore->ResetTsyReqHandle(
   765     		        		EMultimodeUssdSendMessageDefaultHandler );
   763     		        		EMultimodeUssdSendMessageDefaultHandler );    		
   766     		}
   764     		}
   767         // If the session is already in progress then no session management
   765         // If the session is already in progress then no session management
   768         // action is required. Otherwise we either promote the reserved
   766         // action is required. Otherwise we either promote the reserved
   769         // session to an open session or cancel the reservation.
   767         // session to an open session or cancel the reservation.
   770         if ( !IsSessionInProgress() && IsSessionReserved() )
   768         if ( !IsSessionInProgress() && IsSessionReserved() )
   774             	if(EFalse == iSendToDefaultHandler)
   772             	if(EFalse == iSendToDefaultHandler)
   775             		{
   773             		{
   776             		SetSessionOwnerByTsyHandle( reqHandle );
   774             		SetSessionOwnerByTsyHandle( reqHandle );
   777             		}
   775             		}
   778             	else // default handler
   776             	else // default handler
   779             		{            		
   777             		{    
   780             		SetSessionOwnerByTsyHandleAndIpc( reqHandle, EMultimodeUssdSendMessageDefaultHandler );
   778             		//this function call will transfer received message to the 
       
   779             		//default handler which already has EMobileUssdMessagingReceiveMessage request.
       
   780             		SetSessionOwnerByTsyHandleAndIpc( reqHandle, EMobileUssdMessagingReceiveMessage );
   781             		}
   781             		}
   782                 }
   782                 }
   783             else
   783             else
   784                 {
   784                 {
   785                 CancelReserveSession();
   785                 CancelReserveSession();