telephonyserver/etelsimtoolkit/dtsy/sattsy.cpp
changeset 0 3553901f7fa8
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 // Description:
       
    14 // Dummy Sat TSY classes implementation.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file
       
    20 */
       
    21 #include "sattsy.h"
       
    22 #include "testdef.h"
       
    23 #include "Etelsat.h"
       
    24 #include <et_clsvr.h>
       
    25 #include "Dsatlog.h"
       
    26 #include <satcs.h>
       
    27 #include <utf.h>
       
    28 
       
    29 #include "coretsy.h"
       
    30 
       
    31 /**************************************************************************/
       
    32 //
       
    33 //	CSatDSatTsy
       
    34 //
       
    35 /**************************************************************************/
       
    36 
       
    37 CSatDSatTsy* CSatDSatTsy::NewL(CPhoneFactoryDummyBase* aFac)
       
    38 	{
       
    39 	CSatDSatTsy* subsession=new(ELeave) CSatDSatTsy(aFac);
       
    40 	CleanupStack::PushL(subsession);
       
    41 	subsession->ConstructL();
       
    42 	CleanupStack::Pop();
       
    43 	return subsession;
       
    44 	}
       
    45 
       
    46 void CSatDSatTsy::Init()
       
    47 	{}
       
    48 
       
    49 CSatDSatTsy::CSatDSatTsy(CPhoneFactoryDummyBase* aFac)
       
    50 	:CSubSessionExtDummyBase(aFac)
       
    51 	{
       
    52 	iTsyAsyncReqHandle=0;
       
    53 	iNotifyCallControlRequest=0;
       
    54 	iNotifyMoSmControlRequest=0;
       
    55 	iNotifyDisplayTextPCmd=0;
       
    56 	iNotifyGetInkeyPCmd=0;
       
    57 	iNotifyGetInputPCmd=0;
       
    58 	iNotifyPlayTonePCmd=0;
       
    59 	iNotifySetUpMenuPCmd=0;
       
    60 	iNotifySelectItemPCmd=0;
       
    61 	iNotifySendSmPCmd=0;
       
    62 	iNotifySendSsPCmd=0;
       
    63 	iNotifySendUssdPCmd=0;
       
    64 	iNotifySetUpCallPCmd=0;
       
    65 	iNotifyRefreshPCmd=0;
       
    66 	iNotifySetUpEventListPCmd=0;
       
    67 	iNotifySetUpIdleModeTextPCmd=0;
       
    68 	iNotifySendDtmfPCmd=0;
       
    69 	iGetIcon=0;
       
    70 	iGetImageInstance=0;
       
    71 	iGetClut=0;
       
    72 	iDisplayTextTerminalRsp=0;
       
    73 	iGetInkeyTerminalRsp=0;
       
    74 	iGetInputTerminalRsp=0;
       
    75 	iPlayToneTerminalRsp=0;
       
    76 	iSetUpMenuTerminalRsp=0;
       
    77 	iSelectItemTerminalRsp=0;
       
    78 	iSendSmTerminalRsp=0;
       
    79 	iSendSsTerminalRsp=0;
       
    80 	iSendUssdTerminalRsp=0;
       
    81 	iSetUpCallTerminalRsp=0;
       
    82 	iRefreshTerminalRsp=0;
       
    83 	iSetUpEventListTerminalRsp=0;
       
    84 	iSetUpIdleModeTextTerminalRsp=0;
       
    85 	iSendDtmfTerminalRsp=0;
       
    86 	iGetMeSideSatProfile=0;
       
    87 	iClientSatProfileIndication=0;
       
    88 	iMenuSelection=0;
       
    89 	iEventDownload=0;
       
    90 	iNotifyPerformCardApduPCmd=0;
       
    91 	iNotifyPowerOffCardPCmd=0;
       
    92 	iNotifyPowerOnCardPCmd=0;
       
    93 	iNotifyGetReaderStatusPCmd=0;
       
    94 	iNotifyRunAtCommandPCmd=0;
       
    95 	iNotifyLanguageNotificationPCmd=0;
       
    96 	iGetProvisioningRefFile=0;
       
    97 	iNotifyOpenChannelPCmd=0;
       
    98 	iNotifyCloseChannelPCmd=0;
       
    99 	iNotifyReceiveDataPCmd=0;
       
   100 	iNotifySendDataPCmd=0;
       
   101 	iNotifyGetChannelStatusPCmd=0;
       
   102 	iNotifyServiceSearchPCmd=0;
       
   103 	iNotifyGetServiceInfoPCmd=0;
       
   104 	iNotifyDeclareServicePCmd=0;
       
   105 	iNotifyLaunchBrowserPCmd=0;
       
   106 	iNotifyLaunchBrowserCount=0;
       
   107 	iNotifySetUpMenuTestNumber=0;
       
   108 	iNotifyCallControlRequestTestNumber=0;
       
   109 	iNotifyOpenChannelTestNumber=0;
       
   110 	iSendMessageNoLogging=0;
       
   111 	iNotifyProactiveSimSessionEnd=0;
       
   112 	iNotifyProactiveSimSessionStart=0;
       
   113 	iNotifyTimerExpiration=0;
       
   114 	iNotifySmsPpDownload=0;
       
   115 	iNotifyCbDownload=0;
       
   116 	iNotifyTimerManagtPCmd=0;
       
   117 	iNotifyLocalInfoPCmd=0;
       
   118 	iNotifyPollingIntervalPCmd=0;
       
   119 	iNotifyPollingOffPCmd=0;
       
   120 	iTimerMgmtTerminalRsp=0;
       
   121 	iLocalInfoTerminalRsp=0;
       
   122 	iPollingIntervalTerminalRsp=0;
       
   123 	iPollingOffTerminalRsp=0;
       
   124 	iNotifyTsyStateUpdated=0;
       
   125 	iNotifyRefreshRequired=0;
       
   126 	iRefreshAllowed=0;
       
   127 	iNotifyRetrieveMultimediaMsgPCmd=0;
       
   128 	iNotifySubmitMultimediaMsgPCmd=0;
       
   129 	iNotifyDisplayMultimediaMsgPCmd=0;
       
   130 	iNotifySetFramesPCmd=0;
       
   131 	iNotifyGetFramesStatusPCmd=0;
       
   132 	iRetrieveMultimediaMsgTerminalRsp=0;
       
   133 	iSubmitMultimediaMsgTerminalRsp=0;
       
   134 	iDisplayMultimediaMsgTerminalRsp=0;
       
   135 	iSetFramesTerminalRsp=0;
       
   136 	iGetFramesStatusTerminalRsp=0;
       
   137 	iMmsNotificationDownload=0;
       
   138 	iMmsTransferStatus=0;
       
   139 	iUssdDataDownload=0;
       
   140 	}
       
   141 
       
   142 void CSatDSatTsy::ConstructL()
       
   143 	{
       
   144 	LOGTEXT(_L8("CSatDSatTsy: Entered constructor"));
       
   145 	}
       
   146 
       
   147 CSatDSatTsy::~CSatDSatTsy()
       
   148 	{
       
   149 	LOGTEXT(_L8("CSatDSatTsy: Entered destructor"));
       
   150 	}
       
   151 
       
   152 CTelObject* CSatDSatTsy::OpenNewObjectByNameL(const TDesC& /*aName*/)
       
   153 /**
       
   154 * Opening object(s) from RSat is not supported
       
   155 */
       
   156 	{
       
   157 	User::Leave(KErrNotSupported);
       
   158 	return NULL;
       
   159 	}
       
   160 
       
   161 CTelObject* CSatDSatTsy::OpenNewObjectL(TDes& /*aNewName*/)
       
   162 /**
       
   163 * Opening object(s) from RSat is not supported	
       
   164 */
       
   165 	{
       
   166 	User::Leave(KErrNotSupported);
       
   167 	return NULL;
       
   168 	}
       
   169 
       
   170 CTelObject::TReqMode CSatDSatTsy::ReqModeL(const TInt aIpc)
       
   171 /**
       
   172 * ReqModeL is called from the server's CTelObject::ReqAnalyserL
       
   173 * in order to check the type of request it has.
       
   174 *
       
   175 * The following are example request types for this dummy TSY
       
   176 * All TSYs do not have to have these request types but they have been given
       
   177 * "sensible" values in this test code
       
   178 */
       
   179 	{
       
   180 	CTelObject::TReqMode ret=0;
       
   181 	switch (aIpc)
       
   182 		{
       
   183 		case ESatNotifyProactiveSimSessionStart:
       
   184 		case ESatNotifyProactiveSimSessionEnd:
       
   185 		case ESatNotifyCallControlRequest:
       
   186 		case ESatNotifyMoSmControlRequest:
       
   187 		case ESatNotifyDisplayTextPCmd:
       
   188 		case ESatNotifyGetInkeyPCmd:
       
   189 		case ESatNotifyGetInputPCmd:
       
   190 		case ESatNotifyPlayTonePCmd:
       
   191 		case ESatNotifySetUpMenuPCmd:
       
   192 		case ESatNotifySelectItemPCmd:
       
   193 		case ESatNotifySendSmPCmd:
       
   194 		case ESatNotifySendSsPCmd:
       
   195 		case ESatNotifySendUssdPCmd:
       
   196 		case ESatNotifySetUpCallPCmd:
       
   197 		case ESatNotifyRefreshPCmd:
       
   198 		case ESatNotifySetUpEventListPCmd:
       
   199 		case ESatNotifySetUpIdleModeTextPCmd:
       
   200 		case ESatNotifySendDtmfPCmd:
       
   201 		case ESatNotifyPerformCardApduPCmd:
       
   202 		case ESatNotifyPowerOffCardPCmd:
       
   203 		case ESatNotifyPowerOnCardPCmd:
       
   204 		case ESatNotifyGetReaderStatusPCmd:
       
   205 		case ESatNotifyRunAtCommandPCmd:
       
   206 		case ESatNotifyLanguageNotificationPCmd:
       
   207 		case ESatNotifyLaunchBrowserPCmd:
       
   208 		case ESatNotifyOpenChannelPCmd:
       
   209 		case ESatNotifyCloseChannelPCmd:
       
   210 		case ESatNotifyReceiveDataPCmd:
       
   211 		case ESatNotifySendDataPCmd:
       
   212 		case ESatNotifyGetChannelStatusPCmd:
       
   213 		case ESatNotifyServiceSearchPCmd:
       
   214 		case ESatNotifyGetServiceInfoPCmd:
       
   215 		case ESatNotifyDeclareServicePCmd:
       
   216 		case ESatNotifyTimerExpiration:
       
   217 		case ESatNotifySmsPpDownload:
       
   218 		case ESatNotifyCbDownload:
       
   219 		case ESatNotifyTimerMgmtPCmd:							
       
   220 		case ESatNotifyLocalInfoPCmd:
       
   221 		case ESatNotifyPollingIntervalPCmd:
       
   222 		case ESatNotifyPollingOffPCmd:		
       
   223 		case ESatNotifyTsyStateUpdated:
       
   224 		case ESatNotifyRefreshRequired:
       
   225 		case ESatNotifyRefreshRequiredParam:
       
   226 		case ESatNotifyRetrieveMultimediaMsgPCmd:
       
   227 		case ESatNotifySubmitMultimediaMsgPCmd:
       
   228 		case ESatNotifyDisplayMultimediaMsgPCmd:
       
   229 		case ESatNotifySetFramesPCmd:
       
   230 		case ESatNotifyGetFramesStatusPCmd:
       
   231 			ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately;
       
   232 			break;
       
   233 
       
   234 		case ESatGetIcon:
       
   235 		case ESatGetImageInstance:
       
   236 		case ESatGetClut:
       
   237 		case ESatTerminalRsp:
       
   238 		case ESatGetMeSideSatProfile:
       
   239 		case ESatClientSatProfileIndication:
       
   240 		case ESatMenuSelection:
       
   241 		case ESatEventDownload:
       
   242 		case ESatUsatClientReadyIndication:
       
   243 		case ESatGetProvisioningRefFile:
       
   244 		case ESatSendMessageNoLogging:
       
   245 		case ESatRefreshAllowed:
       
   246 		case ETestCustomIPC1:
       
   247 		case ESatGetOpenChannelPCmd:
       
   248 		case ESatMmsNotificationDownload:
       
   249 		case ESatMmsTransferStatus:
       
   250 		case ESatUssdDataDownload:
       
   251 			break;
       
   252 
       
   253 		case ESatNotifyProactiveSimSessionStartCancel:
       
   254 		case ESatNotifyProactiveSimSessionEndCancel:
       
   255 		case ESatGetIconCancel:
       
   256 		case ESatGetImageInstanceCancel:
       
   257 		case ESatGetClutCancel:
       
   258 		case ESatTerminalRspCancel:
       
   259 		case ESatGetMeSideSatProfileCancel:
       
   260 		case ESatMenuSelectionCancel:
       
   261 		case ESatNotifyCallControlRequestCancel:
       
   262 		case ESatNotifyMoSmControlRequestCancel:
       
   263 		case ESatEventDownloadCancel:
       
   264 		case ESatNotifyDisplayTextPCmdCancel:
       
   265  		case ESatNotifyGetInkeyPCmdCancel:
       
   266 		case ESatNotifyGetInputPCmdCancel:
       
   267 		case ESatNotifyPlayTonePCmdCancel:
       
   268 		case ESatNotifySetUpMenuPCmdCancel:
       
   269 		case ESatNotifySelectItemPCmdCancel:
       
   270 		case ESatNotifySendSmPCmdCancel:
       
   271 		case ESatNotifySendSsPCmdCancel:
       
   272 		case ESatNotifySendUssdPCmdCancel:
       
   273 		case ESatNotifySetUpCallPCmdCancel:
       
   274 		case ESatNotifyRefreshPCmdCancel:
       
   275 		case ESatNotifySetUpEventListPCmdCancel:
       
   276 		case ESatNotifySetUpIdleModeTextPCmdCancel:
       
   277 		case ESatNotifySendDtmfPCmdCancel:
       
   278 		case ESatGetProvisioningRefFileCancel:
       
   279 		case ESatNotifyPerformCardApduPCmdCancel:
       
   280 		case ESatNotifyPowerOffCardPCmdCancel:
       
   281 		case ESatNotifyPowerOnCardPCmdCancel:
       
   282 		case ESatNotifyGetReaderStatusPCmdCancel:
       
   283 		case ESatNotifyRunAtCommandPCmdCancel:
       
   284 		case ESatNotifyLanguageNotificationPCmdCancel:
       
   285 		case ESatNotifyLaunchBrowserPCmdCancel:
       
   286 		case ESatNotifyOpenChannelPCmdCancel:
       
   287 		case ESatNotifyCloseChannelPCmdCancel:
       
   288 		case ESatNotifyReceiveDataPCmdCancel:
       
   289 		case ESatNotifySendDataPCmdCancel:
       
   290 		case ESatNotifyGetChannelStatusPCmdCancel:
       
   291 		case ESatNotifyServiceSearchPCmdCancel:
       
   292 		case ESatNotifyGetServiceInfoPCmdCancel:
       
   293 		case ESatNotifyDeclareServicePCmdCancel:
       
   294 		case ESatSendMessageNoLoggingCancel:
       
   295 		case ESatNotifyTimerExpirationCancel:
       
   296 		case ESatNotifySmsPpDownloadCancel:
       
   297 		case ESatNotifyCbDownloadCancel:		
       
   298 		case ESatNotifyTimerMgmtPCmdCancel:							
       
   299 		case ESatNotifyLocalInfoPCmdCancel:
       
   300 		case ESatNotifyPollingIntervalPCmdCancel:
       
   301 		case ESatNotifyPollingOffPCmdCancel:	
       
   302 		case ESatNotifyTsyStateUpdatedCancel:
       
   303 		case ESatNotifyRefreshRequiredCancel:
       
   304 		case ESatRefreshAllowedCancel:
       
   305 		case ESatNotifyRefreshRequiredParamCancel:
       
   306 		case ESatGetOpenChannelPCmdCancel:
       
   307 		case ESatNotifyRetrieveMultimediaMsgPCmdCancel:
       
   308 		case ESatNotifySubmitMultimediaMsgPCmdCancel:
       
   309 		case ESatNotifyDisplayMultimediaMsgPCmdCancel:
       
   310 		case ESatNotifySetFramesPCmdCancel:
       
   311 		case ESatNotifyGetFramesStatusPCmdCancel:
       
   312 		case ESatMmsNotificationDownloadCancel:
       
   313 		case ESatMmsTransferStatusCancel:
       
   314 		case ESatUssdDataDownloadCancel:
       
   315 			// The server should not use ReqMode on Cancel requests
       
   316 			User::Leave(KErrNotSupported);
       
   317 			break;
       
   318 	
       
   319 		default:
       
   320 			User::Leave(KErrNotSupported);
       
   321 			break;
       
   322 		}
       
   323 	return ret;
       
   324 	}
       
   325 
       
   326 TInt CSatDSatTsy::RegisterNotification(const TInt aIpc)
       
   327 /**
       
   328 * RegisterNotification is called when the server recognises that this notification
       
   329 * is being posted for the first time on this sub-session object.
       
   330 *
       
   331 * It enables the TSY to "turn on" any regular notification messages that it may 
       
   332 * receive from the phone
       
   333 */
       
   334 	{
       
   335 	switch (aIpc)
       
   336 		{
       
   337 		case ESatNotifyProactiveSimSessionStart:
       
   338 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Proactive Sim Session Start"));
       
   339 			return KErrNone;
       
   340 		case ESatNotifyProactiveSimSessionEnd:
       
   341 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Proactive Sim Session Stop"));
       
   342 			return KErrNone;
       
   343 		case ESatNotifyCallControlRequest:
       
   344 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Call Control Request"));
       
   345 			return KErrNone;
       
   346 		case ESatNotifyMoSmControlRequest:
       
   347 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - MO SM Control Request"));
       
   348 			return KErrNone;
       
   349 		case ESatNotifyDisplayTextPCmd:
       
   350 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Display Text PCmd"));
       
   351 			return KErrNone;
       
   352 		case ESatNotifyGetInkeyPCmd:
       
   353 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Inkey PCmd"));
       
   354 			return KErrNone;
       
   355 		case ESatNotifyGetInputPCmd:
       
   356 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Input PCmd"));
       
   357 			return KErrNone;
       
   358 		case ESatNotifyPlayTonePCmd:
       
   359 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Play Tone PCmd"));
       
   360 			return KErrNone;
       
   361 		case ESatNotifySetUpMenuPCmd:
       
   362 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Menu PCmd"));
       
   363 			return KErrNone;
       
   364 		case ESatNotifySelectItemPCmd:
       
   365 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Select Item PCmd"));
       
   366 			return KErrNone;
       
   367 		case ESatNotifySendSmPCmd:
       
   368 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send SM PCmd"));
       
   369 			return KErrNone;
       
   370 		case ESatNotifySendSsPCmd:
       
   371 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send SS PCmd"));
       
   372 			return KErrNone;
       
   373 		case ESatNotifySendUssdPCmd:
       
   374 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send USSD PCmd"));
       
   375 			return KErrNone;
       
   376 		case ESatNotifySetUpCallPCmd:
       
   377 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Call PCmd"));
       
   378 			return KErrNone;
       
   379 		case ESatNotifyRefreshPCmd:
       
   380 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh PCmd"));
       
   381 			return KErrNone;
       
   382 		case ESatNotifySetUpEventListPCmd:
       
   383 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Event List PCmd"));
       
   384 			return KErrNone;
       
   385 		case ESatNotifySetUpIdleModeTextPCmd:
       
   386 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Idle Mode Text PCmd"));
       
   387 			return KErrNone;
       
   388 		case ESatNotifySendDtmfPCmd:
       
   389 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send DTMF PCmd"));
       
   390 			return KErrNone;
       
   391 		case ESatNotifyPerformCardApduPCmd:
       
   392 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Perform Card APDU"));
       
   393 			return KErrNone;
       
   394 		case ESatNotifyPowerOffCardPCmd:
       
   395 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Power Off Card"));
       
   396 			return KErrNone;
       
   397 		case ESatNotifyPowerOnCardPCmd:
       
   398 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Power On Card"));
       
   399 			return KErrNone;
       
   400 		case ESatNotifyGetReaderStatusPCmd:
       
   401 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Reader Status"));
       
   402 			return KErrNone;
       
   403 		case ESatNotifyRunAtCommandPCmd:
       
   404 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Run AT Command"));
       
   405 			return KErrNone;
       
   406 		case ESatNotifyLanguageNotificationPCmd:
       
   407 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Language Notification"));
       
   408 			return KErrNone;
       
   409 		case ESatNotifyLaunchBrowserPCmd:
       
   410 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Launch Browser"));
       
   411 			return KErrNone;
       
   412 		case ESatNotifyOpenChannelPCmd:
       
   413 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Open Channel"));
       
   414 			return KErrNone;
       
   415 		case ESatNotifyCloseChannelPCmd:
       
   416 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Close Channel"));
       
   417 			return KErrNone;
       
   418 		case ESatNotifyReceiveDataPCmd:
       
   419 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Receive Data"));
       
   420 			return KErrNone;
       
   421 		case ESatNotifySendDataPCmd:
       
   422 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send Data"));
       
   423 			return KErrNone;
       
   424 		case ESatNotifyGetChannelStatusPCmd:
       
   425 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Channel Status"));
       
   426 			return KErrNone;
       
   427 		case ESatNotifyServiceSearchPCmd:
       
   428 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Service Search"));
       
   429 			return KErrNone;
       
   430 		case ESatNotifyGetServiceInfoPCmd:
       
   431 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Service Info"));
       
   432 			return KErrNone;
       
   433 		case ESatNotifyDeclareServicePCmd:
       
   434 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Declare Service"));
       
   435 			return KErrNone;
       
   436 		case ESatNotifyTimerExpiration:
       
   437 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Timer expiration"));
       
   438 			return KErrNone;
       
   439 		case ESatNotifySmsPpDownload:
       
   440 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Sms PP Dowmload"));
       
   441 			return KErrNone;
       
   442 		case ESatNotifyCbDownload:
       
   443 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - CB Download"));
       
   444 			return KErrNone;
       
   445 		case ESatNotifyTimerMgmtPCmd:
       
   446 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Timer Managt"));
       
   447 			return KErrNone;
       
   448 		case ESatNotifyLocalInfoPCmd:
       
   449 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Local Info"));
       
   450 			return KErrNone;
       
   451 		case ESatNotifyPollingIntervalPCmd:
       
   452 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Polling Interval"));
       
   453 			return KErrNone;
       
   454 		case ESatNotifyPollingOffPCmd:
       
   455 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Polling Pff"));
       
   456 			return KErrNone;
       
   457 		case ESatNotifyTsyStateUpdated:
       
   458 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - TSY State Updated"));
       
   459 			return KErrNone;
       
   460 		case ESatNotifyRefreshRequired:
       
   461 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh Required"));
       
   462 			return KErrNone;
       
   463 		case ESatNotifyRefreshRequiredParam:
       
   464 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh Required Param"));
       
   465 			return KErrNone;
       
   466 		case ESatNotifyRetrieveMultimediaMsgPCmd:
       
   467 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Retrieve Multimedia Message"));
       
   468 			return KErrNone;
       
   469 		case ESatNotifySubmitMultimediaMsgPCmd:
       
   470 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Submit Multimedia Message"));
       
   471 			return KErrNone;
       
   472 		case ESatNotifyDisplayMultimediaMsgPCmd:
       
   473 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Display Multimedia Message"));
       
   474 			return KErrNone;
       
   475 		case  ESatNotifySetFramesPCmd:
       
   476 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Frames"));
       
   477 			return KErrNone;
       
   478 		case  ESatNotifyGetFramesStatusPCmd:
       
   479 			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Frames Status"));
       
   480 			return KErrNone;
       
   481 		default:
       
   482 			// Unknown or invalid IPC
       
   483 			LOGTEXT(_L8("CSatDSatTsy: Register error, unknown IPC"));
       
   484 			return KErrNotSupported;
       
   485 		}
       
   486 	}
       
   487 
       
   488 TInt CSatDSatTsy::DeregisterNotification(const TInt aIpc)
       
   489 /**
       
   490 * DeregisterNotification is called when the server recognises that this notification
       
   491 * will not be posted again because the last client to have a handle on this sub-session
       
   492 * object has just closed the handle.
       
   493 *
       
   494 * It enables the TSY to "turn off" any regular notification messages that it may 
       
   495 * receive from the phone
       
   496 */
       
   497 	{
       
   498 	switch (aIpc)
       
   499 		{
       
   500 		case ESatNotifyProactiveSimSessionStart:
       
   501 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Proactive Sim Session Start"));
       
   502 			return KErrNone;
       
   503 		case ESatNotifyProactiveSimSessionEnd:
       
   504 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Proactive Sim Session Stop"));
       
   505 			return KErrNone;
       
   506 		case ESatNotifyCallControlRequest:
       
   507 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Call Control Request"));
       
   508 			return KErrNone;
       
   509 		case ESatNotifyMoSmControlRequest:
       
   510 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - MO SM Control Request"));
       
   511 			return KErrNone;
       
   512 		case ESatNotifyDisplayTextPCmd:
       
   513 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Display Text PCmd"));
       
   514 			return KErrNone;
       
   515 		case ESatNotifyGetInkeyPCmd:
       
   516 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Inkey PCmd"));
       
   517 			return KErrNone;
       
   518 		case ESatNotifyGetInputPCmd:
       
   519 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Input PCmd"));
       
   520 			return KErrNone;
       
   521 		case ESatNotifyPlayTonePCmd:
       
   522 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Play Tone PCmd"));
       
   523 			return KErrNone;
       
   524 		case ESatNotifySetUpMenuPCmd:
       
   525 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Menu PCmd"));
       
   526 			return KErrNone;
       
   527 		case ESatNotifySelectItemPCmd:
       
   528 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Select Item PCmd"));
       
   529 			return KErrNone;
       
   530 		case ESatNotifySendSmPCmd:
       
   531 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send SM PCmd"));
       
   532 			return KErrNone;
       
   533 		case ESatNotifySendSsPCmd:
       
   534 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send SS PCmd"));
       
   535 			return KErrNone;
       
   536 		case ESatNotifySendUssdPCmd:
       
   537 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send USSD PCmd"));
       
   538 			return KErrNone;
       
   539 		case ESatNotifySetUpCallPCmd:
       
   540 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Call PCmd"));
       
   541 			return KErrNone;
       
   542 		case ESatNotifyRefreshPCmd:
       
   543 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh PCmd"));
       
   544 			return KErrNone;
       
   545 		case ESatNotifySetUpEventListPCmd:
       
   546 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Event List PCmd"));
       
   547 			return KErrNone;
       
   548 		case ESatNotifySetUpIdleModeTextPCmd:
       
   549 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Idle Mode Text PCmd"));
       
   550 			return KErrNone;
       
   551 		case ESatNotifySendDtmfPCmd:
       
   552 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send DTMF PCmd"));
       
   553 			return KErrNone;
       
   554 		case ESatNotifyPerformCardApduPCmd:
       
   555 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Perform Card APDU"));
       
   556 			return KErrNone;
       
   557 		case ESatNotifyPowerOffCardPCmd:
       
   558 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Power Off Card"));
       
   559 			return KErrNone;
       
   560 		case ESatNotifyPowerOnCardPCmd:
       
   561 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Power On Card"));
       
   562 			return KErrNone;
       
   563 		case ESatNotifyGetReaderStatusPCmd:
       
   564 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Reader Status"));
       
   565 			return KErrNone;
       
   566 		case ESatNotifyRunAtCommandPCmd:
       
   567 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Run AT Command"));
       
   568 			return KErrNone;
       
   569 		case ESatNotifyLanguageNotificationPCmd:
       
   570 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Language Notification"));
       
   571 			return KErrNone;
       
   572 		case ESatNotifyLaunchBrowserPCmd:
       
   573 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Launch Browser"));
       
   574 			return KErrNone;
       
   575 		case ESatNotifyOpenChannelPCmd:
       
   576 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Open Channel"));
       
   577 			return KErrNone;
       
   578 		case ESatNotifyCloseChannelPCmd:
       
   579 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Close Channel"));
       
   580 			return KErrNone;
       
   581 		case ESatNotifyReceiveDataPCmd:
       
   582 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Receive Data"));
       
   583 			return KErrNone;
       
   584 		case ESatNotifySendDataPCmd:
       
   585 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send Data"));
       
   586 			return KErrNone;
       
   587 		case ESatNotifyGetChannelStatusPCmd:
       
   588 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Channel Status"));
       
   589 			return KErrNone;
       
   590 		case ESatNotifyServiceSearchPCmd:
       
   591 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Service Search"));
       
   592 			return KErrNone;
       
   593 		case ESatNotifyGetServiceInfoPCmd:
       
   594 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Service Info"));
       
   595 			return KErrNone;
       
   596 		case ESatNotifyDeclareServicePCmd:
       
   597 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Declare Service"));
       
   598 			return KErrNone;		
       
   599 		case ESatNotifyTimerExpiration:
       
   600 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Timer expiration"));
       
   601 			return KErrNone;
       
   602 		case ESatNotifySmsPpDownload:
       
   603 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Sms PP Dowmload"));
       
   604 			return KErrNone;
       
   605 		case ESatNotifyCbDownload:
       
   606 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - CB Download"));
       
   607 			return KErrNone;
       
   608 		case ESatNotifyTimerMgmtPCmd:
       
   609 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Timer Managt"));
       
   610 			return KErrNone;
       
   611 		case ESatNotifyLocalInfoPCmd:
       
   612 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Local Info"));
       
   613 			return KErrNone;
       
   614 		case ESatNotifyPollingIntervalPCmd:
       
   615 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Polling Interval"));
       
   616 			return KErrNone;
       
   617 		case ESatNotifyPollingOffPCmd:
       
   618 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Polling Pff"));
       
   619 			return KErrNone;
       
   620 		case ESatNotifyTsyStateUpdated:
       
   621 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - TSY State Updated"));
       
   622 			return KErrNone;
       
   623 		case ESatNotifyRefreshRequired:
       
   624 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh Required"));
       
   625 			return KErrNone;
       
   626 		case ESatNotifyRefreshRequiredParam:
       
   627 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh Required Param"));
       
   628 			return KErrNone;
       
   629 		case ESatNotifyRetrieveMultimediaMsgPCmd:
       
   630 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Retrieve Multimedia Message"));
       
   631 			return KErrNone;
       
   632 		case ESatNotifySubmitMultimediaMsgPCmd:
       
   633 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Submit Multimedia Message"));
       
   634 			return KErrNone;
       
   635 		case ESatNotifyDisplayMultimediaMsgPCmd:
       
   636 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Display Multimedia Message"));
       
   637 			return KErrNone;
       
   638 		case  ESatNotifySetFramesPCmd:
       
   639 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Frames"));
       
   640 			return KErrNone;
       
   641 		case  ESatNotifyGetFramesStatusPCmd:
       
   642 			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Frames Status"));
       
   643 			return KErrNone;
       
   644 		default:
       
   645 			// Unknown or invalid IPC
       
   646 			LOGTEXT(_L8("CSatDSatTsy: Deregister error, unknown IPC"));
       
   647 			return KErrNotSupported;
       
   648 		}
       
   649 	}
       
   650 
       
   651 TInt CSatDSatTsy::NumberOfSlotsL(const TInt aIpc)
       
   652 /**
       
   653 * NumberOfSlotsL is called by the server when it is registering a new notification
       
   654 * It enables the TSY to tell the server how many buffer slots to allocate for
       
   655 * "repost immediately" notifications that may trigger before clients collect them
       
   656 */
       
   657 	{
       
   658 	TInt numberOfSlots=1;
       
   659 	switch (aIpc)
       
   660 		{
       
   661 		case ESatNotifyProactiveSimSessionStart:
       
   662 		case ESatNotifyProactiveSimSessionEnd:
       
   663 			LOGTEXT(_L8("CSatDSatTsy: Registered with 1 slot"));
       
   664 			numberOfSlots=1;
       
   665 			break;
       
   666 
       
   667 		case ESatNotifyCallControlRequest:
       
   668 		case ESatNotifyMoSmControlRequest:
       
   669 		case ESatNotifyDisplayTextPCmd:
       
   670 		case ESatNotifyGetInkeyPCmd:
       
   671 		case ESatNotifyGetInputPCmd:
       
   672 		case ESatNotifyPlayTonePCmd:
       
   673 		case ESatNotifySetUpMenuPCmd:
       
   674 		case ESatNotifySelectItemPCmd:
       
   675 		case ESatNotifySendSmPCmd:
       
   676 		case ESatNotifySendSsPCmd:
       
   677 		case ESatNotifySendUssdPCmd:
       
   678 		case ESatNotifySetUpCallPCmd:
       
   679 		case ESatNotifyRefreshPCmd:
       
   680 		case ESatNotifySetUpEventListPCmd:
       
   681 		case ESatNotifySetUpIdleModeTextPCmd:
       
   682 		case ESatNotifySendDtmfPCmd:
       
   683 		case ESatNotifyPerformCardApduPCmd:
       
   684 		case ESatNotifyPowerOffCardPCmd:
       
   685 		case ESatNotifyPowerOnCardPCmd:
       
   686 		case ESatNotifyGetReaderStatusPCmd:
       
   687 		case ESatNotifyRunAtCommandPCmd:
       
   688 		case ESatNotifyLanguageNotificationPCmd:
       
   689 		case ESatNotifyLaunchBrowserPCmd:
       
   690 		case ESatNotifyOpenChannelPCmd:
       
   691 		case ESatNotifyCloseChannelPCmd:
       
   692 		case ESatNotifyReceiveDataPCmd:
       
   693 		case ESatNotifySendDataPCmd:
       
   694 		case ESatNotifyGetChannelStatusPCmd:
       
   695 		case ESatNotifyServiceSearchPCmd:
       
   696 		case ESatNotifyGetServiceInfoPCmd:
       
   697 		case ESatNotifyDeclareServicePCmd:
       
   698 		case ESatNotifyTimerExpiration:
       
   699 		case ESatNotifySmsPpDownload:
       
   700 		case ESatNotifyCbDownload:		
       
   701 		case ESatNotifyTimerMgmtPCmd:							
       
   702 		case ESatNotifyLocalInfoPCmd:
       
   703 		case ESatNotifyPollingIntervalPCmd:
       
   704 		case ESatNotifyPollingOffPCmd:
       
   705 		case ESatNotifyTsyStateUpdated:
       
   706 		case ESatNotifyRefreshRequired:
       
   707 		case ESatNotifyRefreshRequiredParam:
       
   708 		case ESatNotifyRetrieveMultimediaMsgPCmd:							
       
   709 		case ESatNotifySubmitMultimediaMsgPCmd:
       
   710 		case ESatNotifyDisplayMultimediaMsgPCmd:
       
   711 		case ESatNotifySetFramesPCmd :
       
   712 		case ESatNotifyGetFramesStatusPCmd: 		
       
   713 			LOGTEXT(_L8("CSatDSatTsy: Registered with 2 slot"));
       
   714 			numberOfSlots=2;
       
   715 			break;
       
   716 		default:
       
   717 			// Unknown or invalid IPC
       
   718 			LOGTEXT(_L8("CSatDSatTsy: Number of Slots error, unknown IPC"));
       
   719 			User::Leave(KErrNotSupported);
       
   720 			break;
       
   721 		}  
       
   722 	return numberOfSlots;
       
   723 	}
       
   724 
       
   725 
       
   726 TInt CSatDSatTsy::ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,
       
   727 							  const TDataPackage& aPackage)
       
   728 /**
       
   729 * ExtFunc is called by the server when it has a "extended", i.e. non-core ETel request 
       
   730 * for the TSY to process
       
   731 * A request handle, request type and request data are passed to the TSY
       
   732 */
       
   733 	{
       
   734 	TAny* dataPtr=aPackage.Ptr1();
       
   735 	TAny* dataPtr2=aPackage.Ptr2();
       
   736 
       
   737 	switch (aIpc)
       
   738 		{
       
   739 		case ESatNotifyProactiveSimSessionStart:
       
   740 			return NotifyProactiveSimSessionStart(aTsyReqHandle);
       
   741 		case ESatNotifyProactiveSimSessionEnd:
       
   742 			return NotifyProactiveSimSessionEnd(aTsyReqHandle);
       
   743 		case ESatNotifyCallControlRequest:
       
   744 			return NotifyCallControlRequest(aTsyReqHandle, aPackage.Des1n());
       
   745 		case ESatNotifyMoSmControlRequest:
       
   746 			return NotifyMoSmControlRequest(aTsyReqHandle, aPackage.Des1n());
       
   747 		case ESatNotifyDisplayTextPCmd:
       
   748 			return NotifyDisplayTextPCmd(aTsyReqHandle, aPackage.Des1n());
       
   749 		case ESatNotifyGetInkeyPCmd:
       
   750 			return NotifyGetInkeyPCmd(aTsyReqHandle, aPackage.Des1n());
       
   751 		case ESatNotifyGetInputPCmd:
       
   752 			return NotifyGetInputPCmd(aTsyReqHandle, aPackage.Des1n());
       
   753 		case ESatNotifyPlayTonePCmd:
       
   754 			return NotifyPlayTonePCmd(aTsyReqHandle, aPackage.Des1n());
       
   755 		case ESatNotifySetUpMenuPCmd:
       
   756 			return NotifySetUpMenuPCmd(aTsyReqHandle, aPackage.Des1n());
       
   757 		case ESatNotifySelectItemPCmd:
       
   758 			return NotifySelectItemPCmd(aTsyReqHandle, aPackage.Des1n());
       
   759 		case ESatNotifySendSmPCmd:
       
   760 			return NotifySendSmPCmd(aTsyReqHandle, aPackage.Des1n());
       
   761 		case ESatNotifySendSsPCmd:
       
   762 			return NotifySendSsPCmd(aTsyReqHandle, aPackage.Des1n());
       
   763 		case ESatNotifySendUssdPCmd:
       
   764 			return NotifySendUssdPCmd(aTsyReqHandle, aPackage.Des1n());
       
   765 		case ESatNotifySetUpCallPCmd:
       
   766 			return NotifySetUpCallPCmd(aTsyReqHandle, aPackage.Des1n());
       
   767 		case ESatNotifyRefreshPCmd:
       
   768 			return NotifyRefreshPCmd(aTsyReqHandle, aPackage.Des1n());
       
   769 		case ESatNotifySetUpEventListPCmd:
       
   770 			return NotifySetUpEventListPCmd(aTsyReqHandle, aPackage.Des1n());
       
   771 		case ESatNotifySetUpIdleModeTextPCmd:
       
   772 			return NotifySetUpIdleModeTextPCmd(aTsyReqHandle, aPackage.Des1n());
       
   773 		case ESatNotifySendDtmfPCmd:
       
   774 			return NotifySendDtmfPCmd(aTsyReqHandle, aPackage.Des1n());
       
   775 		case ESatGetIcon:
       
   776 			return GetIcon(aTsyReqHandle,
       
   777 			REINTERPRET_CAST(TUint8*, dataPtr),
       
   778 			REINTERPRET_CAST(RSat::TIcon*, dataPtr2));
       
   779 		case ESatGetImageInstance:
       
   780 			return GetImageInstance(aTsyReqHandle,
       
   781 			aPackage.Des1n(),
       
   782 			aPackage.Des2n());
       
   783 		case ESatGetClut:
       
   784 			return GetClut(aTsyReqHandle,
       
   785 			REINTERPRET_CAST(RSat::TInstanceNumberAndOffset*, dataPtr),
       
   786 			aPackage.Des2n());
       
   787 		case ESatTerminalRsp:
       
   788 			return TerminalRsp(aTsyReqHandle,
       
   789 				REINTERPRET_CAST(RSat::TPCmd*, dataPtr),aPackage.Des2n());
       
   790 		case ESatGetMeSideSatProfile:
       
   791 			return GetMeSideSatProfile(aTsyReqHandle, aPackage.Des1n());
       
   792 		case ESatClientSatProfileIndication:
       
   793 			return ClientSatProfileIndication(aTsyReqHandle, aPackage.Des1n());
       
   794 		case ESatMenuSelection:
       
   795 			return MenuSelection(aTsyReqHandle, aPackage.Des1n());
       
   796 		case ESatEventDownload:
       
   797 			return EventDownload(aTsyReqHandle, 
       
   798 				REINTERPRET_CAST(RSat::TEventList*, dataPtr),
       
   799 				aPackage.Des2n());
       
   800 		case ESatRefreshAllowed:
       
   801 			return RefreshAllowed(aTsyReqHandle, aPackage.Des1n());
       
   802 		case ESatNotifyPerformCardApduPCmd:
       
   803 			return NotifyPerformCardApduPCmd(aTsyReqHandle, aPackage.Des1n());
       
   804 		case ESatNotifyPowerOffCardPCmd:
       
   805 			return NotifyPowerOffCardPCmd(aTsyReqHandle, aPackage.Des1n());
       
   806 		case ESatNotifyPowerOnCardPCmd:
       
   807 			return NotifyPowerOnCardPCmd(aTsyReqHandle, aPackage.Des1n());
       
   808 		case ESatNotifyGetReaderStatusPCmd:
       
   809 			return NotifyGetReaderStatusPCmd(aTsyReqHandle, aPackage.Des1n());
       
   810 		case ESatNotifyRunAtCommandPCmd:
       
   811 			return NotifyRunAtCommandPCmd(aTsyReqHandle, aPackage.Des1n());
       
   812 		case ESatNotifyLanguageNotificationPCmd:
       
   813 			return NotifyLanguageNotificationPCmd(aTsyReqHandle, aPackage.Des1n());
       
   814 		case ESatNotifyLaunchBrowserPCmd:
       
   815 			return NotifyLaunchBrowserPCmd(aTsyReqHandle, aPackage.Des1n());
       
   816 		case ESatNotifyOpenChannelPCmd:
       
   817 			return NotifyOpenChannelPCmd(aTsyReqHandle, aPackage.Des1n());
       
   818 		case ESatGetOpenChannelPCmd:
       
   819 			return GetOpenChannelPCmd(aTsyReqHandle, aPackage.Des1n());
       
   820 		case ESatNotifyCloseChannelPCmd:
       
   821 			return NotifyCloseChannelPCmd(aTsyReqHandle, aPackage.Des1n());
       
   822 		case ESatNotifyReceiveDataPCmd:
       
   823 			return NotifyReceiveDataPCmd(aTsyReqHandle, aPackage.Des1n());
       
   824 		case ESatNotifySendDataPCmd:
       
   825 			return NotifySendDataPCmd(aTsyReqHandle, aPackage.Des1n());
       
   826 		case ESatNotifyGetChannelStatusPCmd:
       
   827 			return NotifyGetChannelStatusPCmd(aTsyReqHandle, aPackage.Des1n());
       
   828 		case ESatNotifyServiceSearchPCmd:
       
   829 			return NotifyServiceSearchPCmd(aTsyReqHandle, aPackage.Des1n());
       
   830 		case ESatNotifyGetServiceInfoPCmd:
       
   831 			return NotifyGetServiceInfoPCmd(aTsyReqHandle, aPackage.Des1n());
       
   832 		case ESatNotifyDeclareServicePCmd:
       
   833 			return NotifyDeclareServicePCmd(aTsyReqHandle, aPackage.Des1n());
       
   834 		case ESatUsatClientReadyIndication:
       
   835 			return UsatClientReadyIndication(aTsyReqHandle);
       
   836 		case ESatGetProvisioningRefFile:
       
   837 			return GetProvisioningRefFile(aTsyReqHandle, 
       
   838 				REINTERPRET_CAST(RSat::TProvisioningFileRef*, dataPtr),
       
   839 				aPackage.Des2n());
       
   840 		case ESatSendMessageNoLogging:
       
   841 			return SendMessageNoLogging(aTsyReqHandle, 
       
   842 				aPackage.Des1n(),
       
   843 				REINTERPRET_CAST(TUint16*, dataPtr2));				
       
   844 		case ESatNotifyTimerExpiration:
       
   845 			return NotifyTimerExpiration(aTsyReqHandle, aPackage.Des1n());
       
   846 		case ESatNotifySmsPpDownload:
       
   847 			return NotifySmsPpDownload(aTsyReqHandle, aPackage.Des1n());
       
   848 		case ESatNotifyCbDownload:
       
   849 			return NotifyCbDownload(aTsyReqHandle, aPackage.Des1n());
       
   850 		case ESatNotifyTimerMgmtPCmd:
       
   851 			return NotifyTimerManagtPCmd(aTsyReqHandle, aPackage.Des1n());
       
   852 		case ESatNotifyLocalInfoPCmd:
       
   853 			return NotifyLocalInfoPCmd(aTsyReqHandle, aPackage.Des1n());
       
   854 		case ESatNotifyPollingIntervalPCmd:
       
   855 			return NotifyPollingIntervalPCmd(aTsyReqHandle, aPackage.Des1n());
       
   856 		case ESatNotifyPollingOffPCmd:
       
   857 			return NotifyPollingOffPCmd(aTsyReqHandle, aPackage.Des1n());			
       
   858 		case ESatNotifyTsyStateUpdated:
       
   859 			return NotifyTsyStateUpdated(aTsyReqHandle, 
       
   860 				REINTERPRET_CAST(RSat::TPCmd*, dataPtr));
       
   861 		case ESatNotifyRefreshRequired:
       
   862 			return NotifyRefreshRequired(aTsyReqHandle);
       
   863 		case ESatNotifyRefreshRequiredParam:
       
   864 			return NotifyRefreshRequired(aTsyReqHandle, aPackage.Des1n());
       
   865 		case ETestCustomIPC1:
       
   866 			ReqCompleted(aTsyReqHandle,KErrNone);
       
   867 			return KErrNone;
       
   868 		case ESatNotifyRetrieveMultimediaMsgPCmd:
       
   869 			return NotifyRetrieveMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
       
   870 		case ESatNotifySubmitMultimediaMsgPCmd:
       
   871 			return NotifySubmitMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
       
   872 		case ESatNotifyDisplayMultimediaMsgPCmd:
       
   873 			return NotifyDisplayMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
       
   874 		case  ESatNotifySetFramesPCmd:
       
   875 			return NotifySetFramesPCmd(aTsyReqHandle, aPackage.Des1n());			
       
   876 		case  ESatNotifyGetFramesStatusPCmd:
       
   877 			return NotifyGetFramesStatusPCmd(aTsyReqHandle, aPackage.Des1n());
       
   878 		case ESatMmsNotificationDownload:
       
   879 			return MmsNotificationDownload(aTsyReqHandle, aPackage.Des1n());
       
   880 		case ESatMmsTransferStatus:
       
   881 			return MmsTransferStatus(aTsyReqHandle, aPackage.Des1n());		
       
   882 		case ESatUssdDataDownload :
       
   883 			return UssdDataDownload(aTsyReqHandle, aPackage.Des1n());
       
   884 		default:
       
   885 			return KErrNotSupported;
       
   886 		}
       
   887 	}
       
   888 
       
   889 TInt CSatDSatTsy::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle)
       
   890 /**
       
   891 * CancelService is called by the server when it is "cleaning-up" any still outstanding
       
   892 * asynchronous requests before closing a client's sub-session.
       
   893 *
       
   894 * CancelService is also called when individual cancel methods are called by the client,
       
   895 * who wishes to cancel an outstanding asynchronous request.
       
   896 *
       
   897 * This will happen if a client closes its R-class handle without cancelling outstanding
       
   898 * asynchronous requests.
       
   899 */
       
   900 	{
       
   901 	LOGTEXT(_L8("CSatDSatTsy: - CancelService called"));
       
   902 	switch (aIpc)
       
   903 		{
       
   904 		case ESatNotifyProactiveSimSessionEnd:
       
   905 			return NotifyProactiveSimSessionEndCancel(aTsyReqHandle);
       
   906 		case ESatNotifyProactiveSimSessionStart:
       
   907 			return NotifyProactiveSimSessionStartCancel(aTsyReqHandle);
       
   908 		case ESatGetIcon:
       
   909 			return GetIconCancel(aTsyReqHandle);
       
   910 		case ESatGetImageInstance:
       
   911 			return GetImageInstanceCancel(aTsyReqHandle);
       
   912 		case ESatGetClut:
       
   913 			return GetClutCancel(aTsyReqHandle);
       
   914 		case ESatTerminalRsp:
       
   915 			return TerminalRspCancel(aTsyReqHandle);
       
   916 		case ESatGetMeSideSatProfile:
       
   917 			return GetMeSideSatProfileCancel(aTsyReqHandle);
       
   918 		case ESatMenuSelection:
       
   919 			return MenuSelectionCancel(aTsyReqHandle);
       
   920 		case ESatRefreshAllowed:
       
   921 			return RefreshAllowedCancel(aTsyReqHandle);
       
   922 		case ESatNotifyCallControlRequest:
       
   923 			return NotifyCallControlRequestCancel(aTsyReqHandle);
       
   924 		case ESatNotifyMoSmControlRequest:
       
   925 			return NotifyMoSmControlRequestCancel(aTsyReqHandle);
       
   926 		case ESatEventDownload:
       
   927 			return EventDownloadCancel(aTsyReqHandle);
       
   928 		case ESatNotifyDisplayTextPCmd:
       
   929 			return NotifyDisplayTextPCmdCancel(aTsyReqHandle);
       
   930  		case ESatNotifyGetInkeyPCmd:
       
   931 			return NotifyGetInkeyPCmdCancel(aTsyReqHandle);
       
   932 		case ESatNotifyGetInputPCmd:
       
   933 			return NotifyGetInputPCmdCancel(aTsyReqHandle);
       
   934 		case ESatNotifyPlayTonePCmd:
       
   935 			return NotifyPlayTonePCmdCancel(aTsyReqHandle);
       
   936 		case ESatNotifySetUpMenuPCmd:
       
   937 			return NotifySetUpMenuPCmdCancel(aTsyReqHandle);
       
   938 		case ESatNotifySelectItemPCmd:
       
   939 			return NotifySelectItemPCmdCancel(aTsyReqHandle);
       
   940 		case ESatNotifySendSmPCmd:
       
   941 			return NotifySendSmPCmdCancel(aTsyReqHandle);
       
   942 		case ESatNotifySendSsPCmd:
       
   943 			return NotifySendSsPCmdCancel(aTsyReqHandle);
       
   944 		case ESatNotifySendUssdPCmd:
       
   945 			return NotifySendUssdPCmdCancel(aTsyReqHandle);
       
   946 		case ESatNotifySetUpCallPCmd:
       
   947 			return NotifySetUpCallPCmdCancel(aTsyReqHandle);
       
   948 		case ESatNotifyRefreshPCmd:
       
   949 			return NotifyRefreshPCmdCancel(aTsyReqHandle);
       
   950 		case ESatNotifySetUpEventListPCmd:
       
   951 			return NotifySetUpEventListPCmdCancel(aTsyReqHandle);
       
   952 		case ESatNotifySetUpIdleModeTextPCmd:
       
   953 			return NotifySetUpIdleModeTextPCmdCancel(aTsyReqHandle);
       
   954 		case ESatNotifySendDtmfPCmd:
       
   955 			return NotifySendDtmfPCmdCancel(aTsyReqHandle);
       
   956 		case ESatNotifyPerformCardApduPCmd:
       
   957 			return NotifyPerformCardApduPCmdCancel(aTsyReqHandle);
       
   958 		case ESatNotifyPowerOffCardPCmd:
       
   959 			return NotifyPowerOffCardPCmdCancel(aTsyReqHandle);
       
   960 		case ESatNotifyPowerOnCardPCmd:
       
   961 			return NotifyPowerOnCardPCmdCancel(aTsyReqHandle);
       
   962 		case ESatNotifyGetReaderStatusPCmd:
       
   963 			return NotifyGetReaderStatusPCmdCancel(aTsyReqHandle);
       
   964 		case ESatNotifyRunAtCommandPCmd:
       
   965 			return NotifyRunAtCommandPCmdCancel(aTsyReqHandle);
       
   966 		case ESatNotifyLanguageNotificationPCmd:
       
   967 			return NotifyLanguageNotificationPCmdCancel(aTsyReqHandle);
       
   968 		case ESatNotifyLaunchBrowserPCmd:
       
   969 			return NotifyLaunchBrowserPCmdCancel(aTsyReqHandle);
       
   970 		case ESatNotifyOpenChannelPCmd:
       
   971 			return NotifyOpenChannelPCmdCancel(aTsyReqHandle);
       
   972 		case ESatGetOpenChannelPCmd:
       
   973 			return GetOpenChannelPCmdCancel(aTsyReqHandle);			
       
   974 		case ESatNotifyCloseChannelPCmd:
       
   975 			return NotifyCloseChannelPCmdCancel(aTsyReqHandle);
       
   976 		case ESatNotifyReceiveDataPCmd:
       
   977 			return NotifyReceiveDataPCmdCancel(aTsyReqHandle);
       
   978 		case ESatNotifySendDataPCmd:
       
   979 			return NotifySendDataPCmdCancel(aTsyReqHandle);
       
   980 		case ESatNotifyGetChannelStatusPCmd:
       
   981 			return NotifyGetChannelStatusPCmdCancel(aTsyReqHandle);
       
   982 		case ESatNotifyServiceSearchPCmd:
       
   983 			return NotifyServiceSearchPCmdCancel(aTsyReqHandle);
       
   984 		case ESatNotifyGetServiceInfoPCmd:
       
   985 			return NotifyGetServiceInfoPCmdCancel(aTsyReqHandle);
       
   986 		case ESatNotifyDeclareServicePCmd:
       
   987 			return NotifyDeclareServicePCmdCancel(aTsyReqHandle);
       
   988 		case ESatGetProvisioningRefFile:
       
   989 			return GetProvisioningRefFileCancel(aTsyReqHandle);
       
   990 		case ESatSendMessageNoLogging:
       
   991 			return SendMessageNoLoggingCancel(aTsyReqHandle);
       
   992 		case ESatNotifyTimerExpiration:
       
   993 			return NotifyTimerExpirationCancel(aTsyReqHandle);
       
   994 		case ESatNotifySmsPpDownload:
       
   995 			return NotifySmsPpDownloadCancel(aTsyReqHandle);
       
   996 		case ESatNotifyCbDownload:
       
   997 			return NotifyCbDownloadCancel(aTsyReqHandle);
       
   998 		case ESatNotifyTimerMgmtPCmd:
       
   999 			return NotifyTimerManagtPCmdCancel(aTsyReqHandle);
       
  1000 		case ESatNotifyLocalInfoPCmd:
       
  1001 			return NotifyLocalInfoPCmdCancel(aTsyReqHandle);
       
  1002 		case ESatNotifyPollingIntervalPCmd:
       
  1003 			return NotifyPollingIntervalPCmdCancel(aTsyReqHandle);
       
  1004 		case ESatNotifyPollingOffPCmd:
       
  1005 			return NotifyPollingOffPCmdCancel(aTsyReqHandle);
       
  1006 		case ESatNotifyTsyStateUpdated:
       
  1007 			return NotifyTsyStateUpdatedCancel(aTsyReqHandle);
       
  1008 		case ESatNotifyRefreshRequired:
       
  1009 			return NotifyRefreshRequiredCancel(aTsyReqHandle);
       
  1010 		case ESatNotifyRefreshRequiredParam:
       
  1011 			return NotifyRefreshRequiredCancel(aTsyReqHandle);
       
  1012 		case ESatNotifyRetrieveMultimediaMsgPCmd:
       
  1013 			return NotifyRetrieveMultimediaMsgPCmdCancel(aTsyReqHandle);
       
  1014 		case ESatNotifySubmitMultimediaMsgPCmd:
       
  1015 			return NotifySubmitMultimediaMsgPCmdCancel(aTsyReqHandle);
       
  1016 		case ESatNotifyDisplayMultimediaMsgPCmd:
       
  1017 			return NotifyDisplayMultimediaMsgPCmdCancel(aTsyReqHandle);
       
  1018 		case  ESatNotifySetFramesPCmd:
       
  1019 			return NotifySetFramesPCmdCancel(aTsyReqHandle);
       
  1020 		case  ESatNotifyGetFramesStatusPCmd:
       
  1021 			return NotifyGetFramesStatusPCmdCancel(aTsyReqHandle);
       
  1022 		case  ESatMmsNotificationDownload:
       
  1023 			return MmsNotificationDownloadCancel(aTsyReqHandle);
       
  1024 		case ESatMmsTransferStatus:
       
  1025 			return MmsTransferStatusCancel(aTsyReqHandle);
       
  1026 		case ESatUssdDataDownload:
       
  1027 			return UssdDataDownloadCancel(aTsyReqHandle);
       
  1028 		default:
       
  1029 			return KErrGeneral; 
       
  1030 		} 
       
  1031 	}
       
  1032 
       
  1033 
       
  1034 /***********************************************************************************/
       
  1035 //
       
  1036 // The following methods are called from ExtFunc and/or CancelService.
       
  1037 // Each of these will process a TSY request or cancel a TSY request
       
  1038 // Here, example values are returned or checked within this dummy TSY in order to ensure
       
  1039 // that the integrity of the data passed to/from client is maintained
       
  1040 //
       
  1041 /***********************************************************************************/
       
  1042 
       
  1043 TInt CSatDSatTsy::GetIcon(const TTsyReqHandle aTsyReqHandle, TUint8* aRecordNumber, RSat::TIcon* aIconEf)
       
  1044 	{
       
  1045 	if((iGetIcon==0)||(iGetIcon==1))
       
  1046 		{
       
  1047 		iGetIcon++;
       
  1048 		LOGTEXT(_L8("CSatDSatTsy::GetIcon called"));
       
  1049 		switch(*aRecordNumber)
       
  1050 			{
       
  1051 			case 1:
       
  1052 				*aIconEf=DSATTSY_ICON_EF1;
       
  1053 				break;
       
  1054 			case 2:
       
  1055 				*aIconEf=DSATTSY_ICON_EF2;
       
  1056 				break;
       
  1057 			default:
       
  1058 				*aIconEf=DSATTSY_ICON_EF1;
       
  1059 				break;
       
  1060 			}
       
  1061 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1062 		}
       
  1063 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1064 	return KErrNone;
       
  1065 	}
       
  1066 
       
  1067 TInt CSatDSatTsy::GetIconCancel(const TTsyReqHandle aTsyReqHandle)
       
  1068 	{
       
  1069 	LOGTEXT(_L8("CSatDSatTsy::GetIconCancel called"));
       
  1070 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  1071 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  1072 	else
       
  1073 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1074 	return KErrNone;	
       
  1075 	}
       
  1076 
       
  1077 TInt CSatDSatTsy::GetImageInstance(const TTsyReqHandle aTsyReqHandle, TDesC8* aCallParams, TDes8* aInstance)
       
  1078 /**
       
  1079 * The first time that this method is called, iGetImageInstance=0
       
  1080 * The request completes - ReqCompleted is called. One of the test cases for 
       
  1081 * aInstanceNumber can be tested.
       
  1082 *
       
  1083 * The second time that this method is called, iGetImageInstance=1
       
  1084 * The request completes - ReqCompleted is called. Another one of the test cases
       
  1085 * for aInstanceNumber can be tested.
       
  1086 * 
       
  1087 * The third time that this method is called, iGetImageInstance=2
       
  1088 * The request does not complete.
       
  1089 *
       
  1090 * This mechanism prevents an infinite loop as each time a notification completes,
       
  1091 * it is reposted automatically by the server, which would in this test code create an
       
  1092 * infinite loop of posting, completing and reposting the notification.
       
  1093 *
       
  1094 * This mechanism also allows the test client to test the cancel method associated.
       
  1095 *
       
  1096 * If parameters become corrupted in either of the two tests then 'KErrCorrupt' 
       
  1097 * and an unknown image instance returned.
       
  1098 */
       
  1099 	{
       
  1100 	LOGTEXT(_L8("CSatDSatTsy::GetImageInstance called"));
       
  1101 	
       
  1102 	TInt result=KErrNone;
       
  1103 	
       
  1104 	RSat::TInstanceInfoV3Pckg* paramsPckgV3 = (RSat::TInstanceInfoV3Pckg*)aCallParams;
       
  1105 	RSat::TInstanceInfoV3& paramsV3 = (*paramsPckgV3)();
       
  1106 
       
  1107 	if((iGetImageInstance==0)||(iGetImageInstance==1))
       
  1108 		{
       
  1109 		iGetImageInstance++;
       
  1110 		
       
  1111 		if(paramsV3.ExtensionId()== RSat::KSatV3)
       
  1112 			{
       
  1113 			// check that all parameters are being passed correctly
       
  1114 			if( paramsV3.iInstanceNumber == DSATTSY_INSTANCE_NUMBER1 &&
       
  1115 				paramsV3.iLength==DSATTSY_INSTANCE_LENGTH1 && 
       
  1116 				paramsV3.iOffset==DSATTSY_INSTANCE_OFFSET1 &&	
       
  1117 				paramsV3.iCoding==DSATTSY_INSTANCE_CODING_BASIC &&
       
  1118 				paramsV3.iImgWidth==DSATTSY_INSTANCE_WIDTH_1 &&
       
  1119 				paramsV3.iImgHeight==DSATTSY_INSTANCE_HEIGHT_1 &&
       
  1120 				paramsV3.iFileId==DSATTSY_INSTANCE_FILE_ID_1 ) 
       
  1121 				{
       
  1122 				*aInstance=DSATTSY_IMG_INSTANCE1;
       
  1123 				}
       
  1124 			else if(paramsV3.iInstanceNumber == DSATTSY_INSTANCE_NUMBER2 &&
       
  1125 					paramsV3.iLength==DSATTSY_INSTANCE_LENGTH2 && 
       
  1126 					paramsV3.iOffset==DSATTSY_INSTANCE_OFFSET2 &&
       
  1127 					paramsV3.iCoding==DSATTSY_INSTANCE_CODING_COLOUR &&
       
  1128 					paramsV3.iImgWidth==DSATTSY_INSTANCE_WIDTH_2 &&
       
  1129 					paramsV3.iImgHeight==DSATTSY_INSTANCE_HEIGHT_2 &&
       
  1130 					paramsV3.iFileId==DSATTSY_INSTANCE_FILE_ID_2 )
       
  1131 							{
       
  1132 				*aInstance=DSATTSY_IMG_INSTANCE2;
       
  1133 				}
       
  1134 			else
       
  1135 				{
       
  1136 				// parameters have been corrupted
       
  1137 				*aInstance=DSATTSY_IMG_INSTANCE_UNKNOWN;
       
  1138 				result=KErrCorrupt;
       
  1139 				}
       
  1140 			}				
       
  1141 		ReqCompleted(aTsyReqHandle,result);
       
  1142 		}
       
  1143 
       
  1144 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1145 	return result;
       
  1146 	}
       
  1147 
       
  1148 
       
  1149 TInt CSatDSatTsy::GetImageInstanceCancel(const TTsyReqHandle aTsyReqHandle)
       
  1150 	{
       
  1151 	LOGTEXT(_L8("CSatDSatTsy::GetImageInstanceCancel called"));
       
  1152 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  1153 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  1154 	else
       
  1155 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1156 	return KErrNone;	
       
  1157 	}
       
  1158 
       
  1159 TInt CSatDSatTsy::GetClut(const TTsyReqHandle aTsyReqHandle, RSat::TInstanceNumberAndOffset* aClutInfo, TDes8* aClut)
       
  1160 	{
       
  1161 	LOGTEXT(_L8("CSatDSatTsy::GetClut called"));
       
  1162 
       
  1163 	if((aClutInfo->iInstanceNumber!=DSATTSY_INSTANCE_NUMBER1)
       
  1164 			||(aClutInfo->iOffset!=DSATTSY_CLUT_OFFSET))
       
  1165 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1166 
       
  1167 	if(iGetClut==0)
       
  1168 		{
       
  1169 		iGetClut++;
       
  1170 		*aClut= DSATTSY_CLUT1;
       
  1171 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1172 		}
       
  1173 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1174 	return KErrNone;
       
  1175 	}
       
  1176 
       
  1177 TInt CSatDSatTsy::GetClutCancel(const TTsyReqHandle aTsyReqHandle)
       
  1178 	{
       
  1179 	LOGTEXT(_L8("CSatDSatTsy::GetClutCancel called"));
       
  1180 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  1181 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  1182 	else
       
  1183 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1184 	return KErrNone;	
       
  1185 	}
       
  1186 
       
  1187 TInt CSatDSatTsy::DisplayTextTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1188 	{
       
  1189 	RSat::TDisplayTextRspV1Pckg* aRspPckg = (RSat::TDisplayTextRspV1Pckg*)aRsp;
       
  1190 	RSat::TDisplayTextRspV1& rspV1 = (*aRspPckg)();
       
  1191 
       
  1192 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1193 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1194 		||(rspV1.PCmdNumber()!=DSATTSY_DISPLAY_TEXT_NUMBER))
       
  1195 		{
       
  1196 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1197 		}
       
  1198 	else if(!iDisplayTextTerminalRsp++)
       
  1199 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1200 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1201 	return KErrNone;
       
  1202 	}
       
  1203 
       
  1204 TInt CSatDSatTsy::GetInkeyTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1205 	{
       
  1206 	RSat::TGetInkeyRspV1Pckg* aRspPckg = (RSat::TGetInkeyRspV1Pckg*)aRsp;
       
  1207 	RSat::TGetInkeyRspV1& rspV1 = (*aRspPckg)();
       
  1208 
       
  1209 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1210 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
       
  1211 		||(rspV1.iRspFormat!=DSATTSY_USER_RSP_FORMAT)
       
  1212 		||(rspV1.iAdditionalInfo!=DSATTSY_USER_TEXT_INPUT)
       
  1213 		||(rspV1.PCmdNumber()!=DSATTSY_GET_INKEY_NUMBER))
       
  1214 		{
       
  1215 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1216 		}
       
  1217 	else if(!iGetInkeyTerminalRsp++)
       
  1218 		{
       
  1219 		if(rspV1.ExtensionId()==RSat::KSatV2)
       
  1220 			{
       
  1221 			RSat::TGetInkeyRspV2Pckg* aV2RspPckg = (RSat::TGetInkeyRspV2Pckg*)aRsp;
       
  1222 			RSat::TGetInkeyRspV2& rspV2 = (*aV2RspPckg)();
       
  1223 			
       
  1224 			if((rspV2.iDuration.iTimeUnit!=DSATTSY_TIME_UNIT)
       
  1225 				|| (rspV2.iDuration.iNumOfUnits!=DSATTSY_NUM_OF_UNITS))
       
  1226 				{
       
  1227 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1228 				}
       
  1229 			else
       
  1230 				ReqCompleted(aTsyReqHandle,KErrNone);
       
  1231 			}
       
  1232 		else
       
  1233 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  1234 		}
       
  1235 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1236 	return KErrNone;
       
  1237 	}
       
  1238 
       
  1239 TInt CSatDSatTsy::GetInputTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1240 	{
       
  1241 	RSat::TGetInputRspV1Pckg* aRspPckg = (RSat::TGetInputRspV1Pckg*)aRsp;
       
  1242 	RSat::TGetInputRspV1& rspV1 = (*aRspPckg)();
       
  1243 
       
  1244 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1245 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
       
  1246 		||(rspV1.iRspFormat!=DSATTSY_GET_INPUT_RSP_FORMAT)
       
  1247 		||(rspV1.iAdditionalInfo!=DSATTSY_USER_TEXT_INPUT)
       
  1248 		||(rspV1.PCmdNumber()!=DSATTSY_GET_INPUT_NUMBER))
       
  1249 		{
       
  1250 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1251 		}
       
  1252 	else if(!iGetInputTerminalRsp++)
       
  1253 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1254 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1255 	return KErrNone;
       
  1256 	}
       
  1257 
       
  1258 TInt CSatDSatTsy::PlayToneTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1259 	{
       
  1260 	RSat::TPlayToneRspV1Pckg* aRspPckg = (RSat::TPlayToneRspV1Pckg*)aRsp;
       
  1261 	RSat::TPlayToneRspV1& rspV1 = (*aRspPckg)();
       
  1262 
       
  1263 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1264 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1265 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1266 		||(rspV1.PCmdNumber()!=DSATTSY_PLAY_TONE_NUMBER))
       
  1267 		{
       
  1268 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1269 		}
       
  1270 	else if(!iPlayToneTerminalRsp++)
       
  1271 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1272 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1273 	return KErrNone;
       
  1274 	}	
       
  1275 
       
  1276 TInt CSatDSatTsy::SetUpMenuRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1277 	{
       
  1278 	RSat::TSetUpMenuRspV1Pckg* aRspPckg = (RSat::TSetUpMenuRspV1Pckg*)aRsp;
       
  1279 	RSat::TSetUpMenuRspV1& rspV1 = (*aRspPckg)();
       
  1280 
       
  1281 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1282 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1283 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1284 		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_MENU_NUMBER))
       
  1285 		{
       
  1286 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1287 		}
       
  1288 	else if(!iSetUpMenuTerminalRsp++)
       
  1289 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1290 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1291 	return KErrNone;
       
  1292 	}
       
  1293 
       
  1294 TInt CSatDSatTsy::SelectItemTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1295 	{
       
  1296 	RSat::TSelectItemRspV1Pckg* aRspPckg = (RSat::TSelectItemRspV1Pckg*)aRsp;
       
  1297 	RSat::TSelectItemRspV1& rspV1 = (*aRspPckg)();
       
  1298 
       
  1299 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1300 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_ITEM_ID)
       
  1301 		||(rspV1.iAdditionalInfo!=DSATTSY_RSP_ITEM_ID)
       
  1302 		||(rspV1.PCmdNumber()!=DSATTSY_SELECT_ITEM_NUMBER))
       
  1303 		{
       
  1304 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1305 		}
       
  1306 	else if(!iSelectItemTerminalRsp++)
       
  1307 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1308 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1309 	return KErrNone;
       
  1310 	}
       
  1311 
       
  1312 TInt CSatDSatTsy::SendSmTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1313 	{
       
  1314 	RSat::TSendSmRspV1Pckg* aRspPckg = (RSat::TSendSmRspV1Pckg*)aRsp;
       
  1315 	RSat::TSendSmRspV1& rspV1 = (*aRspPckg)();
       
  1316 
       
  1317 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1318 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1319 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1320 		||(rspV1.PCmdNumber()!=DSATTSY_SEND_SM_NUMBER))
       
  1321 		{
       
  1322 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1323 		}
       
  1324 	else if(!iSendSmTerminalRsp++)
       
  1325 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1326 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1327 	return KErrNone;
       
  1328 	}
       
  1329 
       
  1330 TInt CSatDSatTsy::SendSSTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1331 	{
       
  1332 	RSat::TSendSsRspV1Pckg* aRspPckg = (RSat::TSendSsRspV1Pckg*)aRsp;
       
  1333 	RSat::TSendSsRspV1& rspV1 = (*aRspPckg)();
       
  1334 
       
  1335 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1336 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1337 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1338 		||(rspV1.PCmdNumber()!=DSATTSY_SEND_SS_NUMBER))
       
  1339 		{
       
  1340 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1341 		}
       
  1342 	else 
       
  1343 		{
       
  1344 		RSat::TControlResult ccResult;
       
  1345 		rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
       
  1346 
       
  1347 		RSat::TCallControlType ccType;
       
  1348 		rspV1.iCcRequestedAction.GetCallControlType(ccType);
       
  1349 
       
  1350 		RSat::TCallSetUpParams address;
       
  1351 		rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
       
  1352 
       
  1353 		RSat::TAlphaIdValidity validity;
       
  1354 		RSat::TAlphaId alphaId;
       
  1355 		rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
       
  1356 
       
  1357 		RSat::TBCRepeatIndicator indicator;
       
  1358 		rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
       
  1359 
       
  1360 		if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
       
  1361 		|| (address.iCcp1!=DSATTSY_CCP1) 
       
  1362 		||(address.iSubAddress!=DSATTSY_SUBADDRESS)
       
  1363 		|| (address.iCcp2!=DSATTSY_CCP2) 
       
  1364 		|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
       
  1365 		|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
       
  1366 		|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
       
  1367 		|| (validity!=DSATTSY_NO_ALPHAID)
       
  1368 		|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
       
  1369 		|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS)
       
  1370 		|| (indicator != DSATTSY_BC_REPEAT_INDICATOR_SEQUENTIAL))
       
  1371 			{
       
  1372 			ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1373 			}
       
  1374 
       
  1375 		else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1376 		||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1377 		||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
       
  1378 			{
       
  1379 			ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1380 			}
       
  1381 		
       
  1382 		else if(!iSendSsTerminalRsp++)
       
  1383 			{
       
  1384 			if(rspV1.ExtensionId()==RSat::KSatV2)
       
  1385 				{
       
  1386 				RSat::TSendSsRspV2Pckg* aV2RspPckg = (RSat::TSendSsRspV2Pckg*)aRsp;
       
  1387 				RSat::TSendSsRspV2& rspV2 = (*aV2RspPckg)();
       
  1388 			
       
  1389 				if((rspV2.iUssdString.iUssdString != DSATTSY_DEFAULT_TEXT)
       
  1390 				|| (rspV2.iUssdString.iDcs != DSATTSY_DCS))	
       
  1391 					ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1392 				else
       
  1393 					ReqCompleted(aTsyReqHandle,KErrNone);
       
  1394 				}
       
  1395 			else
       
  1396 				ReqCompleted(aTsyReqHandle,KErrNone);
       
  1397 			}
       
  1398 		}
       
  1399 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1400 	return KErrNone;
       
  1401 	}
       
  1402 
       
  1403 TInt CSatDSatTsy::SendUssdTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1404 	{
       
  1405 	RSat::TSendUssdRspV1Pckg* aRspPckg = (RSat::TSendUssdRspV1Pckg*)aRsp;
       
  1406 	RSat::TSendUssdRspV1& rspV1 = (*aRspPckg)();
       
  1407 
       
  1408 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1409 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
       
  1410 		||(rspV1.iAdditionalInfo!=DSATTSY_NETWORK_TEXT_STRING)
       
  1411 		||(rspV1.PCmdNumber()!=DSATTSY_SEND_USSD_NUMBER))
       
  1412 		{
       
  1413 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1414 		}
       
  1415 	else
       
  1416 		{
       
  1417 		RSat::TControlResult ccResult;
       
  1418 		rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
       
  1419 		RSat::TCallControlType ccType;
       
  1420 		rspV1.iCcRequestedAction.GetCallControlType(ccType);
       
  1421 
       
  1422 		RSat::TCallSetUpParams address;
       
  1423 		rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
       
  1424 
       
  1425 		RSat::TAlphaIdValidity validity;
       
  1426 		RSat::TAlphaId alphaId;
       
  1427 		rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
       
  1428 
       
  1429 		RSat::TBCRepeatIndicator indicator;
       
  1430 		rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
       
  1431 
       
  1432 		if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
       
  1433 			|| (address.iCcp1!=DSATTSY_CCP1) 
       
  1434 			||(address.iSubAddress!=DSATTSY_SUBADDRESS)
       
  1435 			|| (address.iCcp2!=DSATTSY_CCP2) 
       
  1436 			|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
       
  1437 			|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
       
  1438 			|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
       
  1439 			|| (validity!=DSATTSY_NO_ALPHAID)
       
  1440 			|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
       
  1441 			|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS
       
  1442 			|| indicator != DSATTSY_BC_REPEAT_INDICATOR_SEQUENTIAL))
       
  1443 			{
       
  1444 			ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1445 			}
       
  1446 
       
  1447 		else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1448 			||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1449 			||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
       
  1450 			{
       
  1451 			ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1452 			}
       
  1453 
       
  1454 		else if(!iSendUssdTerminalRsp++)
       
  1455 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  1456 		}
       
  1457 		iTsyAsyncReqHandle = aTsyReqHandle;
       
  1458 		return KErrNone;
       
  1459 	}
       
  1460 
       
  1461 TInt CSatDSatTsy::SetUpCallTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1462 	{
       
  1463 	RSat::TSetUpCallRspV1Pckg* aRspPckg = (RSat::TSetUpCallRspV1Pckg*)aRsp;
       
  1464 	RSat::TSetUpCallRspV1& rspV1 = (*aRspPckg)();
       
  1465 
       
  1466 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1467 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1468 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1469 		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_CALL_NUMBER))
       
  1470 		{
       
  1471 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1472 		}
       
  1473 	else
       
  1474 		{
       
  1475 		if(rspV1.ExtensionId()==RSat::KSatV2)
       
  1476 			{
       
  1477 			RSat::TSetUpCallRspV2Pckg* aRspV2Pckg = (RSat::TSetUpCallRspV2Pckg*)aRsp;
       
  1478 			RSat::TSetUpCallRspV2&     rspV2      = (*aRspV2Pckg)();
       
  1479 
       
  1480 			if((rspV2.iUssdString.iUssdString != DSATTSY_DEFAULT_TEXT)
       
  1481 			|| (rspV2.iUssdString.iDcs != DSATTSY_DCS))	
       
  1482 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  1483 			else
       
  1484 				ReqCompleted(aTsyReqHandle,KErrNone);
       
  1485 			}
       
  1486 		else
       
  1487 			{
       
  1488 			RSat::TControlResult ccResult;
       
  1489 			rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
       
  1490 
       
  1491 			RSat::TCallControlType ccType;
       
  1492 			rspV1.iCcRequestedAction.GetCallControlType(ccType);
       
  1493 
       
  1494 			RSat::TCallSetUpParams address;
       
  1495 			rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
       
  1496 
       
  1497 			RSat::TAlphaIdValidity validity;
       
  1498 			RSat::TAlphaId alphaId;
       
  1499 			rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
       
  1500 
       
  1501 			RSat::TBCRepeatIndicator indicator;
       
  1502 			rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
       
  1503 
       
  1504 			if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
       
  1505 				|| (address.iCcp1!=DSATTSY_CCP1) 
       
  1506 				|| (address.iSubAddress!=DSATTSY_SUBADDRESS)
       
  1507 				|| (address.iCcp2!=DSATTSY_CCP2) 
       
  1508 				|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
       
  1509 				|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
       
  1510 				|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
       
  1511 				|| (validity!=DSATTSY_NO_ALPHAID)
       
  1512 				|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
       
  1513 				|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS)
       
  1514 				|| (indicator != DSATTSY_BC_REPEAT_INDICATOR_ALTERNATE))
       
  1515 				{
       
  1516 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1517 				}
       
  1518 
       
  1519 			else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1520 				||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1521 				||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
       
  1522 				{
       
  1523 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1524 				}
       
  1525 			else if(!iSetUpCallTerminalRsp++)
       
  1526 				ReqCompleted(aTsyReqHandle,KErrNone);
       
  1527 			}
       
  1528 		}
       
  1529 
       
  1530 		iTsyAsyncReqHandle = aTsyReqHandle;
       
  1531 		return KErrNone;
       
  1532 	}
       
  1533 
       
  1534 TInt CSatDSatTsy::RefreshTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1535 	{
       
  1536 	RSat::TRefreshRspV1Pckg* aRspPckg = (RSat::TRefreshRspV1Pckg*)aRsp;
       
  1537 	RSat::TRefreshRspV1& rspV1 = (*aRspPckg)();
       
  1538 
       
  1539 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1540 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1541 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1542 		||(rspV1.PCmdNumber()!=DSATTSY_REFRESH_NUMBER))
       
  1543 		{
       
  1544 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1545 		}
       
  1546 	else if(!iRefreshTerminalRsp++)
       
  1547 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1548 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1549 	return KErrNone;
       
  1550 	}
       
  1551 
       
  1552 TInt CSatDSatTsy::SetUpEventListTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1553 	{
       
  1554 	RSat::TSetUpEventListRspV1Pckg* aRspPckg = (RSat::TSetUpEventListRspV1Pckg*)aRsp;
       
  1555 	RSat::TSetUpEventListRspV1& rspV1 = (*aRspPckg)();
       
  1556 
       
  1557 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1558 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1559 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1560 		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_EVENT_LIST_NUMBER))
       
  1561 		{
       
  1562 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1563 		}
       
  1564 	else if(!iSetUpEventListTerminalRsp++)
       
  1565 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1566 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1567 	return KErrNone;
       
  1568 	}
       
  1569 
       
  1570 TInt CSatDSatTsy::SetUpIdleModeTextTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1571 	{
       
  1572 	RSat::TSetUpIdleModeTextRspV1Pckg* aRspPckg = (RSat::TSetUpIdleModeTextRspV1Pckg*)aRsp;
       
  1573 	RSat::TSetUpIdleModeTextRspV1& rspV1 = (*aRspPckg)();
       
  1574 
       
  1575 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1576 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1577 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1578 		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER))
       
  1579 		{
       
  1580 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1581 		}
       
  1582 	else if(!iSetUpIdleModeTextTerminalRsp++)
       
  1583 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1584 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1585 	return KErrNone;
       
  1586 	}
       
  1587 
       
  1588 TInt CSatDSatTsy::SendDtmfTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1589 	{
       
  1590 	RSat::TSendDtmfRspV1Pckg* aRspPckg = (RSat::TSendDtmfRspV1Pckg*)aRsp;
       
  1591 	RSat::TSendDtmfRspV1& rspV1 = (*aRspPckg)();
       
  1592 
       
  1593 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1594 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1595 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1596 		||(rspV1.PCmdNumber()!=DSATTSY_SEND_DTMF_NUMBER))
       
  1597 		{
       
  1598 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1599 		}
       
  1600 	else if(!iSendDtmfTerminalRsp++)
       
  1601 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1602 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1603 	return KErrNone;
       
  1604 	}
       
  1605 
       
  1606 TInt CSatDSatTsy::PerformCardApduTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1607 	{
       
  1608 	RSat::TPerformCardApduRspV2Pckg* aV2RspPckg = (RSat::TPerformCardApduRspV2Pckg*)aRsp;
       
  1609 	RSat::TPerformCardApduRspV2& rspV2 = (*aV2RspPckg)();
       
  1610 
       
  1611 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1612 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1613 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1614 		||(rspV2.PCmdNumber()!=DSATTSY_PERFORM_CARD_APDU_NUMBER))
       
  1615 		{
       
  1616 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1617 		}
       
  1618 	else if(!iPerformCardApduTerminalRsp++)
       
  1619 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1620 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1621 	return KErrNone;
       
  1622 	}
       
  1623 
       
  1624 TInt CSatDSatTsy::PowerOffCardTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1625 	{
       
  1626 	RSat::TPowerOffCardRspV2Pckg* aV2RspPckg = (RSat::TPowerOffCardRspV2Pckg*)aRsp;
       
  1627 	RSat::TPowerOffCardRspV2& rspV2 = (*aV2RspPckg)();
       
  1628 
       
  1629 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1630 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1631 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1632 		||(rspV2.PCmdNumber()!=DSATTSY_POWER_OFF_CARD_NUMBER))
       
  1633 		{
       
  1634 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1635 		}
       
  1636 	else if(!iPowerOffCardTerminalRsp++)
       
  1637 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1638 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1639 	return KErrNone;
       
  1640 	}
       
  1641 
       
  1642 TInt CSatDSatTsy::PowerOnCardTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1643 	{
       
  1644 	RSat::TPowerOnCardRspV2Pckg* aV2RspPckg = (RSat::TPowerOnCardRspV2Pckg*)aRsp;
       
  1645 	RSat::TPowerOnCardRspV2& rspV2 = (*aV2RspPckg)();
       
  1646 
       
  1647 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1648 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1649 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1650 		||(rspV2.PCmdNumber()!=DSATTSY_POWER_ON_CARD_NUMBER))
       
  1651 		{
       
  1652 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1653 		}
       
  1654 	else if(!iPowerOnCardTerminalRsp++)
       
  1655 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1656 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1657 	return KErrNone;
       
  1658 	}
       
  1659 
       
  1660 TInt CSatDSatTsy::GetReaderStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1661 	{
       
  1662 	RSat::TGetReaderStatusRspV2Pckg* aV2RspPckg = (RSat::TGetReaderStatusRspV2Pckg*)aRsp;
       
  1663 	RSat::TGetReaderStatusRspV2& rspV2 = (*aV2RspPckg)();
       
  1664 
       
  1665 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1666 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1667 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1668 		||(rspV2.PCmdNumber()!=DSATTSY_GET_READER_STATUS_NUMBER)
       
  1669 		||(rspV2.iMode!=DSATTSY_GET_READER_STATUS_MODE))
       
  1670 		{
       
  1671 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1672 		}
       
  1673 	else if(!iGetReaderStatusTerminalRsp++)
       
  1674 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1675 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1676 	return KErrNone;
       
  1677 	}
       
  1678 
       
  1679 TInt CSatDSatTsy::RunAtCommandTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1680 	{
       
  1681 	RSat::TRunAtCommandRspV2Pckg* aV2RspPckg = (RSat::TRunAtCommandRspV2Pckg*)aRsp;
       
  1682 	RSat::TRunAtCommandRspV2& rspV2 = (*aV2RspPckg)();
       
  1683 
       
  1684 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1685 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1686 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1687 		||(rspV2.PCmdNumber()!=DSATTSY_RUN_AT_COMMAND_NUMBER))
       
  1688 		{
       
  1689 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1690 		}
       
  1691 	else if(!iRunAtCommandTerminalRsp++)
       
  1692 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1693 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1694 	return KErrNone;
       
  1695 	}
       
  1696 
       
  1697 TInt CSatDSatTsy::LanguageNotificationTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1698 	{
       
  1699 	RSat::TLanguageNotificationRspV2Pckg* aV2RspPckg = (RSat::TLanguageNotificationRspV2Pckg*)aRsp;
       
  1700 	RSat::TLanguageNotificationRspV2& rspV2 = (*aV2RspPckg)();
       
  1701 
       
  1702 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1703 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1704 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1705 		||(rspV2.PCmdNumber()!=DSATTSY_LANGUAGE_NOTIFICATION_NUMBER))
       
  1706 		{
       
  1707 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1708 		}
       
  1709 	else if(!iLanguageNotificationTerminalRsp++)
       
  1710 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1711 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1712 	return KErrNone;
       
  1713 	}
       
  1714 
       
  1715 TInt CSatDSatTsy::LaunchBrowserTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1716 	{
       
  1717 	RSat::TLaunchBrowserRspV2Pckg* aV2RspPckg = (RSat::TLaunchBrowserRspV2Pckg*)aRsp;
       
  1718 	RSat::TLaunchBrowserRspV2& rspV2 = (*aV2RspPckg)();
       
  1719 
       
  1720 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1721 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1722 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1723 		||(rspV2.PCmdNumber()!=DSATTSY_LAUNCH_BROWSER_NUMBER))
       
  1724 		{
       
  1725 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1726 		}
       
  1727 	else if(!iLaunchBrowserTerminalRsp++)
       
  1728 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1729 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1730 	return KErrNone;
       
  1731 	}
       
  1732 
       
  1733 TInt CSatDSatTsy::OpenChannelTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1734 	{
       
  1735 	RSat::TOpenChannelRspV2Pckg* aV2RspPckg = (RSat::TOpenChannelRspV2Pckg*)aRsp;
       
  1736 	RSat::TOpenChannelRspV2& rspV2 = (*aV2RspPckg)();
       
  1737 			
       
  1738 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1739 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1740 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1741 		||(rspV2.PCmdNumber()!=DSATTSY_OPEN_CHANNEL_NUMBER)
       
  1742 		||(rspV2.iBearer.iType!=DSATTSY_CSD_BEARER_TYPE)
       
  1743 		||(rspV2.iBearer.iParams!=DSATTSY_BEARER_PARAMS)
       
  1744 		||(rspV2.iBufferSize!=DSATTSY_BUFFER_SIZE))
       
  1745 		{
       
  1746 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1747 		}
       
  1748 	else if(!iOpenChannelTerminalRsp++)
       
  1749 		{
       
  1750 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1751 		}
       
  1752 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1753 	return KErrNone;
       
  1754 	}
       
  1755 
       
  1756 TInt CSatDSatTsy::CloseChannelTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1757 	{
       
  1758 	RSat::TCloseChannelRspV2Pckg* aV2RspPckg = (RSat::TCloseChannelRspV2Pckg*)aRsp;
       
  1759 	RSat::TCloseChannelRspV2& rspV2 = (*aV2RspPckg)();
       
  1760 
       
  1761 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1762 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1763 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1764 		||(rspV2.PCmdNumber()!=DSATTSY_CLOSE_CHANNEL_NUMBER))
       
  1765 		{
       
  1766 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1767 		}
       
  1768 	else if(!iCloseChannelTerminalRsp++)
       
  1769 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1770 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1771 	return KErrNone;
       
  1772 	}
       
  1773 
       
  1774 TInt CSatDSatTsy::ReceiveDataTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1775 	{
       
  1776 	RSat::TReceiveDataRspV2Pckg* aV2RspPckg = (RSat::TReceiveDataRspV2Pckg*)aRsp;
       
  1777 	RSat::TReceiveDataRspV2& rspV2 = (*aV2RspPckg)();
       
  1778 
       
  1779 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1780 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1781 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1782 		||(rspV2.PCmdNumber()!=DSATTSY_RECEIVE_DATA_NUMBER)
       
  1783 		||(rspV2.iChannelDataLength!=DSATTSY_DATA_LENGTH))
       
  1784 		{
       
  1785 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1786 		}
       
  1787 	else if(!iReceiveDataTerminalRsp++)
       
  1788 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1789 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1790 	return KErrNone;
       
  1791 	}
       
  1792 
       
  1793 TInt CSatDSatTsy::SendDataTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1794 	{
       
  1795 	RSat::TSendDataRspV2Pckg* aV2RspPckg = (RSat::TSendDataRspV2Pckg*)aRsp;
       
  1796 	RSat::TSendDataRspV2& rspV2 = (*aV2RspPckg)();
       
  1797 
       
  1798 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1799 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1800 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1801 		||(rspV2.PCmdNumber()!=DSATTSY_SEND_DATA_NUMBER))
       
  1802 		{
       
  1803 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1804 		}
       
  1805 	else if(!iSendDataTerminalRsp++)
       
  1806 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1807 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1808 	return KErrNone;
       
  1809 	}
       
  1810 
       
  1811 TInt CSatDSatTsy::GetChannelStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1812 	{
       
  1813 	RSat::TGetChannelStatusRspV2Pckg* aV2RspPckg = (RSat::TGetChannelStatusRspV2Pckg*)aRsp;
       
  1814 	RSat::TGetChannelStatusRspV2& rspV2 = (*aV2RspPckg)();
       
  1815 
       
  1816 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1817 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1818 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1819 		||(rspV2.PCmdNumber()!=DSATTSY_GET_CHANNEL_STATUS_NUMBER))
       
  1820 		{
       
  1821 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1822 		}
       
  1823 	else if(!iGetChannelStatusTerminalRsp++)
       
  1824 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1825 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1826 	return KErrNone;
       
  1827 	}
       
  1828 
       
  1829 TInt CSatDSatTsy::GetServiceInfoTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1830 	{
       
  1831 	RSat::TGetServiceInfoRspV2Pckg* aV2RspPckg = (RSat::TGetServiceInfoRspV2Pckg*)aRsp;
       
  1832 	RSat::TGetServiceInfoRspV2& rspV2 = (*aV2RspPckg)();
       
  1833 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1834 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1835 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1836 		||(rspV2.PCmdNumber()!=DSATTSY_GET_SERVICE_INFO_NUMBER)
       
  1837 		||(rspV2.iRecordInfo.iBearerId!=DSATTSY_BEARER_NOT_PRESENT)
       
  1838 		||(rspV2.iRecordInfo.iServiceId!=DSATTSY_NULL_BEARER_ID)
       
  1839 		||(rspV2.iRecordInfo.iRecord!=DSATTSY_NULL_NARROW_BUF))
       
  1840 		{
       
  1841 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1842 		}
       
  1843 	else if(!iGetServiceInfoTerminalRsp++)
       
  1844 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1845 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1846 	return KErrNone;
       
  1847 	}
       
  1848 
       
  1849 TInt CSatDSatTsy::DeclareServiceTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1850 	{
       
  1851 	RSat::TDeclareServiceRspV2Pckg* aV2RspPckg = (RSat::TDeclareServiceRspV2Pckg*)aRsp;
       
  1852 	RSat::TDeclareServiceRspV2& rspV2 = (*aV2RspPckg)();
       
  1853 
       
  1854 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1855 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1856 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1857 		||(rspV2.PCmdNumber()!=DSATTSY_DECLARE_SERVICE_NUMBER))
       
  1858 		{
       
  1859 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1860 		}
       
  1861 	else if(!iDeclareServiceTerminalRsp++)
       
  1862 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1863 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1864 	return KErrNone;
       
  1865 	}
       
  1866 
       
  1867 TInt CSatDSatTsy::ServiceSearchTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1868 	{
       
  1869 	RSat::TServiceSearchRspV2Pckg* aV2RspPckg = (RSat::TServiceSearchRspV2Pckg*)aRsp;
       
  1870 	RSat::TServiceSearchRspV2& rspV2 = (*aV2RspPckg)();
       
  1871 
       
  1872 	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1873 		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  1874 		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1875 		||(rspV2.PCmdNumber()!=DSATTSY_SERVICE_SEARCH_NUMBER))
       
  1876 		{
       
  1877 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1878 		}
       
  1879 	else if(!iServiceSearchTerminalRsp++)
       
  1880 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1881 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1882 	return KErrNone;
       
  1883 	}
       
  1884 	
       
  1885 TInt CSatDSatTsy::TimerMgmtTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1886 	{
       
  1887 	RSat::TTimerMgmtRspV3Pckg* aV3RspPckg = (RSat::TTimerMgmtRspV3Pckg*)aRsp;
       
  1888 	RSat::TTimerMgmtRspV3& rspV3 = (*aV3RspPckg)();
       
  1889 
       
  1890 	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1891 		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
       
  1892 		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1893 		||(rspV3.PCmdNumber()!=DSATTSY_TIMER_MNGT_NUMBER))
       
  1894 		{
       
  1895 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1896 		}
       
  1897 	else if(!iTimerMgmtTerminalRsp++)
       
  1898 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1899 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1900 	return KErrNone;
       
  1901 	}
       
  1902 
       
  1903 TInt CSatDSatTsy::LocalInfoTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1904 	{
       
  1905 	RSat::TLocalInfoRspV3Pckg* aV3RspPckg = (RSat::TLocalInfoRspV3Pckg*)aRsp;
       
  1906 	RSat::TLocalInfoRspV3& rspV3 = (*aV3RspPckg)();
       
  1907 
       
  1908 	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1909 		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
       
  1910 		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1911 		||(rspV3.PCmdNumber()!=DSATTSY_LOCAL_INFO_NUMBER))
       
  1912 		{
       
  1913 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1914 		}
       
  1915 	else if(!iLocalInfoTerminalRsp++)
       
  1916 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1917 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1918 	return KErrNone;
       
  1919 	}
       
  1920 	
       
  1921 
       
  1922 TInt CSatDSatTsy::PollingIntvTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1923 	{
       
  1924 	RSat::TPollingIntervalRspV3Pckg* aV3RspPckg = (RSat::TPollingIntervalRspV3Pckg*)aRsp;
       
  1925 	RSat::TPollingIntervalRspV3& rspV3 = (*aV3RspPckg)();
       
  1926 
       
  1927 	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1928 		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
       
  1929 		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1930 		||(rspV3.PCmdNumber()!=DSATTSY_POLLING_INTERVAL_NUMBER))
       
  1931 		{
       
  1932 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1933 		}
       
  1934 	else if(!iPollingIntervalTerminalRsp++)
       
  1935 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1936 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1937 	return KErrNone;
       
  1938 	}
       
  1939 
       
  1940 TInt CSatDSatTsy::PollingOffTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
       
  1941 	{
       
  1942 	RSat::TPollingOffRspV3Pckg* aV3RspPckg = (RSat::TPollingOffRspV3Pckg*)aRsp;
       
  1943 	RSat::TPollingOffRspV3& rspV3 = (*aV3RspPckg)();
       
  1944 
       
  1945 	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  1946 		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
       
  1947 		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
       
  1948 		||(rspV3.PCmdNumber()!=DSATTSY_POLLING_OFF_NUMBER))
       
  1949 		{
       
  1950 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  1951 		}
       
  1952 	else if(!iPollingOffTerminalRsp++)
       
  1953 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  1954 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1955 	return KErrNone;
       
  1956 	}
       
  1957 
       
  1958 TInt CSatDSatTsy::RetrieveMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  1959 	{
       
  1960 	if(!iRetrieveMultimediaMsgTerminalRsp++)
       
  1961 		{
       
  1962 		LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd called"));
       
  1963 		RSat::TRetrieveMultimediaMessageRspV6Pckg* retrieveMmRspV6PCmdPckg = (RSat::TRetrieveMultimediaMessageRspV6Pckg*)aPCmd;	
       
  1964 		RSat::TRetrieveMultimediaMessageRspV6& retrieveMmRspV6 = (*retrieveMmRspV6PCmdPckg)();
       
  1965 		
       
  1966 		if((retrieveMmRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
       
  1967 		    (retrieveMmRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
       
  1968 		    (retrieveMmRspV6.PCmdNumber()!=DSATTSY_RETRIEVE_MULTIMEDIA_MESSAGE))
       
  1969 			{
       
  1970 			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
       
  1971 			}
       
  1972 		else
       
  1973 			{
       
  1974 			ReqCompleted(aTsyReqHandle,KErrNone);	
       
  1975 			}
       
  1976 		}
       
  1977 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  1978 	return KErrNone;	
       
  1979 	}
       
  1980 
       
  1981 
       
  1982 TInt CSatDSatTsy::SubmitMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  1983 	{
       
  1984 	if(!iSubmitMultimediaMsgTerminalRsp++)
       
  1985 		{
       
  1986 		LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmd called"));
       
  1987 		RSat::TSubmitMultimediaMessageRspV6Pckg* submitMMRspV6PCmdPckg = (RSat::TSubmitMultimediaMessageRspV6Pckg*)aPCmd;	
       
  1988 		RSat::TSubmitMultimediaMessageRspV6& submitMMRspV6 = (*submitMMRspV6PCmdPckg)();
       
  1989 		
       
  1990 		if((submitMMRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
       
  1991 		    (submitMMRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
       
  1992 		    (submitMMRspV6.PCmdNumber()!=DSATTSY_SUBMIT_MULTIMEDIA_MESSAGE))
       
  1993 			{
       
  1994 			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
       
  1995 			}
       
  1996 		else
       
  1997 			{
       
  1998 			ReqCompleted(aTsyReqHandle,KErrNone);	
       
  1999 			}
       
  2000 		}
       
  2001 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2002 	return KErrNone;
       
  2003 	}
       
  2004 	
       
  2005 TInt CSatDSatTsy::DisplayMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  2006 	{
       
  2007 	if(!iDisplayMultimediaMsgTerminalRsp++)
       
  2008 		{
       
  2009 		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd called"));
       
  2010 		RSat::TDisplayMultimediaMessageRspV6Pckg* displayMMRspV6PCmdPckg = (RSat::TDisplayMultimediaMessageRspV6Pckg*)aPCmd;	
       
  2011 		RSat::TDisplayMultimediaMessageRspV6& displayMMRspV6 = (*displayMMRspV6PCmdPckg)();
       
  2012 		
       
  2013 		if((displayMMRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
       
  2014 		    (displayMMRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
       
  2015 		    (displayMMRspV6.PCmdNumber()!=DSATTSY_DISPLAY_MULTIMEDIA_MESSAGE))
       
  2016 			{
       
  2017 			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
       
  2018 			}
       
  2019 		else
       
  2020 			{
       
  2021 			ReqCompleted(aTsyReqHandle,KErrNone);	
       
  2022 			}
       
  2023 		}
       
  2024 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2025 	return KErrNone;	
       
  2026 	}
       
  2027 	
       
  2028 TInt CSatDSatTsy::SetFramesTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  2029 	{
       
  2030 	if(!iSetFramesTerminalRsp++)
       
  2031 		{
       
  2032 		LOGTEXT(_L8("CSatDSatTsy::SetFramesTerminalRsp called"));
       
  2033 		RSat::TSetFramesRspV6Pckg* setFramesRspV6PCmdPckg = (RSat::TSetFramesRspV6Pckg*)aPCmd;	
       
  2034 		RSat::TSetFramesRspV6& setFramesRspV6 = (*setFramesRspV6PCmdPckg)();
       
  2035 		
       
  2036 		if((setFramesRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
       
  2037 		    (setFramesRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
       
  2038 		    (setFramesRspV6.PCmdNumber()!=DSATTSY_SET_FRAMES) ||
       
  2039 		    (setFramesRspV6.iFramesInformation.iFrameId!=DSATTSY_FRAMES_INFORMATION_FRAMEID) ||
       
  2040 		    (setFramesRspV6.iFramesInformation.iFrameList!=DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
       
  2041 			{
       
  2042 			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
       
  2043 			}
       
  2044 		else
       
  2045 			{
       
  2046 			ReqCompleted(aTsyReqHandle,KErrNone);	
       
  2047 			}
       
  2048 		}
       
  2049 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2050 	return KErrNone;	
       
  2051 	}
       
  2052 	
       
  2053 TInt CSatDSatTsy::GetFramesStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  2054 	{
       
  2055 	if(!iGetFramesStatusTerminalRsp++)
       
  2056 		{
       
  2057 		LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmd called"));
       
  2058 		RSat::TGetFramesStatusRspV6Pckg* getFramesStatusRspV6PCmdPckg = (RSat::TGetFramesStatusRspV6Pckg*)aPCmd;	
       
  2059 		RSat::TGetFramesStatusRspV6& getFramesStatusRspV6 = (*getFramesStatusRspV6PCmdPckg)();	
       
  2060 		
       
  2061 		if((getFramesStatusRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  2062 		||(getFramesStatusRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  2063 		||(getFramesStatusRspV6.PCmdNumber()!=DSATTSY_GET_FRAMES_STATUS) 
       
  2064 		||(getFramesStatusRspV6.iFramesInformation.iFrameId!=DSATTSY_FRAMES_INFORMATION_FRAMEID) 
       
  2065 		||(getFramesStatusRspV6.iFramesInformation.iFrameList!=DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
       
  2066 			{
       
  2067 			ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2068 			}
       
  2069 		else 
       
  2070 			{
       
  2071 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  2072 			}
       
  2073 		}
       
  2074 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2075 	return KErrNone;	
       
  2076 	}
       
  2077 	
       
  2078 
       
  2079 
       
  2080 TInt CSatDSatTsy::TerminalRsp(const TTsyReqHandle aTsyReqHandle, RSat::TPCmd* aPCmd, TDes8* aRsp)
       
  2081 	{
       
  2082 	LOGTEXT(_L8("CSatDSatTsy::TerminalRsp called"));
       
  2083 	switch (*aPCmd)
       
  2084 		{
       
  2085 		case RSat::EDisplayText:
       
  2086 			return DisplayTextTerminalRsp(aTsyReqHandle, aRsp);
       
  2087 		case RSat::EGetInkey:
       
  2088 			return GetInkeyTerminalRsp(aTsyReqHandle, aRsp);
       
  2089 		case RSat::EGetInput:
       
  2090 			return GetInputTerminalRsp(aTsyReqHandle, aRsp);
       
  2091 		case RSat::EPlayTone:
       
  2092 			return PlayToneTerminalRsp(aTsyReqHandle, aRsp);
       
  2093 		case RSat::ESetUpMenu:
       
  2094 			return SetUpMenuRsp(aTsyReqHandle, aRsp);
       
  2095 		case RSat::ESelectItem:
       
  2096 			return SelectItemTerminalRsp(aTsyReqHandle, aRsp);
       
  2097 		case RSat::ESendSm:
       
  2098 			return SendSmTerminalRsp(aTsyReqHandle, aRsp);
       
  2099 		case RSat::ESendSs:
       
  2100 			return SendSSTerminalRsp(aTsyReqHandle, aRsp);
       
  2101 		case RSat::ESendUssd:
       
  2102 			return SendUssdTerminalRsp(aTsyReqHandle, aRsp);
       
  2103 		case RSat::ESetUpCall:
       
  2104 			return SetUpCallTerminalRsp(aTsyReqHandle, aRsp);
       
  2105 		case RSat::ERefresh:
       
  2106 			return RefreshTerminalRsp(aTsyReqHandle, aRsp);
       
  2107 		case RSat::ESetUpEventList:
       
  2108 			return SetUpEventListTerminalRsp(aTsyReqHandle, aRsp);
       
  2109 		case RSat::ESetUpIdleModeText:
       
  2110 			return SetUpIdleModeTextTerminalRsp(aTsyReqHandle, aRsp);
       
  2111 		case RSat::ESendDtmf:
       
  2112 			return SendDtmfTerminalRsp(aTsyReqHandle, aRsp);
       
  2113 		case RSat::EPerformCardApdu:
       
  2114 			return PerformCardApduTerminalRsp(aTsyReqHandle, aRsp);
       
  2115 		case RSat::EPowerOffCard:
       
  2116 			return PowerOffCardTerminalRsp(aTsyReqHandle, aRsp);
       
  2117 		case RSat::EPowerOnCard:
       
  2118 			return PowerOnCardTerminalRsp(aTsyReqHandle, aRsp);
       
  2119 		case RSat::EGetReaderStatus:
       
  2120 			return GetReaderStatusTerminalRsp(aTsyReqHandle, aRsp);
       
  2121 		case RSat::ERunAtCommand:
       
  2122 			return RunAtCommandTerminalRsp(aTsyReqHandle, aRsp);
       
  2123 		case RSat::ELanguageNotification:
       
  2124 			return LanguageNotificationTerminalRsp(aTsyReqHandle, aRsp);
       
  2125 		case RSat::ELaunchBrowser:
       
  2126 			return LaunchBrowserTerminalRsp(aTsyReqHandle, aRsp);
       
  2127 		case RSat::EOpenChannelCs:
       
  2128 		case RSat::EOpenChannelGprs:
       
  2129 		case RSat::EOpenChannelLocal:
       
  2130 		case RSat::EOpenChannelUiccServerMode:
       
  2131 			return OpenChannelTerminalRsp(aTsyReqHandle, aRsp);
       
  2132 		case RSat::ECloseChannel:
       
  2133 			return CloseChannelTerminalRsp(aTsyReqHandle, aRsp);			
       
  2134 		case RSat::EReceiveData:
       
  2135 			return ReceiveDataTerminalRsp(aTsyReqHandle, aRsp);
       
  2136 		case RSat::ESendData:
       
  2137 			return SendDataTerminalRsp(aTsyReqHandle, aRsp);
       
  2138 		case RSat::EGetChannelStatus:
       
  2139 			return GetChannelStatusTerminalRsp(aTsyReqHandle, aRsp);
       
  2140 		case RSat::EDeclareService:
       
  2141 			return DeclareServiceTerminalRsp(aTsyReqHandle, aRsp);
       
  2142 		case RSat::EServiceSearch:
       
  2143 			return ServiceSearchTerminalRsp(aTsyReqHandle, aRsp);
       
  2144 		case RSat::EGetServiceInformation:
       
  2145 			return GetServiceInfoTerminalRsp(aTsyReqHandle,aRsp);		
       
  2146 		case RSat::ETimerMngt:
       
  2147 			return TimerMgmtTerminalRsp(aTsyReqHandle, aRsp);
       
  2148 		case RSat::ELocalInfo:
       
  2149 			return LocalInfoTerminalRsp(aTsyReqHandle, aRsp);
       
  2150 		case RSat::EPollingInterval:
       
  2151 			return PollingIntvTerminalRsp(aTsyReqHandle, aRsp);
       
  2152 		case RSat::EPollingOff:
       
  2153 			return PollingOffTerminalRsp(aTsyReqHandle, aRsp);
       
  2154 		case RSat::ERetrieveMultimediaMsg:
       
  2155 			return RetrieveMultimediaMsgTerminalRsp(aTsyReqHandle,aRsp);		
       
  2156 		case RSat::ESubmitMultimediaMsg:
       
  2157 			return SubmitMultimediaMsgTerminalRsp(aTsyReqHandle, aRsp);
       
  2158 		case RSat::EDisplayMultimediaMsg:
       
  2159 			return DisplayMultimediaMsgTerminalRsp(aTsyReqHandle, aRsp);
       
  2160 		case RSat::ESetFrames:
       
  2161 			return SetFramesTerminalRsp(aTsyReqHandle, aRsp);
       
  2162 		case RSat::EGetFramesStatus:
       
  2163 			return GetFramesStatusTerminalRsp(aTsyReqHandle, aRsp);
       
  2164 		default:
       
  2165 			return KErrGeneral; 
       
  2166 			}
       
  2167 	}
       
  2168 
       
  2169 TInt CSatDSatTsy::TerminalRspCancel(const TTsyReqHandle aTsyReqHandle)
       
  2170 	{
       
  2171 	LOGTEXT(_L8("CSatDSatTsy::TerminalRspCancel called"));
       
  2172 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2173 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2174 	else
       
  2175 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2176 	return KErrNone;
       
  2177 	}
       
  2178 
       
  2179 TInt CSatDSatTsy::GetMeSideSatProfile(const TTsyReqHandle aTsyReqHandle, TDes8* aMeSimSatProfile)
       
  2180 	{
       
  2181 	// First call by test code is RSat::GetMeSideSatProfile() with V2 param.
       
  2182 	// Second call is RSat::GetMeSideSatProfile() followed by Cancel
       
  2183 	// Third call is RSat::GetMeSideSatProfile() with V5 param.
       
  2184 	if((iGetMeSideSatProfile == 0) || (iGetMeSideSatProfile == 2))
       
  2185 		{
       
  2186 		LOGTEXT(_L8("CSatDSatTsy::GetMeSideSatProfile called"));
       
  2187 		RSat::TSatProfileV1Pckg* aProfilePckg = (RSat::TSatProfileV1Pckg*)aMeSimSatProfile;
       
  2188 		RSat::TSatProfileV1& profileV1 = (*aProfilePckg)();
       
  2189 
       
  2190 		profileV1.iSatProfileByte1=0x01;
       
  2191 		profileV1.iSatProfileByte2=0x02;
       
  2192 		profileV1.iSatProfileByte3=0x03;
       
  2193 		profileV1.iSatProfileByte4=0x04;
       
  2194 		profileV1.iSatProfileByte5=0x05;
       
  2195 		profileV1.iSatProfileByte6=0x06;
       
  2196 		profileV1.iSatProfileByte7=0x07;
       
  2197 		profileV1.iSatProfileByte8=0x08;
       
  2198 		profileV1.iSatProfileByte9=0x09;
       
  2199 
       
  2200 		if ((profileV1.ExtensionId() == RSat::KSatV2) || 
       
  2201 			(profileV1.ExtensionId() == RSat::KSatV5) || 
       
  2202 			(profileV1.ExtensionId() == RSat::KSatV6))
       
  2203 			{
       
  2204 			RSat::TSatProfileV2Pckg* v2ProfilePckg = (RSat::TSatProfileV2Pckg*)aMeSimSatProfile;
       
  2205 			RSat::TSatProfileV2& profileV2 = (*v2ProfilePckg)();
       
  2206 
       
  2207 			profileV2.iSatProfileByte10=0x0A;
       
  2208 			profileV2.iSatProfileByte11=0x0B;
       
  2209 			profileV2.iSatProfileByte12=0x0C;
       
  2210 			profileV2.iSatProfileByte13=0x0D;
       
  2211 			profileV2.iSatProfileByte14=0x0E;
       
  2212 			profileV2.iSatProfileByte15=0x0F;
       
  2213 			profileV2.iSatProfileByte16=0x10;
       
  2214 			profileV2.iSatProfileByte17=0x20;
       
  2215 			profileV2.iSatProfileByte18=0x30;
       
  2216 			profileV2.iNumOfChannels=DSATTSY_NUMBER_OF_CHANNELS;
       
  2217 			profileV2.iScreenHeight=DSATTSY_SCREEN_HEIGHT;
       
  2218 			profileV2.iScreenWidth=DSATTSY_SCREEN_WIDTH;
       
  2219 			profileV2.iTiaEiaProtoVersion=DSATTSY_PROTO_VERSION;
       
  2220 			profileV2.iWidthReduction=DSATTSY_WIDTH_REDUCTION;
       
  2221 			}
       
  2222 			
       
  2223 		if ((profileV1.ExtensionId() == RSat::KSatV5) || 
       
  2224 			(profileV1.ExtensionId() == RSat::KSatV6))
       
  2225 			{
       
  2226 			RSat::TSatProfileV5Pckg* profileV5Pckg = (RSat::TSatProfileV5Pckg*)aMeSimSatProfile;
       
  2227 			RSat::TSatProfileV5& profileV5 = (*profileV5Pckg)();
       
  2228 			
       
  2229 			// Set profileV5.iSatProfileByte28 to:
       
  2230 			// (KCapsTextAttributeAlignmentLeft | KCapsTextAttributeAlignmentCentre | 
       
  2231 			// KCapsTextAttributeAlignmentRight | KCapsTextAttributeFontSizeNormal | 
       
  2232 			// KCapsTextAttributeFontSizeLarge | KCapsTextAttributeFontSizeSmall)
       
  2233 			profileV5.iSatProfileByte28 = 0x3F;
       
  2234 			// Set profileV5.iSatProfileByte29 to
       
  2235 			// (KCapsTextAttributeStyleNormal | KCapsTextAttributeStyleBold | 
       
  2236 			// KCapsTextAttributeStyleItalic | KCapsTextAttributeStyleUnderline | 
       
  2237 			// KCapsTextAttributeStyleStrikethrough | KCapsTextAttributeStyleForeground | 
       
  2238 			// KCapsTextAttributeStyleBackground)
       
  2239 			profileV5.iSatProfileByte29 = 0x7F;
       
  2240 			}
       
  2241 		if (profileV1.ExtensionId() == RSat::KSatV6) 
       
  2242 			{
       
  2243 			RSat::TSatProfileV6Pckg* profileV6Pckg = (RSat::TSatProfileV6Pckg*)aMeSimSatProfile;
       
  2244 			RSat::TSatProfileV6& profileV6 = (*profileV6Pckg)();
       
  2245 			
       
  2246 			// Set profileV6.iSatProfileByte21 to:
       
  2247 			//(KCapsWML  | KCapsXHTML |
       
  2248 			// KCapsHTML | KCapsCHTML )	
       
  2249 			profileV6.iSatProfileByte21 = 0x0F;
       
  2250 			// Set profileV6.iSatProfileByte22 to:
       
  2251 			//(KCapsProvideLocalInfoUTRAN | KCapsProvideLocalInfoBatteryState |
       
  2252 			// KCapsPlayThemedAndMelodyTone | KCapsSetUpCallMultimediaCall |
       
  2253 			// KCapsRefreshGBA	| KCapsRetrieveMultimediaMessage |
       
  2254 			// KCapsSubmitMultimediaMessage | KCapsDisplayMultimediaMesage)
       
  2255 			profileV6.iSatProfileByte22 = 0xFF;
       
  2256 			// Set profileV6.iSatProfileByte23 to:
       
  2257 			//(KCapsSetFrames  | KCapsGetFramesStatus  |
       
  2258 			// KCapsMmsNotificationDownload | KCapsProvideLocalInfoMEID |
       
  2259 			// KCapsProvideLocalInfoNmrUTRAN | KCapsUssdDataDownload)
       
  2260             profileV6.iSatProfileByte23 = 0xE7;
       
  2261 			// Set profileV6.iSatProfileByte24 to:
       
  2262 			//(KCapsMaxNumFramesBit1 | KCapsMaxNumFramesBit2 |
       
  2263 			// KCapsMaxNumFramesBit3 | KCapsMaxNumFramesBit4)
       
  2264             profileV6.iSatProfileByte24 = 0x0F;
       
  2265 			// Set profileV6.iSatProfileByte25 to:
       
  2266 			// (KCapsBrowsingStatusEvent | KCapsMmsTransferStatusEvent |
       
  2267 			// KCapsFrameParametersChangeEvent)
       
  2268 			profileV6.iSatProfileByte25 = 0x07;	
       
  2269 			}
       
  2270 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  2271 		}
       
  2272 	iGetMeSideSatProfile++;
       
  2273 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2274 	return KErrNone;
       
  2275 	}
       
  2276 
       
  2277 TInt CSatDSatTsy::GetMeSideSatProfileCancel(const TTsyReqHandle aTsyReqHandle)
       
  2278 	{
       
  2279 	LOGTEXT(_L8("CSatDSatTsy::GetMeSideSatProfileCancel called"));
       
  2280 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2281 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2282 	else
       
  2283 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2284 	return KErrNone;
       
  2285 	}
       
  2286 	
       
  2287 TInt CSatDSatTsy::ClientSatProfileIndication(const TTsyReqHandle aTsyReqHandle, TDes8* aClientSatProfile)
       
  2288 	{
       
  2289 	
       
  2290 	// First call by test code is with version 2 parameter
       
  2291 	// Second call is with version 5 parameter
       
  2292 	if (iClientSatProfileIndication<2)
       
  2293 		{	
       
  2294 		LOGTEXT(_L8("CSatDSatTsy::ClientSatProfileIndication called"));
       
  2295 		
       
  2296 		RSat::TSatProfileV1Pckg* aClientSatProfilePckg = (RSat::TSatProfileV1Pckg*)aClientSatProfile;
       
  2297 		RSat::TSatProfileV1& satProfileV1 = (*aClientSatProfilePckg)();
       
  2298 		
       
  2299 		// Check version 1 parameters
       
  2300 		if ((satProfileV1.iSatProfileByte1!=0x01)
       
  2301 			||(satProfileV1.iSatProfileByte2!=0x02)
       
  2302 			||(satProfileV1.iSatProfileByte3!=0x03)
       
  2303 			||(satProfileV1.iSatProfileByte4!=0x04)
       
  2304 			||(satProfileV1.iSatProfileByte5!=0x05)
       
  2305 			||(satProfileV1.iSatProfileByte6!=0x06)
       
  2306 			||(satProfileV1.iSatProfileByte7!=0x07)
       
  2307 			||(satProfileV1.iSatProfileByte8!=0x08)
       
  2308 			||(satProfileV1.iSatProfileByte9!=0x09))
       
  2309 			{
       
  2310 			ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2311 			}
       
  2312 		
       
  2313 		// Check version 2 parameters
       
  2314 		if( (satProfileV1.ExtensionId()==RSat::KSatV2) ||
       
  2315 			(satProfileV1.ExtensionId()==RSat::KSatV5) ||
       
  2316 			(satProfileV1.ExtensionId()==RSat::KSatV6))
       
  2317 			{
       
  2318 			RSat::TSatProfileV2Pckg* aV2ClientSatProfilePckg = (RSat::TSatProfileV2Pckg*)aClientSatProfile;
       
  2319 			RSat::TSatProfileV2& satProfileV2 = (*aV2ClientSatProfilePckg)();
       
  2320 			
       
  2321 			if ((satProfileV2.iSatProfileByte10!=0x0A)
       
  2322 				||(satProfileV2.iSatProfileByte11!=0x0B)
       
  2323 				||(satProfileV2.iSatProfileByte12!=0x0C)
       
  2324 				||(satProfileV2.iSatProfileByte13!=0x0D)
       
  2325 				||(satProfileV2.iSatProfileByte14!=0x0E)
       
  2326 				||(satProfileV2.iSatProfileByte15!=0x0F)
       
  2327 				||(satProfileV2.iSatProfileByte16!=0x10)
       
  2328 				||(satProfileV2.iSatProfileByte17!=0x20)
       
  2329 				||(satProfileV2.iSatProfileByte18!=0x30)
       
  2330 				||(satProfileV2.iNumOfChannels!=DSATTSY_NUMBER_OF_CHANNELS)
       
  2331 				||(satProfileV2.iScreenHeight!=DSATTSY_SCREEN_HEIGHT)
       
  2332 				||(satProfileV2.iScreenWidth!=DSATTSY_SCREEN_WIDTH)
       
  2333 				||(satProfileV2.iTiaEiaProtoVersion!=DSATTSY_PROTO_VERSION)
       
  2334 				||(satProfileV2.iWidthReduction!=DSATTSY_WIDTH_REDUCTION))
       
  2335 				{
       
  2336 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2337 				}
       
  2338 			}
       
  2339 		
       
  2340 		// Check version 5 parameters	
       
  2341 		if ((satProfileV1.ExtensionId() == RSat::KSatV5) ||
       
  2342 		    (satProfileV1.ExtensionId() == RSat::KSatV6))
       
  2343 			{
       
  2344 			RSat::TSatProfileV5Pckg* clientSatProfilePckgV5 = (RSat::TSatProfileV5Pckg*) aClientSatProfile;
       
  2345 			RSat::TSatProfileV5& satProfileV5 = (*clientSatProfilePckgV5)();
       
  2346 			
       
  2347 			if ((satProfileV5.iSatProfileByte28 != 0x3F) ||
       
  2348 				(satProfileV5.iSatProfileByte29 != 0x7F))
       
  2349 				{
       
  2350 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2351 				}
       
  2352 			}
       
  2353 		
       
  2354 		// Check version 6 parameters	
       
  2355 		if (satProfileV1.ExtensionId() == RSat::KSatV6)
       
  2356 			{
       
  2357 			RSat::TSatProfileV6Pckg* clientSatProfilePckgV6 = (RSat::TSatProfileV6Pckg*) aClientSatProfile;
       
  2358 			RSat::TSatProfileV6& satProfileV6 = (*clientSatProfilePckgV6)();
       
  2359 			
       
  2360 			if ((satProfileV6.iSatProfileByte21 != 0x0F) ||
       
  2361 				(satProfileV6.iSatProfileByte22 != 0xFF) ||
       
  2362 				(satProfileV6.iSatProfileByte23 != 0xE7) ||
       
  2363 				(satProfileV6.iSatProfileByte24 != 0x0F) ||
       
  2364 				(satProfileV6.iSatProfileByte25 != 0x07))
       
  2365 				{
       
  2366 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2367 				}
       
  2368 			}
       
  2369 			
       
  2370 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  2371 		}
       
  2372 	iClientSatProfileIndication++;	
       
  2373 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2374 	return KErrNone;
       
  2375 	}
       
  2376 
       
  2377 TInt CSatDSatTsy::MenuSelection(const TTsyReqHandle aTsyReqHandle, TDes8* aSelection)
       
  2378 	{
       
  2379 	LOGTEXT(_L8("CSatDSatTsy::MenuSelection called"));
       
  2380 	RSat::TMenuSelectionV1Pckg* aSelectionPckg = (RSat::TMenuSelectionV1Pckg*)aSelection;
       
  2381 	RSat::TMenuSelectionV1& menuSelectionV1 = (*aSelectionPckg)();
       
  2382 
       
  2383 	if ((menuSelectionV1.iItemId!=DSATTSY_ITEM_ID)
       
  2384 		||(menuSelectionV1.iHelp!=DSATTSY_HELP_REQUESTED))
       
  2385 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2386 	else
       
  2387 		if(!iMenuSelection++)
       
  2388 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  2389 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2390 	return KErrNone;	
       
  2391 	}
       
  2392 
       
  2393 TInt CSatDSatTsy::MenuSelectionCancel(const TTsyReqHandle aTsyReqHandle)
       
  2394 	{
       
  2395 	LOGTEXT(_L8("CSatDSatTsy::MenuSelectionCancel called"));
       
  2396 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2397 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2398 	else
       
  2399 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2400 	return KErrNone;
       
  2401 	}
       
  2402 
       
  2403 TInt CSatDSatTsy::NotifyCallControlRequest(const TTsyReqHandle aTsyReqHandle, TDes8* aCallControlDetails)
       
  2404 	{
       
  2405 	LOGTEXT(_L8("CSatDSatTsy::NotifyCallControlRequest called"));
       
  2406 	if(!iNotifyCallControlRequest++)
       
  2407 	{
       
  2408 		RSat::TAlphaId nullBuf;
       
  2409 		nullBuf.iAlphaId=DSATTSY_NULL_BUF;
       
  2410 		nullBuf.iStatus=DSATTSY_ALPHAID_STATUS;
       
  2411 		if(iNotifyCallControlRequestTestNumber==0)
       
  2412 			{
       
  2413 			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
       
  2414 			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
       
  2415 	
       
  2416 			RSat::TCallSetUpParams aParams;
       
  2417 			aParams.iCcp1					=DSATTSY_CCP1;
       
  2418 			aParams.iSubAddress				=DSATTSY_SUBADDRESS;
       
  2419 			aParams.iCcp2					=DSATTSY_CCP2;
       
  2420 			aParams.iAddress.iTypeOfNumber	=DSATTSY_TON;
       
  2421 			aParams.iAddress.iNumberPlan	=DSATTSY_NPI;
       
  2422 			aParams.iAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
       
  2423 	
       
  2424 			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
       
  2425 
       
  2426 			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
       
  2427 			cmdV1.SetCallSetUpDetails(aParams);
       
  2428 			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
       
  2429 
       
  2430 			iNotifyCallControlRequestTestNumber++;
       
  2431 
       
  2432 			if (cmdV1.ExtensionId() == RSat::KSatV2)
       
  2433 				{
       
  2434 				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
       
  2435 				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
       
  2436 
       
  2437 				callControlV2.SetCallName(DSATTSY_CALL_NAME);
       
  2438 				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
       
  2439 				}
       
  2440 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  2441 			}
       
  2442 		else if (iNotifyCallControlRequestTestNumber==1)
       
  2443 			{
       
  2444 			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
       
  2445 			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
       
  2446 
       
  2447 			RSat::TSsString ssString;
       
  2448 			ssString.iTypeOfNumber = DSATTSY_TON;
       
  2449 			ssString.iNumberPlan = DSATTSY_NPI;
       
  2450 			ssString.iSsString = DSATTSY_SS_STRING;
       
  2451 			
       
  2452 			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
       
  2453 			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
       
  2454 			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
       
  2455 			cmdV1.SetSendSsDetails(ssString);
       
  2456 
       
  2457 			iNotifyCallControlRequestTestNumber++;
       
  2458 
       
  2459 			if (cmdV1.ExtensionId() == RSat::KSatV2)
       
  2460 				{
       
  2461 				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
       
  2462 				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
       
  2463 
       
  2464 				callControlV2.SetCallName(DSATTSY_CALL_NAME);
       
  2465 				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
       
  2466 				}
       
  2467 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  2468 			}
       
  2469 		else if (iNotifyCallControlRequestTestNumber==2)
       
  2470 			{
       
  2471 			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
       
  2472 			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
       
  2473 
       
  2474 			RSat::TUssdString ussdString;
       
  2475 			ussdString.iDcs=DSATTSY_DCS;
       
  2476 			ussdString.iUssdString=DSATTSY_USSD_STRING;
       
  2477 	
       
  2478 			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
       
  2479 			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
       
  2480 			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
       
  2481 			cmdV1.SetSendUssdDetails(ussdString);
       
  2482 
       
  2483 			iNotifyCallControlRequestTestNumber++;
       
  2484 
       
  2485 			if (cmdV1.ExtensionId() == RSat::KSatV2)
       
  2486 				{
       
  2487 				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
       
  2488 				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
       
  2489 
       
  2490 				callControlV2.SetCallName(DSATTSY_CALL_NAME);
       
  2491 				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
       
  2492 				}
       
  2493 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  2494 			}			
       
  2495 		else if (iNotifyCallControlRequestTestNumber==3)
       
  2496 			{
       
  2497 			RSat::TCallControlV5Pckg* cmdPckg = (RSat::TCallControlV5Pckg*)aCallControlDetails;
       
  2498 			RSat::TCallControlV5& cmd = (*cmdPckg)();
       
  2499 			
       
  2500 			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
       
  2501 			cmd.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);			
       
  2502 			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_FALLBACK);
       
  2503 			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS);			
       
  2504 			cmd.SetPdpParameters(pdpParams);
       
  2505 			
       
  2506 			iNotifyCallControlRequestTestNumber++;
       
  2507 		
       
  2508 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  2509 			}
       
  2510 		else if (iNotifyCallControlRequestTestNumber==4)
       
  2511 			{
       
  2512 			RSat::TCallControlV5Pckg* cmdPckg = (RSat::TCallControlV5Pckg*)aCallControlDetails;
       
  2513 			RSat::TCallControlV5& cmd = (*cmdPckg)();
       
  2514 			
       
  2515 			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
       
  2516 			cmd.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);		
       
  2517 			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS2);			
       
  2518 			cmd.SetPdpParameters(pdpParams);			
       
  2519 			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_SERVICECHANGEANDFALLBACK);
       
  2520 			
       
  2521 			iNotifyCallControlRequestTestNumber++;
       
  2522 		
       
  2523 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  2524 			}
       
  2525 		else if (iNotifyCallControlRequestTestNumber==5)
       
  2526 			{
       
  2527 			RSat::TCallControlV6Pckg* cmdPckg = (RSat::TCallControlV6Pckg*)aCallControlDetails;
       
  2528 			RSat::TCallControlV6& cmd = (*cmdPckg)();
       
  2529 			
       
  2530 			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
       
  2531 			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS2);			
       
  2532 			cmd.SetPdpParameters(pdpParams);			
       
  2533 			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_SERVICECHANGEANDFALLBACK);
       
  2534 			cmd.SetCallParamOrigin(DSATTSY_CC_CALL_PARAM_ORIGIN);
       
  2535 			
       
  2536 			iNotifyCallControlRequestTestNumber++;
       
  2537 		
       
  2538 			ReqCompleted(aTsyReqHandle,KErrNone);			
       
  2539 			}
       
  2540 		}
       
  2541 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2542 	return KErrNone;
       
  2543 	}
       
  2544 
       
  2545 TInt CSatDSatTsy::NotifyCallControlRequestCancel(const TTsyReqHandle aTsyReqHandle)
       
  2546 	{
       
  2547 	LOGTEXT(_L8("CSatDSatTsy::NotifyCallControlCancel called"));
       
  2548 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2549 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2550 	else
       
  2551 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2552 	iNotifyCallControlRequest=0;
       
  2553 	return KErrNone;
       
  2554 	}
       
  2555 
       
  2556 TInt CSatDSatTsy::NotifyMoSmControlRequest(const TTsyReqHandle aTsyReqHandle, TDes8* aMoSmDetails)
       
  2557 	{
       
  2558 	if(!iNotifyMoSmControlRequest++)
       
  2559 		{
       
  2560 		LOGTEXT(_L8("CSatDSatTsy::NotifyMoSmControlRequest called"));
       
  2561 		RSat::TMoSmControlV1Pckg* cmdPckg = (RSat::TMoSmControlV1Pckg*)aMoSmDetails;
       
  2562 		RSat::TMoSmControlV1& cmdV1 = (*cmdPckg)();
       
  2563 
       
  2564 		cmdV1.iRpAddress.iTypeOfNumber	=DSATTSY_TON;
       
  2565 		cmdV1.iRpAddress.iNumberPlan	=DSATTSY_NPI;
       
  2566 		cmdV1.iRpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
       
  2567 		cmdV1.iTpAddress.iTypeOfNumber	=DSATTSY_TON;
       
  2568 		cmdV1.iTpAddress.iNumberPlan	=DSATTSY_NPI;
       
  2569 		cmdV1.iTpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
       
  2570 		cmdV1.iResult					=DSATTSY_CONTROL_RESULT;
       
  2571 		cmdV1.iAlphaId.iAlphaId			=DSATTSY_ALPHA_ID1;
       
  2572 		cmdV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
       
  2573 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  2574 		}
       
  2575 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2576 	return KErrNone;
       
  2577 	}
       
  2578 
       
  2579 TInt CSatDSatTsy::NotifyMoSmControlRequestCancel(const TTsyReqHandle aTsyReqHandle)
       
  2580 	{
       
  2581 	LOGTEXT(_L8("CSatDSatTsy::NotifyMoSmControlRequestCancel called"));
       
  2582 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2583 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2584 	else
       
  2585 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2586 	return KErrNone;
       
  2587 	}
       
  2588 
       
  2589 TInt CSatDSatTsy::EventDownload(const TTsyReqHandle aTsyReqHandle, RSat::TEventList* aSingleEvent, TDes8* aEventInfo)
       
  2590 	{
       
  2591 	LOGTEXT(_L8("CSatDSatTsy::Event Download called"));
       
  2592 
       
  2593 	RSat::TEventDownloadBaseV2Pckg* eventBaseV2Pckg = (RSat::TEventDownloadBaseV2Pckg*)aEventInfo;
       
  2594 	RSat::TEventDownloadBaseV2&     eventBaseV2     = (*eventBaseV2Pckg)();
       
  2595 
       
  2596 	if (!iEventDownload++)
       
  2597 		{
       
  2598 		switch( *aSingleEvent )
       
  2599 			{
       
  2600 		case RSat::KUserActivity:			// Allow KuserActivity to fall through to KidleScreenAvailable
       
  2601 		case RSat::KIdleScreenAvailable:
       
  2602 			// Don't expect any data for these events
       
  2603 			if (eventBaseV2.iDataAvailable)				
       
  2604 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2605 			else
       
  2606 				ReqCompleted(aTsyReqHandle, KErrNone);
       
  2607 			break;
       
  2608 
       
  2609 		case RSat::KCardReaderStatus:
       
  2610 			// Expect TCardReaderStatusEventV2
       
  2611 			if (!eventBaseV2.iDataAvailable)
       
  2612 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2613 			else
       
  2614 				{
       
  2615 				RSat::TCardReaderStatusEventV2Pckg* cardReaderEventV2Pckg = (RSat::TCardReaderStatusEventV2Pckg *)aEventInfo;
       
  2616 				RSat::TCardReaderStatusEventV2&     cardReaderEventV2     = (*cardReaderEventV2Pckg)();
       
  2617 
       
  2618 				if (cardReaderEventV2.iCardReaderStatus != DSATTSY_EVENT_CARD_READER_STATUS)
       
  2619 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2620 				else
       
  2621 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2622 				}
       
  2623 			break;
       
  2624 
       
  2625 		case RSat::KLanguageSelection:
       
  2626 			// Expect TLanguageSelectionEventV2
       
  2627 			if (!eventBaseV2.iDataAvailable)
       
  2628 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2629 			else
       
  2630 				{
       
  2631 				RSat::TLanguageSelectionEventV2Pckg* languageV2Pckg = (RSat::TLanguageSelectionEventV2Pckg *)aEventInfo;
       
  2632 				RSat::TLanguageSelectionEventV2&     languageV2     = (*languageV2Pckg)();
       
  2633 
       
  2634 				if (languageV2.iLanguage != DSATTSY_EVENT_LANGUAGE_SELECTION)
       
  2635 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2636 				else
       
  2637 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2638 				}
       
  2639 			break;
       
  2640 
       
  2641 		case RSat::KBrowserTermination:
       
  2642 			// Expect TBrowserTerminationEventV2
       
  2643 			if (!eventBaseV2.iDataAvailable)
       
  2644 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2645 			else
       
  2646 				{
       
  2647 				RSat::TBrowserTerminationEventV2Pckg* terminationV2Pckg = (RSat::TBrowserTerminationEventV2Pckg *)aEventInfo;
       
  2648 				RSat::TBrowserTerminationEventV2&     terminationV2     = (*terminationV2Pckg)();
       
  2649 
       
  2650 				if (terminationV2.iCause != DSATTSY_EVENT_BROWSER_TERMINATION_CAUSE)
       
  2651 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2652 				else
       
  2653 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2654 				}
       
  2655 			break;
       
  2656 
       
  2657 		case RSat::KDataAvailable:
       
  2658 			// Expect TDataAvailableEventV2
       
  2659 			if (!eventBaseV2.iDataAvailable)
       
  2660 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2661 			else
       
  2662 				{
       
  2663 				RSat::TDataAvailableEventV2Pckg* dataV2Pckg = (RSat::TDataAvailableEventV2Pckg *)aEventInfo;
       
  2664 				RSat::TDataAvailableEventV2&     dataV2     = (*dataV2Pckg)();
       
  2665 
       
  2666 				if ((dataV2.iStatus != DSATTSY_EVENT_DATA_AVAILABLE_STATUS)
       
  2667 				 || (dataV2.iLength != DSATTSY_EVENT_DATA_AVAILABLE_LENGTH))
       
  2668 					{
       
  2669 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2670 					}
       
  2671 				else
       
  2672 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2673 				}
       
  2674 			break;
       
  2675 
       
  2676 		case RSat::KChannelStatus:
       
  2677 			// Expect TChannelStatusEventV2
       
  2678 			if (!eventBaseV2.iDataAvailable)
       
  2679 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2680 			else
       
  2681 				{
       
  2682 				RSat::TChannelStatusEventV2Pckg* channelV2Pckg = (RSat::TChannelStatusEventV2Pckg *)aEventInfo;
       
  2683 				RSat::TChannelStatusEventV2&     channelV2     = (*channelV2Pckg)();
       
  2684 
       
  2685 				if (channelV2.iStatus != DSATTSY_EVENT_CHANNEL_STATUS)
       
  2686 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2687 				else
       
  2688 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2689 				}
       
  2690 			break;
       
  2691 
       
  2692 		case RSat::KDisplayParamsChanges:
       
  2693 			// Expect TDisplayParamsEventV2
       
  2694 			if (!eventBaseV2.iDataAvailable)
       
  2695 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2696 			else
       
  2697 				{
       
  2698 				RSat::TDisplayParamsEventV2Pckg* displayV2Pckg = (RSat::TDisplayParamsEventV2Pckg *)aEventInfo;
       
  2699 				RSat::TDisplayParamsEventV2&     displayV2     = (*displayV2Pckg)();
       
  2700 
       
  2701 				if ((displayV2.iSatProfileByte14 != DSATTSY_EVENT_DISPLAY_PROF14)
       
  2702 				 || (displayV2.iScreenHeight     != DSATTSY_SCREEN_HEIGHT)
       
  2703 				 || (displayV2.iSatProfileByte15 != DSATTSY_EVENT_DISPLAY_PROF15)
       
  2704 				 || (displayV2.iScreenWidth      != DSATTSY_SCREEN_WIDTH)
       
  2705 				 || (displayV2.iSatProfileByte16 != DSATTSY_EVENT_DISPLAY_PROF16)
       
  2706 				 || (displayV2.iWidthReduction   != DSATTSY_WIDTH_REDUCTION))
       
  2707 					{
       
  2708 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2709 					}
       
  2710 				else
       
  2711 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2712 				}
       
  2713 			break;
       
  2714 
       
  2715 		case RSat::KLocalConnection:
       
  2716 			// Expect TLocalConnectionEventV2
       
  2717 			if (!eventBaseV2.iDataAvailable)
       
  2718 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2719 			else
       
  2720 				{
       
  2721 				RSat::TLocalConnectionEventV2Pckg* localV2Pckg = (RSat::TLocalConnectionEventV2Pckg *)aEventInfo;
       
  2722 				RSat::TLocalConnectionEventV2&     localV2     = (*localV2Pckg)();
       
  2723 
       
  2724 				if ((localV2.iRecord.iBearerId  != DSATTSY_EVENT_LOCAL_BEARER_ID)
       
  2725 				 || (localV2.iRecord.iServiceId != DSATTSY_EVENT_LOCAL_SERVICE_ID)
       
  2726 				 || (localV2.iRecord.iRecord	!= DSATTSY_EVENT_LOCAL_SERVICE_RECORD)
       
  2727 				 || (localV2.iAddress.iCoding   != DSATTSY_EVENT_LOCAL_ADDR_CODING)
       
  2728 				 || (localV2.iAddress.iAddress  != DSATTSY_EVENT_LOCAL_ADDRESS))
       
  2729 					{
       
  2730 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2731 					}
       
  2732 				else
       
  2733 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2734 				}
       
  2735 			break;
       
  2736 			
       
  2737 		case RSat::KNetworkSearchModeChange:
       
  2738 			// Expect TNetworkSearchModeChangeV6
       
  2739 			if (!eventBaseV2.iDataAvailable)
       
  2740 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2741 			else
       
  2742 				{
       
  2743 				RSat::TNetworkSearchModeChangeEventV6Pckg* networkSearchV6Pckg = (RSat::TNetworkSearchModeChangeEventV6Pckg *)aEventInfo;
       
  2744 				RSat::TNetworkSearchModeChangeEventV6&     networkSearchV6     = (*networkSearchV6Pckg)();
       
  2745 
       
  2746 				if (networkSearchV6.iNetworkSearchMode  != DSATTSY_NETWORK_SEARCH_MODE1)
       
  2747 					{
       
  2748 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2749 					}
       
  2750 				else
       
  2751 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2752 				}
       
  2753 			break;
       
  2754 	
       
  2755 		case RSat::KBrowsingStatusChange:
       
  2756 			// Expect TBrowsingStatusEventV6
       
  2757 			if (!eventBaseV2.iDataAvailable)
       
  2758 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2759 			else
       
  2760 				{
       
  2761 				RSat::TBrowsingStatusEventV6Pckg* browsingStatusEventV6Pckg = (RSat::TBrowsingStatusEventV6Pckg *)aEventInfo;
       
  2762 				RSat::TBrowsingStatusEventV6&     browsingStatusEventV6     = (*browsingStatusEventV6Pckg)();
       
  2763 
       
  2764 				if (browsingStatusEventV6.iBrowserStatus  != DSATTSY_BROWSING_STATUS1)
       
  2765 					{
       
  2766 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2767 					}
       
  2768 				else
       
  2769 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2770 				}
       
  2771 			break;
       
  2772 		
       
  2773 		case RSat::KFramesInformationChange:
       
  2774 			// Expect TFramesInformationChangeV6
       
  2775 			if (!eventBaseV2.iDataAvailable)
       
  2776 				ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2777 			else
       
  2778 				{
       
  2779 				RSat::TFramesInformationChangedEventV6Pckg* framesInfoChangedEventV6Pckg = (RSat::TFramesInformationChangedEventV6Pckg *)aEventInfo;
       
  2780 				RSat::TFramesInformationChangedEventV6&     framesInfoChangedEventV6     = (*framesInfoChangedEventV6Pckg)();
       
  2781 
       
  2782 				if ((framesInfoChangedEventV6.iFramesInformation.iFrameId  != DSATTSY_FRAMES_INFORMATION_FRAMEID )
       
  2783 				 || (framesInfoChangedEventV6.iFramesInformation.iFrameList != DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
       
  2784 					{
       
  2785 					ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  2786 					}
       
  2787 				else
       
  2788 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  2789 				}
       
  2790 			break;
       
  2791 					
       
  2792 		default:
       
  2793 			ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2794 			}
       
  2795 		}
       
  2796 
       
  2797 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2798 	return KErrNone;
       
  2799 	}
       
  2800 
       
  2801 TInt CSatDSatTsy::EventDownloadCancel(const TTsyReqHandle aTsyReqHandle)
       
  2802 	{
       
  2803 	LOGTEXT(_L8("CSatDSatTsy::EventDownloadCancel called"));
       
  2804 
       
  2805 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2806 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2807 	else
       
  2808 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2809 
       
  2810 	iEventDownload = 0;
       
  2811 
       
  2812 	return KErrNone;
       
  2813 	}
       
  2814 
       
  2815 
       
  2816 TInt CSatDSatTsy::NotifyDisplayTextPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  2817 	{
       
  2818 	if(!iNotifyDisplayTextPCmd++)
       
  2819 		{
       
  2820 		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayTextPCmd called"));
       
  2821 		RSat::TDisplayTextV1Pckg* aPCmdPckg = (RSat::TDisplayTextV1Pckg*)aPCmd;
       
  2822 		RSat::TDisplayTextV1& displayTextV1 = (*aPCmdPckg)();
       
  2823 		
       
  2824 		displayTextV1.SetPCmdNumber(DSATTSY_DISPLAY_TEXT_NUMBER);
       
  2825 		displayTextV1.iPriority				=DSATTSY_TEXT_PRIORITY;
       
  2826 		displayTextV1.iClearScreenTrigger	=DSATTSY_CLEAR_SCREEN_TRIGGER;
       
  2827 		displayTextV1.iText					=DSATTSY_TEXT_TO_DISPLAY;
       
  2828 		displayTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
       
  2829 		displayTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
       
  2830 		displayTextV1.iImmediateRsp			=DSATTSY_IMMEDIATE_RSP;
       
  2831 
       
  2832 		if ((displayTextV1.ExtensionId() == RSat::KSatV2) ||
       
  2833 			(displayTextV1.ExtensionId() == RSat::KSatV5) || (displayTextV1.ExtensionId() == RSat::KSatV6))
       
  2834 			{
       
  2835 			RSat::TDisplayTextV2Pckg* aV2PCmdPckg = (RSat::TDisplayTextV2Pckg*)aPCmd;
       
  2836 			RSat::TDisplayTextV2&   displayTextV2 = (*aV2PCmdPckg)();
       
  2837 
       
  2838 			displayTextV2.iDuration.iTimeUnit=DSATTSY_TIME_UNIT;
       
  2839 			displayTextV2.iDuration.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
       
  2840 			}
       
  2841 			
       
  2842 		if ((displayTextV1.ExtensionId() == RSat::KSatV5) || (displayTextV1.ExtensionId() == RSat::KSatV6))
       
  2843 			{
       
  2844 			RSat::TDisplayTextV5Pckg* aV5PCmdPckg = (RSat::TDisplayTextV5Pckg*)aPCmd;
       
  2845 			RSat::TDisplayTextV5&   displayTextV5 = (*aV5PCmdPckg)();
       
  2846 			
       
  2847 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  2848 			
       
  2849 			displayTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  2850 			displayTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  2851 			}
       
  2852 		
       
  2853 		if (displayTextV1.ExtensionId() == RSat::KSatV6)
       
  2854 			{
       
  2855 			RSat::TDisplayTextV6Pckg* displayTextV6PCmdPckg = (RSat::TDisplayTextV6Pckg*)aPCmd;
       
  2856 			RSat::TDisplayTextV6&   displayTextV6 = (*displayTextV6PCmdPckg)();
       
  2857 			
       
  2858 			displayTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  2859 			}	
       
  2860 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  2861 		}
       
  2862 		
       
  2863 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2864 	return KErrNone;
       
  2865 	}
       
  2866 
       
  2867 TInt CSatDSatTsy::NotifyDisplayTextPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  2868 	{
       
  2869 	LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayTextPCmdCancel called"));
       
  2870 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2871 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2872 	else
       
  2873 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2874 	iNotifyDisplayTextPCmd=0;
       
  2875 	return KErrNone;
       
  2876 	}
       
  2877 
       
  2878 TInt CSatDSatTsy::NotifyGetInkeyPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  2879 	{
       
  2880 	if(!iNotifyGetInkeyPCmd++)
       
  2881 		{
       
  2882 		LOGTEXT(_L8("CSatDSatTsy::NotifyGetInkeyPCmd called"));
       
  2883 		RSat::TGetInkeyV1Pckg* aPCmdPckg = (RSat::TGetInkeyV1Pckg*)aPCmd;
       
  2884 		RSat::TGetInkeyV1& getInkeyV1 = (*aPCmdPckg)();
       
  2885 
       
  2886 		getInkeyV1.SetPCmdNumber(DSATTSY_GET_INKEY_NUMBER);
       
  2887 		
       
  2888 		getInkeyV1.iRspFormat			=DSATTSY_USER_RSP_FORMAT;
       
  2889 		getInkeyV1.iText				=DSATTSY_TEXT_TO_DISPLAY;
       
  2890 		getInkeyV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
       
  2891 		getInkeyV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
       
  2892 		getInkeyV1.iHelp				=DSATTSY_HELP;
       
  2893 
       
  2894 		if ((getInkeyV1.ExtensionId() == RSat::KSatV2) ||
       
  2895 			(getInkeyV1.ExtensionId() == RSat::KSatV5) || 
       
  2896 			(getInkeyV1.ExtensionId() == RSat::KSatV6))
       
  2897 			{
       
  2898 			RSat::TGetInkeyV2Pckg* aV2PCmdPckg = (RSat::TGetInkeyV2Pckg*)aPCmd;
       
  2899 			RSat::TGetInkeyV2&     getInkeyV2  = (*aV2PCmdPckg)();
       
  2900 
       
  2901 			getInkeyV2.iDuration.iTimeUnit=DSATTSY_TIME_UNIT;
       
  2902 			getInkeyV2.iDuration.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
       
  2903 			getInkeyV2.iMode=DSATTSY_GET_INKEY_RSP_MODE;
       
  2904 			}
       
  2905 			
       
  2906 		if ((getInkeyV1.ExtensionId() == RSat::KSatV5) || 
       
  2907 			(getInkeyV1.ExtensionId() == RSat::KSatV6))
       
  2908 			{
       
  2909 			RSat::TGetInkeyV5Pckg* aV5PCmdPckg = (RSat::TGetInkeyV5Pckg*)aPCmd;
       
  2910 			RSat::TGetInkeyV5&   getInkeyV5 = (*aV5PCmdPckg)();
       
  2911 			
       
  2912 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  2913 			
       
  2914 			getInkeyV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  2915 			getInkeyV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);			
       
  2916 			}
       
  2917 
       
  2918 		if (getInkeyV1.ExtensionId() == RSat::KSatV6)
       
  2919 			{
       
  2920 			RSat::TGetInkeyV6Pckg* getInkeyV6PCmdPckg = (RSat::TGetInkeyV6Pckg*)aPCmd;
       
  2921 			RSat::TGetInkeyV6&   getInkeyV6 = (*getInkeyV6PCmdPckg)();
       
  2922 			
       
  2923 			getInkeyV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;	
       
  2924 			}
       
  2925 			
       
  2926 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  2927 		}
       
  2928 		
       
  2929 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2930 	return KErrNone;
       
  2931 	}
       
  2932 
       
  2933 TInt CSatDSatTsy::NotifyGetInkeyPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  2934 	{
       
  2935 	LOGTEXT(_L8("CSatDSatTsy::NotifyGetInkeyPCmdCancel called"));
       
  2936 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2937 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2938 	else
       
  2939 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2940 	iNotifyGetInkeyPCmd=0;
       
  2941 	return KErrNone;
       
  2942 	}
       
  2943 
       
  2944 TInt CSatDSatTsy::NotifyGetInputPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  2945 	{
       
  2946 	if(!iNotifyGetInputPCmd++)
       
  2947 		{
       
  2948 		LOGTEXT(_L8("CSatDSatTsy::NotifyGetInputPCmd called"));
       
  2949 		RSat::TGetInputV1Pckg* aPCmdPckg = (RSat::TGetInputV1Pckg*)aPCmd;
       
  2950 		RSat::TGetInputV1& getInputV1 = (*aPCmdPckg)();
       
  2951 
       
  2952 		getInputV1.SetPCmdNumber(DSATTSY_GET_INPUT_NUMBER);
       
  2953 		
       
  2954 		getInputV1.iInputDisplayOption		=DSATTSY_INPUT_DISPLAY_OPTION;
       
  2955 		getInputV1.iRspFormat				=DSATTSY_GET_INPUT_RSP_FORMAT;
       
  2956 		getInputV1.iText					=DSATTSY_TEXT_TO_DISPLAY;
       
  2957 		getInputV1.iRspLength.iMinRspLength	=DSATTSY_MIN_RSP_LENGTH;
       
  2958 		getInputV1.iRspLength.iMaxRspLength	=DSATTSY_MAX_RSP_LENGTH;
       
  2959 		getInputV1.iDefaultText				=DSATTSY_DEFAULT_TEXT;
       
  2960 		getInputV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
       
  2961 		getInputV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
       
  2962 		getInputV1.iHelp					=DSATTSY_HELP;
       
  2963 
       
  2964 		if ((getInputV1.ExtensionId() == RSat::KSatV5) ||
       
  2965 			(getInputV1.ExtensionId() == RSat::KSatV6))
       
  2966 			{
       
  2967 			RSat::TGetInputV5Pckg* aV5PCmdPckg = (RSat::TGetInputV5Pckg*)aPCmd;
       
  2968 			RSat::TGetInputV5&   getInputV5 = (*aV5PCmdPckg)();
       
  2969 			
       
  2970 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  2971 			
       
  2972 			getInputV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  2973 			getInputV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  2974 			}
       
  2975 
       
  2976 		if (getInputV1.ExtensionId() == RSat::KSatV6)
       
  2977 			{
       
  2978 			RSat::TGetInputV6Pckg* getInputV6PCmdPckg = (RSat::TGetInputV6Pckg*)aPCmd;
       
  2979 			RSat::TGetInputV6&   getInputV6 = (*getInputV6PCmdPckg)();
       
  2980 			
       
  2981 			getInputV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
       
  2982 			}
       
  2983 			
       
  2984 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  2985 		}
       
  2986 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  2987 	return KErrNone;	
       
  2988 	}
       
  2989 
       
  2990 TInt CSatDSatTsy::NotifyGetInputPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  2991 	{
       
  2992 	LOGTEXT(_L8("CSatDSatTsy::NotifyGetInputPCmdCancel called"));
       
  2993 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  2994 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  2995 	else
       
  2996 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  2997 	iNotifyGetInputPCmd=0;
       
  2998 	return KErrNone;
       
  2999 	}
       
  3000 
       
  3001 TInt CSatDSatTsy::NotifyPlayTonePCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3002 	{
       
  3003 	if(!iNotifyPlayTonePCmd++)
       
  3004 		{
       
  3005 		LOGTEXT(_L8("CSatDSatTsy::NotifyPlayTonePCmd called"));
       
  3006 		RSat::TPlayToneV1Pckg* aPCmdPckg = (RSat::TPlayToneV1Pckg*)aPCmd;
       
  3007 		RSat::TPlayToneV1& playToneV1 = (*aPCmdPckg)();
       
  3008 		
       
  3009 		playToneV1.SetPCmdNumber(DSATTSY_PLAY_TONE_NUMBER);
       
  3010 
       
  3011 		playToneV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
       
  3012 		playToneV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
       
  3013 		playToneV1.iTone					=DSATTSY_TONE;
       
  3014 		playToneV1.iDuration.iTimeUnit		=DSATTSY_TIME_UNIT;
       
  3015 		playToneV1.iDuration.iNumOfUnits	=DSATTSY_NUM_OF_UNITS;
       
  3016 
       
  3017 		if	((playToneV1.ExtensionId() == RSat::KSatV2) ||
       
  3018 			(playToneV1.ExtensionId() == RSat::KSatV5) || (playToneV1.ExtensionId() == RSat::KSatV6))
       
  3019 			{
       
  3020 			RSat::TPlayToneV2Pckg* aV2PCmdPckg = (RSat::TPlayToneV2Pckg*)aPCmd;
       
  3021 			RSat::TPlayToneV2& playToneV2 = (*aV2PCmdPckg)();
       
  3022 
       
  3023 			playToneV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  3024 			playToneV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
       
  3025 			}
       
  3026 			
       
  3027 		if ((playToneV1.ExtensionId() == RSat::KSatV5) ||
       
  3028 		   (playToneV1.ExtensionId() == RSat::KSatV6))	
       
  3029 			{
       
  3030 			RSat::TPlayToneV5Pckg* aV5PCmdPckg = (RSat::TPlayToneV5Pckg*)aPCmd;
       
  3031 			RSat::TPlayToneV5&   playToneV5 = (*aV5PCmdPckg)();
       
  3032 			
       
  3033 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3034 			
       
  3035 			playToneV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3036 			playToneV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);			
       
  3037 			}
       
  3038 
       
  3039 		if (playToneV1.ExtensionId() == RSat::KSatV6)
       
  3040 			{
       
  3041 			RSat::TPlayToneV6Pckg* playToneV6PCmdPckg = (RSat::TPlayToneV6Pckg*)aPCmd;
       
  3042 			RSat::TPlayToneV6&   playToneV6 = (*playToneV6PCmdPckg)();
       
  3043 			
       
  3044 			playToneV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
       
  3045 			playToneV6.iTone=DSATTSY_TONEV6;			
       
  3046 			}
       
  3047 			
       
  3048 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3049 		}
       
  3050 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3051 	return KErrNone;
       
  3052 	}
       
  3053 
       
  3054 TInt CSatDSatTsy::NotifyPlayTonePCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3055 	{
       
  3056 	LOGTEXT(_L8("CSatDSatTsy::NotifyPlayTonePCmdCancel called"));
       
  3057 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3058 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3059 	else
       
  3060 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3061 	iNotifyPlayTonePCmd=0;
       
  3062 	return KErrNone;
       
  3063 	}
       
  3064 
       
  3065 TInt CSatDSatTsy::NotifySetUpMenuPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3066 	{
       
  3067 	RSat::TItem item1, item2, item3, item4;
       
  3068 	TUint action1=0x01, action2=0x02, action3=0x03, action4=0x04;
       
  3069 	TUint iconId1=0x01, iconId2=0x02, iconId3=0x03, iconId4=0x04;
       
  3070 	
       
  3071 	RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3, textAttribute4;
       
  3072 
       
  3073 	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpMenuPCmd called"));
       
  3074 	RSat::TSetUpMenuV1Pckg* aPCmdPckg = (RSat::TSetUpMenuV1Pckg*)aPCmd;
       
  3075 	RSat::TSetUpMenuV1& setUpMenuV1 = (*aPCmdPckg)();
       
  3076 
       
  3077 	item1.iItemId=0x01;
       
  3078 	item1.iItemString=DSATTSY_ITEM1;
       
  3079 	item2.iItemId=0x02;
       
  3080 	item2.iItemString=DSATTSY_ITEM2;
       
  3081 	item3.iItemId=0x03;
       
  3082 	item3.iItemString=DSATTSY_ITEM3;
       
  3083 	item4.iItemId=0x04;	
       
  3084 	item4.iItemString=DSATTSY_ITEM4;
       
  3085 	
       
  3086 	textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3087 	const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3088 	textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3089 	
       
  3090 	textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
       
  3091 	const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
       
  3092 	textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3093 	
       
  3094 	textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
       
  3095 	const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
       
  3096 	textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3097 	
       
  3098 	textAttribute4.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS4;
       
  3099 	const TUint8 textAttributeData4[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA4;
       
  3100 	textAttribute4.iTextAttributeData.Append(textAttributeData4, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3101 
       
  3102 	setUpMenuV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
       
  3103 	setUpMenuV1.iAlphaId.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
       
  3104 	setUpMenuV1.iHelp				=DSATTSY_HELP;
       
  3105 	setUpMenuV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
       
  3106 	setUpMenuV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
       
  3107 	setUpMenuV1.iIconListQualifier	=DSATTSY_ICON_QUALIFIER2;
       
  3108 
       
  3109 	setUpMenuV1.SetPCmdNumber(DSATTSY_SET_UP_MENU_NUMBER);
       
  3110 
       
  3111 	if(	(setUpMenuV1.ExtensionId() == RSat::KSatV2) ||
       
  3112 		(setUpMenuV1.ExtensionId() == RSat::KSatV5))
       
  3113 		{
       
  3114 		RSat::TSetUpMenuV2Pckg* aV2PCmdPckg = (RSat::TSetUpMenuV2Pckg*)aPCmd;
       
  3115 		RSat::TSetUpMenuV2& setUpMenuV2 = (*aV2PCmdPckg)();
       
  3116 
       
  3117 		setUpMenuV2.iPreference=DSATTSY_SELECTION_PREFERENCE;
       
  3118 		}
       
  3119 
       
  3120 	if(!iNotifySetUpMenuPCmd++)
       
  3121 		{
       
  3122 		switch (iNotifySetUpMenuTestNumber)
       
  3123 			{
       
  3124 		case 0:
       
  3125 			setUpMenuV1.AddItem(item1);
       
  3126 			setUpMenuV1.AddItem(item2);
       
  3127 			setUpMenuV1.AddItem(item3);
       
  3128 
       
  3129 			iNotifySetUpMenuTestNumber ++;
       
  3130 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  3131 			
       
  3132 			break;
       
  3133 		case 1:
       
  3134 			setUpMenuV1.AddItem(item1, action1);
       
  3135 			setUpMenuV1.AddItem(item2, action2);
       
  3136 			setUpMenuV1.AddItem(item3, action3);
       
  3137 
       
  3138 			iNotifySetUpMenuTestNumber ++;
       
  3139 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  3140 			
       
  3141 			break;		
       
  3142 		case 2:
       
  3143 			setUpMenuV1.AddItemIcon(item1, iconId1);
       
  3144 			setUpMenuV1.AddItemIcon(item2, iconId2);
       
  3145 			setUpMenuV1.AddItemIcon(item3, iconId3);
       
  3146 
       
  3147 			iNotifySetUpMenuTestNumber ++;
       
  3148 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  3149 			
       
  3150 			break;
       
  3151 		case 3:
       
  3152 			setUpMenuV1.AddItem(item1, action1, iconId1);
       
  3153 			setUpMenuV1.AddItem(item2, action2, iconId2);
       
  3154 			setUpMenuV1.AddItem(item3, action3, iconId3);
       
  3155 			setUpMenuV1.AddItem(item4);
       
  3156 			
       
  3157 			iNotifySetUpMenuTestNumber ++;
       
  3158 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  3159 			
       
  3160 			break;
       
  3161 		case 4:
       
  3162 			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
       
  3163 				{
       
  3164 				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
       
  3165 				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
       
  3166 				
       
  3167 				setUpMenuV5.AddItem(item1, textAttribute1);
       
  3168 				setUpMenuV5.AddItem(item2, textAttribute2);
       
  3169 				setUpMenuV5.AddItem(item3, textAttribute3);
       
  3170 				setUpMenuV5.AddItem(item4, textAttribute4);
       
  3171 				
       
  3172 				setUpMenuV5.iTextAttribute.iStatus = textAttribute1.iStatus;
       
  3173 				setUpMenuV5.iTextAttribute.iTextAttributeData = textAttribute1.iTextAttributeData;
       
  3174 				
       
  3175 				iNotifySetUpMenuTestNumber ++;
       
  3176 				ReqCompleted(aTsyReqHandle,KErrNone);				
       
  3177 				}
       
  3178 			else
       
  3179 				{
       
  3180 				iNotifySetUpMenuTestNumber ++;
       
  3181 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3182 				}
       
  3183 				
       
  3184 			break;
       
  3185 		case 5:
       
  3186 			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
       
  3187 				{
       
  3188 				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
       
  3189 				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
       
  3190 				
       
  3191 				setUpMenuV5.AddItem(item1, textAttribute1, action1);
       
  3192 				setUpMenuV5.AddItem(item2, textAttribute2, action2);
       
  3193 				setUpMenuV5.AddItem(item3, textAttribute3, action3);
       
  3194 				setUpMenuV5.AddItem(item4, textAttribute4, action4);
       
  3195 				
       
  3196 				iNotifySetUpMenuTestNumber ++;
       
  3197 				ReqCompleted(aTsyReqHandle,KErrNone);				
       
  3198 				}
       
  3199 			else
       
  3200 				{
       
  3201 				iNotifySetUpMenuTestNumber ++;
       
  3202 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3203 				}
       
  3204 				
       
  3205 			break;		
       
  3206 		case 6:
       
  3207 			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
       
  3208 				{
       
  3209 				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
       
  3210 				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
       
  3211 
       
  3212 				setUpMenuV5.AddItemIcon(item1, textAttribute1, iconId1);
       
  3213 				setUpMenuV5.AddItemIcon(item2, textAttribute2, iconId2);
       
  3214 				setUpMenuV5.AddItemIcon(item3, textAttribute3, iconId3);
       
  3215 				setUpMenuV5.AddItemIcon(item4, textAttribute4, iconId4);
       
  3216 				
       
  3217 				iNotifySetUpMenuTestNumber ++;
       
  3218 				ReqCompleted(aTsyReqHandle,KErrNone);				
       
  3219 				}
       
  3220 			else
       
  3221 				{
       
  3222 				iNotifySetUpMenuTestNumber ++;
       
  3223 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3224 				}
       
  3225 					
       
  3226 			break;
       
  3227 		case 7:
       
  3228 			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
       
  3229 				{
       
  3230 				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
       
  3231 				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
       
  3232 				
       
  3233 				setUpMenuV5.AddItem(item1, textAttribute1, action1, iconId1);
       
  3234 				setUpMenuV5.AddItem(item2, textAttribute2, action2, iconId2);
       
  3235 				setUpMenuV5.AddItem(item3, textAttribute3, action3, iconId3);
       
  3236 				setUpMenuV5.AddItem(item4, textAttribute4, action4, iconId4);
       
  3237 				
       
  3238 				iNotifySetUpMenuTestNumber ++;
       
  3239 				ReqCompleted(aTsyReqHandle,KErrNone);				
       
  3240 				}
       
  3241 			else
       
  3242 				{
       
  3243 				iNotifySetUpMenuTestNumber ++;
       
  3244 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3245 				}
       
  3246 			break;
       
  3247 		case 8:
       
  3248 			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
       
  3249 				{
       
  3250 				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
       
  3251 				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
       
  3252 				
       
  3253 				setUpMenuV5.AddItem(item1);
       
  3254 				setUpMenuV5.AddItem(item2);
       
  3255 				setUpMenuV5.AddItem(item3);
       
  3256 				setUpMenuV5.AddItem(item4);
       
  3257 				
       
  3258 				iNotifySetUpMenuTestNumber ++;
       
  3259 				ReqCompleted(aTsyReqHandle,KErrNone);				
       
  3260 				}
       
  3261 			else
       
  3262 				{
       
  3263 				iNotifySetUpMenuTestNumber ++;
       
  3264 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3265 				}			
       
  3266 			break;
       
  3267 		case 9:
       
  3268 			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
       
  3269 				{
       
  3270 				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
       
  3271 				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
       
  3272 				
       
  3273 				setUpMenuV5.AddItem(item1, action1);
       
  3274 				setUpMenuV5.AddItem(item2, action2);
       
  3275 				setUpMenuV5.AddItem(item3, action3);
       
  3276 				setUpMenuV5.AddItem(item4, action4);
       
  3277 				
       
  3278 				iNotifySetUpMenuTestNumber ++;
       
  3279 				ReqCompleted(aTsyReqHandle,KErrNone);				
       
  3280 				}
       
  3281 			else
       
  3282 				{
       
  3283 				iNotifySetUpMenuTestNumber ++;
       
  3284 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3285 				}			
       
  3286 			break;
       
  3287 		case 10:
       
  3288 			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
       
  3289 				{
       
  3290 				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
       
  3291 				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
       
  3292 				
       
  3293 				setUpMenuV1.AddItemIcon(item1, iconId1);
       
  3294 				setUpMenuV1.AddItemIcon(item2, iconId2);
       
  3295 				setUpMenuV1.AddItemIcon(item3, iconId3);
       
  3296 				setUpMenuV1.AddItemIcon(item4, iconId4);
       
  3297 				
       
  3298 				iNotifySetUpMenuTestNumber ++;
       
  3299 				ReqCompleted(aTsyReqHandle,KErrNone);				
       
  3300 				}
       
  3301 			else
       
  3302 				{
       
  3303 				iNotifySetUpMenuTestNumber ++;
       
  3304 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3305 				}			
       
  3306 			break;
       
  3307 		case 11:
       
  3308 			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
       
  3309 				{
       
  3310 				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
       
  3311 				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
       
  3312 				
       
  3313 				setUpMenuV5.AddItem(item1, action1, iconId1);
       
  3314 				setUpMenuV5.AddItem(item2, action2, iconId2);
       
  3315 				setUpMenuV5.AddItem(item3, action3, iconId3);
       
  3316 				setUpMenuV5.AddItem(item4, action4, iconId4);
       
  3317 				
       
  3318 				iNotifySetUpMenuTestNumber ++;
       
  3319 				ReqCompleted(aTsyReqHandle,KErrNone);				
       
  3320 				}
       
  3321 			else
       
  3322 				{
       
  3323 				iNotifySetUpMenuTestNumber ++;
       
  3324 				ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3325 				}			
       
  3326 			break;								
       
  3327 		case 12:
       
  3328 			iNotifySetUpMenuTestNumber ++;
       
  3329 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  3330 			break;		
       
  3331 		default:
       
  3332 			break;
       
  3333 			}
       
  3334 		}
       
  3335 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3336 	return KErrNone;
       
  3337 	}
       
  3338 
       
  3339 TInt CSatDSatTsy::NotifySetUpMenuPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3340 	{
       
  3341 	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpMenuPCmdCancel called"));
       
  3342 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3343 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3344 	else
       
  3345 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3346 	iNotifySetUpMenuPCmd=0;
       
  3347 	return KErrNone;
       
  3348 	}
       
  3349 
       
  3350 TInt CSatDSatTsy::NotifySelectItemPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3351 	{
       
  3352 	if(!iNotifySelectItemPCmd++)
       
  3353 		{
       
  3354 		LOGTEXT(_L8("CSatDSatTsy::NotifySelectItemPCmd called"));
       
  3355 		RSat::TSelectItemV1Pckg* aPCmdPckg = (RSat::TSelectItemV1Pckg*)aPCmd;
       
  3356 		RSat::TSelectItemV1& selectItemV1 = (*aPCmdPckg)();
       
  3357 		
       
  3358 		TUint action1=0x01, action2=0x02, action3=0x03;
       
  3359 		RSat::TItem item1, item2, item3;
       
  3360 		TUint iconId1=0x01, iconId2=0x02, iconId3=0x03;
       
  3361 
       
  3362 		item1.iItemId=0x01;
       
  3363 		item1.iItemString=DSATTSY_ITEM1;
       
  3364 		item2.iItemId=0x02;
       
  3365 		item2.iItemString=DSATTSY_ITEM2;
       
  3366 		item3.iItemId=0x03;
       
  3367 		item3.iItemString=DSATTSY_ITEM3;
       
  3368 
       
  3369 		selectItemV1.SetPCmdNumber(DSATTSY_SELECT_ITEM_NUMBER);
       
  3370 
       
  3371 		selectItemV1.iPresentationType	=DSATTSY_PRESENTATION_TYPE;
       
  3372 		selectItemV1.iHelp				=DSATTSY_HELP;
       
  3373 		selectItemV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
       
  3374 		selectItemV1.iAlphaId.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
       
  3375 		selectItemV1.iDefaultItemId		=DSATTSY_DEFAULT_ITEM;
       
  3376 		selectItemV1.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  3377 		selectItemV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
       
  3378 		selectItemV1.iIconListQualifier	=DSATTSY_ICON_QUALIFIER2;
       
  3379 		
       
  3380 		if ((selectItemV1.ExtensionId() == RSat::KSatV1) ||
       
  3381 			(selectItemV1.ExtensionId() == RSat::KSatV2))
       
  3382 			{
       
  3383 			selectItemV1.AddItem(item1, action1, iconId1);
       
  3384 			selectItemV1.AddItem(item2, action2, iconId2);
       
  3385 			selectItemV1.AddItem(item3, action3, iconId3);
       
  3386 			}
       
  3387 	
       
  3388 		if ((selectItemV1.ExtensionId() == RSat::KSatV2) ||
       
  3389 			(selectItemV1.ExtensionId() == RSat::KSatV5) || (selectItemV1.ExtensionId() == RSat::KSatV6))
       
  3390 			{
       
  3391 			RSat::TSelectItemV2Pckg* aV2PCmdPckg = (RSat::TSelectItemV2Pckg*)aPCmd;
       
  3392 			RSat::TSelectItemV2& selectItemV2 = (*aV2PCmdPckg)();
       
  3393 
       
  3394 			selectItemV2.iPreference=DSATTSY_SELECTION_PREFERENCE;
       
  3395 			}
       
  3396 
       
  3397 		if ((selectItemV1.ExtensionId() == RSat::KSatV5) ||
       
  3398 			(selectItemV1.ExtensionId() == RSat::KSatV6))
       
  3399 			{
       
  3400 			RSat::TSelectItemV5Pckg* aV5PCmdPckg = (RSat::TSelectItemV5Pckg*)aPCmd;
       
  3401 			RSat::TSelectItemV5& selectItemV5 = (*aV5PCmdPckg)();
       
  3402 			
       
  3403 			RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3;
       
  3404 			
       
  3405 			textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3406 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3407 			textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3408 	
       
  3409 			textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
       
  3410 			const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
       
  3411 			textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3412 	
       
  3413 			textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
       
  3414 			const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
       
  3415 			textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3416 			
       
  3417 			selectItemV5.AddItem(item1, textAttribute1, action1, iconId1);
       
  3418 			selectItemV5.AddItem(item2, textAttribute2, action2, iconId2);
       
  3419 			selectItemV5.AddItem(item3, textAttribute3, action3, iconId3);
       
  3420 			
       
  3421 			selectItemV5.iTextAttribute = textAttribute1;			
       
  3422 			}
       
  3423 
       
  3424 		if (selectItemV1.ExtensionId() == RSat::KSatV6)
       
  3425 			{
       
  3426 			RSat::TSelectItemV6Pckg* selectItemV6PCmdPckg = (RSat::TSelectItemV6Pckg*)aPCmd;
       
  3427 			RSat::TSelectItemV6& selectItemV6 = (*selectItemV6PCmdPckg)();
       
  3428 			
       
  3429 			selectItemV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  3430 			}
       
  3431 			
       
  3432 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3433 		}
       
  3434 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3435 	return KErrNone;
       
  3436 	}
       
  3437 
       
  3438 TInt CSatDSatTsy::NotifySelectItemPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3439 	{
       
  3440 	LOGTEXT(_L8("CSatDSatTsy::NotifySelectItemPCmdCancel called"));
       
  3441 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3442 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3443 	else
       
  3444 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3445 	iNotifySelectItemPCmd=0;
       
  3446 	return KErrNone;
       
  3447 	}
       
  3448 
       
  3449 TInt CSatDSatTsy::NotifySendSmPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3450 	{
       
  3451 	if(!iNotifySendSmPCmd++)
       
  3452 		{
       
  3453 		LOGTEXT(_L8("CSatDSatTsy::NotifySendSmPCmd called"));
       
  3454 		RSat::TSendSmV1Pckg* aPCmdPckg = (RSat::TSendSmV1Pckg*)aPCmd;
       
  3455 		RSat::TSendSmV1& sendSmV1 = (*aPCmdPckg)();
       
  3456 
       
  3457 		sendSmV1.SetPCmdNumber(DSATTSY_SEND_SM_NUMBER);
       
  3458 		
       
  3459 		sendSmV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
       
  3460 		sendSmV1.iAlphaId.iStatus		=DSATTSY_ALPHA_ID1_STATUS;
       
  3461 		sendSmV1.iAddress.iTypeOfNumber	=DSATTSY_TON;
       
  3462 		sendSmV1.iAddress.iNumberPlan	=DSATTSY_NPI;
       
  3463 		sendSmV1.iAddress.iTelNumber	=DSATTSY_TEL_NUMBER;
       
  3464 		sendSmV1.iSmsTpdu				=DSATTSY_SMS_TPDU; 
       
  3465 		sendSmV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
       
  3466 		sendSmV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
       
  3467 
       
  3468 		if ((sendSmV1.ExtensionId() == RSat::KSatV5)  ||
       
  3469 			(sendSmV1.ExtensionId() == RSat::KSatV6))
       
  3470 			{
       
  3471 			RSat::TSendSmV5Pckg* aV5PCmdPckg = (RSat::TSendSmV5Pckg*)aPCmd;
       
  3472 			RSat::TSendSmV5&   sendSmV5 = (*aV5PCmdPckg)();
       
  3473 			
       
  3474 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3475 			
       
  3476 			sendSmV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3477 			sendSmV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3478 			}		
       
  3479 
       
  3480 		if (sendSmV1.ExtensionId() == RSat::KSatV6)
       
  3481 			{
       
  3482 			RSat::TSendSmV6Pckg* sendSmV6PCmdPckg = (RSat::TSendSmV6Pckg*)aPCmd;
       
  3483 			RSat::TSendSmV6&   sendSmV6 = (*sendSmV6PCmdPckg)();
       
  3484 			
       
  3485 			sendSmV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  3486 			}
       
  3487 			
       
  3488 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3489 		}
       
  3490 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3491 	return KErrNone;
       
  3492 	}
       
  3493 
       
  3494 TInt CSatDSatTsy::NotifySendSmPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3495 	{
       
  3496 	LOGTEXT(_L8("CSatDSatTsy::NotifySendSmPCmdCancel called"));
       
  3497 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3498 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3499 	else
       
  3500 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3501 	iNotifySendSmPCmd=0;
       
  3502 	return KErrNone;
       
  3503 	}
       
  3504 
       
  3505 
       
  3506 TInt CSatDSatTsy::SendMessageNoLogging(const TTsyReqHandle aTsyReqHandle, const TDesC8* aMsg, TUint16* aMsgRef)
       
  3507 	{
       
  3508 	LOGTEXT(_L8("CSatDSatTsy::SendMessageNoLogging called"));
       
  3509 	RSat::TSatSmsV1Pckg* aMsgPckg = (RSat::TSatSmsV1Pckg*)aMsg;
       
  3510 	RSat::TSatSmsV1& msgV1 = (*aMsgPckg)();
       
  3511 
       
  3512 	*aMsgRef=DSATTSY_SMS_REF;
       
  3513 
       
  3514 	if ((msgV1.iServiceCenter.iNumberPlan!=DSATTSY_NPI)
       
  3515 		||(msgV1.iServiceCenter.iTypeOfNumber!=DSATTSY_TON)
       
  3516 		||(msgV1.iServiceCenter.iTelNumber!=DSATTSY_TEL_NUMBER)
       
  3517 		||(msgV1.iBuf!=DSATTSY_SMS_TPDU))
       
  3518 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3519 	else
       
  3520 		if(!iSendMessageNoLogging++)
       
  3521 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  3522 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3523 	return KErrNone;	
       
  3524 	}
       
  3525 
       
  3526 TInt CSatDSatTsy::SendMessageNoLoggingCancel(const TTsyReqHandle aTsyReqHandle)
       
  3527 	{
       
  3528 	LOGTEXT(_L8("CSatDSatTsy::SendMessageNoLoggingCancel called"));
       
  3529 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3530 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3531 	else
       
  3532 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3533 	return KErrNone;
       
  3534 	}
       
  3535 
       
  3536 TInt CSatDSatTsy::NotifySendSsPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3537 	{
       
  3538 	if(!iNotifySendSsPCmd++)
       
  3539 		{
       
  3540 		LOGTEXT(_L8("CSatDSatTsy::NotifySendSsPCmd called"));
       
  3541 		RSat::TSendSsV1Pckg* aPCmdPckg = (RSat::TSendSsV1Pckg*)aPCmd;
       
  3542 		RSat::TSendSsV1& sendSsV1 = (*aPCmdPckg)();
       
  3543 
       
  3544 		sendSsV1.SetPCmdNumber(DSATTSY_SEND_SS_NUMBER);
       
  3545 		
       
  3546 		sendSsV1.iAlphaId.iAlphaId			=DSATTSY_ALPHA_ID1;
       
  3547 		sendSsV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
       
  3548 		sendSsV1.iSsString.iTypeOfNumber	=DSATTSY_TON;
       
  3549 		sendSsV1.iSsString.iNumberPlan		=DSATTSY_NPI;
       
  3550 		sendSsV1.iSsString.iSsString		=DSATTSY_SS_STRING;
       
  3551 		sendSsV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
       
  3552 		sendSsV1.iIconId.iQualifier			=DSATTSY_ICON_QUALIFIER1;
       
  3553 
       
  3554 		if (sendSsV1.ExtensionId() == RSat::KSatV6)
       
  3555 			{
       
  3556 			RSat::TSendSsV6Pckg* sendSsV6PCmdPckg = (RSat::TSendSsV6Pckg*)aPCmd;
       
  3557 			RSat::TSendSsV6&   sendSsV6 = (*sendSsV6PCmdPckg)();
       
  3558 			
       
  3559 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3560 			
       
  3561 			sendSsV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3562 			sendSsV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3563 			}
       
  3564 			
       
  3565 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3566 		}
       
  3567 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3568 	return KErrNone;
       
  3569 	}
       
  3570 
       
  3571 TInt CSatDSatTsy::NotifySendSsPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3572 	{
       
  3573 	LOGTEXT(_L8("CSatDSatTsy::NotifySendSsPCmdCancel called"));
       
  3574 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3575 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3576 	else
       
  3577 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3578 	iNotifySendSsPCmd=0;
       
  3579 	return KErrNone;
       
  3580 	}
       
  3581 
       
  3582 TInt CSatDSatTsy::NotifySendUssdPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3583 	{
       
  3584 	if(!iNotifySendUssdPCmd++)
       
  3585 		{
       
  3586 		LOGTEXT(_L8("CSatDSatTsy::NotifySendUssdPCmd called"));
       
  3587 		RSat::TSendUssdV1Pckg* aPCmdPckg = (RSat::TSendUssdV1Pckg*)aPCmd;
       
  3588 		RSat::TSendUssdV1& sendUssdV1 = (*aPCmdPckg)();
       
  3589 		
       
  3590 		sendUssdV1.SetPCmdNumber(DSATTSY_SEND_USSD_NUMBER);
       
  3591 
       
  3592 		sendUssdV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
       
  3593 		sendUssdV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
       
  3594 		sendUssdV1.iUssdString.iDcs			=DSATTSY_DCS;
       
  3595 		sendUssdV1.iUssdString.iUssdString	=DSATTSY_USSD_STRING;
       
  3596 		sendUssdV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
       
  3597 		sendUssdV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
       
  3598 
       
  3599 		if (sendUssdV1.ExtensionId() == RSat::KSatV6)
       
  3600 			{
       
  3601 			RSat::TSendUssdV6Pckg* sendUssdV6PCmdPckg = (RSat::TSendUssdV6Pckg*)aPCmd;
       
  3602 			RSat::TSendUssdV6&   sendUssdV6 = (*sendUssdV6PCmdPckg)();
       
  3603 			
       
  3604 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3605 			
       
  3606 			sendUssdV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3607 			sendUssdV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3608 			}
       
  3609 			
       
  3610 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3611 		}
       
  3612 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3613 	return KErrNone;
       
  3614 	}
       
  3615 
       
  3616 TInt CSatDSatTsy::NotifySendUssdPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3617 	{
       
  3618 	LOGTEXT(_L8("CSatDSatTsy::NotifySendUssdPCmdCancel called"));
       
  3619 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3620 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3621 	else
       
  3622 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3623 	iNotifySendUssdPCmd=0;
       
  3624 	return KErrNone;
       
  3625 	}
       
  3626 
       
  3627 TInt CSatDSatTsy::NotifySetUpCallPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3628 	{
       
  3629 	if(!iNotifySetUpCallPCmd++)
       
  3630 		{
       
  3631 		LOGTEXT(_L8("CSatDSatTsy::NotifySetUpCallPCmd called"));
       
  3632 		RSat::TSetUpCallV1Pckg* aPCmdPckg = (RSat::TSetUpCallV1Pckg*)aPCmd;
       
  3633 		RSat::TSetUpCallV1& setUpCallV1 = (*aPCmdPckg)();
       
  3634 
       
  3635 		setUpCallV1.SetPCmdNumber(DSATTSY_SET_UP_CALL_NUMBER);
       
  3636 		
       
  3637 		setUpCallV1.iType								=DSATTSY_SET_UP_CALL_TYPE;
       
  3638 		setUpCallV1.iAlphaIdConfirmationPhase.iAlphaId	=DSATTSY_ALPHA_ID1;
       
  3639 		setUpCallV1.iAlphaIdConfirmationPhase.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
       
  3640 		setUpCallV1.iIconIdConfirmationPhase.iIdentifier=DSATTSY_ICON_ID1;
       
  3641 		setUpCallV1.iIconIdConfirmationPhase.iQualifier	=DSATTSY_ICON_QUALIFIER1;
       
  3642 		setUpCallV1.iAddress.iTypeOfNumber				=DSATTSY_TON;
       
  3643 		setUpCallV1.iAddress.iNumberPlan				=DSATTSY_NPI;
       
  3644 		setUpCallV1.iAddress.iTelNumber					=DSATTSY_TEL_NUMBER;
       
  3645 		setUpCallV1.iCapabilityConfigParams				=DSATTSY_CCP1;
       
  3646 		setUpCallV1.iSubAddress							=DSATTSY_SUBADDRESS;
       
  3647 		setUpCallV1.iDuration.iTimeUnit					=DSATTSY_TIME_UNIT;
       
  3648 		setUpCallV1.iDuration.iNumOfUnits				=DSATTSY_NUM_OF_UNITS;
       
  3649 		setUpCallV1.iAlphaIdCallSetUpPhase.iAlphaId		=DSATTSY_ALPHA_ID2;		
       
  3650 		setUpCallV1.iAlphaIdCallSetUpPhase.iStatus		=DSATTSY_ALPHA_ID2_STATUS;		
       
  3651 		setUpCallV1.iIconIdCallSetUpPhase.iIdentifier	=DSATTSY_ICON_ID2;
       
  3652 		setUpCallV1.iIconIdCallSetUpPhase.iQualifier	=DSATTSY_ICON_QUALIFIER2;
       
  3653 
       
  3654 		if ((setUpCallV1.ExtensionId() == RSat::KSatV5)  ||
       
  3655 		   (setUpCallV1.ExtensionId() == RSat::KSatV6))
       
  3656 			{
       
  3657 			RSat::TSetUpCallV5Pckg* aV5PCmdPckg = (RSat::TSetUpCallV5Pckg*)aPCmd;
       
  3658 			RSat::TSetUpCallV5&   setUpCallV5 = (*aV5PCmdPckg)();
       
  3659 			
       
  3660 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3661 			
       
  3662 			setUpCallV5.iTextAttributeConfirmationPhase.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3663 			setUpCallV5.iTextAttributeConfirmationPhase.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3664 			setUpCallV5.iTextAttributeCallSetUpPhase.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3665 			setUpCallV5.iTextAttributeCallSetUpPhase.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3666 			}
       
  3667 
       
  3668 		if (setUpCallV1.ExtensionId() == RSat::KSatV6)
       
  3669 			{
       
  3670 			RSat::TSetUpCallV6Pckg* setUpCallV6PCmdPckg = (RSat::TSetUpCallV6Pckg*)aPCmd;
       
  3671 			RSat::TSetUpCallV6&   setUpCallV6 = (*setUpCallV6PCmdPckg)();
       
  3672 			
       
  3673 			setUpCallV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
       
  3674 			}
       
  3675 			
       
  3676 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3677 		}
       
  3678 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3679 	return KErrNone;	
       
  3680 	}
       
  3681 
       
  3682 TInt CSatDSatTsy::NotifySetUpCallPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3683 	{
       
  3684 	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpCallPCmdCancel called"));
       
  3685 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3686 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3687 	else
       
  3688 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3689 	iNotifySetUpCallPCmd=0;
       
  3690 	return KErrNone;
       
  3691 	}
       
  3692 
       
  3693 TInt CSatDSatTsy::NotifyRefreshPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3694 	{
       
  3695 	if(!iNotifyRefreshPCmd++)
       
  3696 		{
       
  3697 		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshPCmd called"));
       
  3698 		RSat::TRefreshV1Pckg* aPCmdPckg = (RSat::TRefreshV1Pckg*)aPCmd;
       
  3699 		RSat::TRefreshV1& refreshV1 = (*aPCmdPckg)();
       
  3700 		
       
  3701 		refreshV1.SetPCmdNumber(DSATTSY_REFRESH_NUMBER);
       
  3702 
       
  3703 		refreshV1.iType	= DSATTSY_REFRESH_TYPE;
       
  3704  		refreshV1.iFileList.Append(DSATTSY_REFRESH_ADN_EF);
       
  3705  		refreshV1.iFileList.Append(DSATTSY_REFRESH_FDN_EF);
       
  3706 
       
  3707 
       
  3708 		if (refreshV1.ExtensionId()==RSat::KSatV2)
       
  3709 			{
       
  3710 			RSat::TRefreshV2Pckg* aV2PCmdPckg = (RSat::TRefreshV2Pckg*)aPCmd;
       
  3711 			RSat::TRefreshV2& refreshV2 = (*aV2PCmdPckg)();
       
  3712 			
       
  3713 			refreshV2.iAid=DSATTSY_AID;
       
  3714 			}
       
  3715 
       
  3716 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3717 		}
       
  3718 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3719 	return KErrNone;	
       
  3720 	}
       
  3721 
       
  3722 TInt CSatDSatTsy::NotifyRefreshPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3723 	{
       
  3724 	LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshPCmdCancel called"));
       
  3725 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3726 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3727 	else
       
  3728 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3729 	iNotifyRefreshPCmd=0;
       
  3730 	return KErrNone;
       
  3731 	}
       
  3732 
       
  3733 TInt CSatDSatTsy::NotifySetUpEventListPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3734 	{
       
  3735 	if(!iNotifySetUpEventListPCmd++)
       
  3736 		{
       
  3737 		LOGTEXT(_L8("CSatDSatTsy::NotifySetUpEventListPCmd called"));
       
  3738 		RSat::TSetUpEventListV1Pckg* aPCmdPckg = (RSat::TSetUpEventListV1Pckg*)aPCmd;
       
  3739 		RSat::TSetUpEventListV1& setUpEventListV1 = (*aPCmdPckg)();
       
  3740 		
       
  3741 		setUpEventListV1.SetPCmdNumber(DSATTSY_SET_UP_EVENT_LIST_NUMBER);
       
  3742 
       
  3743 		setUpEventListV1.iType		=DSATTSY_SET_UP_EVENT_LIST_TYPE;
       
  3744 		setUpEventListV1.iEvents	=DSATTSY_EVENTS;
       
  3745 
       
  3746 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3747 		}
       
  3748 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3749 	return KErrNone;
       
  3750 	}
       
  3751 
       
  3752 TInt CSatDSatTsy::NotifySetUpEventListPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3753 	{
       
  3754 	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpEventListPCmdCancel called"));
       
  3755 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3756 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3757 	else
       
  3758 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3759 	iNotifySetUpEventListPCmd=0;
       
  3760 	return KErrNone;
       
  3761 	}
       
  3762 
       
  3763 TInt CSatDSatTsy::NotifySetUpIdleModeTextPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3764 	{
       
  3765 	if(!iNotifySetUpIdleModeTextPCmd++)
       
  3766 		{
       
  3767  		// First Request: set idle text mode to max length Unicode string
       
  3768  		if (iSetUpIdleModeTextCommandCount++ == 0)
       
  3769  			{		
       
  3770 			LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmd called"));
       
  3771 			RSat::TSetUpIdleModeTextV1Pckg* aPCmdPckg = (RSat::TSetUpIdleModeTextV1Pckg*)aPCmd;
       
  3772 			RSat::TSetUpIdleModeTextV1& setUpIdleModeTextV1 = (*aPCmdPckg)();
       
  3773 			
       
  3774 			setUpIdleModeTextV1.SetPCmdNumber(DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
       
  3775 
       
  3776 			setUpIdleModeTextV1.iType				=DSATTSY_IDLE_MODE_TXT_TYPE;
       
  3777 			setUpIdleModeTextV1.iText				=DSATTSY_IDLE_MODE_TEXT;
       
  3778 			setUpIdleModeTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
       
  3779 			setUpIdleModeTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
       
  3780 
       
  3781 			setUpIdleModeTextV1.iCodingScheme		=DSATTSY_TEXT_ENCODING_SCHEME;
       
  3782 			
       
  3783 			if ((setUpIdleModeTextV1.ExtensionId() == RSat::KSatV5)||
       
  3784  			   (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6))
       
  3785 				{
       
  3786 				RSat::TSetUpIdleModeTextV5Pckg* aV5PCmdPckg = (RSat::TSetUpIdleModeTextV5Pckg*)aPCmd;
       
  3787 				RSat::TSetUpIdleModeTextV5& setUpIdleModeTextV5 = (*aV5PCmdPckg)();
       
  3788 				
       
  3789 				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3790 				
       
  3791 				setUpIdleModeTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3792 				setUpIdleModeTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3793 				}			
       
  3794 
       
  3795 			if (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6)
       
  3796 				{
       
  3797 				RSat::TSetUpIdleModeTextV6Pckg* setUpIdleModeTextV6PCmdPckg = (RSat::TSetUpIdleModeTextV6Pckg*)aPCmd;
       
  3798 				RSat::TSetUpIdleModeTextV6& setUpIdleModeTextV6 = (*setUpIdleModeTextV6PCmdPckg)();
       
  3799 				
       
  3800 				setUpIdleModeTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  3801 				}
       
  3802 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  3803 			}
       
  3804 		else // second request: set idle text mode to max length 8-bit string
       
  3805 			{
       
  3806 			// reset command count
       
  3807 			iSetUpIdleModeTextCommandCount = 0;
       
  3808 			
       
  3809 			LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmd called"));
       
  3810 			RSat::TSetUpIdleModeTextV1Pckg* aPCmdPckg = (RSat::TSetUpIdleModeTextV1Pckg*)aPCmd;
       
  3811 			RSat::TSetUpIdleModeTextV1& setUpIdleModeTextV1 = (*aPCmdPckg)();
       
  3812 			
       
  3813 			setUpIdleModeTextV1.SetPCmdNumber(DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
       
  3814    
       
  3815 			setUpIdleModeTextV1.iType				=DSATTSY_IDLE_MODE_TXT_TYPE;
       
  3816 			CnvUtfConverter::ConvertToUnicodeFromUtf8(setUpIdleModeTextV1.iText,DSATTSY_IDLE_MODE_TEXT_8BIT);
       
  3817  			setUpIdleModeTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
       
  3818  			setUpIdleModeTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
       
  3819  			
       
  3820  			setUpIdleModeTextV1.iCodingScheme		=DSATTSY_TEXT_ENCODING_SCHEME_8;
       
  3821  			
       
  3822  			if ((setUpIdleModeTextV1.ExtensionId() == RSat::KSatV5)  ||
       
  3823  			   (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6))
       
  3824 				{
       
  3825 				RSat::TSetUpIdleModeTextV5Pckg* aV5PCmdPckg = (RSat::TSetUpIdleModeTextV5Pckg*)aPCmd;
       
  3826 				RSat::TSetUpIdleModeTextV5& setUpIdleModeTextV5 = (*aV5PCmdPckg)();
       
  3827 				
       
  3828 				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3829 				
       
  3830 				setUpIdleModeTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3831 				setUpIdleModeTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3832 				}
       
  3833 			
       
  3834 			if (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6)
       
  3835 				{
       
  3836 				RSat::TSetUpIdleModeTextV6Pckg* setUpIdleModeTextV6PCmdPckg = (RSat::TSetUpIdleModeTextV6Pckg*)aPCmd;
       
  3837 				RSat::TSetUpIdleModeTextV6& setUpIdleModeTextV6 = (*setUpIdleModeTextV6PCmdPckg)();
       
  3838 				
       
  3839 				setUpIdleModeTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  3840 				}
       
  3841 					
       
  3842  			ReqCompleted(aTsyReqHandle,KErrNone);		
       
  3843 			}
       
  3844 		}
       
  3845 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3846 	return KErrNone;
       
  3847 	}
       
  3848 
       
  3849 TInt CSatDSatTsy::NotifySetUpIdleModeTextPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3850 	{
       
  3851 	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmdCancel called"));
       
  3852 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3853 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3854 	else
       
  3855 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3856 	iNotifySetUpIdleModeTextPCmd=0;
       
  3857 	return KErrNone;
       
  3858 	}
       
  3859 
       
  3860 TInt CSatDSatTsy::NotifySendDtmfPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3861 	{
       
  3862 	if(!iNotifySendDtmfPCmd++)
       
  3863 		{
       
  3864 		LOGTEXT(_L8("CSatDSatTsy::NotifySendDtmfPCmd called"));
       
  3865 		RSat::TSendDtmfV1Pckg* aPCmdPckg = (RSat::TSendDtmfV1Pckg*)aPCmd;
       
  3866 		RSat::TSendDtmfV1& sendDtmfV1 = (*aPCmdPckg)();
       
  3867 		
       
  3868 		sendDtmfV1.SetPCmdNumber(DSATTSY_SEND_DTMF_NUMBER);
       
  3869 
       
  3870 		sendDtmfV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
       
  3871 		sendDtmfV1.iAlphaId.iStatus		=DSATTSY_ALPHA_ID1_STATUS;
       
  3872 		sendDtmfV1.iDtmfString			=DSATTSY_DTMF_STRING;
       
  3873 		sendDtmfV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
       
  3874 		sendDtmfV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;	
       
  3875 
       
  3876 		if ((sendDtmfV1.ExtensionId() == RSat::KSatV5) ||
       
  3877 		    (sendDtmfV1.ExtensionId() == RSat::KSatV6))	
       
  3878 			{
       
  3879 			RSat::TSendDtmfV5Pckg* aV5PCmdPckg = (RSat::TSendDtmfV5Pckg*)aPCmd;
       
  3880 			RSat::TSendDtmfV5&   sendDtmfV5 = (*aV5PCmdPckg)();
       
  3881 			
       
  3882 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  3883 			
       
  3884 			sendDtmfV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  3885 			sendDtmfV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  3886 			}
       
  3887 
       
  3888 		if (sendDtmfV1.ExtensionId() == RSat::KSatV6)
       
  3889 			{
       
  3890 			RSat::TSendDtmfV6Pckg* sendDtmfV6PCmdPckg = (RSat::TSendDtmfV6Pckg*)aPCmd;
       
  3891 			RSat::TSendDtmfV6&   sendDtmfV6 = (*sendDtmfV6PCmdPckg)();
       
  3892 			
       
  3893 			sendDtmfV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  3894 			}
       
  3895 			
       
  3896 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3897 		}
       
  3898 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3899 	return KErrNone;
       
  3900 	}
       
  3901 
       
  3902 TInt CSatDSatTsy::NotifySendDtmfPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3903 	{
       
  3904 	LOGTEXT(_L8("CSatDSatTsy::NotifySendDtmfPCmdCancel called"));
       
  3905 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3906 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3907 	else
       
  3908 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3909 	iNotifySendDtmfPCmd=0;
       
  3910 	return KErrNone;
       
  3911 	}
       
  3912 
       
  3913 //
       
  3914 // New Typhoon and Jetstream API
       
  3915 //
       
  3916 
       
  3917 TInt CSatDSatTsy::UsatClientReadyIndication(const TTsyReqHandle aTsyReqHandle)
       
  3918 	{
       
  3919 	LOGTEXT(_L8("CSatDSatTsy::UsatClientReadyIndication called"));
       
  3920 	ReqCompleted(aTsyReqHandle,KErrNone);
       
  3921 	return KErrNone;
       
  3922 	}
       
  3923 
       
  3924 TInt CSatDSatTsy::NotifyPerformCardApduPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3925 	{
       
  3926 	if(!iNotifyPerformCardApduPCmd++)
       
  3927 		{
       
  3928 		LOGTEXT(_L8("CSatDSatTsy::NotifyPerformCardApduPCmd called"));
       
  3929 		RSat::TPerformCardApduV2Pckg* aV2PCmdPckg = (RSat::TPerformCardApduV2Pckg*)aPCmd;
       
  3930 		RSat::TPerformCardApduV2& performCardApduV2 = (*aV2PCmdPckg)();
       
  3931 		
       
  3932 		performCardApduV2.SetPCmdNumber(DSATTSY_PERFORM_CARD_APDU_NUMBER);
       
  3933 
       
  3934 		performCardApduV2.iDestination=DSATTSY_CARD_READER_1;
       
  3935 		performCardApduV2.iCApdu.iCla=DSATTSY_CLA;
       
  3936 		performCardApduV2.iCApdu.iIns=DSATTSY_INS;
       
  3937 		performCardApduV2.iCApdu.iLc=DSATTSY_LC;
       
  3938 		performCardApduV2.iCApdu.iLe=DSATTSY_LE;
       
  3939 		performCardApduV2.iCApdu.iP1=DSATTSY_P1;
       
  3940 		performCardApduV2.iCApdu.iP2=DSATTSY_P2;
       
  3941 		performCardApduV2.iCApdu.iData=DSATTSY_CAPDU;
       
  3942 
       
  3943 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3944 		}
       
  3945 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3946 	return KErrNone;
       
  3947 	}
       
  3948 
       
  3949 TInt CSatDSatTsy::NotifyPerformCardApduPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3950 	{
       
  3951 	LOGTEXT(_L8("CSatDSatTsy::NotifyPerformCardApduPCmdCancel called"));
       
  3952 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3953 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3954 	else
       
  3955 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3956 	iNotifyPerformCardApduPCmd=0;
       
  3957 	return KErrNone;
       
  3958 	}
       
  3959 
       
  3960 TInt CSatDSatTsy::NotifyPowerOffCardPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3961 	{
       
  3962 	if(!iNotifyPowerOffCardPCmd++)
       
  3963 		{
       
  3964 		LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOffCardPCmd called"));
       
  3965 		RSat::TPowerOffCardV2Pckg* aV2PCmdPckg = (RSat::TPowerOffCardV2Pckg*)aPCmd;
       
  3966 		RSat::TPowerOffCardV2& powerOffCardV2 = (*aV2PCmdPckg)();
       
  3967 		
       
  3968 		powerOffCardV2.SetPCmdNumber(DSATTSY_POWER_OFF_CARD_NUMBER);
       
  3969 		powerOffCardV2.iDestination=DSATTSY_CARD_READER_1;
       
  3970 
       
  3971 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  3972 		}
       
  3973 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  3974 	return KErrNone;
       
  3975 	}
       
  3976 
       
  3977 TInt CSatDSatTsy::NotifyPowerOffCardPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  3978 	{
       
  3979 	LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOffCardPCmdCancel called"));
       
  3980 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  3981 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  3982 	else
       
  3983 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  3984 	iNotifyPowerOffCardPCmd=0;
       
  3985 	return KErrNone;
       
  3986 	}
       
  3987 
       
  3988 TInt CSatDSatTsy::NotifyPowerOnCardPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  3989 	{
       
  3990 	if(!iNotifyPowerOnCardPCmd++)
       
  3991 		{
       
  3992 		LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOnCardPCmd called"));
       
  3993 		RSat::TPowerOnCardV2Pckg* aV2PCmdPckg = (RSat::TPowerOnCardV2Pckg*)aPCmd;
       
  3994 		RSat::TPowerOnCardV2& powerOnCardV2 = (*aV2PCmdPckg)();
       
  3995 		
       
  3996 		powerOnCardV2.SetPCmdNumber(DSATTSY_POWER_ON_CARD_NUMBER);
       
  3997 		powerOnCardV2.iDestination=DSATTSY_CARD_READER_1;
       
  3998 		
       
  3999 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4000 		}
       
  4001 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4002 	return KErrNone;
       
  4003 	}
       
  4004 
       
  4005 TInt CSatDSatTsy::NotifyPowerOnCardPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4006 	{
       
  4007 	LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOnCardPCmdCancel called"));
       
  4008 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4009 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4010 	else
       
  4011 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4012 	iNotifyPowerOnCardPCmd=0;
       
  4013 	return KErrNone;
       
  4014 	}
       
  4015 
       
  4016 TInt CSatDSatTsy::NotifyGetReaderStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4017 	{
       
  4018 	if(!iNotifyGetReaderStatusPCmd++)
       
  4019 		{
       
  4020 		LOGTEXT(_L8("CSatDSatTsy::NotifyGetReaderStatusPCmd called"));
       
  4021 		RSat::TGetReaderStatusV2Pckg* aV2PCmdPckg = (RSat::TGetReaderStatusV2Pckg*)aPCmd;
       
  4022 		RSat::TGetReaderStatusV2& getReaderStatusV2 = (*aV2PCmdPckg)();
       
  4023 		
       
  4024 		getReaderStatusV2.SetPCmdNumber(DSATTSY_GET_READER_STATUS_NUMBER);
       
  4025 		getReaderStatusV2.iDestination=DSATTSY_CARD_READER_1;
       
  4026 		getReaderStatusV2.iMode=DSATTSY_GET_READER_STATUS_MODE;
       
  4027 		
       
  4028 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4029 		}
       
  4030 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4031 	return KErrNone;
       
  4032 	}
       
  4033 
       
  4034 TInt CSatDSatTsy::NotifyGetReaderStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4035 	{
       
  4036 	LOGTEXT(_L8("CSatDSatTsy::NotifyGetReaderStatusPCmdCancel called"));
       
  4037 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4038 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4039 	else
       
  4040 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4041 	iNotifyGetReaderStatusPCmd=0;
       
  4042 	return KErrNone;
       
  4043 	}
       
  4044 
       
  4045 TInt CSatDSatTsy::NotifyRunAtCommandPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4046 	{
       
  4047 	if(!iNotifyRunAtCommandPCmd++)
       
  4048 		{
       
  4049 		LOGTEXT(_L8("CSatDSatTsy::NotifyRunAtCommandPCmd called"));
       
  4050 		RSat::TRunAtCommandV2Pckg* aV2PCmdPckg = (RSat::TRunAtCommandV2Pckg*)aPCmd;
       
  4051 		RSat::TRunAtCommandV2& runAtCmdV2 = (*aV2PCmdPckg)();
       
  4052 		
       
  4053 		runAtCmdV2.SetPCmdNumber(DSATTSY_RUN_AT_COMMAND_NUMBER);
       
  4054 		runAtCmdV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
       
  4055 		runAtCmdV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
       
  4056 		runAtCmdV2.iAtCommand=DSATTSY_AT_COMMAND;
       
  4057 		runAtCmdV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  4058 		runAtCmdV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
       
  4059 		
       
  4060 		if ((runAtCmdV2.ExtensionId() == RSat::KSatV5) ||
       
  4061 		    (runAtCmdV2.ExtensionId() == RSat::KSatV6))	
       
  4062 			{
       
  4063 			RSat::TRunAtCommandV5Pckg* aV5PCmdPckg = (RSat::TRunAtCommandV5Pckg*)aPCmd;
       
  4064 			RSat::TRunAtCommandV5&   runAtCmdV5 = (*aV5PCmdPckg)();
       
  4065 			
       
  4066 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4067 			
       
  4068 			runAtCmdV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4069 			runAtCmdV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4070 			}
       
  4071 
       
  4072 		if (runAtCmdV2.ExtensionId() == RSat::KSatV6)
       
  4073 			{
       
  4074 			RSat::TRunAtCommandV6Pckg* runAtCmdV6PCmdPckg = (RSat::TRunAtCommandV6Pckg*)aPCmd;
       
  4075 			RSat::TRunAtCommandV6&   runAtCmdV6 = (*runAtCmdV6PCmdPckg)();
       
  4076 			
       
  4077 			runAtCmdV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  4078 			}
       
  4079 			
       
  4080 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4081 		}
       
  4082 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4083 	return KErrNone;
       
  4084 	}
       
  4085 
       
  4086 TInt CSatDSatTsy::NotifyRunAtCommandPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4087 	{
       
  4088 	LOGTEXT(_L8("CSatDSatTsy::NotifyRunAtCommandPCmdCancel called"));
       
  4089 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4090 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4091 	else
       
  4092 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4093 	iNotifyRunAtCommandPCmd=0;
       
  4094 	return KErrNone;
       
  4095 	}
       
  4096 
       
  4097 TInt CSatDSatTsy::NotifyLanguageNotificationPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4098 	{
       
  4099 	if(!iNotifyLanguageNotificationPCmd++)
       
  4100 		{
       
  4101 		LOGTEXT(_L8("CSatDSatTsy::NotifyLanguageNotificationPCmd called"));
       
  4102 		RSat::TLanguageNotificationV2Pckg* aV2PCmdPckg = (RSat::TLanguageNotificationV2Pckg*)aPCmd;
       
  4103 		RSat::TLanguageNotificationV2& languageNotificationV2 = (*aV2PCmdPckg)();
       
  4104 		
       
  4105 		languageNotificationV2.SetPCmdNumber(DSATTSY_LANGUAGE_NOTIFICATION_NUMBER);
       
  4106 		languageNotificationV2.iNotificationType=DSATTSY_SPECIFIC_LANGUAGE;
       
  4107 		languageNotificationV2.iLanguage=DSATTSY_FRENCH;
       
  4108 
       
  4109 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4110 		}
       
  4111 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4112 	return KErrNone;
       
  4113 	}
       
  4114 
       
  4115 TInt CSatDSatTsy::NotifyLanguageNotificationPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4116 	{
       
  4117 	LOGTEXT(_L8("CSatDSatTsy::NotifyLanguageNotificationPCmdCancel called"));
       
  4118 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4119 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4120 	else
       
  4121 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4122 	iNotifyLanguageNotificationPCmd=0;
       
  4123 	return KErrNone;
       
  4124 	}
       
  4125 
       
  4126 TInt CSatDSatTsy::GetProvisioningRefFile(const TTsyReqHandle aTsyReqHandle, const RSat::TProvisioningFileRef* aFileRef, TDes8* aFile)
       
  4127 /**
       
  4128 * GetProviosioningRefFile is called to ask the ICC to return a file name 
       
  4129 * that corresponds to a given file reference.
       
  4130 *
       
  4131 * This test code can only return 2 files - it distinguishes between them based on
       
  4132 * the length of the file reference passed. Any 1 byte ref will return file1, any
       
  4133 * 128 byte ref will return file2. Any other length will return "not found".
       
  4134 */
       
  4135 	{
       
  4136 	if(!iGetProvisioningRefFile++)
       
  4137 		{
       
  4138 		LOGTEXT(_L8("CSatDSatTsy::GetProvisioningRefFile called"));
       
  4139 
       
  4140 		// We only understand 2 references (at the moment) - use the simple minded approach and select by length
       
  4141 
       
  4142 		TInt len = aFileRef->Length();
       
  4143 
       
  4144 		switch (len)
       
  4145 			{
       
  4146 		case 1:
       
  4147 			*aFile = DSATTSY_FILE1;
       
  4148 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4149 			break;
       
  4150 
       
  4151 		case 128:
       
  4152 			*aFile = DSATTSY_FILE2;
       
  4153 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4154 			break;
       
  4155 
       
  4156 		default:
       
  4157 			ReqCompleted(aTsyReqHandle,KErrNotFound);
       
  4158 			break;
       
  4159 			}
       
  4160 		}
       
  4161 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4162 	return KErrNone;
       
  4163 	}
       
  4164 
       
  4165 TInt CSatDSatTsy::GetProvisioningRefFileCancel(const TTsyReqHandle aTsyReqHandle)
       
  4166 	{
       
  4167 	LOGTEXT(_L8("CSatDSatTsy::GetProvisioningRefFileCancel called"));
       
  4168 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4169 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4170 	else
       
  4171 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4172 
       
  4173 	iGetProvisioningRefFile = 0;
       
  4174 
       
  4175 	return KErrNone;
       
  4176 	}
       
  4177 
       
  4178 TInt CSatDSatTsy::NotifyLaunchBrowserPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4179 	{
       
  4180 	if(!iNotifyLaunchBrowserPCmd++)
       
  4181 		{
       
  4182 		LOGTEXT(_L8("CSatDSatTsy::NotifyLaunchBrowserPCmd called"));
       
  4183 		RSat::TLaunchBrowserV2Pckg* aV2PCmdPckg = (RSat::TLaunchBrowserV2Pckg*)aPCmd;
       
  4184 		RSat::TLaunchBrowserV2& launchBrowserV2 = (*aV2PCmdPckg)();
       
  4185 		
       
  4186 		launchBrowserV2.SetPCmdNumber(DSATTSY_LAUNCH_BROWSER_NUMBER);
       
  4187 
       
  4188 		launchBrowserV2.iBrowserSel			= DSATTSY_BROWSER_SELECTION_MODE;
       
  4189 		launchBrowserV2.iBrowserId			= DSATTSY_BROWSER_ID;
       
  4190 		launchBrowserV2.iUrl				= DSATTSY_URL;
       
  4191 		launchBrowserV2.iBearerList			= DSATTSY_BEARER_LIST;
       
  4192 		launchBrowserV2.iText				= DSATTSY_PROXY_NAME;
       
  4193 		launchBrowserV2.iAlphaId.iStatus	= DSATTSY_ALPHA_ID1_STATUS;
       
  4194 		launchBrowserV2.iAlphaId.iAlphaId	= DSATTSY_ALPHA_ID1;
       
  4195 		launchBrowserV2.iIconId.iIdentifier	= DSATTSY_ICON_ID1;
       
  4196 		launchBrowserV2.iIconId.iQualifier	= DSATTSY_ICON_QUALIFIER1;
       
  4197 
       
  4198 		if ((launchBrowserV2.ExtensionId() == RSat::KSatV5) || (launchBrowserV2.ExtensionId() == RSat::KSatV6))
       
  4199 			{
       
  4200 			RSat::TLaunchBrowserV5Pckg* aV5PCmdPckg = (RSat::TLaunchBrowserV5Pckg*)aPCmd;
       
  4201 			RSat::TLaunchBrowserV5&   launchBrowserV5 = (*aV5PCmdPckg)();
       
  4202 			
       
  4203 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4204 			
       
  4205 			launchBrowserV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4206 			launchBrowserV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4207 			}
       
  4208 
       
  4209 		if (launchBrowserV2.ExtensionId() == RSat::KSatV6)
       
  4210 			{
       
  4211 			RSat::TLaunchBrowserV6Pckg* launchBrowserV6PCmdPckg = (RSat::TLaunchBrowserV6Pckg*)aPCmd;
       
  4212 			RSat::TLaunchBrowserV6&   launchBrowserV6 = (*launchBrowserV6PCmdPckg)();
       
  4213 			
       
  4214 			launchBrowserV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  4215 			}
       
  4216 			
       
  4217 		RSat::TProvisioningFileRef	file;
       
  4218 
       
  4219 		switch(iNotifyLaunchBrowserCount++)
       
  4220 			{
       
  4221 		case 0:	// Return 1 file ref of 1 byte length
       
  4222 			launchBrowserV2.ResetFileRef();
       
  4223 			file = DSATTSY_FILE_REF_DATA_1;
       
  4224 			launchBrowserV2.AddFileRef( file );
       
  4225 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4226 			break;
       
  4227 
       
  4228 		case 1:	// Return 1 file ref of 128 byte length
       
  4229 			launchBrowserV2.ResetFileRef();
       
  4230 			file = DSATTSY_FILE_REF_DATA_128;
       
  4231 			launchBrowserV2.AddFileRef( file );
       
  4232 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4233 			break;
       
  4234 
       
  4235 		case 2:	// Return 2 files refs of 1 byte length (each)
       
  4236 			launchBrowserV2.ResetFileRef();
       
  4237 			file = DSATTSY_FILE_REF_DATA_1;
       
  4238 			launchBrowserV2.AddFileRef( file );
       
  4239 			launchBrowserV2.AddFileRef( file );
       
  4240 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4241 			break;
       
  4242 
       
  4243 		case 3:	// Partial failure, try to add 2 file refs of 128 bytes each,
       
  4244 				// Second add should fail with KErrOverflow as combined length
       
  4245 				// is bigger than buffer 
       
  4246 				// - actually returns 1 file ref of 128 bytes unless unexpected result from add
       
  4247 			{
       
  4248 				launchBrowserV2.ResetFileRef();
       
  4249 				file = DSATTSY_FILE_REF_DATA_128;
       
  4250 				launchBrowserV2.AddFileRef( file );
       
  4251 				TInt status = launchBrowserV2.AddFileRef( file );	// Expect to fail on this one
       
  4252 				if (status != KErrOverflow)
       
  4253 					ReqCompleted(aTsyReqHandle, status);
       
  4254 				else
       
  4255 					ReqCompleted(aTsyReqHandle,KErrNone);
       
  4256 			}
       
  4257 			break;
       
  4258 
       
  4259 		case 4:	 // Fall through to default case from case 4
       
  4260 		default: // Return 2 file refs, 1st=128 bytes long, 2nd=1 byte long
       
  4261 			iNotifyLaunchBrowserCount = 0;		// Reset selection count - next time through will use case 0
       
  4262 
       
  4263 			launchBrowserV2.ResetFileRef();
       
  4264 			file = DSATTSY_FILE_REF_DATA_128;
       
  4265 			launchBrowserV2.AddFileRef( file );
       
  4266 			file = DSATTSY_FILE_REF_DATA_1;
       
  4267 			launchBrowserV2.AddFileRef( file );
       
  4268 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4269 			break;
       
  4270 			}
       
  4271 		}
       
  4272 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4273 	return KErrNone;
       
  4274 	}
       
  4275 
       
  4276 TInt CSatDSatTsy::NotifyLaunchBrowserPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4277 	{
       
  4278 	LOGTEXT(_L8("CSatDSatTsy::NotifyLaunchBrowserPCmdCancel called"));
       
  4279 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4280 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4281 	else
       
  4282 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4283 	iNotifyLaunchBrowserPCmd=0;
       
  4284 	return KErrNone;
       
  4285 	}
       
  4286 
       
  4287 TInt CSatDSatTsy::NotifyOpenChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4288 /**
       
  4289 * If this function is called with PCmd type of RSat::EAnyBearer then the code will
       
  4290 * return a type of RSat::ECsBearer. Subsequent calls will return the sequence
       
  4291 * RSat::EGprsBearer, RSat::ELocalLinksBearer, RSat::EPCmdTypeNotSet. The
       
  4292 * sequence then restarts with RSat::ECsBearer.
       
  4293 */
       
  4294 	{
       
  4295 	if(!iNotifyOpenChannelPCmd++)
       
  4296 		{
       
  4297 		LOGTEXT(_L8("CSatDSatTsy::NotifyOpenChannelPCmd called"));
       
  4298 		RSat::TOpenChannelBaseV2Pckg* aV2PCmdPckg = (RSat::TOpenChannelBaseV2Pckg*)aPCmd;
       
  4299 		RSat::TOpenChannelBaseV2& openChannelBaseV2 = (*aV2PCmdPckg)();
       
  4300 		
       
  4301 		openChannelBaseV2.SetPCmdNumber(DSATTSY_OPEN_CHANNEL_NUMBER);
       
  4302 
       
  4303 		openChannelBaseV2.iLinkEst=DSATTSY_ON_DEMAND_ESTABLISHMENT;
       
  4304 		openChannelBaseV2.iReconnectionMode=DSATTSY_AUTO_RECONNECTION;
       
  4305 		openChannelBaseV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
       
  4306 		openChannelBaseV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
       
  4307 		openChannelBaseV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  4308 		openChannelBaseV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
       
  4309 		openChannelBaseV2.iBearer.iType=DSATTSY_CSD_BEARER_TYPE;
       
  4310 		openChannelBaseV2.iBearer.iParams=DSATTSY_BEARER_PARAMS;
       
  4311 		openChannelBaseV2.iBufferSize=DSATTSY_BUFFER_SIZE;
       
  4312 		openChannelBaseV2.iSimMeInterface.iPrtNumber=DSATTSY_PORT_1;
       
  4313 		openChannelBaseV2.iSimMeInterface.iTransportProto=DSATTSY_TCP_PROTO;
       
  4314 		openChannelBaseV2.iDestinationAddress.iType=DSATTSY_IPV4_TYPE;
       
  4315 		openChannelBaseV2.iDestinationAddress.iAddress=DSATTSY_ADDRESS;
       
  4316 
       
  4317 		switch (openChannelBaseV2.iPCmdType)
       
  4318 			{
       
  4319 		case RSat::EPCmdTypeNotSet:
       
  4320 			ReqCompleted(aTsyReqHandle,KErrArgument);
       
  4321 			break;
       
  4322 		case RSat::ECsBearer:
       
  4323 			{
       
  4324 			RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
       
  4325 			RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
       
  4326 
       
  4327 			openCsChannelV2.iAddress.iTypeOfNumber=DSATTSY_TON;
       
  4328 			openCsChannelV2.iAddress.iNumberPlan=DSATTSY_NPI;
       
  4329 			openCsChannelV2.iAddress.iTelNumber=DSATTSY_TEL_NUMBER;
       
  4330 			openCsChannelV2.iSubAddress=DSATTSY_SUBADDRESS;
       
  4331 			openCsChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
       
  4332 			openCsChannelV2.iDuration1.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
       
  4333 			openCsChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
       
  4334 			openCsChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
       
  4335 			openCsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
       
  4336 			openCsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
       
  4337 			openCsChannelV2.iUserLogin=DSATTSY_LOGIN;
       
  4338 			openCsChannelV2.iUserPassword=DSATTSY_PASSWORD;
       
  4339 
       
  4340 			if ((openCsChannelV2.ExtensionId() == RSat::KSatV5)
       
  4341 				|| (openCsChannelV2.ExtensionId() == RSat::KSatV6))
       
  4342 				{
       
  4343 				RSat::TOpenCsChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenCsChannelV5Pckg*)aPCmd;
       
  4344 				RSat::TOpenCsChannelV5&   openCsChannelV5 = (*aV5PCmdPckg)();
       
  4345 				
       
  4346 				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4347 				
       
  4348 				openCsChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4349 				openCsChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4350 				}
       
  4351 		
       
  4352 			if (openCsChannelV2.ExtensionId() == RSat::KSatV6)
       
  4353 				{
       
  4354 				RSat::TOpenCsChannelV6Pckg* csV6PCmdPckg = (RSat::TOpenCsChannelV6Pckg*)aPCmd;
       
  4355 				RSat::TOpenCsChannelV6&   openCsChannelV6 = (*csV6PCmdPckg)();
       
  4356 				
       
  4357 				openCsChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
       
  4358 				}
       
  4359 				
       
  4360 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4361 			break;
       
  4362 			}
       
  4363 		case RSat::EGprsBearer:
       
  4364 			{
       
  4365 			RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
       
  4366 			RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
       
  4367 			
       
  4368 			openGprsChannelV2.iAccessName=DSATTSY_ACCESS_NAME;
       
  4369 			openGprsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
       
  4370 			openGprsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
       
  4371 			
       
  4372 			if ((openGprsChannelV2.ExtensionId() == RSat::KSatV4) 
       
  4373 			|| (openGprsChannelV2.ExtensionId() == RSat::KSatV5)
       
  4374 			|| (openGprsChannelV2.ExtensionId() == RSat::KSatV6))
       
  4375 				{
       
  4376 				RSat::TOpenGprsChannelV4Pckg* aV4GprsPCmdPckg = reinterpret_cast<RSat::TOpenGprsChannelV4Pckg*>(aPCmd);
       
  4377 				RSat::TOpenGprsChannelV4& openGprsChannelV4 = (*aV4GprsPCmdPckg)();
       
  4378 				
       
  4379 				openGprsChannelV4.iUserLogin=DSATTSY_LOGIN;
       
  4380 				openGprsChannelV4.iUserPassword=DSATTSY_PASSWORD;
       
  4381 				}
       
  4382 				
       
  4383 			if ((openGprsChannelV2.ExtensionId() == RSat::KSatV5)
       
  4384 			   || (openGprsChannelV2.ExtensionId() == RSat::KSatV6))
       
  4385 				{
       
  4386 				RSat::TOpenGprsChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenGprsChannelV5Pckg*)aPCmd;
       
  4387 				RSat::TOpenGprsChannelV5&   openGprsChannelV5 = (*aV5PCmdPckg)();
       
  4388 			
       
  4389 				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4390 			
       
  4391 				openGprsChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4392 				openGprsChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4393 				}
       
  4394 				
       
  4395 			if (openGprsChannelV2.ExtensionId() == RSat::KSatV6)
       
  4396 				{
       
  4397 				RSat::TOpenGprsChannelV6Pckg* gprsV6PCmdPckg = (RSat::TOpenGprsChannelV6Pckg*)aPCmd;
       
  4398 				RSat::TOpenGprsChannelV6&   openGprsChannelV6 = (*gprsV6PCmdPckg)();
       
  4399 			
       
  4400 				openGprsChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
       
  4401 				openGprsChannelV6.iBearer.iType=DSATTSYV6_GPRS_BEARER_TYPE1;
       
  4402 				}
       
  4403 				
       
  4404 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4405 			break;
       
  4406 			}
       
  4407 		case RSat::ELocalLinksBearer:
       
  4408 			{
       
  4409 			RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
       
  4410 			RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
       
  4411 
       
  4412 			openLocalChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
       
  4413 			openLocalChannelV2.iDuration1.iNumOfUnits=DSATTSY_TIME_UNIT;
       
  4414 			openLocalChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
       
  4415 			openLocalChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
       
  4416 			openLocalChannelV2.iRemoteAddress.iCoding=DSATTSY_CODING;
       
  4417 			openLocalChannelV2.iRemoteAddress.iAddress=DSATTSY_ADDRESS;
       
  4418 			openLocalChannelV2.iUserPassword=DSATTSY_PASSWORD;
       
  4419 
       
  4420 			if ((openLocalChannelV2.ExtensionId() == RSat::KSatV5)
       
  4421 				|| (openLocalChannelV2.ExtensionId() == RSat::KSatV6))
       
  4422 				{
       
  4423 				RSat::TOpenLocalLinksChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenLocalLinksChannelV5Pckg*)aPCmd;
       
  4424 				RSat::TOpenLocalLinksChannelV5&   openLocalChannelV5 = (*aV5PCmdPckg)();
       
  4425 			
       
  4426 				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4427 			
       
  4428 				openLocalChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4429 				openLocalChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);				
       
  4430 				}
       
  4431 
       
  4432 			if (openLocalChannelV2.ExtensionId() == RSat::KSatV6)
       
  4433 				{
       
  4434 				RSat::TOpenLocalLinksChannelV6Pckg* localV6PCmdPckg = (RSat::TOpenLocalLinksChannelV6Pckg*)aPCmd;
       
  4435 				RSat::TOpenLocalLinksChannelV6&   openLocalChannelV6 = (*localV6PCmdPckg)();
       
  4436 		
       
  4437 				openLocalChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;				
       
  4438 				}
       
  4439 				
       
  4440 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4441 			break;
       
  4442 			}
       
  4443 		case RSat::EUiccServerMode:
       
  4444 			{
       
  4445 			RSat::TOpenUiccServerModeChannelV7Pckg* aV7PCmdPckg = (RSat::TOpenUiccServerModeChannelV7Pckg*)aPCmd;
       
  4446 			RSat::TOpenUiccServerModeChannelV7& uiccServerModeChannelV7 = (*aV7PCmdPckg)();
       
  4447 			
       
  4448 			uiccServerModeChannelV7.iPCmdType = DSATTSY_UICC_SERVER_MODE;
       
  4449 			
       
  4450 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4451 			uiccServerModeChannelV7.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4452 			uiccServerModeChannelV7.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4453 
       
  4454 			uiccServerModeChannelV7.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  4455 			
       
  4456 			ReqCompleted(aTsyReqHandle,KErrNone);
       
  4457 			break;
       
  4458 			}
       
  4459 		case RSat::EAnyBearer:
       
  4460 			{
       
  4461 			// Monitor all kind of open channel PCmd
       
  4462 
       
  4463 			// Select type of channel PCmd that has 'opened' 
       
  4464 
       
  4465 			switch(iNotifyAnyBearerCount++)
       
  4466 				{
       
  4467 			case 0:
       
  4468 					{
       
  4469 					// This iteration set bearer type to "CS"
       
  4470 
       
  4471 					RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
       
  4472 					RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
       
  4473 
       
  4474 					openCsChannelV2.iPCmdType = RSat::ECsBearer;
       
  4475 
       
  4476 					ReqCompleted(aTsyReqHandle,KErrNone);
       
  4477 					break;
       
  4478 					}
       
  4479 			case 1:
       
  4480 					{
       
  4481 					// This iteration set bearer type to "GPRS"
       
  4482 
       
  4483 					RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
       
  4484 					RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
       
  4485 					
       
  4486 					openGprsChannelV2.iPCmdType	= RSat::EGprsBearer;
       
  4487 
       
  4488 					ReqCompleted(aTsyReqHandle,KErrNone);
       
  4489 					break;
       
  4490 					}
       
  4491 			case 2:
       
  4492 					{
       
  4493 					// This iteration set bearer type to "Local Link"
       
  4494 
       
  4495 					RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
       
  4496 					RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
       
  4497 
       
  4498 					openLocalChannelV2.iPCmdType = RSat::ELocalLinksBearer;
       
  4499 
       
  4500 					ReqCompleted(aTsyReqHandle, KErrNone);
       
  4501 
       
  4502 					break;
       
  4503 					}
       
  4504 			default:
       
  4505 					{
       
  4506 					// Next iteration bearer will be "CS"
       
  4507 
       
  4508 					iNotifyAnyBearerCount = 0;
       
  4509 
       
  4510 					// Current iteration will return a failure ("type not set") in base channel
       
  4511 
       
  4512 					openChannelBaseV2.iPCmdType = RSat::EPCmdTypeNotSet;
       
  4513 
       
  4514 					ReqCompleted(aTsyReqHandle,KErrNone);
       
  4515 					}
       
  4516 				}
       
  4517 			}
       
  4518 		default:
       
  4519 			ReqCompleted(aTsyReqHandle,KErrArgument);
       
  4520 			}
       
  4521 		}
       
  4522 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4523 	return KErrNone;
       
  4524 	}
       
  4525 	
       
  4526 TInt CSatDSatTsy::GetOpenChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4527 	{
       
  4528 	/**
       
  4529 	* This function should be called with PCmd type set to RSat::ECsBearer, 
       
  4530 	* RSat::EGprsBearer or RSat::ELocalLinksBearer.
       
  4531 	*/
       
  4532 	LOGTEXT(_L8("CSatDSatTsy::GetOpenChannelPCmd called"));
       
  4533 	RSat::TOpenChannelBaseV2Pckg* aV2PCmdPckg = (RSat::TOpenChannelBaseV2Pckg*)aPCmd;
       
  4534 	RSat::TOpenChannelBaseV2& openChannelV2 = (*aV2PCmdPckg)();
       
  4535 
       
  4536 	switch (openChannelV2.iPCmdType)
       
  4537 		{
       
  4538 	case RSat::EPCmdTypeNotSet:
       
  4539 		ReqCompleted(aTsyReqHandle,KErrArgument);
       
  4540 		break;
       
  4541 	case RSat::ECsBearer:
       
  4542 		{
       
  4543 		RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
       
  4544 		RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
       
  4545 
       
  4546 		openCsChannelV2.iAddress.iTypeOfNumber=DSATTSY_TON;
       
  4547 		openCsChannelV2.iAddress.iNumberPlan=DSATTSY_NPI;
       
  4548 		openCsChannelV2.iAddress.iTelNumber=DSATTSY_TEL_NUMBER;
       
  4549 		openCsChannelV2.iSubAddress=DSATTSY_SUBADDRESS;
       
  4550 		openCsChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
       
  4551 		openCsChannelV2.iDuration1.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
       
  4552 		openCsChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
       
  4553 		openCsChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
       
  4554 		openCsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
       
  4555 		openCsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
       
  4556 		openCsChannelV2.iUserLogin=DSATTSY_LOGIN;
       
  4557 		openCsChannelV2.iUserPassword=DSATTSY_PASSWORD;
       
  4558 
       
  4559 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4560 		break;
       
  4561 		}
       
  4562 	case RSat::EGprsBearer:
       
  4563 		{
       
  4564 		RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
       
  4565 		RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
       
  4566 		
       
  4567 		openGprsChannelV2.iAccessName=DSATTSY_ACCESS_NAME;
       
  4568 		openGprsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
       
  4569 		openGprsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
       
  4570 		
       
  4571 		if (openGprsChannelV2.ExtensionId() == RSat::KSatV4)
       
  4572 			{
       
  4573 			RSat::TOpenGprsChannelV4Pckg* aV4GprsPCmdPckg = reinterpret_cast<RSat::TOpenGprsChannelV4Pckg*>(aPCmd);
       
  4574 			RSat::TOpenGprsChannelV4& openGprsChannelV4 = (*aV4GprsPCmdPckg)();
       
  4575 			
       
  4576 			openGprsChannelV4.iUserLogin=DSATTSY_LOGIN;
       
  4577 			openGprsChannelV4.iUserPassword=DSATTSY_PASSWORD;
       
  4578 			}
       
  4579 
       
  4580 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4581 		break;
       
  4582 		}
       
  4583 	case RSat::ELocalLinksBearer:
       
  4584 		{
       
  4585 		RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
       
  4586 		RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
       
  4587 
       
  4588 		openLocalChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
       
  4589 		openLocalChannelV2.iDuration1.iNumOfUnits=DSATTSY_TIME_UNIT;
       
  4590 		openLocalChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
       
  4591 		openLocalChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
       
  4592 		openLocalChannelV2.iRemoteAddress.iCoding=DSATTSY_CODING;
       
  4593 		openLocalChannelV2.iRemoteAddress.iAddress=DSATTSY_ADDRESS;
       
  4594 		openLocalChannelV2.iUserPassword=DSATTSY_PASSWORD;
       
  4595 
       
  4596 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4597 		break;
       
  4598 		}
       
  4599 	case RSat::EAnyBearer:
       
  4600 		{
       
  4601 		ReqCompleted(aTsyReqHandle,KErrArgument);
       
  4602 		break;
       
  4603 		}
       
  4604 	default:
       
  4605 		ReqCompleted(aTsyReqHandle,KErrArgument);
       
  4606 		}
       
  4607 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4608 	return KErrNone;
       
  4609 	}
       
  4610 
       
  4611 TInt CSatDSatTsy::NotifyOpenChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4612 	{
       
  4613 	LOGTEXT(_L8("CSatDSatTsy::NotifyOpenChannelPCmdCancel called"));
       
  4614 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4615 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4616 	else
       
  4617 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4618 	iNotifyOpenChannelPCmd=0;
       
  4619 	return KErrNone;
       
  4620 	}
       
  4621 	
       
  4622 TInt CSatDSatTsy::GetOpenChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4623 	{
       
  4624 	LOGTEXT(_L8("CSatDSatTsy::GetOpenChannelPCmdCancel called"));
       
  4625 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4626 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4627 	else
       
  4628 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4629 	return KErrNone;
       
  4630 	}	
       
  4631 
       
  4632 TInt CSatDSatTsy::NotifyCloseChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4633 	{
       
  4634 	if(!iNotifyCloseChannelPCmd++)
       
  4635 		{
       
  4636 		LOGTEXT(_L8("CSatDSatTsy::NotifyCloseChannelPCmd called"));
       
  4637 		RSat::TCloseChannelV2Pckg* aV2PCmdPckg = (RSat::TCloseChannelV2Pckg*)aPCmd;
       
  4638 		RSat::TCloseChannelV2& closeChannelV2 = (*aV2PCmdPckg)();
       
  4639 		
       
  4640 		closeChannelV2.SetPCmdNumber(DSATTSY_CLOSE_CHANNEL_NUMBER);
       
  4641 
       
  4642 		closeChannelV2.iDestination=DSATTSY_CARD_READER_1;
       
  4643 		closeChannelV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
       
  4644 		closeChannelV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
       
  4645 		closeChannelV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  4646 		closeChannelV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
       
  4647 
       
  4648 		if ((closeChannelV2.ExtensionId() == RSat::KSatV5) ||
       
  4649 			(closeChannelV2.ExtensionId() == RSat::KSatV6))
       
  4650 			{
       
  4651 			RSat::TCloseChannelV5Pckg* aV5PCmdPckg = (RSat::TCloseChannelV5Pckg*)aPCmd;
       
  4652 			RSat::TCloseChannelV5&   closeChannelV5 = (*aV5PCmdPckg)();
       
  4653 			
       
  4654 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4655 			
       
  4656 			closeChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4657 			closeChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4658 			}
       
  4659 
       
  4660 		if (closeChannelV2.ExtensionId() == RSat::KSatV6)
       
  4661 			{
       
  4662 			RSat::TCloseChannelV6Pckg* closeChannelV6PCmdPckg = (RSat::TCloseChannelV6Pckg*)aPCmd;
       
  4663 			RSat::TCloseChannelV6&   closeChannelV6 = (*closeChannelV6PCmdPckg)();
       
  4664 			
       
  4665 			closeChannelV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  4666 			}
       
  4667 			
       
  4668 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4669 		}
       
  4670 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4671 	return KErrNone;
       
  4672 	}
       
  4673 
       
  4674 TInt CSatDSatTsy::NotifyCloseChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4675 	{
       
  4676 	LOGTEXT(_L8("CSatDSatTsy::NotifyCloseChannelPCmdCancel called"));
       
  4677 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4678 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4679 	else
       
  4680 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4681 	iNotifyCloseChannelPCmd=0;
       
  4682 	return KErrNone;
       
  4683 	}
       
  4684 
       
  4685 TInt CSatDSatTsy::NotifyReceiveDataPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4686 	{
       
  4687 	if(!iNotifyReceiveDataPCmd++)
       
  4688 		{
       
  4689 		LOGTEXT(_L8("CSatDSatTsy::NotifyReceiveDataPCmd called"));
       
  4690 		RSat::TReceiveDataV2Pckg* aV2PCmdPckg = (RSat::TReceiveDataV2Pckg*)aPCmd;
       
  4691 		RSat::TReceiveDataV2& receiveDataV2 = (*aV2PCmdPckg)();
       
  4692 		
       
  4693 		receiveDataV2.SetPCmdNumber(DSATTSY_RECEIVE_DATA_NUMBER);
       
  4694 
       
  4695 		receiveDataV2.iDestination=DSATTSY_CARD_READER_1;
       
  4696 		receiveDataV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
       
  4697 		receiveDataV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
       
  4698 		receiveDataV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  4699 		receiveDataV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
       
  4700 		receiveDataV2.iChannelDataLength=DSATTSY_DATA_LENGTH;
       
  4701 
       
  4702 		if ((receiveDataV2.ExtensionId() == RSat::KSatV5) ||
       
  4703 			(receiveDataV2.ExtensionId() == RSat::KSatV6))
       
  4704 			{
       
  4705 			RSat::TReceiveDataV5Pckg* aV5PCmdPckg = (RSat::TReceiveDataV5Pckg*)aPCmd;
       
  4706 			RSat::TReceiveDataV5&   receiveDataV5 = (*aV5PCmdPckg)();
       
  4707 			
       
  4708 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4709 			
       
  4710 			receiveDataV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4711 			receiveDataV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4712 			}		
       
  4713 
       
  4714 		if (receiveDataV2.ExtensionId() == RSat::KSatV6)
       
  4715 			{
       
  4716 			RSat::TReceiveDataV6Pckg* receiveDataV6PCmdPckg = (RSat::TReceiveDataV6Pckg*)aPCmd;
       
  4717 			RSat::TReceiveDataV6&   receiveDataV6 = (*receiveDataV6PCmdPckg)();
       
  4718 			
       
  4719 			receiveDataV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  4720 			}
       
  4721 			
       
  4722 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4723 		}
       
  4724 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4725 	return KErrNone;
       
  4726 	}
       
  4727 
       
  4728 TInt CSatDSatTsy::NotifyReceiveDataPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4729 	{
       
  4730 	LOGTEXT(_L8("CSatDSatTsy::NotifyReceiveDataPCmdCancel called"));
       
  4731 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4732 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4733 	else
       
  4734 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4735 	iNotifyReceiveDataPCmd=0;
       
  4736 	return KErrNone;
       
  4737 	}
       
  4738 
       
  4739 TInt CSatDSatTsy::NotifySendDataPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4740 	{
       
  4741 	if(!iNotifySendDataPCmd++)
       
  4742 		{
       
  4743 		LOGTEXT(_L8("CSatDSatTsy::NotifySendDataPCmd called"));
       
  4744 		RSat::TSendDataV2Pckg* aV2PCmdPckg = (RSat::TSendDataV2Pckg*)aPCmd;
       
  4745 		RSat::TSendDataV2& sendDataV2 = (*aV2PCmdPckg)();
       
  4746 		
       
  4747 		sendDataV2.SetPCmdNumber(DSATTSY_SEND_DATA_NUMBER);
       
  4748 
       
  4749 		sendDataV2.iDestination=DSATTSY_CARD_READER_1;
       
  4750 		sendDataV2.iMode=DSATTSY_SEND_DATA_MODE;
       
  4751 		sendDataV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
       
  4752 		sendDataV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
       
  4753 		sendDataV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  4754 		sendDataV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
       
  4755 		sendDataV2.iChannelData=DSATTSY_CHANNEL_DATA;
       
  4756 
       
  4757 		if ((sendDataV2.ExtensionId() == RSat::KSatV5) ||
       
  4758 			(sendDataV2.ExtensionId() == RSat::KSatV6))
       
  4759 			{
       
  4760 			RSat::TSendDataV5Pckg* aV5PCmdPckg = (RSat::TSendDataV5Pckg*)aPCmd;
       
  4761 			RSat::TSendDataV5&   sendDataV5 = (*aV5PCmdPckg)();
       
  4762 			
       
  4763 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4764 			
       
  4765 			sendDataV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4766 			sendDataV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4767 			}
       
  4768 
       
  4769 		if (sendDataV2.ExtensionId() == RSat::KSatV6)
       
  4770 			{
       
  4771 			RSat::TSendDataV6Pckg* sendDataV6PCmdPckg = (RSat::TSendDataV6Pckg*)aPCmd;
       
  4772 			RSat::TSendDataV6&   sendDataV6 = (*sendDataV6PCmdPckg)();
       
  4773 			
       
  4774 			sendDataV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  4775 			}
       
  4776 			
       
  4777 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4778 		}
       
  4779 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4780 	return KErrNone;
       
  4781 	}
       
  4782 
       
  4783 TInt CSatDSatTsy::NotifySendDataPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4784 	{
       
  4785 	LOGTEXT(_L8("CSatDSatTsy::NotifySendDataPCmdCancel called"));
       
  4786 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4787 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4788 	else
       
  4789 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4790 	iNotifySendDataPCmd=0;
       
  4791 	return KErrNone;
       
  4792 	}
       
  4793 
       
  4794 TInt CSatDSatTsy::NotifyGetChannelStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4795 	{
       
  4796 	if(!iNotifyGetChannelStatusPCmd++)
       
  4797 		{
       
  4798 		LOGTEXT(_L8("CSatDSatTsy::NotifyGetChannelStatusPCmd called"));
       
  4799 		RSat::TGetChannelStatusV2Pckg* aV2PCmdPckg = (RSat::TGetChannelStatusV2Pckg*)aPCmd;
       
  4800 		RSat::TGetChannelStatusV2& getStatusV2 = (*aV2PCmdPckg)();
       
  4801 		
       
  4802 		getStatusV2.SetPCmdNumber(DSATTSY_GET_CHANNEL_STATUS_NUMBER);
       
  4803 
       
  4804 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4805 		}
       
  4806 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4807 	return KErrNone;
       
  4808 	}
       
  4809 
       
  4810 TInt CSatDSatTsy::NotifyGetChannelStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4811 	{
       
  4812 	LOGTEXT(_L8("CSatDSatTsy::NotifyGetChannelStatusPCmdCancel called"));
       
  4813 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4814 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4815 	else
       
  4816 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4817 	iNotifyGetChannelStatusPCmd=0;
       
  4818 	return KErrNone;
       
  4819 	}
       
  4820 
       
  4821 TInt CSatDSatTsy::NotifyServiceSearchPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4822 	{
       
  4823 	if(!iNotifyServiceSearchPCmd++)
       
  4824 		{
       
  4825 		LOGTEXT(_L8("CSatDSatTsy::NotifyServiceSearchPCmd called"));
       
  4826 		RSat::TServiceSearchV2Pckg* aV2PCmdPckg = (RSat::TServiceSearchV2Pckg*)aPCmd;
       
  4827 		RSat::TServiceSearchV2& serviceSearchV2 = (*aV2PCmdPckg)();
       
  4828 		
       
  4829 		serviceSearchV2.SetPCmdNumber(DSATTSY_SERVICE_SEARCH_NUMBER);
       
  4830 
       
  4831 		serviceSearchV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
       
  4832 		serviceSearchV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
       
  4833 		serviceSearchV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  4834 		serviceSearchV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
       
  4835 		serviceSearchV2.iSearch.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
       
  4836 		serviceSearchV2.iSearch.iSearchParam=DSATTSY_SERVICE_SEARCH_PARAMS;
       
  4837 		serviceSearchV2.iFilter.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
       
  4838 		serviceSearchV2.iFilter.iDeviceFilter=DSATTSY_FILTER_INFO;
       
  4839 
       
  4840 		if ((serviceSearchV2.ExtensionId() == RSat::KSatV5) ||
       
  4841 			(serviceSearchV2.ExtensionId() == RSat::KSatV6))
       
  4842 			{
       
  4843 			RSat::TServiceSearchV5Pckg* aV5PCmdPckg = (RSat::TServiceSearchV5Pckg*)aPCmd;
       
  4844 			RSat::TServiceSearchV5&   serviceSearchV5 = (*aV5PCmdPckg)();
       
  4845 			
       
  4846 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4847 			
       
  4848 			serviceSearchV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4849 			serviceSearchV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4850 			}
       
  4851 
       
  4852 		if (serviceSearchV2.ExtensionId() == RSat::KSatV6)
       
  4853 			{
       
  4854 			RSat::TServiceSearchV6Pckg* serviceSearchV6PCmdPckg = (RSat::TServiceSearchV6Pckg*)aPCmd;
       
  4855 			RSat::TServiceSearchV6&   serviceSearchV6 = (*serviceSearchV6PCmdPckg)();
       
  4856 			
       
  4857 			serviceSearchV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  4858 			}
       
  4859 			
       
  4860 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4861 		}
       
  4862 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4863 	return KErrNone;
       
  4864 	}
       
  4865 
       
  4866 TInt CSatDSatTsy::NotifyServiceSearchPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4867 	{
       
  4868 	LOGTEXT(_L8("CSatDSatTsy::NotifyServiceSearchPCmdCancel called"));
       
  4869 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4870 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4871 	else
       
  4872 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4873 	iNotifyServiceSearchPCmd=0;
       
  4874 	return KErrNone;
       
  4875 	}
       
  4876 
       
  4877 TInt CSatDSatTsy::NotifyGetServiceInfoPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4878 	{
       
  4879 	if(!iNotifyGetServiceInfoPCmd++)
       
  4880 		{
       
  4881 		LOGTEXT(_L8("CSatDSatTsy::NotifyGetServiceInfoPCmd called"));
       
  4882 		RSat::TGetServiceInfoV2Pckg* aV2PCmdPckg = (RSat::TGetServiceInfoV2Pckg*)aPCmd;
       
  4883 		RSat::TGetServiceInfoV2& getServiceInfoV2 = (*aV2PCmdPckg)();
       
  4884 		
       
  4885 		getServiceInfoV2.SetPCmdNumber(DSATTSY_GET_SERVICE_INFO_NUMBER);
       
  4886 
       
  4887 		getServiceInfoV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
       
  4888 		getServiceInfoV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
       
  4889 		getServiceInfoV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
       
  4890 		getServiceInfoV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
       
  4891 		getServiceInfoV2.iAttributeInfo.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
       
  4892 		getServiceInfoV2.iAttributeInfo.iAttributeInfo=DSATTSY_ATTRIBUTE_INFO;
       
  4893 
       
  4894 		if ((getServiceInfoV2.ExtensionId() == RSat::KSatV5) ||
       
  4895 			(getServiceInfoV2.ExtensionId() == RSat::KSatV6))
       
  4896 			{
       
  4897 			RSat::TGetServiceInfoV5Pckg* aV5PCmdPckg = (RSat::TGetServiceInfoV5Pckg*)aPCmd;
       
  4898 			RSat::TGetServiceInfoV5&   getServiceInfoV5 = (*aV5PCmdPckg)();
       
  4899 			
       
  4900 			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  4901 			
       
  4902 			getServiceInfoV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  4903 			getServiceInfoV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  4904 			}
       
  4905 
       
  4906 		if (getServiceInfoV2.ExtensionId() == RSat::KSatV6)
       
  4907 			{
       
  4908 			RSat::TGetServiceInfoV6Pckg* getServiceInfoV6PCmdPckg = (RSat::TGetServiceInfoV6Pckg*)aPCmd;
       
  4909 			RSat::TGetServiceInfoV6&   getServiceInfoV6 = (*getServiceInfoV6PCmdPckg)();
       
  4910 			
       
  4911 			getServiceInfoV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  4912 			}
       
  4913 			
       
  4914 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4915 		}
       
  4916 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4917 	return KErrNone;
       
  4918 	}
       
  4919 
       
  4920 TInt CSatDSatTsy::NotifyGetServiceInfoPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4921 	{
       
  4922 	LOGTEXT(_L8("CSatDSatTsy::NotifyGetServiceInfoPCmdCancel called"));
       
  4923 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4924 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4925 	else
       
  4926 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4927 	iNotifyGetServiceInfoPCmd=0;
       
  4928 	return KErrNone;
       
  4929 	}
       
  4930 
       
  4931 TInt CSatDSatTsy::NotifyDeclareServicePCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  4932 	{
       
  4933 	if(!iNotifyDeclareServicePCmd++)
       
  4934 		{
       
  4935 		LOGTEXT(_L8("CSatDSatTsy::NotifyDeclareServicePCmd called"));
       
  4936 		RSat::TDeclareServiceV2Pckg* aV2PCmdPckg = (RSat::TDeclareServiceV2Pckg*)aPCmd;
       
  4937 		RSat::TDeclareServiceV2& declareServiceV2 = (*aV2PCmdPckg)();
       
  4938 		
       
  4939 		declareServiceV2.SetPCmdNumber(DSATTSY_DECLARE_SERVICE_NUMBER);
       
  4940 
       
  4941 		declareServiceV2.iType=DSATTSY_DECLARE_SERVICE_TYPE;
       
  4942 		declareServiceV2.iServiceRecord.iBearerId=DSATTSY_BEARER_NOT_PRESENT;
       
  4943 		declareServiceV2.iServiceRecord.iServiceId=DSATTSY_NULL_BEARER_ID;
       
  4944 		declareServiceV2.iServiceRecord.iRecord=DSATTSY_NULL_NARROW_BUF;
       
  4945 		declareServiceV2.iInterface.iPrtNumber=DSATTSY_PORT_1;
       
  4946 		declareServiceV2.iInterface.iTransportProto=DSATTSY_TCP_PROTO;
       
  4947 
       
  4948 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4949 		}
       
  4950 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4951 	return KErrNone;
       
  4952 	}
       
  4953 
       
  4954 TInt CSatDSatTsy::NotifyDeclareServicePCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  4955 	{
       
  4956 	LOGTEXT(_L8("CSatDSatTsy::NotifyDeclareServicePCmdCancel called"));
       
  4957 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4958 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4959 	else
       
  4960 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4961 	iNotifyDeclareServicePCmd=0;
       
  4962 	return KErrNone;
       
  4963 	}
       
  4964 
       
  4965 TInt CSatDSatTsy::NotifyProactiveSimSessionStart(const TTsyReqHandle aTsyReqHandle)
       
  4966 	{
       
  4967 	if(!iNotifyProactiveSimSessionStart++)
       
  4968 		{
       
  4969 		LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionStart called"));
       
  4970 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4971 		}
       
  4972 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4973 	return KErrNone;
       
  4974 	}
       
  4975 	
       
  4976 TInt CSatDSatTsy::NotifyProactiveSimSessionStartCancel(const TTsyReqHandle aTsyReqHandle)
       
  4977 	{
       
  4978 	LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionStartCancel called"));
       
  4979 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  4980 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  4981 	else
       
  4982 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  4983 	iNotifyProactiveSimSessionStart=0;
       
  4984 	return KErrNone;
       
  4985 	}
       
  4986 
       
  4987 TInt CSatDSatTsy::NotifyProactiveSimSessionEnd(const TTsyReqHandle aTsyReqHandle)
       
  4988 	{
       
  4989 	if(!iNotifyProactiveSimSessionEnd++)
       
  4990 		{
       
  4991 		LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionEnd called"));
       
  4992 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  4993 		}
       
  4994 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  4995 	return KErrNone;
       
  4996 	}
       
  4997 
       
  4998 TInt CSatDSatTsy::NotifyProactiveSimSessionEndCancel(const TTsyReqHandle aTsyReqHandle)
       
  4999 	{
       
  5000 	LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionEndCancel called"));
       
  5001 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5002 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5003 	else
       
  5004 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5005 	iNotifyProactiveSimSessionEnd=0;
       
  5006 	return KErrNone;
       
  5007 	}
       
  5008 	
       
  5009 TInt CSatDSatTsy::NotifyTimerExpiration(const TTsyReqHandle aTsyReqHandle, TDes8* aTimerDetails)
       
  5010 	{
       
  5011 	if(!iNotifyTimerExpiration++)
       
  5012 		{
       
  5013 		LOGTEXT(_L8("CSatDSatTsy::Notify Timer expiration called"));
       
  5014 		RSat::TTimerExpirationV3Pckg* cmdPckg = (RSat::TTimerExpirationV3Pckg*)aTimerDetails;
       
  5015 		RSat::TTimerExpirationV3& cmdV3 = (*cmdPckg)();	
       
  5016 		
       
  5017 		cmdV3.iTimerId = RSat::KTimer1;
       
  5018 		cmdV3.iTimerValue.iTimeUnit = RSat::ESeconds;
       
  5019 		cmdV3.iTimerValue.iNumOfUnits = 10;
       
  5020 		
       
  5021 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5022 		}
       
  5023 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5024 	return KErrNone;
       
  5025 	}
       
  5026 
       
  5027 TInt CSatDSatTsy::NotifyTimerExpirationCancel(const TTsyReqHandle aTsyReqHandle)
       
  5028 	{
       
  5029 	LOGTEXT(_L8("CSatDSatTsy::NotifyTimerExpirationCancel called"));
       
  5030 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5031 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5032 	else
       
  5033 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5034 	iNotifyTimerExpiration=0;
       
  5035 	return KErrNone;
       
  5036 	}
       
  5037 
       
  5038 TInt CSatDSatTsy::NotifySmsPpDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aSmsPpDownloadDetails)
       
  5039 	{
       
  5040 	if(!iNotifySmsPpDownload++)
       
  5041 		{
       
  5042 		LOGTEXT(_L8("CSatDSatTsy::Notify Sms Pp Download called"));
       
  5043 		RSat::TSmsPpDownloadV3Pckg* cmdPckg = (RSat::TSmsPpDownloadV3Pckg*)aSmsPpDownloadDetails;
       
  5044 		RSat::TSmsPpDownloadV3& cmdV3 = (*cmdPckg)();	
       
  5045 		
       
  5046 		cmdV3.iDeviceId=RSat::KEarPiece;
       
  5047 		cmdV3.iRpAddress.iTypeOfNumber	=DSATTSY_TON;
       
  5048 		cmdV3.iRpAddress.iNumberPlan	=DSATTSY_NPI;
       
  5049 		cmdV3.iRpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
       
  5050 		cmdV3.iPdu=DSATTSY_SMS_TPDU; 
       
  5051 		
       
  5052 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5053 		}
       
  5054 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5055 	return KErrNone;
       
  5056 	}
       
  5057 
       
  5058 TInt CSatDSatTsy::NotifyTsyStateUpdated(const TTsyReqHandle aTsyReqHandle,RSat::TPCmd* aPCmd)
       
  5059 	{
       
  5060 	if(!iNotifyTsyStateUpdated++)
       
  5061 		{
       
  5062 		LOGTEXT(_L8("CSatDSatTsy::NotifyTsyStateUpdated called"));
       
  5063 		*aPCmd = DSATTSY_SENDSS;
       
  5064 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5065 		}
       
  5066 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5067 	return KErrNone;
       
  5068 	}
       
  5069 	
       
  5070 TInt CSatDSatTsy::NotifyTsyStateUpdatedCancel(const TTsyReqHandle aTsyReqHandle)
       
  5071 	{
       
  5072 	LOGTEXT(_L8("CSatDSatTsy::NotifyTsyStateUpdatedCancel called"));
       
  5073 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5074 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5075 	else
       
  5076 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5077 	return KErrNone;
       
  5078 	}	
       
  5079 
       
  5080 TInt CSatDSatTsy::NotifyRefreshRequired(const TTsyReqHandle aTsyReqHandle)
       
  5081 	{
       
  5082 	if(!iNotifyRefreshRequired++)
       
  5083 		{
       
  5084 		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequired called"));
       
  5085 
       
  5086 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5087 		}
       
  5088 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5089 	return KErrNone;	
       
  5090 	}
       
  5091 	
       
  5092 TInt CSatDSatTsy::NotifyRefreshRequired(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5093 	{
       
  5094 	if(!iNotifyRefreshRequired++)
       
  5095 		{
       
  5096 		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequired called (with param)"));
       
  5097 
       
  5098 		RSat::TRefreshV1Pckg* refreshPckg = (RSat::TRefreshV1Pckg*)aPCmd;
       
  5099 		RSat::TRefreshV1& refreshV1 = (*refreshPckg)();
       
  5100 		
       
  5101 		refreshV1.SetPCmdNumber(DSATTSY_REFRESH_NUMBER);
       
  5102 
       
  5103 		refreshV1.iType	= DSATTSY_REFRESH_TYPE;
       
  5104  		refreshV1.iFileList.Append(DSATTSY_REFRESH_FDN_EF);
       
  5105  		refreshV1.iFileList.Append(DSATTSY_REFRESH_ADN_EF);
       
  5106 
       
  5107 		if (refreshV1.ExtensionId()==RSat::KSatV2)
       
  5108 			{
       
  5109 			RSat::TRefreshV2Pckg* aV2PCmdPckg = (RSat::TRefreshV2Pckg*)aPCmd;
       
  5110 			RSat::TRefreshV2& refreshV2 = (*aV2PCmdPckg)();
       
  5111 			
       
  5112 			refreshV2.iAid=DSATTSY_AID;
       
  5113 			}
       
  5114 
       
  5115 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5116 		}		
       
  5117 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5118 	return KErrNone;	
       
  5119 	}
       
  5120 
       
  5121 TInt CSatDSatTsy::NotifyRefreshRequiredCancel(const TTsyReqHandle aTsyReqHandle)
       
  5122 	{
       
  5123 	LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequiredCancel called"));
       
  5124 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5125 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5126 	else
       
  5127 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5128 	iNotifyRefreshRequired=0;
       
  5129 	return KErrNone;
       
  5130 	}
       
  5131 
       
  5132 TInt CSatDSatTsy::RefreshAllowed(const TTsyReqHandle aTsyReqHandle, TDes8* aRefreshAllowedRsp)
       
  5133 	{
       
  5134 	RSat::TRefreshRspV1Pckg* aRspPckg = (RSat::TRefreshRspV1Pckg*)aRefreshAllowedRsp;
       
  5135 	RSat::TRefreshRspV1& rspV1 = (*aRspPckg)();
       
  5136 
       
  5137 	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
       
  5138 		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
       
  5139 		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF))
       
  5140 		{
       
  5141 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5142 		}
       
  5143 	else if(!iRefreshAllowed++)
       
  5144 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5145 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5146 	return KErrNone;
       
  5147 	}
       
  5148 
       
  5149 TInt CSatDSatTsy::RefreshAllowedCancel(const TTsyReqHandle aTsyReqHandle)
       
  5150 	{
       
  5151 	LOGTEXT(_L8("CSatDSatTsy::RefreshAllowedCancel called"));
       
  5152 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5153 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5154 	else
       
  5155 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5156 	iNotifyRefreshRequired=0;
       
  5157 	return KErrNone;
       
  5158 	}
       
  5159 
       
  5160 TInt CSatDSatTsy::NotifySmsPpDownloadCancel(const TTsyReqHandle aTsyReqHandle)
       
  5161 	{
       
  5162 	LOGTEXT(_L8("CSatDSatTsy::NotifySmsPpDownloadCancel called"));
       
  5163 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5164 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5165 	else
       
  5166 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5167 	iNotifySmsPpDownload=0;
       
  5168 	return KErrNone;
       
  5169 	}
       
  5170 
       
  5171 TInt CSatDSatTsy::NotifyCbDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aCbDownloadDetails)
       
  5172 	{
       
  5173 	if(!iNotifyCbDownload++)
       
  5174 		{
       
  5175 		LOGTEXT(_L8("CSatDSatTsy::Notify CB Download called"));
       
  5176 		RSat::TCbDownloadV3Pckg* cmdPckg = (RSat::TCbDownloadV3Pckg*)aCbDownloadDetails;
       
  5177 		RSat::TCbDownloadV3& cmdV3 = (*cmdPckg)();		
       
  5178 		
       
  5179 		cmdV3.iDeviceId=RSat::KEarPiece;
       
  5180 		cmdV3.iPdu= DSATTSY_CB_PDU; 
       
  5181 		
       
  5182 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5183 		}
       
  5184 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5185 	return KErrNone;
       
  5186 	}
       
  5187 	
       
  5188 TInt CSatDSatTsy::NotifyCbDownloadCancel(const TTsyReqHandle aTsyReqHandle)
       
  5189 	{
       
  5190 	LOGTEXT(_L8("CSatDSatTsy::NotifyCbDownloadCancel called"));
       
  5191 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5192 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5193 	else
       
  5194 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5195 	iNotifyCbDownload=0;
       
  5196 	return KErrNone;
       
  5197 	}
       
  5198 	
       
  5199 TInt CSatDSatTsy::NotifyTimerManagtPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5200 	{
       
  5201 	if(!iNotifyTimerManagtPCmd++)
       
  5202 		{
       
  5203 		LOGTEXT(_L8("CSatDSatTsy::NotifyTimerManagtPCmd called"));
       
  5204 		RSat::TTimerMgmtV3Pckg* aV3PCmdPckg = (RSat::TTimerMgmtV3Pckg*)aPCmd;
       
  5205 		RSat::TTimerMgmtV3& timerMngtV3 = (*aV3PCmdPckg)();
       
  5206 		
       
  5207 		timerMngtV3.iTimerId = RSat::KTimer1;
       
  5208 		timerMngtV3.iTimerValue.iTimeUnit = RSat::ESeconds;
       
  5209 		timerMngtV3.iTimerValue.iNumOfUnits = 10;
       
  5210 		timerMngtV3.iOperation = RSat::EStartTimer;
       
  5211 				
       
  5212 		ReqCompleted(aTsyReqHandle,KErrNone);	
       
  5213 		}
       
  5214 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5215 	return KErrNone;
       
  5216 	}
       
  5217 
       
  5218 TInt CSatDSatTsy::NotifyTimerManagtPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5219 	{
       
  5220 	LOGTEXT(_L8("CSatDSatTsy::NotifyTmerManagtPCmdCancel called"));
       
  5221 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5222 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5223 	else
       
  5224 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5225 	iNotifyTimerManagtPCmd=0;
       
  5226 	return KErrNone;
       
  5227 	}
       
  5228 	
       
  5229 TInt CSatDSatTsy::NotifyLocalInfoPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5230 	{
       
  5231 	if(!iNotifyLocalInfoPCmd++)
       
  5232 		{
       
  5233 		LOGTEXT(_L8("CSatDSatTsy::NotifyLocalInfoPCmd called"));
       
  5234 		RSat::TLocalInfoV3Pckg* aV3PCmdPckg = (RSat::TLocalInfoV3Pckg*)aPCmd;	
       
  5235 		RSat::TLocalInfoV3& localInfoV3 = (*aV3PCmdPckg)();
       
  5236 	
       
  5237 		localInfoV3.iDevideId = RSat::KKeypad;
       
  5238 		localInfoV3.iInfoType = RSat::KProvideLocalInfo;
       
  5239 		if(localInfoV3.ExtensionId()== RSat::KSatV6)
       
  5240 			{
       
  5241 			RSat::TLocalInfoV6Pckg* localInfoV6PCmdPckg = (RSat::TLocalInfoV6Pckg*)aPCmd;	
       
  5242 			RSat::TLocalInfoV6& localInfoV6 = (*localInfoV6PCmdPckg)();
       
  5243 			localInfoV6.iUtranMeasurementQualifier=DSATTSYV6_LOCAL_INFOV6;
       
  5244 			localInfoV6.iInfoType = RSat::KProvideLocalInfoSearchMode;
       
  5245 			}
       
  5246 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5247 		}
       
  5248 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5249 	return KErrNone;
       
  5250 	}
       
  5251 
       
  5252 TInt CSatDSatTsy::NotifyLocalInfoPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5253 	{
       
  5254 	LOGTEXT(_L8("CSatDSatTsy::NotifyLocalInfoPCmdCancel called"));
       
  5255 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5256 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5257 	else
       
  5258 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5259 	iNotifyLocalInfoPCmd=0;
       
  5260 	return KErrNone;
       
  5261 	}
       
  5262 	
       
  5263 TInt CSatDSatTsy::NotifyPollingIntervalPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5264 	{
       
  5265 	if(!iNotifyPollingIntervalPCmd++)
       
  5266 		{
       
  5267 		LOGTEXT(_L8("CSatDSatTsy::NotifyPollingIntervalPCmd called"));
       
  5268 		RSat::TPollingIntervalV3Pckg* aV3PCmdPckg = (RSat::TPollingIntervalV3Pckg*)aPCmd;	
       
  5269 		RSat::TPollingIntervalV3& pollingIntvV3 = (*aV3PCmdPckg)();
       
  5270 		
       
  5271 		pollingIntvV3.iIntv.iTimeUnit = RSat::ESeconds;
       
  5272 		pollingIntvV3.iIntv.iNumOfUnits = DSATTSY_NUM_OF_UNITS;
       
  5273 		pollingIntvV3.iDestination=RSat::KEarPiece;
       
  5274 		
       
  5275 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5276 		}
       
  5277 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5278 	return KErrNone;
       
  5279 	}
       
  5280 	
       
  5281 	
       
  5282 TInt CSatDSatTsy::NotifyPollingIntervalPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5283 	{
       
  5284 	
       
  5285 	LOGTEXT(_L8("CSatDSatTsy::NotifyPollingIntervalPCmdCancel called"));
       
  5286 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5287 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5288 	else
       
  5289 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5290 	iNotifyPollingIntervalPCmd=0;
       
  5291 	return KErrNone;
       
  5292 	}
       
  5293 	
       
  5294 TInt CSatDSatTsy::NotifyPollingOffPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5295 	{
       
  5296 	if(!iNotifyPollingOffPCmd++)
       
  5297 		{
       
  5298 		LOGTEXT(_L8("CSatDSatTsy::NotifyPollingOffPCmd called"));
       
  5299 		RSat::TPollingOffV3Pckg* aV3PCmdPckg = (RSat::TPollingOffV3Pckg*)aPCmd;	
       
  5300 		RSat::TPollingOffV3& pollingIntvV3 = (*aV3PCmdPckg)();
       
  5301 		
       
  5302 		pollingIntvV3.iIntv.iTimeUnit = RSat::ESeconds;
       
  5303 		pollingIntvV3.iIntv.iNumOfUnits = 20;
       
  5304 		pollingIntvV3.iDestination=RSat::KNetwork;
       
  5305 		
       
  5306 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5307 		}
       
  5308 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5309 	return KErrNone;
       
  5310 	}
       
  5311 
       
  5312 TInt CSatDSatTsy::NotifyPollingOffPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5313 	{
       
  5314 	
       
  5315 	LOGTEXT(_L8("CSatDSatTsy::NotifyPollingOffPCmdCancel called"));
       
  5316 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5317 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5318 	else
       
  5319 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5320 	iNotifyPollingOffPCmd=0;
       
  5321 	return KErrNone;
       
  5322 	}
       
  5323 
       
  5324 
       
  5325 
       
  5326 TInt CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd) 
       
  5327 	{
       
  5328 	if(!iNotifyRetrieveMultimediaMsgPCmd++)
       
  5329 		{
       
  5330 		LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd called"));
       
  5331 		RSat::TRetrieveMultimediaMessageV6Pckg* retrieveMmV6PCmdPckg = (RSat::TRetrieveMultimediaMessageV6Pckg*)aPCmd;	
       
  5332 		RSat::TRetrieveMultimediaMessageV6& retrieveMMV6 = (*retrieveMmV6PCmdPckg)();
       
  5333 		
       
  5334 		const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  5335 		retrieveMMV6.SetPCmdNumber(DSATTSY_RETRIEVE_MULTIMEDIA_MESSAGE);
       
  5336 		retrieveMMV6.iDestination = DSATTSYV6_DEVICE_ID1;
       
  5337 		retrieveMMV6.iAlphaId.iAlphaId= DSATTSYV6_ALPHAID1;
       
  5338 		retrieveMMV6.iAlphaId.iStatus = DSATTSYV6_ALPHAID_STATUS2;
       
  5339 		retrieveMMV6.iIconId.iIdentifier = DSATTSYV6_ICON_ID1;
       
  5340 		retrieveMMV6.iIconId.iQualifier =  DSATTSYV6_ICON_QUALIFIER3;
       
  5341 		retrieveMMV6.iMultimediaContentId = DSATTSYV6_MULTIMEDIA_CONTENT_ID1;
       
  5342 		retrieveMMV6.iMultimediaMessageRef = DSATTSYV6_MULTIMEDIA_MESSAGE_REF1;
       
  5343 		retrieveMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
       
  5344 		retrieveMMV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  5345 		retrieveMMV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  5346 		
       
  5347 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5348 		}
       
  5349 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5350 	return KErrNone;
       
  5351 	}
       
  5352 
       
  5353 TInt CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5354 	{
       
  5355 	LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmdCancel called"));
       
  5356 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5357 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5358 	else
       
  5359 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5360 	iNotifyRetrieveMultimediaMsgPCmd=0;
       
  5361 	return KErrNone;
       
  5362 	}
       
  5363 
       
  5364 
       
  5365 
       
  5366 TInt CSatDSatTsy::NotifySubmitMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5367 	{
       
  5368 	if(!iNotifySubmitMultimediaMsgPCmd++)
       
  5369 		{
       
  5370 		LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmd called"));
       
  5371 		RSat::TSubmitMultimediaMessageV6Pckg* submitMMV6PCmdPckg = (RSat::TSubmitMultimediaMessageV6Pckg*)aPCmd;	
       
  5372 		RSat::TSubmitMultimediaMessageV6& submitMMV6 = (*submitMMV6PCmdPckg)();
       
  5373 		
       
  5374 		const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
       
  5375 		submitMMV6.SetPCmdNumber(DSATTSY_SUBMIT_MULTIMEDIA_MESSAGE);
       
  5376 		submitMMV6.iDestination = DSATTSYV6_DEVICE_ID1;
       
  5377 		submitMMV6.iAlphaId.iAlphaId= DSATTSYV6_ALPHAID1;
       
  5378 		submitMMV6.iAlphaId.iStatus = DSATTSYV6_ALPHAID_STATUS2;
       
  5379 		submitMMV6.iIconId.iIdentifier = DSATTSYV6_ICON_ID1;
       
  5380 		submitMMV6.iIconId.iQualifier =  DSATTSYV6_ICON_QUALIFIER3;
       
  5381 		submitMMV6.iSubmissionFile = DSATTSYV6_SUBMISSION_FILE1;
       
  5382 		submitMMV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
       
  5383 		submitMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
       
  5384 		submitMMV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
       
  5385 		
       
  5386 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5387 		}
       
  5388 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5389 	return KErrNone;
       
  5390 	}
       
  5391 	
       
  5392 TInt CSatDSatTsy::NotifySubmitMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5393 	{
       
  5394 	LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmdCancel called"));
       
  5395 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5396 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5397 	else
       
  5398 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5399 	iNotifySubmitMultimediaMsgPCmd=0;
       
  5400 	return KErrNone;	
       
  5401 	}
       
  5402 	
       
  5403 
       
  5404 
       
  5405 TInt CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5406 	{
       
  5407 	if(!iNotifyDisplayMultimediaMsgPCmd++)
       
  5408 		{
       
  5409 		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd called"));
       
  5410 		RSat::TDisplayMultimediaMessageV6Pckg* displayMMV6PCmdPckg = (RSat::TDisplayMultimediaMessageV6Pckg*)aPCmd;	
       
  5411 		RSat::TDisplayMultimediaMessageV6& displayMMV6 = (*displayMMV6PCmdPckg)();	
       
  5412 		
       
  5413 		displayMMV6.SetPCmdNumber(DSATTSY_DISPLAY_MULTIMEDIA_MESSAGE);
       
  5414 		displayMMV6.iDestination = DSATTSYV6_DEVICE_ID3;
       
  5415 		displayMMV6.iDisplayPriority = DSATTSYV6_DISPLAY_PRIORITY1;
       
  5416 		displayMMV6.iSubmissionFile = DSATTSYV6_SUBMISSION_FILE1;
       
  5417 		displayMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
       
  5418 		displayMMV6.iImmediateRsp = DSATTSYV6_IMMEDIATE_RESPONSE1;
       
  5419 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5420 		}
       
  5421 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5422 	return KErrNone;
       
  5423 	}
       
  5424 
       
  5425 TInt CSatDSatTsy::NotifyDisplayMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5426 	{
       
  5427 	LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmdCancel called"));
       
  5428 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5429 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5430 	else
       
  5431 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5432 	iNotifyDisplayMultimediaMsgPCmd=0;
       
  5433 	return KErrNone;	
       
  5434 	}
       
  5435 
       
  5436 
       
  5437 TInt CSatDSatTsy::NotifySetFramesPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5438 	{
       
  5439 	if(!iNotifySetFramesPCmd++)
       
  5440 		{
       
  5441 		LOGTEXT(_L8("CSatDSatTsy::NotifySetFramesPCmd called"));
       
  5442 		RSat::TSetFramesV6Pckg* setFramesV6PCmdPckg = (RSat::TSetFramesV6Pckg*)aPCmd;	
       
  5443 		RSat::TSetFramesV6& setFramesV6 = (*setFramesV6PCmdPckg)();	
       
  5444 		
       
  5445 		setFramesV6.SetPCmdNumber(DSATTSY_SET_FRAMES);
       
  5446 		setFramesV6.iDestination = DSATTSYV6_DEVICE_ID1;
       
  5447         setFramesV6.iDefaultFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
       
  5448         setFramesV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
       
  5449         setFramesV6.iFrameLayout.iFramesLayout = DSATTSYV6_FRAME_LAYOUT_FORMAT1;
       
  5450         setFramesV6.iFrameLayout.iFrameLayoutBuf = DSATTSYV6_FRAME_LAYOUT1;
       
  5451 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5452 		}
       
  5453 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5454 	return KErrNone; 
       
  5455 	}
       
  5456 	
       
  5457 TInt CSatDSatTsy::NotifySetFramesPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5458 	{
       
  5459 	LOGTEXT(_L8("CSatDSatTsy::SetFramesPCmdCancel called"));
       
  5460 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5461 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5462 	else
       
  5463 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5464 	iNotifySetFramesPCmd=0;
       
  5465 	return KErrNone;	
       
  5466 	}
       
  5467 	
       
  5468 
       
  5469 TInt CSatDSatTsy::NotifyGetFramesStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5470 	{
       
  5471 	if(!iNotifyGetFramesStatusPCmd++)
       
  5472 		{
       
  5473 		LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmd called"));
       
  5474 		RSat::TGetFramesStatusV6Pckg* getFramesStatusV6PCmdPckg = (RSat::TGetFramesStatusV6Pckg*)aPCmd;	
       
  5475 		RSat::TGetFramesStatusV6& getFramesStatusV6 = (*getFramesStatusV6PCmdPckg)();	
       
  5476 		
       
  5477 		getFramesStatusV6.SetPCmdNumber(DSATTSY_GET_FRAMES_STATUS);
       
  5478 		getFramesStatusV6.iDestination = DSATTSYV6_DEVICE_ID1;
       
  5479 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5480 		}
       
  5481 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5482 	return KErrNone;
       
  5483 	}
       
  5484 
       
  5485 TInt CSatDSatTsy::NotifyGetFramesStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
       
  5486 	{
       
  5487 	LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmdCancel called"));
       
  5488 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5489 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5490 	else
       
  5491 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5492 	iNotifyGetFramesStatusPCmd=0;
       
  5493 	return KErrNone;	
       
  5494 	}
       
  5495 	
       
  5496 
       
  5497 
       
  5498 TInt CSatDSatTsy::MmsNotificationDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5499 	{
       
  5500 	LOGTEXT(_L8("CSatDSatTsy::MmsNotificationDownload called"));
       
  5501 	RSat::TMmsNotificationDownloadV6Pckg* mMSNotificationDownloadV6PCmdPckg = (RSat::TMmsNotificationDownloadV6Pckg*)aPCmd;	
       
  5502 	RSat::TMmsNotificationDownloadV6& mMSNotificationDownloadV6 = (*mMSNotificationDownloadV6PCmdPckg)();	
       
  5503 		
       
  5504 	if((mMSNotificationDownloadV6.iDeviceId != DSATTSYV6_DEVICE_ID1) || 
       
  5505 	   (mMSNotificationDownloadV6.iLastEnvelope != DSATTSYV6_LAST_ENVELOPE1) || 
       
  5506 	   (mMSNotificationDownloadV6.iMMSNotification != DSATTSYV6_MMS_NOTIFICATION1))
       
  5507 		{
       
  5508 		ReqCompleted(aTsyReqHandle,KErrCorrupt);			
       
  5509 		}
       
  5510 	else if(!iMmsNotificationDownload++)
       
  5511 		{
       
  5512 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5513 		}
       
  5514 	
       
  5515 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5516 	return KErrNone;	
       
  5517 	}
       
  5518 
       
  5519 TInt CSatDSatTsy::MmsNotificationDownloadCancel(const TTsyReqHandle aTsyReqHandle)
       
  5520 	{
       
  5521 	LOGTEXT(_L8("CSatDSatTsy::MmsNotificationDownloadCancel called"));
       
  5522 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5523 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5524 	else
       
  5525 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5526 	iMmsNotificationDownload=0;
       
  5527 	return KErrNone;	
       
  5528 	}
       
  5529 
       
  5530 
       
  5531 
       
  5532 TInt CSatDSatTsy::MmsTransferStatus(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
       
  5533 	{
       
  5534 	LOGTEXT(_L8("CSatDSatTsy::MmsTransferStatus called"));
       
  5535 	RSat::TMmsTransferStatusV6Pckg* mMSTransferStatusV6PCmdPckg = (RSat::TMmsTransferStatusV6Pckg*)aPCmd;	
       
  5536 	RSat::TMmsTransferStatusV6& mMSTransferStatusV6 = (*mMSTransferStatusV6PCmdPckg)();	
       
  5537 		
       
  5538 	if((mMSTransferStatusV6.iDeviceId != DSATTSYV6_DEVICE_ID3) || 
       
  5539 	   (mMSTransferStatusV6.iMultimediaMessageId !=DSATTSYV6_MULTIMEDIA_MESSAGE_ID1) || 
       
  5540 	   (mMSTransferStatusV6.iMultimediaMessageStatus !=DSATTSYV6_MULTIMEDIA_MESSAGE_STATUS))
       
  5541 		{
       
  5542 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5543 		}
       
  5544 	else if(!iMmsTransferStatus++)
       
  5545 		{
       
  5546 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5547 		}
       
  5548 
       
  5549 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5550 	return KErrNone;
       
  5551 	}
       
  5552 
       
  5553 TInt CSatDSatTsy::MmsTransferStatusCancel(const TTsyReqHandle aTsyReqHandle)
       
  5554 	{
       
  5555 	LOGTEXT(_L8("CSatDSatTsy::MMTransferStatusCancel called"));
       
  5556 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5557 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5558 	else
       
  5559 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5560 	iMmsTransferStatus=0;
       
  5561 	return KErrNone;	
       
  5562 	}
       
  5563 
       
  5564 	
       
  5565 
       
  5566 TInt CSatDSatTsy::UssdDataDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aUssdDataDownload)
       
  5567 	{
       
  5568 	LOGTEXT(_L8("CSatDSatTsy::UssdDataDownload called"));
       
  5569 	RSat::TUssdDataDownloadV6Pckg* ussdDataDownloadPckg = (RSat::TUssdDataDownloadV6Pckg*)aUssdDataDownload;
       
  5570 	RSat::TUssdDataDownloadV6& ussdDataDownloadV6 = (*ussdDataDownloadPckg)();	
       
  5571 		
       
  5572 	if((ussdDataDownloadV6.iDeviceId != DSATTSYV6_DEVICE_ID1) || 
       
  5573 	   (ussdDataDownloadV6.iUssdString.iUssdString != DSATTSY_USSD_STRING))
       
  5574 		{
       
  5575 		ReqCompleted(aTsyReqHandle, KErrCorrupt);
       
  5576 		}
       
  5577 	else if(!iUssdDataDownload++)
       
  5578 		{
       
  5579 		ReqCompleted(aTsyReqHandle,KErrNone);
       
  5580 		}
       
  5581 
       
  5582 	iTsyAsyncReqHandle = aTsyReqHandle;
       
  5583 	return KErrNone;
       
  5584 	}	
       
  5585 
       
  5586 TInt CSatDSatTsy::UssdDataDownloadCancel(const TTsyReqHandle aTsyReqHandle)
       
  5587 	{
       
  5588 	LOGTEXT(_L8("CSatDSatTsy::UssdDataDownloadCancel called"));
       
  5589 	if(aTsyReqHandle == iTsyAsyncReqHandle)
       
  5590 		ReqCompleted(aTsyReqHandle,KErrCancel);
       
  5591 	else
       
  5592 		ReqCompleted(aTsyReqHandle,KErrCorrupt);
       
  5593 	iUssdDataDownload=0;
       
  5594 	return KErrNone;	
       
  5595 	}
       
  5596 
       
  5597 
       
  5598 
       
  5599 TSecurityPolicy CSatDSatTsy::GetRequiredPlatSecCaps(const TInt aIpc)
       
  5600 	{
       
  5601 	switch(aIpc)
       
  5602 		{
       
  5603 	case ETestCustomIPC1:
       
  5604 		return TSecurityPolicy(ECapabilityNetworkServices);
       
  5605 	default:
       
  5606 		//For any non-Custom IPCs return a policy that will always cause the capability check to pass
       
  5607 		return TSecurityPolicy(TSecurityPolicy::EAlwaysPass);
       
  5608 		}
       
  5609 	}	
       
  5610