equal
deleted
inserted
replaced
94 MCCEDtmfInterface& aDtmfInterface |
94 MCCEDtmfInterface& aDtmfInterface |
95 ) : iModel( aModel ), |
95 ) : iModel( aModel ), |
96 iConvergedCallEngine( aConvergedCallEngine ), |
96 iConvergedCallEngine( aConvergedCallEngine ), |
97 iDtmfInterface( aDtmfInterface ), |
97 iDtmfInterface( aDtmfInterface ), |
98 iReplaceActive( EFalse ), |
98 iReplaceActive( EFalse ), |
99 iDialRequest( EFalse ) |
99 iDialRequestCallId( KErrNotFound ) |
100 { |
100 { |
101 TEFLOGSTRING( KTAOBJECT, "CALL CPECallHandling::CPECallHandling()"); |
101 TEFLOGSTRING( KTAOBJECT, "CALL CPECallHandling::CPECallHandling()"); |
102 } |
102 } |
103 |
103 |
104 // Destructor |
104 // Destructor |
238 TEFLOGSTRING2( KTAINT, |
238 TEFLOGSTRING2( KTAINT, |
239 "CALL CPECallHandling::SendErrorMessage, call state %d", callData->GetCallState() ); |
239 "CALL CPECallHandling::SendErrorMessage, call state %d", callData->GetCallState() ); |
240 if( callData->GetCallState() == EPEStateIdle ) |
240 if( callData->GetCallState() == EPEStateIdle ) |
241 { |
241 { |
242 ReleaseCallObject( aCallId ); |
242 ReleaseCallObject( aCallId ); |
243 iDialRequest = EFalse; |
243 iDialRequestCallId = KErrNotFound; |
244 } |
244 } |
245 } |
245 } |
246 } |
246 } |
247 |
247 |
248 if( ( KPEConferenceCallID == aCallId ) && ( ECCPConferenceErrorAddCall == aErrorCode ) && |
248 if( ( KPEConferenceCallID == aCallId ) && ( ECCPConferenceErrorAddCall == aErrorCode ) && |
287 |
287 |
288 switch ( aMessage ) |
288 switch ( aMessage ) |
289 { |
289 { |
290 case MEngineMonitor::EPEMessageDialing: |
290 case MEngineMonitor::EPEMessageDialing: |
291 { |
291 { |
292 iDialRequest = EFalse; |
292 iDialRequestCallId = KErrNotFound; |
293 CPESingleCall* callData = iCallArrayOwner->GetCallObject( aCallId ); |
293 CPESingleCall* callData = iCallArrayOwner->GetCallObject( aCallId ); |
294 if( callData ) |
294 if( callData ) |
295 { |
295 { |
296 MCCECall& call = callData->Call(); |
296 MCCECall& call = callData->Call(); |
297 iModel.DataStore()->SetCallIndex(call.CallIndex(), aCallId ); |
297 iModel.DataStore()->SetCallIndex(call.CallIndex(), aCallId ); |
310 } |
310 } |
311 break; |
311 break; |
312 } |
312 } |
313 case MEngineMonitor::EPEMessageIdle: |
313 case MEngineMonitor::EPEMessageIdle: |
314 { |
314 { |
|
315 // If Idle is received to pending dial request, clear request |
|
316 if ( aCallId == iDialRequestCallId ) |
|
317 { |
|
318 iDialRequestCallId = KErrNotFound; |
|
319 } |
315 HandleAutoResume(); |
320 HandleAutoResume(); |
316 break; |
321 break; |
317 } |
322 } |
318 case MEngineMonitor::EPEMessageAddedConferenceMember: |
323 case MEngineMonitor::EPEMessageAddedConferenceMember: |
319 { |
324 { |
640 CPESingleCall* callData( NULL ); |
645 CPESingleCall* callData( NULL ); |
641 TInt errorCode( KErrNone ); |
646 TInt errorCode( KErrNone ); |
642 |
647 |
643 // If there is allready video call, one dial in connecting, dialing or disconnecting state, |
648 // If there is allready video call, one dial in connecting, dialing or disconnecting state, |
644 // we just ignore new dial request and send KErrInUse back to UI |
649 // we just ignore new dial request and send KErrInUse back to UI |
645 if( iDialRequest ) |
650 if( iDialRequestCallId != KErrNotFound ) |
646 { |
651 { |
647 // Dial request already send, waiting for dialing state. |
652 // Dial request already send, waiting for dialing state. |
648 errorCode = KErrGeneral; |
653 errorCode = KErrGeneral; |
649 TEFLOGSTRING( KTAERROR, |
654 TEFLOGSTRING( KTAERROR, |
650 "CALL CPECALLHANDLING::DIALCALL ! DIAL FAILED: DIAL REQUEST ALREADY ACTIVE" ); |
655 "CALL CPECALLHANDLING::DIALCALL ! DIAL FAILED: DIAL REQUEST ALREADY ACTIVE" ); |
668 // disable number matching for SAT calls |
673 // disable number matching for SAT calls |
669 callData->DisableFDNCheck(); |
674 callData->DisableFDNCheck(); |
670 } |
675 } |
671 |
676 |
672 TEFLOGSTRING( KTAINT, "CALL CPECallHandling::DialCall > Dial" ); |
677 TEFLOGSTRING( KTAINT, "CALL CPECallHandling::DialCall > Dial" ); |
673 iDialRequest = ETrue; |
678 iDialRequestCallId = aCallId; |
674 errorCode = callData->Dial( aNumber ); |
679 errorCode = callData->Dial( aNumber ); |
675 |
680 |
676 if ( errorCode != KErrNone ) |
681 if ( errorCode != KErrNone ) |
677 { |
682 { |
678 iDialRequest = EFalse; |
683 iDialRequestCallId = KErrNotFound; |
679 // Dial failed: clean up |
684 // Dial failed: clean up |
680 ReleaseCallObject( callData->GetCallId() ); |
685 ReleaseCallObject( callData->GetCallId() ); |
681 TEFLOGSTRING2( KTAERROR, |
686 TEFLOGSTRING2( KTAERROR, |
682 "CALL CPECALLHANDLING::DIALCALL ! DIAL FAILED: MAY NOT PROCEED! %d", errorCode ); |
687 "CALL CPECALLHANDLING::DIALCALL ! DIAL FAILED: MAY NOT PROCEED! %d", errorCode ); |
683 } |
688 } |