telephonyserverplugins/common_tsy/customapi/src/RMmCustomAPI.cpp
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/customapi/src/RMmCustomAPI.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,2357 @@
+// 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:
+//
+
+
+
+// INCLUDE FILES
+#include <etelext.h>
+#include <etelmm.h>
+#include <ctsy/rmmcustomapi.h>
+
+// MODULE DATA STRUCTURES
+enum
+    {
+    ESlotActivateSimLockPassword,
+    ESlotActivateSimLockNumber,
+    ESlotDeActivateSimLockPassword,
+    ESlotDeActivateSimLockNumber,
+    ESlotNotifyDtmfEvent,
+    ESlotSetAlsBlocked,
+    ESlotGetAlsBlocked,
+    ESlotCallOrigin,
+    ESlotNotifyAlsBlockedChanged,
+    ESlotTerminateCall,
+    ESlotGetCipheringInfo,
+    ESlotNotifyCipheringInfoChange,
+    ESlotNotifyNSPSStatus,
+    ESlotNetWakeup,
+    ESlotNotifySsAdditionalInfo,
+    ESlotNotifySsRequestComplete,
+    ESlotCheckAlsPpSupport,
+    ESlotViagHomeZoneParams,
+    ESlotViagHomeZoneElems,
+    ESlotReadViagCacheId,
+    ESlotReadViagCacheRecord,
+    ESlotWriteViagCacheId,
+    ESlotWriteViagCacheRecord,
+    ESlotWriteViagUHZIUESettings,
+    ESlotCheckSecurityCode,
+    ESlotCheckEmergencyNumberNumMode,
+    ESlotCheckEmergencyNumberResult,
+    ESlotGetOperatorName,
+    ESlotGetProgrammableOperatorId,
+    ESlotGetProgrammableOperatorLogo,
+    ESlotCheckTwoDigitDialSupport,
+    ESlotNotifyPndCacheReady,
+    ESlotGetPndCacheStatus,
+    ESlotSsNotifyTypeAndMode,
+    ESlotSsNotifyInfo,
+    ESlotGetOperatorNameType,
+    ESlotGetNextSimCbTopic,
+    ESlotDeleteSimCbTopic,
+    ESlotNotifyProgrammableOperatorId,
+    ESlotDisablePhoneLock,
+    ESlotGet3GPBInfo,
+    ESlotGetSystemNetworkModes,
+    ESlotSetSystemNetworkMode,
+    ESlotGetCurrentSystemNetworkModes,
+    ESlotGetSimCardReaderStatus,
+    ESlotNotifySimCardStatus,
+    ESlotSendAPDUReqV2Status,
+    ESlotSetDriveMode,
+    ESlotSetAlwaysOn,
+    ESlotNotifyRauEvent,
+    ESlotReadHSxPAStatus,
+    ESlotWriteHSxPAStatus,
+    ESlotNotifyHSxPAStatus,
+    ESlotGetIccCallForwardingStatusCFInd,
+    ESlotGetIccCallForwardingStatusMspId,
+    ESlotNotifyIccCallForwardingStatusChangeCFInd,
+    ESlotNotifyIccCallForwardingStatusChangeMspId,
+    ESlotNotifyCellInfoChange,
+    ESlotGetCellInfo,
+    ESlotGetSystemNetworkBand, 
+    ESlotSetSystemNetworkBand, 
+    ESlotGetUSIMServiceSupport,
+    ESlotNotifyRemoteAlertingToneStatusChange,
+    //let the next value be the last in the enum
+    ESlotMaxNumOfNonConstSlots
+    };
+
+// Const slots enumeration
+enum
+    {
+    //let the next value be the last in the enum
+    ESlotCMaxNumOfConstSlots,
+    };
+
+#define K_EXPECTED_ELEMENT_COUNT_FOR_READ_VIAG_HOME_ZONE			4
+
+
+// ======== MEMBER FUNCTIONS ========
+
+EXPORT_C RMmCustomAPI::RMmCustomAPI():iCustomPtrHolder( NULL )
+    {
+    }
+
+EXPORT_C void RMmCustomAPI::ConstructL()
+    {
+    iCustomPtrHolder = CMmCustomPtrHolder::NewL( ESlotMaxNumOfNonConstSlots,
+        ESlotCMaxNumOfConstSlots );
+    }
+
+EXPORT_C void RMmCustomAPI::Destruct()
+    {
+    if ( NULL != iCustomPtrHolder )
+        {
+        delete iCustomPtrHolder;
+        }
+    iCustomPtrHolder = NULL;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::Open
+// This method opens a RMmCustomAPI subsession from RMobilePhone.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::Open(
+    RMobilePhone& aPhone )
+    {
+    RSessionBase* session=&aPhone.SessionHandle();
+    __ASSERT_ALWAYS( session != 0, PanicClient( EEtelPanicNullHandle ) );
+    TInt subSessionHandle=aPhone.SubSessionHandle();
+    __ASSERT_ALWAYS( subSessionHandle != 0, PanicClient(
+        EEtelPanicNullHandle ) );
+    TRAPD( ret, ConstructL() );
+    if ( ret )
+        {
+        return ret;
+        }
+
+    TPtrC name( KCustomAPIName );
+    TIpcArgs args( &name, TIpcArgs::ENothing, subSessionHandle );
+    SetSessionHandle( *session );
+    ret = CreateSubSession( *session, EEtelOpenFromSubSession, args);
+
+    if ( ret )
+        {
+        Destruct();
+        }
+
+    return ret;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::Close
+// This method closes a RMmCustomAPI subsession
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::Close()
+    {
+    CloseSubSession( EEtelClose );
+    Destruct();
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SetDriveMode
+// This function sets the Drive Mode status with the value defined in
+// aModeStatus.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SetDriveMode(
+    TRequestStatus& aStatus,
+    const TSetDriveMode aModeStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iSetDriveMode = aModeStatus;
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotSetDriveMode,
+        iCustomPtrHolder->iSetDriveMode );
+    Set( ECustomSetDriveModeIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ActivateSimLock
+// This function activates the sim lock synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::ActivateSimLock(
+    const TSimLockPassword& aPassWord,
+    const TLockNumber aNumber ) const
+    {
+    TPtr8 passWord( REINTERPRET_CAST( TText8*, CONST_CAST( TSimLockPassword*,
+        &aPassWord ) ), sizeof( TSimLockPassword ),
+        sizeof( TSimLockPassword ) );
+
+    TPtr8 number( REINTERPRET_CAST( TText8*, CONST_CAST( TLockNumber*,
+         &aNumber ) ), sizeof( TLockNumber ), sizeof( TLockNumber ) );
+
+    return Set( ECustomSimLockActivateIPC, passWord, number );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ActivateSimLock
+// This function activates the sim lock asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ActivateSimLock(
+    TRequestStatus& aStatus,
+    const TSimLockPassword& aPassWord,
+    const TLockNumber aNumber ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    iCustomPtrHolder->iSimLockPassword = aPassWord;
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotActivateSimLockPassword,
+        iCustomPtrHolder->iSimLockPassword );
+
+    iCustomPtrHolder->iSimLockNumber=aNumber;
+    TPtr8& ptr2 = iCustomPtrHolder->Set( ESlotActivateSimLockNumber,
+        iCustomPtrHolder->iSimLockNumber );
+
+    Set( ECustomSimLockActivateIPC, aStatus, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::DeActivateSimLock
+// This function Deactivates the sim lock synchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::DeActivateSimLock(
+    const TSimLockPassword& aPassWord,
+    const TLockNumber aNumber ) const
+    {
+    TPtr8 passWord( REINTERPRET_CAST( TText8*, CONST_CAST( TSimLockPassword*,
+        &aPassWord ) ), sizeof( TSimLockPassword ),
+        sizeof( TSimLockPassword ) );
+
+    TPtr8 number( REINTERPRET_CAST( TText8*, CONST_CAST(
+        TLockNumber*, &aNumber ) ), sizeof( TLockNumber ),
+        sizeof( TLockNumber) );
+
+    return Set( ECustomSimLockDeActivateIPC, passWord, number );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::DeActivateSimLock
+// This function Deactivates the sim lock asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::DeActivateSimLock(
+    TRequestStatus& aStatus,
+    const TSimLockPassword& aPassWord,
+    const TLockNumber aNumber ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    iCustomPtrHolder->iSimLockPassword=aPassWord;
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotDeActivateSimLockPassword,
+        iCustomPtrHolder->iSimLockPassword );
+
+    iCustomPtrHolder->iSimLockNumber=aNumber;
+    TPtr8& ptr2 = iCustomPtrHolder->Set( ESlotDeActivateSimLockNumber,
+        iCustomPtrHolder->iSimLockNumber );
+
+    Set( ECustomSimLockDeActivateIPC, aStatus, ptr, ptr2 );
+    }
+
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyDtmfEvent
+// This function notifies a client of a Dtmf event.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyDtmfEvent(
+    TRequestStatus& aStatus,
+    TDtmfInfo& aInfo )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifyDtmfEvent, aInfo );
+    Get( ECustomNotifyDtmfEventIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetDiagnosticInfo
+// Gets the Diagnostics octets of a given call.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetDiagnosticInfo(
+    TName& aCallName) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aCallName ), sizeof( TName ),
+        sizeof( TName ) );
+
+    return Get( ECustomGetDiagnosticOctetsIPC, ptr);
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SetAlsBlocked
+// This function sets the alternating line service block
+// status with the value defined in aBlockStatus.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::SetAlsBlocked(
+    const TSetAlsBlock aBlockStatus ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, CONST_CAST( TSetAlsBlock*,
+        &aBlockStatus ) ), sizeof( TSetAlsBlock ), sizeof( TSetAlsBlock ) );
+
+    return Set( ECustomSetAlsBlockedIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SetAlsBlocked
+// This function sets the alternating line service block
+// status with the value defined in aBlockStatus.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SetAlsBlocked(
+    TRequestStatus& aStatus,
+    const TSetAlsBlock aBlockStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle) );
+    iCustomPtrHolder->iSetAlsBlock = aBlockStatus;
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotSetAlsBlocked,
+        iCustomPtrHolder->iSetAlsBlock );
+    Set( ECustomSetAlsBlockedIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetAlsBlocked
+// This function returns the alternating line service block status.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetAlsBlocked(
+    TGetAlsBlockStatus& aBlockStatus ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aBlockStatus ),
+        sizeof( TGetAlsBlockStatus ), sizeof( TGetAlsBlockStatus ) );
+
+    return Get( ECustomGetAlsBlockedIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetAlsBlocked
+// This function returns the alternating line service block status.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetAlsBlocked(
+    TRequestStatus& aStatus,
+    TGetAlsBlockStatus& aBlockStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotGetAlsBlocked, aBlockStatus );
+    Get( ECustomGetAlsBlockedIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CheckAlsPpSupport
+// This function returns Als Pp Support state.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::CheckAlsPpSupport(
+    TAlsSupport& aSupport ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aSupport ),
+        sizeof( TAlsSupport ), sizeof ( TAlsSupport ) );
+
+    return Get( ECustomCheckAlsPpSupportIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CheckAlsPpSupport
+// This function returns Als Pp Support state.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::CheckAlsPpSupport(
+    TRequestStatus& aStatus,
+    TAlsSupport& aSupport )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient(EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotCheckAlsPpSupport, aSupport );
+    Get( ECustomCheckAlsPpSupportIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetRemoteAlertingToneStatus
+// This function reads the remote alerting tone status.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetRemoteAlertingToneStatus(
+    TRemoteAlertingToneStatus& aToneStatus ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aToneStatus ),
+        sizeof( TRemoteAlertingToneStatus ), sizeof(
+        TRemoteAlertingToneStatus ) );
+
+    return Get( ECustomGetRemoteAlertingToneStatusIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CallOrigin
+// This function returns the origin of the call,
+// defined by aCallName parameter.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::CallOrigin(
+    TName& aCallName,
+    TCallOrigin& aOrigin ) const
+    {
+    TPtr8 ptr1( REINTERPRET_CAST( TText8*, &aCallName ), sizeof( TName ),
+        sizeof( TName ) );
+
+    TPtr8 ptr2( REINTERPRET_CAST( TText8*, &aOrigin ), sizeof( TCallOrigin ),
+        sizeof( TCallOrigin ) );
+
+    return Get( ECustomCallOriginIPC, ptr1, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TerminateCall
+// This synchronous function terminates a given call or all the ongoing calls
+// based in the value of aCallName
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::TerminateCall(
+    TName& aCallName )const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aCallName ), sizeof( TName ),
+        sizeof( TName ) );
+
+    return Get( ECustomTerminateCallIPC, ptr);
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TerminateCall
+// This asynchronous function terminates a given call or all
+// the ongoing calls based in the value of aCallName
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::TerminateCall(
+    TRequestStatus& aStatus,
+    TName& aCallName )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotTerminateCall, aCallName );
+    Get( ECustomTerminateCallIPC, aStatus, ptr);
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyAlsBlockedChanged
+// This function notifies a client of changed Als blocked status.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyAlsBlockedChanged(
+    TRequestStatus& aStatus,
+    TGetAlsBlockStatus& aBlockStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifyAlsBlockedChanged,
+        aBlockStatus );
+    Get( ECustomNotifyAlsBlockedChangedIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetCipheringInfo
+// This function gets the ciphering information synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetCipheringInfo(
+    TCipheringInfo& aInfo )
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aInfo ), sizeof( TCipheringInfo ),
+        sizeof( TCipheringInfo ) );
+
+    return Get( ECustomGetCipheringInfoIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetCipheringInfo
+// This function gets the ciphering info asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetCipheringInfo(
+    TRequestStatus& aStatus,
+    TCipheringInfo& aInfo )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotGetCipheringInfo, aInfo );
+    Get( ECustomGetCipheringInfoIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyCipheringInfoChange
+// This function notifies a client of ciphering info change
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyCipheringInfoChange(
+    TRequestStatus& aStatus,
+    TCipheringInfo& aInfo )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifyCipheringInfoChange, aInfo );
+    Get( ECustomNotifyCipheringInfoChangeIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyNSPSStatus
+// This function notifies a client of a change in NSPS
+// (No Service Power Save) status
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyNSPSStatus(
+    TRequestStatus& aStatus,
+    TNspsStatus& aNspsStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifyNSPSStatus, aNspsStatus );
+    Get( ECustomNotifyNSPSStatusIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NetWakeup
+// This function wakes up the Net from the NSPS state
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NetWakeup(
+    TRequestStatus& aStatus )
+    {
+    Blank( ECustomNetWakeupIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ReadViagHomeZoneParams
+// This function reads VIAG Home Zone Parameters synchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::ReadViagHomeZoneParams(
+    TViagParams& aParam,
+    TViagElements& aElems ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aParam ),
+        sizeof( TViagParams ), sizeof( TViagParams ) );
+
+    TPtr8 ptr2( REINTERPRET_CAST( TText8*, &aElems ),
+        sizeof( TViagElements ), sizeof( TViagElements ) );
+
+     __ASSERT_ALWAYS( aElems.Count() == 4, PanicClient(
+        EEtelPanicIndexOutOfRange ) );
+
+     RMmCustomAPI::TViagElement* b = aElems.Back( 0 );
+     const TInt sizeOfElement = sizeof( RMmCustomAPI::TViagElement );
+     const TInt sizeOfArray = 4*sizeOfElement;
+
+     ptr2.Set(
+        REINTERPRET_CAST( TText8*, b ),
+        sizeOfArray,
+        sizeOfArray );
+
+    return Get( EReadViagHomeZoneParamsIPC, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ReadViagHomeZoneParams
+// This function reads VIAG Home Zone Parameters asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ReadViagHomeZoneParams(
+    TRequestStatus& aStatus,
+    TViagParams& aParam,
+    TViagElements& aElems )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    
+    if(aElems.Count() != K_EXPECTED_ELEMENT_COUNT_FOR_READ_VIAG_HOME_ZONE)
+        {
+        TRequestStatus* reqStatus = &aStatus;
+        User::RequestComplete(reqStatus, KErrArgument);
+        return;
+        }
+    
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotViagHomeZoneParams, aParam );
+    TPtr8& ptr2 = iCustomPtrHolder->Set( ESlotViagHomeZoneElems, aElems );
+
+     RMmCustomAPI::TViagElement* b = aElems.Back( 0 );
+     const TInt sizeOfElement = sizeof( RMmCustomAPI::TViagElement );
+     const TInt sizeOfArray = 4*sizeOfElement;
+
+     ptr2.Set(
+        REINTERPRET_CAST( TText8*, b ),
+        sizeOfArray,
+        sizeOfArray );
+
+     Get( EReadViagHomeZoneParamsIPC, aStatus, ptr, ptr2 );
+     }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ReadViagHomeZoneCache
+// This function reads specified VIAG home zone cache synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::ReadViagHomeZoneCache(
+    TViagCacheRecordId& aId,
+    TViagCacheRecordContent& aRecord ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aId ),
+        sizeof( TViagCacheRecordId ), sizeof( TViagCacheRecordId ) );
+    TPtr8 ptr2( REINTERPRET_CAST( TText8*, &aRecord),
+        sizeof( TViagCacheRecordContent ),
+        sizeof( TViagCacheRecordContent ) );
+
+    return Get( EReadViagHomeZoneCacheIPC, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ReadViagHomeZoneCache
+// This function reads specified VIAG home zone cache asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ReadViagHomeZoneCache(
+    TRequestStatus& aStatus,
+    TViagCacheRecordId& aId,
+    TViagCacheRecordContent& aRecord )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotReadViagCacheId, aId );
+    TPtr8& ptr2 = iCustomPtrHolder->Set( ESlotReadViagCacheRecord, aRecord );
+
+    Get( EReadViagHomeZoneCacheIPC, aStatus, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::WriteViagHomeZoneCache
+// This function writes specified VIAG home zone cache synchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::WriteViagHomeZoneCache(
+    const TViagCacheRecordId& aId,
+    const TViagCacheRecordContent& aRecord ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, CONST_CAST(
+        TViagCacheRecordId*, &aId ) ), sizeof( TViagCacheRecordId ),
+        sizeof( TViagCacheRecordId ) );
+
+    TPtr8 ptr2( REINTERPRET_CAST( TText8*, CONST_CAST(
+        TViagCacheRecordContent*, &aRecord ) ),
+        sizeof( TViagCacheRecordContent ),
+        sizeof( TViagCacheRecordContent ) );
+
+    return Set( EWriteViagHomeZoneCacheIPC, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::WriteViagHomeZoneCache
+// This function writes specified VIAG home zone cache asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::WriteViagHomeZoneCache(
+    TRequestStatus& aStatus,
+    const TViagCacheRecordId& aId,
+    const TViagCacheRecordContent& aRecord )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iViagCacheId = aId;
+    iCustomPtrHolder->iViagCacheRecord = aRecord;
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotWriteViagCacheId,
+        iCustomPtrHolder->iViagCacheId );
+    TPtr8& ptr2 = iCustomPtrHolder->Set( ESlotReadViagCacheRecord,
+        iCustomPtrHolder->iViagCacheRecord );
+    Set( EWriteViagHomeZoneCacheIPC, aStatus, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ClearCallBlackList
+// Clears asynchronously call blacklist.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ClearCallBlackList(
+    TRequestStatus& aStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    Blank( ECustomClearCallBlackListIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ClearCallBlackList
+// Clears synchronously call blacklist.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::ClearCallBlackList() const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    return Blank( ECustomClearCallBlackListIPC );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SsAdditionalInfoNotification
+// Notification request for additionalinfo message
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SsAdditionalInfoNotification(
+    TRequestStatus& aStatus,
+    TSsAdditionalInfo& aSsAdditionalInfo )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifySsAdditionalInfo,
+        aSsAdditionalInfo );
+    Get( ECustomSsAdditionalInfoNotificationIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SsRequestCompleteNotification
+// Notify a client of the success of the sended SS command.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SsRequestCompleteNotification(
+        TRequestStatus& aStatus,
+        TInt& aSsStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifySsRequestComplete,
+        aSsStatus );
+    Get( ECustomNotifySsRequestCompleteIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::IsBlocked
+// This method retrieves syncronously the information if the
+// security code is blocked or not.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::IsBlocked(
+    TSecurityCodeType& aType,
+    TBool& aIsBlocked )
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aType ),
+        sizeof( TSecurityCodeType ), sizeof( TSecurityCodeType ) );
+    TPtr8 ptr2( REINTERPRET_CAST( TText8*, &aIsBlocked ),
+        sizeof( TBool ), sizeof( TBool ) );
+
+    return Get( ECustomIsBlockedIPC, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CheckSecurityCode
+// This method activates syncronously the security code request and
+// triggers the security server to prompt PIN-code from client.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::CheckSecurityCode(
+    const TSecurityCodeType aCode )
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, CONST_CAST(
+        TSecurityCodeType*, &aCode ) ), sizeof( TSecurityCodeType ),
+        sizeof( TSecurityCodeType ) );
+
+    return Get( ECustomCheckSecurityCodeIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CheckSecurityCode
+// This method activates asyncronously the security code request and
+// triggers the security server to prompt PIN-code from client.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::CheckSecurityCode(
+    TRequestStatus& aStatus,
+    const TSecurityCodeType aCode )
+    {
+    __ASSERT_ALWAYS ( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iSecurityCodeType = aCode;
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotCheckSecurityCode,
+        iCustomPtrHolder->iSecurityCodeType );
+    Get( ECustomCheckSecurityCodeIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetActivePin
+// This method retrieves syncronously the information whether the currently
+// active PIN is PIN1 or Universal PIN (UPIN).
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetActivePin(
+    RMobilePhone::TMobilePhoneSecurityCode& aActivePin )
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aActivePin ),
+        sizeof( RMobilePhone::TMobilePhoneSecurityCode ),
+        sizeof( RMobilePhone::TMobilePhoneSecurityCode ) );
+
+    Get( ECustomGetActivePinIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetAirTimeDuration
+// This method gets the air time duration. The air time
+// calculation starts when a first call is connected and ends when last call
+// is disconnected. If no calls are active, this method will return the value
+// of the last air time duration.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetAirTimeDuration(
+    TTimeIntervalSeconds& aTime ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aTime ),
+        sizeof( TTimeIntervalSeconds ), sizeof( TTimeIntervalSeconds ) );
+
+    return Get( ECustomGetAirTimeDurationIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetNetworkProviderName
+// This function gets network provider name synchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetNetworkProviderName(
+    TDes& aNetworkProviderName ) const
+    {
+    return Get( ECustomGetNetworkProviderNameIPC, aNetworkProviderName );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetNetworkProviderName
+// This function gets network provider name asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetNetworkProviderName(
+    TRequestStatus& aStatus,
+    TDes& aNetworkProviderName )
+    {
+    Get( ECustomGetNetworkProviderNameIPC, aStatus, aNetworkProviderName );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CheckEmergencyNumber
+// This function checks if given is emergency number with given mode and
+// returns the result synchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::CheckEmergencyNumber(
+    TEmerNumberCheckMode& aNumMode,
+    TBool& aResult ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aNumMode ),
+        sizeof( TEmerNumberCheckMode ), sizeof( TEmerNumberCheckMode ) );
+
+    TPtr8 ptr2( REINTERPRET_CAST( TText8*, &aResult ),
+        sizeof( TBool ), sizeof( TBool ) );
+
+    return Get( ECustomCheckEmergencyNumberIPC, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CheckEmergencyNumber
+// This function checks if given is emergency number with given mode and
+// returns the result asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::CheckEmergencyNumber(
+    TRequestStatus& aStatus,
+    TEmerNumberCheckMode& aNumMode,
+    TBool& aResult )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotCheckEmergencyNumberNumMode,
+        aNumMode );
+    TPtr8& ptr2 = iCustomPtrHolder->Set( ESlotCheckEmergencyNumberResult,
+        aResult );
+
+    Get( ECustomCheckEmergencyNumberIPC, aStatus, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyPndCacheReady
+// Notifies client when phonebook caching is ready
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyPndCacheReady(
+    TRequestStatus& aStatus,
+    TName& aPndName )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifyPndCacheReady, aPndName );
+
+    Get( ECustomNotifyPndCacheReadyIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetPndCacheStatus
+// This function gets current status of caching
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetPndCacheStatus(
+    TRequestStatus& aStatus,
+    RMmCustomAPI::TPndCacheStatus& aPndStatus,
+    const TName& aPndName ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr1 = iCustomPtrHolder->Set( ESlotGetPndCacheStatus, aPndStatus );
+
+    SetAndGet( ECustomGetPndCacheStatusIPC, aStatus, ptr1, aPndName );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetOperatorName
+// This function gets asynchronously the operator name of the
+// current Network.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetOperatorName(
+    TRequestStatus& aStatus,
+    TOperatorNameInfo& aOperatorNameInfo )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    TPtr8& ptr1 = iCustomPtrHolder->Set( ESlotGetOperatorName,
+        aOperatorNameInfo );
+
+    Get( ECustomGetOperatorNameIPC, aStatus, ptr1 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetProgrammableOperatorLogo
+// This function gets asynchronously the programmable operator logo and
+// operator Id of the current Network.
+// (other items were commented in a header).
+//
+//	This API is no longer supported!
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetProgrammableOperatorLogo(
+    TRequestStatus& aStatus,
+    TOperatorId& aOperatorId,
+    TOperatorLogo& aLogo )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotGetProgrammableOperatorId,
+        aOperatorId );
+
+    TPtr8& ptr2 = iCustomPtrHolder->Set( ESlotGetProgrammableOperatorLogo,
+        aLogo );
+
+    Get( ECustomGetProgrammableOperatorLogoIPC, aStatus, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyProgrammableOperatorLogoChange
+// This function notifies the programmable operator logo change
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyProgrammableOperatorLogoChange(
+    TRequestStatus& aStatus,
+    TOperatorId& aOperatorId )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifyProgrammableOperatorId,
+        aOperatorId );
+
+    Get( ECustomNotifyProgrammableOperatorLogoChangeIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifySsNetworkEvent
+// This function notifies the client about different network generated
+// SS events
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifySsNetworkEvent(
+    TRequestStatus& aStatus,
+    TSsTypeAndMode& aSsTypeAndMode,
+    TSsInfo& aSsInfo )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotSsNotifyTypeAndMode,
+        aSsTypeAndMode );
+    TPtr8& ptr2 = iCustomPtrHolder->Set( ESlotSsNotifyInfo, aSsInfo );
+
+    Get( ECustomNotifySsNetworkEventIPC, aStatus, ptr, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CancelUssdSession
+// This function cancel active ussd session synchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::CancelUssdSession() const
+    {
+    return Blank( ECustomCancelUssdSessionIPC );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CancelUssdSession
+// This function cancel active ussd session asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::CancelUssdSession(
+    TRequestStatus& aStatus )
+    {
+    Blank( ECustomCancelUssdSessionIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SatRefreshCompleteNotification
+// This function notifies a client of SAT refresh
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SatRefreshCompleteNotification(
+    TRequestStatus& aStatus )
+    {
+    Blank( ECustomSatRefreshCompleteNotificationIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TCustomCallParams::TCustomCallParams
+// This method is the constructor of class TCustomCallParams.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RMmCustomAPI::TCustomCallParams::TCustomCallParams()
+    {
+    iExtensionId = KETelCustomExtCustomCallParamsV3;
+    iSubAddress.Zero();
+    iBearer.Zero();
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CheckTwoDigitDialSupport
+// This function checks two digit dialing support state synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::CheckTwoDigitDialSupport(
+    TTwoDigitDialSupport& aSupport ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, &aSupport ),
+        sizeof( TTwoDigitDialSupport ), sizeof( TTwoDigitDialSupport ) );
+
+    return Get( ECustomCheckTwoDigitDialSupportIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::CheckTwoDigitDialSupport
+// This function checks two digit dialing support state asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::CheckTwoDigitDialSupport(
+    TRequestStatus& aStatus,
+    TTwoDigitDialSupport& aSupport )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotCheckTwoDigitDialSupport,
+        aSupport );
+    Get( ECustomCheckTwoDigitDialSupportIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ResetNetServer
+// This function resets the net server
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ResetNetServer() const
+    {
+    Blank ( ECustomResetNetServerIPC );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ResetNetServer
+// This function resets the net server asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ResetNetServer(
+    TRequestStatus& aStatus )
+    {
+    Blank ( ECustomResetNetServerIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ReleaseFile
+// This function releases file in CommDB.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ReleaseFile(
+    TRequestStatus& aStatus,
+    const TDesC& aFileName )
+    {
+    Set( ECustomReleaseFileIPC, aStatus, aFileName );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::RestartFile
+// This function restarts the file in CommDB.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::RestartFile(
+    TRequestStatus& aStatus,
+    const TDesC& aFileName )
+    {
+    Set( ECustomRestartFileIPC, aStatus, aFileName );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::StartSimCbTopicBrowsing
+// This function gets the Cell Broadcast message ID's from SIM
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::StartSimCbTopicBrowsing()
+    {
+    return Blank( ECustomStartSimCbTopicBrowsingIPC );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetNextSimCbTopic
+// This function gets next Cell Broadcast Id.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetNextSimCbTopic(
+    TSimCbTopic& aSimCbTopic )
+    {
+    TPtr8 ptr( REINTERPRET_CAST ( TText8*, &aSimCbTopic ),
+        sizeof( TSimCbTopic ),sizeof( TSimCbTopic ) );
+
+    return Get( ECustomGetNextSimCbTopicIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetNextSimCbTopic
+// This function gets next Cell Broadcast Id.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetNextSimCbTopic(
+    TRequestStatus& aStatus,
+    TSimCbTopic& aSimCbTopic )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iSimCbTopic = aSimCbTopic;
+    TPtr8& ptr = iCustomPtrHolder->Set(
+        ESlotGetNextSimCbTopic, aSimCbTopic );
+    Get( ECustomGetNextSimCbTopicIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::DeleteSimCbTopic
+// This function deletes a Cell Broadcast Id from SIM
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::DeleteSimCbTopic(
+    const TUint &aSimCbTopicNumber)
+    {
+    TPtr8 ptr(REINTERPRET_CAST( TText8*,CONST_CAST(
+        TUint*,&aSimCbTopicNumber ) ), sizeof( TUint ),sizeof( TUint ) );
+
+    return Set( ECustomDeleteSimCbTopicIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+//  RMmCustomAPI::DeleteSimCbTopic
+//  This function deletes a Cell Broadcast Id from SIM
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::DeleteSimCbTopic(
+    TRequestStatus& aStatus,
+    const TUint &aSimCbTopicNumber )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iSimCbTopicNumber = aSimCbTopicNumber;
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotDeleteSimCbTopic,
+        iCustomPtrHolder->iSimCbTopicNumber );
+    Set( ECustomDeleteSimCbTopicIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyNetworkConnectionFailure
+// Notifies of a network connection failure. This failure is so sever that
+// the only way to recover is to restart the phone.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyNetworkConnectionFailure(
+    TRequestStatus& aStatus )
+    {
+    Blank ( ECustomNotifyNetworkConnectionFailureIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SendAPDUReq
+// This method transmits APDU requests message asyncronously to Etel Server.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SendAPDUReq(
+    TRequestStatus& aStatus,
+    TApdu& anAPDUReq )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    Get( ECustomSendAPDUReqIPC, aStatus, *( anAPDUReq.iInfo ),
+        *( anAPDUReq.iData ) );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SendAPDUReq
+// This method transmits APDU requests message syncronously to Etel Server.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::SendAPDUReq(
+    TApdu& anAPDUReq )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    return Get( ECustomSendAPDUReqIPC, *( anAPDUReq.iInfo ), *(
+        anAPDUReq.iData ) );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApiExt::DisablePhoneLock
+// Disable phone lock with password supplied in aVerifyCode.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::DisablePhoneLock(
+    TRequestStatus& aStatus,
+    RMobilePhone::TMobilePassword& aVerifyCode ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr1 = iCustomPtrHolder->Set( ESlotDisablePhoneLock, aVerifyCode );
+
+    Set( ECustomDisablePhoneLockIPC, aStatus, ptr1 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyEGprsInfoChange
+// This method informs upper levels about EGPRS.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyEGprsInfoChange(
+    TRequestStatus& aStatus,
+    TDes8& aGprsInfo ) const
+    {
+    Get( ECustomNotifyEGprsInfoChange, aStatus, aGprsInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetEGprsInfo
+// This method gets information about EGPRS.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetEGprsInfo(
+    TRequestStatus& aStatus,
+    TDes8& aGprsInfo ) const
+    {
+    Get( ECustomGetEGprsInfo, aStatus, aGprsInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TGprsInformation
+// This is Constructor of class TGprsInformation.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RMmCustomAPI::TGprsInformation::TGprsInformation()
+    {
+    iGprsInfo = EGprs;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApiExt::ReadSimFile
+// Reads information from the SIM file specified in aSimFileInfo
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ReadSimFile (
+    TRequestStatus& aStatus,
+    TDes8& aSimFileInfo,
+    TDes8& aResponseBytes ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    Get( ECustomReadSimFileIPC, aStatus, aSimFileInfo, aResponseBytes );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TSimFileInfo TSimFileInfo
+// Default constructor for TSimFileInfo
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RMmCustomAPI::TSimFileInfo::TSimFileInfo()
+    {
+    iPath.Zero();
+    iOffSet = 0;
+    iSize = 0;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApiExt::TLifeTimeData::TLifeTimeData
+// Default constructor for TLifeTimeData
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RMmCustomAPI::TLifeTimeData::TLifeTimeData()
+    {
+    iCaps = ELifeTimeDataCapsUnknown;
+    iHours = 0;
+    iMinutes = 0;
+    iManufacturingDate.Set( 0, EJanuary, 0, 0, 0, 0, 0 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApiExt::GetLifeTime
+// Get Life time information synchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetLifeTime(
+    TDes8& aLifeTimeInfo ) const
+    {
+    return Get( ECustomGetLifeTimeIPC, aLifeTimeInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApiExt::GetLifeTime
+// Get Life time information asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetLifeTime(
+    TRequestStatus& aStatus,
+    TDes8& aLifeTimeInfo ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    Get( ECustomGetLifeTimeIPC, aStatus, aLifeTimeInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetNextSimCbTopic
+// This function gets next Cell Broadcast Id.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::Get3GPBInfo(
+    TRequestStatus& aStatus,
+    T3GPBInfo& aInfo ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotGet3GPBInfo, aInfo );
+    Get( EGet3GPBInfoIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetSystemNetworkModes
+// This method reads all network system modes synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetSystemNetworkModes(
+    TUint32& aSupportedNetworkModes ) const
+    {
+    TPtr8 ptr(REINTERPRET_CAST( TText8*, CONST_CAST(
+    TUint32*, &aSupportedNetworkModes ) ), sizeof( TUint32 ),
+        sizeof( TUint32 ) );
+
+    return Get( ECustomGetSystemNetworkModesIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetSystemNetworkModes
+// This method reads all network system modes asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetSystemNetworkModes(
+    TRequestStatus& aStatus,
+    TUint32& aSupportedNetworkModes ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iSupportedNetworkModes = aSupportedNetworkModes;
+    TPtr8& ptr = iCustomPtrHolder->Set(
+        ESlotGetSystemNetworkModes, aSupportedNetworkModes );
+    Get( ECustomGetSystemNetworkModesIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SetSystemNetworkMode
+// This method sets network system mode synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::SetSystemNetworkMode(
+    const TNetworkModeCaps aNetworkMode )
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, CONST_CAST(
+    TNetworkModeCaps*, &aNetworkMode ) ),
+        sizeof( TNetworkModeCaps ), sizeof( TNetworkModeCaps ) );
+
+    return Set( ECustomSetSystemNetworkModeIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SetSystemNetworkMode
+// This method sets network system mode asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SetSystemNetworkMode(
+    TRequestStatus& aStatus,
+    const TNetworkModeCaps aNetworkMode )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iNetworkModeCaps = aNetworkMode;
+    TPtr8& ptr = iCustomPtrHolder->Set(
+        ESlotSetSystemNetworkMode, iCustomPtrHolder->iNetworkModeCaps );
+    Set( ECustomSetSystemNetworkModeIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetCurrentSystemNetworkModes
+// This method reads current network system modes synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetCurrentSystemNetworkModes(
+    TUint32& aCurrentNetworkModes ) const
+    {
+    TPtr8 ptr(REINTERPRET_CAST( TText8*, CONST_CAST(
+    TUint32*,&aCurrentNetworkModes ) ), sizeof( TUint32 ),sizeof( TUint32 ) );
+
+    return Get( ECustomGetCurrentSystemNetworkModesIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetCurrentSystemNetworkModes
+// This method reads current network system modes asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetCurrentSystemNetworkModes(
+    TRequestStatus& aStatus,
+    TUint32& aCurrentNetworkModes ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iCurrentNetworkModes = aCurrentNetworkModes;
+
+    TPtr8& ptr = iCustomPtrHolder->Set(
+        ESlotGetCurrentSystemNetworkModes, aCurrentNetworkModes );
+    Get( ECustomGetCurrentSystemNetworkModesIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::PowerSimOn
+// Send Power SIM On Request to APDU server
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::PowerSimOn(
+    TRequestStatus& aStatus )
+    {
+    Blank( ECustomPowerSimOnIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::PowerSimOff
+// Send Power SIM Off Request to APDU server
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::PowerSimOff(
+    TRequestStatus& aStatus )
+    {
+    Blank( ECustomPowerSimOffIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SimWarmReset
+// Send Sim Warm Reset Request to APDU server
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SimWarmReset(
+    TRequestStatus& aStatus )
+    {
+    Blank( ECustomSimWarmResetIPC, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetATR
+// Get ATR from APDU server
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetATR(
+    TRequestStatus& aStatus, TDes8& aATR )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+    Get( ECustomGetATRIPC, aStatus, aATR );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetSimCardReaderStatus
+// Get card reader status from APDU server asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetSimCardReaderStatus(
+    TRequestStatus& aStatus,
+    TSimCardReaderStatus& aCardReaderStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotGetSimCardReaderStatus,
+        aCardReaderStatus );
+    Get( ECustomGetSimCardReaderStatusIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifySimCardStatus
+// Notifies a client of physical status change of SIM
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifySimCardStatus(
+    TRequestStatus& aStatus,
+    TSIMCardStatus& aCardStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifySimCardStatus,
+        aCardStatus );
+    Get( ECustomNotifySimCardStatusIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TSimCardReaderStatus::GetCardReaderID
+// Get card reader ID
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUint8 RMmCustomAPI::TSimCardReaderStatus::GetCardReaderID()
+    {
+    // ReaderStatus byte (see /6/ GSM 11.14 section 12.33)
+    // Bits
+    // 1-3  Identity of card reader
+    // 4    0=Card reader is not removable
+    //      1=Card reader is removable
+    // 5    0=Card reader is not present
+    //      1=Card reader is present
+    // 6    0=Card reader present is not ID-1 size
+    //      1=Card reader present is ID-1 size
+    // 7    0=No card present
+    //      1=Card is present in reader
+    // 8    0=No card powered
+    //      1=Card in reader is powered
+
+    return ( TUint8 )( iSimCardReaderStatus & 0x07 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TSimCardReaderStatus::IsCardReaderRemovable
+// Is card reader removable
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool RMmCustomAPI::TSimCardReaderStatus::IsCardReaderRemovable()
+    {
+    // ReaderStatus byte (see /6/ GSM 11.14 section 12.33)
+    // Bits
+    // 1-3  Identity of card reader
+    // 4    0=Card reader is not removable
+    //      1=Card reader is removable
+    // 5    0=Card reader is not present
+    //      1=Card reader is present
+    // 6    0=Card reader present is not ID-1 size
+    //      1=Card reader present is ID-1 size
+    // 7    0=No card present
+    //      1=Card is present in reader
+    // 8    0=No card powered
+    //      1=Card in reader is powered
+
+    return ( iSimCardReaderStatus >> 3 ) & 0x01;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TSimCardReaderStatus::IsCardReaderPresent
+// Is card reader present
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool RMmCustomAPI::TSimCardReaderStatus::IsCardReaderPresent()
+    {
+    // ReaderStatus byte (see /6/ GSM 11.14 section 12.33)
+    // Bits
+    // 1-3  Identity of card reader
+    // 4    0=Card reader is not removable
+    //      1=Card reader is removable
+    // 5    0=Card reader is not present
+    //      1=Card reader is present
+    // 6    0=Card reader present is not ID-1 size
+    //      1=Card reader present is ID-1 size
+    // 7    0=No card present
+    //      1=Card is present in reader
+    // 8    0=No card powered
+    //      1=Card in reader is powered
+
+    return ( iSimCardReaderStatus  >> 4 ) & 0x01;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TSimCardReaderStatus::IsCardPowered
+// Is card powered
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool RMmCustomAPI::TSimCardReaderStatus::IsCardPowered()
+    {
+    // ReaderStatus byte (see /6/ GSM 11.14 section 12.33)
+    // Bits
+    // 1-3  Identity of card reader
+    // 4    0=Card reader is not removable
+    //      1=Card reader is removable
+    // 5    0=Card reader is not present
+    //      1=Card reader is present
+    // 6    0=Card reader present is not ID-1 size
+    //      1=Card reader present is ID-1 size
+    // 7    0=No card present
+    //      1=Card is present in reader
+    // 8    0=No card powered
+    //      1=Card in reader is powered
+
+    return ( iSimCardReaderStatus  >> 6 ) & 0x01;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TSimCardReaderStatus::IsCardPresent
+// Is card present
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool RMmCustomAPI::TSimCardReaderStatus::IsCardPresent()
+    {
+    // ReaderStatus byte (see /6/ GSM 11.14 section 12.33)
+    // Bits
+    // 1-3  Identity of card reader
+    // 4    0=Card reader is not removable
+    //      1=Card reader is removable
+    // 5    0=Card reader is not present
+    //      1=Card reader is present
+    // 6    0=Card reader present is not ID-1 size
+    //      1=Card reader present is ID-1 size
+    // 7    0=No card present
+    //      1=Card is present in reader
+    // 8    0=No card powered
+    //      1=Card in reader is powered
+
+    return ( iSimCardReaderStatus >> 7 ) & 0x01;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TSimCardReaderStatus::SetStatus
+// Set card status
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::TSimCardReaderStatus::SetStatus(
+    TUint8 newStatus )
+    {
+    iSimCardReaderStatus = newStatus;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::TSimCardReaderStatus::GetStatus
+// Get card status
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUint8 RMmCustomAPI::TSimCardReaderStatus::GetStatus()
+    {
+    return iSimCardReaderStatus;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SendAPDUReq
+// Send APDU to APDU server asynchronously
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SendAPDUReq(
+    TRequestStatus& aStatus,
+    TApduParameters& aParams )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotSendAPDUReqV2Status, aParams );
+    Get( ECustomSendAPDUReqV2IPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TSimAuthenticationEapSim
+// TSimAuthenticationEapSim constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RMmCustomAPI::TSimAuthenticationEapSim::TSimAuthenticationEapSim()
+    {
+    iRandomParameters.Zero();
+    iSRES.Zero();
+    iKC.Zero();
+
+    iExtensionId = EEapSim;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TSimAuthenticationEapAka
+// TSimAuthenticationEapAka constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RMmCustomAPI::TSimAuthenticationEapAka::TSimAuthenticationEapAka()
+    {
+    iRandomParameters.Zero();
+    iAUTN.Zero();
+    iRES.Zero();
+    iCK.Zero();
+    iIK.Zero();
+    iAUTS.Zero();
+
+    iExtensionId = EEapAka;
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TSimAuthenticationGbaBootstrap
+// TSimAuthenticationGbaBootstrap constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C 
+    RMmCustomAPI::TSimAuthenticationGbaBootstrap::
+        TSimAuthenticationGbaBootstrap()
+    {
+    iExtensionId = EGbaBootstrap;
+    iRandomParameters.Zero();
+    iAUTN.Zero();
+    iRES.Zero();
+    iAUTS.Zero();
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TSimAuthenticationGbaBootstrapUpdate
+// TSimAuthenticationGbaBootstrapUpdate constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C 
+    RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate::
+        TSimAuthenticationGbaBootstrapUpdate()
+    {
+    iExtensionId = EGbaBootstrapUpdate;
+    iRandomParameters.Zero();
+    iBTid.Zero();
+    iKeyLifeTime.Zero();
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TSimAuthenticationGbaNafDerivation
+// TSimAuthenticationGbaNafDerivation constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C 
+    RMmCustomAPI::TSimAuthenticationGbaNafDerivation::
+        TSimAuthenticationGbaNafDerivation()
+    {
+    iExtensionId =  EGbaBootstrapNafDerivation;
+    iNafId.Zero();
+    iImpi.Zero();
+    iKsExtNaf.Zero();
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TSimAuthenticationMgvMskUpdate
+// TSimAuthenticationMgvMskUpdate constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C 
+    RMmCustomAPI::TSimAuthenticationMgvMskUpdate::
+        TSimAuthenticationMgvMskUpdate()
+    {
+    iExtensionId = EMgvMskUpdate;
+    iMikey.Zero();
+    // Smartcard support for MobileTV
+    iBCASTManagement.Zero();
+    iParentalRating.Zero();
+    iSecurityPolicyExt.Zero();
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TSimAuthenticationMgvMskGeneration
+// TSimAuthenticationMgvMskGeneration constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C 
+    RMmCustomAPI::TSimAuthenticationMgvMtkGeneration::
+        TSimAuthenticationMgvMtkGeneration()
+    {
+    iExtensionId = EMgvMtkGeneration;
+    iMikey.Zero();
+    iMtkSalt.Zero();
+    // Smartcard support for MobileTV
+    iBCASTManagement.Zero();
+    iParentalControl.Zero();
+    iTrafficEncryptionKey.Zero();
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TSimAuthenticationMgvMskDeletion
+// TSimAuthenticationMgvMskDeletion constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C 
+    RMmCustomAPI::TSimAuthenticationMgvMskDeletion::
+        TSimAuthenticationMgvMskDeletion()
+    {
+    iExtensionId = EMgvMskDeletion;
+    iKeyDomainId.Zero();
+    iKeyGroupIdPart.Zero();
+    }   
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::GetWlanSimAuthenticationData
+// Gets WLAN authentication data for EAP SIM or EAP AKA authentication
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetWlanSimAuthenticationData(
+    TRequestStatus& aReqStatus,
+    TDes8& aAuthenticationData ) const
+    {
+    __ASSERT_ALWAYS ( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    Get( ECustomGetSimAuthenticationDataIPC, aReqStatus,
+        aAuthenticationData );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SetSimMessageStatusRead
+// Sets "storage status" byte of a SIM-stored SMS message to "read".
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SetSimMessageStatusRead(
+    TTime& aTime,
+    TInt& aTimezoneDiff ) const
+    {
+    TPtr8 ptr1( REINTERPRET_CAST( TText8*, &aTime ),
+        sizeof( TTime ), sizeof( TTime ) );
+    TPtr8 ptr2( REINTERPRET_CAST( TText8*, &aTimezoneDiff ),
+        sizeof( TInt ), sizeof( TInt ) );
+    Set( ECustomSetSimMessageStatusReadIPC, ptr1, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::WriteViagHomeZoneUHZIUESettings
+// This method writes specified VIAG Home Zone UHZIUE settings synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::WriteViagHomeZoneUHZIUESettings (
+    TViagUHZIUESettings& aSettings ) const
+    {
+    TPtr8 ptr( REINTERPRET_CAST( TText8*, CONST_CAST(
+        TViagUHZIUESettings*, &aSettings ) ), sizeof( TViagUHZIUESettings ),
+            sizeof( TViagUHZIUESettings ) );
+
+    return Set( EWriteViagHomeZoneUHZIUESettingsIPC, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::WriteViagHomeZoneUHZIUESettings
+// This method writes specified VIAG Home Zone UHZIUE settings asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::WriteViagHomeZoneUHZIUESettings (
+    TRequestStatus& aStatus,
+    TViagUHZIUESettings& aSettings ) const
+    {
+    TPtr8& ptr = iCustomPtrHolder->Set(
+        ESlotWriteViagUHZIUESettings, aSettings );
+
+    Set( EWriteViagHomeZoneUHZIUESettingsIPC, aStatus, ptr );
+    }
+
+//----------------------------------------------------------------------------
+// RMmCustomAPI::SetAlwaysOn
+// (other items were commented in a header).
+//----------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SetAlwaysOn(
+    TRequestStatus& aStatus,
+    TSetAlwaysOnMode& aMode ) const
+    {
+
+    TPtr8& ptr = iCustomPtrHolder->Set(
+        ESlotSetAlwaysOn, aMode );
+
+    Set( ECustomSetAlwaysOnMode, aStatus , ptr );
+    }
+
+//----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyRauEvent
+// (other items were commented in a header).
+//----------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyRauEvent(
+    TRequestStatus& aStatus,
+    TRauEventStatus& aEventStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifyRauEvent, aEventStatus );
+    Get( ECustomNotifyRauEventIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::ReadHSxPAStatus
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::ReadHSxPAStatus(
+    TRequestStatus& aStatus,
+    THSxPAStatus& aHSxPAStatus )
+    {
+    __ASSERT_ALWAYS ( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotReadHSxPAStatus, aHSxPAStatus );
+    Get( ECustomReadHSxPAStatusIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::WriteHSxPAStatus
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::WriteHSxPAStatus(
+    TRequestStatus& aStatus,
+    THSxPAStatus& aHSxPAStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL,
+        PanicClient( EEtelPanicNullHandle ) );
+
+    iCustomPtrHolder->iHSxPAStatus = aHSxPAStatus;
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotWriteHSxPAStatus,
+        iCustomPtrHolder->iHSxPAStatus );
+    Set( ECustomWriteHSxPAStatusIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyHSxPAStatus
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyHSxPAStatus(
+    TRequestStatus& aStatus,
+    THSxPAStatus& aHSxPAStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotNotifyHSxPAStatus,
+        aHSxPAStatus );
+    Get( ECustomNotifyHSxPAStatusIPC, aStatus, ptr );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetIccCallForwardingIndicatorStatus
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetIccCallForwardingIndicatorStatus(
+    TRequestStatus& aReqStatus,
+    TDes8& aCFIndicators ) const
+  {
+  __ASSERT_ALWAYS ( iCustomPtrHolder != NULL, PanicClient(
+      EEtelPanicNullHandle ) );
+
+    Get( ECustomGetIccCallForwardingStatusIPC, aReqStatus, aCFIndicators );
+  }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyIccCallForwardingStatusChange
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyIccCallForwardingStatusChange(
+    TRequestStatus& aReqStatus,
+    TDes8& aCFIndicators )
+  {
+  __ASSERT_ALWAYS ( iCustomPtrHolder != NULL, PanicClient(
+      EEtelPanicNullHandle ) );
+
+    Get( ECustomNotifyIccCallForwardingStatusChangeIPC, aReqStatus,
+        aCFIndicators );
+  }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TCFIndicators
+// TCFIndicators constructor
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RMmCustomAPI::TCFIndicators::TCFIndicators()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetCellInfo
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetCellInfo (
+    TRequestStatus& aStatus,
+    TDes8& aCellInfo ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    Get( ECustomGetCellInfoIPC, aStatus, aCellInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::NotifyCellInfoChange
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyCellInfoChange(
+    TRequestStatus& aStatus,
+    TDes8& aCellInfo ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    Get( ECustomNotifyCellInfoChangeIPC, aStatus, aCellInfo );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomApi::TMmCellInfo::TMmCellInfo
+// Default constructor for TMmCellInfo
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RMmCustomAPI::TMmCellInfo::TMmCellInfo()
+    {
+    // Initialize GsmCellInfo values
+    iMode = RMmCustomAPI::TMmCellInfo::EUnknown;
+    iGsmCellInfo.iTA = -1;
+    for( TInt i = 0; i <KMaxNmrAmount; i++ )
+        {
+        iGsmCellInfo.iNmr[i].iARFCN = -1;
+        iGsmCellInfo.iNmr[i].iBSIC = -1;
+        iGsmCellInfo.iNmr[i].iRxLEV = -1;
+        }
+
+    // Initialize WcdmaCellInfo values
+    iWcdmaCellInfo.iFrequencyInfo.iFddUL = -1;
+    iWcdmaCellInfo.iFrequencyInfo.iFddDL = -1;
+    iWcdmaCellInfo.iFrequencyInfo.iTddNt = -1;
+    iWcdmaCellInfo.iPrimaryScrambilingCode = -1;
+
+    for( TInt j = 0; j <KMaxNetworkMeasureReports; j++ )
+        {
+        //Initialize TNetworkMeasureReport values
+        iWcdmaCellInfo.iNwkMeasureReport[j].iCarrierRSSI = -1;
+        iWcdmaCellInfo.iNwkMeasureReport[j].iFrequencyInfo.iFddDL = -1;
+    	iWcdmaCellInfo.iNwkMeasureReport[j].iFrequencyInfo.iFddUL = -1;
+		iWcdmaCellInfo.iNwkMeasureReport[j].iFrequencyInfo.iTddNt = -1;
+
+        for( TInt k = 0; k <KMaxCellMeasuredResults; k++ )
+            {
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iCID = -1;
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iFddInfo.iPrimaryCPICH = -1;
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iFddInfo.iCpichEcN0 = -1;
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iFddInfo.iCpichRscp = -1;
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iFddInfo.iPathloss = -1;
+
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iTddInfo.iCellParamID = -1;
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iTddInfo.iProposedTGSN = -1;
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iTddInfo.iPrimaryCcpchRscp = -1;
+            iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                iTddInfo.iPathloss = -1;
+            for( TInt l = 0; l <KMaxTimeSlotIscpAmount; l++ )
+                {
+                iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].
+                    iTddInfo.iTimeslotISCP[l] = -1;
+                }
+            }
+        }
+    }
+    
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetSystemNetworkBand
+// This method reads network system band synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::GetSystemNetworkBand(
+    TBandSelection& aSupportedNetworkBand,
+    TNetworkModeCaps& aNetworkMode ) const
+    {
+    TPtr8 ptr1(REINTERPRET_CAST( TText8*, CONST_CAST(
+    TBandSelection*, &aSupportedNetworkBand ) ), sizeof( TBandSelection ),
+        sizeof( TBandSelection ) );
+    TPtr8 ptr2(REINTERPRET_CAST( TText8*, CONST_CAST(
+    TNetworkModeCaps*, &aNetworkMode ) ), sizeof( TNetworkModeCaps ),
+        sizeof( TNetworkModeCaps ) );
+
+    return Get( ECustomGetBandSelectionIPC, ptr1, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetSystemNetworkBand
+// This method reads network system band asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetSystemNetworkBand(
+    TRequestStatus& aStatus,
+    TBandSelection& aSupportedNetworkBand,
+    TNetworkModeCaps& aNetworkMode ) const
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iSupportedNetworkBand = aSupportedNetworkBand;
+    TPtr8& ptr1 = iCustomPtrHolder->Set(
+        ESlotGetSystemNetworkBand, aSupportedNetworkBand );
+    iCustomPtrHolder->iNetworkModeCaps = aNetworkMode;
+    TPtr8& ptr2 = iCustomPtrHolder->Set(
+        ESlotSetSystemNetworkMode, aNetworkMode );
+
+    Get( ECustomGetBandSelectionIPC, aStatus, ptr1, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SetSystemNetworkBand
+// This method sets network system band synchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt RMmCustomAPI::SetSystemNetworkBand(
+    const TBandSelection aNetworkBand,
+    const TNetworkModeCaps aNetworkMode )
+    {
+    TPtr8 ptr1( REINTERPRET_CAST( TText8*, CONST_CAST(
+    TBandSelection*, &aNetworkBand ) ),
+        sizeof( TBandSelection ), sizeof( TBandSelection ) );
+        
+    TPtr8 ptr2( REINTERPRET_CAST( TText8*, CONST_CAST(
+    TNetworkModeCaps*, &aNetworkMode ) ),
+        sizeof( TNetworkModeCaps ), sizeof( TNetworkModeCaps ) );
+
+    return Set( ECustomSetBandSelectionIPC, ptr1, ptr2 );
+    }
+    
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::SetSystemNetworkBand
+// This method sets network system band asynchronously.
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::SetSystemNetworkBand(
+    TRequestStatus& aStatus,
+    const TBandSelection aNetworkBand,
+    const TNetworkModeCaps aNetworkMode )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    iCustomPtrHolder->iNetworkBand = aNetworkBand;
+    TPtr8& ptr1 = iCustomPtrHolder->Set(
+        ESlotSetSystemNetworkBand, iCustomPtrHolder->iNetworkBand );
+        
+    iCustomPtrHolder->iNetworkModeCaps = aNetworkMode;
+    TPtr8& ptr2 = iCustomPtrHolder->Set(
+        ESlotSetSystemNetworkMode, iCustomPtrHolder->iNetworkModeCaps );
+       
+    Set( ECustomSetBandSelectionIPC, aStatus, ptr1, ptr2 );
+    }
+
+// ---------------------------------------------------------------------------
+// RMmCustomAPI::GetUSIMServiceSupport
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::GetUSIMServiceSupport( 
+	TRequestStatus& aStatus, 
+	TAppSupport& aParams) const
+    {
+    __ASSERT_ALWAYS ( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+
+    TPtr8& ptr = iCustomPtrHolder->Set( ESlotGetUSIMServiceSupport, aParams );
+    Get( ECustomGetServiceTableSupportbyApplicationIPC, aStatus, ptr );
+
+    }
+    
+//----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyRemoteAlertingToneStatusChange
+// (other items were commented in a header).
+//----------------------------------------------------------------------------
+//
+EXPORT_C void RMmCustomAPI::NotifyRemoteAlertingToneStatusChange(
+    TRequestStatus& aStatus,
+    TRemoteAlertingToneStatus& aToneStatus )
+    {
+    __ASSERT_ALWAYS( iCustomPtrHolder != NULL, PanicClient(
+        EEtelPanicNullHandle ) );
+    TPtr8& ptr = iCustomPtrHolder->Set( 
+        ESlotNotifyRemoteAlertingToneStatusChange, aToneStatus );
+    Get( ECustomNotifyRemoteAlertingToneStatusChangeIPC, aStatus, ptr );
+    }
+
+//  End of File