diff -r 61e9400fe245 -r 0cb2248d0edc apicompatanamdw/bcdrivers/os/cellularsrv/IsvTelephonyTest/src/IsvTelephonyTestEngine.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/apicompatanamdw/bcdrivers/os/cellularsrv/IsvTelephonyTest/src/IsvTelephonyTestEngine.cpp Thu Apr 22 17:15:08 2010 +0530 @@ -0,0 +1,965 @@ +/* +* Copyright (c) 2005 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: +* +*/ + +/* Changed by Vaibhav - 13Aug07 for Removing CodeScanner Warnings - High/medium */ + + +// INCLUDE FILES +#include +#include +#include +#include +#include "IsvTelephonyTestEngine.h" + +// ================= MEMBER FUNCTIONS ========================================= + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine* CIsvTelephonyTestEngine::NewL +// Two-phased constructor. +// ---------------------------------------------------------------------------- +// +CIsvTelephonyTestEngine* CIsvTelephonyTestEngine::NewL() + { + CIsvTelephonyTestEngine* self = new (ELeave) CIsvTelephonyTestEngine; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + return self; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::~CIsvTelephonyTestEngine +// Destructor. +// ---------------------------------------------------------------------------- +// +CIsvTelephonyTestEngine::~CIsvTelephonyTestEngine() + { + Cancel(); + delete iTelephony; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::RunL +// Handles the active object’s request completion event. +// ---------------------------------------------------------------------------- +// +void CIsvTelephonyTestEngine::RunL() + { + iWait.AsyncStop(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::DoCancel +// Implements cancellation of an outstanding request. +// ---------------------------------------------------------------------------- +// +void CIsvTelephonyTestEngine::DoCancel() + { + //Based on the command, invoke the appropriate CancelAsync APIs + switch( iTelApiCmd ) + { + case EGetPhoneId : + iTelephony->CancelAsync( CTelephony::EGetPhoneIdCancel ); + break; + case EGetSubscriberId : + iTelephony->CancelAsync( CTelephony::EGetSubscriberIdCancel ); + break; + case EGetFlightMode : + iTelephony->CancelAsync( CTelephony::EGetFlightModeCancel ); + break; + case EGetIndicator : + iTelephony->CancelAsync( CTelephony::EGetIndicatorCancel ); + break; + case EGetBatteryInfo : + iTelephony->CancelAsync( CTelephony::EGetBatteryInfoCancel ); + break; + case EGetSignalStrength : + iTelephony->CancelAsync( CTelephony::EGetSignalStrengthCancel ); + break; + case EGetLockInfo : + iTelephony->CancelAsync( CTelephony::EGetLockInfoCancel ); + break; + case ESendDTMFTones: + iTelephony->CancelAsync( CTelephony::ESendDTMFTonesCancel ); + break; + case EDialNewCall : + iTelephony->CancelAsync( CTelephony::EDialNewCallCancel ); + break; + case EHold : + iTelephony->CancelAsync( CTelephony::EHoldCancel ); + break; + case EResume : + iTelephony->CancelAsync( CTelephony::EResumeCancel ); + break; + case ESwap : + iTelephony->CancelAsync( CTelephony::ESwapCancel ); + break; + case EHangup : + iTelephony->CancelAsync( CTelephony::EHangupCancel ); + break; + case EAnswerIncomingCall : + iTelephony->CancelAsync( CTelephony::EAnswerIncomingCallCancel ); + break; + case ENwRegistrationStatus : + iTelephony->CancelAsync( CTelephony::EGetNetworkRegistrationStatusCancel ); + break; + case EGetCurrentNetworkInfo : + iTelephony->CancelAsync( CTelephony::EGetCurrentNetworkInfoCancel ); + break; + case EGetCurrentNetworkName: + iTelephony->CancelAsync( CTelephony::EGetCurrentNetworkNameCancel ); + break; + case EGetOperatorName : + iTelephony->CancelAsync( CTelephony::EGetOperatorNameCancel ); + break; + case EGetCallForwardingStatus : + iTelephony->CancelAsync( CTelephony::EGetCallForwardingStatusCancel ); + break; + case EGetBarringStatus : + iTelephony->CancelAsync( CTelephony::EGetCallBarringStatusCancel ); + break; + case EGetWaitingStatus : + iTelephony->CancelAsync( CTelephony::EGetCallWaitingStatusCancel ); + break; + case EGetIdentityStatus : + iTelephony->CancelAsync( CTelephony::EGetIdentityServiceStatusCancel ); + break; + case ENotifyChange : + switch( iNotificationEvent ) + { + case CTelephony::EOwnedCall1StatusChange : + iTelephony->CancelAsync( CTelephony::EOwnedCall1StatusChangeCancel ); + break; + case CTelephony::EOwnedCall2StatusChange : + iTelephony->CancelAsync( CTelephony::EOwnedCall2StatusChangeCancel ); + break; + case CTelephony::EVoiceLineStatusChange : + iTelephony->CancelAsync( CTelephony::EVoiceLineStatusChangeCancel ); + break; + default: + break; + } + break; + default : + break; + } + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::CIsvTelephonyTestEngine +// Default constructor. +// ---------------------------------------------------------------------------- +// +CIsvTelephonyTestEngine::CIsvTelephonyTestEngine() + :CActive( EPriorityStandard ) + { + CActiveScheduler::Add( this ); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::ConstructL +// It creates a CTelephony object and initializes a locally +// contained command table. +// ---------------------------------------------------------------------------- +// +void CIsvTelephonyTestEngine::ConstructL() + { + //Creating Telephony object. + iTelephony = CTelephony::NewL(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::StartWait +// Checks for the active scheduler wait class's start state and then starts the +// wait +// ---------------------------------------------------------------------------- +// +void CIsvTelephonyTestEngine::StartWait( ) + { + // For testing CancelAsync + if( iCancelAsyncs == (TBool) ETrue ) + { + DoCancel(); + } + + if ( iWait.IsStarted() != (TBool) ETrue ) + { + iWait.Start(); + } + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::SetCancelAsyncs +// Cancels the asynchronous tests with CancelAsync +// until flag aSetting is cleared +// ---------------------------------------------------------------------------- +// +void CIsvTelephonyTestEngine::SetCancelAsyncs( TBool aSetting ) + { + iCancelAsyncs = aSetting; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetVersion +// Test function that calls Version of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetVersion( TVersion& aVersion ) + { + aVersion = iTelephony->Version(); + + return KErrNone; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetPhoneId +// Test function that calls GetPhoneId of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetPhoneId( + CTelephony::TPhoneIdV1& aPhoneId ) + { + CTelephony::TPhoneIdV1Pckg aPhoneIdPckg( aPhoneId ); + + iTelApiCmd = EGetPhoneId; + + iTelephony->GetPhoneId( iStatus, aPhoneIdPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetSubscriberId +// Test function that calls GetSubscriberId of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetSubscriberId( + CTelephony::TSubscriberIdV1& aSubscriberId ) + { + CTelephony::TSubscriberIdV1Pckg aSubscriberIdPckg( aSubscriberId ); + + iTelApiCmd = EGetSubscriberId; + + iTelephony->GetSubscriberId( iStatus, aSubscriberIdPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetFlightMode +// Test function that calls GetFlightMode of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetFlightMode( + CTelephony::TFlightModeV1& aFlightMode ) + { + CTelephony::TFlightModeV1Pckg flightModePckg( aFlightMode ); + + iTelApiCmd = EGetFlightMode; + + iTelephony->GetFlightMode( iStatus, flightModePckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetIndicator +// Test function that calls GetIndicator of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetIndicator( + CTelephony::TIndicatorV1& aIndicator ) + { + CTelephony::TIndicatorV1Pckg indicatorPckg( aIndicator ); + + iTelApiCmd = EGetIndicator; + + iTelephony->GetIndicator( iStatus, indicatorPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetBatteryInfo +// Test function that calls GetBatteryInfo of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetBatteryInfo( + CTelephony::TBatteryInfoV1& aBatteryInfo ) + { + CTelephony::TBatteryInfoV1Pckg batteryInfoPckg( aBatteryInfo ); + + iTelApiCmd = EGetBatteryInfo; + + iTelephony->GetBatteryInfo( iStatus, batteryInfoPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetSignalStrength +// Test function that calls GetSignalStrength of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetSignalStrength( + CTelephony::TSignalStrengthV1& aSignalStrength ) + { + CTelephony::TSignalStrengthV1Pckg signalStrengthPckg( aSignalStrength ); + + iTelApiCmd = EGetSignalStrength; + + iTelephony->GetSignalStrength( iStatus, signalStrengthPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetLockInfo +// Test function that calls GetLockInfo of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetLockInfo( + CTelephony::TIccLock& aLock, + CTelephony::TIccLockInfoV1& aLockInfo ) + { + CTelephony::TIccLockInfoV1Pckg lockInfoPckg( aLockInfo ); + + iTelApiCmd = EGetLockInfo; + + iTelephony->GetLockInfo( iStatus, aLock, lockInfoPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestSendDTMFTones +// Test function that calls SendDTMFTones of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestSendDTMFTones( + const TDesC& aDTMFTones ) + { + iTelApiCmd = ESendDTMFTones; + + iTelephony->SendDTMFTones( iStatus, aDTMFTones ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetLineStatus +// Test function that calls GetLineStatus of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetLineStatus( + CTelephony::TPhoneLine& aPhoneLine, + CTelephony::TCallStatusV1& aCallStatus ) + { + TInt result; + + iTelApiCmd = EGetLockInfo; + + CTelephony::TCallStatusV1Pckg callStatusPckg( aCallStatus ); + result = iTelephony->GetLineStatus( aPhoneLine, callStatusPckg ); + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetCallInfo +// Test function that calls GetCallInfo of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetCallInfo( + CTelephony::TCallSelectionV1& aCallSelection, + CTelephony::TCallInfoV1& aCallInfo, + CTelephony::TRemotePartyInfoV1& aRemotePartyInfo ) + { + TInt result; + + iTelApiCmd = EGetCallInfo; + + CTelephony::TCallSelectionV1Pckg callSelectionPckg( aCallSelection ); + CTelephony::TCallInfoV1Pckg callInfoPckg( aCallInfo ); + CTelephony::TRemotePartyInfoV1Pckg remotePartyInfoPckg( aRemotePartyInfo ); + + result = iTelephony->GetCallInfo( + callSelectionPckg, + callInfoPckg, + remotePartyInfoPckg ); + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetNetworkRegistrationStatus +// Test function that calls GetNetworkRegistrationStatus of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetNetworkRegistrationStatus( + CTelephony::TNetworkRegistrationV1& aNetworkRegistration ) + { + CTelephony::TNetworkRegistrationV1Pckg + networkRegistrationPckg( aNetworkRegistration ); + + iTelApiCmd = ENwRegistrationStatus; + + iTelephony->GetNetworkRegistrationStatus( iStatus, networkRegistrationPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetCurrentNetworkInfo +// Test function that calls GetCurrentNetworkInfo of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetCurrentNetworkInfo( + CTelephony::TNetworkInfoV1& aNetworkInfo ) + { + CTelephony::TNetworkInfoV1Pckg networkInfoPckg( aNetworkInfo ); + + iTelApiCmd = EGetCurrentNetworkInfo; + + iTelephony->GetCurrentNetworkInfo( iStatus, networkInfoPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetCurrentNetworkName +// Test function that calls GetCurrentNetworkName of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetCurrentNetworkName( + CTelephony::TNetworkNameV1& aNetworkName ) + { + CTelephony::TNetworkNameV1Pckg networkNamePckg( aNetworkName ); + + iTelApiCmd = EGetCurrentNetworkName; + + iTelephony->GetCurrentNetworkName( iStatus, networkNamePckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetOperatorName +// Test function that calls GetCurrentNetworkName of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetOperatorName( + CTelephony::TOperatorNameV1& aOperatorName ) + { + CTelephony::TOperatorNameV1Pckg operatorNamePckg( aOperatorName ); + + iTelApiCmd = EGetOperatorName; + + iTelephony->GetOperatorName( iStatus, operatorNamePckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetCallForwardingStatus +// Test function that calls GetCallForwardingStatus of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetCallForwardingStatus( + CTelephony::TCallForwardingCondition& aCallForwardingCondition, + CTelephony::TCallForwardingSupplServicesV1& aCallForwardingStatus, + CTelephony::TServiceGroup& aServiceGroup ) + { + CTelephony::TCallForwardingSupplServicesV1Pckg + callForwardingStatusPckg( aCallForwardingStatus ); + + iTelApiCmd = EGetCallForwardingStatus; + + iTelephony->GetCallForwardingStatus( + iStatus, + aCallForwardingCondition, + callForwardingStatusPckg, + aServiceGroup ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetCallBarringStatus +// Test function that calls GetCallBarringStatus of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetCallBarringStatus( + CTelephony::TCallBarringCondition& aCallBarringCondition, + CTelephony::TCallBarringSupplServicesV1& aCallBarringStatus, + CTelephony::TServiceGroup& aServiceGroup ) + { + CTelephony::TCallBarringSupplServicesV1Pckg + callBarringStatusPckg( aCallBarringStatus ); + + iTelApiCmd = EGetBarringStatus; + + iTelephony->GetCallBarringStatus( + iStatus, + aCallBarringCondition, + callBarringStatusPckg, + aServiceGroup ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetCallBarringStatus +// Test function that calls GetCallBarringStatus of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetCallWaitingStatus( + CTelephony::TCallWaitingSupplServicesV1& aCallWaitingStatus, + CTelephony::TServiceGroup& aServiceGroup ) + { + CTelephony::TCallWaitingSupplServicesV1Pckg + callWaitingStatusPckg( aCallWaitingStatus ); + + iTelApiCmd = EGetWaitingStatus; + + iTelephony->GetCallWaitingStatus( + iStatus, + callWaitingStatusPckg, + aServiceGroup ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetIdentityServiceStatus +// Test function that calls GetIdentityServiceStatus of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetIdentityServiceStatus( + CTelephony::TIdentityService& aIdentityService, + CTelephony::TIdentityServiceV1& aIdentityServiceStatus ) + { + CTelephony::TIdentityServiceV1Pckg + identityServiceStatusPckg( aIdentityServiceStatus ); + + iTelApiCmd = EGetIdentityStatus; + + iTelephony->GetIdentityServiceStatus( + iStatus, + aIdentityService, + identityServiceStatusPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestDialNewCall +// Test function that calls DialNewCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestDialNewCall( + CTelephony::TCallParamsV1& aCallParams, + CTelephony::TTelNumber& aTelNumber, + CTelephony::TCallId& aCallId, + CTelephony::TPhoneLine& aPhoneLine ) + { + CTelephony::TCallParamsV1Pckg callParamsPckg( aCallParams ); + + iTelApiCmd = EDialNewCall; + + iTelephony->DialNewCall( + iStatus, + callParamsPckg, + aTelNumber, + aCallId, + aPhoneLine ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetCallDynamicCaps +// Test function that calls GetCallDynamicCaps of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetCallDynamicCaps( + CTelephony::TCallId& aCallId, + CTelephony::TCallCapsV1& aCallCaps ) + { + CTelephony::TCallCapsV1Pckg callCapsPckg( aCallCaps ); + TInt result; + + iTelApiCmd = EGetCallDynamicCaps; + + result = iTelephony->GetCallDynamicCaps( + aCallId, + callCapsPckg ); + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestGetCallStatus +// Test function that calls GetCallStatus of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestGetCallStatus( + CTelephony::TCallId& aCallId, + CTelephony::TCallStatusV1& aCallStatus ) + { + CTelephony::TCallStatusV1Pckg callStatusPckg( aCallStatus ); + TInt result; + + iTelApiCmd = EGetCallStatus; + + result = iTelephony->GetCallStatus( + aCallId, + callStatusPckg ); + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestHold +// Test function that calls Hold of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestHold( + CTelephony::TCallId& aCallId ) + { + iTelApiCmd = EHold; + + iTelephony->Hold( + iStatus, + aCallId ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestResume +// Test function that calls Resume of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestResume( + CTelephony::TCallId& aCallId ) + { + iTelApiCmd = EResume; + + iTelephony->Resume( + iStatus, + aCallId ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestSwap +// Test function that calls Swap of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestSwap( + CTelephony::TCallId& aCallId1, + CTelephony::TCallId& aCallId2 ) + { + iTelApiCmd = ESwap; + + iTelephony->Swap( + iStatus, + aCallId1, + aCallId2 ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestHangup +// Test function that calls Hangup of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestHangup( + CTelephony::TCallId& aCallId ) + { + iTelApiCmd = EHangup; + + iTelephony->Hangup( + iStatus, + aCallId ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestAnswerIncomingCall +// Test function that calls AnswerIncomingCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestAnswerIncomingCall( + CTelephony::TCallId& aCallId, + CTelephony::TPhoneLine& aPhoneLine ) + { + // AnswerIncomingCall needs special test approach, calling + // CTelephony::AnswerIncomingCall function opens a new timer handle + // that is not closed while CTelephony object exists. STIF tool recognizes + // this as handle leak unless CTelephony is constructed and deleted within the + // AnswerIncomingCall function (not a real leak) + TInt result; + CTelephony::TCallStatusV1 callStatus; + CTelephony::TCallStatusV1Pckg callStatusPckg( callStatus ); + + iTelApiCmd = EAnswerIncomingCall; + + // Precondition: wait incoming call + result = TestNotifyChangeVoiceLineStatus ( + CTelephony::EVoiceLineStatusChange, + callStatusPckg ); + // Execute test + if( KErrNone == result && CTelephony::EStatusRinging == callStatus.iStatus ) + { + // Test AnswerIncomingCall + iTelephony->AnswerIncomingCall( + iStatus, + aCallId, + aPhoneLine ); + SetActive(); + StartWait(); + result = iStatus.Int(); + } + // Restore initial state: end call + TestHangup( aCallId ); + + // Delete and re-construct the CTelephony in order to overcome false handle + // leak detection problem described earlier + delete iTelephony; + iTelephony = NULL; + TRAPD(err, iTelephony = CTelephony::NewL()); + if(err != KErrNone) + return err; + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestNotifyChangeVoiceLineStatus +// Test function that calls NotifyChange of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestNotifyChangeVoiceLineStatus ( + CTelephony::TNotificationEvent aNotificationEvent, + TDes8& aNotificationPckg ) + { + iTelApiCmd = ENotifyChange; + iNotificationEvent = aNotificationEvent; + + iTelephony->NotifyChange( + iStatus, + iNotificationEvent, + aNotificationPckg ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestFindDeviceStatus +// Test function that calls FindDeviceStatus of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestFindDeviceStatus() + { + TInt result; + TInt deviceStatus; + + iTelApiCmd = EFindDeviceStatus; + + // FindDeviceStatus is deprecated and should return KErrNotSupported + result = iTelephony->FindDeviceStatus( deviceStatus ); + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestEstablishDataCall +// Test function that calls EstablishDataCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestEstablishDataCall() + { + TInt result; + TInt dataChannel; + + iTelApiCmd = EEstablishDataCall; + + // EstablishDataCall is deprecated and should return KErrNotSupported + result = iTelephony->EstablishDataCall( dataChannel, KNullDesC ); + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestEstablishDataCallAsync +// Test function that calls EstablishDataCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestEstablishDataCallAsync() + { + TInt dataChannel; + + iTelApiCmd = EEstablishDataCall; + + // EstablishDataCall is deprecated and should return KErrNotSupported + iTelephony->EstablishDataCall( iStatus, dataChannel, KNullDesC ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestTerminateDataCall +// Test function that calls TerminateDataCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestTerminateDataCall() + { + TInt result; + + iTelApiCmd = ETerminateDataCall; + + // TerminateDataCall is deprecated and should return KErrNotSupported + result = iTelephony->TerminateDataCall(); + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestReceiveDataCall +// Test function that calls ReceiveDataCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestReceiveDataCall() + { + TInt result; + TInt dataChannel; + + iTelApiCmd = EReceiveDataCall; + + // ReceiveDataCall is deprecated and should return KErrNotSupported + result = iTelephony->ReceiveDataCall( dataChannel ); + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestReceiveDataCallAsync +// Test function that calls ReceiveDataCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestReceiveDataCallAsync() + { + TInt dataChannel; + + iTelApiCmd = EReceiveDataCall; + + // ReceiveDataCall is deprecated and should return KErrNotSupported + iTelephony->ReceiveDataCall( iStatus, dataChannel ); + SetActive(); + StartWait(); + + return iStatus.Int(); + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestCancelEstablishDataCall +// Test function that calls CancelEstablishDataCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestCancelEstablishDataCall() + { + TInt result; + + iTelApiCmd = ECancelEstablishDataCall; + + // CancelEstablishDataCall is deprecated + iTelephony->CancelEstablishDataCall(); + result = KErrNone; + + return result; + } + +// ---------------------------------------------------------------------------- +// CIsvTelephonyTestEngine::TestCancelReceiveDataCall +// Test function that calls CancelReceiveDataCall of CTelephony class. +// ---------------------------------------------------------------------------- +// +TInt CIsvTelephonyTestEngine::TestCancelReceiveDataCall() + { + TInt result; + + iTelApiCmd = ECancelReceiveDataCall; + + // CancelReceiveDataCall is deprecated + iTelephony->CancelReceiveDataCall(); + result = KErrNone; + + return result; + } + +// End of File