How to detect outgoing call is terminated by the other party?

Login to reply to this topic.
Fri, 2006-09-15 16:40
Joined: 2006-09-13
Forum posts: 9
I have written code as follows ( in my active class):

void MyActiveClass::RunL()
{
   if (iStatus.Int() == KErrNone)
   {                   
      if ( iCallStatus == RCall::EStatusIdle ||
            iCallStatus   == RCall::EStatusHangingUp ||
            iCallStatus == RCall::EStatusUnknown )      
      {          
         iCall.Close();   
         iLine.Close();   
         //does something
      }      
      else
      {
         iLine.NotifyStatusChange(iStatus, iCallStatus);
         SetActive();      
      }      
   }
}

I use Dial(const TTelNumberC &aTelNumber) function to dial.
CMyActiveClass is run with EPriorityNormal priority.

There are two problems here:
1. When dial, if when the other party terminate the call, this event does not trap in my RunL function.
2. When dial , the other party phone ring estimate 20 second after that my app get panic (App.Close MyApp ViewSrv 11) and close.

- How to resolve these problems?
- Am I use the correct function?
- Should I use the Dial(TRequestStatus &aStatus, const TTelNumberC &aTelNumber) instead ?
- I hear the inherited active class should run in EPriorityIdle priority because if it runs in EPriorityStandard priority , it may conflict with the View. Is it correct?

Plese help me. Thanks a lot.

Mon, 2006-09-18 06:46
Joined: 2005-02-12
Forum posts: 98
Re: How to detect outgoing call is terminated by the other party

before checking callstatus are you doing this???
User::LeaveIfError(iLine.GetStatus(iCallStatus));

Also  don't use EStatusUnknown in OR Condition to check termination of call.
Only EStatusHangingUp and EStatusIdle are sufficient.
  • Login to reply to this topic.