How to detect outgoing call is terminated by the other party?
| Fri, 2006-09-15 16:40 | |
|
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. |
|






Forum posts: 98
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.