telephonyserver/etelsimtoolkit/dtsy/sattsy.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserver/etelsimtoolkit/dtsy/sattsy.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserver/etelsimtoolkit/dtsy/sattsy.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,5610 +1,5610 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Dummy Sat TSY classes implementation.
-// 
-//
-
-/**
- @file
-*/
-#include "sattsy.h"
-#include "testdef.h"
-#include "Etelsat.h"
-#include <et_clsvr.h>
-#include "Dsatlog.h"
-#include <satcs.h>
-#include <utf.h>
-
-#include "coretsy.h"
-
-/**************************************************************************/
-//
-//	CSatDSatTsy
-//
-/**************************************************************************/
-
-CSatDSatTsy* CSatDSatTsy::NewL(CPhoneFactoryDummyBase* aFac)
-	{
-	CSatDSatTsy* subsession=new(ELeave) CSatDSatTsy(aFac);
-	CleanupStack::PushL(subsession);
-	subsession->ConstructL();
-	CleanupStack::Pop();
-	return subsession;
-	}
-
-void CSatDSatTsy::Init()
-	{}
-
-CSatDSatTsy::CSatDSatTsy(CPhoneFactoryDummyBase* aFac)
-	:CSubSessionExtDummyBase(aFac)
-	{
-	iTsyAsyncReqHandle=0;
-	iNotifyCallControlRequest=0;
-	iNotifyMoSmControlRequest=0;
-	iNotifyDisplayTextPCmd=0;
-	iNotifyGetInkeyPCmd=0;
-	iNotifyGetInputPCmd=0;
-	iNotifyPlayTonePCmd=0;
-	iNotifySetUpMenuPCmd=0;
-	iNotifySelectItemPCmd=0;
-	iNotifySendSmPCmd=0;
-	iNotifySendSsPCmd=0;
-	iNotifySendUssdPCmd=0;
-	iNotifySetUpCallPCmd=0;
-	iNotifyRefreshPCmd=0;
-	iNotifySetUpEventListPCmd=0;
-	iNotifySetUpIdleModeTextPCmd=0;
-	iNotifySendDtmfPCmd=0;
-	iGetIcon=0;
-	iGetImageInstance=0;
-	iGetClut=0;
-	iDisplayTextTerminalRsp=0;
-	iGetInkeyTerminalRsp=0;
-	iGetInputTerminalRsp=0;
-	iPlayToneTerminalRsp=0;
-	iSetUpMenuTerminalRsp=0;
-	iSelectItemTerminalRsp=0;
-	iSendSmTerminalRsp=0;
-	iSendSsTerminalRsp=0;
-	iSendUssdTerminalRsp=0;
-	iSetUpCallTerminalRsp=0;
-	iRefreshTerminalRsp=0;
-	iSetUpEventListTerminalRsp=0;
-	iSetUpIdleModeTextTerminalRsp=0;
-	iSendDtmfTerminalRsp=0;
-	iGetMeSideSatProfile=0;
-	iClientSatProfileIndication=0;
-	iMenuSelection=0;
-	iEventDownload=0;
-	iNotifyPerformCardApduPCmd=0;
-	iNotifyPowerOffCardPCmd=0;
-	iNotifyPowerOnCardPCmd=0;
-	iNotifyGetReaderStatusPCmd=0;
-	iNotifyRunAtCommandPCmd=0;
-	iNotifyLanguageNotificationPCmd=0;
-	iGetProvisioningRefFile=0;
-	iNotifyOpenChannelPCmd=0;
-	iNotifyCloseChannelPCmd=0;
-	iNotifyReceiveDataPCmd=0;
-	iNotifySendDataPCmd=0;
-	iNotifyGetChannelStatusPCmd=0;
-	iNotifyServiceSearchPCmd=0;
-	iNotifyGetServiceInfoPCmd=0;
-	iNotifyDeclareServicePCmd=0;
-	iNotifyLaunchBrowserPCmd=0;
-	iNotifyLaunchBrowserCount=0;
-	iNotifySetUpMenuTestNumber=0;
-	iNotifyCallControlRequestTestNumber=0;
-	iNotifyOpenChannelTestNumber=0;
-	iSendMessageNoLogging=0;
-	iNotifyProactiveSimSessionEnd=0;
-	iNotifyProactiveSimSessionStart=0;
-	iNotifyTimerExpiration=0;
-	iNotifySmsPpDownload=0;
-	iNotifyCbDownload=0;
-	iNotifyTimerManagtPCmd=0;
-	iNotifyLocalInfoPCmd=0;
-	iNotifyPollingIntervalPCmd=0;
-	iNotifyPollingOffPCmd=0;
-	iTimerMgmtTerminalRsp=0;
-	iLocalInfoTerminalRsp=0;
-	iPollingIntervalTerminalRsp=0;
-	iPollingOffTerminalRsp=0;
-	iNotifyTsyStateUpdated=0;
-	iNotifyRefreshRequired=0;
-	iRefreshAllowed=0;
-	iNotifyRetrieveMultimediaMsgPCmd=0;
-	iNotifySubmitMultimediaMsgPCmd=0;
-	iNotifyDisplayMultimediaMsgPCmd=0;
-	iNotifySetFramesPCmd=0;
-	iNotifyGetFramesStatusPCmd=0;
-	iRetrieveMultimediaMsgTerminalRsp=0;
-	iSubmitMultimediaMsgTerminalRsp=0;
-	iDisplayMultimediaMsgTerminalRsp=0;
-	iSetFramesTerminalRsp=0;
-	iGetFramesStatusTerminalRsp=0;
-	iMmsNotificationDownload=0;
-	iMmsTransferStatus=0;
-	iUssdDataDownload=0;
-	}
-
-void CSatDSatTsy::ConstructL()
-	{
-	LOGTEXT(_L8("CSatDSatTsy: Entered constructor"));
-	}
-
-CSatDSatTsy::~CSatDSatTsy()
-	{
-	LOGTEXT(_L8("CSatDSatTsy: Entered destructor"));
-	}
-
-CTelObject* CSatDSatTsy::OpenNewObjectByNameL(const TDesC& /*aName*/)
-/**
-* Opening object(s) from RSat is not supported
-*/
-	{
-	User::Leave(KErrNotSupported);
-	return NULL;
-	}
-
-CTelObject* CSatDSatTsy::OpenNewObjectL(TDes& /*aNewName*/)
-/**
-* Opening object(s) from RSat is not supported	
-*/
-	{
-	User::Leave(KErrNotSupported);
-	return NULL;
-	}
-
-CTelObject::TReqMode CSatDSatTsy::ReqModeL(const TInt aIpc)
-/**
-* ReqModeL is called from the server's CTelObject::ReqAnalyserL
-* in order to check the type of request it has.
-*
-* The following are example request types for this dummy TSY
-* All TSYs do not have to have these request types but they have been given
-* "sensible" values in this test code
-*/
-	{
-	CTelObject::TReqMode ret=0;
-	switch (aIpc)
-		{
-		case ESatNotifyProactiveSimSessionStart:
-		case ESatNotifyProactiveSimSessionEnd:
-		case ESatNotifyCallControlRequest:
-		case ESatNotifyMoSmControlRequest:
-		case ESatNotifyDisplayTextPCmd:
-		case ESatNotifyGetInkeyPCmd:
-		case ESatNotifyGetInputPCmd:
-		case ESatNotifyPlayTonePCmd:
-		case ESatNotifySetUpMenuPCmd:
-		case ESatNotifySelectItemPCmd:
-		case ESatNotifySendSmPCmd:
-		case ESatNotifySendSsPCmd:
-		case ESatNotifySendUssdPCmd:
-		case ESatNotifySetUpCallPCmd:
-		case ESatNotifyRefreshPCmd:
-		case ESatNotifySetUpEventListPCmd:
-		case ESatNotifySetUpIdleModeTextPCmd:
-		case ESatNotifySendDtmfPCmd:
-		case ESatNotifyPerformCardApduPCmd:
-		case ESatNotifyPowerOffCardPCmd:
-		case ESatNotifyPowerOnCardPCmd:
-		case ESatNotifyGetReaderStatusPCmd:
-		case ESatNotifyRunAtCommandPCmd:
-		case ESatNotifyLanguageNotificationPCmd:
-		case ESatNotifyLaunchBrowserPCmd:
-		case ESatNotifyOpenChannelPCmd:
-		case ESatNotifyCloseChannelPCmd:
-		case ESatNotifyReceiveDataPCmd:
-		case ESatNotifySendDataPCmd:
-		case ESatNotifyGetChannelStatusPCmd:
-		case ESatNotifyServiceSearchPCmd:
-		case ESatNotifyGetServiceInfoPCmd:
-		case ESatNotifyDeclareServicePCmd:
-		case ESatNotifyTimerExpiration:
-		case ESatNotifySmsPpDownload:
-		case ESatNotifyCbDownload:
-		case ESatNotifyTimerMgmtPCmd:							
-		case ESatNotifyLocalInfoPCmd:
-		case ESatNotifyPollingIntervalPCmd:
-		case ESatNotifyPollingOffPCmd:		
-		case ESatNotifyTsyStateUpdated:
-		case ESatNotifyRefreshRequired:
-		case ESatNotifyRefreshRequiredParam:
-		case ESatNotifyRetrieveMultimediaMsgPCmd:
-		case ESatNotifySubmitMultimediaMsgPCmd:
-		case ESatNotifyDisplayMultimediaMsgPCmd:
-		case ESatNotifySetFramesPCmd:
-		case ESatNotifyGetFramesStatusPCmd:
-			ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately;
-			break;
-
-		case ESatGetIcon:
-		case ESatGetImageInstance:
-		case ESatGetClut:
-		case ESatTerminalRsp:
-		case ESatGetMeSideSatProfile:
-		case ESatClientSatProfileIndication:
-		case ESatMenuSelection:
-		case ESatEventDownload:
-		case ESatUsatClientReadyIndication:
-		case ESatGetProvisioningRefFile:
-		case ESatSendMessageNoLogging:
-		case ESatRefreshAllowed:
-		case ETestCustomIPC1:
-		case ESatGetOpenChannelPCmd:
-		case ESatMmsNotificationDownload:
-		case ESatMmsTransferStatus:
-		case ESatUssdDataDownload:
-			break;
-
-		case ESatNotifyProactiveSimSessionStartCancel:
-		case ESatNotifyProactiveSimSessionEndCancel:
-		case ESatGetIconCancel:
-		case ESatGetImageInstanceCancel:
-		case ESatGetClutCancel:
-		case ESatTerminalRspCancel:
-		case ESatGetMeSideSatProfileCancel:
-		case ESatMenuSelectionCancel:
-		case ESatNotifyCallControlRequestCancel:
-		case ESatNotifyMoSmControlRequestCancel:
-		case ESatEventDownloadCancel:
-		case ESatNotifyDisplayTextPCmdCancel:
- 		case ESatNotifyGetInkeyPCmdCancel:
-		case ESatNotifyGetInputPCmdCancel:
-		case ESatNotifyPlayTonePCmdCancel:
-		case ESatNotifySetUpMenuPCmdCancel:
-		case ESatNotifySelectItemPCmdCancel:
-		case ESatNotifySendSmPCmdCancel:
-		case ESatNotifySendSsPCmdCancel:
-		case ESatNotifySendUssdPCmdCancel:
-		case ESatNotifySetUpCallPCmdCancel:
-		case ESatNotifyRefreshPCmdCancel:
-		case ESatNotifySetUpEventListPCmdCancel:
-		case ESatNotifySetUpIdleModeTextPCmdCancel:
-		case ESatNotifySendDtmfPCmdCancel:
-		case ESatGetProvisioningRefFileCancel:
-		case ESatNotifyPerformCardApduPCmdCancel:
-		case ESatNotifyPowerOffCardPCmdCancel:
-		case ESatNotifyPowerOnCardPCmdCancel:
-		case ESatNotifyGetReaderStatusPCmdCancel:
-		case ESatNotifyRunAtCommandPCmdCancel:
-		case ESatNotifyLanguageNotificationPCmdCancel:
-		case ESatNotifyLaunchBrowserPCmdCancel:
-		case ESatNotifyOpenChannelPCmdCancel:
-		case ESatNotifyCloseChannelPCmdCancel:
-		case ESatNotifyReceiveDataPCmdCancel:
-		case ESatNotifySendDataPCmdCancel:
-		case ESatNotifyGetChannelStatusPCmdCancel:
-		case ESatNotifyServiceSearchPCmdCancel:
-		case ESatNotifyGetServiceInfoPCmdCancel:
-		case ESatNotifyDeclareServicePCmdCancel:
-		case ESatSendMessageNoLoggingCancel:
-		case ESatNotifyTimerExpirationCancel:
-		case ESatNotifySmsPpDownloadCancel:
-		case ESatNotifyCbDownloadCancel:		
-		case ESatNotifyTimerMgmtPCmdCancel:							
-		case ESatNotifyLocalInfoPCmdCancel:
-		case ESatNotifyPollingIntervalPCmdCancel:
-		case ESatNotifyPollingOffPCmdCancel:	
-		case ESatNotifyTsyStateUpdatedCancel:
-		case ESatNotifyRefreshRequiredCancel:
-		case ESatRefreshAllowedCancel:
-		case ESatNotifyRefreshRequiredParamCancel:
-		case ESatGetOpenChannelPCmdCancel:
-		case ESatNotifyRetrieveMultimediaMsgPCmdCancel:
-		case ESatNotifySubmitMultimediaMsgPCmdCancel:
-		case ESatNotifyDisplayMultimediaMsgPCmdCancel:
-		case ESatNotifySetFramesPCmdCancel:
-		case ESatNotifyGetFramesStatusPCmdCancel:
-		case ESatMmsNotificationDownloadCancel:
-		case ESatMmsTransferStatusCancel:
-		case ESatUssdDataDownloadCancel:
-			// The server should not use ReqMode on Cancel requests
-			User::Leave(KErrNotSupported);
-			break;
-	
-		default:
-			User::Leave(KErrNotSupported);
-			break;
-		}
-	return ret;
-	}
-
-TInt CSatDSatTsy::RegisterNotification(const TInt aIpc)
-/**
-* RegisterNotification is called when the server recognises that this notification
-* is being posted for the first time on this sub-session object.
-*
-* It enables the TSY to "turn on" any regular notification messages that it may 
-* receive from the phone
-*/
-	{
-	switch (aIpc)
-		{
-		case ESatNotifyProactiveSimSessionStart:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Proactive Sim Session Start"));
-			return KErrNone;
-		case ESatNotifyProactiveSimSessionEnd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Proactive Sim Session Stop"));
-			return KErrNone;
-		case ESatNotifyCallControlRequest:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Call Control Request"));
-			return KErrNone;
-		case ESatNotifyMoSmControlRequest:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - MO SM Control Request"));
-			return KErrNone;
-		case ESatNotifyDisplayTextPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Display Text PCmd"));
-			return KErrNone;
-		case ESatNotifyGetInkeyPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Inkey PCmd"));
-			return KErrNone;
-		case ESatNotifyGetInputPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Input PCmd"));
-			return KErrNone;
-		case ESatNotifyPlayTonePCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Play Tone PCmd"));
-			return KErrNone;
-		case ESatNotifySetUpMenuPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Menu PCmd"));
-			return KErrNone;
-		case ESatNotifySelectItemPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Select Item PCmd"));
-			return KErrNone;
-		case ESatNotifySendSmPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send SM PCmd"));
-			return KErrNone;
-		case ESatNotifySendSsPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send SS PCmd"));
-			return KErrNone;
-		case ESatNotifySendUssdPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send USSD PCmd"));
-			return KErrNone;
-		case ESatNotifySetUpCallPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Call PCmd"));
-			return KErrNone;
-		case ESatNotifyRefreshPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh PCmd"));
-			return KErrNone;
-		case ESatNotifySetUpEventListPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Event List PCmd"));
-			return KErrNone;
-		case ESatNotifySetUpIdleModeTextPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Idle Mode Text PCmd"));
-			return KErrNone;
-		case ESatNotifySendDtmfPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send DTMF PCmd"));
-			return KErrNone;
-		case ESatNotifyPerformCardApduPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Perform Card APDU"));
-			return KErrNone;
-		case ESatNotifyPowerOffCardPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Power Off Card"));
-			return KErrNone;
-		case ESatNotifyPowerOnCardPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Power On Card"));
-			return KErrNone;
-		case ESatNotifyGetReaderStatusPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Reader Status"));
-			return KErrNone;
-		case ESatNotifyRunAtCommandPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Run AT Command"));
-			return KErrNone;
-		case ESatNotifyLanguageNotificationPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Language Notification"));
-			return KErrNone;
-		case ESatNotifyLaunchBrowserPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Launch Browser"));
-			return KErrNone;
-		case ESatNotifyOpenChannelPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Open Channel"));
-			return KErrNone;
-		case ESatNotifyCloseChannelPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Close Channel"));
-			return KErrNone;
-		case ESatNotifyReceiveDataPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Receive Data"));
-			return KErrNone;
-		case ESatNotifySendDataPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send Data"));
-			return KErrNone;
-		case ESatNotifyGetChannelStatusPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Channel Status"));
-			return KErrNone;
-		case ESatNotifyServiceSearchPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Service Search"));
-			return KErrNone;
-		case ESatNotifyGetServiceInfoPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Service Info"));
-			return KErrNone;
-		case ESatNotifyDeclareServicePCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Declare Service"));
-			return KErrNone;
-		case ESatNotifyTimerExpiration:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Timer expiration"));
-			return KErrNone;
-		case ESatNotifySmsPpDownload:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Sms PP Dowmload"));
-			return KErrNone;
-		case ESatNotifyCbDownload:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - CB Download"));
-			return KErrNone;
-		case ESatNotifyTimerMgmtPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Timer Managt"));
-			return KErrNone;
-		case ESatNotifyLocalInfoPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Local Info"));
-			return KErrNone;
-		case ESatNotifyPollingIntervalPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Polling Interval"));
-			return KErrNone;
-		case ESatNotifyPollingOffPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Polling Pff"));
-			return KErrNone;
-		case ESatNotifyTsyStateUpdated:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - TSY State Updated"));
-			return KErrNone;
-		case ESatNotifyRefreshRequired:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh Required"));
-			return KErrNone;
-		case ESatNotifyRefreshRequiredParam:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh Required Param"));
-			return KErrNone;
-		case ESatNotifyRetrieveMultimediaMsgPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Retrieve Multimedia Message"));
-			return KErrNone;
-		case ESatNotifySubmitMultimediaMsgPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Submit Multimedia Message"));
-			return KErrNone;
-		case ESatNotifyDisplayMultimediaMsgPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Display Multimedia Message"));
-			return KErrNone;
-		case  ESatNotifySetFramesPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Frames"));
-			return KErrNone;
-		case  ESatNotifyGetFramesStatusPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Frames Status"));
-			return KErrNone;
-		default:
-			// Unknown or invalid IPC
-			LOGTEXT(_L8("CSatDSatTsy: Register error, unknown IPC"));
-			return KErrNotSupported;
-		}
-	}
-
-TInt CSatDSatTsy::DeregisterNotification(const TInt aIpc)
-/**
-* DeregisterNotification is called when the server recognises that this notification
-* will not be posted again because the last client to have a handle on this sub-session
-* object has just closed the handle.
-*
-* It enables the TSY to "turn off" any regular notification messages that it may 
-* receive from the phone
-*/
-	{
-	switch (aIpc)
-		{
-		case ESatNotifyProactiveSimSessionStart:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Proactive Sim Session Start"));
-			return KErrNone;
-		case ESatNotifyProactiveSimSessionEnd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Proactive Sim Session Stop"));
-			return KErrNone;
-		case ESatNotifyCallControlRequest:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Call Control Request"));
-			return KErrNone;
-		case ESatNotifyMoSmControlRequest:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - MO SM Control Request"));
-			return KErrNone;
-		case ESatNotifyDisplayTextPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Display Text PCmd"));
-			return KErrNone;
-		case ESatNotifyGetInkeyPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Inkey PCmd"));
-			return KErrNone;
-		case ESatNotifyGetInputPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Input PCmd"));
-			return KErrNone;
-		case ESatNotifyPlayTonePCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Play Tone PCmd"));
-			return KErrNone;
-		case ESatNotifySetUpMenuPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Menu PCmd"));
-			return KErrNone;
-		case ESatNotifySelectItemPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Select Item PCmd"));
-			return KErrNone;
-		case ESatNotifySendSmPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send SM PCmd"));
-			return KErrNone;
-		case ESatNotifySendSsPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send SS PCmd"));
-			return KErrNone;
-		case ESatNotifySendUssdPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send USSD PCmd"));
-			return KErrNone;
-		case ESatNotifySetUpCallPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Call PCmd"));
-			return KErrNone;
-		case ESatNotifyRefreshPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh PCmd"));
-			return KErrNone;
-		case ESatNotifySetUpEventListPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Event List PCmd"));
-			return KErrNone;
-		case ESatNotifySetUpIdleModeTextPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Idle Mode Text PCmd"));
-			return KErrNone;
-		case ESatNotifySendDtmfPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send DTMF PCmd"));
-			return KErrNone;
-		case ESatNotifyPerformCardApduPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Perform Card APDU"));
-			return KErrNone;
-		case ESatNotifyPowerOffCardPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Power Off Card"));
-			return KErrNone;
-		case ESatNotifyPowerOnCardPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Power On Card"));
-			return KErrNone;
-		case ESatNotifyGetReaderStatusPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Reader Status"));
-			return KErrNone;
-		case ESatNotifyRunAtCommandPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Run AT Command"));
-			return KErrNone;
-		case ESatNotifyLanguageNotificationPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Language Notification"));
-			return KErrNone;
-		case ESatNotifyLaunchBrowserPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Launch Browser"));
-			return KErrNone;
-		case ESatNotifyOpenChannelPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Open Channel"));
-			return KErrNone;
-		case ESatNotifyCloseChannelPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Close Channel"));
-			return KErrNone;
-		case ESatNotifyReceiveDataPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Receive Data"));
-			return KErrNone;
-		case ESatNotifySendDataPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send Data"));
-			return KErrNone;
-		case ESatNotifyGetChannelStatusPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Channel Status"));
-			return KErrNone;
-		case ESatNotifyServiceSearchPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Service Search"));
-			return KErrNone;
-		case ESatNotifyGetServiceInfoPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Service Info"));
-			return KErrNone;
-		case ESatNotifyDeclareServicePCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Declare Service"));
-			return KErrNone;		
-		case ESatNotifyTimerExpiration:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Timer expiration"));
-			return KErrNone;
-		case ESatNotifySmsPpDownload:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Sms PP Dowmload"));
-			return KErrNone;
-		case ESatNotifyCbDownload:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - CB Download"));
-			return KErrNone;
-		case ESatNotifyTimerMgmtPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Timer Managt"));
-			return KErrNone;
-		case ESatNotifyLocalInfoPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Local Info"));
-			return KErrNone;
-		case ESatNotifyPollingIntervalPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Polling Interval"));
-			return KErrNone;
-		case ESatNotifyPollingOffPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Polling Pff"));
-			return KErrNone;
-		case ESatNotifyTsyStateUpdated:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - TSY State Updated"));
-			return KErrNone;
-		case ESatNotifyRefreshRequired:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh Required"));
-			return KErrNone;
-		case ESatNotifyRefreshRequiredParam:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh Required Param"));
-			return KErrNone;
-		case ESatNotifyRetrieveMultimediaMsgPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Retrieve Multimedia Message"));
-			return KErrNone;
-		case ESatNotifySubmitMultimediaMsgPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Submit Multimedia Message"));
-			return KErrNone;
-		case ESatNotifyDisplayMultimediaMsgPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Display Multimedia Message"));
-			return KErrNone;
-		case  ESatNotifySetFramesPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Frames"));
-			return KErrNone;
-		case  ESatNotifyGetFramesStatusPCmd:
-			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Frames Status"));
-			return KErrNone;
-		default:
-			// Unknown or invalid IPC
-			LOGTEXT(_L8("CSatDSatTsy: Deregister error, unknown IPC"));
-			return KErrNotSupported;
-		}
-	}
-
-TInt CSatDSatTsy::NumberOfSlotsL(const TInt aIpc)
-/**
-* NumberOfSlotsL is called by the server when it is registering a new notification
-* It enables the TSY to tell the server how many buffer slots to allocate for
-* "repost immediately" notifications that may trigger before clients collect them
-*/
-	{
-	TInt numberOfSlots=1;
-	switch (aIpc)
-		{
-		case ESatNotifyProactiveSimSessionStart:
-		case ESatNotifyProactiveSimSessionEnd:
-			LOGTEXT(_L8("CSatDSatTsy: Registered with 1 slot"));
-			numberOfSlots=1;
-			break;
-
-		case ESatNotifyCallControlRequest:
-		case ESatNotifyMoSmControlRequest:
-		case ESatNotifyDisplayTextPCmd:
-		case ESatNotifyGetInkeyPCmd:
-		case ESatNotifyGetInputPCmd:
-		case ESatNotifyPlayTonePCmd:
-		case ESatNotifySetUpMenuPCmd:
-		case ESatNotifySelectItemPCmd:
-		case ESatNotifySendSmPCmd:
-		case ESatNotifySendSsPCmd:
-		case ESatNotifySendUssdPCmd:
-		case ESatNotifySetUpCallPCmd:
-		case ESatNotifyRefreshPCmd:
-		case ESatNotifySetUpEventListPCmd:
-		case ESatNotifySetUpIdleModeTextPCmd:
-		case ESatNotifySendDtmfPCmd:
-		case ESatNotifyPerformCardApduPCmd:
-		case ESatNotifyPowerOffCardPCmd:
-		case ESatNotifyPowerOnCardPCmd:
-		case ESatNotifyGetReaderStatusPCmd:
-		case ESatNotifyRunAtCommandPCmd:
-		case ESatNotifyLanguageNotificationPCmd:
-		case ESatNotifyLaunchBrowserPCmd:
-		case ESatNotifyOpenChannelPCmd:
-		case ESatNotifyCloseChannelPCmd:
-		case ESatNotifyReceiveDataPCmd:
-		case ESatNotifySendDataPCmd:
-		case ESatNotifyGetChannelStatusPCmd:
-		case ESatNotifyServiceSearchPCmd:
-		case ESatNotifyGetServiceInfoPCmd:
-		case ESatNotifyDeclareServicePCmd:
-		case ESatNotifyTimerExpiration:
-		case ESatNotifySmsPpDownload:
-		case ESatNotifyCbDownload:		
-		case ESatNotifyTimerMgmtPCmd:							
-		case ESatNotifyLocalInfoPCmd:
-		case ESatNotifyPollingIntervalPCmd:
-		case ESatNotifyPollingOffPCmd:
-		case ESatNotifyTsyStateUpdated:
-		case ESatNotifyRefreshRequired:
-		case ESatNotifyRefreshRequiredParam:
-		case ESatNotifyRetrieveMultimediaMsgPCmd:							
-		case ESatNotifySubmitMultimediaMsgPCmd:
-		case ESatNotifyDisplayMultimediaMsgPCmd:
-		case ESatNotifySetFramesPCmd :
-		case ESatNotifyGetFramesStatusPCmd: 		
-			LOGTEXT(_L8("CSatDSatTsy: Registered with 2 slot"));
-			numberOfSlots=2;
-			break;
-		default:
-			// Unknown or invalid IPC
-			LOGTEXT(_L8("CSatDSatTsy: Number of Slots error, unknown IPC"));
-			User::Leave(KErrNotSupported);
-			break;
-		}  
-	return numberOfSlots;
-	}
-
-
-TInt CSatDSatTsy::ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,
-							  const TDataPackage& aPackage)
-/**
-* ExtFunc is called by the server when it has a "extended", i.e. non-core ETel request 
-* for the TSY to process
-* A request handle, request type and request data are passed to the TSY
-*/
-	{
-	TAny* dataPtr=aPackage.Ptr1();
-	TAny* dataPtr2=aPackage.Ptr2();
-
-	switch (aIpc)
-		{
-		case ESatNotifyProactiveSimSessionStart:
-			return NotifyProactiveSimSessionStart(aTsyReqHandle);
-		case ESatNotifyProactiveSimSessionEnd:
-			return NotifyProactiveSimSessionEnd(aTsyReqHandle);
-		case ESatNotifyCallControlRequest:
-			return NotifyCallControlRequest(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyMoSmControlRequest:
-			return NotifyMoSmControlRequest(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyDisplayTextPCmd:
-			return NotifyDisplayTextPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyGetInkeyPCmd:
-			return NotifyGetInkeyPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyGetInputPCmd:
-			return NotifyGetInputPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyPlayTonePCmd:
-			return NotifyPlayTonePCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySetUpMenuPCmd:
-			return NotifySetUpMenuPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySelectItemPCmd:
-			return NotifySelectItemPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySendSmPCmd:
-			return NotifySendSmPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySendSsPCmd:
-			return NotifySendSsPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySendUssdPCmd:
-			return NotifySendUssdPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySetUpCallPCmd:
-			return NotifySetUpCallPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyRefreshPCmd:
-			return NotifyRefreshPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySetUpEventListPCmd:
-			return NotifySetUpEventListPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySetUpIdleModeTextPCmd:
-			return NotifySetUpIdleModeTextPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySendDtmfPCmd:
-			return NotifySendDtmfPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatGetIcon:
-			return GetIcon(aTsyReqHandle,
-			REINTERPRET_CAST(TUint8*, dataPtr),
-			REINTERPRET_CAST(RSat::TIcon*, dataPtr2));
-		case ESatGetImageInstance:
-			return GetImageInstance(aTsyReqHandle,
-			aPackage.Des1n(),
-			aPackage.Des2n());
-		case ESatGetClut:
-			return GetClut(aTsyReqHandle,
-			REINTERPRET_CAST(RSat::TInstanceNumberAndOffset*, dataPtr),
-			aPackage.Des2n());
-		case ESatTerminalRsp:
-			return TerminalRsp(aTsyReqHandle,
-				REINTERPRET_CAST(RSat::TPCmd*, dataPtr),aPackage.Des2n());
-		case ESatGetMeSideSatProfile:
-			return GetMeSideSatProfile(aTsyReqHandle, aPackage.Des1n());
-		case ESatClientSatProfileIndication:
-			return ClientSatProfileIndication(aTsyReqHandle, aPackage.Des1n());
-		case ESatMenuSelection:
-			return MenuSelection(aTsyReqHandle, aPackage.Des1n());
-		case ESatEventDownload:
-			return EventDownload(aTsyReqHandle, 
-				REINTERPRET_CAST(RSat::TEventList*, dataPtr),
-				aPackage.Des2n());
-		case ESatRefreshAllowed:
-			return RefreshAllowed(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyPerformCardApduPCmd:
-			return NotifyPerformCardApduPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyPowerOffCardPCmd:
-			return NotifyPowerOffCardPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyPowerOnCardPCmd:
-			return NotifyPowerOnCardPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyGetReaderStatusPCmd:
-			return NotifyGetReaderStatusPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyRunAtCommandPCmd:
-			return NotifyRunAtCommandPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyLanguageNotificationPCmd:
-			return NotifyLanguageNotificationPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyLaunchBrowserPCmd:
-			return NotifyLaunchBrowserPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyOpenChannelPCmd:
-			return NotifyOpenChannelPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatGetOpenChannelPCmd:
-			return GetOpenChannelPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyCloseChannelPCmd:
-			return NotifyCloseChannelPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyReceiveDataPCmd:
-			return NotifyReceiveDataPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySendDataPCmd:
-			return NotifySendDataPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyGetChannelStatusPCmd:
-			return NotifyGetChannelStatusPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyServiceSearchPCmd:
-			return NotifyServiceSearchPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyGetServiceInfoPCmd:
-			return NotifyGetServiceInfoPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyDeclareServicePCmd:
-			return NotifyDeclareServicePCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatUsatClientReadyIndication:
-			return UsatClientReadyIndication(aTsyReqHandle);
-		case ESatGetProvisioningRefFile:
-			return GetProvisioningRefFile(aTsyReqHandle, 
-				REINTERPRET_CAST(RSat::TProvisioningFileRef*, dataPtr),
-				aPackage.Des2n());
-		case ESatSendMessageNoLogging:
-			return SendMessageNoLogging(aTsyReqHandle, 
-				aPackage.Des1n(),
-				REINTERPRET_CAST(TUint16*, dataPtr2));				
-		case ESatNotifyTimerExpiration:
-			return NotifyTimerExpiration(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySmsPpDownload:
-			return NotifySmsPpDownload(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyCbDownload:
-			return NotifyCbDownload(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyTimerMgmtPCmd:
-			return NotifyTimerManagtPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyLocalInfoPCmd:
-			return NotifyLocalInfoPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyPollingIntervalPCmd:
-			return NotifyPollingIntervalPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyPollingOffPCmd:
-			return NotifyPollingOffPCmd(aTsyReqHandle, aPackage.Des1n());			
-		case ESatNotifyTsyStateUpdated:
-			return NotifyTsyStateUpdated(aTsyReqHandle, 
-				REINTERPRET_CAST(RSat::TPCmd*, dataPtr));
-		case ESatNotifyRefreshRequired:
-			return NotifyRefreshRequired(aTsyReqHandle);
-		case ESatNotifyRefreshRequiredParam:
-			return NotifyRefreshRequired(aTsyReqHandle, aPackage.Des1n());
-		case ETestCustomIPC1:
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-		case ESatNotifyRetrieveMultimediaMsgPCmd:
-			return NotifyRetrieveMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifySubmitMultimediaMsgPCmd:
-			return NotifySubmitMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatNotifyDisplayMultimediaMsgPCmd:
-			return NotifyDisplayMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
-		case  ESatNotifySetFramesPCmd:
-			return NotifySetFramesPCmd(aTsyReqHandle, aPackage.Des1n());			
-		case  ESatNotifyGetFramesStatusPCmd:
-			return NotifyGetFramesStatusPCmd(aTsyReqHandle, aPackage.Des1n());
-		case ESatMmsNotificationDownload:
-			return MmsNotificationDownload(aTsyReqHandle, aPackage.Des1n());
-		case ESatMmsTransferStatus:
-			return MmsTransferStatus(aTsyReqHandle, aPackage.Des1n());		
-		case ESatUssdDataDownload :
-			return UssdDataDownload(aTsyReqHandle, aPackage.Des1n());
-		default:
-			return KErrNotSupported;
-		}
-	}
-
-TInt CSatDSatTsy::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle)
-/**
-* CancelService is called by the server when it is "cleaning-up" any still outstanding
-* asynchronous requests before closing a client's sub-session.
-*
-* CancelService is also called when individual cancel methods are called by the client,
-* who wishes to cancel an outstanding asynchronous request.
-*
-* This will happen if a client closes its R-class handle without cancelling outstanding
-* asynchronous requests.
-*/
-	{
-	LOGTEXT(_L8("CSatDSatTsy: - CancelService called"));
-	switch (aIpc)
-		{
-		case ESatNotifyProactiveSimSessionEnd:
-			return NotifyProactiveSimSessionEndCancel(aTsyReqHandle);
-		case ESatNotifyProactiveSimSessionStart:
-			return NotifyProactiveSimSessionStartCancel(aTsyReqHandle);
-		case ESatGetIcon:
-			return GetIconCancel(aTsyReqHandle);
-		case ESatGetImageInstance:
-			return GetImageInstanceCancel(aTsyReqHandle);
-		case ESatGetClut:
-			return GetClutCancel(aTsyReqHandle);
-		case ESatTerminalRsp:
-			return TerminalRspCancel(aTsyReqHandle);
-		case ESatGetMeSideSatProfile:
-			return GetMeSideSatProfileCancel(aTsyReqHandle);
-		case ESatMenuSelection:
-			return MenuSelectionCancel(aTsyReqHandle);
-		case ESatRefreshAllowed:
-			return RefreshAllowedCancel(aTsyReqHandle);
-		case ESatNotifyCallControlRequest:
-			return NotifyCallControlRequestCancel(aTsyReqHandle);
-		case ESatNotifyMoSmControlRequest:
-			return NotifyMoSmControlRequestCancel(aTsyReqHandle);
-		case ESatEventDownload:
-			return EventDownloadCancel(aTsyReqHandle);
-		case ESatNotifyDisplayTextPCmd:
-			return NotifyDisplayTextPCmdCancel(aTsyReqHandle);
- 		case ESatNotifyGetInkeyPCmd:
-			return NotifyGetInkeyPCmdCancel(aTsyReqHandle);
-		case ESatNotifyGetInputPCmd:
-			return NotifyGetInputPCmdCancel(aTsyReqHandle);
-		case ESatNotifyPlayTonePCmd:
-			return NotifyPlayTonePCmdCancel(aTsyReqHandle);
-		case ESatNotifySetUpMenuPCmd:
-			return NotifySetUpMenuPCmdCancel(aTsyReqHandle);
-		case ESatNotifySelectItemPCmd:
-			return NotifySelectItemPCmdCancel(aTsyReqHandle);
-		case ESatNotifySendSmPCmd:
-			return NotifySendSmPCmdCancel(aTsyReqHandle);
-		case ESatNotifySendSsPCmd:
-			return NotifySendSsPCmdCancel(aTsyReqHandle);
-		case ESatNotifySendUssdPCmd:
-			return NotifySendUssdPCmdCancel(aTsyReqHandle);
-		case ESatNotifySetUpCallPCmd:
-			return NotifySetUpCallPCmdCancel(aTsyReqHandle);
-		case ESatNotifyRefreshPCmd:
-			return NotifyRefreshPCmdCancel(aTsyReqHandle);
-		case ESatNotifySetUpEventListPCmd:
-			return NotifySetUpEventListPCmdCancel(aTsyReqHandle);
-		case ESatNotifySetUpIdleModeTextPCmd:
-			return NotifySetUpIdleModeTextPCmdCancel(aTsyReqHandle);
-		case ESatNotifySendDtmfPCmd:
-			return NotifySendDtmfPCmdCancel(aTsyReqHandle);
-		case ESatNotifyPerformCardApduPCmd:
-			return NotifyPerformCardApduPCmdCancel(aTsyReqHandle);
-		case ESatNotifyPowerOffCardPCmd:
-			return NotifyPowerOffCardPCmdCancel(aTsyReqHandle);
-		case ESatNotifyPowerOnCardPCmd:
-			return NotifyPowerOnCardPCmdCancel(aTsyReqHandle);
-		case ESatNotifyGetReaderStatusPCmd:
-			return NotifyGetReaderStatusPCmdCancel(aTsyReqHandle);
-		case ESatNotifyRunAtCommandPCmd:
-			return NotifyRunAtCommandPCmdCancel(aTsyReqHandle);
-		case ESatNotifyLanguageNotificationPCmd:
-			return NotifyLanguageNotificationPCmdCancel(aTsyReqHandle);
-		case ESatNotifyLaunchBrowserPCmd:
-			return NotifyLaunchBrowserPCmdCancel(aTsyReqHandle);
-		case ESatNotifyOpenChannelPCmd:
-			return NotifyOpenChannelPCmdCancel(aTsyReqHandle);
-		case ESatGetOpenChannelPCmd:
-			return GetOpenChannelPCmdCancel(aTsyReqHandle);			
-		case ESatNotifyCloseChannelPCmd:
-			return NotifyCloseChannelPCmdCancel(aTsyReqHandle);
-		case ESatNotifyReceiveDataPCmd:
-			return NotifyReceiveDataPCmdCancel(aTsyReqHandle);
-		case ESatNotifySendDataPCmd:
-			return NotifySendDataPCmdCancel(aTsyReqHandle);
-		case ESatNotifyGetChannelStatusPCmd:
-			return NotifyGetChannelStatusPCmdCancel(aTsyReqHandle);
-		case ESatNotifyServiceSearchPCmd:
-			return NotifyServiceSearchPCmdCancel(aTsyReqHandle);
-		case ESatNotifyGetServiceInfoPCmd:
-			return NotifyGetServiceInfoPCmdCancel(aTsyReqHandle);
-		case ESatNotifyDeclareServicePCmd:
-			return NotifyDeclareServicePCmdCancel(aTsyReqHandle);
-		case ESatGetProvisioningRefFile:
-			return GetProvisioningRefFileCancel(aTsyReqHandle);
-		case ESatSendMessageNoLogging:
-			return SendMessageNoLoggingCancel(aTsyReqHandle);
-		case ESatNotifyTimerExpiration:
-			return NotifyTimerExpirationCancel(aTsyReqHandle);
-		case ESatNotifySmsPpDownload:
-			return NotifySmsPpDownloadCancel(aTsyReqHandle);
-		case ESatNotifyCbDownload:
-			return NotifyCbDownloadCancel(aTsyReqHandle);
-		case ESatNotifyTimerMgmtPCmd:
-			return NotifyTimerManagtPCmdCancel(aTsyReqHandle);
-		case ESatNotifyLocalInfoPCmd:
-			return NotifyLocalInfoPCmdCancel(aTsyReqHandle);
-		case ESatNotifyPollingIntervalPCmd:
-			return NotifyPollingIntervalPCmdCancel(aTsyReqHandle);
-		case ESatNotifyPollingOffPCmd:
-			return NotifyPollingOffPCmdCancel(aTsyReqHandle);
-		case ESatNotifyTsyStateUpdated:
-			return NotifyTsyStateUpdatedCancel(aTsyReqHandle);
-		case ESatNotifyRefreshRequired:
-			return NotifyRefreshRequiredCancel(aTsyReqHandle);
-		case ESatNotifyRefreshRequiredParam:
-			return NotifyRefreshRequiredCancel(aTsyReqHandle);
-		case ESatNotifyRetrieveMultimediaMsgPCmd:
-			return NotifyRetrieveMultimediaMsgPCmdCancel(aTsyReqHandle);
-		case ESatNotifySubmitMultimediaMsgPCmd:
-			return NotifySubmitMultimediaMsgPCmdCancel(aTsyReqHandle);
-		case ESatNotifyDisplayMultimediaMsgPCmd:
-			return NotifyDisplayMultimediaMsgPCmdCancel(aTsyReqHandle);
-		case  ESatNotifySetFramesPCmd:
-			return NotifySetFramesPCmdCancel(aTsyReqHandle);
-		case  ESatNotifyGetFramesStatusPCmd:
-			return NotifyGetFramesStatusPCmdCancel(aTsyReqHandle);
-		case  ESatMmsNotificationDownload:
-			return MmsNotificationDownloadCancel(aTsyReqHandle);
-		case ESatMmsTransferStatus:
-			return MmsTransferStatusCancel(aTsyReqHandle);
-		case ESatUssdDataDownload:
-			return UssdDataDownloadCancel(aTsyReqHandle);
-		default:
-			return KErrGeneral; 
-		} 
-	}
-
-
-/***********************************************************************************/
-//
-// The following methods are called from ExtFunc and/or CancelService.
-// Each of these will process a TSY request or cancel a TSY request
-// Here, example values are returned or checked within this dummy TSY in order to ensure
-// that the integrity of the data passed to/from client is maintained
-//
-/***********************************************************************************/
-
-TInt CSatDSatTsy::GetIcon(const TTsyReqHandle aTsyReqHandle, TUint8* aRecordNumber, RSat::TIcon* aIconEf)
-	{
-	if((iGetIcon==0)||(iGetIcon==1))
-		{
-		iGetIcon++;
-		LOGTEXT(_L8("CSatDSatTsy::GetIcon called"));
-		switch(*aRecordNumber)
-			{
-			case 1:
-				*aIconEf=DSATTSY_ICON_EF1;
-				break;
-			case 2:
-				*aIconEf=DSATTSY_ICON_EF2;
-				break;
-			default:
-				*aIconEf=DSATTSY_ICON_EF1;
-				break;
-			}
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetIconCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::GetIconCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::GetImageInstance(const TTsyReqHandle aTsyReqHandle, TDesC8* aCallParams, TDes8* aInstance)
-/**
-* The first time that this method is called, iGetImageInstance=0
-* The request completes - ReqCompleted is called. One of the test cases for 
-* aInstanceNumber can be tested.
-*
-* The second time that this method is called, iGetImageInstance=1
-* The request completes - ReqCompleted is called. Another one of the test cases
-* for aInstanceNumber can be tested.
-* 
-* The third time that this method is called, iGetImageInstance=2
-* The request does not complete.
-*
-* This mechanism prevents an infinite loop as each time a notification completes,
-* it is reposted automatically by the server, which would in this test code create an
-* infinite loop of posting, completing and reposting the notification.
-*
-* This mechanism also allows the test client to test the cancel method associated.
-*
-* If parameters become corrupted in either of the two tests then 'KErrCorrupt' 
-* and an unknown image instance returned.
-*/
-	{
-	LOGTEXT(_L8("CSatDSatTsy::GetImageInstance called"));
-	
-	TInt result=KErrNone;
-	
-	RSat::TInstanceInfoV3Pckg* paramsPckgV3 = (RSat::TInstanceInfoV3Pckg*)aCallParams;
-	RSat::TInstanceInfoV3& paramsV3 = (*paramsPckgV3)();
-
-	if((iGetImageInstance==0)||(iGetImageInstance==1))
-		{
-		iGetImageInstance++;
-		
-		if(paramsV3.ExtensionId()== RSat::KSatV3)
-			{
-			// check that all parameters are being passed correctly
-			if( paramsV3.iInstanceNumber == DSATTSY_INSTANCE_NUMBER1 &&
-				paramsV3.iLength==DSATTSY_INSTANCE_LENGTH1 && 
-				paramsV3.iOffset==DSATTSY_INSTANCE_OFFSET1 &&	
-				paramsV3.iCoding==DSATTSY_INSTANCE_CODING_BASIC &&
-				paramsV3.iImgWidth==DSATTSY_INSTANCE_WIDTH_1 &&
-				paramsV3.iImgHeight==DSATTSY_INSTANCE_HEIGHT_1 &&
-				paramsV3.iFileId==DSATTSY_INSTANCE_FILE_ID_1 ) 
-				{
-				*aInstance=DSATTSY_IMG_INSTANCE1;
-				}
-			else if(paramsV3.iInstanceNumber == DSATTSY_INSTANCE_NUMBER2 &&
-					paramsV3.iLength==DSATTSY_INSTANCE_LENGTH2 && 
-					paramsV3.iOffset==DSATTSY_INSTANCE_OFFSET2 &&
-					paramsV3.iCoding==DSATTSY_INSTANCE_CODING_COLOUR &&
-					paramsV3.iImgWidth==DSATTSY_INSTANCE_WIDTH_2 &&
-					paramsV3.iImgHeight==DSATTSY_INSTANCE_HEIGHT_2 &&
-					paramsV3.iFileId==DSATTSY_INSTANCE_FILE_ID_2 )
-							{
-				*aInstance=DSATTSY_IMG_INSTANCE2;
-				}
-			else
-				{
-				// parameters have been corrupted
-				*aInstance=DSATTSY_IMG_INSTANCE_UNKNOWN;
-				result=KErrCorrupt;
-				}
-			}				
-		ReqCompleted(aTsyReqHandle,result);
-		}
-
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return result;
-	}
-
-
-TInt CSatDSatTsy::GetImageInstanceCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::GetImageInstanceCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::GetClut(const TTsyReqHandle aTsyReqHandle, RSat::TInstanceNumberAndOffset* aClutInfo, TDes8* aClut)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::GetClut called"));
-
-	if((aClutInfo->iInstanceNumber!=DSATTSY_INSTANCE_NUMBER1)
-			||(aClutInfo->iOffset!=DSATTSY_CLUT_OFFSET))
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-
-	if(iGetClut==0)
-		{
-		iGetClut++;
-		*aClut= DSATTSY_CLUT1;
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetClutCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::GetClutCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::DisplayTextTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TDisplayTextRspV1Pckg* aRspPckg = (RSat::TDisplayTextRspV1Pckg*)aRsp;
-	RSat::TDisplayTextRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.PCmdNumber()!=DSATTSY_DISPLAY_TEXT_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iDisplayTextTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetInkeyTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TGetInkeyRspV1Pckg* aRspPckg = (RSat::TGetInkeyRspV1Pckg*)aRsp;
-	RSat::TGetInkeyRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
-		||(rspV1.iRspFormat!=DSATTSY_USER_RSP_FORMAT)
-		||(rspV1.iAdditionalInfo!=DSATTSY_USER_TEXT_INPUT)
-		||(rspV1.PCmdNumber()!=DSATTSY_GET_INKEY_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iGetInkeyTerminalRsp++)
-		{
-		if(rspV1.ExtensionId()==RSat::KSatV2)
-			{
-			RSat::TGetInkeyRspV2Pckg* aV2RspPckg = (RSat::TGetInkeyRspV2Pckg*)aRsp;
-			RSat::TGetInkeyRspV2& rspV2 = (*aV2RspPckg)();
-			
-			if((rspV2.iDuration.iTimeUnit!=DSATTSY_TIME_UNIT)
-				|| (rspV2.iDuration.iNumOfUnits!=DSATTSY_NUM_OF_UNITS))
-				{
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}
-			else
-				ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		else
-			ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetInputTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TGetInputRspV1Pckg* aRspPckg = (RSat::TGetInputRspV1Pckg*)aRsp;
-	RSat::TGetInputRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
-		||(rspV1.iRspFormat!=DSATTSY_GET_INPUT_RSP_FORMAT)
-		||(rspV1.iAdditionalInfo!=DSATTSY_USER_TEXT_INPUT)
-		||(rspV1.PCmdNumber()!=DSATTSY_GET_INPUT_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iGetInputTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::PlayToneTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TPlayToneRspV1Pckg* aRspPckg = (RSat::TPlayToneRspV1Pckg*)aRsp;
-	RSat::TPlayToneRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_PLAY_TONE_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iPlayToneTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}	
-
-TInt CSatDSatTsy::SetUpMenuRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSetUpMenuRspV1Pckg* aRspPckg = (RSat::TSetUpMenuRspV1Pckg*)aRsp;
-	RSat::TSetUpMenuRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_MENU_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iSetUpMenuTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::SelectItemTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSelectItemRspV1Pckg* aRspPckg = (RSat::TSelectItemRspV1Pckg*)aRsp;
-	RSat::TSelectItemRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_ITEM_ID)
-		||(rspV1.iAdditionalInfo!=DSATTSY_RSP_ITEM_ID)
-		||(rspV1.PCmdNumber()!=DSATTSY_SELECT_ITEM_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iSelectItemTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::SendSmTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSendSmRspV1Pckg* aRspPckg = (RSat::TSendSmRspV1Pckg*)aRsp;
-	RSat::TSendSmRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_SEND_SM_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iSendSmTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::SendSSTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSendSsRspV1Pckg* aRspPckg = (RSat::TSendSsRspV1Pckg*)aRsp;
-	RSat::TSendSsRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_SEND_SS_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else 
-		{
-		RSat::TControlResult ccResult;
-		rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
-
-		RSat::TCallControlType ccType;
-		rspV1.iCcRequestedAction.GetCallControlType(ccType);
-
-		RSat::TCallSetUpParams address;
-		rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
-
-		RSat::TAlphaIdValidity validity;
-		RSat::TAlphaId alphaId;
-		rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
-
-		RSat::TBCRepeatIndicator indicator;
-		rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
-
-		if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
-		|| (address.iCcp1!=DSATTSY_CCP1) 
-		||(address.iSubAddress!=DSATTSY_SUBADDRESS)
-		|| (address.iCcp2!=DSATTSY_CCP2) 
-		|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
-		|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
-		|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
-		|| (validity!=DSATTSY_NO_ALPHAID)
-		|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
-		|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS)
-		|| (indicator != DSATTSY_BC_REPEAT_INDICATOR_SEQUENTIAL))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-
-		else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-		
-		else if(!iSendSsTerminalRsp++)
-			{
-			if(rspV1.ExtensionId()==RSat::KSatV2)
-				{
-				RSat::TSendSsRspV2Pckg* aV2RspPckg = (RSat::TSendSsRspV2Pckg*)aRsp;
-				RSat::TSendSsRspV2& rspV2 = (*aV2RspPckg)();
-			
-				if((rspV2.iUssdString.iUssdString != DSATTSY_DEFAULT_TEXT)
-				|| (rspV2.iUssdString.iDcs != DSATTSY_DCS))	
-					ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				else
-					ReqCompleted(aTsyReqHandle,KErrNone);
-				}
-			else
-				ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::SendUssdTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSendUssdRspV1Pckg* aRspPckg = (RSat::TSendUssdRspV1Pckg*)aRsp;
-	RSat::TSendUssdRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NETWORK_TEXT_STRING)
-		||(rspV1.PCmdNumber()!=DSATTSY_SEND_USSD_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else
-		{
-		RSat::TControlResult ccResult;
-		rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
-		RSat::TCallControlType ccType;
-		rspV1.iCcRequestedAction.GetCallControlType(ccType);
-
-		RSat::TCallSetUpParams address;
-		rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
-
-		RSat::TAlphaIdValidity validity;
-		RSat::TAlphaId alphaId;
-		rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
-
-		RSat::TBCRepeatIndicator indicator;
-		rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
-
-		if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
-			|| (address.iCcp1!=DSATTSY_CCP1) 
-			||(address.iSubAddress!=DSATTSY_SUBADDRESS)
-			|| (address.iCcp2!=DSATTSY_CCP2) 
-			|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
-			|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
-			|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
-			|| (validity!=DSATTSY_NO_ALPHAID)
-			|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
-			|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS
-			|| indicator != DSATTSY_BC_REPEAT_INDICATOR_SEQUENTIAL))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-
-		else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
-			||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
-			||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-
-		else if(!iSendUssdTerminalRsp++)
-			ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-		iTsyAsyncReqHandle = aTsyReqHandle;
-		return KErrNone;
-	}
-
-TInt CSatDSatTsy::SetUpCallTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSetUpCallRspV1Pckg* aRspPckg = (RSat::TSetUpCallRspV1Pckg*)aRsp;
-	RSat::TSetUpCallRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_CALL_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else
-		{
-		if(rspV1.ExtensionId()==RSat::KSatV2)
-			{
-			RSat::TSetUpCallRspV2Pckg* aRspV2Pckg = (RSat::TSetUpCallRspV2Pckg*)aRsp;
-			RSat::TSetUpCallRspV2&     rspV2      = (*aRspV2Pckg)();
-
-			if((rspV2.iUssdString.iUssdString != DSATTSY_DEFAULT_TEXT)
-			|| (rspV2.iUssdString.iDcs != DSATTSY_DCS))	
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		else
-			{
-			RSat::TControlResult ccResult;
-			rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
-
-			RSat::TCallControlType ccType;
-			rspV1.iCcRequestedAction.GetCallControlType(ccType);
-
-			RSat::TCallSetUpParams address;
-			rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
-
-			RSat::TAlphaIdValidity validity;
-			RSat::TAlphaId alphaId;
-			rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
-
-			RSat::TBCRepeatIndicator indicator;
-			rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
-
-			if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
-				|| (address.iCcp1!=DSATTSY_CCP1) 
-				|| (address.iSubAddress!=DSATTSY_SUBADDRESS)
-				|| (address.iCcp2!=DSATTSY_CCP2) 
-				|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
-				|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
-				|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
-				|| (validity!=DSATTSY_NO_ALPHAID)
-				|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
-				|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS)
-				|| (indicator != DSATTSY_BC_REPEAT_INDICATOR_ALTERNATE))
-				{
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}
-
-			else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
-				||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
-				||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
-				{
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}
-			else if(!iSetUpCallTerminalRsp++)
-				ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		}
-
-		iTsyAsyncReqHandle = aTsyReqHandle;
-		return KErrNone;
-	}
-
-TInt CSatDSatTsy::RefreshTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TRefreshRspV1Pckg* aRspPckg = (RSat::TRefreshRspV1Pckg*)aRsp;
-	RSat::TRefreshRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_REFRESH_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iRefreshTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::SetUpEventListTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSetUpEventListRspV1Pckg* aRspPckg = (RSat::TSetUpEventListRspV1Pckg*)aRsp;
-	RSat::TSetUpEventListRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_EVENT_LIST_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iSetUpEventListTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::SetUpIdleModeTextTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSetUpIdleModeTextRspV1Pckg* aRspPckg = (RSat::TSetUpIdleModeTextRspV1Pckg*)aRsp;
-	RSat::TSetUpIdleModeTextRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iSetUpIdleModeTextTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::SendDtmfTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSendDtmfRspV1Pckg* aRspPckg = (RSat::TSendDtmfRspV1Pckg*)aRsp;
-	RSat::TSendDtmfRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV1.PCmdNumber()!=DSATTSY_SEND_DTMF_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iSendDtmfTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::PerformCardApduTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TPerformCardApduRspV2Pckg* aV2RspPckg = (RSat::TPerformCardApduRspV2Pckg*)aRsp;
-	RSat::TPerformCardApduRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_PERFORM_CARD_APDU_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iPerformCardApduTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::PowerOffCardTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TPowerOffCardRspV2Pckg* aV2RspPckg = (RSat::TPowerOffCardRspV2Pckg*)aRsp;
-	RSat::TPowerOffCardRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_POWER_OFF_CARD_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iPowerOffCardTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::PowerOnCardTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TPowerOnCardRspV2Pckg* aV2RspPckg = (RSat::TPowerOnCardRspV2Pckg*)aRsp;
-	RSat::TPowerOnCardRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_POWER_ON_CARD_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iPowerOnCardTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetReaderStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TGetReaderStatusRspV2Pckg* aV2RspPckg = (RSat::TGetReaderStatusRspV2Pckg*)aRsp;
-	RSat::TGetReaderStatusRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_GET_READER_STATUS_NUMBER)
-		||(rspV2.iMode!=DSATTSY_GET_READER_STATUS_MODE))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iGetReaderStatusTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::RunAtCommandTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TRunAtCommandRspV2Pckg* aV2RspPckg = (RSat::TRunAtCommandRspV2Pckg*)aRsp;
-	RSat::TRunAtCommandRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_RUN_AT_COMMAND_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iRunAtCommandTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::LanguageNotificationTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TLanguageNotificationRspV2Pckg* aV2RspPckg = (RSat::TLanguageNotificationRspV2Pckg*)aRsp;
-	RSat::TLanguageNotificationRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_LANGUAGE_NOTIFICATION_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iLanguageNotificationTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::LaunchBrowserTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TLaunchBrowserRspV2Pckg* aV2RspPckg = (RSat::TLaunchBrowserRspV2Pckg*)aRsp;
-	RSat::TLaunchBrowserRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_LAUNCH_BROWSER_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iLaunchBrowserTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::OpenChannelTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TOpenChannelRspV2Pckg* aV2RspPckg = (RSat::TOpenChannelRspV2Pckg*)aRsp;
-	RSat::TOpenChannelRspV2& rspV2 = (*aV2RspPckg)();
-			
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_OPEN_CHANNEL_NUMBER)
-		||(rspV2.iBearer.iType!=DSATTSY_CSD_BEARER_TYPE)
-		||(rspV2.iBearer.iParams!=DSATTSY_BEARER_PARAMS)
-		||(rspV2.iBufferSize!=DSATTSY_BUFFER_SIZE))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iOpenChannelTerminalRsp++)
-		{
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::CloseChannelTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TCloseChannelRspV2Pckg* aV2RspPckg = (RSat::TCloseChannelRspV2Pckg*)aRsp;
-	RSat::TCloseChannelRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_CLOSE_CHANNEL_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iCloseChannelTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::ReceiveDataTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TReceiveDataRspV2Pckg* aV2RspPckg = (RSat::TReceiveDataRspV2Pckg*)aRsp;
-	RSat::TReceiveDataRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_RECEIVE_DATA_NUMBER)
-		||(rspV2.iChannelDataLength!=DSATTSY_DATA_LENGTH))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iReceiveDataTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::SendDataTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TSendDataRspV2Pckg* aV2RspPckg = (RSat::TSendDataRspV2Pckg*)aRsp;
-	RSat::TSendDataRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_SEND_DATA_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iSendDataTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetChannelStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TGetChannelStatusRspV2Pckg* aV2RspPckg = (RSat::TGetChannelStatusRspV2Pckg*)aRsp;
-	RSat::TGetChannelStatusRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_GET_CHANNEL_STATUS_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iGetChannelStatusTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetServiceInfoTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TGetServiceInfoRspV2Pckg* aV2RspPckg = (RSat::TGetServiceInfoRspV2Pckg*)aRsp;
-	RSat::TGetServiceInfoRspV2& rspV2 = (*aV2RspPckg)();
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_GET_SERVICE_INFO_NUMBER)
-		||(rspV2.iRecordInfo.iBearerId!=DSATTSY_BEARER_NOT_PRESENT)
-		||(rspV2.iRecordInfo.iServiceId!=DSATTSY_NULL_BEARER_ID)
-		||(rspV2.iRecordInfo.iRecord!=DSATTSY_NULL_NARROW_BUF))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iGetServiceInfoTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::DeclareServiceTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TDeclareServiceRspV2Pckg* aV2RspPckg = (RSat::TDeclareServiceRspV2Pckg*)aRsp;
-	RSat::TDeclareServiceRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_DECLARE_SERVICE_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iDeclareServiceTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::ServiceSearchTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TServiceSearchRspV2Pckg* aV2RspPckg = (RSat::TServiceSearchRspV2Pckg*)aRsp;
-	RSat::TServiceSearchRspV2& rspV2 = (*aV2RspPckg)();
-
-	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV2.PCmdNumber()!=DSATTSY_SERVICE_SEARCH_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iServiceSearchTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::TimerMgmtTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TTimerMgmtRspV3Pckg* aV3RspPckg = (RSat::TTimerMgmtRspV3Pckg*)aRsp;
-	RSat::TTimerMgmtRspV3& rspV3 = (*aV3RspPckg)();
-
-	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
-		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV3.PCmdNumber()!=DSATTSY_TIMER_MNGT_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iTimerMgmtTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::LocalInfoTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TLocalInfoRspV3Pckg* aV3RspPckg = (RSat::TLocalInfoRspV3Pckg*)aRsp;
-	RSat::TLocalInfoRspV3& rspV3 = (*aV3RspPckg)();
-
-	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
-		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV3.PCmdNumber()!=DSATTSY_LOCAL_INFO_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iLocalInfoTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-
-TInt CSatDSatTsy::PollingIntvTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TPollingIntervalRspV3Pckg* aV3RspPckg = (RSat::TPollingIntervalRspV3Pckg*)aRsp;
-	RSat::TPollingIntervalRspV3& rspV3 = (*aV3RspPckg)();
-
-	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
-		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV3.PCmdNumber()!=DSATTSY_POLLING_INTERVAL_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iPollingIntervalTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::PollingOffTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
-	{
-	RSat::TPollingOffRspV3Pckg* aV3RspPckg = (RSat::TPollingOffRspV3Pckg*)aRsp;
-	RSat::TPollingOffRspV3& rspV3 = (*aV3RspPckg)();
-
-	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
-		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
-		||(rspV3.PCmdNumber()!=DSATTSY_POLLING_OFF_NUMBER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iPollingOffTerminalRsp++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::RetrieveMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iRetrieveMultimediaMsgTerminalRsp++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd called"));
-		RSat::TRetrieveMultimediaMessageRspV6Pckg* retrieveMmRspV6PCmdPckg = (RSat::TRetrieveMultimediaMessageRspV6Pckg*)aPCmd;	
-		RSat::TRetrieveMultimediaMessageRspV6& retrieveMmRspV6 = (*retrieveMmRspV6PCmdPckg)();
-		
-		if((retrieveMmRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
-		    (retrieveMmRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
-		    (retrieveMmRspV6.PCmdNumber()!=DSATTSY_RETRIEVE_MULTIMEDIA_MESSAGE))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
-			}
-		else
-			{
-			ReqCompleted(aTsyReqHandle,KErrNone);	
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-
-
-TInt CSatDSatTsy::SubmitMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iSubmitMultimediaMsgTerminalRsp++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmd called"));
-		RSat::TSubmitMultimediaMessageRspV6Pckg* submitMMRspV6PCmdPckg = (RSat::TSubmitMultimediaMessageRspV6Pckg*)aPCmd;	
-		RSat::TSubmitMultimediaMessageRspV6& submitMMRspV6 = (*submitMMRspV6PCmdPckg)();
-		
-		if((submitMMRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
-		    (submitMMRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
-		    (submitMMRspV6.PCmdNumber()!=DSATTSY_SUBMIT_MULTIMEDIA_MESSAGE))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
-			}
-		else
-			{
-			ReqCompleted(aTsyReqHandle,KErrNone);	
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::DisplayMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iDisplayMultimediaMsgTerminalRsp++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd called"));
-		RSat::TDisplayMultimediaMessageRspV6Pckg* displayMMRspV6PCmdPckg = (RSat::TDisplayMultimediaMessageRspV6Pckg*)aPCmd;	
-		RSat::TDisplayMultimediaMessageRspV6& displayMMRspV6 = (*displayMMRspV6PCmdPckg)();
-		
-		if((displayMMRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
-		    (displayMMRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
-		    (displayMMRspV6.PCmdNumber()!=DSATTSY_DISPLAY_MULTIMEDIA_MESSAGE))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
-			}
-		else
-			{
-			ReqCompleted(aTsyReqHandle,KErrNone);	
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-	
-TInt CSatDSatTsy::SetFramesTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iSetFramesTerminalRsp++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::SetFramesTerminalRsp called"));
-		RSat::TSetFramesRspV6Pckg* setFramesRspV6PCmdPckg = (RSat::TSetFramesRspV6Pckg*)aPCmd;	
-		RSat::TSetFramesRspV6& setFramesRspV6 = (*setFramesRspV6PCmdPckg)();
-		
-		if((setFramesRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
-		    (setFramesRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
-		    (setFramesRspV6.PCmdNumber()!=DSATTSY_SET_FRAMES) ||
-		    (setFramesRspV6.iFramesInformation.iFrameId!=DSATTSY_FRAMES_INFORMATION_FRAMEID) ||
-		    (setFramesRspV6.iFramesInformation.iFrameList!=DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
-			}
-		else
-			{
-			ReqCompleted(aTsyReqHandle,KErrNone);	
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-	
-TInt CSatDSatTsy::GetFramesStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iGetFramesStatusTerminalRsp++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmd called"));
-		RSat::TGetFramesStatusRspV6Pckg* getFramesStatusRspV6PCmdPckg = (RSat::TGetFramesStatusRspV6Pckg*)aPCmd;	
-		RSat::TGetFramesStatusRspV6& getFramesStatusRspV6 = (*getFramesStatusRspV6PCmdPckg)();	
-		
-		if((getFramesStatusRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(getFramesStatusRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(getFramesStatusRspV6.PCmdNumber()!=DSATTSY_GET_FRAMES_STATUS) 
-		||(getFramesStatusRspV6.iFramesInformation.iFrameId!=DSATTSY_FRAMES_INFORMATION_FRAMEID) 
-		||(getFramesStatusRspV6.iFramesInformation.iFrameList!=DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-		else 
-			{
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-	
-
-
-TInt CSatDSatTsy::TerminalRsp(const TTsyReqHandle aTsyReqHandle, RSat::TPCmd* aPCmd, TDes8* aRsp)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::TerminalRsp called"));
-	switch (*aPCmd)
-		{
-		case RSat::EDisplayText:
-			return DisplayTextTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EGetInkey:
-			return GetInkeyTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EGetInput:
-			return GetInputTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EPlayTone:
-			return PlayToneTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESetUpMenu:
-			return SetUpMenuRsp(aTsyReqHandle, aRsp);
-		case RSat::ESelectItem:
-			return SelectItemTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESendSm:
-			return SendSmTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESendSs:
-			return SendSSTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESendUssd:
-			return SendUssdTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESetUpCall:
-			return SetUpCallTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ERefresh:
-			return RefreshTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESetUpEventList:
-			return SetUpEventListTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESetUpIdleModeText:
-			return SetUpIdleModeTextTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESendDtmf:
-			return SendDtmfTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EPerformCardApdu:
-			return PerformCardApduTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EPowerOffCard:
-			return PowerOffCardTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EPowerOnCard:
-			return PowerOnCardTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EGetReaderStatus:
-			return GetReaderStatusTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ERunAtCommand:
-			return RunAtCommandTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ELanguageNotification:
-			return LanguageNotificationTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ELaunchBrowser:
-			return LaunchBrowserTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EOpenChannelCs:
-		case RSat::EOpenChannelGprs:
-		case RSat::EOpenChannelLocal:
-		case RSat::EOpenChannelUiccServerMode:
-			return OpenChannelTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ECloseChannel:
-			return CloseChannelTerminalRsp(aTsyReqHandle, aRsp);			
-		case RSat::EReceiveData:
-			return ReceiveDataTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESendData:
-			return SendDataTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EGetChannelStatus:
-			return GetChannelStatusTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EDeclareService:
-			return DeclareServiceTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EServiceSearch:
-			return ServiceSearchTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EGetServiceInformation:
-			return GetServiceInfoTerminalRsp(aTsyReqHandle,aRsp);		
-		case RSat::ETimerMngt:
-			return TimerMgmtTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ELocalInfo:
-			return LocalInfoTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EPollingInterval:
-			return PollingIntvTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EPollingOff:
-			return PollingOffTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ERetrieveMultimediaMsg:
-			return RetrieveMultimediaMsgTerminalRsp(aTsyReqHandle,aRsp);		
-		case RSat::ESubmitMultimediaMsg:
-			return SubmitMultimediaMsgTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EDisplayMultimediaMsg:
-			return DisplayMultimediaMsgTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::ESetFrames:
-			return SetFramesTerminalRsp(aTsyReqHandle, aRsp);
-		case RSat::EGetFramesStatus:
-			return GetFramesStatusTerminalRsp(aTsyReqHandle, aRsp);
-		default:
-			return KErrGeneral; 
-			}
-	}
-
-TInt CSatDSatTsy::TerminalRspCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::TerminalRspCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetMeSideSatProfile(const TTsyReqHandle aTsyReqHandle, TDes8* aMeSimSatProfile)
-	{
-	// First call by test code is RSat::GetMeSideSatProfile() with V2 param.
-	// Second call is RSat::GetMeSideSatProfile() followed by Cancel
-	// Third call is RSat::GetMeSideSatProfile() with V5 param.
-	if((iGetMeSideSatProfile == 0) || (iGetMeSideSatProfile == 2))
-		{
-		LOGTEXT(_L8("CSatDSatTsy::GetMeSideSatProfile called"));
-		RSat::TSatProfileV1Pckg* aProfilePckg = (RSat::TSatProfileV1Pckg*)aMeSimSatProfile;
-		RSat::TSatProfileV1& profileV1 = (*aProfilePckg)();
-
-		profileV1.iSatProfileByte1=0x01;
-		profileV1.iSatProfileByte2=0x02;
-		profileV1.iSatProfileByte3=0x03;
-		profileV1.iSatProfileByte4=0x04;
-		profileV1.iSatProfileByte5=0x05;
-		profileV1.iSatProfileByte6=0x06;
-		profileV1.iSatProfileByte7=0x07;
-		profileV1.iSatProfileByte8=0x08;
-		profileV1.iSatProfileByte9=0x09;
-
-		if ((profileV1.ExtensionId() == RSat::KSatV2) || 
-			(profileV1.ExtensionId() == RSat::KSatV5) || 
-			(profileV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TSatProfileV2Pckg* v2ProfilePckg = (RSat::TSatProfileV2Pckg*)aMeSimSatProfile;
-			RSat::TSatProfileV2& profileV2 = (*v2ProfilePckg)();
-
-			profileV2.iSatProfileByte10=0x0A;
-			profileV2.iSatProfileByte11=0x0B;
-			profileV2.iSatProfileByte12=0x0C;
-			profileV2.iSatProfileByte13=0x0D;
-			profileV2.iSatProfileByte14=0x0E;
-			profileV2.iSatProfileByte15=0x0F;
-			profileV2.iSatProfileByte16=0x10;
-			profileV2.iSatProfileByte17=0x20;
-			profileV2.iSatProfileByte18=0x30;
-			profileV2.iNumOfChannels=DSATTSY_NUMBER_OF_CHANNELS;
-			profileV2.iScreenHeight=DSATTSY_SCREEN_HEIGHT;
-			profileV2.iScreenWidth=DSATTSY_SCREEN_WIDTH;
-			profileV2.iTiaEiaProtoVersion=DSATTSY_PROTO_VERSION;
-			profileV2.iWidthReduction=DSATTSY_WIDTH_REDUCTION;
-			}
-			
-		if ((profileV1.ExtensionId() == RSat::KSatV5) || 
-			(profileV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TSatProfileV5Pckg* profileV5Pckg = (RSat::TSatProfileV5Pckg*)aMeSimSatProfile;
-			RSat::TSatProfileV5& profileV5 = (*profileV5Pckg)();
-			
-			// Set profileV5.iSatProfileByte28 to:
-			// (KCapsTextAttributeAlignmentLeft | KCapsTextAttributeAlignmentCentre | 
-			// KCapsTextAttributeAlignmentRight | KCapsTextAttributeFontSizeNormal | 
-			// KCapsTextAttributeFontSizeLarge | KCapsTextAttributeFontSizeSmall)
-			profileV5.iSatProfileByte28 = 0x3F;
-			// Set profileV5.iSatProfileByte29 to
-			// (KCapsTextAttributeStyleNormal | KCapsTextAttributeStyleBold | 
-			// KCapsTextAttributeStyleItalic | KCapsTextAttributeStyleUnderline | 
-			// KCapsTextAttributeStyleStrikethrough | KCapsTextAttributeStyleForeground | 
-			// KCapsTextAttributeStyleBackground)
-			profileV5.iSatProfileByte29 = 0x7F;
-			}
-		if (profileV1.ExtensionId() == RSat::KSatV6) 
-			{
-			RSat::TSatProfileV6Pckg* profileV6Pckg = (RSat::TSatProfileV6Pckg*)aMeSimSatProfile;
-			RSat::TSatProfileV6& profileV6 = (*profileV6Pckg)();
-			
-			// Set profileV6.iSatProfileByte21 to:
-			//(KCapsWML  | KCapsXHTML |
-			// KCapsHTML | KCapsCHTML )	
-			profileV6.iSatProfileByte21 = 0x0F;
-			// Set profileV6.iSatProfileByte22 to:
-			//(KCapsProvideLocalInfoUTRAN | KCapsProvideLocalInfoBatteryState |
-			// KCapsPlayThemedAndMelodyTone | KCapsSetUpCallMultimediaCall |
-			// KCapsRefreshGBA	| KCapsRetrieveMultimediaMessage |
-			// KCapsSubmitMultimediaMessage | KCapsDisplayMultimediaMesage)
-			profileV6.iSatProfileByte22 = 0xFF;
-			// Set profileV6.iSatProfileByte23 to:
-			//(KCapsSetFrames  | KCapsGetFramesStatus  |
-			// KCapsMmsNotificationDownload | KCapsProvideLocalInfoMEID |
-			// KCapsProvideLocalInfoNmrUTRAN | KCapsUssdDataDownload)
-            profileV6.iSatProfileByte23 = 0xE7;
-			// Set profileV6.iSatProfileByte24 to:
-			//(KCapsMaxNumFramesBit1 | KCapsMaxNumFramesBit2 |
-			// KCapsMaxNumFramesBit3 | KCapsMaxNumFramesBit4)
-            profileV6.iSatProfileByte24 = 0x0F;
-			// Set profileV6.iSatProfileByte25 to:
-			// (KCapsBrowsingStatusEvent | KCapsMmsTransferStatusEvent |
-			// KCapsFrameParametersChangeEvent)
-			profileV6.iSatProfileByte25 = 0x07;	
-			}
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iGetMeSideSatProfile++;
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetMeSideSatProfileCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::GetMeSideSatProfileCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::ClientSatProfileIndication(const TTsyReqHandle aTsyReqHandle, TDes8* aClientSatProfile)
-	{
-	
-	// First call by test code is with version 2 parameter
-	// Second call is with version 5 parameter
-	if (iClientSatProfileIndication<2)
-		{	
-		LOGTEXT(_L8("CSatDSatTsy::ClientSatProfileIndication called"));
-		
-		RSat::TSatProfileV1Pckg* aClientSatProfilePckg = (RSat::TSatProfileV1Pckg*)aClientSatProfile;
-		RSat::TSatProfileV1& satProfileV1 = (*aClientSatProfilePckg)();
-		
-		// Check version 1 parameters
-		if ((satProfileV1.iSatProfileByte1!=0x01)
-			||(satProfileV1.iSatProfileByte2!=0x02)
-			||(satProfileV1.iSatProfileByte3!=0x03)
-			||(satProfileV1.iSatProfileByte4!=0x04)
-			||(satProfileV1.iSatProfileByte5!=0x05)
-			||(satProfileV1.iSatProfileByte6!=0x06)
-			||(satProfileV1.iSatProfileByte7!=0x07)
-			||(satProfileV1.iSatProfileByte8!=0x08)
-			||(satProfileV1.iSatProfileByte9!=0x09))
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-		
-		// Check version 2 parameters
-		if( (satProfileV1.ExtensionId()==RSat::KSatV2) ||
-			(satProfileV1.ExtensionId()==RSat::KSatV5) ||
-			(satProfileV1.ExtensionId()==RSat::KSatV6))
-			{
-			RSat::TSatProfileV2Pckg* aV2ClientSatProfilePckg = (RSat::TSatProfileV2Pckg*)aClientSatProfile;
-			RSat::TSatProfileV2& satProfileV2 = (*aV2ClientSatProfilePckg)();
-			
-			if ((satProfileV2.iSatProfileByte10!=0x0A)
-				||(satProfileV2.iSatProfileByte11!=0x0B)
-				||(satProfileV2.iSatProfileByte12!=0x0C)
-				||(satProfileV2.iSatProfileByte13!=0x0D)
-				||(satProfileV2.iSatProfileByte14!=0x0E)
-				||(satProfileV2.iSatProfileByte15!=0x0F)
-				||(satProfileV2.iSatProfileByte16!=0x10)
-				||(satProfileV2.iSatProfileByte17!=0x20)
-				||(satProfileV2.iSatProfileByte18!=0x30)
-				||(satProfileV2.iNumOfChannels!=DSATTSY_NUMBER_OF_CHANNELS)
-				||(satProfileV2.iScreenHeight!=DSATTSY_SCREEN_HEIGHT)
-				||(satProfileV2.iScreenWidth!=DSATTSY_SCREEN_WIDTH)
-				||(satProfileV2.iTiaEiaProtoVersion!=DSATTSY_PROTO_VERSION)
-				||(satProfileV2.iWidthReduction!=DSATTSY_WIDTH_REDUCTION))
-				{
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}
-			}
-		
-		// Check version 5 parameters	
-		if ((satProfileV1.ExtensionId() == RSat::KSatV5) ||
-		    (satProfileV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TSatProfileV5Pckg* clientSatProfilePckgV5 = (RSat::TSatProfileV5Pckg*) aClientSatProfile;
-			RSat::TSatProfileV5& satProfileV5 = (*clientSatProfilePckgV5)();
-			
-			if ((satProfileV5.iSatProfileByte28 != 0x3F) ||
-				(satProfileV5.iSatProfileByte29 != 0x7F))
-				{
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				}
-			}
-		
-		// Check version 6 parameters	
-		if (satProfileV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TSatProfileV6Pckg* clientSatProfilePckgV6 = (RSat::TSatProfileV6Pckg*) aClientSatProfile;
-			RSat::TSatProfileV6& satProfileV6 = (*clientSatProfilePckgV6)();
-			
-			if ((satProfileV6.iSatProfileByte21 != 0x0F) ||
-				(satProfileV6.iSatProfileByte22 != 0xFF) ||
-				(satProfileV6.iSatProfileByte23 != 0xE7) ||
-				(satProfileV6.iSatProfileByte24 != 0x0F) ||
-				(satProfileV6.iSatProfileByte25 != 0x07))
-				{
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				}
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iClientSatProfileIndication++;	
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::MenuSelection(const TTsyReqHandle aTsyReqHandle, TDes8* aSelection)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::MenuSelection called"));
-	RSat::TMenuSelectionV1Pckg* aSelectionPckg = (RSat::TMenuSelectionV1Pckg*)aSelection;
-	RSat::TMenuSelectionV1& menuSelectionV1 = (*aSelectionPckg)();
-
-	if ((menuSelectionV1.iItemId!=DSATTSY_ITEM_ID)
-		||(menuSelectionV1.iHelp!=DSATTSY_HELP_REQUESTED))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		if(!iMenuSelection++)
-			ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::MenuSelectionCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::MenuSelectionCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyCallControlRequest(const TTsyReqHandle aTsyReqHandle, TDes8* aCallControlDetails)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyCallControlRequest called"));
-	if(!iNotifyCallControlRequest++)
-	{
-		RSat::TAlphaId nullBuf;
-		nullBuf.iAlphaId=DSATTSY_NULL_BUF;
-		nullBuf.iStatus=DSATTSY_ALPHAID_STATUS;
-		if(iNotifyCallControlRequestTestNumber==0)
-			{
-			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
-			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
-	
-			RSat::TCallSetUpParams aParams;
-			aParams.iCcp1					=DSATTSY_CCP1;
-			aParams.iSubAddress				=DSATTSY_SUBADDRESS;
-			aParams.iCcp2					=DSATTSY_CCP2;
-			aParams.iAddress.iTypeOfNumber	=DSATTSY_TON;
-			aParams.iAddress.iNumberPlan	=DSATTSY_NPI;
-			aParams.iAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
-	
-			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
-
-			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
-			cmdV1.SetCallSetUpDetails(aParams);
-			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
-
-			iNotifyCallControlRequestTestNumber++;
-
-			if (cmdV1.ExtensionId() == RSat::KSatV2)
-				{
-				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
-				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
-
-				callControlV2.SetCallName(DSATTSY_CALL_NAME);
-				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
-				}
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		else if (iNotifyCallControlRequestTestNumber==1)
-			{
-			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
-			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
-
-			RSat::TSsString ssString;
-			ssString.iTypeOfNumber = DSATTSY_TON;
-			ssString.iNumberPlan = DSATTSY_NPI;
-			ssString.iSsString = DSATTSY_SS_STRING;
-			
-			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
-			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
-			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
-			cmdV1.SetSendSsDetails(ssString);
-
-			iNotifyCallControlRequestTestNumber++;
-
-			if (cmdV1.ExtensionId() == RSat::KSatV2)
-				{
-				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
-				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
-
-				callControlV2.SetCallName(DSATTSY_CALL_NAME);
-				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
-				}
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		else if (iNotifyCallControlRequestTestNumber==2)
-			{
-			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
-			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
-
-			RSat::TUssdString ussdString;
-			ussdString.iDcs=DSATTSY_DCS;
-			ussdString.iUssdString=DSATTSY_USSD_STRING;
-	
-			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
-			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
-			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
-			cmdV1.SetSendUssdDetails(ussdString);
-
-			iNotifyCallControlRequestTestNumber++;
-
-			if (cmdV1.ExtensionId() == RSat::KSatV2)
-				{
-				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
-				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
-
-				callControlV2.SetCallName(DSATTSY_CALL_NAME);
-				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
-				}
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			}			
-		else if (iNotifyCallControlRequestTestNumber==3)
-			{
-			RSat::TCallControlV5Pckg* cmdPckg = (RSat::TCallControlV5Pckg*)aCallControlDetails;
-			RSat::TCallControlV5& cmd = (*cmdPckg)();
-			
-			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
-			cmd.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);			
-			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_FALLBACK);
-			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS);			
-			cmd.SetPdpParameters(pdpParams);
-			
-			iNotifyCallControlRequestTestNumber++;
-		
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		else if (iNotifyCallControlRequestTestNumber==4)
-			{
-			RSat::TCallControlV5Pckg* cmdPckg = (RSat::TCallControlV5Pckg*)aCallControlDetails;
-			RSat::TCallControlV5& cmd = (*cmdPckg)();
-			
-			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
-			cmd.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);		
-			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS2);			
-			cmd.SetPdpParameters(pdpParams);			
-			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_SERVICECHANGEANDFALLBACK);
-			
-			iNotifyCallControlRequestTestNumber++;
-		
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		else if (iNotifyCallControlRequestTestNumber==5)
-			{
-			RSat::TCallControlV6Pckg* cmdPckg = (RSat::TCallControlV6Pckg*)aCallControlDetails;
-			RSat::TCallControlV6& cmd = (*cmdPckg)();
-			
-			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
-			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS2);			
-			cmd.SetPdpParameters(pdpParams);			
-			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_SERVICECHANGEANDFALLBACK);
-			cmd.SetCallParamOrigin(DSATTSY_CC_CALL_PARAM_ORIGIN);
-			
-			iNotifyCallControlRequestTestNumber++;
-		
-			ReqCompleted(aTsyReqHandle,KErrNone);			
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyCallControlRequestCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyCallControlCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyCallControlRequest=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyMoSmControlRequest(const TTsyReqHandle aTsyReqHandle, TDes8* aMoSmDetails)
-	{
-	if(!iNotifyMoSmControlRequest++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyMoSmControlRequest called"));
-		RSat::TMoSmControlV1Pckg* cmdPckg = (RSat::TMoSmControlV1Pckg*)aMoSmDetails;
-		RSat::TMoSmControlV1& cmdV1 = (*cmdPckg)();
-
-		cmdV1.iRpAddress.iTypeOfNumber	=DSATTSY_TON;
-		cmdV1.iRpAddress.iNumberPlan	=DSATTSY_NPI;
-		cmdV1.iRpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
-		cmdV1.iTpAddress.iTypeOfNumber	=DSATTSY_TON;
-		cmdV1.iTpAddress.iNumberPlan	=DSATTSY_NPI;
-		cmdV1.iTpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
-		cmdV1.iResult					=DSATTSY_CONTROL_RESULT;
-		cmdV1.iAlphaId.iAlphaId			=DSATTSY_ALPHA_ID1;
-		cmdV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyMoSmControlRequestCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyMoSmControlRequestCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::EventDownload(const TTsyReqHandle aTsyReqHandle, RSat::TEventList* aSingleEvent, TDes8* aEventInfo)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::Event Download called"));
-
-	RSat::TEventDownloadBaseV2Pckg* eventBaseV2Pckg = (RSat::TEventDownloadBaseV2Pckg*)aEventInfo;
-	RSat::TEventDownloadBaseV2&     eventBaseV2     = (*eventBaseV2Pckg)();
-
-	if (!iEventDownload++)
-		{
-		switch( *aSingleEvent )
-			{
-		case RSat::KUserActivity:			// Allow KuserActivity to fall through to KidleScreenAvailable
-		case RSat::KIdleScreenAvailable:
-			// Don't expect any data for these events
-			if (eventBaseV2.iDataAvailable)				
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				ReqCompleted(aTsyReqHandle, KErrNone);
-			break;
-
-		case RSat::KCardReaderStatus:
-			// Expect TCardReaderStatusEventV2
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TCardReaderStatusEventV2Pckg* cardReaderEventV2Pckg = (RSat::TCardReaderStatusEventV2Pckg *)aEventInfo;
-				RSat::TCardReaderStatusEventV2&     cardReaderEventV2     = (*cardReaderEventV2Pckg)();
-
-				if (cardReaderEventV2.iCardReaderStatus != DSATTSY_EVENT_CARD_READER_STATUS)
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-
-		case RSat::KLanguageSelection:
-			// Expect TLanguageSelectionEventV2
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TLanguageSelectionEventV2Pckg* languageV2Pckg = (RSat::TLanguageSelectionEventV2Pckg *)aEventInfo;
-				RSat::TLanguageSelectionEventV2&     languageV2     = (*languageV2Pckg)();
-
-				if (languageV2.iLanguage != DSATTSY_EVENT_LANGUAGE_SELECTION)
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-
-		case RSat::KBrowserTermination:
-			// Expect TBrowserTerminationEventV2
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TBrowserTerminationEventV2Pckg* terminationV2Pckg = (RSat::TBrowserTerminationEventV2Pckg *)aEventInfo;
-				RSat::TBrowserTerminationEventV2&     terminationV2     = (*terminationV2Pckg)();
-
-				if (terminationV2.iCause != DSATTSY_EVENT_BROWSER_TERMINATION_CAUSE)
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-
-		case RSat::KDataAvailable:
-			// Expect TDataAvailableEventV2
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TDataAvailableEventV2Pckg* dataV2Pckg = (RSat::TDataAvailableEventV2Pckg *)aEventInfo;
-				RSat::TDataAvailableEventV2&     dataV2     = (*dataV2Pckg)();
-
-				if ((dataV2.iStatus != DSATTSY_EVENT_DATA_AVAILABLE_STATUS)
-				 || (dataV2.iLength != DSATTSY_EVENT_DATA_AVAILABLE_LENGTH))
-					{
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-					}
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-
-		case RSat::KChannelStatus:
-			// Expect TChannelStatusEventV2
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TChannelStatusEventV2Pckg* channelV2Pckg = (RSat::TChannelStatusEventV2Pckg *)aEventInfo;
-				RSat::TChannelStatusEventV2&     channelV2     = (*channelV2Pckg)();
-
-				if (channelV2.iStatus != DSATTSY_EVENT_CHANNEL_STATUS)
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-
-		case RSat::KDisplayParamsChanges:
-			// Expect TDisplayParamsEventV2
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TDisplayParamsEventV2Pckg* displayV2Pckg = (RSat::TDisplayParamsEventV2Pckg *)aEventInfo;
-				RSat::TDisplayParamsEventV2&     displayV2     = (*displayV2Pckg)();
-
-				if ((displayV2.iSatProfileByte14 != DSATTSY_EVENT_DISPLAY_PROF14)
-				 || (displayV2.iScreenHeight     != DSATTSY_SCREEN_HEIGHT)
-				 || (displayV2.iSatProfileByte15 != DSATTSY_EVENT_DISPLAY_PROF15)
-				 || (displayV2.iScreenWidth      != DSATTSY_SCREEN_WIDTH)
-				 || (displayV2.iSatProfileByte16 != DSATTSY_EVENT_DISPLAY_PROF16)
-				 || (displayV2.iWidthReduction   != DSATTSY_WIDTH_REDUCTION))
-					{
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-					}
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-
-		case RSat::KLocalConnection:
-			// Expect TLocalConnectionEventV2
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TLocalConnectionEventV2Pckg* localV2Pckg = (RSat::TLocalConnectionEventV2Pckg *)aEventInfo;
-				RSat::TLocalConnectionEventV2&     localV2     = (*localV2Pckg)();
-
-				if ((localV2.iRecord.iBearerId  != DSATTSY_EVENT_LOCAL_BEARER_ID)
-				 || (localV2.iRecord.iServiceId != DSATTSY_EVENT_LOCAL_SERVICE_ID)
-				 || (localV2.iRecord.iRecord	!= DSATTSY_EVENT_LOCAL_SERVICE_RECORD)
-				 || (localV2.iAddress.iCoding   != DSATTSY_EVENT_LOCAL_ADDR_CODING)
-				 || (localV2.iAddress.iAddress  != DSATTSY_EVENT_LOCAL_ADDRESS))
-					{
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-					}
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-			
-		case RSat::KNetworkSearchModeChange:
-			// Expect TNetworkSearchModeChangeV6
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TNetworkSearchModeChangeEventV6Pckg* networkSearchV6Pckg = (RSat::TNetworkSearchModeChangeEventV6Pckg *)aEventInfo;
-				RSat::TNetworkSearchModeChangeEventV6&     networkSearchV6     = (*networkSearchV6Pckg)();
-
-				if (networkSearchV6.iNetworkSearchMode  != DSATTSY_NETWORK_SEARCH_MODE1)
-					{
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-					}
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-	
-		case RSat::KBrowsingStatusChange:
-			// Expect TBrowsingStatusEventV6
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TBrowsingStatusEventV6Pckg* browsingStatusEventV6Pckg = (RSat::TBrowsingStatusEventV6Pckg *)aEventInfo;
-				RSat::TBrowsingStatusEventV6&     browsingStatusEventV6     = (*browsingStatusEventV6Pckg)();
-
-				if (browsingStatusEventV6.iBrowserStatus  != DSATTSY_BROWSING_STATUS1)
-					{
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-					}
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-		
-		case RSat::KFramesInformationChange:
-			// Expect TFramesInformationChangeV6
-			if (!eventBaseV2.iDataAvailable)
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			else
-				{
-				RSat::TFramesInformationChangedEventV6Pckg* framesInfoChangedEventV6Pckg = (RSat::TFramesInformationChangedEventV6Pckg *)aEventInfo;
-				RSat::TFramesInformationChangedEventV6&     framesInfoChangedEventV6     = (*framesInfoChangedEventV6Pckg)();
-
-				if ((framesInfoChangedEventV6.iFramesInformation.iFrameId  != DSATTSY_FRAMES_INFORMATION_FRAMEID )
-				 || (framesInfoChangedEventV6.iFramesInformation.iFrameList != DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
-					{
-					ReqCompleted(aTsyReqHandle, KErrCorrupt);
-					}
-				else
-					ReqCompleted(aTsyReqHandle, KErrNone);
-				}
-			break;
-					
-		default:
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-		}
-
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::EventDownloadCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::EventDownloadCancel called"));
-
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-
-	iEventDownload = 0;
-
-	return KErrNone;
-	}
-
-
-TInt CSatDSatTsy::NotifyDisplayTextPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyDisplayTextPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayTextPCmd called"));
-		RSat::TDisplayTextV1Pckg* aPCmdPckg = (RSat::TDisplayTextV1Pckg*)aPCmd;
-		RSat::TDisplayTextV1& displayTextV1 = (*aPCmdPckg)();
-		
-		displayTextV1.SetPCmdNumber(DSATTSY_DISPLAY_TEXT_NUMBER);
-		displayTextV1.iPriority				=DSATTSY_TEXT_PRIORITY;
-		displayTextV1.iClearScreenTrigger	=DSATTSY_CLEAR_SCREEN_TRIGGER;
-		displayTextV1.iText					=DSATTSY_TEXT_TO_DISPLAY;
-		displayTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
-		displayTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
-		displayTextV1.iImmediateRsp			=DSATTSY_IMMEDIATE_RSP;
-
-		if ((displayTextV1.ExtensionId() == RSat::KSatV2) ||
-			(displayTextV1.ExtensionId() == RSat::KSatV5) || (displayTextV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TDisplayTextV2Pckg* aV2PCmdPckg = (RSat::TDisplayTextV2Pckg*)aPCmd;
-			RSat::TDisplayTextV2&   displayTextV2 = (*aV2PCmdPckg)();
-
-			displayTextV2.iDuration.iTimeUnit=DSATTSY_TIME_UNIT;
-			displayTextV2.iDuration.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
-			}
-			
-		if ((displayTextV1.ExtensionId() == RSat::KSatV5) || (displayTextV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TDisplayTextV5Pckg* aV5PCmdPckg = (RSat::TDisplayTextV5Pckg*)aPCmd;
-			RSat::TDisplayTextV5&   displayTextV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			displayTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			displayTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-		
-		if (displayTextV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TDisplayTextV6Pckg* displayTextV6PCmdPckg = (RSat::TDisplayTextV6Pckg*)aPCmd;
-			RSat::TDisplayTextV6&   displayTextV6 = (*displayTextV6PCmdPckg)();
-			
-			displayTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}	
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-		
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyDisplayTextPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayTextPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyDisplayTextPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetInkeyPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyGetInkeyPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyGetInkeyPCmd called"));
-		RSat::TGetInkeyV1Pckg* aPCmdPckg = (RSat::TGetInkeyV1Pckg*)aPCmd;
-		RSat::TGetInkeyV1& getInkeyV1 = (*aPCmdPckg)();
-
-		getInkeyV1.SetPCmdNumber(DSATTSY_GET_INKEY_NUMBER);
-		
-		getInkeyV1.iRspFormat			=DSATTSY_USER_RSP_FORMAT;
-		getInkeyV1.iText				=DSATTSY_TEXT_TO_DISPLAY;
-		getInkeyV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
-		getInkeyV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
-		getInkeyV1.iHelp				=DSATTSY_HELP;
-
-		if ((getInkeyV1.ExtensionId() == RSat::KSatV2) ||
-			(getInkeyV1.ExtensionId() == RSat::KSatV5) || 
-			(getInkeyV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TGetInkeyV2Pckg* aV2PCmdPckg = (RSat::TGetInkeyV2Pckg*)aPCmd;
-			RSat::TGetInkeyV2&     getInkeyV2  = (*aV2PCmdPckg)();
-
-			getInkeyV2.iDuration.iTimeUnit=DSATTSY_TIME_UNIT;
-			getInkeyV2.iDuration.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
-			getInkeyV2.iMode=DSATTSY_GET_INKEY_RSP_MODE;
-			}
-			
-		if ((getInkeyV1.ExtensionId() == RSat::KSatV5) || 
-			(getInkeyV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TGetInkeyV5Pckg* aV5PCmdPckg = (RSat::TGetInkeyV5Pckg*)aPCmd;
-			RSat::TGetInkeyV5&   getInkeyV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			getInkeyV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			getInkeyV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);			
-			}
-
-		if (getInkeyV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TGetInkeyV6Pckg* getInkeyV6PCmdPckg = (RSat::TGetInkeyV6Pckg*)aPCmd;
-			RSat::TGetInkeyV6&   getInkeyV6 = (*getInkeyV6PCmdPckg)();
-			
-			getInkeyV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;	
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-		
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetInkeyPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyGetInkeyPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyGetInkeyPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetInputPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyGetInputPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyGetInputPCmd called"));
-		RSat::TGetInputV1Pckg* aPCmdPckg = (RSat::TGetInputV1Pckg*)aPCmd;
-		RSat::TGetInputV1& getInputV1 = (*aPCmdPckg)();
-
-		getInputV1.SetPCmdNumber(DSATTSY_GET_INPUT_NUMBER);
-		
-		getInputV1.iInputDisplayOption		=DSATTSY_INPUT_DISPLAY_OPTION;
-		getInputV1.iRspFormat				=DSATTSY_GET_INPUT_RSP_FORMAT;
-		getInputV1.iText					=DSATTSY_TEXT_TO_DISPLAY;
-		getInputV1.iRspLength.iMinRspLength	=DSATTSY_MIN_RSP_LENGTH;
-		getInputV1.iRspLength.iMaxRspLength	=DSATTSY_MAX_RSP_LENGTH;
-		getInputV1.iDefaultText				=DSATTSY_DEFAULT_TEXT;
-		getInputV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
-		getInputV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
-		getInputV1.iHelp					=DSATTSY_HELP;
-
-		if ((getInputV1.ExtensionId() == RSat::KSatV5) ||
-			(getInputV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TGetInputV5Pckg* aV5PCmdPckg = (RSat::TGetInputV5Pckg*)aPCmd;
-			RSat::TGetInputV5&   getInputV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			getInputV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			getInputV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (getInputV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TGetInputV6Pckg* getInputV6PCmdPckg = (RSat::TGetInputV6Pckg*)aPCmd;
-			RSat::TGetInputV6&   getInputV6 = (*getInputV6PCmdPckg)();
-			
-			getInputV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::NotifyGetInputPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyGetInputPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyGetInputPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPlayTonePCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyPlayTonePCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyPlayTonePCmd called"));
-		RSat::TPlayToneV1Pckg* aPCmdPckg = (RSat::TPlayToneV1Pckg*)aPCmd;
-		RSat::TPlayToneV1& playToneV1 = (*aPCmdPckg)();
-		
-		playToneV1.SetPCmdNumber(DSATTSY_PLAY_TONE_NUMBER);
-
-		playToneV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
-		playToneV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
-		playToneV1.iTone					=DSATTSY_TONE;
-		playToneV1.iDuration.iTimeUnit		=DSATTSY_TIME_UNIT;
-		playToneV1.iDuration.iNumOfUnits	=DSATTSY_NUM_OF_UNITS;
-
-		if	((playToneV1.ExtensionId() == RSat::KSatV2) ||
-			(playToneV1.ExtensionId() == RSat::KSatV5) || (playToneV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TPlayToneV2Pckg* aV2PCmdPckg = (RSat::TPlayToneV2Pckg*)aPCmd;
-			RSat::TPlayToneV2& playToneV2 = (*aV2PCmdPckg)();
-
-			playToneV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-			playToneV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
-			}
-			
-		if ((playToneV1.ExtensionId() == RSat::KSatV5) ||
-		   (playToneV1.ExtensionId() == RSat::KSatV6))	
-			{
-			RSat::TPlayToneV5Pckg* aV5PCmdPckg = (RSat::TPlayToneV5Pckg*)aPCmd;
-			RSat::TPlayToneV5&   playToneV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			playToneV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			playToneV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);			
-			}
-
-		if (playToneV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TPlayToneV6Pckg* playToneV6PCmdPckg = (RSat::TPlayToneV6Pckg*)aPCmd;
-			RSat::TPlayToneV6&   playToneV6 = (*playToneV6PCmdPckg)();
-			
-			playToneV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
-			playToneV6.iTone=DSATTSY_TONEV6;			
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPlayTonePCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyPlayTonePCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyPlayTonePCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySetUpMenuPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	RSat::TItem item1, item2, item3, item4;
-	TUint action1=0x01, action2=0x02, action3=0x03, action4=0x04;
-	TUint iconId1=0x01, iconId2=0x02, iconId3=0x03, iconId4=0x04;
-	
-	RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3, textAttribute4;
-
-	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpMenuPCmd called"));
-	RSat::TSetUpMenuV1Pckg* aPCmdPckg = (RSat::TSetUpMenuV1Pckg*)aPCmd;
-	RSat::TSetUpMenuV1& setUpMenuV1 = (*aPCmdPckg)();
-
-	item1.iItemId=0x01;
-	item1.iItemString=DSATTSY_ITEM1;
-	item2.iItemId=0x02;
-	item2.iItemString=DSATTSY_ITEM2;
-	item3.iItemId=0x03;
-	item3.iItemString=DSATTSY_ITEM3;
-	item4.iItemId=0x04;	
-	item4.iItemString=DSATTSY_ITEM4;
-	
-	textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-	const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-	textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-	
-	textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
-	const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
-	textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-	
-	textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
-	const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
-	textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-	
-	textAttribute4.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS4;
-	const TUint8 textAttributeData4[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA4;
-	textAttribute4.iTextAttributeData.Append(textAttributeData4, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-
-	setUpMenuV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
-	setUpMenuV1.iAlphaId.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
-	setUpMenuV1.iHelp				=DSATTSY_HELP;
-	setUpMenuV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
-	setUpMenuV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
-	setUpMenuV1.iIconListQualifier	=DSATTSY_ICON_QUALIFIER2;
-
-	setUpMenuV1.SetPCmdNumber(DSATTSY_SET_UP_MENU_NUMBER);
-
-	if(	(setUpMenuV1.ExtensionId() == RSat::KSatV2) ||
-		(setUpMenuV1.ExtensionId() == RSat::KSatV5))
-		{
-		RSat::TSetUpMenuV2Pckg* aV2PCmdPckg = (RSat::TSetUpMenuV2Pckg*)aPCmd;
-		RSat::TSetUpMenuV2& setUpMenuV2 = (*aV2PCmdPckg)();
-
-		setUpMenuV2.iPreference=DSATTSY_SELECTION_PREFERENCE;
-		}
-
-	if(!iNotifySetUpMenuPCmd++)
-		{
-		switch (iNotifySetUpMenuTestNumber)
-			{
-		case 0:
-			setUpMenuV1.AddItem(item1);
-			setUpMenuV1.AddItem(item2);
-			setUpMenuV1.AddItem(item3);
-
-			iNotifySetUpMenuTestNumber ++;
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			
-			break;
-		case 1:
-			setUpMenuV1.AddItem(item1, action1);
-			setUpMenuV1.AddItem(item2, action2);
-			setUpMenuV1.AddItem(item3, action3);
-
-			iNotifySetUpMenuTestNumber ++;
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			
-			break;		
-		case 2:
-			setUpMenuV1.AddItemIcon(item1, iconId1);
-			setUpMenuV1.AddItemIcon(item2, iconId2);
-			setUpMenuV1.AddItemIcon(item3, iconId3);
-
-			iNotifySetUpMenuTestNumber ++;
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			
-			break;
-		case 3:
-			setUpMenuV1.AddItem(item1, action1, iconId1);
-			setUpMenuV1.AddItem(item2, action2, iconId2);
-			setUpMenuV1.AddItem(item3, action3, iconId3);
-			setUpMenuV1.AddItem(item4);
-			
-			iNotifySetUpMenuTestNumber ++;
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			
-			break;
-		case 4:
-			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
-				{
-				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
-				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
-				
-				setUpMenuV5.AddItem(item1, textAttribute1);
-				setUpMenuV5.AddItem(item2, textAttribute2);
-				setUpMenuV5.AddItem(item3, textAttribute3);
-				setUpMenuV5.AddItem(item4, textAttribute4);
-				
-				setUpMenuV5.iTextAttribute.iStatus = textAttribute1.iStatus;
-				setUpMenuV5.iTextAttribute.iTextAttributeData = textAttribute1.iTextAttributeData;
-				
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrNone);				
-				}
-			else
-				{
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}
-				
-			break;
-		case 5:
-			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
-				{
-				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
-				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
-				
-				setUpMenuV5.AddItem(item1, textAttribute1, action1);
-				setUpMenuV5.AddItem(item2, textAttribute2, action2);
-				setUpMenuV5.AddItem(item3, textAttribute3, action3);
-				setUpMenuV5.AddItem(item4, textAttribute4, action4);
-				
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrNone);				
-				}
-			else
-				{
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}
-				
-			break;		
-		case 6:
-			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
-				{
-				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
-				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
-
-				setUpMenuV5.AddItemIcon(item1, textAttribute1, iconId1);
-				setUpMenuV5.AddItemIcon(item2, textAttribute2, iconId2);
-				setUpMenuV5.AddItemIcon(item3, textAttribute3, iconId3);
-				setUpMenuV5.AddItemIcon(item4, textAttribute4, iconId4);
-				
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrNone);				
-				}
-			else
-				{
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}
-					
-			break;
-		case 7:
-			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
-				{
-				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
-				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
-				
-				setUpMenuV5.AddItem(item1, textAttribute1, action1, iconId1);
-				setUpMenuV5.AddItem(item2, textAttribute2, action2, iconId2);
-				setUpMenuV5.AddItem(item3, textAttribute3, action3, iconId3);
-				setUpMenuV5.AddItem(item4, textAttribute4, action4, iconId4);
-				
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrNone);				
-				}
-			else
-				{
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}
-			break;
-		case 8:
-			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
-				{
-				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
-				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
-				
-				setUpMenuV5.AddItem(item1);
-				setUpMenuV5.AddItem(item2);
-				setUpMenuV5.AddItem(item3);
-				setUpMenuV5.AddItem(item4);
-				
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrNone);				
-				}
-			else
-				{
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}			
-			break;
-		case 9:
-			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
-				{
-				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
-				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
-				
-				setUpMenuV5.AddItem(item1, action1);
-				setUpMenuV5.AddItem(item2, action2);
-				setUpMenuV5.AddItem(item3, action3);
-				setUpMenuV5.AddItem(item4, action4);
-				
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrNone);				
-				}
-			else
-				{
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}			
-			break;
-		case 10:
-			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
-				{
-				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
-				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
-				
-				setUpMenuV1.AddItemIcon(item1, iconId1);
-				setUpMenuV1.AddItemIcon(item2, iconId2);
-				setUpMenuV1.AddItemIcon(item3, iconId3);
-				setUpMenuV1.AddItemIcon(item4, iconId4);
-				
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrNone);				
-				}
-			else
-				{
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}			
-			break;
-		case 11:
-			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
-				{
-				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
-				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
-				
-				setUpMenuV5.AddItem(item1, action1, iconId1);
-				setUpMenuV5.AddItem(item2, action2, iconId2);
-				setUpMenuV5.AddItem(item3, action3, iconId3);
-				setUpMenuV5.AddItem(item4, action4, iconId4);
-				
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrNone);				
-				}
-			else
-				{
-				iNotifySetUpMenuTestNumber ++;
-				ReqCompleted(aTsyReqHandle,KErrCorrupt);
-				}			
-			break;								
-		case 12:
-			iNotifySetUpMenuTestNumber ++;
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;		
-		default:
-			break;
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySetUpMenuPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpMenuPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySetUpMenuPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySelectItemPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySelectItemPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySelectItemPCmd called"));
-		RSat::TSelectItemV1Pckg* aPCmdPckg = (RSat::TSelectItemV1Pckg*)aPCmd;
-		RSat::TSelectItemV1& selectItemV1 = (*aPCmdPckg)();
-		
-		TUint action1=0x01, action2=0x02, action3=0x03;
-		RSat::TItem item1, item2, item3;
-		TUint iconId1=0x01, iconId2=0x02, iconId3=0x03;
-
-		item1.iItemId=0x01;
-		item1.iItemString=DSATTSY_ITEM1;
-		item2.iItemId=0x02;
-		item2.iItemString=DSATTSY_ITEM2;
-		item3.iItemId=0x03;
-		item3.iItemString=DSATTSY_ITEM3;
-
-		selectItemV1.SetPCmdNumber(DSATTSY_SELECT_ITEM_NUMBER);
-
-		selectItemV1.iPresentationType	=DSATTSY_PRESENTATION_TYPE;
-		selectItemV1.iHelp				=DSATTSY_HELP;
-		selectItemV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
-		selectItemV1.iAlphaId.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
-		selectItemV1.iDefaultItemId		=DSATTSY_DEFAULT_ITEM;
-		selectItemV1.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-		selectItemV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
-		selectItemV1.iIconListQualifier	=DSATTSY_ICON_QUALIFIER2;
-		
-		if ((selectItemV1.ExtensionId() == RSat::KSatV1) ||
-			(selectItemV1.ExtensionId() == RSat::KSatV2))
-			{
-			selectItemV1.AddItem(item1, action1, iconId1);
-			selectItemV1.AddItem(item2, action2, iconId2);
-			selectItemV1.AddItem(item3, action3, iconId3);
-			}
-	
-		if ((selectItemV1.ExtensionId() == RSat::KSatV2) ||
-			(selectItemV1.ExtensionId() == RSat::KSatV5) || (selectItemV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TSelectItemV2Pckg* aV2PCmdPckg = (RSat::TSelectItemV2Pckg*)aPCmd;
-			RSat::TSelectItemV2& selectItemV2 = (*aV2PCmdPckg)();
-
-			selectItemV2.iPreference=DSATTSY_SELECTION_PREFERENCE;
-			}
-
-		if ((selectItemV1.ExtensionId() == RSat::KSatV5) ||
-			(selectItemV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TSelectItemV5Pckg* aV5PCmdPckg = (RSat::TSelectItemV5Pckg*)aPCmd;
-			RSat::TSelectItemV5& selectItemV5 = (*aV5PCmdPckg)();
-			
-			RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3;
-			
-			textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-	
-			textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
-			const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
-			textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-	
-			textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
-			const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
-			textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			
-			selectItemV5.AddItem(item1, textAttribute1, action1, iconId1);
-			selectItemV5.AddItem(item2, textAttribute2, action2, iconId2);
-			selectItemV5.AddItem(item3, textAttribute3, action3, iconId3);
-			
-			selectItemV5.iTextAttribute = textAttribute1;			
-			}
-
-		if (selectItemV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TSelectItemV6Pckg* selectItemV6PCmdPckg = (RSat::TSelectItemV6Pckg*)aPCmd;
-			RSat::TSelectItemV6& selectItemV6 = (*selectItemV6PCmdPckg)();
-			
-			selectItemV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySelectItemPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySelectItemPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySelectItemPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendSmPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySendSmPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySendSmPCmd called"));
-		RSat::TSendSmV1Pckg* aPCmdPckg = (RSat::TSendSmV1Pckg*)aPCmd;
-		RSat::TSendSmV1& sendSmV1 = (*aPCmdPckg)();
-
-		sendSmV1.SetPCmdNumber(DSATTSY_SEND_SM_NUMBER);
-		
-		sendSmV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
-		sendSmV1.iAlphaId.iStatus		=DSATTSY_ALPHA_ID1_STATUS;
-		sendSmV1.iAddress.iTypeOfNumber	=DSATTSY_TON;
-		sendSmV1.iAddress.iNumberPlan	=DSATTSY_NPI;
-		sendSmV1.iAddress.iTelNumber	=DSATTSY_TEL_NUMBER;
-		sendSmV1.iSmsTpdu				=DSATTSY_SMS_TPDU; 
-		sendSmV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
-		sendSmV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
-
-		if ((sendSmV1.ExtensionId() == RSat::KSatV5)  ||
-			(sendSmV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TSendSmV5Pckg* aV5PCmdPckg = (RSat::TSendSmV5Pckg*)aPCmd;
-			RSat::TSendSmV5&   sendSmV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			sendSmV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			sendSmV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}		
-
-		if (sendSmV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TSendSmV6Pckg* sendSmV6PCmdPckg = (RSat::TSendSmV6Pckg*)aPCmd;
-			RSat::TSendSmV6&   sendSmV6 = (*sendSmV6PCmdPckg)();
-			
-			sendSmV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendSmPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySendSmPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySendSmPCmd=0;
-	return KErrNone;
-	}
-
-
-TInt CSatDSatTsy::SendMessageNoLogging(const TTsyReqHandle aTsyReqHandle, const TDesC8* aMsg, TUint16* aMsgRef)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::SendMessageNoLogging called"));
-	RSat::TSatSmsV1Pckg* aMsgPckg = (RSat::TSatSmsV1Pckg*)aMsg;
-	RSat::TSatSmsV1& msgV1 = (*aMsgPckg)();
-
-	*aMsgRef=DSATTSY_SMS_REF;
-
-	if ((msgV1.iServiceCenter.iNumberPlan!=DSATTSY_NPI)
-		||(msgV1.iServiceCenter.iTypeOfNumber!=DSATTSY_TON)
-		||(msgV1.iServiceCenter.iTelNumber!=DSATTSY_TEL_NUMBER)
-		||(msgV1.iBuf!=DSATTSY_SMS_TPDU))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		if(!iSendMessageNoLogging++)
-			ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::SendMessageNoLoggingCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::SendMessageNoLoggingCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendSsPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySendSsPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySendSsPCmd called"));
-		RSat::TSendSsV1Pckg* aPCmdPckg = (RSat::TSendSsV1Pckg*)aPCmd;
-		RSat::TSendSsV1& sendSsV1 = (*aPCmdPckg)();
-
-		sendSsV1.SetPCmdNumber(DSATTSY_SEND_SS_NUMBER);
-		
-		sendSsV1.iAlphaId.iAlphaId			=DSATTSY_ALPHA_ID1;
-		sendSsV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
-		sendSsV1.iSsString.iTypeOfNumber	=DSATTSY_TON;
-		sendSsV1.iSsString.iNumberPlan		=DSATTSY_NPI;
-		sendSsV1.iSsString.iSsString		=DSATTSY_SS_STRING;
-		sendSsV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
-		sendSsV1.iIconId.iQualifier			=DSATTSY_ICON_QUALIFIER1;
-
-		if (sendSsV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TSendSsV6Pckg* sendSsV6PCmdPckg = (RSat::TSendSsV6Pckg*)aPCmd;
-			RSat::TSendSsV6&   sendSsV6 = (*sendSsV6PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			sendSsV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			sendSsV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendSsPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySendSsPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySendSsPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendUssdPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySendUssdPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySendUssdPCmd called"));
-		RSat::TSendUssdV1Pckg* aPCmdPckg = (RSat::TSendUssdV1Pckg*)aPCmd;
-		RSat::TSendUssdV1& sendUssdV1 = (*aPCmdPckg)();
-		
-		sendUssdV1.SetPCmdNumber(DSATTSY_SEND_USSD_NUMBER);
-
-		sendUssdV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
-		sendUssdV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
-		sendUssdV1.iUssdString.iDcs			=DSATTSY_DCS;
-		sendUssdV1.iUssdString.iUssdString	=DSATTSY_USSD_STRING;
-		sendUssdV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
-		sendUssdV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
-
-		if (sendUssdV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TSendUssdV6Pckg* sendUssdV6PCmdPckg = (RSat::TSendUssdV6Pckg*)aPCmd;
-			RSat::TSendUssdV6&   sendUssdV6 = (*sendUssdV6PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			sendUssdV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			sendUssdV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendUssdPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySendUssdPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySendUssdPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySetUpCallPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySetUpCallPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySetUpCallPCmd called"));
-		RSat::TSetUpCallV1Pckg* aPCmdPckg = (RSat::TSetUpCallV1Pckg*)aPCmd;
-		RSat::TSetUpCallV1& setUpCallV1 = (*aPCmdPckg)();
-
-		setUpCallV1.SetPCmdNumber(DSATTSY_SET_UP_CALL_NUMBER);
-		
-		setUpCallV1.iType								=DSATTSY_SET_UP_CALL_TYPE;
-		setUpCallV1.iAlphaIdConfirmationPhase.iAlphaId	=DSATTSY_ALPHA_ID1;
-		setUpCallV1.iAlphaIdConfirmationPhase.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
-		setUpCallV1.iIconIdConfirmationPhase.iIdentifier=DSATTSY_ICON_ID1;
-		setUpCallV1.iIconIdConfirmationPhase.iQualifier	=DSATTSY_ICON_QUALIFIER1;
-		setUpCallV1.iAddress.iTypeOfNumber				=DSATTSY_TON;
-		setUpCallV1.iAddress.iNumberPlan				=DSATTSY_NPI;
-		setUpCallV1.iAddress.iTelNumber					=DSATTSY_TEL_NUMBER;
-		setUpCallV1.iCapabilityConfigParams				=DSATTSY_CCP1;
-		setUpCallV1.iSubAddress							=DSATTSY_SUBADDRESS;
-		setUpCallV1.iDuration.iTimeUnit					=DSATTSY_TIME_UNIT;
-		setUpCallV1.iDuration.iNumOfUnits				=DSATTSY_NUM_OF_UNITS;
-		setUpCallV1.iAlphaIdCallSetUpPhase.iAlphaId		=DSATTSY_ALPHA_ID2;		
-		setUpCallV1.iAlphaIdCallSetUpPhase.iStatus		=DSATTSY_ALPHA_ID2_STATUS;		
-		setUpCallV1.iIconIdCallSetUpPhase.iIdentifier	=DSATTSY_ICON_ID2;
-		setUpCallV1.iIconIdCallSetUpPhase.iQualifier	=DSATTSY_ICON_QUALIFIER2;
-
-		if ((setUpCallV1.ExtensionId() == RSat::KSatV5)  ||
-		   (setUpCallV1.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TSetUpCallV5Pckg* aV5PCmdPckg = (RSat::TSetUpCallV5Pckg*)aPCmd;
-			RSat::TSetUpCallV5&   setUpCallV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			setUpCallV5.iTextAttributeConfirmationPhase.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			setUpCallV5.iTextAttributeConfirmationPhase.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			setUpCallV5.iTextAttributeCallSetUpPhase.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			setUpCallV5.iTextAttributeCallSetUpPhase.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (setUpCallV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TSetUpCallV6Pckg* setUpCallV6PCmdPckg = (RSat::TSetUpCallV6Pckg*)aPCmd;
-			RSat::TSetUpCallV6&   setUpCallV6 = (*setUpCallV6PCmdPckg)();
-			
-			setUpCallV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::NotifySetUpCallPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpCallPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySetUpCallPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyRefreshPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyRefreshPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshPCmd called"));
-		RSat::TRefreshV1Pckg* aPCmdPckg = (RSat::TRefreshV1Pckg*)aPCmd;
-		RSat::TRefreshV1& refreshV1 = (*aPCmdPckg)();
-		
-		refreshV1.SetPCmdNumber(DSATTSY_REFRESH_NUMBER);
-
-		refreshV1.iType	= DSATTSY_REFRESH_TYPE;
- 		refreshV1.iFileList.Append(DSATTSY_REFRESH_ADN_EF);
- 		refreshV1.iFileList.Append(DSATTSY_REFRESH_FDN_EF);
-
-
-		if (refreshV1.ExtensionId()==RSat::KSatV2)
-			{
-			RSat::TRefreshV2Pckg* aV2PCmdPckg = (RSat::TRefreshV2Pckg*)aPCmd;
-			RSat::TRefreshV2& refreshV2 = (*aV2PCmdPckg)();
-			
-			refreshV2.iAid=DSATTSY_AID;
-			}
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::NotifyRefreshPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyRefreshPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySetUpEventListPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySetUpEventListPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySetUpEventListPCmd called"));
-		RSat::TSetUpEventListV1Pckg* aPCmdPckg = (RSat::TSetUpEventListV1Pckg*)aPCmd;
-		RSat::TSetUpEventListV1& setUpEventListV1 = (*aPCmdPckg)();
-		
-		setUpEventListV1.SetPCmdNumber(DSATTSY_SET_UP_EVENT_LIST_NUMBER);
-
-		setUpEventListV1.iType		=DSATTSY_SET_UP_EVENT_LIST_TYPE;
-		setUpEventListV1.iEvents	=DSATTSY_EVENTS;
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySetUpEventListPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpEventListPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySetUpEventListPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySetUpIdleModeTextPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySetUpIdleModeTextPCmd++)
-		{
- 		// First Request: set idle text mode to max length Unicode string
- 		if (iSetUpIdleModeTextCommandCount++ == 0)
- 			{		
-			LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmd called"));
-			RSat::TSetUpIdleModeTextV1Pckg* aPCmdPckg = (RSat::TSetUpIdleModeTextV1Pckg*)aPCmd;
-			RSat::TSetUpIdleModeTextV1& setUpIdleModeTextV1 = (*aPCmdPckg)();
-			
-			setUpIdleModeTextV1.SetPCmdNumber(DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
-
-			setUpIdleModeTextV1.iType				=DSATTSY_IDLE_MODE_TXT_TYPE;
-			setUpIdleModeTextV1.iText				=DSATTSY_IDLE_MODE_TEXT;
-			setUpIdleModeTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
-			setUpIdleModeTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
-
-			setUpIdleModeTextV1.iCodingScheme		=DSATTSY_TEXT_ENCODING_SCHEME;
-			
-			if ((setUpIdleModeTextV1.ExtensionId() == RSat::KSatV5)||
- 			   (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6))
-				{
-				RSat::TSetUpIdleModeTextV5Pckg* aV5PCmdPckg = (RSat::TSetUpIdleModeTextV5Pckg*)aPCmd;
-				RSat::TSetUpIdleModeTextV5& setUpIdleModeTextV5 = (*aV5PCmdPckg)();
-				
-				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-				
-				setUpIdleModeTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-				setUpIdleModeTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-				}			
-
-			if (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6)
-				{
-				RSat::TSetUpIdleModeTextV6Pckg* setUpIdleModeTextV6PCmdPckg = (RSat::TSetUpIdleModeTextV6Pckg*)aPCmd;
-				RSat::TSetUpIdleModeTextV6& setUpIdleModeTextV6 = (*setUpIdleModeTextV6PCmdPckg)();
-				
-				setUpIdleModeTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-				}
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		else // second request: set idle text mode to max length 8-bit string
-			{
-			// reset command count
-			iSetUpIdleModeTextCommandCount = 0;
-			
-			LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmd called"));
-			RSat::TSetUpIdleModeTextV1Pckg* aPCmdPckg = (RSat::TSetUpIdleModeTextV1Pckg*)aPCmd;
-			RSat::TSetUpIdleModeTextV1& setUpIdleModeTextV1 = (*aPCmdPckg)();
-			
-			setUpIdleModeTextV1.SetPCmdNumber(DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
-   
-			setUpIdleModeTextV1.iType				=DSATTSY_IDLE_MODE_TXT_TYPE;
-			CnvUtfConverter::ConvertToUnicodeFromUtf8(setUpIdleModeTextV1.iText,DSATTSY_IDLE_MODE_TEXT_8BIT);
- 			setUpIdleModeTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
- 			setUpIdleModeTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
- 			
- 			setUpIdleModeTextV1.iCodingScheme		=DSATTSY_TEXT_ENCODING_SCHEME_8;
- 			
- 			if ((setUpIdleModeTextV1.ExtensionId() == RSat::KSatV5)  ||
- 			   (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6))
-				{
-				RSat::TSetUpIdleModeTextV5Pckg* aV5PCmdPckg = (RSat::TSetUpIdleModeTextV5Pckg*)aPCmd;
-				RSat::TSetUpIdleModeTextV5& setUpIdleModeTextV5 = (*aV5PCmdPckg)();
-				
-				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-				
-				setUpIdleModeTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-				setUpIdleModeTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-				}
-			
-			if (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6)
-				{
-				RSat::TSetUpIdleModeTextV6Pckg* setUpIdleModeTextV6PCmdPckg = (RSat::TSetUpIdleModeTextV6Pckg*)aPCmd;
-				RSat::TSetUpIdleModeTextV6& setUpIdleModeTextV6 = (*setUpIdleModeTextV6PCmdPckg)();
-				
-				setUpIdleModeTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-				}
-					
- 			ReqCompleted(aTsyReqHandle,KErrNone);		
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySetUpIdleModeTextPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySetUpIdleModeTextPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendDtmfPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySendDtmfPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySendDtmfPCmd called"));
-		RSat::TSendDtmfV1Pckg* aPCmdPckg = (RSat::TSendDtmfV1Pckg*)aPCmd;
-		RSat::TSendDtmfV1& sendDtmfV1 = (*aPCmdPckg)();
-		
-		sendDtmfV1.SetPCmdNumber(DSATTSY_SEND_DTMF_NUMBER);
-
-		sendDtmfV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
-		sendDtmfV1.iAlphaId.iStatus		=DSATTSY_ALPHA_ID1_STATUS;
-		sendDtmfV1.iDtmfString			=DSATTSY_DTMF_STRING;
-		sendDtmfV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
-		sendDtmfV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;	
-
-		if ((sendDtmfV1.ExtensionId() == RSat::KSatV5) ||
-		    (sendDtmfV1.ExtensionId() == RSat::KSatV6))	
-			{
-			RSat::TSendDtmfV5Pckg* aV5PCmdPckg = (RSat::TSendDtmfV5Pckg*)aPCmd;
-			RSat::TSendDtmfV5&   sendDtmfV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			sendDtmfV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			sendDtmfV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (sendDtmfV1.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TSendDtmfV6Pckg* sendDtmfV6PCmdPckg = (RSat::TSendDtmfV6Pckg*)aPCmd;
-			RSat::TSendDtmfV6&   sendDtmfV6 = (*sendDtmfV6PCmdPckg)();
-			
-			sendDtmfV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendDtmfPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySendDtmfPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySendDtmfPCmd=0;
-	return KErrNone;
-	}
-
-//
-// New Typhoon and Jetstream API
-//
-
-TInt CSatDSatTsy::UsatClientReadyIndication(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::UsatClientReadyIndication called"));
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPerformCardApduPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyPerformCardApduPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyPerformCardApduPCmd called"));
-		RSat::TPerformCardApduV2Pckg* aV2PCmdPckg = (RSat::TPerformCardApduV2Pckg*)aPCmd;
-		RSat::TPerformCardApduV2& performCardApduV2 = (*aV2PCmdPckg)();
-		
-		performCardApduV2.SetPCmdNumber(DSATTSY_PERFORM_CARD_APDU_NUMBER);
-
-		performCardApduV2.iDestination=DSATTSY_CARD_READER_1;
-		performCardApduV2.iCApdu.iCla=DSATTSY_CLA;
-		performCardApduV2.iCApdu.iIns=DSATTSY_INS;
-		performCardApduV2.iCApdu.iLc=DSATTSY_LC;
-		performCardApduV2.iCApdu.iLe=DSATTSY_LE;
-		performCardApduV2.iCApdu.iP1=DSATTSY_P1;
-		performCardApduV2.iCApdu.iP2=DSATTSY_P2;
-		performCardApduV2.iCApdu.iData=DSATTSY_CAPDU;
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPerformCardApduPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyPerformCardApduPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyPerformCardApduPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPowerOffCardPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyPowerOffCardPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOffCardPCmd called"));
-		RSat::TPowerOffCardV2Pckg* aV2PCmdPckg = (RSat::TPowerOffCardV2Pckg*)aPCmd;
-		RSat::TPowerOffCardV2& powerOffCardV2 = (*aV2PCmdPckg)();
-		
-		powerOffCardV2.SetPCmdNumber(DSATTSY_POWER_OFF_CARD_NUMBER);
-		powerOffCardV2.iDestination=DSATTSY_CARD_READER_1;
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPowerOffCardPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOffCardPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyPowerOffCardPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPowerOnCardPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyPowerOnCardPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOnCardPCmd called"));
-		RSat::TPowerOnCardV2Pckg* aV2PCmdPckg = (RSat::TPowerOnCardV2Pckg*)aPCmd;
-		RSat::TPowerOnCardV2& powerOnCardV2 = (*aV2PCmdPckg)();
-		
-		powerOnCardV2.SetPCmdNumber(DSATTSY_POWER_ON_CARD_NUMBER);
-		powerOnCardV2.iDestination=DSATTSY_CARD_READER_1;
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPowerOnCardPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOnCardPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyPowerOnCardPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetReaderStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyGetReaderStatusPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyGetReaderStatusPCmd called"));
-		RSat::TGetReaderStatusV2Pckg* aV2PCmdPckg = (RSat::TGetReaderStatusV2Pckg*)aPCmd;
-		RSat::TGetReaderStatusV2& getReaderStatusV2 = (*aV2PCmdPckg)();
-		
-		getReaderStatusV2.SetPCmdNumber(DSATTSY_GET_READER_STATUS_NUMBER);
-		getReaderStatusV2.iDestination=DSATTSY_CARD_READER_1;
-		getReaderStatusV2.iMode=DSATTSY_GET_READER_STATUS_MODE;
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetReaderStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyGetReaderStatusPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyGetReaderStatusPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyRunAtCommandPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyRunAtCommandPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyRunAtCommandPCmd called"));
-		RSat::TRunAtCommandV2Pckg* aV2PCmdPckg = (RSat::TRunAtCommandV2Pckg*)aPCmd;
-		RSat::TRunAtCommandV2& runAtCmdV2 = (*aV2PCmdPckg)();
-		
-		runAtCmdV2.SetPCmdNumber(DSATTSY_RUN_AT_COMMAND_NUMBER);
-		runAtCmdV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
-		runAtCmdV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
-		runAtCmdV2.iAtCommand=DSATTSY_AT_COMMAND;
-		runAtCmdV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-		runAtCmdV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
-		
-		if ((runAtCmdV2.ExtensionId() == RSat::KSatV5) ||
-		    (runAtCmdV2.ExtensionId() == RSat::KSatV6))	
-			{
-			RSat::TRunAtCommandV5Pckg* aV5PCmdPckg = (RSat::TRunAtCommandV5Pckg*)aPCmd;
-			RSat::TRunAtCommandV5&   runAtCmdV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			runAtCmdV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			runAtCmdV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (runAtCmdV2.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TRunAtCommandV6Pckg* runAtCmdV6PCmdPckg = (RSat::TRunAtCommandV6Pckg*)aPCmd;
-			RSat::TRunAtCommandV6&   runAtCmdV6 = (*runAtCmdV6PCmdPckg)();
-			
-			runAtCmdV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyRunAtCommandPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyRunAtCommandPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyRunAtCommandPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyLanguageNotificationPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyLanguageNotificationPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyLanguageNotificationPCmd called"));
-		RSat::TLanguageNotificationV2Pckg* aV2PCmdPckg = (RSat::TLanguageNotificationV2Pckg*)aPCmd;
-		RSat::TLanguageNotificationV2& languageNotificationV2 = (*aV2PCmdPckg)();
-		
-		languageNotificationV2.SetPCmdNumber(DSATTSY_LANGUAGE_NOTIFICATION_NUMBER);
-		languageNotificationV2.iNotificationType=DSATTSY_SPECIFIC_LANGUAGE;
-		languageNotificationV2.iLanguage=DSATTSY_FRENCH;
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyLanguageNotificationPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyLanguageNotificationPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyLanguageNotificationPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetProvisioningRefFile(const TTsyReqHandle aTsyReqHandle, const RSat::TProvisioningFileRef* aFileRef, TDes8* aFile)
-/**
-* GetProviosioningRefFile is called to ask the ICC to return a file name 
-* that corresponds to a given file reference.
-*
-* This test code can only return 2 files - it distinguishes between them based on
-* the length of the file reference passed. Any 1 byte ref will return file1, any
-* 128 byte ref will return file2. Any other length will return "not found".
-*/
-	{
-	if(!iGetProvisioningRefFile++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::GetProvisioningRefFile called"));
-
-		// We only understand 2 references (at the moment) - use the simple minded approach and select by length
-
-		TInt len = aFileRef->Length();
-
-		switch (len)
-			{
-		case 1:
-			*aFile = DSATTSY_FILE1;
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-
-		case 128:
-			*aFile = DSATTSY_FILE2;
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-
-		default:
-			ReqCompleted(aTsyReqHandle,KErrNotFound);
-			break;
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::GetProvisioningRefFileCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::GetProvisioningRefFileCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-
-	iGetProvisioningRefFile = 0;
-
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyLaunchBrowserPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyLaunchBrowserPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyLaunchBrowserPCmd called"));
-		RSat::TLaunchBrowserV2Pckg* aV2PCmdPckg = (RSat::TLaunchBrowserV2Pckg*)aPCmd;
-		RSat::TLaunchBrowserV2& launchBrowserV2 = (*aV2PCmdPckg)();
-		
-		launchBrowserV2.SetPCmdNumber(DSATTSY_LAUNCH_BROWSER_NUMBER);
-
-		launchBrowserV2.iBrowserSel			= DSATTSY_BROWSER_SELECTION_MODE;
-		launchBrowserV2.iBrowserId			= DSATTSY_BROWSER_ID;
-		launchBrowserV2.iUrl				= DSATTSY_URL;
-		launchBrowserV2.iBearerList			= DSATTSY_BEARER_LIST;
-		launchBrowserV2.iText				= DSATTSY_PROXY_NAME;
-		launchBrowserV2.iAlphaId.iStatus	= DSATTSY_ALPHA_ID1_STATUS;
-		launchBrowserV2.iAlphaId.iAlphaId	= DSATTSY_ALPHA_ID1;
-		launchBrowserV2.iIconId.iIdentifier	= DSATTSY_ICON_ID1;
-		launchBrowserV2.iIconId.iQualifier	= DSATTSY_ICON_QUALIFIER1;
-
-		if ((launchBrowserV2.ExtensionId() == RSat::KSatV5) || (launchBrowserV2.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TLaunchBrowserV5Pckg* aV5PCmdPckg = (RSat::TLaunchBrowserV5Pckg*)aPCmd;
-			RSat::TLaunchBrowserV5&   launchBrowserV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			launchBrowserV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			launchBrowserV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (launchBrowserV2.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TLaunchBrowserV6Pckg* launchBrowserV6PCmdPckg = (RSat::TLaunchBrowserV6Pckg*)aPCmd;
-			RSat::TLaunchBrowserV6&   launchBrowserV6 = (*launchBrowserV6PCmdPckg)();
-			
-			launchBrowserV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		RSat::TProvisioningFileRef	file;
-
-		switch(iNotifyLaunchBrowserCount++)
-			{
-		case 0:	// Return 1 file ref of 1 byte length
-			launchBrowserV2.ResetFileRef();
-			file = DSATTSY_FILE_REF_DATA_1;
-			launchBrowserV2.AddFileRef( file );
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-
-		case 1:	// Return 1 file ref of 128 byte length
-			launchBrowserV2.ResetFileRef();
-			file = DSATTSY_FILE_REF_DATA_128;
-			launchBrowserV2.AddFileRef( file );
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-
-		case 2:	// Return 2 files refs of 1 byte length (each)
-			launchBrowserV2.ResetFileRef();
-			file = DSATTSY_FILE_REF_DATA_1;
-			launchBrowserV2.AddFileRef( file );
-			launchBrowserV2.AddFileRef( file );
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-
-		case 3:	// Partial failure, try to add 2 file refs of 128 bytes each,
-				// Second add should fail with KErrOverflow as combined length
-				// is bigger than buffer 
-				// - actually returns 1 file ref of 128 bytes unless unexpected result from add
-			{
-				launchBrowserV2.ResetFileRef();
-				file = DSATTSY_FILE_REF_DATA_128;
-				launchBrowserV2.AddFileRef( file );
-				TInt status = launchBrowserV2.AddFileRef( file );	// Expect to fail on this one
-				if (status != KErrOverflow)
-					ReqCompleted(aTsyReqHandle, status);
-				else
-					ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-			break;
-
-		case 4:	 // Fall through to default case from case 4
-		default: // Return 2 file refs, 1st=128 bytes long, 2nd=1 byte long
-			iNotifyLaunchBrowserCount = 0;		// Reset selection count - next time through will use case 0
-
-			launchBrowserV2.ResetFileRef();
-			file = DSATTSY_FILE_REF_DATA_128;
-			launchBrowserV2.AddFileRef( file );
-			file = DSATTSY_FILE_REF_DATA_1;
-			launchBrowserV2.AddFileRef( file );
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyLaunchBrowserPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyLaunchBrowserPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyLaunchBrowserPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyOpenChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-/**
-* If this function is called with PCmd type of RSat::EAnyBearer then the code will
-* return a type of RSat::ECsBearer. Subsequent calls will return the sequence
-* RSat::EGprsBearer, RSat::ELocalLinksBearer, RSat::EPCmdTypeNotSet. The
-* sequence then restarts with RSat::ECsBearer.
-*/
-	{
-	if(!iNotifyOpenChannelPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyOpenChannelPCmd called"));
-		RSat::TOpenChannelBaseV2Pckg* aV2PCmdPckg = (RSat::TOpenChannelBaseV2Pckg*)aPCmd;
-		RSat::TOpenChannelBaseV2& openChannelBaseV2 = (*aV2PCmdPckg)();
-		
-		openChannelBaseV2.SetPCmdNumber(DSATTSY_OPEN_CHANNEL_NUMBER);
-
-		openChannelBaseV2.iLinkEst=DSATTSY_ON_DEMAND_ESTABLISHMENT;
-		openChannelBaseV2.iReconnectionMode=DSATTSY_AUTO_RECONNECTION;
-		openChannelBaseV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
-		openChannelBaseV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
-		openChannelBaseV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-		openChannelBaseV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
-		openChannelBaseV2.iBearer.iType=DSATTSY_CSD_BEARER_TYPE;
-		openChannelBaseV2.iBearer.iParams=DSATTSY_BEARER_PARAMS;
-		openChannelBaseV2.iBufferSize=DSATTSY_BUFFER_SIZE;
-		openChannelBaseV2.iSimMeInterface.iPrtNumber=DSATTSY_PORT_1;
-		openChannelBaseV2.iSimMeInterface.iTransportProto=DSATTSY_TCP_PROTO;
-		openChannelBaseV2.iDestinationAddress.iType=DSATTSY_IPV4_TYPE;
-		openChannelBaseV2.iDestinationAddress.iAddress=DSATTSY_ADDRESS;
-
-		switch (openChannelBaseV2.iPCmdType)
-			{
-		case RSat::EPCmdTypeNotSet:
-			ReqCompleted(aTsyReqHandle,KErrArgument);
-			break;
-		case RSat::ECsBearer:
-			{
-			RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
-			RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
-
-			openCsChannelV2.iAddress.iTypeOfNumber=DSATTSY_TON;
-			openCsChannelV2.iAddress.iNumberPlan=DSATTSY_NPI;
-			openCsChannelV2.iAddress.iTelNumber=DSATTSY_TEL_NUMBER;
-			openCsChannelV2.iSubAddress=DSATTSY_SUBADDRESS;
-			openCsChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
-			openCsChannelV2.iDuration1.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
-			openCsChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
-			openCsChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
-			openCsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
-			openCsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
-			openCsChannelV2.iUserLogin=DSATTSY_LOGIN;
-			openCsChannelV2.iUserPassword=DSATTSY_PASSWORD;
-
-			if ((openCsChannelV2.ExtensionId() == RSat::KSatV5)
-				|| (openCsChannelV2.ExtensionId() == RSat::KSatV6))
-				{
-				RSat::TOpenCsChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenCsChannelV5Pckg*)aPCmd;
-				RSat::TOpenCsChannelV5&   openCsChannelV5 = (*aV5PCmdPckg)();
-				
-				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-				
-				openCsChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-				openCsChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-				}
-		
-			if (openCsChannelV2.ExtensionId() == RSat::KSatV6)
-				{
-				RSat::TOpenCsChannelV6Pckg* csV6PCmdPckg = (RSat::TOpenCsChannelV6Pckg*)aPCmd;
-				RSat::TOpenCsChannelV6&   openCsChannelV6 = (*csV6PCmdPckg)();
-				
-				openCsChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
-				}
-				
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-			}
-		case RSat::EGprsBearer:
-			{
-			RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
-			RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
-			
-			openGprsChannelV2.iAccessName=DSATTSY_ACCESS_NAME;
-			openGprsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
-			openGprsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
-			
-			if ((openGprsChannelV2.ExtensionId() == RSat::KSatV4) 
-			|| (openGprsChannelV2.ExtensionId() == RSat::KSatV5)
-			|| (openGprsChannelV2.ExtensionId() == RSat::KSatV6))
-				{
-				RSat::TOpenGprsChannelV4Pckg* aV4GprsPCmdPckg = reinterpret_cast<RSat::TOpenGprsChannelV4Pckg*>(aPCmd);
-				RSat::TOpenGprsChannelV4& openGprsChannelV4 = (*aV4GprsPCmdPckg)();
-				
-				openGprsChannelV4.iUserLogin=DSATTSY_LOGIN;
-				openGprsChannelV4.iUserPassword=DSATTSY_PASSWORD;
-				}
-				
-			if ((openGprsChannelV2.ExtensionId() == RSat::KSatV5)
-			   || (openGprsChannelV2.ExtensionId() == RSat::KSatV6))
-				{
-				RSat::TOpenGprsChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenGprsChannelV5Pckg*)aPCmd;
-				RSat::TOpenGprsChannelV5&   openGprsChannelV5 = (*aV5PCmdPckg)();
-			
-				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-				openGprsChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-				openGprsChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-				}
-				
-			if (openGprsChannelV2.ExtensionId() == RSat::KSatV6)
-				{
-				RSat::TOpenGprsChannelV6Pckg* gprsV6PCmdPckg = (RSat::TOpenGprsChannelV6Pckg*)aPCmd;
-				RSat::TOpenGprsChannelV6&   openGprsChannelV6 = (*gprsV6PCmdPckg)();
-			
-				openGprsChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
-				openGprsChannelV6.iBearer.iType=DSATTSYV6_GPRS_BEARER_TYPE1;
-				}
-				
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-			}
-		case RSat::ELocalLinksBearer:
-			{
-			RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
-			RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
-
-			openLocalChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
-			openLocalChannelV2.iDuration1.iNumOfUnits=DSATTSY_TIME_UNIT;
-			openLocalChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
-			openLocalChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
-			openLocalChannelV2.iRemoteAddress.iCoding=DSATTSY_CODING;
-			openLocalChannelV2.iRemoteAddress.iAddress=DSATTSY_ADDRESS;
-			openLocalChannelV2.iUserPassword=DSATTSY_PASSWORD;
-
-			if ((openLocalChannelV2.ExtensionId() == RSat::KSatV5)
-				|| (openLocalChannelV2.ExtensionId() == RSat::KSatV6))
-				{
-				RSat::TOpenLocalLinksChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenLocalLinksChannelV5Pckg*)aPCmd;
-				RSat::TOpenLocalLinksChannelV5&   openLocalChannelV5 = (*aV5PCmdPckg)();
-			
-				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-				openLocalChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-				openLocalChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);				
-				}
-
-			if (openLocalChannelV2.ExtensionId() == RSat::KSatV6)
-				{
-				RSat::TOpenLocalLinksChannelV6Pckg* localV6PCmdPckg = (RSat::TOpenLocalLinksChannelV6Pckg*)aPCmd;
-				RSat::TOpenLocalLinksChannelV6&   openLocalChannelV6 = (*localV6PCmdPckg)();
-		
-				openLocalChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;				
-				}
-				
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-			}
-		case RSat::EUiccServerMode:
-			{
-			RSat::TOpenUiccServerModeChannelV7Pckg* aV7PCmdPckg = (RSat::TOpenUiccServerModeChannelV7Pckg*)aPCmd;
-			RSat::TOpenUiccServerModeChannelV7& uiccServerModeChannelV7 = (*aV7PCmdPckg)();
-			
-			uiccServerModeChannelV7.iPCmdType = DSATTSY_UICC_SERVER_MODE;
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			uiccServerModeChannelV7.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			uiccServerModeChannelV7.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-
-			uiccServerModeChannelV7.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			break;
-			}
-		case RSat::EAnyBearer:
-			{
-			// Monitor all kind of open channel PCmd
-
-			// Select type of channel PCmd that has 'opened' 
-
-			switch(iNotifyAnyBearerCount++)
-				{
-			case 0:
-					{
-					// This iteration set bearer type to "CS"
-
-					RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
-					RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
-
-					openCsChannelV2.iPCmdType = RSat::ECsBearer;
-
-					ReqCompleted(aTsyReqHandle,KErrNone);
-					break;
-					}
-			case 1:
-					{
-					// This iteration set bearer type to "GPRS"
-
-					RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
-					RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
-					
-					openGprsChannelV2.iPCmdType	= RSat::EGprsBearer;
-
-					ReqCompleted(aTsyReqHandle,KErrNone);
-					break;
-					}
-			case 2:
-					{
-					// This iteration set bearer type to "Local Link"
-
-					RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
-					RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
-
-					openLocalChannelV2.iPCmdType = RSat::ELocalLinksBearer;
-
-					ReqCompleted(aTsyReqHandle, KErrNone);
-
-					break;
-					}
-			default:
-					{
-					// Next iteration bearer will be "CS"
-
-					iNotifyAnyBearerCount = 0;
-
-					// Current iteration will return a failure ("type not set") in base channel
-
-					openChannelBaseV2.iPCmdType = RSat::EPCmdTypeNotSet;
-
-					ReqCompleted(aTsyReqHandle,KErrNone);
-					}
-				}
-			}
-		default:
-			ReqCompleted(aTsyReqHandle,KErrArgument);
-			}
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::GetOpenChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	/**
-	* This function should be called with PCmd type set to RSat::ECsBearer, 
-	* RSat::EGprsBearer or RSat::ELocalLinksBearer.
-	*/
-	LOGTEXT(_L8("CSatDSatTsy::GetOpenChannelPCmd called"));
-	RSat::TOpenChannelBaseV2Pckg* aV2PCmdPckg = (RSat::TOpenChannelBaseV2Pckg*)aPCmd;
-	RSat::TOpenChannelBaseV2& openChannelV2 = (*aV2PCmdPckg)();
-
-	switch (openChannelV2.iPCmdType)
-		{
-	case RSat::EPCmdTypeNotSet:
-		ReqCompleted(aTsyReqHandle,KErrArgument);
-		break;
-	case RSat::ECsBearer:
-		{
-		RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
-		RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
-
-		openCsChannelV2.iAddress.iTypeOfNumber=DSATTSY_TON;
-		openCsChannelV2.iAddress.iNumberPlan=DSATTSY_NPI;
-		openCsChannelV2.iAddress.iTelNumber=DSATTSY_TEL_NUMBER;
-		openCsChannelV2.iSubAddress=DSATTSY_SUBADDRESS;
-		openCsChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
-		openCsChannelV2.iDuration1.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
-		openCsChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
-		openCsChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
-		openCsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
-		openCsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
-		openCsChannelV2.iUserLogin=DSATTSY_LOGIN;
-		openCsChannelV2.iUserPassword=DSATTSY_PASSWORD;
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		break;
-		}
-	case RSat::EGprsBearer:
-		{
-		RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
-		RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
-		
-		openGprsChannelV2.iAccessName=DSATTSY_ACCESS_NAME;
-		openGprsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
-		openGprsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
-		
-		if (openGprsChannelV2.ExtensionId() == RSat::KSatV4)
-			{
-			RSat::TOpenGprsChannelV4Pckg* aV4GprsPCmdPckg = reinterpret_cast<RSat::TOpenGprsChannelV4Pckg*>(aPCmd);
-			RSat::TOpenGprsChannelV4& openGprsChannelV4 = (*aV4GprsPCmdPckg)();
-			
-			openGprsChannelV4.iUserLogin=DSATTSY_LOGIN;
-			openGprsChannelV4.iUserPassword=DSATTSY_PASSWORD;
-			}
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		break;
-		}
-	case RSat::ELocalLinksBearer:
-		{
-		RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
-		RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
-
-		openLocalChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
-		openLocalChannelV2.iDuration1.iNumOfUnits=DSATTSY_TIME_UNIT;
-		openLocalChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
-		openLocalChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
-		openLocalChannelV2.iRemoteAddress.iCoding=DSATTSY_CODING;
-		openLocalChannelV2.iRemoteAddress.iAddress=DSATTSY_ADDRESS;
-		openLocalChannelV2.iUserPassword=DSATTSY_PASSWORD;
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		break;
-		}
-	case RSat::EAnyBearer:
-		{
-		ReqCompleted(aTsyReqHandle,KErrArgument);
-		break;
-		}
-	default:
-		ReqCompleted(aTsyReqHandle,KErrArgument);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyOpenChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyOpenChannelPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyOpenChannelPCmd=0;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::GetOpenChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::GetOpenChannelPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;
-	}	
-
-TInt CSatDSatTsy::NotifyCloseChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyCloseChannelPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyCloseChannelPCmd called"));
-		RSat::TCloseChannelV2Pckg* aV2PCmdPckg = (RSat::TCloseChannelV2Pckg*)aPCmd;
-		RSat::TCloseChannelV2& closeChannelV2 = (*aV2PCmdPckg)();
-		
-		closeChannelV2.SetPCmdNumber(DSATTSY_CLOSE_CHANNEL_NUMBER);
-
-		closeChannelV2.iDestination=DSATTSY_CARD_READER_1;
-		closeChannelV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
-		closeChannelV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
-		closeChannelV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-		closeChannelV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
-
-		if ((closeChannelV2.ExtensionId() == RSat::KSatV5) ||
-			(closeChannelV2.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TCloseChannelV5Pckg* aV5PCmdPckg = (RSat::TCloseChannelV5Pckg*)aPCmd;
-			RSat::TCloseChannelV5&   closeChannelV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			closeChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			closeChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (closeChannelV2.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TCloseChannelV6Pckg* closeChannelV6PCmdPckg = (RSat::TCloseChannelV6Pckg*)aPCmd;
-			RSat::TCloseChannelV6&   closeChannelV6 = (*closeChannelV6PCmdPckg)();
-			
-			closeChannelV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyCloseChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyCloseChannelPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyCloseChannelPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyReceiveDataPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyReceiveDataPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyReceiveDataPCmd called"));
-		RSat::TReceiveDataV2Pckg* aV2PCmdPckg = (RSat::TReceiveDataV2Pckg*)aPCmd;
-		RSat::TReceiveDataV2& receiveDataV2 = (*aV2PCmdPckg)();
-		
-		receiveDataV2.SetPCmdNumber(DSATTSY_RECEIVE_DATA_NUMBER);
-
-		receiveDataV2.iDestination=DSATTSY_CARD_READER_1;
-		receiveDataV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
-		receiveDataV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
-		receiveDataV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-		receiveDataV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
-		receiveDataV2.iChannelDataLength=DSATTSY_DATA_LENGTH;
-
-		if ((receiveDataV2.ExtensionId() == RSat::KSatV5) ||
-			(receiveDataV2.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TReceiveDataV5Pckg* aV5PCmdPckg = (RSat::TReceiveDataV5Pckg*)aPCmd;
-			RSat::TReceiveDataV5&   receiveDataV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			receiveDataV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			receiveDataV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}		
-
-		if (receiveDataV2.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TReceiveDataV6Pckg* receiveDataV6PCmdPckg = (RSat::TReceiveDataV6Pckg*)aPCmd;
-			RSat::TReceiveDataV6&   receiveDataV6 = (*receiveDataV6PCmdPckg)();
-			
-			receiveDataV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyReceiveDataPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyReceiveDataPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyReceiveDataPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendDataPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySendDataPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySendDataPCmd called"));
-		RSat::TSendDataV2Pckg* aV2PCmdPckg = (RSat::TSendDataV2Pckg*)aPCmd;
-		RSat::TSendDataV2& sendDataV2 = (*aV2PCmdPckg)();
-		
-		sendDataV2.SetPCmdNumber(DSATTSY_SEND_DATA_NUMBER);
-
-		sendDataV2.iDestination=DSATTSY_CARD_READER_1;
-		sendDataV2.iMode=DSATTSY_SEND_DATA_MODE;
-		sendDataV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
-		sendDataV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
-		sendDataV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-		sendDataV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
-		sendDataV2.iChannelData=DSATTSY_CHANNEL_DATA;
-
-		if ((sendDataV2.ExtensionId() == RSat::KSatV5) ||
-			(sendDataV2.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TSendDataV5Pckg* aV5PCmdPckg = (RSat::TSendDataV5Pckg*)aPCmd;
-			RSat::TSendDataV5&   sendDataV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			sendDataV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			sendDataV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (sendDataV2.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TSendDataV6Pckg* sendDataV6PCmdPckg = (RSat::TSendDataV6Pckg*)aPCmd;
-			RSat::TSendDataV6&   sendDataV6 = (*sendDataV6PCmdPckg)();
-			
-			sendDataV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySendDataPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySendDataPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySendDataPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetChannelStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyGetChannelStatusPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyGetChannelStatusPCmd called"));
-		RSat::TGetChannelStatusV2Pckg* aV2PCmdPckg = (RSat::TGetChannelStatusV2Pckg*)aPCmd;
-		RSat::TGetChannelStatusV2& getStatusV2 = (*aV2PCmdPckg)();
-		
-		getStatusV2.SetPCmdNumber(DSATTSY_GET_CHANNEL_STATUS_NUMBER);
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetChannelStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyGetChannelStatusPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyGetChannelStatusPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyServiceSearchPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyServiceSearchPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyServiceSearchPCmd called"));
-		RSat::TServiceSearchV2Pckg* aV2PCmdPckg = (RSat::TServiceSearchV2Pckg*)aPCmd;
-		RSat::TServiceSearchV2& serviceSearchV2 = (*aV2PCmdPckg)();
-		
-		serviceSearchV2.SetPCmdNumber(DSATTSY_SERVICE_SEARCH_NUMBER);
-
-		serviceSearchV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
-		serviceSearchV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
-		serviceSearchV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-		serviceSearchV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
-		serviceSearchV2.iSearch.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
-		serviceSearchV2.iSearch.iSearchParam=DSATTSY_SERVICE_SEARCH_PARAMS;
-		serviceSearchV2.iFilter.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
-		serviceSearchV2.iFilter.iDeviceFilter=DSATTSY_FILTER_INFO;
-
-		if ((serviceSearchV2.ExtensionId() == RSat::KSatV5) ||
-			(serviceSearchV2.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TServiceSearchV5Pckg* aV5PCmdPckg = (RSat::TServiceSearchV5Pckg*)aPCmd;
-			RSat::TServiceSearchV5&   serviceSearchV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			serviceSearchV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			serviceSearchV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (serviceSearchV2.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TServiceSearchV6Pckg* serviceSearchV6PCmdPckg = (RSat::TServiceSearchV6Pckg*)aPCmd;
-			RSat::TServiceSearchV6&   serviceSearchV6 = (*serviceSearchV6PCmdPckg)();
-			
-			serviceSearchV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyServiceSearchPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyServiceSearchPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyServiceSearchPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetServiceInfoPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyGetServiceInfoPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyGetServiceInfoPCmd called"));
-		RSat::TGetServiceInfoV2Pckg* aV2PCmdPckg = (RSat::TGetServiceInfoV2Pckg*)aPCmd;
-		RSat::TGetServiceInfoV2& getServiceInfoV2 = (*aV2PCmdPckg)();
-		
-		getServiceInfoV2.SetPCmdNumber(DSATTSY_GET_SERVICE_INFO_NUMBER);
-
-		getServiceInfoV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
-		getServiceInfoV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
-		getServiceInfoV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
-		getServiceInfoV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
-		getServiceInfoV2.iAttributeInfo.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
-		getServiceInfoV2.iAttributeInfo.iAttributeInfo=DSATTSY_ATTRIBUTE_INFO;
-
-		if ((getServiceInfoV2.ExtensionId() == RSat::KSatV5) ||
-			(getServiceInfoV2.ExtensionId() == RSat::KSatV6))
-			{
-			RSat::TGetServiceInfoV5Pckg* aV5PCmdPckg = (RSat::TGetServiceInfoV5Pckg*)aPCmd;
-			RSat::TGetServiceInfoV5&   getServiceInfoV5 = (*aV5PCmdPckg)();
-			
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			
-			getServiceInfoV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			getServiceInfoV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-			}
-
-		if (getServiceInfoV2.ExtensionId() == RSat::KSatV6)
-			{
-			RSat::TGetServiceInfoV6Pckg* getServiceInfoV6PCmdPckg = (RSat::TGetServiceInfoV6Pckg*)aPCmd;
-			RSat::TGetServiceInfoV6&   getServiceInfoV6 = (*getServiceInfoV6PCmdPckg)();
-			
-			getServiceInfoV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-			}
-			
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetServiceInfoPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyGetServiceInfoPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyGetServiceInfoPCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyDeclareServicePCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyDeclareServicePCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyDeclareServicePCmd called"));
-		RSat::TDeclareServiceV2Pckg* aV2PCmdPckg = (RSat::TDeclareServiceV2Pckg*)aPCmd;
-		RSat::TDeclareServiceV2& declareServiceV2 = (*aV2PCmdPckg)();
-		
-		declareServiceV2.SetPCmdNumber(DSATTSY_DECLARE_SERVICE_NUMBER);
-
-		declareServiceV2.iType=DSATTSY_DECLARE_SERVICE_TYPE;
-		declareServiceV2.iServiceRecord.iBearerId=DSATTSY_BEARER_NOT_PRESENT;
-		declareServiceV2.iServiceRecord.iServiceId=DSATTSY_NULL_BEARER_ID;
-		declareServiceV2.iServiceRecord.iRecord=DSATTSY_NULL_NARROW_BUF;
-		declareServiceV2.iInterface.iPrtNumber=DSATTSY_PORT_1;
-		declareServiceV2.iInterface.iTransportProto=DSATTSY_TCP_PROTO;
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyDeclareServicePCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyDeclareServicePCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyDeclareServicePCmd=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyProactiveSimSessionStart(const TTsyReqHandle aTsyReqHandle)
-	{
-	if(!iNotifyProactiveSimSessionStart++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionStart called"));
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifyProactiveSimSessionStartCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionStartCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyProactiveSimSessionStart=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyProactiveSimSessionEnd(const TTsyReqHandle aTsyReqHandle)
-	{
-	if(!iNotifyProactiveSimSessionEnd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionEnd called"));
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyProactiveSimSessionEndCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionEndCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyProactiveSimSessionEnd=0;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifyTimerExpiration(const TTsyReqHandle aTsyReqHandle, TDes8* aTimerDetails)
-	{
-	if(!iNotifyTimerExpiration++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::Notify Timer expiration called"));
-		RSat::TTimerExpirationV3Pckg* cmdPckg = (RSat::TTimerExpirationV3Pckg*)aTimerDetails;
-		RSat::TTimerExpirationV3& cmdV3 = (*cmdPckg)();	
-		
-		cmdV3.iTimerId = RSat::KTimer1;
-		cmdV3.iTimerValue.iTimeUnit = RSat::ESeconds;
-		cmdV3.iTimerValue.iNumOfUnits = 10;
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyTimerExpirationCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyTimerExpirationCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyTimerExpiration=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySmsPpDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aSmsPpDownloadDetails)
-	{
-	if(!iNotifySmsPpDownload++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::Notify Sms Pp Download called"));
-		RSat::TSmsPpDownloadV3Pckg* cmdPckg = (RSat::TSmsPpDownloadV3Pckg*)aSmsPpDownloadDetails;
-		RSat::TSmsPpDownloadV3& cmdV3 = (*cmdPckg)();	
-		
-		cmdV3.iDeviceId=RSat::KEarPiece;
-		cmdV3.iRpAddress.iTypeOfNumber	=DSATTSY_TON;
-		cmdV3.iRpAddress.iNumberPlan	=DSATTSY_NPI;
-		cmdV3.iRpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
-		cmdV3.iPdu=DSATTSY_SMS_TPDU; 
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyTsyStateUpdated(const TTsyReqHandle aTsyReqHandle,RSat::TPCmd* aPCmd)
-	{
-	if(!iNotifyTsyStateUpdated++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyTsyStateUpdated called"));
-		*aPCmd = DSATTSY_SENDSS;
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifyTsyStateUpdatedCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyTsyStateUpdatedCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return KErrNone;
-	}	
-
-TInt CSatDSatTsy::NotifyRefreshRequired(const TTsyReqHandle aTsyReqHandle)
-	{
-	if(!iNotifyRefreshRequired++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequired called"));
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-	
-TInt CSatDSatTsy::NotifyRefreshRequired(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyRefreshRequired++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequired called (with param)"));
-
-		RSat::TRefreshV1Pckg* refreshPckg = (RSat::TRefreshV1Pckg*)aPCmd;
-		RSat::TRefreshV1& refreshV1 = (*refreshPckg)();
-		
-		refreshV1.SetPCmdNumber(DSATTSY_REFRESH_NUMBER);
-
-		refreshV1.iType	= DSATTSY_REFRESH_TYPE;
- 		refreshV1.iFileList.Append(DSATTSY_REFRESH_FDN_EF);
- 		refreshV1.iFileList.Append(DSATTSY_REFRESH_ADN_EF);
-
-		if (refreshV1.ExtensionId()==RSat::KSatV2)
-			{
-			RSat::TRefreshV2Pckg* aV2PCmdPckg = (RSat::TRefreshV2Pckg*)aPCmd;
-			RSat::TRefreshV2& refreshV2 = (*aV2PCmdPckg)();
-			
-			refreshV2.iAid=DSATTSY_AID;
-			}
-
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}		
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::NotifyRefreshRequiredCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequiredCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyRefreshRequired=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::RefreshAllowed(const TTsyReqHandle aTsyReqHandle, TDes8* aRefreshAllowedRsp)
-	{
-	RSat::TRefreshRspV1Pckg* aRspPckg = (RSat::TRefreshRspV1Pckg*)aRefreshAllowedRsp;
-	RSat::TRefreshRspV1& rspV1 = (*aRspPckg)();
-
-	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
-		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
-		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iRefreshAllowed++)
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::RefreshAllowedCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::RefreshAllowedCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyRefreshRequired=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifySmsPpDownloadCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySmsPpDownloadCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySmsPpDownload=0;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyCbDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aCbDownloadDetails)
-	{
-	if(!iNotifyCbDownload++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::Notify CB Download called"));
-		RSat::TCbDownloadV3Pckg* cmdPckg = (RSat::TCbDownloadV3Pckg*)aCbDownloadDetails;
-		RSat::TCbDownloadV3& cmdV3 = (*cmdPckg)();		
-		
-		cmdV3.iDeviceId=RSat::KEarPiece;
-		cmdV3.iPdu= DSATTSY_CB_PDU; 
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifyCbDownloadCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyCbDownloadCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyCbDownload=0;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifyTimerManagtPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyTimerManagtPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyTimerManagtPCmd called"));
-		RSat::TTimerMgmtV3Pckg* aV3PCmdPckg = (RSat::TTimerMgmtV3Pckg*)aPCmd;
-		RSat::TTimerMgmtV3& timerMngtV3 = (*aV3PCmdPckg)();
-		
-		timerMngtV3.iTimerId = RSat::KTimer1;
-		timerMngtV3.iTimerValue.iTimeUnit = RSat::ESeconds;
-		timerMngtV3.iTimerValue.iNumOfUnits = 10;
-		timerMngtV3.iOperation = RSat::EStartTimer;
-				
-		ReqCompleted(aTsyReqHandle,KErrNone);	
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyTimerManagtPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyTmerManagtPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyTimerManagtPCmd=0;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifyLocalInfoPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyLocalInfoPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyLocalInfoPCmd called"));
-		RSat::TLocalInfoV3Pckg* aV3PCmdPckg = (RSat::TLocalInfoV3Pckg*)aPCmd;	
-		RSat::TLocalInfoV3& localInfoV3 = (*aV3PCmdPckg)();
-	
-		localInfoV3.iDevideId = RSat::KKeypad;
-		localInfoV3.iInfoType = RSat::KProvideLocalInfo;
-		if(localInfoV3.ExtensionId()== RSat::KSatV6)
-			{
-			RSat::TLocalInfoV6Pckg* localInfoV6PCmdPckg = (RSat::TLocalInfoV6Pckg*)aPCmd;	
-			RSat::TLocalInfoV6& localInfoV6 = (*localInfoV6PCmdPckg)();
-			localInfoV6.iUtranMeasurementQualifier=DSATTSYV6_LOCAL_INFOV6;
-			localInfoV6.iInfoType = RSat::KProvideLocalInfoSearchMode;
-			}
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyLocalInfoPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyLocalInfoPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyLocalInfoPCmd=0;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifyPollingIntervalPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyPollingIntervalPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyPollingIntervalPCmd called"));
-		RSat::TPollingIntervalV3Pckg* aV3PCmdPckg = (RSat::TPollingIntervalV3Pckg*)aPCmd;	
-		RSat::TPollingIntervalV3& pollingIntvV3 = (*aV3PCmdPckg)();
-		
-		pollingIntvV3.iIntv.iTimeUnit = RSat::ESeconds;
-		pollingIntvV3.iIntv.iNumOfUnits = DSATTSY_NUM_OF_UNITS;
-		pollingIntvV3.iDestination=RSat::KEarPiece;
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-	
-TInt CSatDSatTsy::NotifyPollingIntervalPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	
-	LOGTEXT(_L8("CSatDSatTsy::NotifyPollingIntervalPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyPollingIntervalPCmd=0;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifyPollingOffPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyPollingOffPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyPollingOffPCmd called"));
-		RSat::TPollingOffV3Pckg* aV3PCmdPckg = (RSat::TPollingOffV3Pckg*)aPCmd;	
-		RSat::TPollingOffV3& pollingIntvV3 = (*aV3PCmdPckg)();
-		
-		pollingIntvV3.iIntv.iTimeUnit = RSat::ESeconds;
-		pollingIntvV3.iIntv.iNumOfUnits = 20;
-		pollingIntvV3.iDestination=RSat::KNetwork;
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyPollingOffPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	
-	LOGTEXT(_L8("CSatDSatTsy::NotifyPollingOffPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyPollingOffPCmd=0;
-	return KErrNone;
-	}
-
-
-
-TInt CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd) 
-	{
-	if(!iNotifyRetrieveMultimediaMsgPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd called"));
-		RSat::TRetrieveMultimediaMessageV6Pckg* retrieveMmV6PCmdPckg = (RSat::TRetrieveMultimediaMessageV6Pckg*)aPCmd;	
-		RSat::TRetrieveMultimediaMessageV6& retrieveMMV6 = (*retrieveMmV6PCmdPckg)();
-		
-		const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-		retrieveMMV6.SetPCmdNumber(DSATTSY_RETRIEVE_MULTIMEDIA_MESSAGE);
-		retrieveMMV6.iDestination = DSATTSYV6_DEVICE_ID1;
-		retrieveMMV6.iAlphaId.iAlphaId= DSATTSYV6_ALPHAID1;
-		retrieveMMV6.iAlphaId.iStatus = DSATTSYV6_ALPHAID_STATUS2;
-		retrieveMMV6.iIconId.iIdentifier = DSATTSYV6_ICON_ID1;
-		retrieveMMV6.iIconId.iQualifier =  DSATTSYV6_ICON_QUALIFIER3;
-		retrieveMMV6.iMultimediaContentId = DSATTSYV6_MULTIMEDIA_CONTENT_ID1;
-		retrieveMMV6.iMultimediaMessageRef = DSATTSYV6_MULTIMEDIA_MESSAGE_REF1;
-		retrieveMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
-		retrieveMMV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-		retrieveMMV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyRetrieveMultimediaMsgPCmd=0;
-	return KErrNone;
-	}
-
-
-
-TInt CSatDSatTsy::NotifySubmitMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySubmitMultimediaMsgPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmd called"));
-		RSat::TSubmitMultimediaMessageV6Pckg* submitMMV6PCmdPckg = (RSat::TSubmitMultimediaMessageV6Pckg*)aPCmd;	
-		RSat::TSubmitMultimediaMessageV6& submitMMV6 = (*submitMMV6PCmdPckg)();
-		
-		const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-		submitMMV6.SetPCmdNumber(DSATTSY_SUBMIT_MULTIMEDIA_MESSAGE);
-		submitMMV6.iDestination = DSATTSYV6_DEVICE_ID1;
-		submitMMV6.iAlphaId.iAlphaId= DSATTSYV6_ALPHAID1;
-		submitMMV6.iAlphaId.iStatus = DSATTSYV6_ALPHAID_STATUS2;
-		submitMMV6.iIconId.iIdentifier = DSATTSYV6_ICON_ID1;
-		submitMMV6.iIconId.iQualifier =  DSATTSYV6_ICON_QUALIFIER3;
-		submitMMV6.iSubmissionFile = DSATTSYV6_SUBMISSION_FILE1;
-		submitMMV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-		submitMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
-		submitMMV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-		
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-	
-TInt CSatDSatTsy::NotifySubmitMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySubmitMultimediaMsgPCmd=0;
-	return KErrNone;	
-	}
-	
-
-
-TInt CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyDisplayMultimediaMsgPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd called"));
-		RSat::TDisplayMultimediaMessageV6Pckg* displayMMV6PCmdPckg = (RSat::TDisplayMultimediaMessageV6Pckg*)aPCmd;	
-		RSat::TDisplayMultimediaMessageV6& displayMMV6 = (*displayMMV6PCmdPckg)();	
-		
-		displayMMV6.SetPCmdNumber(DSATTSY_DISPLAY_MULTIMEDIA_MESSAGE);
-		displayMMV6.iDestination = DSATTSYV6_DEVICE_ID3;
-		displayMMV6.iDisplayPriority = DSATTSYV6_DISPLAY_PRIORITY1;
-		displayMMV6.iSubmissionFile = DSATTSYV6_SUBMISSION_FILE1;
-		displayMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
-		displayMMV6.iImmediateRsp = DSATTSYV6_IMMEDIATE_RESPONSE1;
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyDisplayMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyDisplayMultimediaMsgPCmd=0;
-	return KErrNone;	
-	}
-
-
-TInt CSatDSatTsy::NotifySetFramesPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifySetFramesPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifySetFramesPCmd called"));
-		RSat::TSetFramesV6Pckg* setFramesV6PCmdPckg = (RSat::TSetFramesV6Pckg*)aPCmd;	
-		RSat::TSetFramesV6& setFramesV6 = (*setFramesV6PCmdPckg)();	
-		
-		setFramesV6.SetPCmdNumber(DSATTSY_SET_FRAMES);
-		setFramesV6.iDestination = DSATTSYV6_DEVICE_ID1;
-        setFramesV6.iDefaultFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
-        setFramesV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
-        setFramesV6.iFrameLayout.iFramesLayout = DSATTSYV6_FRAME_LAYOUT_FORMAT1;
-        setFramesV6.iFrameLayout.iFrameLayoutBuf = DSATTSYV6_FRAME_LAYOUT1;
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone; 
-	}
-	
-TInt CSatDSatTsy::NotifySetFramesPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::SetFramesPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifySetFramesPCmd=0;
-	return KErrNone;	
-	}
-	
-
-TInt CSatDSatTsy::NotifyGetFramesStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	if(!iNotifyGetFramesStatusPCmd++)
-		{
-		LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmd called"));
-		RSat::TGetFramesStatusV6Pckg* getFramesStatusV6PCmdPckg = (RSat::TGetFramesStatusV6Pckg*)aPCmd;	
-		RSat::TGetFramesStatusV6& getFramesStatusV6 = (*getFramesStatusV6PCmdPckg)();	
-		
-		getFramesStatusV6.SetPCmdNumber(DSATTSY_GET_FRAMES_STATUS);
-		getFramesStatusV6.iDestination = DSATTSYV6_DEVICE_ID1;
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::NotifyGetFramesStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmdCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iNotifyGetFramesStatusPCmd=0;
-	return KErrNone;	
-	}
-	
-
-
-TInt CSatDSatTsy::MmsNotificationDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::MmsNotificationDownload called"));
-	RSat::TMmsNotificationDownloadV6Pckg* mMSNotificationDownloadV6PCmdPckg = (RSat::TMmsNotificationDownloadV6Pckg*)aPCmd;	
-	RSat::TMmsNotificationDownloadV6& mMSNotificationDownloadV6 = (*mMSNotificationDownloadV6PCmdPckg)();	
-		
-	if((mMSNotificationDownloadV6.iDeviceId != DSATTSYV6_DEVICE_ID1) || 
-	   (mMSNotificationDownloadV6.iLastEnvelope != DSATTSYV6_LAST_ENVELOPE1) || 
-	   (mMSNotificationDownloadV6.iMMSNotification != DSATTSYV6_MMS_NOTIFICATION1))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);			
-		}
-	else if(!iMmsNotificationDownload++)
-		{
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;	
-	}
-
-TInt CSatDSatTsy::MmsNotificationDownloadCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::MmsNotificationDownloadCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iMmsNotificationDownload=0;
-	return KErrNone;	
-	}
-
-
-
-TInt CSatDSatTsy::MmsTransferStatus(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::MmsTransferStatus called"));
-	RSat::TMmsTransferStatusV6Pckg* mMSTransferStatusV6PCmdPckg = (RSat::TMmsTransferStatusV6Pckg*)aPCmd;	
-	RSat::TMmsTransferStatusV6& mMSTransferStatusV6 = (*mMSTransferStatusV6PCmdPckg)();	
-		
-	if((mMSTransferStatusV6.iDeviceId != DSATTSYV6_DEVICE_ID3) || 
-	   (mMSTransferStatusV6.iMultimediaMessageId !=DSATTSYV6_MULTIMEDIA_MESSAGE_ID1) || 
-	   (mMSTransferStatusV6.iMultimediaMessageStatus !=DSATTSYV6_MULTIMEDIA_MESSAGE_STATUS))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else if(!iMmsTransferStatus++)
-		{
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}
-
-TInt CSatDSatTsy::MmsTransferStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::MMTransferStatusCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iMmsTransferStatus=0;
-	return KErrNone;	
-	}
-
-	
-
-TInt CSatDSatTsy::UssdDataDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aUssdDataDownload)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::UssdDataDownload called"));
-	RSat::TUssdDataDownloadV6Pckg* ussdDataDownloadPckg = (RSat::TUssdDataDownloadV6Pckg*)aUssdDataDownload;
-	RSat::TUssdDataDownloadV6& ussdDataDownloadV6 = (*ussdDataDownloadPckg)();	
-		
-	if((ussdDataDownloadV6.iDeviceId != DSATTSYV6_DEVICE_ID1) || 
-	   (ussdDataDownloadV6.iUssdString.iUssdString != DSATTSY_USSD_STRING))
-		{
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-		}
-	else if(!iUssdDataDownload++)
-		{
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-
-	iTsyAsyncReqHandle = aTsyReqHandle;
-	return KErrNone;
-	}	
-
-TInt CSatDSatTsy::UssdDataDownloadCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSatDSatTsy::UssdDataDownloadCancel called"));
-	if(aTsyReqHandle == iTsyAsyncReqHandle)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	iUssdDataDownload=0;
-	return KErrNone;	
-	}
-
-
-
-TSecurityPolicy CSatDSatTsy::GetRequiredPlatSecCaps(const TInt aIpc)
-	{
-	switch(aIpc)
-		{
-	case ETestCustomIPC1:
-		return TSecurityPolicy(ECapabilityNetworkServices);
-	default:
-		//For any non-Custom IPCs return a policy that will always cause the capability check to pass
-		return TSecurityPolicy(TSecurityPolicy::EAlwaysPass);
-		}
-	}	
-
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Dummy Sat TSY classes implementation.
+// 
+//
+
+/**
+ @file
+*/
+#include "sattsy.h"
+#include "testdef.h"
+#include "Etelsat.h"
+#include <et_clsvr.h>
+#include "Dsatlog.h"
+#include <satcs.h>
+#include <utf.h>
+
+#include "coretsy.h"
+
+/**************************************************************************/
+//
+//	CSatDSatTsy
+//
+/**************************************************************************/
+
+CSatDSatTsy* CSatDSatTsy::NewL(CPhoneFactoryDummyBase* aFac)
+	{
+	CSatDSatTsy* subsession=new(ELeave) CSatDSatTsy(aFac);
+	CleanupStack::PushL(subsession);
+	subsession->ConstructL();
+	CleanupStack::Pop();
+	return subsession;
+	}
+
+void CSatDSatTsy::Init()
+	{}
+
+CSatDSatTsy::CSatDSatTsy(CPhoneFactoryDummyBase* aFac)
+	:CSubSessionExtDummyBase(aFac)
+	{
+	iTsyAsyncReqHandle=0;
+	iNotifyCallControlRequest=0;
+	iNotifyMoSmControlRequest=0;
+	iNotifyDisplayTextPCmd=0;
+	iNotifyGetInkeyPCmd=0;
+	iNotifyGetInputPCmd=0;
+	iNotifyPlayTonePCmd=0;
+	iNotifySetUpMenuPCmd=0;
+	iNotifySelectItemPCmd=0;
+	iNotifySendSmPCmd=0;
+	iNotifySendSsPCmd=0;
+	iNotifySendUssdPCmd=0;
+	iNotifySetUpCallPCmd=0;
+	iNotifyRefreshPCmd=0;
+	iNotifySetUpEventListPCmd=0;
+	iNotifySetUpIdleModeTextPCmd=0;
+	iNotifySendDtmfPCmd=0;
+	iGetIcon=0;
+	iGetImageInstance=0;
+	iGetClut=0;
+	iDisplayTextTerminalRsp=0;
+	iGetInkeyTerminalRsp=0;
+	iGetInputTerminalRsp=0;
+	iPlayToneTerminalRsp=0;
+	iSetUpMenuTerminalRsp=0;
+	iSelectItemTerminalRsp=0;
+	iSendSmTerminalRsp=0;
+	iSendSsTerminalRsp=0;
+	iSendUssdTerminalRsp=0;
+	iSetUpCallTerminalRsp=0;
+	iRefreshTerminalRsp=0;
+	iSetUpEventListTerminalRsp=0;
+	iSetUpIdleModeTextTerminalRsp=0;
+	iSendDtmfTerminalRsp=0;
+	iGetMeSideSatProfile=0;
+	iClientSatProfileIndication=0;
+	iMenuSelection=0;
+	iEventDownload=0;
+	iNotifyPerformCardApduPCmd=0;
+	iNotifyPowerOffCardPCmd=0;
+	iNotifyPowerOnCardPCmd=0;
+	iNotifyGetReaderStatusPCmd=0;
+	iNotifyRunAtCommandPCmd=0;
+	iNotifyLanguageNotificationPCmd=0;
+	iGetProvisioningRefFile=0;
+	iNotifyOpenChannelPCmd=0;
+	iNotifyCloseChannelPCmd=0;
+	iNotifyReceiveDataPCmd=0;
+	iNotifySendDataPCmd=0;
+	iNotifyGetChannelStatusPCmd=0;
+	iNotifyServiceSearchPCmd=0;
+	iNotifyGetServiceInfoPCmd=0;
+	iNotifyDeclareServicePCmd=0;
+	iNotifyLaunchBrowserPCmd=0;
+	iNotifyLaunchBrowserCount=0;
+	iNotifySetUpMenuTestNumber=0;
+	iNotifyCallControlRequestTestNumber=0;
+	iNotifyOpenChannelTestNumber=0;
+	iSendMessageNoLogging=0;
+	iNotifyProactiveSimSessionEnd=0;
+	iNotifyProactiveSimSessionStart=0;
+	iNotifyTimerExpiration=0;
+	iNotifySmsPpDownload=0;
+	iNotifyCbDownload=0;
+	iNotifyTimerManagtPCmd=0;
+	iNotifyLocalInfoPCmd=0;
+	iNotifyPollingIntervalPCmd=0;
+	iNotifyPollingOffPCmd=0;
+	iTimerMgmtTerminalRsp=0;
+	iLocalInfoTerminalRsp=0;
+	iPollingIntervalTerminalRsp=0;
+	iPollingOffTerminalRsp=0;
+	iNotifyTsyStateUpdated=0;
+	iNotifyRefreshRequired=0;
+	iRefreshAllowed=0;
+	iNotifyRetrieveMultimediaMsgPCmd=0;
+	iNotifySubmitMultimediaMsgPCmd=0;
+	iNotifyDisplayMultimediaMsgPCmd=0;
+	iNotifySetFramesPCmd=0;
+	iNotifyGetFramesStatusPCmd=0;
+	iRetrieveMultimediaMsgTerminalRsp=0;
+	iSubmitMultimediaMsgTerminalRsp=0;
+	iDisplayMultimediaMsgTerminalRsp=0;
+	iSetFramesTerminalRsp=0;
+	iGetFramesStatusTerminalRsp=0;
+	iMmsNotificationDownload=0;
+	iMmsTransferStatus=0;
+	iUssdDataDownload=0;
+	}
+
+void CSatDSatTsy::ConstructL()
+	{
+	LOGTEXT(_L8("CSatDSatTsy: Entered constructor"));
+	}
+
+CSatDSatTsy::~CSatDSatTsy()
+	{
+	LOGTEXT(_L8("CSatDSatTsy: Entered destructor"));
+	}
+
+CTelObject* CSatDSatTsy::OpenNewObjectByNameL(const TDesC& /*aName*/)
+/**
+* Opening object(s) from RSat is not supported
+*/
+	{
+	User::Leave(KErrNotSupported);
+	return NULL;
+	}
+
+CTelObject* CSatDSatTsy::OpenNewObjectL(TDes& /*aNewName*/)
+/**
+* Opening object(s) from RSat is not supported	
+*/
+	{
+	User::Leave(KErrNotSupported);
+	return NULL;
+	}
+
+CTelObject::TReqMode CSatDSatTsy::ReqModeL(const TInt aIpc)
+/**
+* ReqModeL is called from the server's CTelObject::ReqAnalyserL
+* in order to check the type of request it has.
+*
+* The following are example request types for this dummy TSY
+* All TSYs do not have to have these request types but they have been given
+* "sensible" values in this test code
+*/
+	{
+	CTelObject::TReqMode ret=0;
+	switch (aIpc)
+		{
+		case ESatNotifyProactiveSimSessionStart:
+		case ESatNotifyProactiveSimSessionEnd:
+		case ESatNotifyCallControlRequest:
+		case ESatNotifyMoSmControlRequest:
+		case ESatNotifyDisplayTextPCmd:
+		case ESatNotifyGetInkeyPCmd:
+		case ESatNotifyGetInputPCmd:
+		case ESatNotifyPlayTonePCmd:
+		case ESatNotifySetUpMenuPCmd:
+		case ESatNotifySelectItemPCmd:
+		case ESatNotifySendSmPCmd:
+		case ESatNotifySendSsPCmd:
+		case ESatNotifySendUssdPCmd:
+		case ESatNotifySetUpCallPCmd:
+		case ESatNotifyRefreshPCmd:
+		case ESatNotifySetUpEventListPCmd:
+		case ESatNotifySetUpIdleModeTextPCmd:
+		case ESatNotifySendDtmfPCmd:
+		case ESatNotifyPerformCardApduPCmd:
+		case ESatNotifyPowerOffCardPCmd:
+		case ESatNotifyPowerOnCardPCmd:
+		case ESatNotifyGetReaderStatusPCmd:
+		case ESatNotifyRunAtCommandPCmd:
+		case ESatNotifyLanguageNotificationPCmd:
+		case ESatNotifyLaunchBrowserPCmd:
+		case ESatNotifyOpenChannelPCmd:
+		case ESatNotifyCloseChannelPCmd:
+		case ESatNotifyReceiveDataPCmd:
+		case ESatNotifySendDataPCmd:
+		case ESatNotifyGetChannelStatusPCmd:
+		case ESatNotifyServiceSearchPCmd:
+		case ESatNotifyGetServiceInfoPCmd:
+		case ESatNotifyDeclareServicePCmd:
+		case ESatNotifyTimerExpiration:
+		case ESatNotifySmsPpDownload:
+		case ESatNotifyCbDownload:
+		case ESatNotifyTimerMgmtPCmd:							
+		case ESatNotifyLocalInfoPCmd:
+		case ESatNotifyPollingIntervalPCmd:
+		case ESatNotifyPollingOffPCmd:		
+		case ESatNotifyTsyStateUpdated:
+		case ESatNotifyRefreshRequired:
+		case ESatNotifyRefreshRequiredParam:
+		case ESatNotifyRetrieveMultimediaMsgPCmd:
+		case ESatNotifySubmitMultimediaMsgPCmd:
+		case ESatNotifyDisplayMultimediaMsgPCmd:
+		case ESatNotifySetFramesPCmd:
+		case ESatNotifyGetFramesStatusPCmd:
+			ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately;
+			break;
+
+		case ESatGetIcon:
+		case ESatGetImageInstance:
+		case ESatGetClut:
+		case ESatTerminalRsp:
+		case ESatGetMeSideSatProfile:
+		case ESatClientSatProfileIndication:
+		case ESatMenuSelection:
+		case ESatEventDownload:
+		case ESatUsatClientReadyIndication:
+		case ESatGetProvisioningRefFile:
+		case ESatSendMessageNoLogging:
+		case ESatRefreshAllowed:
+		case ETestCustomIPC1:
+		case ESatGetOpenChannelPCmd:
+		case ESatMmsNotificationDownload:
+		case ESatMmsTransferStatus:
+		case ESatUssdDataDownload:
+			break;
+
+		case ESatNotifyProactiveSimSessionStartCancel:
+		case ESatNotifyProactiveSimSessionEndCancel:
+		case ESatGetIconCancel:
+		case ESatGetImageInstanceCancel:
+		case ESatGetClutCancel:
+		case ESatTerminalRspCancel:
+		case ESatGetMeSideSatProfileCancel:
+		case ESatMenuSelectionCancel:
+		case ESatNotifyCallControlRequestCancel:
+		case ESatNotifyMoSmControlRequestCancel:
+		case ESatEventDownloadCancel:
+		case ESatNotifyDisplayTextPCmdCancel:
+ 		case ESatNotifyGetInkeyPCmdCancel:
+		case ESatNotifyGetInputPCmdCancel:
+		case ESatNotifyPlayTonePCmdCancel:
+		case ESatNotifySetUpMenuPCmdCancel:
+		case ESatNotifySelectItemPCmdCancel:
+		case ESatNotifySendSmPCmdCancel:
+		case ESatNotifySendSsPCmdCancel:
+		case ESatNotifySendUssdPCmdCancel:
+		case ESatNotifySetUpCallPCmdCancel:
+		case ESatNotifyRefreshPCmdCancel:
+		case ESatNotifySetUpEventListPCmdCancel:
+		case ESatNotifySetUpIdleModeTextPCmdCancel:
+		case ESatNotifySendDtmfPCmdCancel:
+		case ESatGetProvisioningRefFileCancel:
+		case ESatNotifyPerformCardApduPCmdCancel:
+		case ESatNotifyPowerOffCardPCmdCancel:
+		case ESatNotifyPowerOnCardPCmdCancel:
+		case ESatNotifyGetReaderStatusPCmdCancel:
+		case ESatNotifyRunAtCommandPCmdCancel:
+		case ESatNotifyLanguageNotificationPCmdCancel:
+		case ESatNotifyLaunchBrowserPCmdCancel:
+		case ESatNotifyOpenChannelPCmdCancel:
+		case ESatNotifyCloseChannelPCmdCancel:
+		case ESatNotifyReceiveDataPCmdCancel:
+		case ESatNotifySendDataPCmdCancel:
+		case ESatNotifyGetChannelStatusPCmdCancel:
+		case ESatNotifyServiceSearchPCmdCancel:
+		case ESatNotifyGetServiceInfoPCmdCancel:
+		case ESatNotifyDeclareServicePCmdCancel:
+		case ESatSendMessageNoLoggingCancel:
+		case ESatNotifyTimerExpirationCancel:
+		case ESatNotifySmsPpDownloadCancel:
+		case ESatNotifyCbDownloadCancel:		
+		case ESatNotifyTimerMgmtPCmdCancel:							
+		case ESatNotifyLocalInfoPCmdCancel:
+		case ESatNotifyPollingIntervalPCmdCancel:
+		case ESatNotifyPollingOffPCmdCancel:	
+		case ESatNotifyTsyStateUpdatedCancel:
+		case ESatNotifyRefreshRequiredCancel:
+		case ESatRefreshAllowedCancel:
+		case ESatNotifyRefreshRequiredParamCancel:
+		case ESatGetOpenChannelPCmdCancel:
+		case ESatNotifyRetrieveMultimediaMsgPCmdCancel:
+		case ESatNotifySubmitMultimediaMsgPCmdCancel:
+		case ESatNotifyDisplayMultimediaMsgPCmdCancel:
+		case ESatNotifySetFramesPCmdCancel:
+		case ESatNotifyGetFramesStatusPCmdCancel:
+		case ESatMmsNotificationDownloadCancel:
+		case ESatMmsTransferStatusCancel:
+		case ESatUssdDataDownloadCancel:
+			// The server should not use ReqMode on Cancel requests
+			User::Leave(KErrNotSupported);
+			break;
+	
+		default:
+			User::Leave(KErrNotSupported);
+			break;
+		}
+	return ret;
+	}
+
+TInt CSatDSatTsy::RegisterNotification(const TInt aIpc)
+/**
+* RegisterNotification is called when the server recognises that this notification
+* is being posted for the first time on this sub-session object.
+*
+* It enables the TSY to "turn on" any regular notification messages that it may 
+* receive from the phone
+*/
+	{
+	switch (aIpc)
+		{
+		case ESatNotifyProactiveSimSessionStart:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Proactive Sim Session Start"));
+			return KErrNone;
+		case ESatNotifyProactiveSimSessionEnd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Proactive Sim Session Stop"));
+			return KErrNone;
+		case ESatNotifyCallControlRequest:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Call Control Request"));
+			return KErrNone;
+		case ESatNotifyMoSmControlRequest:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - MO SM Control Request"));
+			return KErrNone;
+		case ESatNotifyDisplayTextPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Display Text PCmd"));
+			return KErrNone;
+		case ESatNotifyGetInkeyPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Inkey PCmd"));
+			return KErrNone;
+		case ESatNotifyGetInputPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Input PCmd"));
+			return KErrNone;
+		case ESatNotifyPlayTonePCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Play Tone PCmd"));
+			return KErrNone;
+		case ESatNotifySetUpMenuPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Menu PCmd"));
+			return KErrNone;
+		case ESatNotifySelectItemPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Select Item PCmd"));
+			return KErrNone;
+		case ESatNotifySendSmPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send SM PCmd"));
+			return KErrNone;
+		case ESatNotifySendSsPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send SS PCmd"));
+			return KErrNone;
+		case ESatNotifySendUssdPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send USSD PCmd"));
+			return KErrNone;
+		case ESatNotifySetUpCallPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Call PCmd"));
+			return KErrNone;
+		case ESatNotifyRefreshPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh PCmd"));
+			return KErrNone;
+		case ESatNotifySetUpEventListPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Event List PCmd"));
+			return KErrNone;
+		case ESatNotifySetUpIdleModeTextPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Up Idle Mode Text PCmd"));
+			return KErrNone;
+		case ESatNotifySendDtmfPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send DTMF PCmd"));
+			return KErrNone;
+		case ESatNotifyPerformCardApduPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Perform Card APDU"));
+			return KErrNone;
+		case ESatNotifyPowerOffCardPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Power Off Card"));
+			return KErrNone;
+		case ESatNotifyPowerOnCardPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Power On Card"));
+			return KErrNone;
+		case ESatNotifyGetReaderStatusPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Reader Status"));
+			return KErrNone;
+		case ESatNotifyRunAtCommandPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Run AT Command"));
+			return KErrNone;
+		case ESatNotifyLanguageNotificationPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Language Notification"));
+			return KErrNone;
+		case ESatNotifyLaunchBrowserPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Launch Browser"));
+			return KErrNone;
+		case ESatNotifyOpenChannelPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Open Channel"));
+			return KErrNone;
+		case ESatNotifyCloseChannelPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Close Channel"));
+			return KErrNone;
+		case ESatNotifyReceiveDataPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Receive Data"));
+			return KErrNone;
+		case ESatNotifySendDataPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Send Data"));
+			return KErrNone;
+		case ESatNotifyGetChannelStatusPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Channel Status"));
+			return KErrNone;
+		case ESatNotifyServiceSearchPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Service Search"));
+			return KErrNone;
+		case ESatNotifyGetServiceInfoPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Service Info"));
+			return KErrNone;
+		case ESatNotifyDeclareServicePCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Declare Service"));
+			return KErrNone;
+		case ESatNotifyTimerExpiration:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Timer expiration"));
+			return KErrNone;
+		case ESatNotifySmsPpDownload:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Sms PP Dowmload"));
+			return KErrNone;
+		case ESatNotifyCbDownload:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - CB Download"));
+			return KErrNone;
+		case ESatNotifyTimerMgmtPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Timer Managt"));
+			return KErrNone;
+		case ESatNotifyLocalInfoPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Local Info"));
+			return KErrNone;
+		case ESatNotifyPollingIntervalPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Polling Interval"));
+			return KErrNone;
+		case ESatNotifyPollingOffPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Polling Pff"));
+			return KErrNone;
+		case ESatNotifyTsyStateUpdated:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - TSY State Updated"));
+			return KErrNone;
+		case ESatNotifyRefreshRequired:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh Required"));
+			return KErrNone;
+		case ESatNotifyRefreshRequiredParam:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Refresh Required Param"));
+			return KErrNone;
+		case ESatNotifyRetrieveMultimediaMsgPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Retrieve Multimedia Message"));
+			return KErrNone;
+		case ESatNotifySubmitMultimediaMsgPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Submit Multimedia Message"));
+			return KErrNone;
+		case ESatNotifyDisplayMultimediaMsgPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Display Multimedia Message"));
+			return KErrNone;
+		case  ESatNotifySetFramesPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Set Frames"));
+			return KErrNone;
+		case  ESatNotifyGetFramesStatusPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: RegisterNotification - Get Frames Status"));
+			return KErrNone;
+		default:
+			// Unknown or invalid IPC
+			LOGTEXT(_L8("CSatDSatTsy: Register error, unknown IPC"));
+			return KErrNotSupported;
+		}
+	}
+
+TInt CSatDSatTsy::DeregisterNotification(const TInt aIpc)
+/**
+* DeregisterNotification is called when the server recognises that this notification
+* will not be posted again because the last client to have a handle on this sub-session
+* object has just closed the handle.
+*
+* It enables the TSY to "turn off" any regular notification messages that it may 
+* receive from the phone
+*/
+	{
+	switch (aIpc)
+		{
+		case ESatNotifyProactiveSimSessionStart:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Proactive Sim Session Start"));
+			return KErrNone;
+		case ESatNotifyProactiveSimSessionEnd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Proactive Sim Session Stop"));
+			return KErrNone;
+		case ESatNotifyCallControlRequest:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Call Control Request"));
+			return KErrNone;
+		case ESatNotifyMoSmControlRequest:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - MO SM Control Request"));
+			return KErrNone;
+		case ESatNotifyDisplayTextPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Display Text PCmd"));
+			return KErrNone;
+		case ESatNotifyGetInkeyPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Inkey PCmd"));
+			return KErrNone;
+		case ESatNotifyGetInputPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Input PCmd"));
+			return KErrNone;
+		case ESatNotifyPlayTonePCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Play Tone PCmd"));
+			return KErrNone;
+		case ESatNotifySetUpMenuPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Menu PCmd"));
+			return KErrNone;
+		case ESatNotifySelectItemPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Select Item PCmd"));
+			return KErrNone;
+		case ESatNotifySendSmPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send SM PCmd"));
+			return KErrNone;
+		case ESatNotifySendSsPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send SS PCmd"));
+			return KErrNone;
+		case ESatNotifySendUssdPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send USSD PCmd"));
+			return KErrNone;
+		case ESatNotifySetUpCallPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Call PCmd"));
+			return KErrNone;
+		case ESatNotifyRefreshPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh PCmd"));
+			return KErrNone;
+		case ESatNotifySetUpEventListPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Event List PCmd"));
+			return KErrNone;
+		case ESatNotifySetUpIdleModeTextPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Up Idle Mode Text PCmd"));
+			return KErrNone;
+		case ESatNotifySendDtmfPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send DTMF PCmd"));
+			return KErrNone;
+		case ESatNotifyPerformCardApduPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Perform Card APDU"));
+			return KErrNone;
+		case ESatNotifyPowerOffCardPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Power Off Card"));
+			return KErrNone;
+		case ESatNotifyPowerOnCardPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Power On Card"));
+			return KErrNone;
+		case ESatNotifyGetReaderStatusPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Reader Status"));
+			return KErrNone;
+		case ESatNotifyRunAtCommandPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Run AT Command"));
+			return KErrNone;
+		case ESatNotifyLanguageNotificationPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Language Notification"));
+			return KErrNone;
+		case ESatNotifyLaunchBrowserPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Launch Browser"));
+			return KErrNone;
+		case ESatNotifyOpenChannelPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Open Channel"));
+			return KErrNone;
+		case ESatNotifyCloseChannelPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Close Channel"));
+			return KErrNone;
+		case ESatNotifyReceiveDataPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Receive Data"));
+			return KErrNone;
+		case ESatNotifySendDataPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Send Data"));
+			return KErrNone;
+		case ESatNotifyGetChannelStatusPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Channel Status"));
+			return KErrNone;
+		case ESatNotifyServiceSearchPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Service Search"));
+			return KErrNone;
+		case ESatNotifyGetServiceInfoPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Service Info"));
+			return KErrNone;
+		case ESatNotifyDeclareServicePCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Declare Service"));
+			return KErrNone;		
+		case ESatNotifyTimerExpiration:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Timer expiration"));
+			return KErrNone;
+		case ESatNotifySmsPpDownload:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Sms PP Dowmload"));
+			return KErrNone;
+		case ESatNotifyCbDownload:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - CB Download"));
+			return KErrNone;
+		case ESatNotifyTimerMgmtPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Timer Managt"));
+			return KErrNone;
+		case ESatNotifyLocalInfoPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Local Info"));
+			return KErrNone;
+		case ESatNotifyPollingIntervalPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Polling Interval"));
+			return KErrNone;
+		case ESatNotifyPollingOffPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Polling Pff"));
+			return KErrNone;
+		case ESatNotifyTsyStateUpdated:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - TSY State Updated"));
+			return KErrNone;
+		case ESatNotifyRefreshRequired:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh Required"));
+			return KErrNone;
+		case ESatNotifyRefreshRequiredParam:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Refresh Required Param"));
+			return KErrNone;
+		case ESatNotifyRetrieveMultimediaMsgPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Retrieve Multimedia Message"));
+			return KErrNone;
+		case ESatNotifySubmitMultimediaMsgPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Submit Multimedia Message"));
+			return KErrNone;
+		case ESatNotifyDisplayMultimediaMsgPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Display Multimedia Message"));
+			return KErrNone;
+		case  ESatNotifySetFramesPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Set Frames"));
+			return KErrNone;
+		case  ESatNotifyGetFramesStatusPCmd:
+			LOGTEXT(_L8("CSatDSatTsy: De-registerNotification - Get Frames Status"));
+			return KErrNone;
+		default:
+			// Unknown or invalid IPC
+			LOGTEXT(_L8("CSatDSatTsy: Deregister error, unknown IPC"));
+			return KErrNotSupported;
+		}
+	}
+
+TInt CSatDSatTsy::NumberOfSlotsL(const TInt aIpc)
+/**
+* NumberOfSlotsL is called by the server when it is registering a new notification
+* It enables the TSY to tell the server how many buffer slots to allocate for
+* "repost immediately" notifications that may trigger before clients collect them
+*/
+	{
+	TInt numberOfSlots=1;
+	switch (aIpc)
+		{
+		case ESatNotifyProactiveSimSessionStart:
+		case ESatNotifyProactiveSimSessionEnd:
+			LOGTEXT(_L8("CSatDSatTsy: Registered with 1 slot"));
+			numberOfSlots=1;
+			break;
+
+		case ESatNotifyCallControlRequest:
+		case ESatNotifyMoSmControlRequest:
+		case ESatNotifyDisplayTextPCmd:
+		case ESatNotifyGetInkeyPCmd:
+		case ESatNotifyGetInputPCmd:
+		case ESatNotifyPlayTonePCmd:
+		case ESatNotifySetUpMenuPCmd:
+		case ESatNotifySelectItemPCmd:
+		case ESatNotifySendSmPCmd:
+		case ESatNotifySendSsPCmd:
+		case ESatNotifySendUssdPCmd:
+		case ESatNotifySetUpCallPCmd:
+		case ESatNotifyRefreshPCmd:
+		case ESatNotifySetUpEventListPCmd:
+		case ESatNotifySetUpIdleModeTextPCmd:
+		case ESatNotifySendDtmfPCmd:
+		case ESatNotifyPerformCardApduPCmd:
+		case ESatNotifyPowerOffCardPCmd:
+		case ESatNotifyPowerOnCardPCmd:
+		case ESatNotifyGetReaderStatusPCmd:
+		case ESatNotifyRunAtCommandPCmd:
+		case ESatNotifyLanguageNotificationPCmd:
+		case ESatNotifyLaunchBrowserPCmd:
+		case ESatNotifyOpenChannelPCmd:
+		case ESatNotifyCloseChannelPCmd:
+		case ESatNotifyReceiveDataPCmd:
+		case ESatNotifySendDataPCmd:
+		case ESatNotifyGetChannelStatusPCmd:
+		case ESatNotifyServiceSearchPCmd:
+		case ESatNotifyGetServiceInfoPCmd:
+		case ESatNotifyDeclareServicePCmd:
+		case ESatNotifyTimerExpiration:
+		case ESatNotifySmsPpDownload:
+		case ESatNotifyCbDownload:		
+		case ESatNotifyTimerMgmtPCmd:							
+		case ESatNotifyLocalInfoPCmd:
+		case ESatNotifyPollingIntervalPCmd:
+		case ESatNotifyPollingOffPCmd:
+		case ESatNotifyTsyStateUpdated:
+		case ESatNotifyRefreshRequired:
+		case ESatNotifyRefreshRequiredParam:
+		case ESatNotifyRetrieveMultimediaMsgPCmd:							
+		case ESatNotifySubmitMultimediaMsgPCmd:
+		case ESatNotifyDisplayMultimediaMsgPCmd:
+		case ESatNotifySetFramesPCmd :
+		case ESatNotifyGetFramesStatusPCmd: 		
+			LOGTEXT(_L8("CSatDSatTsy: Registered with 2 slot"));
+			numberOfSlots=2;
+			break;
+		default:
+			// Unknown or invalid IPC
+			LOGTEXT(_L8("CSatDSatTsy: Number of Slots error, unknown IPC"));
+			User::Leave(KErrNotSupported);
+			break;
+		}  
+	return numberOfSlots;
+	}
+
+
+TInt CSatDSatTsy::ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,
+							  const TDataPackage& aPackage)
+/**
+* ExtFunc is called by the server when it has a "extended", i.e. non-core ETel request 
+* for the TSY to process
+* A request handle, request type and request data are passed to the TSY
+*/
+	{
+	TAny* dataPtr=aPackage.Ptr1();
+	TAny* dataPtr2=aPackage.Ptr2();
+
+	switch (aIpc)
+		{
+		case ESatNotifyProactiveSimSessionStart:
+			return NotifyProactiveSimSessionStart(aTsyReqHandle);
+		case ESatNotifyProactiveSimSessionEnd:
+			return NotifyProactiveSimSessionEnd(aTsyReqHandle);
+		case ESatNotifyCallControlRequest:
+			return NotifyCallControlRequest(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyMoSmControlRequest:
+			return NotifyMoSmControlRequest(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyDisplayTextPCmd:
+			return NotifyDisplayTextPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyGetInkeyPCmd:
+			return NotifyGetInkeyPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyGetInputPCmd:
+			return NotifyGetInputPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyPlayTonePCmd:
+			return NotifyPlayTonePCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySetUpMenuPCmd:
+			return NotifySetUpMenuPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySelectItemPCmd:
+			return NotifySelectItemPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySendSmPCmd:
+			return NotifySendSmPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySendSsPCmd:
+			return NotifySendSsPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySendUssdPCmd:
+			return NotifySendUssdPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySetUpCallPCmd:
+			return NotifySetUpCallPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyRefreshPCmd:
+			return NotifyRefreshPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySetUpEventListPCmd:
+			return NotifySetUpEventListPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySetUpIdleModeTextPCmd:
+			return NotifySetUpIdleModeTextPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySendDtmfPCmd:
+			return NotifySendDtmfPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatGetIcon:
+			return GetIcon(aTsyReqHandle,
+			REINTERPRET_CAST(TUint8*, dataPtr),
+			REINTERPRET_CAST(RSat::TIcon*, dataPtr2));
+		case ESatGetImageInstance:
+			return GetImageInstance(aTsyReqHandle,
+			aPackage.Des1n(),
+			aPackage.Des2n());
+		case ESatGetClut:
+			return GetClut(aTsyReqHandle,
+			REINTERPRET_CAST(RSat::TInstanceNumberAndOffset*, dataPtr),
+			aPackage.Des2n());
+		case ESatTerminalRsp:
+			return TerminalRsp(aTsyReqHandle,
+				REINTERPRET_CAST(RSat::TPCmd*, dataPtr),aPackage.Des2n());
+		case ESatGetMeSideSatProfile:
+			return GetMeSideSatProfile(aTsyReqHandle, aPackage.Des1n());
+		case ESatClientSatProfileIndication:
+			return ClientSatProfileIndication(aTsyReqHandle, aPackage.Des1n());
+		case ESatMenuSelection:
+			return MenuSelection(aTsyReqHandle, aPackage.Des1n());
+		case ESatEventDownload:
+			return EventDownload(aTsyReqHandle, 
+				REINTERPRET_CAST(RSat::TEventList*, dataPtr),
+				aPackage.Des2n());
+		case ESatRefreshAllowed:
+			return RefreshAllowed(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyPerformCardApduPCmd:
+			return NotifyPerformCardApduPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyPowerOffCardPCmd:
+			return NotifyPowerOffCardPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyPowerOnCardPCmd:
+			return NotifyPowerOnCardPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyGetReaderStatusPCmd:
+			return NotifyGetReaderStatusPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyRunAtCommandPCmd:
+			return NotifyRunAtCommandPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyLanguageNotificationPCmd:
+			return NotifyLanguageNotificationPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyLaunchBrowserPCmd:
+			return NotifyLaunchBrowserPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyOpenChannelPCmd:
+			return NotifyOpenChannelPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatGetOpenChannelPCmd:
+			return GetOpenChannelPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyCloseChannelPCmd:
+			return NotifyCloseChannelPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyReceiveDataPCmd:
+			return NotifyReceiveDataPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySendDataPCmd:
+			return NotifySendDataPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyGetChannelStatusPCmd:
+			return NotifyGetChannelStatusPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyServiceSearchPCmd:
+			return NotifyServiceSearchPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyGetServiceInfoPCmd:
+			return NotifyGetServiceInfoPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyDeclareServicePCmd:
+			return NotifyDeclareServicePCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatUsatClientReadyIndication:
+			return UsatClientReadyIndication(aTsyReqHandle);
+		case ESatGetProvisioningRefFile:
+			return GetProvisioningRefFile(aTsyReqHandle, 
+				REINTERPRET_CAST(RSat::TProvisioningFileRef*, dataPtr),
+				aPackage.Des2n());
+		case ESatSendMessageNoLogging:
+			return SendMessageNoLogging(aTsyReqHandle, 
+				aPackage.Des1n(),
+				REINTERPRET_CAST(TUint16*, dataPtr2));				
+		case ESatNotifyTimerExpiration:
+			return NotifyTimerExpiration(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySmsPpDownload:
+			return NotifySmsPpDownload(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyCbDownload:
+			return NotifyCbDownload(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyTimerMgmtPCmd:
+			return NotifyTimerManagtPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyLocalInfoPCmd:
+			return NotifyLocalInfoPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyPollingIntervalPCmd:
+			return NotifyPollingIntervalPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyPollingOffPCmd:
+			return NotifyPollingOffPCmd(aTsyReqHandle, aPackage.Des1n());			
+		case ESatNotifyTsyStateUpdated:
+			return NotifyTsyStateUpdated(aTsyReqHandle, 
+				REINTERPRET_CAST(RSat::TPCmd*, dataPtr));
+		case ESatNotifyRefreshRequired:
+			return NotifyRefreshRequired(aTsyReqHandle);
+		case ESatNotifyRefreshRequiredParam:
+			return NotifyRefreshRequired(aTsyReqHandle, aPackage.Des1n());
+		case ETestCustomIPC1:
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+		case ESatNotifyRetrieveMultimediaMsgPCmd:
+			return NotifyRetrieveMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifySubmitMultimediaMsgPCmd:
+			return NotifySubmitMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatNotifyDisplayMultimediaMsgPCmd:
+			return NotifyDisplayMultimediaMsgPCmd(aTsyReqHandle, aPackage.Des1n());
+		case  ESatNotifySetFramesPCmd:
+			return NotifySetFramesPCmd(aTsyReqHandle, aPackage.Des1n());			
+		case  ESatNotifyGetFramesStatusPCmd:
+			return NotifyGetFramesStatusPCmd(aTsyReqHandle, aPackage.Des1n());
+		case ESatMmsNotificationDownload:
+			return MmsNotificationDownload(aTsyReqHandle, aPackage.Des1n());
+		case ESatMmsTransferStatus:
+			return MmsTransferStatus(aTsyReqHandle, aPackage.Des1n());		
+		case ESatUssdDataDownload :
+			return UssdDataDownload(aTsyReqHandle, aPackage.Des1n());
+		default:
+			return KErrNotSupported;
+		}
+	}
+
+TInt CSatDSatTsy::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle)
+/**
+* CancelService is called by the server when it is "cleaning-up" any still outstanding
+* asynchronous requests before closing a client's sub-session.
+*
+* CancelService is also called when individual cancel methods are called by the client,
+* who wishes to cancel an outstanding asynchronous request.
+*
+* This will happen if a client closes its R-class handle without cancelling outstanding
+* asynchronous requests.
+*/
+	{
+	LOGTEXT(_L8("CSatDSatTsy: - CancelService called"));
+	switch (aIpc)
+		{
+		case ESatNotifyProactiveSimSessionEnd:
+			return NotifyProactiveSimSessionEndCancel(aTsyReqHandle);
+		case ESatNotifyProactiveSimSessionStart:
+			return NotifyProactiveSimSessionStartCancel(aTsyReqHandle);
+		case ESatGetIcon:
+			return GetIconCancel(aTsyReqHandle);
+		case ESatGetImageInstance:
+			return GetImageInstanceCancel(aTsyReqHandle);
+		case ESatGetClut:
+			return GetClutCancel(aTsyReqHandle);
+		case ESatTerminalRsp:
+			return TerminalRspCancel(aTsyReqHandle);
+		case ESatGetMeSideSatProfile:
+			return GetMeSideSatProfileCancel(aTsyReqHandle);
+		case ESatMenuSelection:
+			return MenuSelectionCancel(aTsyReqHandle);
+		case ESatRefreshAllowed:
+			return RefreshAllowedCancel(aTsyReqHandle);
+		case ESatNotifyCallControlRequest:
+			return NotifyCallControlRequestCancel(aTsyReqHandle);
+		case ESatNotifyMoSmControlRequest:
+			return NotifyMoSmControlRequestCancel(aTsyReqHandle);
+		case ESatEventDownload:
+			return EventDownloadCancel(aTsyReqHandle);
+		case ESatNotifyDisplayTextPCmd:
+			return NotifyDisplayTextPCmdCancel(aTsyReqHandle);
+ 		case ESatNotifyGetInkeyPCmd:
+			return NotifyGetInkeyPCmdCancel(aTsyReqHandle);
+		case ESatNotifyGetInputPCmd:
+			return NotifyGetInputPCmdCancel(aTsyReqHandle);
+		case ESatNotifyPlayTonePCmd:
+			return NotifyPlayTonePCmdCancel(aTsyReqHandle);
+		case ESatNotifySetUpMenuPCmd:
+			return NotifySetUpMenuPCmdCancel(aTsyReqHandle);
+		case ESatNotifySelectItemPCmd:
+			return NotifySelectItemPCmdCancel(aTsyReqHandle);
+		case ESatNotifySendSmPCmd:
+			return NotifySendSmPCmdCancel(aTsyReqHandle);
+		case ESatNotifySendSsPCmd:
+			return NotifySendSsPCmdCancel(aTsyReqHandle);
+		case ESatNotifySendUssdPCmd:
+			return NotifySendUssdPCmdCancel(aTsyReqHandle);
+		case ESatNotifySetUpCallPCmd:
+			return NotifySetUpCallPCmdCancel(aTsyReqHandle);
+		case ESatNotifyRefreshPCmd:
+			return NotifyRefreshPCmdCancel(aTsyReqHandle);
+		case ESatNotifySetUpEventListPCmd:
+			return NotifySetUpEventListPCmdCancel(aTsyReqHandle);
+		case ESatNotifySetUpIdleModeTextPCmd:
+			return NotifySetUpIdleModeTextPCmdCancel(aTsyReqHandle);
+		case ESatNotifySendDtmfPCmd:
+			return NotifySendDtmfPCmdCancel(aTsyReqHandle);
+		case ESatNotifyPerformCardApduPCmd:
+			return NotifyPerformCardApduPCmdCancel(aTsyReqHandle);
+		case ESatNotifyPowerOffCardPCmd:
+			return NotifyPowerOffCardPCmdCancel(aTsyReqHandle);
+		case ESatNotifyPowerOnCardPCmd:
+			return NotifyPowerOnCardPCmdCancel(aTsyReqHandle);
+		case ESatNotifyGetReaderStatusPCmd:
+			return NotifyGetReaderStatusPCmdCancel(aTsyReqHandle);
+		case ESatNotifyRunAtCommandPCmd:
+			return NotifyRunAtCommandPCmdCancel(aTsyReqHandle);
+		case ESatNotifyLanguageNotificationPCmd:
+			return NotifyLanguageNotificationPCmdCancel(aTsyReqHandle);
+		case ESatNotifyLaunchBrowserPCmd:
+			return NotifyLaunchBrowserPCmdCancel(aTsyReqHandle);
+		case ESatNotifyOpenChannelPCmd:
+			return NotifyOpenChannelPCmdCancel(aTsyReqHandle);
+		case ESatGetOpenChannelPCmd:
+			return GetOpenChannelPCmdCancel(aTsyReqHandle);			
+		case ESatNotifyCloseChannelPCmd:
+			return NotifyCloseChannelPCmdCancel(aTsyReqHandle);
+		case ESatNotifyReceiveDataPCmd:
+			return NotifyReceiveDataPCmdCancel(aTsyReqHandle);
+		case ESatNotifySendDataPCmd:
+			return NotifySendDataPCmdCancel(aTsyReqHandle);
+		case ESatNotifyGetChannelStatusPCmd:
+			return NotifyGetChannelStatusPCmdCancel(aTsyReqHandle);
+		case ESatNotifyServiceSearchPCmd:
+			return NotifyServiceSearchPCmdCancel(aTsyReqHandle);
+		case ESatNotifyGetServiceInfoPCmd:
+			return NotifyGetServiceInfoPCmdCancel(aTsyReqHandle);
+		case ESatNotifyDeclareServicePCmd:
+			return NotifyDeclareServicePCmdCancel(aTsyReqHandle);
+		case ESatGetProvisioningRefFile:
+			return GetProvisioningRefFileCancel(aTsyReqHandle);
+		case ESatSendMessageNoLogging:
+			return SendMessageNoLoggingCancel(aTsyReqHandle);
+		case ESatNotifyTimerExpiration:
+			return NotifyTimerExpirationCancel(aTsyReqHandle);
+		case ESatNotifySmsPpDownload:
+			return NotifySmsPpDownloadCancel(aTsyReqHandle);
+		case ESatNotifyCbDownload:
+			return NotifyCbDownloadCancel(aTsyReqHandle);
+		case ESatNotifyTimerMgmtPCmd:
+			return NotifyTimerManagtPCmdCancel(aTsyReqHandle);
+		case ESatNotifyLocalInfoPCmd:
+			return NotifyLocalInfoPCmdCancel(aTsyReqHandle);
+		case ESatNotifyPollingIntervalPCmd:
+			return NotifyPollingIntervalPCmdCancel(aTsyReqHandle);
+		case ESatNotifyPollingOffPCmd:
+			return NotifyPollingOffPCmdCancel(aTsyReqHandle);
+		case ESatNotifyTsyStateUpdated:
+			return NotifyTsyStateUpdatedCancel(aTsyReqHandle);
+		case ESatNotifyRefreshRequired:
+			return NotifyRefreshRequiredCancel(aTsyReqHandle);
+		case ESatNotifyRefreshRequiredParam:
+			return NotifyRefreshRequiredCancel(aTsyReqHandle);
+		case ESatNotifyRetrieveMultimediaMsgPCmd:
+			return NotifyRetrieveMultimediaMsgPCmdCancel(aTsyReqHandle);
+		case ESatNotifySubmitMultimediaMsgPCmd:
+			return NotifySubmitMultimediaMsgPCmdCancel(aTsyReqHandle);
+		case ESatNotifyDisplayMultimediaMsgPCmd:
+			return NotifyDisplayMultimediaMsgPCmdCancel(aTsyReqHandle);
+		case  ESatNotifySetFramesPCmd:
+			return NotifySetFramesPCmdCancel(aTsyReqHandle);
+		case  ESatNotifyGetFramesStatusPCmd:
+			return NotifyGetFramesStatusPCmdCancel(aTsyReqHandle);
+		case  ESatMmsNotificationDownload:
+			return MmsNotificationDownloadCancel(aTsyReqHandle);
+		case ESatMmsTransferStatus:
+			return MmsTransferStatusCancel(aTsyReqHandle);
+		case ESatUssdDataDownload:
+			return UssdDataDownloadCancel(aTsyReqHandle);
+		default:
+			return KErrGeneral; 
+		} 
+	}
+
+
+/***********************************************************************************/
+//
+// The following methods are called from ExtFunc and/or CancelService.
+// Each of these will process a TSY request or cancel a TSY request
+// Here, example values are returned or checked within this dummy TSY in order to ensure
+// that the integrity of the data passed to/from client is maintained
+//
+/***********************************************************************************/
+
+TInt CSatDSatTsy::GetIcon(const TTsyReqHandle aTsyReqHandle, TUint8* aRecordNumber, RSat::TIcon* aIconEf)
+	{
+	if((iGetIcon==0)||(iGetIcon==1))
+		{
+		iGetIcon++;
+		LOGTEXT(_L8("CSatDSatTsy::GetIcon called"));
+		switch(*aRecordNumber)
+			{
+			case 1:
+				*aIconEf=DSATTSY_ICON_EF1;
+				break;
+			case 2:
+				*aIconEf=DSATTSY_ICON_EF2;
+				break;
+			default:
+				*aIconEf=DSATTSY_ICON_EF1;
+				break;
+			}
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetIconCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::GetIconCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::GetImageInstance(const TTsyReqHandle aTsyReqHandle, TDesC8* aCallParams, TDes8* aInstance)
+/**
+* The first time that this method is called, iGetImageInstance=0
+* The request completes - ReqCompleted is called. One of the test cases for 
+* aInstanceNumber can be tested.
+*
+* The second time that this method is called, iGetImageInstance=1
+* The request completes - ReqCompleted is called. Another one of the test cases
+* for aInstanceNumber can be tested.
+* 
+* The third time that this method is called, iGetImageInstance=2
+* The request does not complete.
+*
+* This mechanism prevents an infinite loop as each time a notification completes,
+* it is reposted automatically by the server, which would in this test code create an
+* infinite loop of posting, completing and reposting the notification.
+*
+* This mechanism also allows the test client to test the cancel method associated.
+*
+* If parameters become corrupted in either of the two tests then 'KErrCorrupt' 
+* and an unknown image instance returned.
+*/
+	{
+	LOGTEXT(_L8("CSatDSatTsy::GetImageInstance called"));
+	
+	TInt result=KErrNone;
+	
+	RSat::TInstanceInfoV3Pckg* paramsPckgV3 = (RSat::TInstanceInfoV3Pckg*)aCallParams;
+	RSat::TInstanceInfoV3& paramsV3 = (*paramsPckgV3)();
+
+	if((iGetImageInstance==0)||(iGetImageInstance==1))
+		{
+		iGetImageInstance++;
+		
+		if(paramsV3.ExtensionId()== RSat::KSatV3)
+			{
+			// check that all parameters are being passed correctly
+			if( paramsV3.iInstanceNumber == DSATTSY_INSTANCE_NUMBER1 &&
+				paramsV3.iLength==DSATTSY_INSTANCE_LENGTH1 && 
+				paramsV3.iOffset==DSATTSY_INSTANCE_OFFSET1 &&	
+				paramsV3.iCoding==DSATTSY_INSTANCE_CODING_BASIC &&
+				paramsV3.iImgWidth==DSATTSY_INSTANCE_WIDTH_1 &&
+				paramsV3.iImgHeight==DSATTSY_INSTANCE_HEIGHT_1 &&
+				paramsV3.iFileId==DSATTSY_INSTANCE_FILE_ID_1 ) 
+				{
+				*aInstance=DSATTSY_IMG_INSTANCE1;
+				}
+			else if(paramsV3.iInstanceNumber == DSATTSY_INSTANCE_NUMBER2 &&
+					paramsV3.iLength==DSATTSY_INSTANCE_LENGTH2 && 
+					paramsV3.iOffset==DSATTSY_INSTANCE_OFFSET2 &&
+					paramsV3.iCoding==DSATTSY_INSTANCE_CODING_COLOUR &&
+					paramsV3.iImgWidth==DSATTSY_INSTANCE_WIDTH_2 &&
+					paramsV3.iImgHeight==DSATTSY_INSTANCE_HEIGHT_2 &&
+					paramsV3.iFileId==DSATTSY_INSTANCE_FILE_ID_2 )
+							{
+				*aInstance=DSATTSY_IMG_INSTANCE2;
+				}
+			else
+				{
+				// parameters have been corrupted
+				*aInstance=DSATTSY_IMG_INSTANCE_UNKNOWN;
+				result=KErrCorrupt;
+				}
+			}				
+		ReqCompleted(aTsyReqHandle,result);
+		}
+
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return result;
+	}
+
+
+TInt CSatDSatTsy::GetImageInstanceCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::GetImageInstanceCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::GetClut(const TTsyReqHandle aTsyReqHandle, RSat::TInstanceNumberAndOffset* aClutInfo, TDes8* aClut)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::GetClut called"));
+
+	if((aClutInfo->iInstanceNumber!=DSATTSY_INSTANCE_NUMBER1)
+			||(aClutInfo->iOffset!=DSATTSY_CLUT_OFFSET))
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+
+	if(iGetClut==0)
+		{
+		iGetClut++;
+		*aClut= DSATTSY_CLUT1;
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetClutCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::GetClutCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::DisplayTextTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TDisplayTextRspV1Pckg* aRspPckg = (RSat::TDisplayTextRspV1Pckg*)aRsp;
+	RSat::TDisplayTextRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.PCmdNumber()!=DSATTSY_DISPLAY_TEXT_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iDisplayTextTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetInkeyTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TGetInkeyRspV1Pckg* aRspPckg = (RSat::TGetInkeyRspV1Pckg*)aRsp;
+	RSat::TGetInkeyRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
+		||(rspV1.iRspFormat!=DSATTSY_USER_RSP_FORMAT)
+		||(rspV1.iAdditionalInfo!=DSATTSY_USER_TEXT_INPUT)
+		||(rspV1.PCmdNumber()!=DSATTSY_GET_INKEY_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iGetInkeyTerminalRsp++)
+		{
+		if(rspV1.ExtensionId()==RSat::KSatV2)
+			{
+			RSat::TGetInkeyRspV2Pckg* aV2RspPckg = (RSat::TGetInkeyRspV2Pckg*)aRsp;
+			RSat::TGetInkeyRspV2& rspV2 = (*aV2RspPckg)();
+			
+			if((rspV2.iDuration.iTimeUnit!=DSATTSY_TIME_UNIT)
+				|| (rspV2.iDuration.iNumOfUnits!=DSATTSY_NUM_OF_UNITS))
+				{
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}
+			else
+				ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		else
+			ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetInputTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TGetInputRspV1Pckg* aRspPckg = (RSat::TGetInputRspV1Pckg*)aRsp;
+	RSat::TGetInputRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
+		||(rspV1.iRspFormat!=DSATTSY_GET_INPUT_RSP_FORMAT)
+		||(rspV1.iAdditionalInfo!=DSATTSY_USER_TEXT_INPUT)
+		||(rspV1.PCmdNumber()!=DSATTSY_GET_INPUT_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iGetInputTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::PlayToneTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TPlayToneRspV1Pckg* aRspPckg = (RSat::TPlayToneRspV1Pckg*)aRsp;
+	RSat::TPlayToneRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_PLAY_TONE_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iPlayToneTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}	
+
+TInt CSatDSatTsy::SetUpMenuRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSetUpMenuRspV1Pckg* aRspPckg = (RSat::TSetUpMenuRspV1Pckg*)aRsp;
+	RSat::TSetUpMenuRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_MENU_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iSetUpMenuTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::SelectItemTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSelectItemRspV1Pckg* aRspPckg = (RSat::TSelectItemRspV1Pckg*)aRsp;
+	RSat::TSelectItemRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_ITEM_ID)
+		||(rspV1.iAdditionalInfo!=DSATTSY_RSP_ITEM_ID)
+		||(rspV1.PCmdNumber()!=DSATTSY_SELECT_ITEM_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iSelectItemTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::SendSmTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSendSmRspV1Pckg* aRspPckg = (RSat::TSendSmRspV1Pckg*)aRsp;
+	RSat::TSendSmRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_SEND_SM_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iSendSmTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::SendSSTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSendSsRspV1Pckg* aRspPckg = (RSat::TSendSsRspV1Pckg*)aRsp;
+	RSat::TSendSsRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_SEND_SS_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else 
+		{
+		RSat::TControlResult ccResult;
+		rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
+
+		RSat::TCallControlType ccType;
+		rspV1.iCcRequestedAction.GetCallControlType(ccType);
+
+		RSat::TCallSetUpParams address;
+		rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
+
+		RSat::TAlphaIdValidity validity;
+		RSat::TAlphaId alphaId;
+		rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
+
+		RSat::TBCRepeatIndicator indicator;
+		rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
+
+		if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
+		|| (address.iCcp1!=DSATTSY_CCP1) 
+		||(address.iSubAddress!=DSATTSY_SUBADDRESS)
+		|| (address.iCcp2!=DSATTSY_CCP2) 
+		|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
+		|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
+		|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
+		|| (validity!=DSATTSY_NO_ALPHAID)
+		|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
+		|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS)
+		|| (indicator != DSATTSY_BC_REPEAT_INDICATOR_SEQUENTIAL))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+
+		else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+		
+		else if(!iSendSsTerminalRsp++)
+			{
+			if(rspV1.ExtensionId()==RSat::KSatV2)
+				{
+				RSat::TSendSsRspV2Pckg* aV2RspPckg = (RSat::TSendSsRspV2Pckg*)aRsp;
+				RSat::TSendSsRspV2& rspV2 = (*aV2RspPckg)();
+			
+				if((rspV2.iUssdString.iUssdString != DSATTSY_DEFAULT_TEXT)
+				|| (rspV2.iUssdString.iDcs != DSATTSY_DCS))	
+					ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				else
+					ReqCompleted(aTsyReqHandle,KErrNone);
+				}
+			else
+				ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::SendUssdTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSendUssdRspV1Pckg* aRspPckg = (RSat::TSendUssdRspV1Pckg*)aRsp;
+	RSat::TSendUssdRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_TEXT_STRING)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NETWORK_TEXT_STRING)
+		||(rspV1.PCmdNumber()!=DSATTSY_SEND_USSD_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else
+		{
+		RSat::TControlResult ccResult;
+		rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
+		RSat::TCallControlType ccType;
+		rspV1.iCcRequestedAction.GetCallControlType(ccType);
+
+		RSat::TCallSetUpParams address;
+		rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
+
+		RSat::TAlphaIdValidity validity;
+		RSat::TAlphaId alphaId;
+		rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
+
+		RSat::TBCRepeatIndicator indicator;
+		rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
+
+		if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
+			|| (address.iCcp1!=DSATTSY_CCP1) 
+			||(address.iSubAddress!=DSATTSY_SUBADDRESS)
+			|| (address.iCcp2!=DSATTSY_CCP2) 
+			|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
+			|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
+			|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
+			|| (validity!=DSATTSY_NO_ALPHAID)
+			|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
+			|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS
+			|| indicator != DSATTSY_BC_REPEAT_INDICATOR_SEQUENTIAL))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+
+		else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
+			||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
+			||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+
+		else if(!iSendUssdTerminalRsp++)
+			ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+		iTsyAsyncReqHandle = aTsyReqHandle;
+		return KErrNone;
+	}
+
+TInt CSatDSatTsy::SetUpCallTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSetUpCallRspV1Pckg* aRspPckg = (RSat::TSetUpCallRspV1Pckg*)aRsp;
+	RSat::TSetUpCallRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_CALL_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else
+		{
+		if(rspV1.ExtensionId()==RSat::KSatV2)
+			{
+			RSat::TSetUpCallRspV2Pckg* aRspV2Pckg = (RSat::TSetUpCallRspV2Pckg*)aRsp;
+			RSat::TSetUpCallRspV2&     rspV2      = (*aRspV2Pckg)();
+
+			if((rspV2.iUssdString.iUssdString != DSATTSY_DEFAULT_TEXT)
+			|| (rspV2.iUssdString.iDcs != DSATTSY_DCS))	
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		else
+			{
+			RSat::TControlResult ccResult;
+			rspV1.iCcRequestedAction.GetCcGeneralResult(ccResult);
+
+			RSat::TCallControlType ccType;
+			rspV1.iCcRequestedAction.GetCallControlType(ccType);
+
+			RSat::TCallSetUpParams address;
+			rspV1.iCcRequestedAction.GetCallSetUpDetails(address);
+
+			RSat::TAlphaIdValidity validity;
+			RSat::TAlphaId alphaId;
+			rspV1.iCcRequestedAction.GetAlphaId(validity, alphaId);
+
+			RSat::TBCRepeatIndicator indicator;
+			rspV1.iCcRequestedAction.GetBCRepeatIndicator(indicator);
+
+			if ( (ccResult!=DSATTSY_CC_RESULT) || (ccType!=RSat::ECcAddress) 
+				|| (address.iCcp1!=DSATTSY_CCP1) 
+				|| (address.iSubAddress!=DSATTSY_SUBADDRESS)
+				|| (address.iCcp2!=DSATTSY_CCP2) 
+				|| (address.iAddress.iTypeOfNumber!=DSATTSY_TON)
+				|| (address.iAddress.iNumberPlan!=DSATTSY_NPI) 
+				|| (address.iAddress.iTelNumber!=DSATTSY_TEL_NUMBER) 
+				|| (validity!=DSATTSY_NO_ALPHAID)
+				|| (alphaId.iAlphaId!=DSATTSY_NULL_BUF)
+				|| (alphaId.iStatus!=DSATTSY_ALPHAID_STATUS)
+				|| (indicator != DSATTSY_BC_REPEAT_INDICATOR_ALTERNATE))
+				{
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}
+
+			else if((rspV1.iGeneralResult2!=DSATTSY_PCMD_RESULT_SUCCESS)
+				||(rspV1.iInfoType2!=DSATTSY_PCMD_RSP_NO_INFO)
+				||(rspV1.iAdditionalInfo2!=DSATTSY_NULL_BUF))
+				{
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}
+			else if(!iSetUpCallTerminalRsp++)
+				ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		}
+
+		iTsyAsyncReqHandle = aTsyReqHandle;
+		return KErrNone;
+	}
+
+TInt CSatDSatTsy::RefreshTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TRefreshRspV1Pckg* aRspPckg = (RSat::TRefreshRspV1Pckg*)aRsp;
+	RSat::TRefreshRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_REFRESH_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iRefreshTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::SetUpEventListTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSetUpEventListRspV1Pckg* aRspPckg = (RSat::TSetUpEventListRspV1Pckg*)aRsp;
+	RSat::TSetUpEventListRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_EVENT_LIST_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iSetUpEventListTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::SetUpIdleModeTextTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSetUpIdleModeTextRspV1Pckg* aRspPckg = (RSat::TSetUpIdleModeTextRspV1Pckg*)aRsp;
+	RSat::TSetUpIdleModeTextRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iSetUpIdleModeTextTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::SendDtmfTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSendDtmfRspV1Pckg* aRspPckg = (RSat::TSendDtmfRspV1Pckg*)aRsp;
+	RSat::TSendDtmfRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV1.PCmdNumber()!=DSATTSY_SEND_DTMF_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iSendDtmfTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::PerformCardApduTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TPerformCardApduRspV2Pckg* aV2RspPckg = (RSat::TPerformCardApduRspV2Pckg*)aRsp;
+	RSat::TPerformCardApduRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_PERFORM_CARD_APDU_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iPerformCardApduTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::PowerOffCardTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TPowerOffCardRspV2Pckg* aV2RspPckg = (RSat::TPowerOffCardRspV2Pckg*)aRsp;
+	RSat::TPowerOffCardRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_POWER_OFF_CARD_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iPowerOffCardTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::PowerOnCardTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TPowerOnCardRspV2Pckg* aV2RspPckg = (RSat::TPowerOnCardRspV2Pckg*)aRsp;
+	RSat::TPowerOnCardRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_POWER_ON_CARD_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iPowerOnCardTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetReaderStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TGetReaderStatusRspV2Pckg* aV2RspPckg = (RSat::TGetReaderStatusRspV2Pckg*)aRsp;
+	RSat::TGetReaderStatusRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_GET_READER_STATUS_NUMBER)
+		||(rspV2.iMode!=DSATTSY_GET_READER_STATUS_MODE))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iGetReaderStatusTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::RunAtCommandTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TRunAtCommandRspV2Pckg* aV2RspPckg = (RSat::TRunAtCommandRspV2Pckg*)aRsp;
+	RSat::TRunAtCommandRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_RUN_AT_COMMAND_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iRunAtCommandTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::LanguageNotificationTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TLanguageNotificationRspV2Pckg* aV2RspPckg = (RSat::TLanguageNotificationRspV2Pckg*)aRsp;
+	RSat::TLanguageNotificationRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_LANGUAGE_NOTIFICATION_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iLanguageNotificationTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::LaunchBrowserTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TLaunchBrowserRspV2Pckg* aV2RspPckg = (RSat::TLaunchBrowserRspV2Pckg*)aRsp;
+	RSat::TLaunchBrowserRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_LAUNCH_BROWSER_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iLaunchBrowserTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::OpenChannelTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TOpenChannelRspV2Pckg* aV2RspPckg = (RSat::TOpenChannelRspV2Pckg*)aRsp;
+	RSat::TOpenChannelRspV2& rspV2 = (*aV2RspPckg)();
+			
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_OPEN_CHANNEL_NUMBER)
+		||(rspV2.iBearer.iType!=DSATTSY_CSD_BEARER_TYPE)
+		||(rspV2.iBearer.iParams!=DSATTSY_BEARER_PARAMS)
+		||(rspV2.iBufferSize!=DSATTSY_BUFFER_SIZE))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iOpenChannelTerminalRsp++)
+		{
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::CloseChannelTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TCloseChannelRspV2Pckg* aV2RspPckg = (RSat::TCloseChannelRspV2Pckg*)aRsp;
+	RSat::TCloseChannelRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_CLOSE_CHANNEL_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iCloseChannelTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::ReceiveDataTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TReceiveDataRspV2Pckg* aV2RspPckg = (RSat::TReceiveDataRspV2Pckg*)aRsp;
+	RSat::TReceiveDataRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_RECEIVE_DATA_NUMBER)
+		||(rspV2.iChannelDataLength!=DSATTSY_DATA_LENGTH))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iReceiveDataTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::SendDataTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TSendDataRspV2Pckg* aV2RspPckg = (RSat::TSendDataRspV2Pckg*)aRsp;
+	RSat::TSendDataRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_SEND_DATA_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iSendDataTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetChannelStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TGetChannelStatusRspV2Pckg* aV2RspPckg = (RSat::TGetChannelStatusRspV2Pckg*)aRsp;
+	RSat::TGetChannelStatusRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_GET_CHANNEL_STATUS_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iGetChannelStatusTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetServiceInfoTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TGetServiceInfoRspV2Pckg* aV2RspPckg = (RSat::TGetServiceInfoRspV2Pckg*)aRsp;
+	RSat::TGetServiceInfoRspV2& rspV2 = (*aV2RspPckg)();
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_GET_SERVICE_INFO_NUMBER)
+		||(rspV2.iRecordInfo.iBearerId!=DSATTSY_BEARER_NOT_PRESENT)
+		||(rspV2.iRecordInfo.iServiceId!=DSATTSY_NULL_BEARER_ID)
+		||(rspV2.iRecordInfo.iRecord!=DSATTSY_NULL_NARROW_BUF))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iGetServiceInfoTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::DeclareServiceTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TDeclareServiceRspV2Pckg* aV2RspPckg = (RSat::TDeclareServiceRspV2Pckg*)aRsp;
+	RSat::TDeclareServiceRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_DECLARE_SERVICE_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iDeclareServiceTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::ServiceSearchTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TServiceSearchRspV2Pckg* aV2RspPckg = (RSat::TServiceSearchRspV2Pckg*)aRsp;
+	RSat::TServiceSearchRspV2& rspV2 = (*aV2RspPckg)();
+
+	if((rspV2.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV2.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV2.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV2.PCmdNumber()!=DSATTSY_SERVICE_SEARCH_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iServiceSearchTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::TimerMgmtTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TTimerMgmtRspV3Pckg* aV3RspPckg = (RSat::TTimerMgmtRspV3Pckg*)aRsp;
+	RSat::TTimerMgmtRspV3& rspV3 = (*aV3RspPckg)();
+
+	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
+		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV3.PCmdNumber()!=DSATTSY_TIMER_MNGT_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iTimerMgmtTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::LocalInfoTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TLocalInfoRspV3Pckg* aV3RspPckg = (RSat::TLocalInfoRspV3Pckg*)aRsp;
+	RSat::TLocalInfoRspV3& rspV3 = (*aV3RspPckg)();
+
+	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
+		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV3.PCmdNumber()!=DSATTSY_LOCAL_INFO_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iLocalInfoTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+
+TInt CSatDSatTsy::PollingIntvTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TPollingIntervalRspV3Pckg* aV3RspPckg = (RSat::TPollingIntervalRspV3Pckg*)aRsp;
+	RSat::TPollingIntervalRspV3& rspV3 = (*aV3RspPckg)();
+
+	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
+		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV3.PCmdNumber()!=DSATTSY_POLLING_INTERVAL_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iPollingIntervalTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::PollingOffTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aRsp)
+	{
+	RSat::TPollingOffRspV3Pckg* aV3RspPckg = (RSat::TPollingOffRspV3Pckg*)aRsp;
+	RSat::TPollingOffRspV3& rspV3 = (*aV3RspPckg)();
+
+	if((rspV3.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV3.iInfoType!=DSATTSY_INFO_TYPE)
+		||(rspV3.iAdditionalInfo!=DSATTSY_NULL_BUF)
+		||(rspV3.PCmdNumber()!=DSATTSY_POLLING_OFF_NUMBER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iPollingOffTerminalRsp++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::RetrieveMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iRetrieveMultimediaMsgTerminalRsp++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd called"));
+		RSat::TRetrieveMultimediaMessageRspV6Pckg* retrieveMmRspV6PCmdPckg = (RSat::TRetrieveMultimediaMessageRspV6Pckg*)aPCmd;	
+		RSat::TRetrieveMultimediaMessageRspV6& retrieveMmRspV6 = (*retrieveMmRspV6PCmdPckg)();
+		
+		if((retrieveMmRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
+		    (retrieveMmRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
+		    (retrieveMmRspV6.PCmdNumber()!=DSATTSY_RETRIEVE_MULTIMEDIA_MESSAGE))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
+			}
+		else
+			{
+			ReqCompleted(aTsyReqHandle,KErrNone);	
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+
+
+TInt CSatDSatTsy::SubmitMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iSubmitMultimediaMsgTerminalRsp++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmd called"));
+		RSat::TSubmitMultimediaMessageRspV6Pckg* submitMMRspV6PCmdPckg = (RSat::TSubmitMultimediaMessageRspV6Pckg*)aPCmd;	
+		RSat::TSubmitMultimediaMessageRspV6& submitMMRspV6 = (*submitMMRspV6PCmdPckg)();
+		
+		if((submitMMRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
+		    (submitMMRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
+		    (submitMMRspV6.PCmdNumber()!=DSATTSY_SUBMIT_MULTIMEDIA_MESSAGE))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
+			}
+		else
+			{
+			ReqCompleted(aTsyReqHandle,KErrNone);	
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::DisplayMultimediaMsgTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iDisplayMultimediaMsgTerminalRsp++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd called"));
+		RSat::TDisplayMultimediaMessageRspV6Pckg* displayMMRspV6PCmdPckg = (RSat::TDisplayMultimediaMessageRspV6Pckg*)aPCmd;	
+		RSat::TDisplayMultimediaMessageRspV6& displayMMRspV6 = (*displayMMRspV6PCmdPckg)();
+		
+		if((displayMMRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
+		    (displayMMRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
+		    (displayMMRspV6.PCmdNumber()!=DSATTSY_DISPLAY_MULTIMEDIA_MESSAGE))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
+			}
+		else
+			{
+			ReqCompleted(aTsyReqHandle,KErrNone);	
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+	
+TInt CSatDSatTsy::SetFramesTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iSetFramesTerminalRsp++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::SetFramesTerminalRsp called"));
+		RSat::TSetFramesRspV6Pckg* setFramesRspV6PCmdPckg = (RSat::TSetFramesRspV6Pckg*)aPCmd;	
+		RSat::TSetFramesRspV6& setFramesRspV6 = (*setFramesRspV6PCmdPckg)();
+		
+		if((setFramesRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)	||
+		    (setFramesRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO) ||
+		    (setFramesRspV6.PCmdNumber()!=DSATTSY_SET_FRAMES) ||
+		    (setFramesRspV6.iFramesInformation.iFrameId!=DSATTSY_FRAMES_INFORMATION_FRAMEID) ||
+		    (setFramesRspV6.iFramesInformation.iFrameList!=DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);	
+			}
+		else
+			{
+			ReqCompleted(aTsyReqHandle,KErrNone);	
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+	
+TInt CSatDSatTsy::GetFramesStatusTerminalRsp(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iGetFramesStatusTerminalRsp++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmd called"));
+		RSat::TGetFramesStatusRspV6Pckg* getFramesStatusRspV6PCmdPckg = (RSat::TGetFramesStatusRspV6Pckg*)aPCmd;	
+		RSat::TGetFramesStatusRspV6& getFramesStatusRspV6 = (*getFramesStatusRspV6PCmdPckg)();	
+		
+		if((getFramesStatusRspV6.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(getFramesStatusRspV6.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(getFramesStatusRspV6.PCmdNumber()!=DSATTSY_GET_FRAMES_STATUS) 
+		||(getFramesStatusRspV6.iFramesInformation.iFrameId!=DSATTSY_FRAMES_INFORMATION_FRAMEID) 
+		||(getFramesStatusRspV6.iFramesInformation.iFrameList!=DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+		else 
+			{
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+	
+
+
+TInt CSatDSatTsy::TerminalRsp(const TTsyReqHandle aTsyReqHandle, RSat::TPCmd* aPCmd, TDes8* aRsp)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::TerminalRsp called"));
+	switch (*aPCmd)
+		{
+		case RSat::EDisplayText:
+			return DisplayTextTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EGetInkey:
+			return GetInkeyTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EGetInput:
+			return GetInputTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EPlayTone:
+			return PlayToneTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESetUpMenu:
+			return SetUpMenuRsp(aTsyReqHandle, aRsp);
+		case RSat::ESelectItem:
+			return SelectItemTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESendSm:
+			return SendSmTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESendSs:
+			return SendSSTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESendUssd:
+			return SendUssdTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESetUpCall:
+			return SetUpCallTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ERefresh:
+			return RefreshTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESetUpEventList:
+			return SetUpEventListTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESetUpIdleModeText:
+			return SetUpIdleModeTextTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESendDtmf:
+			return SendDtmfTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EPerformCardApdu:
+			return PerformCardApduTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EPowerOffCard:
+			return PowerOffCardTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EPowerOnCard:
+			return PowerOnCardTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EGetReaderStatus:
+			return GetReaderStatusTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ERunAtCommand:
+			return RunAtCommandTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ELanguageNotification:
+			return LanguageNotificationTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ELaunchBrowser:
+			return LaunchBrowserTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EOpenChannelCs:
+		case RSat::EOpenChannelGprs:
+		case RSat::EOpenChannelLocal:
+		case RSat::EOpenChannelUiccServerMode:
+			return OpenChannelTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ECloseChannel:
+			return CloseChannelTerminalRsp(aTsyReqHandle, aRsp);			
+		case RSat::EReceiveData:
+			return ReceiveDataTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESendData:
+			return SendDataTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EGetChannelStatus:
+			return GetChannelStatusTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EDeclareService:
+			return DeclareServiceTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EServiceSearch:
+			return ServiceSearchTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EGetServiceInformation:
+			return GetServiceInfoTerminalRsp(aTsyReqHandle,aRsp);		
+		case RSat::ETimerMngt:
+			return TimerMgmtTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ELocalInfo:
+			return LocalInfoTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EPollingInterval:
+			return PollingIntvTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EPollingOff:
+			return PollingOffTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ERetrieveMultimediaMsg:
+			return RetrieveMultimediaMsgTerminalRsp(aTsyReqHandle,aRsp);		
+		case RSat::ESubmitMultimediaMsg:
+			return SubmitMultimediaMsgTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EDisplayMultimediaMsg:
+			return DisplayMultimediaMsgTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::ESetFrames:
+			return SetFramesTerminalRsp(aTsyReqHandle, aRsp);
+		case RSat::EGetFramesStatus:
+			return GetFramesStatusTerminalRsp(aTsyReqHandle, aRsp);
+		default:
+			return KErrGeneral; 
+			}
+	}
+
+TInt CSatDSatTsy::TerminalRspCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::TerminalRspCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetMeSideSatProfile(const TTsyReqHandle aTsyReqHandle, TDes8* aMeSimSatProfile)
+	{
+	// First call by test code is RSat::GetMeSideSatProfile() with V2 param.
+	// Second call is RSat::GetMeSideSatProfile() followed by Cancel
+	// Third call is RSat::GetMeSideSatProfile() with V5 param.
+	if((iGetMeSideSatProfile == 0) || (iGetMeSideSatProfile == 2))
+		{
+		LOGTEXT(_L8("CSatDSatTsy::GetMeSideSatProfile called"));
+		RSat::TSatProfileV1Pckg* aProfilePckg = (RSat::TSatProfileV1Pckg*)aMeSimSatProfile;
+		RSat::TSatProfileV1& profileV1 = (*aProfilePckg)();
+
+		profileV1.iSatProfileByte1=0x01;
+		profileV1.iSatProfileByte2=0x02;
+		profileV1.iSatProfileByte3=0x03;
+		profileV1.iSatProfileByte4=0x04;
+		profileV1.iSatProfileByte5=0x05;
+		profileV1.iSatProfileByte6=0x06;
+		profileV1.iSatProfileByte7=0x07;
+		profileV1.iSatProfileByte8=0x08;
+		profileV1.iSatProfileByte9=0x09;
+
+		if ((profileV1.ExtensionId() == RSat::KSatV2) || 
+			(profileV1.ExtensionId() == RSat::KSatV5) || 
+			(profileV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TSatProfileV2Pckg* v2ProfilePckg = (RSat::TSatProfileV2Pckg*)aMeSimSatProfile;
+			RSat::TSatProfileV2& profileV2 = (*v2ProfilePckg)();
+
+			profileV2.iSatProfileByte10=0x0A;
+			profileV2.iSatProfileByte11=0x0B;
+			profileV2.iSatProfileByte12=0x0C;
+			profileV2.iSatProfileByte13=0x0D;
+			profileV2.iSatProfileByte14=0x0E;
+			profileV2.iSatProfileByte15=0x0F;
+			profileV2.iSatProfileByte16=0x10;
+			profileV2.iSatProfileByte17=0x20;
+			profileV2.iSatProfileByte18=0x30;
+			profileV2.iNumOfChannels=DSATTSY_NUMBER_OF_CHANNELS;
+			profileV2.iScreenHeight=DSATTSY_SCREEN_HEIGHT;
+			profileV2.iScreenWidth=DSATTSY_SCREEN_WIDTH;
+			profileV2.iTiaEiaProtoVersion=DSATTSY_PROTO_VERSION;
+			profileV2.iWidthReduction=DSATTSY_WIDTH_REDUCTION;
+			}
+			
+		if ((profileV1.ExtensionId() == RSat::KSatV5) || 
+			(profileV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TSatProfileV5Pckg* profileV5Pckg = (RSat::TSatProfileV5Pckg*)aMeSimSatProfile;
+			RSat::TSatProfileV5& profileV5 = (*profileV5Pckg)();
+			
+			// Set profileV5.iSatProfileByte28 to:
+			// (KCapsTextAttributeAlignmentLeft | KCapsTextAttributeAlignmentCentre | 
+			// KCapsTextAttributeAlignmentRight | KCapsTextAttributeFontSizeNormal | 
+			// KCapsTextAttributeFontSizeLarge | KCapsTextAttributeFontSizeSmall)
+			profileV5.iSatProfileByte28 = 0x3F;
+			// Set profileV5.iSatProfileByte29 to
+			// (KCapsTextAttributeStyleNormal | KCapsTextAttributeStyleBold | 
+			// KCapsTextAttributeStyleItalic | KCapsTextAttributeStyleUnderline | 
+			// KCapsTextAttributeStyleStrikethrough | KCapsTextAttributeStyleForeground | 
+			// KCapsTextAttributeStyleBackground)
+			profileV5.iSatProfileByte29 = 0x7F;
+			}
+		if (profileV1.ExtensionId() == RSat::KSatV6) 
+			{
+			RSat::TSatProfileV6Pckg* profileV6Pckg = (RSat::TSatProfileV6Pckg*)aMeSimSatProfile;
+			RSat::TSatProfileV6& profileV6 = (*profileV6Pckg)();
+			
+			// Set profileV6.iSatProfileByte21 to:
+			//(KCapsWML  | KCapsXHTML |
+			// KCapsHTML | KCapsCHTML )	
+			profileV6.iSatProfileByte21 = 0x0F;
+			// Set profileV6.iSatProfileByte22 to:
+			//(KCapsProvideLocalInfoUTRAN | KCapsProvideLocalInfoBatteryState |
+			// KCapsPlayThemedAndMelodyTone | KCapsSetUpCallMultimediaCall |
+			// KCapsRefreshGBA	| KCapsRetrieveMultimediaMessage |
+			// KCapsSubmitMultimediaMessage | KCapsDisplayMultimediaMesage)
+			profileV6.iSatProfileByte22 = 0xFF;
+			// Set profileV6.iSatProfileByte23 to:
+			//(KCapsSetFrames  | KCapsGetFramesStatus  |
+			// KCapsMmsNotificationDownload | KCapsProvideLocalInfoMEID |
+			// KCapsProvideLocalInfoNmrUTRAN | KCapsUssdDataDownload)
+            profileV6.iSatProfileByte23 = 0xE7;
+			// Set profileV6.iSatProfileByte24 to:
+			//(KCapsMaxNumFramesBit1 | KCapsMaxNumFramesBit2 |
+			// KCapsMaxNumFramesBit3 | KCapsMaxNumFramesBit4)
+            profileV6.iSatProfileByte24 = 0x0F;
+			// Set profileV6.iSatProfileByte25 to:
+			// (KCapsBrowsingStatusEvent | KCapsMmsTransferStatusEvent |
+			// KCapsFrameParametersChangeEvent)
+			profileV6.iSatProfileByte25 = 0x07;	
+			}
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iGetMeSideSatProfile++;
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetMeSideSatProfileCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::GetMeSideSatProfileCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::ClientSatProfileIndication(const TTsyReqHandle aTsyReqHandle, TDes8* aClientSatProfile)
+	{
+	
+	// First call by test code is with version 2 parameter
+	// Second call is with version 5 parameter
+	if (iClientSatProfileIndication<2)
+		{	
+		LOGTEXT(_L8("CSatDSatTsy::ClientSatProfileIndication called"));
+		
+		RSat::TSatProfileV1Pckg* aClientSatProfilePckg = (RSat::TSatProfileV1Pckg*)aClientSatProfile;
+		RSat::TSatProfileV1& satProfileV1 = (*aClientSatProfilePckg)();
+		
+		// Check version 1 parameters
+		if ((satProfileV1.iSatProfileByte1!=0x01)
+			||(satProfileV1.iSatProfileByte2!=0x02)
+			||(satProfileV1.iSatProfileByte3!=0x03)
+			||(satProfileV1.iSatProfileByte4!=0x04)
+			||(satProfileV1.iSatProfileByte5!=0x05)
+			||(satProfileV1.iSatProfileByte6!=0x06)
+			||(satProfileV1.iSatProfileByte7!=0x07)
+			||(satProfileV1.iSatProfileByte8!=0x08)
+			||(satProfileV1.iSatProfileByte9!=0x09))
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+		
+		// Check version 2 parameters
+		if( (satProfileV1.ExtensionId()==RSat::KSatV2) ||
+			(satProfileV1.ExtensionId()==RSat::KSatV5) ||
+			(satProfileV1.ExtensionId()==RSat::KSatV6))
+			{
+			RSat::TSatProfileV2Pckg* aV2ClientSatProfilePckg = (RSat::TSatProfileV2Pckg*)aClientSatProfile;
+			RSat::TSatProfileV2& satProfileV2 = (*aV2ClientSatProfilePckg)();
+			
+			if ((satProfileV2.iSatProfileByte10!=0x0A)
+				||(satProfileV2.iSatProfileByte11!=0x0B)
+				||(satProfileV2.iSatProfileByte12!=0x0C)
+				||(satProfileV2.iSatProfileByte13!=0x0D)
+				||(satProfileV2.iSatProfileByte14!=0x0E)
+				||(satProfileV2.iSatProfileByte15!=0x0F)
+				||(satProfileV2.iSatProfileByte16!=0x10)
+				||(satProfileV2.iSatProfileByte17!=0x20)
+				||(satProfileV2.iSatProfileByte18!=0x30)
+				||(satProfileV2.iNumOfChannels!=DSATTSY_NUMBER_OF_CHANNELS)
+				||(satProfileV2.iScreenHeight!=DSATTSY_SCREEN_HEIGHT)
+				||(satProfileV2.iScreenWidth!=DSATTSY_SCREEN_WIDTH)
+				||(satProfileV2.iTiaEiaProtoVersion!=DSATTSY_PROTO_VERSION)
+				||(satProfileV2.iWidthReduction!=DSATTSY_WIDTH_REDUCTION))
+				{
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}
+			}
+		
+		// Check version 5 parameters	
+		if ((satProfileV1.ExtensionId() == RSat::KSatV5) ||
+		    (satProfileV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TSatProfileV5Pckg* clientSatProfilePckgV5 = (RSat::TSatProfileV5Pckg*) aClientSatProfile;
+			RSat::TSatProfileV5& satProfileV5 = (*clientSatProfilePckgV5)();
+			
+			if ((satProfileV5.iSatProfileByte28 != 0x3F) ||
+				(satProfileV5.iSatProfileByte29 != 0x7F))
+				{
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				}
+			}
+		
+		// Check version 6 parameters	
+		if (satProfileV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TSatProfileV6Pckg* clientSatProfilePckgV6 = (RSat::TSatProfileV6Pckg*) aClientSatProfile;
+			RSat::TSatProfileV6& satProfileV6 = (*clientSatProfilePckgV6)();
+			
+			if ((satProfileV6.iSatProfileByte21 != 0x0F) ||
+				(satProfileV6.iSatProfileByte22 != 0xFF) ||
+				(satProfileV6.iSatProfileByte23 != 0xE7) ||
+				(satProfileV6.iSatProfileByte24 != 0x0F) ||
+				(satProfileV6.iSatProfileByte25 != 0x07))
+				{
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				}
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iClientSatProfileIndication++;	
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::MenuSelection(const TTsyReqHandle aTsyReqHandle, TDes8* aSelection)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::MenuSelection called"));
+	RSat::TMenuSelectionV1Pckg* aSelectionPckg = (RSat::TMenuSelectionV1Pckg*)aSelection;
+	RSat::TMenuSelectionV1& menuSelectionV1 = (*aSelectionPckg)();
+
+	if ((menuSelectionV1.iItemId!=DSATTSY_ITEM_ID)
+		||(menuSelectionV1.iHelp!=DSATTSY_HELP_REQUESTED))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		if(!iMenuSelection++)
+			ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::MenuSelectionCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::MenuSelectionCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyCallControlRequest(const TTsyReqHandle aTsyReqHandle, TDes8* aCallControlDetails)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyCallControlRequest called"));
+	if(!iNotifyCallControlRequest++)
+	{
+		RSat::TAlphaId nullBuf;
+		nullBuf.iAlphaId=DSATTSY_NULL_BUF;
+		nullBuf.iStatus=DSATTSY_ALPHAID_STATUS;
+		if(iNotifyCallControlRequestTestNumber==0)
+			{
+			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
+			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
+	
+			RSat::TCallSetUpParams aParams;
+			aParams.iCcp1					=DSATTSY_CCP1;
+			aParams.iSubAddress				=DSATTSY_SUBADDRESS;
+			aParams.iCcp2					=DSATTSY_CCP2;
+			aParams.iAddress.iTypeOfNumber	=DSATTSY_TON;
+			aParams.iAddress.iNumberPlan	=DSATTSY_NPI;
+			aParams.iAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
+	
+			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
+
+			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
+			cmdV1.SetCallSetUpDetails(aParams);
+			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
+
+			iNotifyCallControlRequestTestNumber++;
+
+			if (cmdV1.ExtensionId() == RSat::KSatV2)
+				{
+				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
+				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
+
+				callControlV2.SetCallName(DSATTSY_CALL_NAME);
+				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
+				}
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		else if (iNotifyCallControlRequestTestNumber==1)
+			{
+			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
+			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
+
+			RSat::TSsString ssString;
+			ssString.iTypeOfNumber = DSATTSY_TON;
+			ssString.iNumberPlan = DSATTSY_NPI;
+			ssString.iSsString = DSATTSY_SS_STRING;
+			
+			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
+			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
+			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
+			cmdV1.SetSendSsDetails(ssString);
+
+			iNotifyCallControlRequestTestNumber++;
+
+			if (cmdV1.ExtensionId() == RSat::KSatV2)
+				{
+				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
+				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
+
+				callControlV2.SetCallName(DSATTSY_CALL_NAME);
+				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
+				}
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		else if (iNotifyCallControlRequestTestNumber==2)
+			{
+			RSat::TCallControlV1Pckg* cmdPckg = (RSat::TCallControlV1Pckg*)aCallControlDetails;
+			RSat::TCallControlV1& cmdV1 = (*cmdPckg)();
+
+			RSat::TUssdString ussdString;
+			ussdString.iDcs=DSATTSY_DCS;
+			ussdString.iUssdString=DSATTSY_USSD_STRING;
+	
+			cmdV1.SetCcGeneralResult(DSATTSY_CC_RESULT);
+			cmdV1.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);
+			cmdV1.SetBCRepeatIndicator(RSat::EBCSequentialMode);
+			cmdV1.SetSendUssdDetails(ussdString);
+
+			iNotifyCallControlRequestTestNumber++;
+
+			if (cmdV1.ExtensionId() == RSat::KSatV2)
+				{
+				RSat::TCallControlV2Pckg* aV2PCmdPckg = (RSat::TCallControlV2Pckg*)aCallControlDetails;
+				RSat::TCallControlV2&     callControlV2 = (*aV2PCmdPckg)();
+
+				callControlV2.SetCallName(DSATTSY_CALL_NAME);
+				callControlV2.SetActionOriginator(DSATTSY_ACTION_ORIGINATOR);
+				}
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			}			
+		else if (iNotifyCallControlRequestTestNumber==3)
+			{
+			RSat::TCallControlV5Pckg* cmdPckg = (RSat::TCallControlV5Pckg*)aCallControlDetails;
+			RSat::TCallControlV5& cmd = (*cmdPckg)();
+			
+			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
+			cmd.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);			
+			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_FALLBACK);
+			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS);			
+			cmd.SetPdpParameters(pdpParams);
+			
+			iNotifyCallControlRequestTestNumber++;
+		
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		else if (iNotifyCallControlRequestTestNumber==4)
+			{
+			RSat::TCallControlV5Pckg* cmdPckg = (RSat::TCallControlV5Pckg*)aCallControlDetails;
+			RSat::TCallControlV5& cmd = (*cmdPckg)();
+			
+			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
+			cmd.SetAlphaId(DSATTSY_NO_ALPHAID, nullBuf);		
+			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS2);			
+			cmd.SetPdpParameters(pdpParams);			
+			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_SERVICECHANGEANDFALLBACK);
+			
+			iNotifyCallControlRequestTestNumber++;
+		
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		else if (iNotifyCallControlRequestTestNumber==5)
+			{
+			RSat::TCallControlV6Pckg* cmdPckg = (RSat::TCallControlV6Pckg*)aCallControlDetails;
+			RSat::TCallControlV6& cmd = (*cmdPckg)();
+			
+			cmd.SetCcGeneralResult(DSATTSY_CC_RESULT);
+			TPdpParameters  pdpParams(DSATTSY_PDP_PARAMETERS2);			
+			cmd.SetPdpParameters(pdpParams);			
+			cmd.SetBCRepeatIndicator(DSATTSY_BC_REPEAT_INDICATOR_SERVICECHANGEANDFALLBACK);
+			cmd.SetCallParamOrigin(DSATTSY_CC_CALL_PARAM_ORIGIN);
+			
+			iNotifyCallControlRequestTestNumber++;
+		
+			ReqCompleted(aTsyReqHandle,KErrNone);			
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyCallControlRequestCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyCallControlCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyCallControlRequest=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyMoSmControlRequest(const TTsyReqHandle aTsyReqHandle, TDes8* aMoSmDetails)
+	{
+	if(!iNotifyMoSmControlRequest++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyMoSmControlRequest called"));
+		RSat::TMoSmControlV1Pckg* cmdPckg = (RSat::TMoSmControlV1Pckg*)aMoSmDetails;
+		RSat::TMoSmControlV1& cmdV1 = (*cmdPckg)();
+
+		cmdV1.iRpAddress.iTypeOfNumber	=DSATTSY_TON;
+		cmdV1.iRpAddress.iNumberPlan	=DSATTSY_NPI;
+		cmdV1.iRpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
+		cmdV1.iTpAddress.iTypeOfNumber	=DSATTSY_TON;
+		cmdV1.iTpAddress.iNumberPlan	=DSATTSY_NPI;
+		cmdV1.iTpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
+		cmdV1.iResult					=DSATTSY_CONTROL_RESULT;
+		cmdV1.iAlphaId.iAlphaId			=DSATTSY_ALPHA_ID1;
+		cmdV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyMoSmControlRequestCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyMoSmControlRequestCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::EventDownload(const TTsyReqHandle aTsyReqHandle, RSat::TEventList* aSingleEvent, TDes8* aEventInfo)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::Event Download called"));
+
+	RSat::TEventDownloadBaseV2Pckg* eventBaseV2Pckg = (RSat::TEventDownloadBaseV2Pckg*)aEventInfo;
+	RSat::TEventDownloadBaseV2&     eventBaseV2     = (*eventBaseV2Pckg)();
+
+	if (!iEventDownload++)
+		{
+		switch( *aSingleEvent )
+			{
+		case RSat::KUserActivity:			// Allow KuserActivity to fall through to KidleScreenAvailable
+		case RSat::KIdleScreenAvailable:
+			// Don't expect any data for these events
+			if (eventBaseV2.iDataAvailable)				
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				ReqCompleted(aTsyReqHandle, KErrNone);
+			break;
+
+		case RSat::KCardReaderStatus:
+			// Expect TCardReaderStatusEventV2
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TCardReaderStatusEventV2Pckg* cardReaderEventV2Pckg = (RSat::TCardReaderStatusEventV2Pckg *)aEventInfo;
+				RSat::TCardReaderStatusEventV2&     cardReaderEventV2     = (*cardReaderEventV2Pckg)();
+
+				if (cardReaderEventV2.iCardReaderStatus != DSATTSY_EVENT_CARD_READER_STATUS)
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+
+		case RSat::KLanguageSelection:
+			// Expect TLanguageSelectionEventV2
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TLanguageSelectionEventV2Pckg* languageV2Pckg = (RSat::TLanguageSelectionEventV2Pckg *)aEventInfo;
+				RSat::TLanguageSelectionEventV2&     languageV2     = (*languageV2Pckg)();
+
+				if (languageV2.iLanguage != DSATTSY_EVENT_LANGUAGE_SELECTION)
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+
+		case RSat::KBrowserTermination:
+			// Expect TBrowserTerminationEventV2
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TBrowserTerminationEventV2Pckg* terminationV2Pckg = (RSat::TBrowserTerminationEventV2Pckg *)aEventInfo;
+				RSat::TBrowserTerminationEventV2&     terminationV2     = (*terminationV2Pckg)();
+
+				if (terminationV2.iCause != DSATTSY_EVENT_BROWSER_TERMINATION_CAUSE)
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+
+		case RSat::KDataAvailable:
+			// Expect TDataAvailableEventV2
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TDataAvailableEventV2Pckg* dataV2Pckg = (RSat::TDataAvailableEventV2Pckg *)aEventInfo;
+				RSat::TDataAvailableEventV2&     dataV2     = (*dataV2Pckg)();
+
+				if ((dataV2.iStatus != DSATTSY_EVENT_DATA_AVAILABLE_STATUS)
+				 || (dataV2.iLength != DSATTSY_EVENT_DATA_AVAILABLE_LENGTH))
+					{
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+					}
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+
+		case RSat::KChannelStatus:
+			// Expect TChannelStatusEventV2
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TChannelStatusEventV2Pckg* channelV2Pckg = (RSat::TChannelStatusEventV2Pckg *)aEventInfo;
+				RSat::TChannelStatusEventV2&     channelV2     = (*channelV2Pckg)();
+
+				if (channelV2.iStatus != DSATTSY_EVENT_CHANNEL_STATUS)
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+
+		case RSat::KDisplayParamsChanges:
+			// Expect TDisplayParamsEventV2
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TDisplayParamsEventV2Pckg* displayV2Pckg = (RSat::TDisplayParamsEventV2Pckg *)aEventInfo;
+				RSat::TDisplayParamsEventV2&     displayV2     = (*displayV2Pckg)();
+
+				if ((displayV2.iSatProfileByte14 != DSATTSY_EVENT_DISPLAY_PROF14)
+				 || (displayV2.iScreenHeight     != DSATTSY_SCREEN_HEIGHT)
+				 || (displayV2.iSatProfileByte15 != DSATTSY_EVENT_DISPLAY_PROF15)
+				 || (displayV2.iScreenWidth      != DSATTSY_SCREEN_WIDTH)
+				 || (displayV2.iSatProfileByte16 != DSATTSY_EVENT_DISPLAY_PROF16)
+				 || (displayV2.iWidthReduction   != DSATTSY_WIDTH_REDUCTION))
+					{
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+					}
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+
+		case RSat::KLocalConnection:
+			// Expect TLocalConnectionEventV2
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TLocalConnectionEventV2Pckg* localV2Pckg = (RSat::TLocalConnectionEventV2Pckg *)aEventInfo;
+				RSat::TLocalConnectionEventV2&     localV2     = (*localV2Pckg)();
+
+				if ((localV2.iRecord.iBearerId  != DSATTSY_EVENT_LOCAL_BEARER_ID)
+				 || (localV2.iRecord.iServiceId != DSATTSY_EVENT_LOCAL_SERVICE_ID)
+				 || (localV2.iRecord.iRecord	!= DSATTSY_EVENT_LOCAL_SERVICE_RECORD)
+				 || (localV2.iAddress.iCoding   != DSATTSY_EVENT_LOCAL_ADDR_CODING)
+				 || (localV2.iAddress.iAddress  != DSATTSY_EVENT_LOCAL_ADDRESS))
+					{
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+					}
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+			
+		case RSat::KNetworkSearchModeChange:
+			// Expect TNetworkSearchModeChangeV6
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TNetworkSearchModeChangeEventV6Pckg* networkSearchV6Pckg = (RSat::TNetworkSearchModeChangeEventV6Pckg *)aEventInfo;
+				RSat::TNetworkSearchModeChangeEventV6&     networkSearchV6     = (*networkSearchV6Pckg)();
+
+				if (networkSearchV6.iNetworkSearchMode  != DSATTSY_NETWORK_SEARCH_MODE1)
+					{
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+					}
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+	
+		case RSat::KBrowsingStatusChange:
+			// Expect TBrowsingStatusEventV6
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TBrowsingStatusEventV6Pckg* browsingStatusEventV6Pckg = (RSat::TBrowsingStatusEventV6Pckg *)aEventInfo;
+				RSat::TBrowsingStatusEventV6&     browsingStatusEventV6     = (*browsingStatusEventV6Pckg)();
+
+				if (browsingStatusEventV6.iBrowserStatus  != DSATTSY_BROWSING_STATUS1)
+					{
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+					}
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+		
+		case RSat::KFramesInformationChange:
+			// Expect TFramesInformationChangeV6
+			if (!eventBaseV2.iDataAvailable)
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			else
+				{
+				RSat::TFramesInformationChangedEventV6Pckg* framesInfoChangedEventV6Pckg = (RSat::TFramesInformationChangedEventV6Pckg *)aEventInfo;
+				RSat::TFramesInformationChangedEventV6&     framesInfoChangedEventV6     = (*framesInfoChangedEventV6Pckg)();
+
+				if ((framesInfoChangedEventV6.iFramesInformation.iFrameId  != DSATTSY_FRAMES_INFORMATION_FRAMEID )
+				 || (framesInfoChangedEventV6.iFramesInformation.iFrameList != DSATTSY_FRAMES_INFORMATION_FRAME_LIST ))
+					{
+					ReqCompleted(aTsyReqHandle, KErrCorrupt);
+					}
+				else
+					ReqCompleted(aTsyReqHandle, KErrNone);
+				}
+			break;
+					
+		default:
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+		}
+
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::EventDownloadCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::EventDownloadCancel called"));
+
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+
+	iEventDownload = 0;
+
+	return KErrNone;
+	}
+
+
+TInt CSatDSatTsy::NotifyDisplayTextPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyDisplayTextPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayTextPCmd called"));
+		RSat::TDisplayTextV1Pckg* aPCmdPckg = (RSat::TDisplayTextV1Pckg*)aPCmd;
+		RSat::TDisplayTextV1& displayTextV1 = (*aPCmdPckg)();
+		
+		displayTextV1.SetPCmdNumber(DSATTSY_DISPLAY_TEXT_NUMBER);
+		displayTextV1.iPriority				=DSATTSY_TEXT_PRIORITY;
+		displayTextV1.iClearScreenTrigger	=DSATTSY_CLEAR_SCREEN_TRIGGER;
+		displayTextV1.iText					=DSATTSY_TEXT_TO_DISPLAY;
+		displayTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
+		displayTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
+		displayTextV1.iImmediateRsp			=DSATTSY_IMMEDIATE_RSP;
+
+		if ((displayTextV1.ExtensionId() == RSat::KSatV2) ||
+			(displayTextV1.ExtensionId() == RSat::KSatV5) || (displayTextV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TDisplayTextV2Pckg* aV2PCmdPckg = (RSat::TDisplayTextV2Pckg*)aPCmd;
+			RSat::TDisplayTextV2&   displayTextV2 = (*aV2PCmdPckg)();
+
+			displayTextV2.iDuration.iTimeUnit=DSATTSY_TIME_UNIT;
+			displayTextV2.iDuration.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
+			}
+			
+		if ((displayTextV1.ExtensionId() == RSat::KSatV5) || (displayTextV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TDisplayTextV5Pckg* aV5PCmdPckg = (RSat::TDisplayTextV5Pckg*)aPCmd;
+			RSat::TDisplayTextV5&   displayTextV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			displayTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			displayTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+		
+		if (displayTextV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TDisplayTextV6Pckg* displayTextV6PCmdPckg = (RSat::TDisplayTextV6Pckg*)aPCmd;
+			RSat::TDisplayTextV6&   displayTextV6 = (*displayTextV6PCmdPckg)();
+			
+			displayTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}	
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+		
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyDisplayTextPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayTextPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyDisplayTextPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetInkeyPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyGetInkeyPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyGetInkeyPCmd called"));
+		RSat::TGetInkeyV1Pckg* aPCmdPckg = (RSat::TGetInkeyV1Pckg*)aPCmd;
+		RSat::TGetInkeyV1& getInkeyV1 = (*aPCmdPckg)();
+
+		getInkeyV1.SetPCmdNumber(DSATTSY_GET_INKEY_NUMBER);
+		
+		getInkeyV1.iRspFormat			=DSATTSY_USER_RSP_FORMAT;
+		getInkeyV1.iText				=DSATTSY_TEXT_TO_DISPLAY;
+		getInkeyV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
+		getInkeyV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
+		getInkeyV1.iHelp				=DSATTSY_HELP;
+
+		if ((getInkeyV1.ExtensionId() == RSat::KSatV2) ||
+			(getInkeyV1.ExtensionId() == RSat::KSatV5) || 
+			(getInkeyV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TGetInkeyV2Pckg* aV2PCmdPckg = (RSat::TGetInkeyV2Pckg*)aPCmd;
+			RSat::TGetInkeyV2&     getInkeyV2  = (*aV2PCmdPckg)();
+
+			getInkeyV2.iDuration.iTimeUnit=DSATTSY_TIME_UNIT;
+			getInkeyV2.iDuration.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
+			getInkeyV2.iMode=DSATTSY_GET_INKEY_RSP_MODE;
+			}
+			
+		if ((getInkeyV1.ExtensionId() == RSat::KSatV5) || 
+			(getInkeyV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TGetInkeyV5Pckg* aV5PCmdPckg = (RSat::TGetInkeyV5Pckg*)aPCmd;
+			RSat::TGetInkeyV5&   getInkeyV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			getInkeyV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			getInkeyV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);			
+			}
+
+		if (getInkeyV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TGetInkeyV6Pckg* getInkeyV6PCmdPckg = (RSat::TGetInkeyV6Pckg*)aPCmd;
+			RSat::TGetInkeyV6&   getInkeyV6 = (*getInkeyV6PCmdPckg)();
+			
+			getInkeyV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;	
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+		
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetInkeyPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyGetInkeyPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyGetInkeyPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetInputPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyGetInputPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyGetInputPCmd called"));
+		RSat::TGetInputV1Pckg* aPCmdPckg = (RSat::TGetInputV1Pckg*)aPCmd;
+		RSat::TGetInputV1& getInputV1 = (*aPCmdPckg)();
+
+		getInputV1.SetPCmdNumber(DSATTSY_GET_INPUT_NUMBER);
+		
+		getInputV1.iInputDisplayOption		=DSATTSY_INPUT_DISPLAY_OPTION;
+		getInputV1.iRspFormat				=DSATTSY_GET_INPUT_RSP_FORMAT;
+		getInputV1.iText					=DSATTSY_TEXT_TO_DISPLAY;
+		getInputV1.iRspLength.iMinRspLength	=DSATTSY_MIN_RSP_LENGTH;
+		getInputV1.iRspLength.iMaxRspLength	=DSATTSY_MAX_RSP_LENGTH;
+		getInputV1.iDefaultText				=DSATTSY_DEFAULT_TEXT;
+		getInputV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
+		getInputV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
+		getInputV1.iHelp					=DSATTSY_HELP;
+
+		if ((getInputV1.ExtensionId() == RSat::KSatV5) ||
+			(getInputV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TGetInputV5Pckg* aV5PCmdPckg = (RSat::TGetInputV5Pckg*)aPCmd;
+			RSat::TGetInputV5&   getInputV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			getInputV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			getInputV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (getInputV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TGetInputV6Pckg* getInputV6PCmdPckg = (RSat::TGetInputV6Pckg*)aPCmd;
+			RSat::TGetInputV6&   getInputV6 = (*getInputV6PCmdPckg)();
+			
+			getInputV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::NotifyGetInputPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyGetInputPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyGetInputPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPlayTonePCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyPlayTonePCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyPlayTonePCmd called"));
+		RSat::TPlayToneV1Pckg* aPCmdPckg = (RSat::TPlayToneV1Pckg*)aPCmd;
+		RSat::TPlayToneV1& playToneV1 = (*aPCmdPckg)();
+		
+		playToneV1.SetPCmdNumber(DSATTSY_PLAY_TONE_NUMBER);
+
+		playToneV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
+		playToneV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
+		playToneV1.iTone					=DSATTSY_TONE;
+		playToneV1.iDuration.iTimeUnit		=DSATTSY_TIME_UNIT;
+		playToneV1.iDuration.iNumOfUnits	=DSATTSY_NUM_OF_UNITS;
+
+		if	((playToneV1.ExtensionId() == RSat::KSatV2) ||
+			(playToneV1.ExtensionId() == RSat::KSatV5) || (playToneV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TPlayToneV2Pckg* aV2PCmdPckg = (RSat::TPlayToneV2Pckg*)aPCmd;
+			RSat::TPlayToneV2& playToneV2 = (*aV2PCmdPckg)();
+
+			playToneV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+			playToneV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
+			}
+			
+		if ((playToneV1.ExtensionId() == RSat::KSatV5) ||
+		   (playToneV1.ExtensionId() == RSat::KSatV6))	
+			{
+			RSat::TPlayToneV5Pckg* aV5PCmdPckg = (RSat::TPlayToneV5Pckg*)aPCmd;
+			RSat::TPlayToneV5&   playToneV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			playToneV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			playToneV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);			
+			}
+
+		if (playToneV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TPlayToneV6Pckg* playToneV6PCmdPckg = (RSat::TPlayToneV6Pckg*)aPCmd;
+			RSat::TPlayToneV6&   playToneV6 = (*playToneV6PCmdPckg)();
+			
+			playToneV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
+			playToneV6.iTone=DSATTSY_TONEV6;			
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPlayTonePCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyPlayTonePCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyPlayTonePCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySetUpMenuPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	RSat::TItem item1, item2, item3, item4;
+	TUint action1=0x01, action2=0x02, action3=0x03, action4=0x04;
+	TUint iconId1=0x01, iconId2=0x02, iconId3=0x03, iconId4=0x04;
+	
+	RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3, textAttribute4;
+
+	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpMenuPCmd called"));
+	RSat::TSetUpMenuV1Pckg* aPCmdPckg = (RSat::TSetUpMenuV1Pckg*)aPCmd;
+	RSat::TSetUpMenuV1& setUpMenuV1 = (*aPCmdPckg)();
+
+	item1.iItemId=0x01;
+	item1.iItemString=DSATTSY_ITEM1;
+	item2.iItemId=0x02;
+	item2.iItemString=DSATTSY_ITEM2;
+	item3.iItemId=0x03;
+	item3.iItemString=DSATTSY_ITEM3;
+	item4.iItemId=0x04;	
+	item4.iItemString=DSATTSY_ITEM4;
+	
+	textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+	const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+	textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+	
+	textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
+	const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
+	textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+	
+	textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
+	const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
+	textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+	
+	textAttribute4.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS4;
+	const TUint8 textAttributeData4[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA4;
+	textAttribute4.iTextAttributeData.Append(textAttributeData4, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+	setUpMenuV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
+	setUpMenuV1.iAlphaId.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
+	setUpMenuV1.iHelp				=DSATTSY_HELP;
+	setUpMenuV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
+	setUpMenuV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
+	setUpMenuV1.iIconListQualifier	=DSATTSY_ICON_QUALIFIER2;
+
+	setUpMenuV1.SetPCmdNumber(DSATTSY_SET_UP_MENU_NUMBER);
+
+	if(	(setUpMenuV1.ExtensionId() == RSat::KSatV2) ||
+		(setUpMenuV1.ExtensionId() == RSat::KSatV5))
+		{
+		RSat::TSetUpMenuV2Pckg* aV2PCmdPckg = (RSat::TSetUpMenuV2Pckg*)aPCmd;
+		RSat::TSetUpMenuV2& setUpMenuV2 = (*aV2PCmdPckg)();
+
+		setUpMenuV2.iPreference=DSATTSY_SELECTION_PREFERENCE;
+		}
+
+	if(!iNotifySetUpMenuPCmd++)
+		{
+		switch (iNotifySetUpMenuTestNumber)
+			{
+		case 0:
+			setUpMenuV1.AddItem(item1);
+			setUpMenuV1.AddItem(item2);
+			setUpMenuV1.AddItem(item3);
+
+			iNotifySetUpMenuTestNumber ++;
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			
+			break;
+		case 1:
+			setUpMenuV1.AddItem(item1, action1);
+			setUpMenuV1.AddItem(item2, action2);
+			setUpMenuV1.AddItem(item3, action3);
+
+			iNotifySetUpMenuTestNumber ++;
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			
+			break;		
+		case 2:
+			setUpMenuV1.AddItemIcon(item1, iconId1);
+			setUpMenuV1.AddItemIcon(item2, iconId2);
+			setUpMenuV1.AddItemIcon(item3, iconId3);
+
+			iNotifySetUpMenuTestNumber ++;
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			
+			break;
+		case 3:
+			setUpMenuV1.AddItem(item1, action1, iconId1);
+			setUpMenuV1.AddItem(item2, action2, iconId2);
+			setUpMenuV1.AddItem(item3, action3, iconId3);
+			setUpMenuV1.AddItem(item4);
+			
+			iNotifySetUpMenuTestNumber ++;
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			
+			break;
+		case 4:
+			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
+				{
+				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
+				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
+				
+				setUpMenuV5.AddItem(item1, textAttribute1);
+				setUpMenuV5.AddItem(item2, textAttribute2);
+				setUpMenuV5.AddItem(item3, textAttribute3);
+				setUpMenuV5.AddItem(item4, textAttribute4);
+				
+				setUpMenuV5.iTextAttribute.iStatus = textAttribute1.iStatus;
+				setUpMenuV5.iTextAttribute.iTextAttributeData = textAttribute1.iTextAttributeData;
+				
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrNone);				
+				}
+			else
+				{
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}
+				
+			break;
+		case 5:
+			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
+				{
+				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
+				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
+				
+				setUpMenuV5.AddItem(item1, textAttribute1, action1);
+				setUpMenuV5.AddItem(item2, textAttribute2, action2);
+				setUpMenuV5.AddItem(item3, textAttribute3, action3);
+				setUpMenuV5.AddItem(item4, textAttribute4, action4);
+				
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrNone);				
+				}
+			else
+				{
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}
+				
+			break;		
+		case 6:
+			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
+				{
+				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
+				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
+
+				setUpMenuV5.AddItemIcon(item1, textAttribute1, iconId1);
+				setUpMenuV5.AddItemIcon(item2, textAttribute2, iconId2);
+				setUpMenuV5.AddItemIcon(item3, textAttribute3, iconId3);
+				setUpMenuV5.AddItemIcon(item4, textAttribute4, iconId4);
+				
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrNone);				
+				}
+			else
+				{
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}
+					
+			break;
+		case 7:
+			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
+				{
+				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
+				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
+				
+				setUpMenuV5.AddItem(item1, textAttribute1, action1, iconId1);
+				setUpMenuV5.AddItem(item2, textAttribute2, action2, iconId2);
+				setUpMenuV5.AddItem(item3, textAttribute3, action3, iconId3);
+				setUpMenuV5.AddItem(item4, textAttribute4, action4, iconId4);
+				
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrNone);				
+				}
+			else
+				{
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}
+			break;
+		case 8:
+			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
+				{
+				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
+				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
+				
+				setUpMenuV5.AddItem(item1);
+				setUpMenuV5.AddItem(item2);
+				setUpMenuV5.AddItem(item3);
+				setUpMenuV5.AddItem(item4);
+				
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrNone);				
+				}
+			else
+				{
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}			
+			break;
+		case 9:
+			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
+				{
+				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
+				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
+				
+				setUpMenuV5.AddItem(item1, action1);
+				setUpMenuV5.AddItem(item2, action2);
+				setUpMenuV5.AddItem(item3, action3);
+				setUpMenuV5.AddItem(item4, action4);
+				
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrNone);				
+				}
+			else
+				{
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}			
+			break;
+		case 10:
+			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
+				{
+				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
+				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
+				
+				setUpMenuV1.AddItemIcon(item1, iconId1);
+				setUpMenuV1.AddItemIcon(item2, iconId2);
+				setUpMenuV1.AddItemIcon(item3, iconId3);
+				setUpMenuV1.AddItemIcon(item4, iconId4);
+				
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrNone);				
+				}
+			else
+				{
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}			
+			break;
+		case 11:
+			if(setUpMenuV1.ExtensionId() == RSat::KSatV5)
+				{
+				RSat::TSetUpMenuV5Pckg* aV5PCmdPckg = (RSat::TSetUpMenuV5Pckg*)aPCmd;
+				RSat::TSetUpMenuV5& setUpMenuV5 = (*aV5PCmdPckg)();		
+				
+				setUpMenuV5.AddItem(item1, action1, iconId1);
+				setUpMenuV5.AddItem(item2, action2, iconId2);
+				setUpMenuV5.AddItem(item3, action3, iconId3);
+				setUpMenuV5.AddItem(item4, action4, iconId4);
+				
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrNone);				
+				}
+			else
+				{
+				iNotifySetUpMenuTestNumber ++;
+				ReqCompleted(aTsyReqHandle,KErrCorrupt);
+				}			
+			break;								
+		case 12:
+			iNotifySetUpMenuTestNumber ++;
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;		
+		default:
+			break;
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySetUpMenuPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpMenuPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySetUpMenuPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySelectItemPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySelectItemPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySelectItemPCmd called"));
+		RSat::TSelectItemV1Pckg* aPCmdPckg = (RSat::TSelectItemV1Pckg*)aPCmd;
+		RSat::TSelectItemV1& selectItemV1 = (*aPCmdPckg)();
+		
+		TUint action1=0x01, action2=0x02, action3=0x03;
+		RSat::TItem item1, item2, item3;
+		TUint iconId1=0x01, iconId2=0x02, iconId3=0x03;
+
+		item1.iItemId=0x01;
+		item1.iItemString=DSATTSY_ITEM1;
+		item2.iItemId=0x02;
+		item2.iItemString=DSATTSY_ITEM2;
+		item3.iItemId=0x03;
+		item3.iItemString=DSATTSY_ITEM3;
+
+		selectItemV1.SetPCmdNumber(DSATTSY_SELECT_ITEM_NUMBER);
+
+		selectItemV1.iPresentationType	=DSATTSY_PRESENTATION_TYPE;
+		selectItemV1.iHelp				=DSATTSY_HELP;
+		selectItemV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
+		selectItemV1.iAlphaId.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
+		selectItemV1.iDefaultItemId		=DSATTSY_DEFAULT_ITEM;
+		selectItemV1.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+		selectItemV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
+		selectItemV1.iIconListQualifier	=DSATTSY_ICON_QUALIFIER2;
+		
+		if ((selectItemV1.ExtensionId() == RSat::KSatV1) ||
+			(selectItemV1.ExtensionId() == RSat::KSatV2))
+			{
+			selectItemV1.AddItem(item1, action1, iconId1);
+			selectItemV1.AddItem(item2, action2, iconId2);
+			selectItemV1.AddItem(item3, action3, iconId3);
+			}
+	
+		if ((selectItemV1.ExtensionId() == RSat::KSatV2) ||
+			(selectItemV1.ExtensionId() == RSat::KSatV5) || (selectItemV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TSelectItemV2Pckg* aV2PCmdPckg = (RSat::TSelectItemV2Pckg*)aPCmd;
+			RSat::TSelectItemV2& selectItemV2 = (*aV2PCmdPckg)();
+
+			selectItemV2.iPreference=DSATTSY_SELECTION_PREFERENCE;
+			}
+
+		if ((selectItemV1.ExtensionId() == RSat::KSatV5) ||
+			(selectItemV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TSelectItemV5Pckg* aV5PCmdPckg = (RSat::TSelectItemV5Pckg*)aPCmd;
+			RSat::TSelectItemV5& selectItemV5 = (*aV5PCmdPckg)();
+			
+			RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3;
+			
+			textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+	
+			textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
+			const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
+			textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+	
+			textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
+			const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
+			textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			
+			selectItemV5.AddItem(item1, textAttribute1, action1, iconId1);
+			selectItemV5.AddItem(item2, textAttribute2, action2, iconId2);
+			selectItemV5.AddItem(item3, textAttribute3, action3, iconId3);
+			
+			selectItemV5.iTextAttribute = textAttribute1;			
+			}
+
+		if (selectItemV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TSelectItemV6Pckg* selectItemV6PCmdPckg = (RSat::TSelectItemV6Pckg*)aPCmd;
+			RSat::TSelectItemV6& selectItemV6 = (*selectItemV6PCmdPckg)();
+			
+			selectItemV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySelectItemPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySelectItemPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySelectItemPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendSmPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySendSmPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySendSmPCmd called"));
+		RSat::TSendSmV1Pckg* aPCmdPckg = (RSat::TSendSmV1Pckg*)aPCmd;
+		RSat::TSendSmV1& sendSmV1 = (*aPCmdPckg)();
+
+		sendSmV1.SetPCmdNumber(DSATTSY_SEND_SM_NUMBER);
+		
+		sendSmV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
+		sendSmV1.iAlphaId.iStatus		=DSATTSY_ALPHA_ID1_STATUS;
+		sendSmV1.iAddress.iTypeOfNumber	=DSATTSY_TON;
+		sendSmV1.iAddress.iNumberPlan	=DSATTSY_NPI;
+		sendSmV1.iAddress.iTelNumber	=DSATTSY_TEL_NUMBER;
+		sendSmV1.iSmsTpdu				=DSATTSY_SMS_TPDU; 
+		sendSmV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
+		sendSmV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
+
+		if ((sendSmV1.ExtensionId() == RSat::KSatV5)  ||
+			(sendSmV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TSendSmV5Pckg* aV5PCmdPckg = (RSat::TSendSmV5Pckg*)aPCmd;
+			RSat::TSendSmV5&   sendSmV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			sendSmV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			sendSmV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}		
+
+		if (sendSmV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TSendSmV6Pckg* sendSmV6PCmdPckg = (RSat::TSendSmV6Pckg*)aPCmd;
+			RSat::TSendSmV6&   sendSmV6 = (*sendSmV6PCmdPckg)();
+			
+			sendSmV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendSmPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySendSmPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySendSmPCmd=0;
+	return KErrNone;
+	}
+
+
+TInt CSatDSatTsy::SendMessageNoLogging(const TTsyReqHandle aTsyReqHandle, const TDesC8* aMsg, TUint16* aMsgRef)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::SendMessageNoLogging called"));
+	RSat::TSatSmsV1Pckg* aMsgPckg = (RSat::TSatSmsV1Pckg*)aMsg;
+	RSat::TSatSmsV1& msgV1 = (*aMsgPckg)();
+
+	*aMsgRef=DSATTSY_SMS_REF;
+
+	if ((msgV1.iServiceCenter.iNumberPlan!=DSATTSY_NPI)
+		||(msgV1.iServiceCenter.iTypeOfNumber!=DSATTSY_TON)
+		||(msgV1.iServiceCenter.iTelNumber!=DSATTSY_TEL_NUMBER)
+		||(msgV1.iBuf!=DSATTSY_SMS_TPDU))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		if(!iSendMessageNoLogging++)
+			ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::SendMessageNoLoggingCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::SendMessageNoLoggingCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendSsPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySendSsPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySendSsPCmd called"));
+		RSat::TSendSsV1Pckg* aPCmdPckg = (RSat::TSendSsV1Pckg*)aPCmd;
+		RSat::TSendSsV1& sendSsV1 = (*aPCmdPckg)();
+
+		sendSsV1.SetPCmdNumber(DSATTSY_SEND_SS_NUMBER);
+		
+		sendSsV1.iAlphaId.iAlphaId			=DSATTSY_ALPHA_ID1;
+		sendSsV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
+		sendSsV1.iSsString.iTypeOfNumber	=DSATTSY_TON;
+		sendSsV1.iSsString.iNumberPlan		=DSATTSY_NPI;
+		sendSsV1.iSsString.iSsString		=DSATTSY_SS_STRING;
+		sendSsV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
+		sendSsV1.iIconId.iQualifier			=DSATTSY_ICON_QUALIFIER1;
+
+		if (sendSsV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TSendSsV6Pckg* sendSsV6PCmdPckg = (RSat::TSendSsV6Pckg*)aPCmd;
+			RSat::TSendSsV6&   sendSsV6 = (*sendSsV6PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			sendSsV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			sendSsV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendSsPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySendSsPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySendSsPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendUssdPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySendUssdPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySendUssdPCmd called"));
+		RSat::TSendUssdV1Pckg* aPCmdPckg = (RSat::TSendUssdV1Pckg*)aPCmd;
+		RSat::TSendUssdV1& sendUssdV1 = (*aPCmdPckg)();
+		
+		sendUssdV1.SetPCmdNumber(DSATTSY_SEND_USSD_NUMBER);
+
+		sendUssdV1.iAlphaId.iAlphaId		=DSATTSY_ALPHA_ID1;
+		sendUssdV1.iAlphaId.iStatus			=DSATTSY_ALPHA_ID1_STATUS;
+		sendUssdV1.iUssdString.iDcs			=DSATTSY_DCS;
+		sendUssdV1.iUssdString.iUssdString	=DSATTSY_USSD_STRING;
+		sendUssdV1.iIconId.iIdentifier		=DSATTSY_ICON_ID1;
+		sendUssdV1.iIconId.iQualifier		=DSATTSY_ICON_QUALIFIER1;
+
+		if (sendUssdV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TSendUssdV6Pckg* sendUssdV6PCmdPckg = (RSat::TSendUssdV6Pckg*)aPCmd;
+			RSat::TSendUssdV6&   sendUssdV6 = (*sendUssdV6PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			sendUssdV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			sendUssdV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendUssdPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySendUssdPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySendUssdPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySetUpCallPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySetUpCallPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySetUpCallPCmd called"));
+		RSat::TSetUpCallV1Pckg* aPCmdPckg = (RSat::TSetUpCallV1Pckg*)aPCmd;
+		RSat::TSetUpCallV1& setUpCallV1 = (*aPCmdPckg)();
+
+		setUpCallV1.SetPCmdNumber(DSATTSY_SET_UP_CALL_NUMBER);
+		
+		setUpCallV1.iType								=DSATTSY_SET_UP_CALL_TYPE;
+		setUpCallV1.iAlphaIdConfirmationPhase.iAlphaId	=DSATTSY_ALPHA_ID1;
+		setUpCallV1.iAlphaIdConfirmationPhase.iStatus	=DSATTSY_ALPHA_ID1_STATUS;
+		setUpCallV1.iIconIdConfirmationPhase.iIdentifier=DSATTSY_ICON_ID1;
+		setUpCallV1.iIconIdConfirmationPhase.iQualifier	=DSATTSY_ICON_QUALIFIER1;
+		setUpCallV1.iAddress.iTypeOfNumber				=DSATTSY_TON;
+		setUpCallV1.iAddress.iNumberPlan				=DSATTSY_NPI;
+		setUpCallV1.iAddress.iTelNumber					=DSATTSY_TEL_NUMBER;
+		setUpCallV1.iCapabilityConfigParams				=DSATTSY_CCP1;
+		setUpCallV1.iSubAddress							=DSATTSY_SUBADDRESS;
+		setUpCallV1.iDuration.iTimeUnit					=DSATTSY_TIME_UNIT;
+		setUpCallV1.iDuration.iNumOfUnits				=DSATTSY_NUM_OF_UNITS;
+		setUpCallV1.iAlphaIdCallSetUpPhase.iAlphaId		=DSATTSY_ALPHA_ID2;		
+		setUpCallV1.iAlphaIdCallSetUpPhase.iStatus		=DSATTSY_ALPHA_ID2_STATUS;		
+		setUpCallV1.iIconIdCallSetUpPhase.iIdentifier	=DSATTSY_ICON_ID2;
+		setUpCallV1.iIconIdCallSetUpPhase.iQualifier	=DSATTSY_ICON_QUALIFIER2;
+
+		if ((setUpCallV1.ExtensionId() == RSat::KSatV5)  ||
+		   (setUpCallV1.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TSetUpCallV5Pckg* aV5PCmdPckg = (RSat::TSetUpCallV5Pckg*)aPCmd;
+			RSat::TSetUpCallV5&   setUpCallV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			setUpCallV5.iTextAttributeConfirmationPhase.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			setUpCallV5.iTextAttributeConfirmationPhase.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			setUpCallV5.iTextAttributeCallSetUpPhase.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			setUpCallV5.iTextAttributeCallSetUpPhase.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (setUpCallV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TSetUpCallV6Pckg* setUpCallV6PCmdPckg = (RSat::TSetUpCallV6Pckg*)aPCmd;
+			RSat::TSetUpCallV6&   setUpCallV6 = (*setUpCallV6PCmdPckg)();
+			
+			setUpCallV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1 ;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::NotifySetUpCallPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpCallPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySetUpCallPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyRefreshPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyRefreshPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshPCmd called"));
+		RSat::TRefreshV1Pckg* aPCmdPckg = (RSat::TRefreshV1Pckg*)aPCmd;
+		RSat::TRefreshV1& refreshV1 = (*aPCmdPckg)();
+		
+		refreshV1.SetPCmdNumber(DSATTSY_REFRESH_NUMBER);
+
+		refreshV1.iType	= DSATTSY_REFRESH_TYPE;
+ 		refreshV1.iFileList.Append(DSATTSY_REFRESH_ADN_EF);
+ 		refreshV1.iFileList.Append(DSATTSY_REFRESH_FDN_EF);
+
+
+		if (refreshV1.ExtensionId()==RSat::KSatV2)
+			{
+			RSat::TRefreshV2Pckg* aV2PCmdPckg = (RSat::TRefreshV2Pckg*)aPCmd;
+			RSat::TRefreshV2& refreshV2 = (*aV2PCmdPckg)();
+			
+			refreshV2.iAid=DSATTSY_AID;
+			}
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::NotifyRefreshPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyRefreshPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySetUpEventListPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySetUpEventListPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySetUpEventListPCmd called"));
+		RSat::TSetUpEventListV1Pckg* aPCmdPckg = (RSat::TSetUpEventListV1Pckg*)aPCmd;
+		RSat::TSetUpEventListV1& setUpEventListV1 = (*aPCmdPckg)();
+		
+		setUpEventListV1.SetPCmdNumber(DSATTSY_SET_UP_EVENT_LIST_NUMBER);
+
+		setUpEventListV1.iType		=DSATTSY_SET_UP_EVENT_LIST_TYPE;
+		setUpEventListV1.iEvents	=DSATTSY_EVENTS;
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySetUpEventListPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpEventListPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySetUpEventListPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySetUpIdleModeTextPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySetUpIdleModeTextPCmd++)
+		{
+ 		// First Request: set idle text mode to max length Unicode string
+ 		if (iSetUpIdleModeTextCommandCount++ == 0)
+ 			{		
+			LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmd called"));
+			RSat::TSetUpIdleModeTextV1Pckg* aPCmdPckg = (RSat::TSetUpIdleModeTextV1Pckg*)aPCmd;
+			RSat::TSetUpIdleModeTextV1& setUpIdleModeTextV1 = (*aPCmdPckg)();
+			
+			setUpIdleModeTextV1.SetPCmdNumber(DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
+
+			setUpIdleModeTextV1.iType				=DSATTSY_IDLE_MODE_TXT_TYPE;
+			setUpIdleModeTextV1.iText				=DSATTSY_IDLE_MODE_TEXT;
+			setUpIdleModeTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
+			setUpIdleModeTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
+
+			setUpIdleModeTextV1.iCodingScheme		=DSATTSY_TEXT_ENCODING_SCHEME;
+			
+			if ((setUpIdleModeTextV1.ExtensionId() == RSat::KSatV5)||
+ 			   (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6))
+				{
+				RSat::TSetUpIdleModeTextV5Pckg* aV5PCmdPckg = (RSat::TSetUpIdleModeTextV5Pckg*)aPCmd;
+				RSat::TSetUpIdleModeTextV5& setUpIdleModeTextV5 = (*aV5PCmdPckg)();
+				
+				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+				
+				setUpIdleModeTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+				setUpIdleModeTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+				}			
+
+			if (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6)
+				{
+				RSat::TSetUpIdleModeTextV6Pckg* setUpIdleModeTextV6PCmdPckg = (RSat::TSetUpIdleModeTextV6Pckg*)aPCmd;
+				RSat::TSetUpIdleModeTextV6& setUpIdleModeTextV6 = (*setUpIdleModeTextV6PCmdPckg)();
+				
+				setUpIdleModeTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+				}
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		else // second request: set idle text mode to max length 8-bit string
+			{
+			// reset command count
+			iSetUpIdleModeTextCommandCount = 0;
+			
+			LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmd called"));
+			RSat::TSetUpIdleModeTextV1Pckg* aPCmdPckg = (RSat::TSetUpIdleModeTextV1Pckg*)aPCmd;
+			RSat::TSetUpIdleModeTextV1& setUpIdleModeTextV1 = (*aPCmdPckg)();
+			
+			setUpIdleModeTextV1.SetPCmdNumber(DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
+   
+			setUpIdleModeTextV1.iType				=DSATTSY_IDLE_MODE_TXT_TYPE;
+			CnvUtfConverter::ConvertToUnicodeFromUtf8(setUpIdleModeTextV1.iText,DSATTSY_IDLE_MODE_TEXT_8BIT);
+ 			setUpIdleModeTextV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
+ 			setUpIdleModeTextV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;
+ 			
+ 			setUpIdleModeTextV1.iCodingScheme		=DSATTSY_TEXT_ENCODING_SCHEME_8;
+ 			
+ 			if ((setUpIdleModeTextV1.ExtensionId() == RSat::KSatV5)  ||
+ 			   (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6))
+				{
+				RSat::TSetUpIdleModeTextV5Pckg* aV5PCmdPckg = (RSat::TSetUpIdleModeTextV5Pckg*)aPCmd;
+				RSat::TSetUpIdleModeTextV5& setUpIdleModeTextV5 = (*aV5PCmdPckg)();
+				
+				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+				
+				setUpIdleModeTextV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+				setUpIdleModeTextV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+				}
+			
+			if (setUpIdleModeTextV1.ExtensionId() == RSat::KSatV6)
+				{
+				RSat::TSetUpIdleModeTextV6Pckg* setUpIdleModeTextV6PCmdPckg = (RSat::TSetUpIdleModeTextV6Pckg*)aPCmd;
+				RSat::TSetUpIdleModeTextV6& setUpIdleModeTextV6 = (*setUpIdleModeTextV6PCmdPckg)();
+				
+				setUpIdleModeTextV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+				}
+					
+ 			ReqCompleted(aTsyReqHandle,KErrNone);		
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySetUpIdleModeTextPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySetUpIdleModeTextPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySetUpIdleModeTextPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendDtmfPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySendDtmfPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySendDtmfPCmd called"));
+		RSat::TSendDtmfV1Pckg* aPCmdPckg = (RSat::TSendDtmfV1Pckg*)aPCmd;
+		RSat::TSendDtmfV1& sendDtmfV1 = (*aPCmdPckg)();
+		
+		sendDtmfV1.SetPCmdNumber(DSATTSY_SEND_DTMF_NUMBER);
+
+		sendDtmfV1.iAlphaId.iAlphaId	=DSATTSY_ALPHA_ID1;
+		sendDtmfV1.iAlphaId.iStatus		=DSATTSY_ALPHA_ID1_STATUS;
+		sendDtmfV1.iDtmfString			=DSATTSY_DTMF_STRING;
+		sendDtmfV1.iIconId.iIdentifier	=DSATTSY_ICON_ID1;
+		sendDtmfV1.iIconId.iQualifier	=DSATTSY_ICON_QUALIFIER1;	
+
+		if ((sendDtmfV1.ExtensionId() == RSat::KSatV5) ||
+		    (sendDtmfV1.ExtensionId() == RSat::KSatV6))	
+			{
+			RSat::TSendDtmfV5Pckg* aV5PCmdPckg = (RSat::TSendDtmfV5Pckg*)aPCmd;
+			RSat::TSendDtmfV5&   sendDtmfV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			sendDtmfV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			sendDtmfV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (sendDtmfV1.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TSendDtmfV6Pckg* sendDtmfV6PCmdPckg = (RSat::TSendDtmfV6Pckg*)aPCmd;
+			RSat::TSendDtmfV6&   sendDtmfV6 = (*sendDtmfV6PCmdPckg)();
+			
+			sendDtmfV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendDtmfPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySendDtmfPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySendDtmfPCmd=0;
+	return KErrNone;
+	}
+
+//
+// New Typhoon and Jetstream API
+//
+
+TInt CSatDSatTsy::UsatClientReadyIndication(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::UsatClientReadyIndication called"));
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPerformCardApduPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyPerformCardApduPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyPerformCardApduPCmd called"));
+		RSat::TPerformCardApduV2Pckg* aV2PCmdPckg = (RSat::TPerformCardApduV2Pckg*)aPCmd;
+		RSat::TPerformCardApduV2& performCardApduV2 = (*aV2PCmdPckg)();
+		
+		performCardApduV2.SetPCmdNumber(DSATTSY_PERFORM_CARD_APDU_NUMBER);
+
+		performCardApduV2.iDestination=DSATTSY_CARD_READER_1;
+		performCardApduV2.iCApdu.iCla=DSATTSY_CLA;
+		performCardApduV2.iCApdu.iIns=DSATTSY_INS;
+		performCardApduV2.iCApdu.iLc=DSATTSY_LC;
+		performCardApduV2.iCApdu.iLe=DSATTSY_LE;
+		performCardApduV2.iCApdu.iP1=DSATTSY_P1;
+		performCardApduV2.iCApdu.iP2=DSATTSY_P2;
+		performCardApduV2.iCApdu.iData=DSATTSY_CAPDU;
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPerformCardApduPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyPerformCardApduPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyPerformCardApduPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPowerOffCardPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyPowerOffCardPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOffCardPCmd called"));
+		RSat::TPowerOffCardV2Pckg* aV2PCmdPckg = (RSat::TPowerOffCardV2Pckg*)aPCmd;
+		RSat::TPowerOffCardV2& powerOffCardV2 = (*aV2PCmdPckg)();
+		
+		powerOffCardV2.SetPCmdNumber(DSATTSY_POWER_OFF_CARD_NUMBER);
+		powerOffCardV2.iDestination=DSATTSY_CARD_READER_1;
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPowerOffCardPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOffCardPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyPowerOffCardPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPowerOnCardPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyPowerOnCardPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOnCardPCmd called"));
+		RSat::TPowerOnCardV2Pckg* aV2PCmdPckg = (RSat::TPowerOnCardV2Pckg*)aPCmd;
+		RSat::TPowerOnCardV2& powerOnCardV2 = (*aV2PCmdPckg)();
+		
+		powerOnCardV2.SetPCmdNumber(DSATTSY_POWER_ON_CARD_NUMBER);
+		powerOnCardV2.iDestination=DSATTSY_CARD_READER_1;
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPowerOnCardPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyPowerOnCardPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyPowerOnCardPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetReaderStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyGetReaderStatusPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyGetReaderStatusPCmd called"));
+		RSat::TGetReaderStatusV2Pckg* aV2PCmdPckg = (RSat::TGetReaderStatusV2Pckg*)aPCmd;
+		RSat::TGetReaderStatusV2& getReaderStatusV2 = (*aV2PCmdPckg)();
+		
+		getReaderStatusV2.SetPCmdNumber(DSATTSY_GET_READER_STATUS_NUMBER);
+		getReaderStatusV2.iDestination=DSATTSY_CARD_READER_1;
+		getReaderStatusV2.iMode=DSATTSY_GET_READER_STATUS_MODE;
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetReaderStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyGetReaderStatusPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyGetReaderStatusPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyRunAtCommandPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyRunAtCommandPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyRunAtCommandPCmd called"));
+		RSat::TRunAtCommandV2Pckg* aV2PCmdPckg = (RSat::TRunAtCommandV2Pckg*)aPCmd;
+		RSat::TRunAtCommandV2& runAtCmdV2 = (*aV2PCmdPckg)();
+		
+		runAtCmdV2.SetPCmdNumber(DSATTSY_RUN_AT_COMMAND_NUMBER);
+		runAtCmdV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
+		runAtCmdV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
+		runAtCmdV2.iAtCommand=DSATTSY_AT_COMMAND;
+		runAtCmdV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+		runAtCmdV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
+		
+		if ((runAtCmdV2.ExtensionId() == RSat::KSatV5) ||
+		    (runAtCmdV2.ExtensionId() == RSat::KSatV6))	
+			{
+			RSat::TRunAtCommandV5Pckg* aV5PCmdPckg = (RSat::TRunAtCommandV5Pckg*)aPCmd;
+			RSat::TRunAtCommandV5&   runAtCmdV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			runAtCmdV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			runAtCmdV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (runAtCmdV2.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TRunAtCommandV6Pckg* runAtCmdV6PCmdPckg = (RSat::TRunAtCommandV6Pckg*)aPCmd;
+			RSat::TRunAtCommandV6&   runAtCmdV6 = (*runAtCmdV6PCmdPckg)();
+			
+			runAtCmdV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyRunAtCommandPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyRunAtCommandPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyRunAtCommandPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyLanguageNotificationPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyLanguageNotificationPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyLanguageNotificationPCmd called"));
+		RSat::TLanguageNotificationV2Pckg* aV2PCmdPckg = (RSat::TLanguageNotificationV2Pckg*)aPCmd;
+		RSat::TLanguageNotificationV2& languageNotificationV2 = (*aV2PCmdPckg)();
+		
+		languageNotificationV2.SetPCmdNumber(DSATTSY_LANGUAGE_NOTIFICATION_NUMBER);
+		languageNotificationV2.iNotificationType=DSATTSY_SPECIFIC_LANGUAGE;
+		languageNotificationV2.iLanguage=DSATTSY_FRENCH;
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyLanguageNotificationPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyLanguageNotificationPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyLanguageNotificationPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetProvisioningRefFile(const TTsyReqHandle aTsyReqHandle, const RSat::TProvisioningFileRef* aFileRef, TDes8* aFile)
+/**
+* GetProviosioningRefFile is called to ask the ICC to return a file name 
+* that corresponds to a given file reference.
+*
+* This test code can only return 2 files - it distinguishes between them based on
+* the length of the file reference passed. Any 1 byte ref will return file1, any
+* 128 byte ref will return file2. Any other length will return "not found".
+*/
+	{
+	if(!iGetProvisioningRefFile++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::GetProvisioningRefFile called"));
+
+		// We only understand 2 references (at the moment) - use the simple minded approach and select by length
+
+		TInt len = aFileRef->Length();
+
+		switch (len)
+			{
+		case 1:
+			*aFile = DSATTSY_FILE1;
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+
+		case 128:
+			*aFile = DSATTSY_FILE2;
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+
+		default:
+			ReqCompleted(aTsyReqHandle,KErrNotFound);
+			break;
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::GetProvisioningRefFileCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::GetProvisioningRefFileCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+
+	iGetProvisioningRefFile = 0;
+
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyLaunchBrowserPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyLaunchBrowserPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyLaunchBrowserPCmd called"));
+		RSat::TLaunchBrowserV2Pckg* aV2PCmdPckg = (RSat::TLaunchBrowserV2Pckg*)aPCmd;
+		RSat::TLaunchBrowserV2& launchBrowserV2 = (*aV2PCmdPckg)();
+		
+		launchBrowserV2.SetPCmdNumber(DSATTSY_LAUNCH_BROWSER_NUMBER);
+
+		launchBrowserV2.iBrowserSel			= DSATTSY_BROWSER_SELECTION_MODE;
+		launchBrowserV2.iBrowserId			= DSATTSY_BROWSER_ID;
+		launchBrowserV2.iUrl				= DSATTSY_URL;
+		launchBrowserV2.iBearerList			= DSATTSY_BEARER_LIST;
+		launchBrowserV2.iText				= DSATTSY_PROXY_NAME;
+		launchBrowserV2.iAlphaId.iStatus	= DSATTSY_ALPHA_ID1_STATUS;
+		launchBrowserV2.iAlphaId.iAlphaId	= DSATTSY_ALPHA_ID1;
+		launchBrowserV2.iIconId.iIdentifier	= DSATTSY_ICON_ID1;
+		launchBrowserV2.iIconId.iQualifier	= DSATTSY_ICON_QUALIFIER1;
+
+		if ((launchBrowserV2.ExtensionId() == RSat::KSatV5) || (launchBrowserV2.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TLaunchBrowserV5Pckg* aV5PCmdPckg = (RSat::TLaunchBrowserV5Pckg*)aPCmd;
+			RSat::TLaunchBrowserV5&   launchBrowserV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			launchBrowserV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			launchBrowserV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (launchBrowserV2.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TLaunchBrowserV6Pckg* launchBrowserV6PCmdPckg = (RSat::TLaunchBrowserV6Pckg*)aPCmd;
+			RSat::TLaunchBrowserV6&   launchBrowserV6 = (*launchBrowserV6PCmdPckg)();
+			
+			launchBrowserV6.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		RSat::TProvisioningFileRef	file;
+
+		switch(iNotifyLaunchBrowserCount++)
+			{
+		case 0:	// Return 1 file ref of 1 byte length
+			launchBrowserV2.ResetFileRef();
+			file = DSATTSY_FILE_REF_DATA_1;
+			launchBrowserV2.AddFileRef( file );
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+
+		case 1:	// Return 1 file ref of 128 byte length
+			launchBrowserV2.ResetFileRef();
+			file = DSATTSY_FILE_REF_DATA_128;
+			launchBrowserV2.AddFileRef( file );
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+
+		case 2:	// Return 2 files refs of 1 byte length (each)
+			launchBrowserV2.ResetFileRef();
+			file = DSATTSY_FILE_REF_DATA_1;
+			launchBrowserV2.AddFileRef( file );
+			launchBrowserV2.AddFileRef( file );
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+
+		case 3:	// Partial failure, try to add 2 file refs of 128 bytes each,
+				// Second add should fail with KErrOverflow as combined length
+				// is bigger than buffer 
+				// - actually returns 1 file ref of 128 bytes unless unexpected result from add
+			{
+				launchBrowserV2.ResetFileRef();
+				file = DSATTSY_FILE_REF_DATA_128;
+				launchBrowserV2.AddFileRef( file );
+				TInt status = launchBrowserV2.AddFileRef( file );	// Expect to fail on this one
+				if (status != KErrOverflow)
+					ReqCompleted(aTsyReqHandle, status);
+				else
+					ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+			break;
+
+		case 4:	 // Fall through to default case from case 4
+		default: // Return 2 file refs, 1st=128 bytes long, 2nd=1 byte long
+			iNotifyLaunchBrowserCount = 0;		// Reset selection count - next time through will use case 0
+
+			launchBrowserV2.ResetFileRef();
+			file = DSATTSY_FILE_REF_DATA_128;
+			launchBrowserV2.AddFileRef( file );
+			file = DSATTSY_FILE_REF_DATA_1;
+			launchBrowserV2.AddFileRef( file );
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyLaunchBrowserPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyLaunchBrowserPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyLaunchBrowserPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyOpenChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+/**
+* If this function is called with PCmd type of RSat::EAnyBearer then the code will
+* return a type of RSat::ECsBearer. Subsequent calls will return the sequence
+* RSat::EGprsBearer, RSat::ELocalLinksBearer, RSat::EPCmdTypeNotSet. The
+* sequence then restarts with RSat::ECsBearer.
+*/
+	{
+	if(!iNotifyOpenChannelPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyOpenChannelPCmd called"));
+		RSat::TOpenChannelBaseV2Pckg* aV2PCmdPckg = (RSat::TOpenChannelBaseV2Pckg*)aPCmd;
+		RSat::TOpenChannelBaseV2& openChannelBaseV2 = (*aV2PCmdPckg)();
+		
+		openChannelBaseV2.SetPCmdNumber(DSATTSY_OPEN_CHANNEL_NUMBER);
+
+		openChannelBaseV2.iLinkEst=DSATTSY_ON_DEMAND_ESTABLISHMENT;
+		openChannelBaseV2.iReconnectionMode=DSATTSY_AUTO_RECONNECTION;
+		openChannelBaseV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
+		openChannelBaseV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
+		openChannelBaseV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+		openChannelBaseV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
+		openChannelBaseV2.iBearer.iType=DSATTSY_CSD_BEARER_TYPE;
+		openChannelBaseV2.iBearer.iParams=DSATTSY_BEARER_PARAMS;
+		openChannelBaseV2.iBufferSize=DSATTSY_BUFFER_SIZE;
+		openChannelBaseV2.iSimMeInterface.iPrtNumber=DSATTSY_PORT_1;
+		openChannelBaseV2.iSimMeInterface.iTransportProto=DSATTSY_TCP_PROTO;
+		openChannelBaseV2.iDestinationAddress.iType=DSATTSY_IPV4_TYPE;
+		openChannelBaseV2.iDestinationAddress.iAddress=DSATTSY_ADDRESS;
+
+		switch (openChannelBaseV2.iPCmdType)
+			{
+		case RSat::EPCmdTypeNotSet:
+			ReqCompleted(aTsyReqHandle,KErrArgument);
+			break;
+		case RSat::ECsBearer:
+			{
+			RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
+			RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
+
+			openCsChannelV2.iAddress.iTypeOfNumber=DSATTSY_TON;
+			openCsChannelV2.iAddress.iNumberPlan=DSATTSY_NPI;
+			openCsChannelV2.iAddress.iTelNumber=DSATTSY_TEL_NUMBER;
+			openCsChannelV2.iSubAddress=DSATTSY_SUBADDRESS;
+			openCsChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
+			openCsChannelV2.iDuration1.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
+			openCsChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
+			openCsChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
+			openCsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
+			openCsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
+			openCsChannelV2.iUserLogin=DSATTSY_LOGIN;
+			openCsChannelV2.iUserPassword=DSATTSY_PASSWORD;
+
+			if ((openCsChannelV2.ExtensionId() == RSat::KSatV5)
+				|| (openCsChannelV2.ExtensionId() == RSat::KSatV6))
+				{
+				RSat::TOpenCsChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenCsChannelV5Pckg*)aPCmd;
+				RSat::TOpenCsChannelV5&   openCsChannelV5 = (*aV5PCmdPckg)();
+				
+				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+				
+				openCsChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+				openCsChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+				}
+		
+			if (openCsChannelV2.ExtensionId() == RSat::KSatV6)
+				{
+				RSat::TOpenCsChannelV6Pckg* csV6PCmdPckg = (RSat::TOpenCsChannelV6Pckg*)aPCmd;
+				RSat::TOpenCsChannelV6&   openCsChannelV6 = (*csV6PCmdPckg)();
+				
+				openCsChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
+				}
+				
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+			}
+		case RSat::EGprsBearer:
+			{
+			RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
+			RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
+			
+			openGprsChannelV2.iAccessName=DSATTSY_ACCESS_NAME;
+			openGprsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
+			openGprsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
+			
+			if ((openGprsChannelV2.ExtensionId() == RSat::KSatV4) 
+			|| (openGprsChannelV2.ExtensionId() == RSat::KSatV5)
+			|| (openGprsChannelV2.ExtensionId() == RSat::KSatV6))
+				{
+				RSat::TOpenGprsChannelV4Pckg* aV4GprsPCmdPckg = reinterpret_cast<RSat::TOpenGprsChannelV4Pckg*>(aPCmd);
+				RSat::TOpenGprsChannelV4& openGprsChannelV4 = (*aV4GprsPCmdPckg)();
+				
+				openGprsChannelV4.iUserLogin=DSATTSY_LOGIN;
+				openGprsChannelV4.iUserPassword=DSATTSY_PASSWORD;
+				}
+				
+			if ((openGprsChannelV2.ExtensionId() == RSat::KSatV5)
+			   || (openGprsChannelV2.ExtensionId() == RSat::KSatV6))
+				{
+				RSat::TOpenGprsChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenGprsChannelV5Pckg*)aPCmd;
+				RSat::TOpenGprsChannelV5&   openGprsChannelV5 = (*aV5PCmdPckg)();
+			
+				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+				openGprsChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+				openGprsChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+				}
+				
+			if (openGprsChannelV2.ExtensionId() == RSat::KSatV6)
+				{
+				RSat::TOpenGprsChannelV6Pckg* gprsV6PCmdPckg = (RSat::TOpenGprsChannelV6Pckg*)aPCmd;
+				RSat::TOpenGprsChannelV6&   openGprsChannelV6 = (*gprsV6PCmdPckg)();
+			
+				openGprsChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
+				openGprsChannelV6.iBearer.iType=DSATTSYV6_GPRS_BEARER_TYPE1;
+				}
+				
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+			}
+		case RSat::ELocalLinksBearer:
+			{
+			RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
+			RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
+
+			openLocalChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
+			openLocalChannelV2.iDuration1.iNumOfUnits=DSATTSY_TIME_UNIT;
+			openLocalChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
+			openLocalChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
+			openLocalChannelV2.iRemoteAddress.iCoding=DSATTSY_CODING;
+			openLocalChannelV2.iRemoteAddress.iAddress=DSATTSY_ADDRESS;
+			openLocalChannelV2.iUserPassword=DSATTSY_PASSWORD;
+
+			if ((openLocalChannelV2.ExtensionId() == RSat::KSatV5)
+				|| (openLocalChannelV2.ExtensionId() == RSat::KSatV6))
+				{
+				RSat::TOpenLocalLinksChannelV5Pckg* aV5PCmdPckg = (RSat::TOpenLocalLinksChannelV5Pckg*)aPCmd;
+				RSat::TOpenLocalLinksChannelV5&   openLocalChannelV5 = (*aV5PCmdPckg)();
+			
+				const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+				openLocalChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+				openLocalChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);				
+				}
+
+			if (openLocalChannelV2.ExtensionId() == RSat::KSatV6)
+				{
+				RSat::TOpenLocalLinksChannelV6Pckg* localV6PCmdPckg = (RSat::TOpenLocalLinksChannelV6Pckg*)aPCmd;
+				RSat::TOpenLocalLinksChannelV6&   openLocalChannelV6 = (*localV6PCmdPckg)();
+		
+				openLocalChannelV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;				
+				}
+				
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+			}
+		case RSat::EUiccServerMode:
+			{
+			RSat::TOpenUiccServerModeChannelV7Pckg* aV7PCmdPckg = (RSat::TOpenUiccServerModeChannelV7Pckg*)aPCmd;
+			RSat::TOpenUiccServerModeChannelV7& uiccServerModeChannelV7 = (*aV7PCmdPckg)();
+			
+			uiccServerModeChannelV7.iPCmdType = DSATTSY_UICC_SERVER_MODE;
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			uiccServerModeChannelV7.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			uiccServerModeChannelV7.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+			uiccServerModeChannelV7.iFrameId=DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			break;
+			}
+		case RSat::EAnyBearer:
+			{
+			// Monitor all kind of open channel PCmd
+
+			// Select type of channel PCmd that has 'opened' 
+
+			switch(iNotifyAnyBearerCount++)
+				{
+			case 0:
+					{
+					// This iteration set bearer type to "CS"
+
+					RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
+					RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
+
+					openCsChannelV2.iPCmdType = RSat::ECsBearer;
+
+					ReqCompleted(aTsyReqHandle,KErrNone);
+					break;
+					}
+			case 1:
+					{
+					// This iteration set bearer type to "GPRS"
+
+					RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
+					RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
+					
+					openGprsChannelV2.iPCmdType	= RSat::EGprsBearer;
+
+					ReqCompleted(aTsyReqHandle,KErrNone);
+					break;
+					}
+			case 2:
+					{
+					// This iteration set bearer type to "Local Link"
+
+					RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
+					RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
+
+					openLocalChannelV2.iPCmdType = RSat::ELocalLinksBearer;
+
+					ReqCompleted(aTsyReqHandle, KErrNone);
+
+					break;
+					}
+			default:
+					{
+					// Next iteration bearer will be "CS"
+
+					iNotifyAnyBearerCount = 0;
+
+					// Current iteration will return a failure ("type not set") in base channel
+
+					openChannelBaseV2.iPCmdType = RSat::EPCmdTypeNotSet;
+
+					ReqCompleted(aTsyReqHandle,KErrNone);
+					}
+				}
+			}
+		default:
+			ReqCompleted(aTsyReqHandle,KErrArgument);
+			}
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::GetOpenChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	/**
+	* This function should be called with PCmd type set to RSat::ECsBearer, 
+	* RSat::EGprsBearer or RSat::ELocalLinksBearer.
+	*/
+	LOGTEXT(_L8("CSatDSatTsy::GetOpenChannelPCmd called"));
+	RSat::TOpenChannelBaseV2Pckg* aV2PCmdPckg = (RSat::TOpenChannelBaseV2Pckg*)aPCmd;
+	RSat::TOpenChannelBaseV2& openChannelV2 = (*aV2PCmdPckg)();
+
+	switch (openChannelV2.iPCmdType)
+		{
+	case RSat::EPCmdTypeNotSet:
+		ReqCompleted(aTsyReqHandle,KErrArgument);
+		break;
+	case RSat::ECsBearer:
+		{
+		RSat::TOpenCsChannelV2Pckg* aV2CsPCmdPckg = (RSat::TOpenCsChannelV2Pckg*)aPCmd;
+		RSat::TOpenCsChannelV2& openCsChannelV2 = (*aV2CsPCmdPckg)();
+
+		openCsChannelV2.iAddress.iTypeOfNumber=DSATTSY_TON;
+		openCsChannelV2.iAddress.iNumberPlan=DSATTSY_NPI;
+		openCsChannelV2.iAddress.iTelNumber=DSATTSY_TEL_NUMBER;
+		openCsChannelV2.iSubAddress=DSATTSY_SUBADDRESS;
+		openCsChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
+		openCsChannelV2.iDuration1.iNumOfUnits=DSATTSY_NUM_OF_UNITS;
+		openCsChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
+		openCsChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
+		openCsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
+		openCsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
+		openCsChannelV2.iUserLogin=DSATTSY_LOGIN;
+		openCsChannelV2.iUserPassword=DSATTSY_PASSWORD;
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		break;
+		}
+	case RSat::EGprsBearer:
+		{
+		RSat::TOpenGprsChannelV2Pckg* aV2GprsPCmdPckg = (RSat::TOpenGprsChannelV2Pckg*)aPCmd;
+		RSat::TOpenGprsChannelV2& openGprsChannelV2 = (*aV2GprsPCmdPckg)();
+		
+		openGprsChannelV2.iAccessName=DSATTSY_ACCESS_NAME;
+		openGprsChannelV2.iLocalAddress.iType=DSATTSY_IPV4_TYPE;
+		openGprsChannelV2.iLocalAddress.iAddress=DSATTSY_ADDRESS;
+		
+		if (openGprsChannelV2.ExtensionId() == RSat::KSatV4)
+			{
+			RSat::TOpenGprsChannelV4Pckg* aV4GprsPCmdPckg = reinterpret_cast<RSat::TOpenGprsChannelV4Pckg*>(aPCmd);
+			RSat::TOpenGprsChannelV4& openGprsChannelV4 = (*aV4GprsPCmdPckg)();
+			
+			openGprsChannelV4.iUserLogin=DSATTSY_LOGIN;
+			openGprsChannelV4.iUserPassword=DSATTSY_PASSWORD;
+			}
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		break;
+		}
+	case RSat::ELocalLinksBearer:
+		{
+		RSat::TOpenLocalLinksChannelV2Pckg* aV2LocalPCmdPckg = (RSat::TOpenLocalLinksChannelV2Pckg*)aPCmd;
+		RSat::TOpenLocalLinksChannelV2& openLocalChannelV2 = (*aV2LocalPCmdPckg)();
+
+		openLocalChannelV2.iDuration1.iTimeUnit=DSATTSY_TIME_UNIT;
+		openLocalChannelV2.iDuration1.iNumOfUnits=DSATTSY_TIME_UNIT;
+		openLocalChannelV2.iDuration2.iTimeUnit=DSATTSY_TIME_UNIT;
+		openLocalChannelV2.iDuration2.iNumOfUnits=DSATTSY_TIME_UNIT;
+		openLocalChannelV2.iRemoteAddress.iCoding=DSATTSY_CODING;
+		openLocalChannelV2.iRemoteAddress.iAddress=DSATTSY_ADDRESS;
+		openLocalChannelV2.iUserPassword=DSATTSY_PASSWORD;
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		break;
+		}
+	case RSat::EAnyBearer:
+		{
+		ReqCompleted(aTsyReqHandle,KErrArgument);
+		break;
+		}
+	default:
+		ReqCompleted(aTsyReqHandle,KErrArgument);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyOpenChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyOpenChannelPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyOpenChannelPCmd=0;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::GetOpenChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::GetOpenChannelPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;
+	}	
+
+TInt CSatDSatTsy::NotifyCloseChannelPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyCloseChannelPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyCloseChannelPCmd called"));
+		RSat::TCloseChannelV2Pckg* aV2PCmdPckg = (RSat::TCloseChannelV2Pckg*)aPCmd;
+		RSat::TCloseChannelV2& closeChannelV2 = (*aV2PCmdPckg)();
+		
+		closeChannelV2.SetPCmdNumber(DSATTSY_CLOSE_CHANNEL_NUMBER);
+
+		closeChannelV2.iDestination=DSATTSY_CARD_READER_1;
+		closeChannelV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
+		closeChannelV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
+		closeChannelV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+		closeChannelV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
+
+		if ((closeChannelV2.ExtensionId() == RSat::KSatV5) ||
+			(closeChannelV2.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TCloseChannelV5Pckg* aV5PCmdPckg = (RSat::TCloseChannelV5Pckg*)aPCmd;
+			RSat::TCloseChannelV5&   closeChannelV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			closeChannelV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			closeChannelV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (closeChannelV2.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TCloseChannelV6Pckg* closeChannelV6PCmdPckg = (RSat::TCloseChannelV6Pckg*)aPCmd;
+			RSat::TCloseChannelV6&   closeChannelV6 = (*closeChannelV6PCmdPckg)();
+			
+			closeChannelV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyCloseChannelPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyCloseChannelPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyCloseChannelPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyReceiveDataPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyReceiveDataPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyReceiveDataPCmd called"));
+		RSat::TReceiveDataV2Pckg* aV2PCmdPckg = (RSat::TReceiveDataV2Pckg*)aPCmd;
+		RSat::TReceiveDataV2& receiveDataV2 = (*aV2PCmdPckg)();
+		
+		receiveDataV2.SetPCmdNumber(DSATTSY_RECEIVE_DATA_NUMBER);
+
+		receiveDataV2.iDestination=DSATTSY_CARD_READER_1;
+		receiveDataV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
+		receiveDataV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
+		receiveDataV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+		receiveDataV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
+		receiveDataV2.iChannelDataLength=DSATTSY_DATA_LENGTH;
+
+		if ((receiveDataV2.ExtensionId() == RSat::KSatV5) ||
+			(receiveDataV2.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TReceiveDataV5Pckg* aV5PCmdPckg = (RSat::TReceiveDataV5Pckg*)aPCmd;
+			RSat::TReceiveDataV5&   receiveDataV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			receiveDataV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			receiveDataV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}		
+
+		if (receiveDataV2.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TReceiveDataV6Pckg* receiveDataV6PCmdPckg = (RSat::TReceiveDataV6Pckg*)aPCmd;
+			RSat::TReceiveDataV6&   receiveDataV6 = (*receiveDataV6PCmdPckg)();
+			
+			receiveDataV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyReceiveDataPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyReceiveDataPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyReceiveDataPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendDataPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySendDataPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySendDataPCmd called"));
+		RSat::TSendDataV2Pckg* aV2PCmdPckg = (RSat::TSendDataV2Pckg*)aPCmd;
+		RSat::TSendDataV2& sendDataV2 = (*aV2PCmdPckg)();
+		
+		sendDataV2.SetPCmdNumber(DSATTSY_SEND_DATA_NUMBER);
+
+		sendDataV2.iDestination=DSATTSY_CARD_READER_1;
+		sendDataV2.iMode=DSATTSY_SEND_DATA_MODE;
+		sendDataV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
+		sendDataV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
+		sendDataV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+		sendDataV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
+		sendDataV2.iChannelData=DSATTSY_CHANNEL_DATA;
+
+		if ((sendDataV2.ExtensionId() == RSat::KSatV5) ||
+			(sendDataV2.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TSendDataV5Pckg* aV5PCmdPckg = (RSat::TSendDataV5Pckg*)aPCmd;
+			RSat::TSendDataV5&   sendDataV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			sendDataV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			sendDataV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (sendDataV2.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TSendDataV6Pckg* sendDataV6PCmdPckg = (RSat::TSendDataV6Pckg*)aPCmd;
+			RSat::TSendDataV6&   sendDataV6 = (*sendDataV6PCmdPckg)();
+			
+			sendDataV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySendDataPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySendDataPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySendDataPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetChannelStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyGetChannelStatusPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyGetChannelStatusPCmd called"));
+		RSat::TGetChannelStatusV2Pckg* aV2PCmdPckg = (RSat::TGetChannelStatusV2Pckg*)aPCmd;
+		RSat::TGetChannelStatusV2& getStatusV2 = (*aV2PCmdPckg)();
+		
+		getStatusV2.SetPCmdNumber(DSATTSY_GET_CHANNEL_STATUS_NUMBER);
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetChannelStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyGetChannelStatusPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyGetChannelStatusPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyServiceSearchPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyServiceSearchPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyServiceSearchPCmd called"));
+		RSat::TServiceSearchV2Pckg* aV2PCmdPckg = (RSat::TServiceSearchV2Pckg*)aPCmd;
+		RSat::TServiceSearchV2& serviceSearchV2 = (*aV2PCmdPckg)();
+		
+		serviceSearchV2.SetPCmdNumber(DSATTSY_SERVICE_SEARCH_NUMBER);
+
+		serviceSearchV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
+		serviceSearchV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
+		serviceSearchV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+		serviceSearchV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
+		serviceSearchV2.iSearch.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
+		serviceSearchV2.iSearch.iSearchParam=DSATTSY_SERVICE_SEARCH_PARAMS;
+		serviceSearchV2.iFilter.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
+		serviceSearchV2.iFilter.iDeviceFilter=DSATTSY_FILTER_INFO;
+
+		if ((serviceSearchV2.ExtensionId() == RSat::KSatV5) ||
+			(serviceSearchV2.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TServiceSearchV5Pckg* aV5PCmdPckg = (RSat::TServiceSearchV5Pckg*)aPCmd;
+			RSat::TServiceSearchV5&   serviceSearchV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			serviceSearchV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			serviceSearchV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (serviceSearchV2.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TServiceSearchV6Pckg* serviceSearchV6PCmdPckg = (RSat::TServiceSearchV6Pckg*)aPCmd;
+			RSat::TServiceSearchV6&   serviceSearchV6 = (*serviceSearchV6PCmdPckg)();
+			
+			serviceSearchV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyServiceSearchPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyServiceSearchPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyServiceSearchPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetServiceInfoPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyGetServiceInfoPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyGetServiceInfoPCmd called"));
+		RSat::TGetServiceInfoV2Pckg* aV2PCmdPckg = (RSat::TGetServiceInfoV2Pckg*)aPCmd;
+		RSat::TGetServiceInfoV2& getServiceInfoV2 = (*aV2PCmdPckg)();
+		
+		getServiceInfoV2.SetPCmdNumber(DSATTSY_GET_SERVICE_INFO_NUMBER);
+
+		getServiceInfoV2.iAlphaId.iStatus=DSATTSY_ALPHA_ID1_STATUS;
+		getServiceInfoV2.iAlphaId.iAlphaId=DSATTSY_ALPHA_ID1;
+		getServiceInfoV2.iIconId.iIdentifier=DSATTSY_ICON_ID1;
+		getServiceInfoV2.iIconId.iQualifier=DSATTSY_ICON_QUALIFIER1;
+		getServiceInfoV2.iAttributeInfo.iBearerId=DSATTSY_BEARER_TECH_INDEPENDENT;
+		getServiceInfoV2.iAttributeInfo.iAttributeInfo=DSATTSY_ATTRIBUTE_INFO;
+
+		if ((getServiceInfoV2.ExtensionId() == RSat::KSatV5) ||
+			(getServiceInfoV2.ExtensionId() == RSat::KSatV6))
+			{
+			RSat::TGetServiceInfoV5Pckg* aV5PCmdPckg = (RSat::TGetServiceInfoV5Pckg*)aPCmd;
+			RSat::TGetServiceInfoV5&   getServiceInfoV5 = (*aV5PCmdPckg)();
+			
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			
+			getServiceInfoV5.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			getServiceInfoV5.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+			}
+
+		if (getServiceInfoV2.ExtensionId() == RSat::KSatV6)
+			{
+			RSat::TGetServiceInfoV6Pckg* getServiceInfoV6PCmdPckg = (RSat::TGetServiceInfoV6Pckg*)aPCmd;
+			RSat::TGetServiceInfoV6&   getServiceInfoV6 = (*getServiceInfoV6PCmdPckg)();
+			
+			getServiceInfoV6.iFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+			}
+			
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetServiceInfoPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyGetServiceInfoPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyGetServiceInfoPCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyDeclareServicePCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyDeclareServicePCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyDeclareServicePCmd called"));
+		RSat::TDeclareServiceV2Pckg* aV2PCmdPckg = (RSat::TDeclareServiceV2Pckg*)aPCmd;
+		RSat::TDeclareServiceV2& declareServiceV2 = (*aV2PCmdPckg)();
+		
+		declareServiceV2.SetPCmdNumber(DSATTSY_DECLARE_SERVICE_NUMBER);
+
+		declareServiceV2.iType=DSATTSY_DECLARE_SERVICE_TYPE;
+		declareServiceV2.iServiceRecord.iBearerId=DSATTSY_BEARER_NOT_PRESENT;
+		declareServiceV2.iServiceRecord.iServiceId=DSATTSY_NULL_BEARER_ID;
+		declareServiceV2.iServiceRecord.iRecord=DSATTSY_NULL_NARROW_BUF;
+		declareServiceV2.iInterface.iPrtNumber=DSATTSY_PORT_1;
+		declareServiceV2.iInterface.iTransportProto=DSATTSY_TCP_PROTO;
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyDeclareServicePCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyDeclareServicePCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyDeclareServicePCmd=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyProactiveSimSessionStart(const TTsyReqHandle aTsyReqHandle)
+	{
+	if(!iNotifyProactiveSimSessionStart++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionStart called"));
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifyProactiveSimSessionStartCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionStartCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyProactiveSimSessionStart=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyProactiveSimSessionEnd(const TTsyReqHandle aTsyReqHandle)
+	{
+	if(!iNotifyProactiveSimSessionEnd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionEnd called"));
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyProactiveSimSessionEndCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyProactiveSimSessionEndCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyProactiveSimSessionEnd=0;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifyTimerExpiration(const TTsyReqHandle aTsyReqHandle, TDes8* aTimerDetails)
+	{
+	if(!iNotifyTimerExpiration++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::Notify Timer expiration called"));
+		RSat::TTimerExpirationV3Pckg* cmdPckg = (RSat::TTimerExpirationV3Pckg*)aTimerDetails;
+		RSat::TTimerExpirationV3& cmdV3 = (*cmdPckg)();	
+		
+		cmdV3.iTimerId = RSat::KTimer1;
+		cmdV3.iTimerValue.iTimeUnit = RSat::ESeconds;
+		cmdV3.iTimerValue.iNumOfUnits = 10;
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyTimerExpirationCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyTimerExpirationCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyTimerExpiration=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySmsPpDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aSmsPpDownloadDetails)
+	{
+	if(!iNotifySmsPpDownload++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::Notify Sms Pp Download called"));
+		RSat::TSmsPpDownloadV3Pckg* cmdPckg = (RSat::TSmsPpDownloadV3Pckg*)aSmsPpDownloadDetails;
+		RSat::TSmsPpDownloadV3& cmdV3 = (*cmdPckg)();	
+		
+		cmdV3.iDeviceId=RSat::KEarPiece;
+		cmdV3.iRpAddress.iTypeOfNumber	=DSATTSY_TON;
+		cmdV3.iRpAddress.iNumberPlan	=DSATTSY_NPI;
+		cmdV3.iRpAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
+		cmdV3.iPdu=DSATTSY_SMS_TPDU; 
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyTsyStateUpdated(const TTsyReqHandle aTsyReqHandle,RSat::TPCmd* aPCmd)
+	{
+	if(!iNotifyTsyStateUpdated++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyTsyStateUpdated called"));
+		*aPCmd = DSATTSY_SENDSS;
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifyTsyStateUpdatedCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyTsyStateUpdatedCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return KErrNone;
+	}	
+
+TInt CSatDSatTsy::NotifyRefreshRequired(const TTsyReqHandle aTsyReqHandle)
+	{
+	if(!iNotifyRefreshRequired++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequired called"));
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+	
+TInt CSatDSatTsy::NotifyRefreshRequired(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyRefreshRequired++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequired called (with param)"));
+
+		RSat::TRefreshV1Pckg* refreshPckg = (RSat::TRefreshV1Pckg*)aPCmd;
+		RSat::TRefreshV1& refreshV1 = (*refreshPckg)();
+		
+		refreshV1.SetPCmdNumber(DSATTSY_REFRESH_NUMBER);
+
+		refreshV1.iType	= DSATTSY_REFRESH_TYPE;
+ 		refreshV1.iFileList.Append(DSATTSY_REFRESH_FDN_EF);
+ 		refreshV1.iFileList.Append(DSATTSY_REFRESH_ADN_EF);
+
+		if (refreshV1.ExtensionId()==RSat::KSatV2)
+			{
+			RSat::TRefreshV2Pckg* aV2PCmdPckg = (RSat::TRefreshV2Pckg*)aPCmd;
+			RSat::TRefreshV2& refreshV2 = (*aV2PCmdPckg)();
+			
+			refreshV2.iAid=DSATTSY_AID;
+			}
+
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}		
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::NotifyRefreshRequiredCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyRefreshRequiredCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyRefreshRequired=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::RefreshAllowed(const TTsyReqHandle aTsyReqHandle, TDes8* aRefreshAllowedRsp)
+	{
+	RSat::TRefreshRspV1Pckg* aRspPckg = (RSat::TRefreshRspV1Pckg*)aRefreshAllowedRsp;
+	RSat::TRefreshRspV1& rspV1 = (*aRspPckg)();
+
+	if((rspV1.iGeneralResult!=DSATTSY_PCMD_RESULT_SUCCESS)
+		||(rspV1.iInfoType!=DSATTSY_PCMD_RSP_NO_INFO)
+		||(rspV1.iAdditionalInfo!=DSATTSY_NULL_BUF))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iRefreshAllowed++)
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::RefreshAllowedCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::RefreshAllowedCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyRefreshRequired=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifySmsPpDownloadCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySmsPpDownloadCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySmsPpDownload=0;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyCbDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aCbDownloadDetails)
+	{
+	if(!iNotifyCbDownload++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::Notify CB Download called"));
+		RSat::TCbDownloadV3Pckg* cmdPckg = (RSat::TCbDownloadV3Pckg*)aCbDownloadDetails;
+		RSat::TCbDownloadV3& cmdV3 = (*cmdPckg)();		
+		
+		cmdV3.iDeviceId=RSat::KEarPiece;
+		cmdV3.iPdu= DSATTSY_CB_PDU; 
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifyCbDownloadCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyCbDownloadCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyCbDownload=0;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifyTimerManagtPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyTimerManagtPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyTimerManagtPCmd called"));
+		RSat::TTimerMgmtV3Pckg* aV3PCmdPckg = (RSat::TTimerMgmtV3Pckg*)aPCmd;
+		RSat::TTimerMgmtV3& timerMngtV3 = (*aV3PCmdPckg)();
+		
+		timerMngtV3.iTimerId = RSat::KTimer1;
+		timerMngtV3.iTimerValue.iTimeUnit = RSat::ESeconds;
+		timerMngtV3.iTimerValue.iNumOfUnits = 10;
+		timerMngtV3.iOperation = RSat::EStartTimer;
+				
+		ReqCompleted(aTsyReqHandle,KErrNone);	
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyTimerManagtPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyTmerManagtPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyTimerManagtPCmd=0;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifyLocalInfoPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyLocalInfoPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyLocalInfoPCmd called"));
+		RSat::TLocalInfoV3Pckg* aV3PCmdPckg = (RSat::TLocalInfoV3Pckg*)aPCmd;	
+		RSat::TLocalInfoV3& localInfoV3 = (*aV3PCmdPckg)();
+	
+		localInfoV3.iDevideId = RSat::KKeypad;
+		localInfoV3.iInfoType = RSat::KProvideLocalInfo;
+		if(localInfoV3.ExtensionId()== RSat::KSatV6)
+			{
+			RSat::TLocalInfoV6Pckg* localInfoV6PCmdPckg = (RSat::TLocalInfoV6Pckg*)aPCmd;	
+			RSat::TLocalInfoV6& localInfoV6 = (*localInfoV6PCmdPckg)();
+			localInfoV6.iUtranMeasurementQualifier=DSATTSYV6_LOCAL_INFOV6;
+			localInfoV6.iInfoType = RSat::KProvideLocalInfoSearchMode;
+			}
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyLocalInfoPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyLocalInfoPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyLocalInfoPCmd=0;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifyPollingIntervalPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyPollingIntervalPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyPollingIntervalPCmd called"));
+		RSat::TPollingIntervalV3Pckg* aV3PCmdPckg = (RSat::TPollingIntervalV3Pckg*)aPCmd;	
+		RSat::TPollingIntervalV3& pollingIntvV3 = (*aV3PCmdPckg)();
+		
+		pollingIntvV3.iIntv.iTimeUnit = RSat::ESeconds;
+		pollingIntvV3.iIntv.iNumOfUnits = DSATTSY_NUM_OF_UNITS;
+		pollingIntvV3.iDestination=RSat::KEarPiece;
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+	
+TInt CSatDSatTsy::NotifyPollingIntervalPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	
+	LOGTEXT(_L8("CSatDSatTsy::NotifyPollingIntervalPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyPollingIntervalPCmd=0;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifyPollingOffPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyPollingOffPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyPollingOffPCmd called"));
+		RSat::TPollingOffV3Pckg* aV3PCmdPckg = (RSat::TPollingOffV3Pckg*)aPCmd;	
+		RSat::TPollingOffV3& pollingIntvV3 = (*aV3PCmdPckg)();
+		
+		pollingIntvV3.iIntv.iTimeUnit = RSat::ESeconds;
+		pollingIntvV3.iIntv.iNumOfUnits = 20;
+		pollingIntvV3.iDestination=RSat::KNetwork;
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyPollingOffPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	
+	LOGTEXT(_L8("CSatDSatTsy::NotifyPollingOffPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyPollingOffPCmd=0;
+	return KErrNone;
+	}
+
+
+
+TInt CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd) 
+	{
+	if(!iNotifyRetrieveMultimediaMsgPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmd called"));
+		RSat::TRetrieveMultimediaMessageV6Pckg* retrieveMmV6PCmdPckg = (RSat::TRetrieveMultimediaMessageV6Pckg*)aPCmd;	
+		RSat::TRetrieveMultimediaMessageV6& retrieveMMV6 = (*retrieveMmV6PCmdPckg)();
+		
+		const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+		retrieveMMV6.SetPCmdNumber(DSATTSY_RETRIEVE_MULTIMEDIA_MESSAGE);
+		retrieveMMV6.iDestination = DSATTSYV6_DEVICE_ID1;
+		retrieveMMV6.iAlphaId.iAlphaId= DSATTSYV6_ALPHAID1;
+		retrieveMMV6.iAlphaId.iStatus = DSATTSYV6_ALPHAID_STATUS2;
+		retrieveMMV6.iIconId.iIdentifier = DSATTSYV6_ICON_ID1;
+		retrieveMMV6.iIconId.iQualifier =  DSATTSYV6_ICON_QUALIFIER3;
+		retrieveMMV6.iMultimediaContentId = DSATTSYV6_MULTIMEDIA_CONTENT_ID1;
+		retrieveMMV6.iMultimediaMessageRef = DSATTSYV6_MULTIMEDIA_MESSAGE_REF1;
+		retrieveMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
+		retrieveMMV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+		retrieveMMV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyRetrieveMultimediaMsgPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyRetrieveMultimediaMsgPCmd=0;
+	return KErrNone;
+	}
+
+
+
+TInt CSatDSatTsy::NotifySubmitMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySubmitMultimediaMsgPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmd called"));
+		RSat::TSubmitMultimediaMessageV6Pckg* submitMMV6PCmdPckg = (RSat::TSubmitMultimediaMessageV6Pckg*)aPCmd;	
+		RSat::TSubmitMultimediaMessageV6& submitMMV6 = (*submitMMV6PCmdPckg)();
+		
+		const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+		submitMMV6.SetPCmdNumber(DSATTSY_SUBMIT_MULTIMEDIA_MESSAGE);
+		submitMMV6.iDestination = DSATTSYV6_DEVICE_ID1;
+		submitMMV6.iAlphaId.iAlphaId= DSATTSYV6_ALPHAID1;
+		submitMMV6.iAlphaId.iStatus = DSATTSYV6_ALPHAID_STATUS2;
+		submitMMV6.iIconId.iIdentifier = DSATTSYV6_ICON_ID1;
+		submitMMV6.iIconId.iQualifier =  DSATTSYV6_ICON_QUALIFIER3;
+		submitMMV6.iSubmissionFile = DSATTSYV6_SUBMISSION_FILE1;
+		submitMMV6.iTextAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+		submitMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
+		submitMMV6.iTextAttribute.iTextAttributeData.Append(textAttributeData,DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+		
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+	
+TInt CSatDSatTsy::NotifySubmitMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifySubmitMultimediaMsgPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySubmitMultimediaMsgPCmd=0;
+	return KErrNone;	
+	}
+	
+
+
+TInt CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyDisplayMultimediaMsgPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmd called"));
+		RSat::TDisplayMultimediaMessageV6Pckg* displayMMV6PCmdPckg = (RSat::TDisplayMultimediaMessageV6Pckg*)aPCmd;	
+		RSat::TDisplayMultimediaMessageV6& displayMMV6 = (*displayMMV6PCmdPckg)();	
+		
+		displayMMV6.SetPCmdNumber(DSATTSY_DISPLAY_MULTIMEDIA_MESSAGE);
+		displayMMV6.iDestination = DSATTSYV6_DEVICE_ID3;
+		displayMMV6.iDisplayPriority = DSATTSYV6_DISPLAY_PRIORITY1;
+		displayMMV6.iSubmissionFile = DSATTSYV6_SUBMISSION_FILE1;
+		displayMMV6.iMultimediaMessageId = DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
+		displayMMV6.iImmediateRsp = DSATTSYV6_IMMEDIATE_RESPONSE1;
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyDisplayMultimediaMsgPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyDisplayMultimediaMsgPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyDisplayMultimediaMsgPCmd=0;
+	return KErrNone;	
+	}
+
+
+TInt CSatDSatTsy::NotifySetFramesPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifySetFramesPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifySetFramesPCmd called"));
+		RSat::TSetFramesV6Pckg* setFramesV6PCmdPckg = (RSat::TSetFramesV6Pckg*)aPCmd;	
+		RSat::TSetFramesV6& setFramesV6 = (*setFramesV6PCmdPckg)();	
+		
+		setFramesV6.SetPCmdNumber(DSATTSY_SET_FRAMES);
+		setFramesV6.iDestination = DSATTSYV6_DEVICE_ID1;
+        setFramesV6.iDefaultFrameId = DSATTSYV6_DEFAULT_FRAME_IDENTIFIER1;
+        setFramesV6.iFrameId = DSATTSYV6_FRAME_IDENTIFIER1;
+        setFramesV6.iFrameLayout.iFramesLayout = DSATTSYV6_FRAME_LAYOUT_FORMAT1;
+        setFramesV6.iFrameLayout.iFrameLayoutBuf = DSATTSYV6_FRAME_LAYOUT1;
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone; 
+	}
+	
+TInt CSatDSatTsy::NotifySetFramesPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::SetFramesPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifySetFramesPCmd=0;
+	return KErrNone;	
+	}
+	
+
+TInt CSatDSatTsy::NotifyGetFramesStatusPCmd(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	if(!iNotifyGetFramesStatusPCmd++)
+		{
+		LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmd called"));
+		RSat::TGetFramesStatusV6Pckg* getFramesStatusV6PCmdPckg = (RSat::TGetFramesStatusV6Pckg*)aPCmd;	
+		RSat::TGetFramesStatusV6& getFramesStatusV6 = (*getFramesStatusV6PCmdPckg)();	
+		
+		getFramesStatusV6.SetPCmdNumber(DSATTSY_GET_FRAMES_STATUS);
+		getFramesStatusV6.iDestination = DSATTSYV6_DEVICE_ID1;
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::NotifyGetFramesStatusPCmdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::NotifyGetFramesStatusPCmdCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iNotifyGetFramesStatusPCmd=0;
+	return KErrNone;	
+	}
+	
+
+
+TInt CSatDSatTsy::MmsNotificationDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::MmsNotificationDownload called"));
+	RSat::TMmsNotificationDownloadV6Pckg* mMSNotificationDownloadV6PCmdPckg = (RSat::TMmsNotificationDownloadV6Pckg*)aPCmd;	
+	RSat::TMmsNotificationDownloadV6& mMSNotificationDownloadV6 = (*mMSNotificationDownloadV6PCmdPckg)();	
+		
+	if((mMSNotificationDownloadV6.iDeviceId != DSATTSYV6_DEVICE_ID1) || 
+	   (mMSNotificationDownloadV6.iLastEnvelope != DSATTSYV6_LAST_ENVELOPE1) || 
+	   (mMSNotificationDownloadV6.iMMSNotification != DSATTSYV6_MMS_NOTIFICATION1))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);			
+		}
+	else if(!iMmsNotificationDownload++)
+		{
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;	
+	}
+
+TInt CSatDSatTsy::MmsNotificationDownloadCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::MmsNotificationDownloadCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iMmsNotificationDownload=0;
+	return KErrNone;	
+	}
+
+
+
+TInt CSatDSatTsy::MmsTransferStatus(const TTsyReqHandle aTsyReqHandle, TDes8* aPCmd)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::MmsTransferStatus called"));
+	RSat::TMmsTransferStatusV6Pckg* mMSTransferStatusV6PCmdPckg = (RSat::TMmsTransferStatusV6Pckg*)aPCmd;	
+	RSat::TMmsTransferStatusV6& mMSTransferStatusV6 = (*mMSTransferStatusV6PCmdPckg)();	
+		
+	if((mMSTransferStatusV6.iDeviceId != DSATTSYV6_DEVICE_ID3) || 
+	   (mMSTransferStatusV6.iMultimediaMessageId !=DSATTSYV6_MULTIMEDIA_MESSAGE_ID1) || 
+	   (mMSTransferStatusV6.iMultimediaMessageStatus !=DSATTSYV6_MULTIMEDIA_MESSAGE_STATUS))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else if(!iMmsTransferStatus++)
+		{
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}
+
+TInt CSatDSatTsy::MmsTransferStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::MMTransferStatusCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iMmsTransferStatus=0;
+	return KErrNone;	
+	}
+
+	
+
+TInt CSatDSatTsy::UssdDataDownload(const TTsyReqHandle aTsyReqHandle, TDes8* aUssdDataDownload)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::UssdDataDownload called"));
+	RSat::TUssdDataDownloadV6Pckg* ussdDataDownloadPckg = (RSat::TUssdDataDownloadV6Pckg*)aUssdDataDownload;
+	RSat::TUssdDataDownloadV6& ussdDataDownloadV6 = (*ussdDataDownloadPckg)();	
+		
+	if((ussdDataDownloadV6.iDeviceId != DSATTSYV6_DEVICE_ID1) || 
+	   (ussdDataDownloadV6.iUssdString.iUssdString != DSATTSY_USSD_STRING))
+		{
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+		}
+	else if(!iUssdDataDownload++)
+		{
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+
+	iTsyAsyncReqHandle = aTsyReqHandle;
+	return KErrNone;
+	}	
+
+TInt CSatDSatTsy::UssdDataDownloadCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSatDSatTsy::UssdDataDownloadCancel called"));
+	if(aTsyReqHandle == iTsyAsyncReqHandle)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	iUssdDataDownload=0;
+	return KErrNone;	
+	}
+
+
+
+TSecurityPolicy CSatDSatTsy::GetRequiredPlatSecCaps(const TInt aIpc)
+	{
+	switch(aIpc)
+		{
+	case ETestCustomIPC1:
+		return TSecurityPolicy(ECapabilityNetworkServices);
+	default:
+		//For any non-Custom IPCs return a policy that will always cause the capability check to pass
+		return TSecurityPolicy(TSecurityPolicy::EAlwaysPass);
+		}
+	}	
+