diff -r 000000000000 -r 89d6a7a84779 Symbian3/SDK/Source/GUID-FFBD95C6-0B12-5FD7-BA69-89BBFB97F0A1.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-FFBD95C6-0B12-5FD7-BA69-89BBFB97F0A1.dita Thu Jan 21 18:18:20 2010 +0000 @@ -0,0 +1,104 @@ + + + + + +Call +Resume Tutorial This tutorial describes how to resume a call with the telephony +API for applications. + + + + +create a new instance of CTelephony + + +use CTelephony::GetCallDynamicCaps() to +check if the device supports resume function + + +once a call is on hold, you can resume the call by with CTelephony::Resume(). +Pass the ID of the call to resume. + + +pass the enumeration CTelephony::EResumeCancel to +cancel the asynchronous request + + + + + + + +Call resume +example #include <e32base.h> +#include <Etel3rdParty.h> + +class CClientApp : public CActive + { + +private: + CTelephony* iTelephony; + CTelephony::TCallId iCallId; + +public: + CClientApp(CTelephony* aTelephony, CTelephony::TCallId aCallId); + TInt SomeFunction(); + +private: + /* + These are the pure virtual methods from CActive that + MUST be implemented by all active objects + */ + void RunL(); + void DoCancel(); + }; + +CClientApp::CClientApp(CTelephony* aTelephony, CTelephony::TCallId aCallId) + : CActive(EPriorityStandard), + iTelephony(aTelephony), + iCallId(aCallId) + { + //default constructor + } + +TInt CClientApp::SomeFunction() + { + // Check that the phone supports Resuming calls. + CTelephony::TCallCapsV1 callCapsV1; + CTelephony::TCallCapsV1Pckg callCapsV1Pckg(callCapsV1); + iTelephony->GetCallDynamicCaps(iCallId, callCapsV1Pckg); + + if( callCapsV1.iControlCaps & CTelephony::KCapsResume ) + { + // The call represented by 'iCallId' can be resumed + iTelephony->Resume(iStatus, iCallId); + SetActive(); + return KErrNone; + } + else + { + // The call cannot be resumed; + // return an error indicate this. + return KErrNotSupported; + } + } + +void CClientApp::RunL() + { + if(iStatus==KErrNone) + {} // The call has been resumed successfully; + } + +void CClientApp::DoCancel() + { + iTelephony->CancelAsync(CTelephony::EResumeCancel); + } + + \ No newline at end of file