telephonyserverplugins/simatktsy/src/csatnotificationstsy.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/simatktsy/src/csatnotificationstsy.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/simatktsy/src/csatnotificationstsy.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,1446 +1,1446 @@
-// Copyright (c) 2006-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:
-// Name        : CSatNotificationsTsy.cpp
-// Part of     : Common SIM ATK TSY / commonsimatktsy
-// Notifications-related functionality of Sat Tsy
-// Version     : 1.0
-//
-
-
-
-
-//INCLUDES
-#include <satcs.h>                  // Etel SAT IPC definitions
-#include "CSatDataPackage.h"        // Parameter packing 
-#include "CSatTsy.h"                // Sat Tsy class
-#include "CSatCCTsy.h"              // Sat Call Contol Tsy class
-#include "cmmmessagemanagerbase.h"  // Message manager class for forwarding req
-#include "CSatNotificationsTsy.h"   // Class header
-#include "CSatNotifyDisplayText.h"  // Display text specific notify class
-#include "CSatNotifyGetInkey.h"     // Get inkey specific notify class
-#include "CSatNotifySimSessionEnd.h"// Sim session end specific notify class
-#include "CSatNotifyGetInput.h"		// Get input specific notify class
-#include "CSatNotifyPlayTone.h"		// Play tone specific notify class
-#include "CSatNotifySetUpMenu.h"	// Set-up menu specific notify class
-#include "CSatNotifySelectItem.h"	// Select item specific notify class
-#include "CSatNotifySendSm.h"		// Send SMS specific notify class
-#include "CSatNotifySendUssd.h"		// Send USSD specific notify class
-#include "CSatNotifySendSs.h"		// Send SS specific notify class
-#include "CSatNotifySetUpIdleModeText.h"// Set up idle mode notify class
-#include "CSatNotifyLaunchBrowser.h"// Launch browser specific notify class
-#include "CSatNotifyCallControlRequest.h"// Call control notify class
-#include "CSatNotifySetUpCall.h"    // Set up call specific notify class
-#include "CSatNotifySetUpEventList.h"    // Set up event list notify class
-#include "CSatNotifyTimerMgmt.h"    // Timer management specific notify class
-#include "CSatNotifyLanguageNotification.h"// Language notification notify class
-#include "CSatNotifySendDtmf.h"     // Send Dtmf notification  notify class
-#include "CSatNotifyRefresh.h"      // Refresh notification  notify class
-#include "CSatNotifyPollingOff.h"   // Polling off notification  notify class
-#include "CSatNotifyPollInterval.h" // Poll interval notification  notify class
-#include "CSatNotifyLocalInfo.h"    // Local info notification  notify class
-#include "CSatNotifyRefresh.h"      // Refresh notification  notify class
-#include "CSatNotifyOpenChannel.h"	// Open channel notification  notify class
-#include "CSatNotifyGetChannelStatus.h"// Get channel status notify notify class
-#include "CSatNotifyMoSmControlRequest.h"// MO SM Control notify class      
-#include "CSatNotifyCloseChannel.h"	// Close channel notification  notify class
-#include "CSatNotifySendData.h"		// Send Data notification  notify class
-#include "CSatNotifyReceiveData.h"  // Receive data notification  notify class
-#include "CSatNotifyMoreTime.h"		// More time notification  notify class
-#include "CSatTsyReqHandleStore.h"  // Request handle class
-#include "TfLogger.h"               // For TFLOGSTRING
-#include "CBerTlv.h"                // Ber Tlv
-#include "TTlv.h"					// TTlv class
-#include "msattsy_ipcdefs.h"		// Sat Tsy specific request types
-#include "TSatUtility.h"            // Utilities
-
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSatNotificationsTsy* CSatNotificationsTsy::NewL
-        (    
-        CSatTsy* aSatTsy,
-		CSatTsyReqHandleStore* aSatReqHandleStore
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::NewL");
-    CSatNotificationsTsy* const satNotificationsTsy = 
-        new ( ELeave ) CSatNotificationsTsy( aSatTsy, aSatReqHandleStore );
-
-    CleanupStack::PushL( satNotificationsTsy );
-    satNotificationsTsy->ConstructL();
-    CleanupStack::Pop();
-    
-	TFLOGSTRING("CSAT: CSatNotificationsTsy::NewL, end of method");
-    return satNotificationsTsy;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::~CSatNotificationsTsy
-// Destructor
-// -----------------------------------------------------------------------------
-//    
-CSatNotificationsTsy::~CSatNotificationsTsy
-        (    
-        void   
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::~CSatNotificationsTsy");
-    
-    delete iSatTimer;
-
-    // Specific notification objects
-    delete iNotifyDisplayText;
-    delete iNotifyGetInkey;
-	delete iNotifyGetInput;
-    delete iNotifyPlayTone;
-	delete iNotifySetUpMenu;
-    delete iNotifySelectItem;
-	delete iNotifySendSm;
-	delete iNotifySendSs;
-	delete iNotifySendUssd;
-	delete iNotifySetUpIdleModeText;
-    delete iNotifyLaunchBrowser; 
-    delete iNotifyCallControlRequest; 
-    delete iNotifySimSessionEnd;
-    delete iNotifySetUpCall;
-    delete iNotifySetUpEventList;
-    delete iNotifySendDtmf;
-    delete iNotifyPollingOff;
-    delete iNotifyPollInterval;
-    delete iNotifyLanguageNotification;
-    delete iNotifyLocalInfo;
-    delete iNotifyTimerMgmt;
-    delete iNotifyRefresh;
-	delete iNotifyOpenChannel;
-	delete iNotifyGetChannelStatus;
-    delete iNotifyMoSmControlRequest;
-	delete iNotifyCloseChannel;
-	delete iNotifySendData;
-	delete iNotifyReceiveData;
-	delete iNotifyMoreTime;
-
-    // Unregister.
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotificationsTsyObjType, NULL );
-	TFLOGSTRING("CSAT: CSatNotificationsTsy::~CSatNotificationsTsy, \
-		end of method");
-    }
-    
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::CSatNotificationsTsy
-// C++ constructor
-// -----------------------------------------------------------------------------
-//
-CSatNotificationsTsy::CSatNotificationsTsy
-        (    
-        CSatTsy* aSatTsy,
-		CSatTsyReqHandleStore* aSatReqHandleStore
-        ): iSatTsy( aSatTsy ), iSatReqHandleStore( aSatReqHandleStore )
-
-    {
-    // None
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::ConstructL
-// Symbian 2nd phase constructor. Initialises internal attributes.
-// -----------------------------------------------------------------------------
-//
-void CSatNotificationsTsy::ConstructL
-        (    
-        void
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::ConstructL\n" );
-
-    // Register
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotificationsTsyObjType, this );
-
-    // Initialize SAT Notifications objects
-    iNotifyDisplayText = CSatNotifyDisplayText::NewL( this );
-	iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyDisplayTextObjType, iNotifyDisplayText );
-    
-	iNotifyGetInkey = CSatNotifyGetInkey::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyGetInkeyObjType, iNotifyGetInkey );
-	
-	iNotifyGetInput = CSatNotifyGetInput::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyGetInputObjType, iNotifyGetInput );
-	
-	iNotifyPlayTone = CSatNotifyPlayTone::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyPlayToneObjType, iNotifyPlayTone );
-
-	iNotifySetUpMenu = CSatNotifySetUpMenu::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySetUpMenuObjType, iNotifySetUpMenu );
-
-	iNotifySelectItem = CSatNotifySelectItem::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySelectItemObjType, iNotifySelectItem );
-
-	iNotifySendSm = CSatNotifySendSm::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySendSmsObjType, iNotifySendSm );
-
-	iNotifySendSs = CSatNotifySendSs::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySendSsObjType, iNotifySendSs );
-
-	iNotifySendUssd = CSatNotifySendUssd::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySendUssdObjType, iNotifySendUssd );
-
-	iNotifySetUpIdleModeText = CSatNotifySetUpIdleModeText::NewL( this );
-	iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySetUpIdleModeTextObjType, 
-		iNotifySetUpIdleModeText );
-
-	iNotifyLaunchBrowser = CSatNotifyLaunchBrowser::NewL( this );
-	iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyLaunchBrowserObjType, 
-		iNotifyLaunchBrowser );
-
-	iNotifyCallControlRequest = CSatNotifyCallControlRequest::NewL( this );
-	iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyCallControlRequestObjType, 
-		iNotifyCallControlRequest );
-
-	iNotifySimSessionEnd = CSatNotifySimSessionEnd::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySimSessionEndObjType, 
-		iNotifySimSessionEnd );
-
-    iNotifySetUpCall = CSatNotifySetUpCall::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySetUpCallObjType, iNotifySetUpCall );
-
-    iNotifyRefresh = CSatNotifyRefresh::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyRefreshObjType, iNotifyRefresh );
-
-    iNotifyPollInterval = CSatNotifyPollInterval::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyPollIntervalObjType, 
-		iNotifyPollInterval );
-
-    iNotifySendDtmf = CSatNotifySendDtmf::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySendDtmfObjType, iNotifySendDtmf );
-
-    iNotifySetUpEventList = CSatNotifySetUpEventList::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySetUpEventListObjType, 
-		iNotifySetUpEventList );
-
-    iNotifyPollingOff = CSatNotifyPollingOff::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyPollingOffObjType, iNotifyPollingOff );
-
-    iNotifyLocalInfo = CSatNotifyLocalInfo::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyLocalInfoObjType, iNotifyLocalInfo );
-
-    iNotifyTimerMgmt = CSatNotifyTimerMgmt::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyTimerMgmtObjType, iNotifyTimerMgmt );
-
-    iNotifyLanguageNotification = CSatNotifyLanguageNotification::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyLanguageNotificationObjType, 
-		iNotifyLanguageNotification );
-
-	iNotifyOpenChannel = CSatNotifyOpenChannel::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyOpenChannelObjType, 
-			iNotifyOpenChannel );	
-    
-    iNotifyMoSmControlRequest = CSatNotifyMoSmControlRequest::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyMoSmControlRequestObjType, 
-			iNotifyMoSmControlRequest );   
-	
-	iNotifyGetChannelStatus = CSatNotifyGetChannelStatus::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyGetChannelStatusObjType, 
-			iNotifyGetChannelStatus );
-	
-	iNotifyCloseChannel = CSatNotifyCloseChannel::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyCloseChannelObjType, 
-			iNotifyCloseChannel );
-	
-	iNotifySendData = CSatNotifySendData::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifySendDataObjType, iNotifySendData );
-	
-	iNotifyReceiveData = CSatNotifyReceiveData::NewL( this );
-    iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyReceiveDataObjType, 
-			iNotifyReceiveData );					
-    
-    iNotifyMoreTime = CSatNotifyMoreTime::NewL( this );
-   	iSatTsy->MessageManager()->RegisterTsyObject(
-		CMmMessageManagerBase::ESatNotifyMoreTimeObjType, iNotifyMoreTime );
-
-    // Initialize timer, this is used for implementing timer management
-    iSatTimer = CSatTimer::NewL( this );
-    		
-    // Initalize flag, this is used to check if proactiveCommand is ongoing
-    iSatTimer->SetProactiveCommandOnGoingStatus( EFalse );
-
-	// Set polling status to the use of the default value ( 25 sec. )
-    iPollingOff = ETrue;
-    
-    // No long poll interval requests yet
-    iLongPollIntervalReq = EFalse;
-
-    // Buffering for Proactive commands that are not notified by SatServer
-    NotifySatReadyForNotification( KPollInterval );
-    NotifySatReadyForNotification( KPollingOff );
-    NotifySatReadyForNotification( KMoreTime );
-    NotifySatReadyForNotification( KTimerManagement );
-
-    // Request IMEI code. Needed in provide local info proactive command.
-    iSatTsy->MessageManager()->HandleRequestL( ESatTsyGetIMEI );
-    
-    // Checks if MO-SMS control should be activated
-    //unnecassary IPC request as this is already called in CSatNotifyMoSmControlRequest::ConstructL 
-    //iSatTsy->MessageManager()->HandleRequestL( ESatTsyQueryMoSmsControlActivated );
-	TFLOGSTRING("CSAT: CSatNotificationsTsy::ConstructL, end of method" );
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::DoExtFunc
-// Notifications-specific functionality of CSatTsy::DoExtFuncL
-// -----------------------------------------------------------------------------
-//
-TInt CSatNotificationsTsy::DoExtFuncL
-        ( 
-        const TTsyReqHandle aTsyReqHandle, 
-        const TInt aIpc,                   
-        const TDataPackage& aPackage      
-        )
-    {
-    TFLOGSTRING3("CSAT: CSatNotificationsTsy::DoExtFuncL\t IPC:%d,\t Handle:%d",
-               aIpc, aTsyReqHandle);
-
-    TInt ret ( KErrNone );
-
-    TAny* dataPtr = aPackage.Ptr1();
-
-    switch ( aIpc )
-        {
-	    case ESatTerminalRsp:
-            {
-			TerminalResponseL( reinterpret_cast< RSat::TPCmd* >( dataPtr ),
-                 aPackage.Des2n(), aTsyReqHandle );
-			break;
-            }
-        case ESatNotifyDisplayTextPCmd:
-            {
-            iNotifyDisplayText->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifySelectItemPCmd:
-            {
-            iNotifySelectItem->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifyGetInkeyPCmd:
-            {
-            iNotifyGetInkey->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifyGetInputPCmd:
-            {
-            iNotifyGetInput->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifyPlayTonePCmd:
-            {
-            iNotifyPlayTone->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifySetUpMenuPCmd:
-            {
-            iNotifySetUpMenu->Notify( aTsyReqHandle, aPackage );
-            break;                
-            }
-        case ESatNotifySendSmPCmd:
-            {
-            iNotifySendSm->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifySendSsPCmd:
-            {
-            iNotifySendSs->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-		case ESatNotifySendUssdPCmd:
-            {
-            iNotifySendUssd->Notify( aTsyReqHandle, aPackage );
-            break;     
-            }
-		case ESatNotifyProactiveSimSessionEnd:
-            {
-            iNotifySimSessionEnd->Notify( aTsyReqHandle, aPackage );
-            break;
-            }
-        case ESatNotifySetUpIdleModeTextPCmd:
-            {
-            iNotifySetUpIdleModeText->Notify( aTsyReqHandle, aPackage );
-            break;
-            }
-        case ESatNotifyLaunchBrowserPCmd:
-            {
-            iNotifyLaunchBrowser->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifyCallControlRequest:
-            {
-            iNotifyCallControlRequest->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifySendDtmfPCmd:
-            {
-            iNotifySendDtmf->Notify( aTsyReqHandle, aPackage );
-            break;
-            }
-		case ESatNotifySetUpEventListPCmd:
-            {
-            iNotifySetUpEventList->Notify( aTsyReqHandle, aPackage );
-            break;
-            }
-        case ESatNotifySetUpCallPCmd:
-            {
-            iNotifySetUpCall->Notify( aTsyReqHandle, aPackage );
-            break;  
-            }
-        case ESatNotifyRefreshPCmd:
-            {
-            iNotifyRefresh->Notify( aTsyReqHandle, aPackage );
-            break;                  
-            }
-        case ESatNotifyRefreshRequiredParam:
-        	{
-            iNotifyRefresh->NotifyRefreshRequired( aTsyReqHandle, aPackage );
-            break;            
-        	}
-        case ESatRefreshAllowed:
-        	{
-            iSatTsy->ReqCompleted( aTsyReqHandle, 
-                iNotifyRefresh->RefreshAllowedL( aPackage ) );
-            break;
-        	}          
-        case ESatNotifyCbDownload:
-            {
-            NotifyCbDownload( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifySmsPpDownload:
-            {
-            NotifySmsPpDownload( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyLanguageNotificationPCmd:
-            {
-            iNotifyLanguageNotification->Notify( aTsyReqHandle, aPackage );
-            break;
-            }
-        case ESatNotifyLocalInfoPCmd:
-            {
-            iNotifyLocalInfo->Notify( aTsyReqHandle, aPackage );
-            break;
-            }
-       case ESatNotifyOpenChannelPCmd:
-            {
-            iNotifyOpenChannel->Notify( aTsyReqHandle, aPackage );
-            break;
-            }
-       	case ESatNotifyGetChannelStatusPCmd:
-       		{
-       		iNotifyGetChannelStatus->Notify( aTsyReqHandle, aPackage );
-       		break;	
-       		}
-        case ESatNotifyMoSmControlRequest:
-            {
-            iNotifyMoSmControlRequest->Notify( aTsyReqHandle, aPackage );
-            break;
-            }
-        case ESatNotifyCloseChannelPCmd:
-        	{
-       		iNotifyCloseChannel->Notify( aTsyReqHandle, aPackage );
-        	break;
-        	}
-       	case ESatNotifySendDataPCmd:
-       		{
-       		iNotifySendData->Notify( aTsyReqHandle, aPackage );
-       		break;	
-       		}
-        case ESatNotifyReceiveDataPCmd:
-        	{
-        	iNotifyReceiveData->Notify( aTsyReqHandle, aPackage );
-        	break;	
-        	} 
-        default:
-        	{
-        	TFLOGSTRING("CSAT: CSatNotificationsTsy::DoExtFuncL, \
-        		IPC not supported");
-            ret = KErrNotSupported;
-            break;
-        	}
-        }
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::CancelService
-// Cancels Notifications requests
-// -----------------------------------------------------------------------------
-//
-TInt CSatNotificationsTsy::CancelService
-        (    
-        const TInt aIpc,               
-        const TTsyReqHandle aTsyReqHandle  
-        )
-    {
-    TFLOGSTRING2("CSAT: CSatNotificationsTsy::CancelService.\
-    	\n\t\t\t Handle:%d\n\t\t\t", aTsyReqHandle );
-
-    TInt ret ( KErrNotSupported );
-    
-    // When the clients close their sub-sessions (eg. by calling RLine::Close), 
-    // they may not have cancelled all their outstanding asynchronous requests 
-    // before closing.  It is up to the ETel server to clean up in this 
-    // situation, so the server will find the list of outstanding requests 
-    // related to that sub-session object and pass these outstanding IPC 
-    // request numbers, one at a time, to the CancelService method in the TSY.
-
-    switch ( aIpc )
-        {
-        case ESatNotifyCallControlRequest:
-            {
-            ret = iNotifyCallControlRequest->CancelNotification( 
-                aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyDisplayTextPCmd:
-            {
-            ret = iNotifyDisplayText->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyGetInkeyPCmd:
-            {
-            ret = iNotifyGetInkey->CancelNotification( aTsyReqHandle );
-            break;        
-            }
-        case ESatNotifyGetInputPCmd:
-            {
-            ret = iNotifyGetInput->CancelNotification( aTsyReqHandle );
-            break;        
-            }
-        case ESatNotifyPlayTonePCmd:
-            {
-            ret = iNotifyPlayTone->CancelNotification( aTsyReqHandle );
-            break;        
-            }
-        case ESatNotifySetUpMenuPCmd:
-            {
-            ret =  iNotifySetUpMenu->CancelNotification( aTsyReqHandle );
-            break;        
-            }
-        case ESatNotifySelectItemPCmd:
-            {
-            ret = iNotifySelectItem->CancelNotification( aTsyReqHandle );
-            break;        
-            }
-        case ESatNotifySendSmPCmd:
-            {
-            ret = iNotifySendSm->CancelNotification( aTsyReqHandle );
-            break;        
-            }
-        case ESatNotifySendSsPCmd:
-            {
-            ret = iNotifySendSs->CancelNotification( aTsyReqHandle );
-            break;        
-            }
-        case ESatNotifySetUpEventListPCmd:
-            {
-            ret = iNotifySetUpEventList->CancelNotification( aTsyReqHandle );
-			break;
-            }
-		case ESatNotifySendUssdPCmd:
-            {
-            ret = iNotifySendUssd->CancelNotification( aTsyReqHandle );
-            break;        
-            }
-        case ESatNotifySetUpIdleModeTextPCmd:
-            {
-            ret = iNotifySetUpIdleModeText->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifySetUpCallPCmd:
-            {
-            ret = iNotifySetUpCall->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyRefreshPCmd:
-            {
-            ret = iNotifyRefresh->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyRefreshRequiredParam:
-        	{
-            ret = iNotifyRefresh->CancelRefreshRequiredNotification( 
-            	aTsyReqHandle );
-            break;            
-        	}
-        case ESatNotifySendDtmfPCmd:
-            {
-            ret = iNotifySendDtmf->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyLanguageNotificationPCmd:
-            {
-            ret = iNotifyLanguageNotification->CancelNotification(
-                  	aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyLaunchBrowserPCmd:
-            {
-            ret = iNotifyLaunchBrowser->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyLocalInfoPCmd:
-            {
-            ret = iNotifyLocalInfo->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyProactiveSimSessionEnd:
-            {
-            ret = iNotifySimSessionEnd->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyOpenChannelPCmd:
-            {
-            ret = iNotifyOpenChannel->CancelNotification( aTsyReqHandle );
-            break;
-            }
-        case ESatNotifyGetChannelStatusPCmd:
-       		{
-       		ret = iNotifyGetChannelStatus->CancelNotification( aTsyReqHandle );
-       		break;	
-       		}
-        case ESatNotifyCloseChannelPCmd:
-        	{
-       		ret = iNotifyCloseChannel->CancelNotification( aTsyReqHandle );
-        	break;
-        	}
-       	case ESatNotifySendDataPCmd:
-       		{
-       		ret = iNotifySendData->CancelNotification( aTsyReqHandle );
-       		break;	
-       		}
-       	case ESatNotifyReceiveDataPCmd:
-        	{
-        	ret = iNotifyReceiveData->CancelNotification( aTsyReqHandle );
-        	break;	
-        	} 	        			                     
-        case ESatNotifyMoSmControlRequest:
-            {
-            ret = iNotifyMoSmControlRequest->CancelNotification( 
-                	aTsyReqHandle );
-            break;
-            }
-        default:
-        	{        	
-            ret = KErrNone; 
-            break;
-        	}
-        }
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::SetPollingResultL
-// Sends terminal response according to the response coming from DOS.
-// This method handles both PollingInterval and PollingOff proactive commands.
-// -----------------------------------------------------------------------------
-//
-void CSatNotificationsTsy::SetPollingResultL
-        ( 
-        CSatDataPackage* aDataPackage,
-        TInt aErrorCode
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::SetPollingResultL");
-    TUint8 pCmdNumber;
-    TUint8 interval;
-    TBuf<RSat::KAdditionalInfoMaxSize> additionalInfo;
-    aDataPackage->UnPackData( pCmdNumber, interval );
-    
-    // NAA status OK 
-    if ( KErrNone == aErrorCode ) 
-        {
-        if ( iPollingOff )
-            {
-            TFLOGSTRING("CSAT: CSatNotificationsTsy::SetPollingResultL, \
-                Polling Off");
-            additionalInfo.Zero();
-            additionalInfo.Append( RSat::KNoAdditionalInfo );
-            iNotifyPollingOff->CreateTerminalRespL( pCmdNumber,
-                RSat::KSuccess, additionalInfo );
-            }
-        else
-            {
-            iNotifyPollInterval->CreateTerminalRespL( pCmdNumber, 
-            	RSat::KSuccess, RSat::KNoAdditionalInfo, interval );
-            }
-        }    
-    // NAA status not OK
-	else
-        {
-        TFLOGSTRING("CSAT: CSatNotificationsTsy::SetPollingResultL, \
-        	NAA Status Not OK, means that value in request is out of range\
-        	and default value is used.");
-        if ( iPollingOff )
-            {
-            iPollingOff = EFalse;
-            additionalInfo.Zero();
-            additionalInfo.Append( RSat::KNoSpecificMeProblem );
-            iNotifyPollingOff->CreateTerminalRespL( pCmdNumber,
-                    RSat::KMeUnableToProcessCmd, additionalInfo );
-            }
-        else
-            {
-            // If last request rejected (request was over 25 seconds),
-            // renew the request with legacy maximum.. 
-            if ( iLongPollIntervalReq )
-                {
-                TFLOGSTRING("CSAT: CSatNotificationsTsy::SetPollingResultL, \
-        	        Request set to legacy maximum (25 seconds)");
-                SetPollingIntervalL( KMaxLegacyPollInterval );
-                iLongPollIntervalReq = EFalse;
-                }
-            // ..otherwise there was an actual error.
-            else
-                {
-                iNotifyPollInterval->CreateTerminalRespL( pCmdNumber, 
-                	RSat::KMeUnableToProcessCmd, RSat::KNoSpecificMeProblem, 
-                	interval );
-                }
-            }
-        }
-            
-    // Terminal Response is sent or the request was resent, reset flag
-    iLongPollIntervalReq = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::SetPollingIntervalL
-// Set Polling Interval, sending a request to DOS
-// -----------------------------------------------------------------------------
-//
-void CSatNotificationsTsy::SetPollingIntervalL
-        (
-        TUint8 aValue
-        )
-    {
-    TFLOGSTRING2("CSAT: CSatNotificationsTsy::SetPollingIntervalL, Value: %d",
-        aValue);
-    
-    if ( KMaxLegacyPollInterval < aValue )
-        {
-        iLongPollIntervalReq = ETrue;
-        }
-
-    TBuf8<1> data;
-    data.Append( aValue );
-    // Pack data
-    CSatDataPackage dataPackage;
-	dataPackage.PackData( &data );
-    iSatTsy->MessageManager()->HandleRequestL( ESatTsySetPolling, 
-    	&dataPackage );
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::TimerExpirationL
-// Converts timerValue to semi-octets and forwards message to LicenceeSimAtkTsy
-// -----------------------------------------------------------------------------
-//
-TInt CSatNotificationsTsy::TimerExpirationL
-        (
-        TInt aTimerId,
-        TUint32 aTimerValue 
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::TimerExpirationL");
-    TUint8 time[3] = {0, 0, 0}; 
-    TInt num[3];
-    num[0] = aTimerValue / 3600;         // Hours
-    num[1] = ( aTimerValue % 3600 )/60;  // Minutes
-    num[2] = ( aTimerValue % 3600 )%60;  // Seconds
-
-    for ( TInt i = 0; i < 3; i++ )
-        { 
-        // Convert to semi-octet
-        time[i] = TSatUtility::ConvertToSemiOctet( num[i] );
-        }
-        
-	TTlv data;    
-    data.Begin( KBerTlvTimerExpirationTag );  
-    // Create Device Identity TLV
-    // Device identity tag
-    data.AddTag( KTlvDeviceIdentityTag ); 
-    // Source device identity = ME
-    data.AddByte( KMe ); 
-    // Destination device identity = SIM
-    data.AddByte( KSim );
-    // Value KTlvTimerIdentifierTagCRBitOn ( 0xA4 ) is added,
-    // because used KTlvTimerIdentifierTag ( 0x24 ) doesn't
-    // include comprehension bit in tag the value and it is expected
-    // to be present in indications and terminal responses.
-    data.AddTag( KTlvTimerIdentifierTagCRBitOn );
-    data.AddByte( static_cast< TUint8 >( aTimerId ) );
-    // Timer value in semi-octets
-    data.AddTag( KTlvTimerValueTag );
-    data.AddByte( time[0] ); // Hours
-    data.AddByte( time[1] ); // Minutes
-    data.AddByte( time[2] ); // Seconds
-	// Pack parameter for DOS call
-    TPtrC8 berTlv = data.End();
-	CSatDataPackage dataPackage;
-	dataPackage.PackData( &berTlv );
-
-	return iSatTsy->MessageManager()->HandleRequestL( 
-        ESatTsyTimerExpiredIPC, &dataPackage );
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::GetSatTimer
-// Returns iSatTimer pointer and control to calling object
-// -----------------------------------------------------------------------------
-//
-CSatTimer* CSatNotificationsTsy::GetSatTimer
-        (
-        // None 
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::GetSatTimer");
-    // Pointer to SAT timer
-    return iSatTimer; 
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::SatNotifySetUpCall
-// Return pointer to CSatNotifySetUpCall.
-// -----------------------------------------------------------------------------
-//
-CSatNotifySetUpCall* CSatNotificationsTsy::SatNotifySetUpCall
-        (
-        // None
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::SatNotifySetUpCall");
-    // Pointer to NotifySetupCall
-    return iNotifySetUpCall;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::SetProactiveCommandOnGoingStatus
-// Sets proactive command on-going status 
-// -----------------------------------------------------------------------------
-//
-void CSatNotificationsTsy::SetProactiveCommandOnGoingStatus
-        (
-        CSatDataPackage* aDataPackage,  
-		TInt /*aResult*/             
-        )
-    {
-	TFLOGSTRING("CSAT: CSatNotificationsTsy::\
-		SetProactiveCommandOnGoingStatus");
-    TBool ProactiveCommandOngoingStatus;
-    aDataPackage->UnPackData( ProactiveCommandOngoingStatus );
-    iSatTimer->SetProactiveCommandOnGoingStatus( 
-    	ProactiveCommandOngoingStatus ); 
-    }
-    
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::CompletePCmdL
-// Forwards the received Proactive command data to the correct Notify class
-// based on the type of command.
-// -----------------------------------------------------------------------------
-//
-TInt CSatNotificationsTsy::CompletePCmdL
-        (
-        CSatDataPackage* aDataPackage,
-        TInt aResult
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::CompletePCmdL");
-
-    TPtrC8* data;
-    aDataPackage->UnPackData( &data );
-    CBerTlv berTlv;
-    berTlv.SetData( *data );
-	CTlv commandDetails;
-	berTlv.TlvByTagValue( &commandDetails, KTlvCommandDetailsTag );
-    TInt ret( KErrNone );
-    // Set flag on to indicate that proactive command is ongoing
-    iSatTimer->SetProactiveCommandOnGoingStatus( ETrue );
-    
-    switch( commandDetails.GetShortInfo( ETLV_TypeOfCommand ) )
-        {
-        case KDisplayText:
-            {
-            ret = iNotifyDisplayText->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KGetInkey:
-            {
-            ret = iNotifyGetInkey->CompleteNotifyL( aDataPackage, aResult );            
-            break;    
-            }
-        case KGetInput:         
-            {
-            ret = iNotifyGetInput->CompleteNotifyL( aDataPackage, aResult );
-            break;    
-            }
-        case KPlayTone:         
-            {
-            ret = iNotifyPlayTone->CompleteNotifyL( aDataPackage, aResult );
-            break;    
-            }
-        case KSetUpMenu:     
-            {
-            ret = iNotifySetUpMenu->CompleteNotifyL( aDataPackage, aResult );
-            break;    
-            }
-        case KSelectItem:
-            {
-            ret = iNotifySelectItem->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KSendShortMessage:         
-            {
-            ret = iNotifySendSm->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KSendSs:
-            {
-            ret = iNotifySendSs->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KSendUssd:
-            {
-            ret = iNotifySendUssd->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KSetUpCall:
-            {
-            ret = iNotifySetUpCall->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KRefresh:
-            {
-            ret = iNotifyRefresh->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KSetUpIdleModeText:
-            {
-			ret = iNotifySetUpIdleModeText->CompleteNotifyL( aDataPackage, 
-					aResult );
-            break;
-            }
-        case KPollInterval:
-            {
-            ret = iNotifyPollInterval->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KSendDtmf:
-            {
-            ret = iNotifySendDtmf->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KSetUpEventList:
-            {
-            ret = iNotifySetUpEventList->CompleteNotifyL( aDataPackage, 
-            		aResult );
-            break;
-            }
-        case KPollingOff:
-            {
-            ret = iNotifyPollingOff->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KProvideLocalInformation:
-            {
-            ret = iNotifyLocalInfo->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KTimerManagement:
-            {
-            ret = iNotifyTimerMgmt->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KMoreTime:
-            {
-            ret = iNotifyMoreTime->CompleteNotifyL( aDataPackage, aResult );
-            break;
-            }
-        case KLaunchBrowser: 
-            {
-            ret = iNotifyLaunchBrowser->CompleteNotifyL( aDataPackage, 
-            		aResult );
-			break;
-            }
-        case KLanguageNotification:
-            {
-            ret = iNotifyLanguageNotification->CompleteNotifyL( aDataPackage, 
-            		aResult );
-            break;
-            }          
-		case KOpenChannel:
-			{
-			ret = iNotifyOpenChannel->CompleteNotifyL( aDataPackage, aResult );
-			break;
-			}
-		case KCloseChannel:
-			{
-			ret = iNotifyCloseChannel->CompleteNotifyL( aDataPackage, aResult );
-			break;
-			}		
-		case KReceiveData:
-			{
-			ret = iNotifyReceiveData->CompleteNotifyL( aDataPackage, aResult );
-			break;
-			}		
-		case KSendData:
-			{
-			ret = iNotifySendData->CompleteNotifyL( aDataPackage, aResult );
-			break;
-			}		
-		case KGetChannelStatus:            
-			{
-			ret = iNotifyGetChannelStatus->CompleteNotifyL( aDataPackage, 
-					aResult );
-			break;
-			}
-        default:
-            {
-            TFLOGSTRING("CSAT: CSatNotificationsTsy::CompletePCmdL, \
-            	Proactive command not supported" );
-        	// If proactive command is not supported, terminal response
-            // with "Command is beyond ME's capabilities" information 
-            // will be send. 
-            // Get command details tlv and set it to the struct
-        	iTerminalRespData.iCommandDetails.Copy( commandDetails.Data() );
-        	// Create and append response data
-        	TTlv tlvSpecificData;
-        	// Create General Result TLV here
-        	tlvSpecificData.AddTag( KTlvResultTag );
-        	tlvSpecificData.AddByte( KCommandBeyondMeCapabilities );
-        	TPtrC8 data = tlvSpecificData.GetDataWithoutTopLevelTag();
-        	CSatDataPackage dataPackage;
-        	dataPackage.PackData( &iTerminalRespData, &data );
-            // Forward request to the DOS
-    		ret = iSatTsy->MessageManager()->HandleRequestL( 
-					ESatTerminalRsp, &dataPackage );	 
-            break;
-            }
-
-        } // End of switch (msg type)
-
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::IsMoSmControlActivated
-// Returns ETrue if MO-SMS Control is activated
-// -----------------------------------------------------------------------------
-//
-TBool CSatNotificationsTsy::IsMoSmControlActivated
-		(
-		void
-		)
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::IsMoSmControlActivated");
-    return iNotifyMoSmControlRequest->ActivationStatus();
-    }
-     
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::SetPollingOff
-// Set PollingOff value
-// -----------------------------------------------------------------------------
-//
-void CSatNotificationsTsy::SetPollingOffStatus
-		( 
-		TBool aPollingOff 
-		)
-	{
-	TFLOGSTRING2("CSAT: CSatNotificationsTsy::SetPollingOffStatus \
-		status: %d", aPollingOff);
-	iPollingOff = aPollingOff;		
-	}
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::SetPollingOff
-// Returns iPollingOff
-// -----------------------------------------------------------------------------
-//	
-TBool CSatNotificationsTsy::PollingOffStatus
-		( 
-		// None
-		)
-	{
-	TFLOGSTRING("CSAT: CSatNotificationsTsy::PollingOffStatus");
-	return iPollingOff;		
-	}
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::AddLocationInformationToTlv
-// Adds location informating to given TTlv.
-// -----------------------------------------------------------------------------
-//
-void CSatNotificationsTsy::AddLocationInformationToTlv
-        (
-        TTlv& aTlv 
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::AddLocationInformationToTlv");
-    
-    // Get the current location data from CSatNotifyLocalInfo
-    const TLocalInformation& locInfo = iNotifyLocalInfo->LocalInformation();
-        
-    // Add location information data, start with the tag
-    aTlv.AddTag( KTlvLocationInformationTag );
-    // Append Mobile Country  & Network Codes, 3 bytes
-    aTlv.AddData( locInfo.iOperatorCode );
-    // Append Location Area Code (LAC)
-    aTlv.AddByte( static_cast<TUint8>( locInfo.iLocationAreaCode >> 8 ) );//msb
-    aTlv.AddByte( static_cast<TUint8>( locInfo.iLocationAreaCode >> 0 ) );//lsb
-    // Append Cell Id
-    aTlv.AddByte( static_cast<TUint8>( locInfo.iCellId >> 8 ) ); // msb
-    aTlv.AddByte( static_cast<TUint8>( locInfo.iCellId >> 0 ) ); // lsb
-    }	
-    
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::NotifyClientForAlphaId
-// Requests completion for the ESatNotifyCallControlRequestPCmdReqType
-// -----------------------------------------------------------------------------
-//
-void CSatNotificationsTsy::NotifyClientForAlphaId
-	    (
-	    RSat::TAlphaIdBuf& aAlphaId,
-	    RSat::TControlResult aResult 
-	    )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::NotifyClientForAlphaId");
-    iNotifyCallControlRequest->CompleteAlphaId( aAlphaId, aResult, KErrNone );
-    }
-    
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::RequestHandleStore
-// Returns pointer to the request handle store
-// -----------------------------------------------------------------------------
-//
-CSatTsyReqHandleStore* CSatNotificationsTsy::RequestHandleStore
-	    (
-	    void
-	    )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::RequestHandleStore");
-    return iSatReqHandleStore;
-    }
-    	       
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::NotifySatReadyForNotification
-// Passes a Sat ready indication to DOS and requests the possible pending
-// Proactive command
-// -----------------------------------------------------------------------------
-//
-TInt CSatNotificationsTsy::NotifySatReadyForNotification
-	    (
-	    TUint8 aPCmdMsgType 
-	    )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::NotifySatReadyForNotification");
-    TInt ret( KErrNone );
-    // Pack parameter for DOS call
-	CSatDataPackage dataPackage;
-	dataPackage.PackData( &aPCmdMsgType );
-	TRAPD( trapError, ret = iSatTsy->MessageManager()->HandleRequestL( 
-		ESatTsyGetIfPendingNotification, &dataPackage ) 
-		);
-		
-	if ( trapError )
-		{
-		ret = trapError;
-		TFLOGSTRING2("CSAT: CSatNotificationsTsy::NotifySatReadyForNotification\
-			Trap error: %d", trapError);
-		}
-		
-	return ret;
-    }
-                
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::TerminalResponseL
-// Called by ETel server, passes a response to SIM
-// -----------------------------------------------------------------------------
-//
-TInt CSatNotificationsTsy::TerminalResponseL
-            (                    
-            RSat::TPCmd*    aPCmd,         
-            TDes8*          aRsp,           
-            TTsyReqHandle   aTsyReqHandle   
-            ) 
-    {
-    TFLOGSTRING2("CSAT: CSatNotificationsTsy::TerminalResponseL.\
-        \n\t\t\t Handle:%d\n\t\t\t", aTsyReqHandle );
-
-    TInt ret( KErrNone );
-
-    switch ( *aPCmd )
-        {
-        case RSat::EDisplayText:
-            {
-            ret = iNotifyDisplayText->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::EGetInkey:
-            {
-            ret = iNotifyGetInkey->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::EGetInput:
-            {
-            ret = iNotifyGetInput->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::EPlayTone:
-            {
-            ret = iNotifyPlayTone->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ESetUpMenu:
-            {
-            ret = iNotifySetUpMenu->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ESelectItem:
-            {
-            ret = iNotifySelectItem->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ESendSm:
-            {
-            ret = iNotifySendSm->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ESendSs:
-            {
-            ret = iNotifySendSs->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ESetUpEventList:
-            {
-            ret = iNotifySetUpEventList->TerminalResponseL( aRsp );
-            break;
-            }
-       	case RSat::ESendUssd:
-            {
-            ret = iNotifySendUssd->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ESetUpIdleModeText:
-            {
-            ret = iNotifySetUpIdleModeText->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ESetUpCall:
-            {
-            ret = iNotifySetUpCall->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ERefresh:
-            {
-            ret = iNotifyRefresh->TerminalResponseL( aRsp );
-            break;
-            } 
-        case RSat::ELaunchBrowser:
-            {
-            ret = iNotifyLaunchBrowser->TerminalResponseL( aRsp );
-            break;
-            }
-		case RSat::ESendDtmf:
-            {
-			ret = iNotifySendDtmf->TerminalResponseL( aRsp );
-			break;
-            }
-        case RSat::ELocalInfo:
-            {
-            ret = iNotifyLocalInfo->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::ELanguageNotification:
-            {
-            ret = iNotifyLanguageNotification->TerminalResponseL( aRsp );
-            break;
-            }
-        case RSat::EOpenChannelCs:
-        case RSat::EOpenChannelGprs:
-        case RSat::EOpenChannelLocal:
-            {
-            ret = iNotifyOpenChannel->TerminalResponseL( aRsp );
-            break;
-            }
-       	case RSat::EGetChannelStatus:
-       		{
-       		ret = iNotifyGetChannelStatus->TerminalResponseL( aRsp );
-       		break;	
-       		}
-		case RSat::ECloseChannel:
-        	{
-       		ret = iNotifyCloseChannel->TerminalResponseL( aRsp );
-        	break;
-        	}
-       	case RSat::ESendData:
-       		{
-       		ret = iNotifySendData->TerminalResponseL( aRsp );
-       		break;	
-       		}
-       	case RSat::EReceiveData:
-        	{
-        	ret = iNotifyReceiveData->TerminalResponseL( aRsp );
-        	break;	
-        	}	         			                            
-        default:
-        	{
-        	TFLOGSTRING("CSAT: CSatNotificationsTsy::TerminalResponseL.\
-        		Proactive command unknown" );
-            ret =  KErrGeneral;
-            break;
-        	}
-        }
-	
-    // We must complete the request to the client right away, as an
-	// indication that the request has been handled
-    iSatTsy->ReqCompleted( aTsyReqHandle, ret );
-
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::CompleteTerminalResponse
-// This method completes an outstanding asynchronous Terminal response request. 
-// -----------------------------------------------------------------------------
-//
-void CSatNotificationsTsy::CompleteTerminalResponse
-        (
-        TInt aErrorCode     // Error code
-        )
-    {
-    TFLOGSTRING2("CSAT: CSatNotificationsTsy::CompleteTerminalResponse - \
-    	Error:%d", aErrorCode);
-
-    TTsyReqHandle reqHandle = iSatTsy->GetSatReqHandleStore()->
-        ResetTsyReqHandle( CSatTsy::ESatTerminalRspReqType );
-
-    // Check if handle for terminal response exists
-    if ( CSatTsy::ESatReqHandleUnknown != reqHandle )
-        {
-        // Complete the request
-        iSatTsy->ReqCompleted( reqHandle, aErrorCode );
-        }
-   
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::CommandPerformedSuccessfully
-// Test if a proactive command was performed successfully
-// -----------------------------------------------------------------------------
-//
-TBool CSatNotificationsTsy::CommandPerformedSuccessfully
-        ( 
-        TUint8 aGeneralResult 
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::CommandPerformedSuccessfully");
-    TBool ret( EFalse );
-	switch ( aGeneralResult )
-	    { 
-        case RSat::KSuccess:
-        case RSat::KPartialComprehension:
-        case RSat::KMissingInformation:
-        case RSat::KRefreshAdditionEFRead:
-        case RSat::KSuccessRequestedIconNotDisplayed:
-        case RSat::KModifiedByCallControl:
-        case RSat::KSuccessLimitedService:
-        case RSat::KPerformedWithModifications:
-        case RSat::KRefreshUSIMNotActive:
-        	{
-    		ret = ETrue;
-            break;
-        	}
-	    default:
-	    	{	
-	    	TFLOGSTRING("CSAT: CSatNotificationsTsy:: \
-	    		CommandPerformedSuccessfully, EFalse");
-		    ret = EFalse;
-		    break;
-	    	}
-	    }
-    return ret;
-   }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::NotifyCbDownload
-// Called by ETel server, passes a cell broadcast download response to NAA
-// -----------------------------------------------------------------------------
-//
-TInt CSatNotificationsTsy::NotifyCbDownload
-        (
-        TTsyReqHandle   aTsyReqHandle 
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::NotifyCbDownload");
-    TInt ret( KErrNone );
-    iSatTsy->ReqCompleted( aTsyReqHandle, ret );   
-    return ret; 
-    }
-
-// -----------------------------------------------------------------------------
-// CSatNotificationsTsy::NotifySmsPpDownload
-// Called by ETel server, passes a Sms Pp download response to NAA
-// -----------------------------------------------------------------------------
-//
-TInt CSatNotificationsTsy::NotifySmsPpDownload
-        (
-        TTsyReqHandle   aTsyReqHandle
-        )
-    {
-    TFLOGSTRING("CSAT: CSatNotificationsTsy::NotifySmsPpDownload");
-    TInt ret( KErrNone );
-    iSatTsy->ReqCompleted( aTsyReqHandle, ret );   
-    return ret; 
-    }
-
-//  End of File 
+// Copyright (c) 2006-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:
+// Name        : CSatNotificationsTsy.cpp
+// Part of     : Common SIM ATK TSY / commonsimatktsy
+// Notifications-related functionality of Sat Tsy
+// Version     : 1.0
+//
+
+
+
+
+//INCLUDES
+#include <satcs.h>                  // Etel SAT IPC definitions
+#include "CSatDataPackage.h"        // Parameter packing 
+#include "CSatTsy.h"                // Sat Tsy class
+#include "CSatCCTsy.h"              // Sat Call Contol Tsy class
+#include "cmmmessagemanagerbase.h"  // Message manager class for forwarding req
+#include "CSatNotificationsTsy.h"   // Class header
+#include "CSatNotifyDisplayText.h"  // Display text specific notify class
+#include "CSatNotifyGetInkey.h"     // Get inkey specific notify class
+#include "CSatNotifySimSessionEnd.h"// Sim session end specific notify class
+#include "CSatNotifyGetInput.h"		// Get input specific notify class
+#include "CSatNotifyPlayTone.h"		// Play tone specific notify class
+#include "CSatNotifySetUpMenu.h"	// Set-up menu specific notify class
+#include "CSatNotifySelectItem.h"	// Select item specific notify class
+#include "CSatNotifySendSm.h"		// Send SMS specific notify class
+#include "CSatNotifySendUssd.h"		// Send USSD specific notify class
+#include "CSatNotifySendSs.h"		// Send SS specific notify class
+#include "CSatNotifySetUpIdleModeText.h"// Set up idle mode notify class
+#include "CSatNotifyLaunchBrowser.h"// Launch browser specific notify class
+#include "CSatNotifyCallControlRequest.h"// Call control notify class
+#include "CSatNotifySetUpCall.h"    // Set up call specific notify class
+#include "CSatNotifySetUpEventList.h"    // Set up event list notify class
+#include "CSatNotifyTimerMgmt.h"    // Timer management specific notify class
+#include "CSatNotifyLanguageNotification.h"// Language notification notify class
+#include "CSatNotifySendDtmf.h"     // Send Dtmf notification  notify class
+#include "CSatNotifyRefresh.h"      // Refresh notification  notify class
+#include "CSatNotifyPollingOff.h"   // Polling off notification  notify class
+#include "CSatNotifyPollInterval.h" // Poll interval notification  notify class
+#include "CSatNotifyLocalInfo.h"    // Local info notification  notify class
+#include "CSatNotifyRefresh.h"      // Refresh notification  notify class
+#include "CSatNotifyOpenChannel.h"	// Open channel notification  notify class
+#include "CSatNotifyGetChannelStatus.h"// Get channel status notify notify class
+#include "CSatNotifyMoSmControlRequest.h"// MO SM Control notify class      
+#include "CSatNotifyCloseChannel.h"	// Close channel notification  notify class
+#include "CSatNotifySendData.h"		// Send Data notification  notify class
+#include "CSatNotifyReceiveData.h"  // Receive data notification  notify class
+#include "CSatNotifyMoreTime.h"		// More time notification  notify class
+#include "CSatTsyReqHandleStore.h"  // Request handle class
+#include "TfLogger.h"               // For TFLOGSTRING
+#include "CBerTlv.h"                // Ber Tlv
+#include "TTlv.h"					// TTlv class
+#include "msattsy_ipcdefs.h"		// Sat Tsy specific request types
+#include "TSatUtility.h"            // Utilities
+
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CSatNotificationsTsy* CSatNotificationsTsy::NewL
+        (    
+        CSatTsy* aSatTsy,
+		CSatTsyReqHandleStore* aSatReqHandleStore
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::NewL");
+    CSatNotificationsTsy* const satNotificationsTsy = 
+        new ( ELeave ) CSatNotificationsTsy( aSatTsy, aSatReqHandleStore );
+
+    CleanupStack::PushL( satNotificationsTsy );
+    satNotificationsTsy->ConstructL();
+    CleanupStack::Pop();
+    
+	TFLOGSTRING("CSAT: CSatNotificationsTsy::NewL, end of method");
+    return satNotificationsTsy;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::~CSatNotificationsTsy
+// Destructor
+// -----------------------------------------------------------------------------
+//    
+CSatNotificationsTsy::~CSatNotificationsTsy
+        (    
+        void   
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::~CSatNotificationsTsy");
+    
+    delete iSatTimer;
+
+    // Specific notification objects
+    delete iNotifyDisplayText;
+    delete iNotifyGetInkey;
+	delete iNotifyGetInput;
+    delete iNotifyPlayTone;
+	delete iNotifySetUpMenu;
+    delete iNotifySelectItem;
+	delete iNotifySendSm;
+	delete iNotifySendSs;
+	delete iNotifySendUssd;
+	delete iNotifySetUpIdleModeText;
+    delete iNotifyLaunchBrowser; 
+    delete iNotifyCallControlRequest; 
+    delete iNotifySimSessionEnd;
+    delete iNotifySetUpCall;
+    delete iNotifySetUpEventList;
+    delete iNotifySendDtmf;
+    delete iNotifyPollingOff;
+    delete iNotifyPollInterval;
+    delete iNotifyLanguageNotification;
+    delete iNotifyLocalInfo;
+    delete iNotifyTimerMgmt;
+    delete iNotifyRefresh;
+	delete iNotifyOpenChannel;
+	delete iNotifyGetChannelStatus;
+    delete iNotifyMoSmControlRequest;
+	delete iNotifyCloseChannel;
+	delete iNotifySendData;
+	delete iNotifyReceiveData;
+	delete iNotifyMoreTime;
+
+    // Unregister.
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotificationsTsyObjType, NULL );
+	TFLOGSTRING("CSAT: CSatNotificationsTsy::~CSatNotificationsTsy, \
+		end of method");
+    }
+    
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::CSatNotificationsTsy
+// C++ constructor
+// -----------------------------------------------------------------------------
+//
+CSatNotificationsTsy::CSatNotificationsTsy
+        (    
+        CSatTsy* aSatTsy,
+		CSatTsyReqHandleStore* aSatReqHandleStore
+        ): iSatTsy( aSatTsy ), iSatReqHandleStore( aSatReqHandleStore )
+
+    {
+    // None
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::ConstructL
+// Symbian 2nd phase constructor. Initialises internal attributes.
+// -----------------------------------------------------------------------------
+//
+void CSatNotificationsTsy::ConstructL
+        (    
+        void
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::ConstructL\n" );
+
+    // Register
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotificationsTsyObjType, this );
+
+    // Initialize SAT Notifications objects
+    iNotifyDisplayText = CSatNotifyDisplayText::NewL( this );
+	iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyDisplayTextObjType, iNotifyDisplayText );
+    
+	iNotifyGetInkey = CSatNotifyGetInkey::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyGetInkeyObjType, iNotifyGetInkey );
+	
+	iNotifyGetInput = CSatNotifyGetInput::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyGetInputObjType, iNotifyGetInput );
+	
+	iNotifyPlayTone = CSatNotifyPlayTone::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyPlayToneObjType, iNotifyPlayTone );
+
+	iNotifySetUpMenu = CSatNotifySetUpMenu::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySetUpMenuObjType, iNotifySetUpMenu );
+
+	iNotifySelectItem = CSatNotifySelectItem::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySelectItemObjType, iNotifySelectItem );
+
+	iNotifySendSm = CSatNotifySendSm::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySendSmsObjType, iNotifySendSm );
+
+	iNotifySendSs = CSatNotifySendSs::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySendSsObjType, iNotifySendSs );
+
+	iNotifySendUssd = CSatNotifySendUssd::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySendUssdObjType, iNotifySendUssd );
+
+	iNotifySetUpIdleModeText = CSatNotifySetUpIdleModeText::NewL( this );
+	iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySetUpIdleModeTextObjType, 
+		iNotifySetUpIdleModeText );
+
+	iNotifyLaunchBrowser = CSatNotifyLaunchBrowser::NewL( this );
+	iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyLaunchBrowserObjType, 
+		iNotifyLaunchBrowser );
+
+	iNotifyCallControlRequest = CSatNotifyCallControlRequest::NewL( this );
+	iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyCallControlRequestObjType, 
+		iNotifyCallControlRequest );
+
+	iNotifySimSessionEnd = CSatNotifySimSessionEnd::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySimSessionEndObjType, 
+		iNotifySimSessionEnd );
+
+    iNotifySetUpCall = CSatNotifySetUpCall::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySetUpCallObjType, iNotifySetUpCall );
+
+    iNotifyRefresh = CSatNotifyRefresh::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyRefreshObjType, iNotifyRefresh );
+
+    iNotifyPollInterval = CSatNotifyPollInterval::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyPollIntervalObjType, 
+		iNotifyPollInterval );
+
+    iNotifySendDtmf = CSatNotifySendDtmf::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySendDtmfObjType, iNotifySendDtmf );
+
+    iNotifySetUpEventList = CSatNotifySetUpEventList::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySetUpEventListObjType, 
+		iNotifySetUpEventList );
+
+    iNotifyPollingOff = CSatNotifyPollingOff::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyPollingOffObjType, iNotifyPollingOff );
+
+    iNotifyLocalInfo = CSatNotifyLocalInfo::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyLocalInfoObjType, iNotifyLocalInfo );
+
+    iNotifyTimerMgmt = CSatNotifyTimerMgmt::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyTimerMgmtObjType, iNotifyTimerMgmt );
+
+    iNotifyLanguageNotification = CSatNotifyLanguageNotification::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyLanguageNotificationObjType, 
+		iNotifyLanguageNotification );
+
+	iNotifyOpenChannel = CSatNotifyOpenChannel::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyOpenChannelObjType, 
+			iNotifyOpenChannel );	
+    
+    iNotifyMoSmControlRequest = CSatNotifyMoSmControlRequest::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyMoSmControlRequestObjType, 
+			iNotifyMoSmControlRequest );   
+	
+	iNotifyGetChannelStatus = CSatNotifyGetChannelStatus::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyGetChannelStatusObjType, 
+			iNotifyGetChannelStatus );
+	
+	iNotifyCloseChannel = CSatNotifyCloseChannel::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyCloseChannelObjType, 
+			iNotifyCloseChannel );
+	
+	iNotifySendData = CSatNotifySendData::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifySendDataObjType, iNotifySendData );
+	
+	iNotifyReceiveData = CSatNotifyReceiveData::NewL( this );
+    iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyReceiveDataObjType, 
+			iNotifyReceiveData );					
+    
+    iNotifyMoreTime = CSatNotifyMoreTime::NewL( this );
+   	iSatTsy->MessageManager()->RegisterTsyObject(
+		CMmMessageManagerBase::ESatNotifyMoreTimeObjType, iNotifyMoreTime );
+
+    // Initialize timer, this is used for implementing timer management
+    iSatTimer = CSatTimer::NewL( this );
+    		
+    // Initalize flag, this is used to check if proactiveCommand is ongoing
+    iSatTimer->SetProactiveCommandOnGoingStatus( EFalse );
+
+	// Set polling status to the use of the default value ( 25 sec. )
+    iPollingOff = ETrue;
+    
+    // No long poll interval requests yet
+    iLongPollIntervalReq = EFalse;
+
+    // Buffering for Proactive commands that are not notified by SatServer
+    NotifySatReadyForNotification( KPollInterval );
+    NotifySatReadyForNotification( KPollingOff );
+    NotifySatReadyForNotification( KMoreTime );
+    NotifySatReadyForNotification( KTimerManagement );
+
+    // Request IMEI code. Needed in provide local info proactive command.
+    iSatTsy->MessageManager()->HandleRequestL( ESatTsyGetIMEI );
+    
+    // Checks if MO-SMS control should be activated
+    //unnecassary IPC request as this is already called in CSatNotifyMoSmControlRequest::ConstructL 
+    //iSatTsy->MessageManager()->HandleRequestL( ESatTsyQueryMoSmsControlActivated );
+	TFLOGSTRING("CSAT: CSatNotificationsTsy::ConstructL, end of method" );
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::DoExtFunc
+// Notifications-specific functionality of CSatTsy::DoExtFuncL
+// -----------------------------------------------------------------------------
+//
+TInt CSatNotificationsTsy::DoExtFuncL
+        ( 
+        const TTsyReqHandle aTsyReqHandle, 
+        const TInt aIpc,                   
+        const TDataPackage& aPackage      
+        )
+    {
+    TFLOGSTRING3("CSAT: CSatNotificationsTsy::DoExtFuncL\t IPC:%d,\t Handle:%d",
+               aIpc, aTsyReqHandle);
+
+    TInt ret ( KErrNone );
+
+    TAny* dataPtr = aPackage.Ptr1();
+
+    switch ( aIpc )
+        {
+	    case ESatTerminalRsp:
+            {
+			TerminalResponseL( reinterpret_cast< RSat::TPCmd* >( dataPtr ),
+                 aPackage.Des2n(), aTsyReqHandle );
+			break;
+            }
+        case ESatNotifyDisplayTextPCmd:
+            {
+            iNotifyDisplayText->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifySelectItemPCmd:
+            {
+            iNotifySelectItem->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifyGetInkeyPCmd:
+            {
+            iNotifyGetInkey->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifyGetInputPCmd:
+            {
+            iNotifyGetInput->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifyPlayTonePCmd:
+            {
+            iNotifyPlayTone->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifySetUpMenuPCmd:
+            {
+            iNotifySetUpMenu->Notify( aTsyReqHandle, aPackage );
+            break;                
+            }
+        case ESatNotifySendSmPCmd:
+            {
+            iNotifySendSm->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifySendSsPCmd:
+            {
+            iNotifySendSs->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+		case ESatNotifySendUssdPCmd:
+            {
+            iNotifySendUssd->Notify( aTsyReqHandle, aPackage );
+            break;     
+            }
+		case ESatNotifyProactiveSimSessionEnd:
+            {
+            iNotifySimSessionEnd->Notify( aTsyReqHandle, aPackage );
+            break;
+            }
+        case ESatNotifySetUpIdleModeTextPCmd:
+            {
+            iNotifySetUpIdleModeText->Notify( aTsyReqHandle, aPackage );
+            break;
+            }
+        case ESatNotifyLaunchBrowserPCmd:
+            {
+            iNotifyLaunchBrowser->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifyCallControlRequest:
+            {
+            iNotifyCallControlRequest->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifySendDtmfPCmd:
+            {
+            iNotifySendDtmf->Notify( aTsyReqHandle, aPackage );
+            break;
+            }
+		case ESatNotifySetUpEventListPCmd:
+            {
+            iNotifySetUpEventList->Notify( aTsyReqHandle, aPackage );
+            break;
+            }
+        case ESatNotifySetUpCallPCmd:
+            {
+            iNotifySetUpCall->Notify( aTsyReqHandle, aPackage );
+            break;  
+            }
+        case ESatNotifyRefreshPCmd:
+            {
+            iNotifyRefresh->Notify( aTsyReqHandle, aPackage );
+            break;                  
+            }
+        case ESatNotifyRefreshRequiredParam:
+        	{
+            iNotifyRefresh->NotifyRefreshRequired( aTsyReqHandle, aPackage );
+            break;            
+        	}
+        case ESatRefreshAllowed:
+        	{
+            iSatTsy->ReqCompleted( aTsyReqHandle, 
+                iNotifyRefresh->RefreshAllowedL( aPackage ) );
+            break;
+        	}          
+        case ESatNotifyCbDownload:
+            {
+            NotifyCbDownload( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifySmsPpDownload:
+            {
+            NotifySmsPpDownload( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyLanguageNotificationPCmd:
+            {
+            iNotifyLanguageNotification->Notify( aTsyReqHandle, aPackage );
+            break;
+            }
+        case ESatNotifyLocalInfoPCmd:
+            {
+            iNotifyLocalInfo->Notify( aTsyReqHandle, aPackage );
+            break;
+            }
+       case ESatNotifyOpenChannelPCmd:
+            {
+            iNotifyOpenChannel->Notify( aTsyReqHandle, aPackage );
+            break;
+            }
+       	case ESatNotifyGetChannelStatusPCmd:
+       		{
+       		iNotifyGetChannelStatus->Notify( aTsyReqHandle, aPackage );
+       		break;	
+       		}
+        case ESatNotifyMoSmControlRequest:
+            {
+            iNotifyMoSmControlRequest->Notify( aTsyReqHandle, aPackage );
+            break;
+            }
+        case ESatNotifyCloseChannelPCmd:
+        	{
+       		iNotifyCloseChannel->Notify( aTsyReqHandle, aPackage );
+        	break;
+        	}
+       	case ESatNotifySendDataPCmd:
+       		{
+       		iNotifySendData->Notify( aTsyReqHandle, aPackage );
+       		break;	
+       		}
+        case ESatNotifyReceiveDataPCmd:
+        	{
+        	iNotifyReceiveData->Notify( aTsyReqHandle, aPackage );
+        	break;	
+        	} 
+        default:
+        	{
+        	TFLOGSTRING("CSAT: CSatNotificationsTsy::DoExtFuncL, \
+        		IPC not supported");
+            ret = KErrNotSupported;
+            break;
+        	}
+        }
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::CancelService
+// Cancels Notifications requests
+// -----------------------------------------------------------------------------
+//
+TInt CSatNotificationsTsy::CancelService
+        (    
+        const TInt aIpc,               
+        const TTsyReqHandle aTsyReqHandle  
+        )
+    {
+    TFLOGSTRING2("CSAT: CSatNotificationsTsy::CancelService.\
+    	\n\t\t\t Handle:%d\n\t\t\t", aTsyReqHandle );
+
+    TInt ret ( KErrNotSupported );
+    
+    // When the clients close their sub-sessions (eg. by calling RLine::Close), 
+    // they may not have cancelled all their outstanding asynchronous requests 
+    // before closing.  It is up to the ETel server to clean up in this 
+    // situation, so the server will find the list of outstanding requests 
+    // related to that sub-session object and pass these outstanding IPC 
+    // request numbers, one at a time, to the CancelService method in the TSY.
+
+    switch ( aIpc )
+        {
+        case ESatNotifyCallControlRequest:
+            {
+            ret = iNotifyCallControlRequest->CancelNotification( 
+                aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyDisplayTextPCmd:
+            {
+            ret = iNotifyDisplayText->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyGetInkeyPCmd:
+            {
+            ret = iNotifyGetInkey->CancelNotification( aTsyReqHandle );
+            break;        
+            }
+        case ESatNotifyGetInputPCmd:
+            {
+            ret = iNotifyGetInput->CancelNotification( aTsyReqHandle );
+            break;        
+            }
+        case ESatNotifyPlayTonePCmd:
+            {
+            ret = iNotifyPlayTone->CancelNotification( aTsyReqHandle );
+            break;        
+            }
+        case ESatNotifySetUpMenuPCmd:
+            {
+            ret =  iNotifySetUpMenu->CancelNotification( aTsyReqHandle );
+            break;        
+            }
+        case ESatNotifySelectItemPCmd:
+            {
+            ret = iNotifySelectItem->CancelNotification( aTsyReqHandle );
+            break;        
+            }
+        case ESatNotifySendSmPCmd:
+            {
+            ret = iNotifySendSm->CancelNotification( aTsyReqHandle );
+            break;        
+            }
+        case ESatNotifySendSsPCmd:
+            {
+            ret = iNotifySendSs->CancelNotification( aTsyReqHandle );
+            break;        
+            }
+        case ESatNotifySetUpEventListPCmd:
+            {
+            ret = iNotifySetUpEventList->CancelNotification( aTsyReqHandle );
+			break;
+            }
+		case ESatNotifySendUssdPCmd:
+            {
+            ret = iNotifySendUssd->CancelNotification( aTsyReqHandle );
+            break;        
+            }
+        case ESatNotifySetUpIdleModeTextPCmd:
+            {
+            ret = iNotifySetUpIdleModeText->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifySetUpCallPCmd:
+            {
+            ret = iNotifySetUpCall->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyRefreshPCmd:
+            {
+            ret = iNotifyRefresh->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyRefreshRequiredParam:
+        	{
+            ret = iNotifyRefresh->CancelRefreshRequiredNotification( 
+            	aTsyReqHandle );
+            break;            
+        	}
+        case ESatNotifySendDtmfPCmd:
+            {
+            ret = iNotifySendDtmf->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyLanguageNotificationPCmd:
+            {
+            ret = iNotifyLanguageNotification->CancelNotification(
+                  	aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyLaunchBrowserPCmd:
+            {
+            ret = iNotifyLaunchBrowser->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyLocalInfoPCmd:
+            {
+            ret = iNotifyLocalInfo->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyProactiveSimSessionEnd:
+            {
+            ret = iNotifySimSessionEnd->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyOpenChannelPCmd:
+            {
+            ret = iNotifyOpenChannel->CancelNotification( aTsyReqHandle );
+            break;
+            }
+        case ESatNotifyGetChannelStatusPCmd:
+       		{
+       		ret = iNotifyGetChannelStatus->CancelNotification( aTsyReqHandle );
+       		break;	
+       		}
+        case ESatNotifyCloseChannelPCmd:
+        	{
+       		ret = iNotifyCloseChannel->CancelNotification( aTsyReqHandle );
+        	break;
+        	}
+       	case ESatNotifySendDataPCmd:
+       		{
+       		ret = iNotifySendData->CancelNotification( aTsyReqHandle );
+       		break;	
+       		}
+       	case ESatNotifyReceiveDataPCmd:
+        	{
+        	ret = iNotifyReceiveData->CancelNotification( aTsyReqHandle );
+        	break;	
+        	} 	        			                     
+        case ESatNotifyMoSmControlRequest:
+            {
+            ret = iNotifyMoSmControlRequest->CancelNotification( 
+                	aTsyReqHandle );
+            break;
+            }
+        default:
+        	{        	
+            ret = KErrNone; 
+            break;
+        	}
+        }
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::SetPollingResultL
+// Sends terminal response according to the response coming from DOS.
+// This method handles both PollingInterval and PollingOff proactive commands.
+// -----------------------------------------------------------------------------
+//
+void CSatNotificationsTsy::SetPollingResultL
+        ( 
+        CSatDataPackage* aDataPackage,
+        TInt aErrorCode
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::SetPollingResultL");
+    TUint8 pCmdNumber;
+    TUint8 interval;
+    TBuf<RSat::KAdditionalInfoMaxSize> additionalInfo;
+    aDataPackage->UnPackData( pCmdNumber, interval );
+    
+    // NAA status OK 
+    if ( KErrNone == aErrorCode ) 
+        {
+        if ( iPollingOff )
+            {
+            TFLOGSTRING("CSAT: CSatNotificationsTsy::SetPollingResultL, \
+                Polling Off");
+            additionalInfo.Zero();
+            additionalInfo.Append( RSat::KNoAdditionalInfo );
+            iNotifyPollingOff->CreateTerminalRespL( pCmdNumber,
+                RSat::KSuccess, additionalInfo );
+            }
+        else
+            {
+            iNotifyPollInterval->CreateTerminalRespL( pCmdNumber, 
+            	RSat::KSuccess, RSat::KNoAdditionalInfo, interval );
+            }
+        }    
+    // NAA status not OK
+	else
+        {
+        TFLOGSTRING("CSAT: CSatNotificationsTsy::SetPollingResultL, \
+        	NAA Status Not OK, means that value in request is out of range\
+        	and default value is used.");
+        if ( iPollingOff )
+            {
+            iPollingOff = EFalse;
+            additionalInfo.Zero();
+            additionalInfo.Append( RSat::KNoSpecificMeProblem );
+            iNotifyPollingOff->CreateTerminalRespL( pCmdNumber,
+                    RSat::KMeUnableToProcessCmd, additionalInfo );
+            }
+        else
+            {
+            // If last request rejected (request was over 25 seconds),
+            // renew the request with legacy maximum.. 
+            if ( iLongPollIntervalReq )
+                {
+                TFLOGSTRING("CSAT: CSatNotificationsTsy::SetPollingResultL, \
+        	        Request set to legacy maximum (25 seconds)");
+                SetPollingIntervalL( KMaxLegacyPollInterval );
+                iLongPollIntervalReq = EFalse;
+                }
+            // ..otherwise there was an actual error.
+            else
+                {
+                iNotifyPollInterval->CreateTerminalRespL( pCmdNumber, 
+                	RSat::KMeUnableToProcessCmd, RSat::KNoSpecificMeProblem, 
+                	interval );
+                }
+            }
+        }
+            
+    // Terminal Response is sent or the request was resent, reset flag
+    iLongPollIntervalReq = EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::SetPollingIntervalL
+// Set Polling Interval, sending a request to DOS
+// -----------------------------------------------------------------------------
+//
+void CSatNotificationsTsy::SetPollingIntervalL
+        (
+        TUint8 aValue
+        )
+    {
+    TFLOGSTRING2("CSAT: CSatNotificationsTsy::SetPollingIntervalL, Value: %d",
+        aValue);
+    
+    if ( KMaxLegacyPollInterval < aValue )
+        {
+        iLongPollIntervalReq = ETrue;
+        }
+
+    TBuf8<1> data;
+    data.Append( aValue );
+    // Pack data
+    CSatDataPackage dataPackage;
+	dataPackage.PackData( &data );
+    iSatTsy->MessageManager()->HandleRequestL( ESatTsySetPolling, 
+    	&dataPackage );
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::TimerExpirationL
+// Converts timerValue to semi-octets and forwards message to LicenceeSimAtkTsy
+// -----------------------------------------------------------------------------
+//
+TInt CSatNotificationsTsy::TimerExpirationL
+        (
+        TInt aTimerId,
+        TUint32 aTimerValue 
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::TimerExpirationL");
+    TUint8 time[3] = {0, 0, 0}; 
+    TInt num[3];
+    num[0] = aTimerValue / 3600;         // Hours
+    num[1] = ( aTimerValue % 3600 )/60;  // Minutes
+    num[2] = ( aTimerValue % 3600 )%60;  // Seconds
+
+    for ( TInt i = 0; i < 3; i++ )
+        { 
+        // Convert to semi-octet
+        time[i] = TSatUtility::ConvertToSemiOctet( num[i] );
+        }
+        
+	TTlv data;    
+    data.Begin( KBerTlvTimerExpirationTag );  
+    // Create Device Identity TLV
+    // Device identity tag
+    data.AddTag( KTlvDeviceIdentityTag ); 
+    // Source device identity = ME
+    data.AddByte( KMe ); 
+    // Destination device identity = SIM
+    data.AddByte( KSim );
+    // Value KTlvTimerIdentifierTagCRBitOn ( 0xA4 ) is added,
+    // because used KTlvTimerIdentifierTag ( 0x24 ) doesn't
+    // include comprehension bit in tag the value and it is expected
+    // to be present in indications and terminal responses.
+    data.AddTag( KTlvTimerIdentifierTagCRBitOn );
+    data.AddByte( static_cast< TUint8 >( aTimerId ) );
+    // Timer value in semi-octets
+    data.AddTag( KTlvTimerValueTag );
+    data.AddByte( time[0] ); // Hours
+    data.AddByte( time[1] ); // Minutes
+    data.AddByte( time[2] ); // Seconds
+	// Pack parameter for DOS call
+    TPtrC8 berTlv = data.End();
+	CSatDataPackage dataPackage;
+	dataPackage.PackData( &berTlv );
+
+	return iSatTsy->MessageManager()->HandleRequestL( 
+        ESatTsyTimerExpiredIPC, &dataPackage );
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::GetSatTimer
+// Returns iSatTimer pointer and control to calling object
+// -----------------------------------------------------------------------------
+//
+CSatTimer* CSatNotificationsTsy::GetSatTimer
+        (
+        // None 
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::GetSatTimer");
+    // Pointer to SAT timer
+    return iSatTimer; 
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::SatNotifySetUpCall
+// Return pointer to CSatNotifySetUpCall.
+// -----------------------------------------------------------------------------
+//
+CSatNotifySetUpCall* CSatNotificationsTsy::SatNotifySetUpCall
+        (
+        // None
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::SatNotifySetUpCall");
+    // Pointer to NotifySetupCall
+    return iNotifySetUpCall;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::SetProactiveCommandOnGoingStatus
+// Sets proactive command on-going status 
+// -----------------------------------------------------------------------------
+//
+void CSatNotificationsTsy::SetProactiveCommandOnGoingStatus
+        (
+        CSatDataPackage* aDataPackage,  
+		TInt /*aResult*/             
+        )
+    {
+	TFLOGSTRING("CSAT: CSatNotificationsTsy::\
+		SetProactiveCommandOnGoingStatus");
+    TBool ProactiveCommandOngoingStatus;
+    aDataPackage->UnPackData( ProactiveCommandOngoingStatus );
+    iSatTimer->SetProactiveCommandOnGoingStatus( 
+    	ProactiveCommandOngoingStatus ); 
+    }
+    
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::CompletePCmdL
+// Forwards the received Proactive command data to the correct Notify class
+// based on the type of command.
+// -----------------------------------------------------------------------------
+//
+TInt CSatNotificationsTsy::CompletePCmdL
+        (
+        CSatDataPackage* aDataPackage,
+        TInt aResult
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::CompletePCmdL");
+
+    TPtrC8* data;
+    aDataPackage->UnPackData( &data );
+    CBerTlv berTlv;
+    berTlv.SetData( *data );
+	CTlv commandDetails;
+	berTlv.TlvByTagValue( &commandDetails, KTlvCommandDetailsTag );
+    TInt ret( KErrNone );
+    // Set flag on to indicate that proactive command is ongoing
+    iSatTimer->SetProactiveCommandOnGoingStatus( ETrue );
+    
+    switch( commandDetails.GetShortInfo( ETLV_TypeOfCommand ) )
+        {
+        case KDisplayText:
+            {
+            ret = iNotifyDisplayText->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KGetInkey:
+            {
+            ret = iNotifyGetInkey->CompleteNotifyL( aDataPackage, aResult );            
+            break;    
+            }
+        case KGetInput:         
+            {
+            ret = iNotifyGetInput->CompleteNotifyL( aDataPackage, aResult );
+            break;    
+            }
+        case KPlayTone:         
+            {
+            ret = iNotifyPlayTone->CompleteNotifyL( aDataPackage, aResult );
+            break;    
+            }
+        case KSetUpMenu:     
+            {
+            ret = iNotifySetUpMenu->CompleteNotifyL( aDataPackage, aResult );
+            break;    
+            }
+        case KSelectItem:
+            {
+            ret = iNotifySelectItem->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KSendShortMessage:         
+            {
+            ret = iNotifySendSm->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KSendSs:
+            {
+            ret = iNotifySendSs->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KSendUssd:
+            {
+            ret = iNotifySendUssd->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KSetUpCall:
+            {
+            ret = iNotifySetUpCall->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KRefresh:
+            {
+            ret = iNotifyRefresh->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KSetUpIdleModeText:
+            {
+			ret = iNotifySetUpIdleModeText->CompleteNotifyL( aDataPackage, 
+					aResult );
+            break;
+            }
+        case KPollInterval:
+            {
+            ret = iNotifyPollInterval->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KSendDtmf:
+            {
+            ret = iNotifySendDtmf->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KSetUpEventList:
+            {
+            ret = iNotifySetUpEventList->CompleteNotifyL( aDataPackage, 
+            		aResult );
+            break;
+            }
+        case KPollingOff:
+            {
+            ret = iNotifyPollingOff->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KProvideLocalInformation:
+            {
+            ret = iNotifyLocalInfo->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KTimerManagement:
+            {
+            ret = iNotifyTimerMgmt->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KMoreTime:
+            {
+            ret = iNotifyMoreTime->CompleteNotifyL( aDataPackage, aResult );
+            break;
+            }
+        case KLaunchBrowser: 
+            {
+            ret = iNotifyLaunchBrowser->CompleteNotifyL( aDataPackage, 
+            		aResult );
+			break;
+            }
+        case KLanguageNotification:
+            {
+            ret = iNotifyLanguageNotification->CompleteNotifyL( aDataPackage, 
+            		aResult );
+            break;
+            }          
+		case KOpenChannel:
+			{
+			ret = iNotifyOpenChannel->CompleteNotifyL( aDataPackage, aResult );
+			break;
+			}
+		case KCloseChannel:
+			{
+			ret = iNotifyCloseChannel->CompleteNotifyL( aDataPackage, aResult );
+			break;
+			}		
+		case KReceiveData:
+			{
+			ret = iNotifyReceiveData->CompleteNotifyL( aDataPackage, aResult );
+			break;
+			}		
+		case KSendData:
+			{
+			ret = iNotifySendData->CompleteNotifyL( aDataPackage, aResult );
+			break;
+			}		
+		case KGetChannelStatus:            
+			{
+			ret = iNotifyGetChannelStatus->CompleteNotifyL( aDataPackage, 
+					aResult );
+			break;
+			}
+        default:
+            {
+            TFLOGSTRING("CSAT: CSatNotificationsTsy::CompletePCmdL, \
+            	Proactive command not supported" );
+        	// If proactive command is not supported, terminal response
+            // with "Command is beyond ME's capabilities" information 
+            // will be send. 
+            // Get command details tlv and set it to the struct
+        	iTerminalRespData.iCommandDetails.Copy( commandDetails.Data() );
+        	// Create and append response data
+        	TTlv tlvSpecificData;
+        	// Create General Result TLV here
+        	tlvSpecificData.AddTag( KTlvResultTag );
+        	tlvSpecificData.AddByte( KCommandBeyondMeCapabilities );
+        	TPtrC8 data = tlvSpecificData.GetDataWithoutTopLevelTag();
+        	CSatDataPackage dataPackage;
+        	dataPackage.PackData( &iTerminalRespData, &data );
+            // Forward request to the DOS
+    		ret = iSatTsy->MessageManager()->HandleRequestL( 
+					ESatTerminalRsp, &dataPackage );	 
+            break;
+            }
+
+        } // End of switch (msg type)
+
+    return ret;
+    }
+    
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::IsMoSmControlActivated
+// Returns ETrue if MO-SMS Control is activated
+// -----------------------------------------------------------------------------
+//
+TBool CSatNotificationsTsy::IsMoSmControlActivated
+		(
+		void
+		)
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::IsMoSmControlActivated");
+    return iNotifyMoSmControlRequest->ActivationStatus();
+    }
+     
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::SetPollingOff
+// Set PollingOff value
+// -----------------------------------------------------------------------------
+//
+void CSatNotificationsTsy::SetPollingOffStatus
+		( 
+		TBool aPollingOff 
+		)
+	{
+	TFLOGSTRING2("CSAT: CSatNotificationsTsy::SetPollingOffStatus \
+		status: %d", aPollingOff);
+	iPollingOff = aPollingOff;		
+	}
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::SetPollingOff
+// Returns iPollingOff
+// -----------------------------------------------------------------------------
+//	
+TBool CSatNotificationsTsy::PollingOffStatus
+		( 
+		// None
+		)
+	{
+	TFLOGSTRING("CSAT: CSatNotificationsTsy::PollingOffStatus");
+	return iPollingOff;		
+	}
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::AddLocationInformationToTlv
+// Adds location informating to given TTlv.
+// -----------------------------------------------------------------------------
+//
+void CSatNotificationsTsy::AddLocationInformationToTlv
+        (
+        TTlv& aTlv 
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::AddLocationInformationToTlv");
+    
+    // Get the current location data from CSatNotifyLocalInfo
+    const TLocalInformation& locInfo = iNotifyLocalInfo->LocalInformation();
+        
+    // Add location information data, start with the tag
+    aTlv.AddTag( KTlvLocationInformationTag );
+    // Append Mobile Country  & Network Codes, 3 bytes
+    aTlv.AddData( locInfo.iOperatorCode );
+    // Append Location Area Code (LAC)
+    aTlv.AddByte( static_cast<TUint8>( locInfo.iLocationAreaCode >> 8 ) );//msb
+    aTlv.AddByte( static_cast<TUint8>( locInfo.iLocationAreaCode >> 0 ) );//lsb
+    // Append Cell Id
+    aTlv.AddByte( static_cast<TUint8>( locInfo.iCellId >> 8 ) ); // msb
+    aTlv.AddByte( static_cast<TUint8>( locInfo.iCellId >> 0 ) ); // lsb
+    }	
+    
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::NotifyClientForAlphaId
+// Requests completion for the ESatNotifyCallControlRequestPCmdReqType
+// -----------------------------------------------------------------------------
+//
+void CSatNotificationsTsy::NotifyClientForAlphaId
+	    (
+	    RSat::TAlphaIdBuf& aAlphaId,
+	    RSat::TControlResult aResult 
+	    )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::NotifyClientForAlphaId");
+    iNotifyCallControlRequest->CompleteAlphaId( aAlphaId, aResult, KErrNone );
+    }
+    
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::RequestHandleStore
+// Returns pointer to the request handle store
+// -----------------------------------------------------------------------------
+//
+CSatTsyReqHandleStore* CSatNotificationsTsy::RequestHandleStore
+	    (
+	    void
+	    )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::RequestHandleStore");
+    return iSatReqHandleStore;
+    }
+    	       
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::NotifySatReadyForNotification
+// Passes a Sat ready indication to DOS and requests the possible pending
+// Proactive command
+// -----------------------------------------------------------------------------
+//
+TInt CSatNotificationsTsy::NotifySatReadyForNotification
+	    (
+	    TUint8 aPCmdMsgType 
+	    )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::NotifySatReadyForNotification");
+    TInt ret( KErrNone );
+    // Pack parameter for DOS call
+	CSatDataPackage dataPackage;
+	dataPackage.PackData( &aPCmdMsgType );
+	TRAPD( trapError, ret = iSatTsy->MessageManager()->HandleRequestL( 
+		ESatTsyGetIfPendingNotification, &dataPackage ) 
+		);
+		
+	if ( trapError )
+		{
+		ret = trapError;
+		TFLOGSTRING2("CSAT: CSatNotificationsTsy::NotifySatReadyForNotification\
+			Trap error: %d", trapError);
+		}
+		
+	return ret;
+    }
+                
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::TerminalResponseL
+// Called by ETel server, passes a response to SIM
+// -----------------------------------------------------------------------------
+//
+TInt CSatNotificationsTsy::TerminalResponseL
+            (                    
+            RSat::TPCmd*    aPCmd,         
+            TDes8*          aRsp,           
+            TTsyReqHandle   aTsyReqHandle   
+            ) 
+    {
+    TFLOGSTRING2("CSAT: CSatNotificationsTsy::TerminalResponseL.\
+        \n\t\t\t Handle:%d\n\t\t\t", aTsyReqHandle );
+
+    TInt ret( KErrNone );
+
+    switch ( *aPCmd )
+        {
+        case RSat::EDisplayText:
+            {
+            ret = iNotifyDisplayText->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::EGetInkey:
+            {
+            ret = iNotifyGetInkey->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::EGetInput:
+            {
+            ret = iNotifyGetInput->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::EPlayTone:
+            {
+            ret = iNotifyPlayTone->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ESetUpMenu:
+            {
+            ret = iNotifySetUpMenu->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ESelectItem:
+            {
+            ret = iNotifySelectItem->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ESendSm:
+            {
+            ret = iNotifySendSm->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ESendSs:
+            {
+            ret = iNotifySendSs->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ESetUpEventList:
+            {
+            ret = iNotifySetUpEventList->TerminalResponseL( aRsp );
+            break;
+            }
+       	case RSat::ESendUssd:
+            {
+            ret = iNotifySendUssd->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ESetUpIdleModeText:
+            {
+            ret = iNotifySetUpIdleModeText->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ESetUpCall:
+            {
+            ret = iNotifySetUpCall->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ERefresh:
+            {
+            ret = iNotifyRefresh->TerminalResponseL( aRsp );
+            break;
+            } 
+        case RSat::ELaunchBrowser:
+            {
+            ret = iNotifyLaunchBrowser->TerminalResponseL( aRsp );
+            break;
+            }
+		case RSat::ESendDtmf:
+            {
+			ret = iNotifySendDtmf->TerminalResponseL( aRsp );
+			break;
+            }
+        case RSat::ELocalInfo:
+            {
+            ret = iNotifyLocalInfo->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::ELanguageNotification:
+            {
+            ret = iNotifyLanguageNotification->TerminalResponseL( aRsp );
+            break;
+            }
+        case RSat::EOpenChannelCs:
+        case RSat::EOpenChannelGprs:
+        case RSat::EOpenChannelLocal:
+            {
+            ret = iNotifyOpenChannel->TerminalResponseL( aRsp );
+            break;
+            }
+       	case RSat::EGetChannelStatus:
+       		{
+       		ret = iNotifyGetChannelStatus->TerminalResponseL( aRsp );
+       		break;	
+       		}
+		case RSat::ECloseChannel:
+        	{
+       		ret = iNotifyCloseChannel->TerminalResponseL( aRsp );
+        	break;
+        	}
+       	case RSat::ESendData:
+       		{
+       		ret = iNotifySendData->TerminalResponseL( aRsp );
+       		break;	
+       		}
+       	case RSat::EReceiveData:
+        	{
+        	ret = iNotifyReceiveData->TerminalResponseL( aRsp );
+        	break;	
+        	}	         			                            
+        default:
+        	{
+        	TFLOGSTRING("CSAT: CSatNotificationsTsy::TerminalResponseL.\
+        		Proactive command unknown" );
+            ret =  KErrGeneral;
+            break;
+        	}
+        }
+	
+    // We must complete the request to the client right away, as an
+	// indication that the request has been handled
+    iSatTsy->ReqCompleted( aTsyReqHandle, ret );
+
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::CompleteTerminalResponse
+// This method completes an outstanding asynchronous Terminal response request. 
+// -----------------------------------------------------------------------------
+//
+void CSatNotificationsTsy::CompleteTerminalResponse
+        (
+        TInt aErrorCode     // Error code
+        )
+    {
+    TFLOGSTRING2("CSAT: CSatNotificationsTsy::CompleteTerminalResponse - \
+    	Error:%d", aErrorCode);
+
+    TTsyReqHandle reqHandle = iSatTsy->GetSatReqHandleStore()->
+        ResetTsyReqHandle( CSatTsy::ESatTerminalRspReqType );
+
+    // Check if handle for terminal response exists
+    if ( CSatTsy::ESatReqHandleUnknown != reqHandle )
+        {
+        // Complete the request
+        iSatTsy->ReqCompleted( reqHandle, aErrorCode );
+        }
+   
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::CommandPerformedSuccessfully
+// Test if a proactive command was performed successfully
+// -----------------------------------------------------------------------------
+//
+TBool CSatNotificationsTsy::CommandPerformedSuccessfully
+        ( 
+        TUint8 aGeneralResult 
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::CommandPerformedSuccessfully");
+    TBool ret( EFalse );
+	switch ( aGeneralResult )
+	    { 
+        case RSat::KSuccess:
+        case RSat::KPartialComprehension:
+        case RSat::KMissingInformation:
+        case RSat::KRefreshAdditionEFRead:
+        case RSat::KSuccessRequestedIconNotDisplayed:
+        case RSat::KModifiedByCallControl:
+        case RSat::KSuccessLimitedService:
+        case RSat::KPerformedWithModifications:
+        case RSat::KRefreshUSIMNotActive:
+        	{
+    		ret = ETrue;
+            break;
+        	}
+	    default:
+	    	{	
+	    	TFLOGSTRING("CSAT: CSatNotificationsTsy:: \
+	    		CommandPerformedSuccessfully, EFalse");
+		    ret = EFalse;
+		    break;
+	    	}
+	    }
+    return ret;
+   }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::NotifyCbDownload
+// Called by ETel server, passes a cell broadcast download response to NAA
+// -----------------------------------------------------------------------------
+//
+TInt CSatNotificationsTsy::NotifyCbDownload
+        (
+        TTsyReqHandle   aTsyReqHandle 
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::NotifyCbDownload");
+    TInt ret( KErrNone );
+    iSatTsy->ReqCompleted( aTsyReqHandle, ret );   
+    return ret; 
+    }
+
+// -----------------------------------------------------------------------------
+// CSatNotificationsTsy::NotifySmsPpDownload
+// Called by ETel server, passes a Sms Pp download response to NAA
+// -----------------------------------------------------------------------------
+//
+TInt CSatNotificationsTsy::NotifySmsPpDownload
+        (
+        TTsyReqHandle   aTsyReqHandle
+        )
+    {
+    TFLOGSTRING("CSAT: CSatNotificationsTsy::NotifySmsPpDownload");
+    TInt ret( KErrNone );
+    iSatTsy->ReqCompleted( aTsyReqHandle, ret );   
+    return ret; 
+    }
+
+//  End of File