In my application, I am trying to retrieve the calling number while the phone is still ringing.
Here is the code for RunL() method.
--------------------------------------------------------------------------
void CCallWatcher::RunL()
{
if(iStatus.Int() != KErrNone)
return;
switch(iState)
{
case EWaiting:
{
iLine.NotifyIncomingCall(iStatus, iCallName);
iState = EAnswering;
break;
}
case EAnswering:
{
iLine.GetStatus(iCallStatus);
if ( iCallStatus == RCall::EStatusRinging )
{
User::LeaveIfError(iCall.OpenExistingCall(iLine, iCallName));
/////////// code added from forum for using RAdvGsmCall::TRemotePartyInfo /////////////
TBuf<20> callNum;
RAdvGsmCall::TRemotePartyInfo myRemotePartyInfo;
myCall->GetRemotePartyInfo(myRemotePartyInfo);
callNum = myRemotePartyInfo.iNumber.iTelNumber;
_LIT(KMessage,"Got a new call ... Caller ID: ");
CEikonEnv::Static()->InfoWinL(KMessage,callNum);
/////////// code added from forum for using RAdvGsmCall::TRemotePartyInfo /////////////
}
iState = EAnswering;
break;
}
}
SetActive();
}
--------------------------------------------------------------------------
RAdvGsmCall will not work under Nokia 6600.
Try this:
RMobileCall::TMobileCallInfoV1 callInfo;
RMobileCall::TMobileCallInfoV1Pckg callInfoPckg(callInfo);
m_currentCall.GetMobileCallInfo(callInfoPckg);
(where m_currentCall defined as RMobileCall)
The caller ID is hidden in: callInfo.iRemoteParty.iRemoteNumber.iTelNumber