This tutorial describes how to resume a call with the telephony API for applications.
CTelephony
CTelephony::GetCallDynamicCaps()
to
check if the device supports resume function
CTelephony::Resume()
.
Pass the ID of the call to resume.
CTelephony::EResumeCancel
to
cancel the asynchronous request
#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); }