18 |
18 |
19 |
19 |
20 // INCLUDE FILES |
20 // INCLUDE FILES |
21 #include "cpeactivestarter.h" |
21 #include "cpeactivestarter.h" |
22 #include "cpeexternaldatahandler.h" |
22 #include "cpeexternaldatahandler.h" |
23 #include "cpeidlestatusmonitor.h" |
|
24 #include "cpemessagehandler.h" |
23 #include "cpemessagehandler.h" |
25 #include "cpephonemodel.h" |
24 #include "cpephonemodel.h" |
26 #include "cpeservicehandling.h" |
25 #include "cpeservicehandling.h" |
27 #include "cpesimstatemonitor.h" |
26 #include "cpesimstatemonitor.h" |
28 #include "pepanic.pan" |
27 #include "pepanic.pan" |
39 #include <mccedtmfinterface.h> |
38 #include <mccedtmfinterface.h> |
40 #include <mpecontacthandling.h> |
39 #include <mpecontacthandling.h> |
41 #include <mpeloghandling.h> |
40 #include <mpeloghandling.h> |
42 #include <xqservicerequest.h> |
41 #include <xqservicerequest.h> |
43 #include "phoneservices.h" |
42 #include "phoneservices.h" |
44 #include "parserrecognizer.h" |
|
45 |
43 |
46 // CONSTANTS |
44 // CONSTANTS |
47 const TInt KDriveProfile ( 6 ); |
45 const TInt KDriveProfile ( 6 ); |
48 const TInt KPECallTimerOff = 0; |
46 const TInt KPECallTimerOff = 0; |
|
47 const TInt KTimesToSplitValue = 16; |
49 |
48 |
50 // ==================== LOCAL FUNCTIONS ==================== |
49 // ==================== LOCAL FUNCTIONS ==================== |
51 |
50 |
52 // ================= MEMBER FUNCTIONS ======================= |
51 // ================= MEMBER FUNCTIONS ======================= |
53 |
52 |
97 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::ConstructL: 4" ); |
96 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::ConstructL: 4" ); |
98 iActiveStarter = CPEActiveStarter::NewL( this ); |
97 iActiveStarter = CPEActiveStarter::NewL( this ); |
99 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::ConstructL: 5" ); |
98 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::ConstructL: 5" ); |
100 iActiveStarter->StartUp(); |
99 iActiveStarter->StartUp(); |
101 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::ConstructL: 6" ); |
100 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::ConstructL: 6" ); |
|
101 // Reserve needed callinfo and remoteinfo from heap. |
|
102 iCallInfo = new ( ELeave ) RMobileCall::TMobileCallInfoV3; |
102 }// ConstructL |
103 }// ConstructL |
103 |
104 |
104 // ----------------------------------------------------------------------------- |
105 // ----------------------------------------------------------------------------- |
105 // CPEPhoneModel::NewL |
106 // CPEPhoneModel::NewL |
106 // Two-phased constructor. |
107 // Two-phased constructor. |
146 delete iLogHandling; |
147 delete iLogHandling; |
147 delete iAudioData; |
148 delete iAudioData; |
148 delete iCallHandling; |
149 delete iCallHandling; |
149 delete iExternalDataHandler; |
150 delete iExternalDataHandler; |
150 delete iCallStackCutter; |
151 delete iCallStackCutter; |
|
152 delete iCallInfo; |
151 |
153 |
152 if ( iActiveStarter ) |
154 if ( iActiveStarter ) |
153 { |
155 { |
154 delete iActiveStarter; |
156 delete iActiveStarter; |
155 } |
157 } |
156 |
158 |
157 FeatureManager::UnInitializeLib(); |
159 FeatureManager::UnInitializeLib(); |
158 iFsSession.Close(); |
160 iFsSession.Close(); |
159 delete iEngineInfo; |
161 delete iEngineInfo; |
160 delete iConvergedCallEngine; |
162 delete iConvergedCallEngine; |
161 if ( iIdleStatusMonitor ) |
|
162 { |
|
163 delete iIdleStatusMonitor; |
|
164 } |
|
165 delete iPhoneServices; |
163 delete iPhoneServices; |
166 delete iParserRecognizer; |
|
167 }// ~CPEPhoneModel |
164 }// ~CPEPhoneModel |
168 |
165 |
169 // ----------------------------------------------------------------------------- |
166 // ----------------------------------------------------------------------------- |
170 // CPEPhoneModel::EngineInfo |
167 // CPEPhoneModel::EngineInfo |
171 // Returns the pointer of the CPEEngineInfo object. |
168 // Returns the pointer of the CPEEngineInfo object. |
459 return MESSAGE("EPEMessageContinuingDTMFSending"); |
456 return MESSAGE("EPEMessageContinuingDTMFSending"); |
460 case MEngineMonitor::EPEMessageCallAdded: |
457 case MEngineMonitor::EPEMessageCallAdded: |
461 return MESSAGE("EPEMessageCallAdded"); |
458 return MESSAGE("EPEMessageCallAdded"); |
462 case MEngineMonitor::EPEMessageRemoteTerminated: |
459 case MEngineMonitor::EPEMessageRemoteTerminated: |
463 return MESSAGE("EPEMessageRemoteTerminated"); |
460 return MESSAGE("EPEMessageRemoteTerminated"); |
464 case MEngineMonitor::EPEMessageShowIMEI: |
|
465 return MESSAGE("EPEMessageShowIMEI"); |
|
466 case MEngineMonitor::EPEMessageUnknown: |
461 case MEngineMonitor::EPEMessageUnknown: |
467 return MESSAGE("EPEMessageUnknown"); |
462 return MESSAGE("EPEMessageUnknown"); |
468 case MEngineMonitor::EPEMessagePromptSpeedDial: |
|
469 return MESSAGE("EPEMessagePromptSpeedDial"); |
|
470 case MEngineMonitor::EPEMessageSpeedDialNotAssigned: |
|
471 return MESSAGE("EPEMessageSpeedDialNotAssigned"); |
|
472 case MEngineMonitor::EPEMessageInvalidSpeedDial: |
|
473 return MESSAGE("EPEMessageInvalidSpeedDial"); |
|
474 case MEngineMonitor::EPEMessageDataPortLoaned: |
463 case MEngineMonitor::EPEMessageDataPortLoaned: |
475 return MESSAGE("EPEMessageDataPortLoaned"); |
464 return MESSAGE("EPEMessageDataPortLoaned"); |
476 |
465 |
477 case MEngineMonitor::EPEMessageUnattendedTransferRequest: |
466 case MEngineMonitor::EPEMessageUnattendedTransferRequest: |
478 return MESSAGE("EPEMessageUnattendedTransferRequest"); |
467 return MESSAGE("EPEMessageUnattendedTransferRequest"); |
560 // Miscellaneous messages 10000 - 10999 |
549 // Miscellaneous messages 10000 - 10999 |
561 case MEngineMonitor::EPEMessageInValidEmergencyNumber: |
550 case MEngineMonitor::EPEMessageInValidEmergencyNumber: |
562 return MESSAGE("EPEMessageInValidEmergencyNumber"); |
551 return MESSAGE("EPEMessageInValidEmergencyNumber"); |
563 case MEngineMonitor::EPEMessageValidEmergencyNumber: |
552 case MEngineMonitor::EPEMessageValidEmergencyNumber: |
564 return MESSAGE("EPEMessageValidEmergencyNumber"); |
553 return MESSAGE("EPEMessageValidEmergencyNumber"); |
565 case MEngineMonitor::EPEMessagePhoneIdentityReady: |
|
566 return MESSAGE("EPEMessagePhoneIdentityReady"); |
|
567 case MEngineMonitor::EPEMessageStartATDialing: |
554 case MEngineMonitor::EPEMessageStartATDialing: |
568 return MESSAGE("EPEMessageStartATDialing"); |
555 return MESSAGE("EPEMessageStartATDialing"); |
569 case MEngineMonitor::EPEMessageLogEventSaved: |
556 case MEngineMonitor::EPEMessageLogEventSaved: |
570 return MESSAGE("EPEMessageLogEventSaved"); |
557 return MESSAGE("EPEMessageLogEventSaved"); |
571 case MEngineMonitor::EPEMessageDoNotSendMe: |
558 case MEngineMonitor::EPEMessageDoNotSendMe: |
606 return MESSAGE("EPEMessageRemoteCreatedConference"); |
593 return MESSAGE("EPEMessageRemoteCreatedConference"); |
607 case MEngineMonitor::EPEMessageRemoteHeld: |
594 case MEngineMonitor::EPEMessageRemoteHeld: |
608 return MESSAGE("EPEMessageRemoteHeld"); |
595 return MESSAGE("EPEMessageRemoteHeld"); |
609 case MEngineMonitor::EPEMessageRemoteResumed: |
596 case MEngineMonitor::EPEMessageRemoteResumed: |
610 return MESSAGE("EPEMessageRemoteResumed"); |
597 return MESSAGE("EPEMessageRemoteResumed"); |
611 case MEngineMonitor::EPEMessageShowVersion: |
|
612 return MESSAGE("EPEMessageShowVersion"); |
|
613 case MEngineMonitor::EPEMessageTempClirSuppressUnsuccessful: |
598 case MEngineMonitor::EPEMessageTempClirSuppressUnsuccessful: |
614 return MESSAGE("EPEMessageTempClirSuppressUnsuccessful"); |
599 return MESSAGE("EPEMessageTempClirSuppressUnsuccessful"); |
615 case MEngineMonitor::EPEMessageTempClirActivationUnsuccessful: |
600 case MEngineMonitor::EPEMessageTempClirActivationUnsuccessful: |
616 return MESSAGE("EPEMessageTempClirActivationUnsuccessful"); |
601 return MESSAGE("EPEMessageTempClirActivationUnsuccessful"); |
617 |
602 case MEngineMonitor::EPEMessageOutgoingCallBarred: |
|
603 return MESSAGE("EPEMessageOutgoingCallBarred"); |
|
604 |
618 // Contact messages 11400 - 11599 |
605 // Contact messages 11400 - 11599 |
619 |
606 |
620 // Error messages 11600 - 11799 |
607 // Error messages 11600 - 11799 |
621 |
608 |
622 // Network messages 11800 - 12999 |
609 // Network messages 11800 - 12999 |
632 // Parser messages 12000 - 12199 |
619 // Parser messages 12000 - 12199 |
633 case MEngineMonitor::EPEMessageActivateRfsDeep: |
620 case MEngineMonitor::EPEMessageActivateRfsDeep: |
634 return MESSAGE("EPEMessageActivateRfsDeep"); |
621 return MESSAGE("EPEMessageActivateRfsDeep"); |
635 case MEngineMonitor::EPEMessageActivateRfsNormal: |
622 case MEngineMonitor::EPEMessageActivateRfsNormal: |
636 return MESSAGE("EPEMessageActivateRfsNormal"); |
623 return MESSAGE("EPEMessageActivateRfsNormal"); |
637 case MEngineMonitor::EPEMessageActivateWarrantyMode: |
|
638 return MESSAGE("EPEMessageActivateWarrantyMode"); |
|
639 case MEngineMonitor::EPEMessageIssuedSSRequest: |
624 case MEngineMonitor::EPEMessageIssuedSSRequest: |
640 return MESSAGE("EPEMessageIssuedSSRequest"); |
625 return MESSAGE("EPEMessageIssuedSSRequest"); |
641 case MEngineMonitor::EPEMessageIssuingSSRequest: |
626 case MEngineMonitor::EPEMessageIssuingSSRequest: |
642 return MESSAGE("EPEMessageIssuingSSRequest"); |
627 return MESSAGE("EPEMessageIssuingSSRequest"); |
643 |
628 |
929 { |
914 { |
930 iEngineInfo->SetCallState( EPEStateUnknown, aCallId ); |
915 iEngineInfo->SetCallState( EPEStateUnknown, aCallId ); |
931 } |
916 } |
932 } |
917 } |
933 |
918 |
|
919 if ( message == MEngineMonitor::EPEMessageOutgoingCallBarred ) |
|
920 { |
|
921 iEngineInfo->SetOutgoingCallBarringActivated( ETrue ); |
|
922 message = KPEDontSendMessage; |
|
923 } |
|
924 |
934 if ( ( message == MEngineMonitor::EPEMessageIncoming ) ) |
925 if ( ( message == MEngineMonitor::EPEMessageIncoming ) ) |
935 { |
926 { |
936 if ( FeatureManager::FeatureSupported( KFeatureIdDriveMode ) ) |
927 if ( FeatureManager::FeatureSupported( KFeatureIdDriveMode ) ) |
937 { |
928 { |
938 //Check for Drive mode |
929 //Check for Drive mode |
966 TEFLOGSTRING3( |
957 TEFLOGSTRING3( |
967 KTAERROR, |
958 KTAERROR, |
968 "PE cpephonemodel::sendmessage > iEngineMonitor.HandleError: messageName=%s, CallId=%d", |
959 "PE cpephonemodel::sendmessage > iEngineMonitor.HandleError: messageName=%s, CallId=%d", |
969 messageName2.Ptr( ), aCallId ); |
960 messageName2.Ptr( ), aCallId ); |
970 #endif |
961 #endif |
|
962 SetCallError( aCallId ); |
971 TPEErrorInfo errorInfo; |
963 TPEErrorInfo errorInfo; |
972 errorInfo.iErrorCode = errorCode; |
964 errorInfo.iErrorCode = errorCode; |
973 errorInfo.iCallId = aCallId; |
965 errorInfo.iCallId = aCallId; |
974 errorInfo.iErrorType = EPECcp; |
966 errorInfo.iErrorType = EPECcp; |
975 iEngineMonitor.HandleError( errorInfo ); |
967 iEngineMonitor.HandleError( errorInfo ); |
978 { |
970 { |
979 TEFLOGSTRING2( |
971 TEFLOGSTRING2( |
980 KTAERROR, |
972 KTAERROR, |
981 "PE cpephonemodel::sendmessage > iEngineMonitor.HandleError: messageName=EPEMessageCallHandlingError, CallId=%d" |
973 "PE cpephonemodel::sendmessage > iEngineMonitor.HandleError: messageName=EPEMessageCallHandlingError, CallId=%d" |
982 , aCallId ); |
974 , aCallId ); |
983 TPEErrorInfo errorInfo = iEngineInfo->ErrorInfo(); |
975 SetCallError( aCallId ); |
984 errorInfo.iCallId = aCallId; |
976 TPEErrorInfo errorInfo = iEngineInfo->ErrorInfo(); |
985 errorInfo.iErrorType = EPECcp; |
977 errorInfo.iCallId = aCallId; |
986 iEngineMonitor.HandleError( errorInfo ); |
978 errorInfo.iErrorType = EPECcp; |
|
979 |
|
980 if ( ECCPErrorCCCallRejected == errorInfo.iErrorCode ) |
|
981 { |
|
982 // Call direction is not set if the call was rejected before Dialing-state |
|
983 iEngineInfo->SetCallDirection( RMobileCall::EMobileOriginated, aCallId ); |
|
984 iMessageHandler->AddSIMRejectedMoCsCallToLog( aCallId ); |
|
985 } |
|
986 iEngineMonitor.HandleError( errorInfo ); |
987 } |
987 } |
988 else if ( message == MEngineMonitor::EPEMessageServiceHandlingError ) |
988 else if ( message == MEngineMonitor::EPEMessageServiceHandlingError ) |
989 { |
989 { |
990 TEFLOGSTRING( |
990 TEFLOGSTRING( |
991 KTAERROR, |
991 KTAERROR, |
992 "PE cpephonemodel::sendmessage > iEngineMonitor.HandleError: messageName=EPEMessageServiceHandlingError" ); |
992 "PE cpephonemodel::sendmessage > iEngineMonitor.HandleError: messageName=EPEMessageServiceHandlingError" ); |
|
993 SetCallError( aCallId ); |
993 TPEErrorInfo errorInfo = iEngineInfo->ErrorInfo(); |
994 TPEErrorInfo errorInfo = iEngineInfo->ErrorInfo(); |
994 errorInfo.iCallId = aCallId; |
995 errorInfo.iCallId = aCallId; |
995 errorInfo.iErrorType = EPECch; |
996 errorInfo.iErrorType = EPECch; |
996 iEngineMonitor.HandleError( errorInfo ); |
997 iEngineMonitor.HandleError( errorInfo ); |
997 } |
998 } |
1022 Panic( EPEPanicIllegalCommand ) ); |
1023 Panic( EPEPanicIllegalCommand ) ); |
1023 iEngineMonitor.HandleMessage( |
1024 iEngineMonitor.HandleMessage( |
1024 static_cast<MEngineMonitor::TPEMessagesFromPhoneEngine>( message ), |
1025 static_cast<MEngineMonitor::TPEMessagesFromPhoneEngine>( message ), |
1025 aCallId ); |
1026 aCallId ); |
1026 } |
1027 } |
1027 |
|
1028 if( iParserRecognizer ) |
|
1029 { |
|
1030 iParserRecognizer->sendMessage( aMessage, aCallId ); |
|
1031 } |
|
1032 |
|
1033 }// SendMessage( 2 params ) |
1028 }// SendMessage( 2 params ) |
1034 |
1029 |
1035 // ----------------------------------------------------------------------------- |
1030 // ----------------------------------------------------------------------------- |
1036 // CPEPhoneModel::ProcessMessage |
1031 // CPEPhoneModel::ProcessMessage |
1037 // Process messages from the subsystems by passing them to message handlder. |
1032 // Process messages from the subsystems by passing them to message handlder. |
1109 } |
1104 } |
1110 if ( errorCode == ECCPErrorNone && iEngineInfo->IsSwitchToOperationOngoing() ) |
1105 if ( errorCode == ECCPErrorNone && iEngineInfo->IsSwitchToOperationOngoing() ) |
1111 { |
1106 { |
1112 errorCode = iMessageHandler->ContinueSwitchToCall( aCallId ); |
1107 errorCode = iMessageHandler->ContinueSwitchToCall( aCallId ); |
1113 } |
1108 } |
|
1109 |
|
1110 iEngineInfo->SetOutgoingCallBarringActivated( EFalse ); |
1114 break; |
1111 break; |
1115 |
1112 |
1116 case MEngineMonitor::EPEMessageRemoteBusy: |
1113 case MEngineMonitor::EPEMessageRemoteBusy: |
1117 if ( CallIdCheck::IsVoice( aCallId )) |
1114 if ( CallIdCheck::IsVoice( aCallId )) |
1118 { |
1115 { |
1166 |
1163 |
1167 case MEngineMonitor::EPEMessageSentDTMF: |
1164 case MEngineMonitor::EPEMessageSentDTMF: |
1168 errorCode = iMessageHandler->HandleDtmfSent(); |
1165 errorCode = iMessageHandler->HandleDtmfSent(); |
1169 break; |
1166 break; |
1170 |
1167 |
1171 case MEngineMonitor::EPEMessageActivateWarrantyMode: |
|
1172 errorCode = iMessageHandler->HandleGetLifeTimerData( ); |
|
1173 break; |
|
1174 |
|
1175 case MEngineMonitor::EPEMessageStartATDialing: |
1168 case MEngineMonitor::EPEMessageStartATDialing: |
1176 errorCode = iMessageHandler->HandleDialCall( EFalse ); |
1169 errorCode = iMessageHandler->HandleDialCall( EFalse ); |
1177 iMessageHandler->HandleATDialingStarted( errorCode ? EFalse : ETrue ); |
1170 iMessageHandler->HandleATDialingStarted( errorCode ? EFalse : ETrue ); |
1178 break; |
1171 break; |
1179 |
1172 |
1234 const TInt aCallId ) |
1227 const TInt aCallId ) |
1235 { |
1228 { |
1236 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::DelayMessageSending" ); |
1229 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::DelayMessageSending" ); |
1237 |
1230 |
1238 TBool sendingDelayed( EFalse ); |
1231 TBool sendingDelayed( EFalse ); |
|
1232 |
|
1233 switch ( aMessage ) |
|
1234 { |
|
1235 case MEngineMonitor::EPEMessageInitiatedEmergencyCall: |
|
1236 { |
|
1237 iEngineInfo->SetIsSwitchToOperationOngoing( EFalse ); |
|
1238 sendingDelayed = ETrue; |
|
1239 } |
|
1240 break; |
|
1241 case MEngineMonitor::EPEMessageColpNumberAvailable: |
|
1242 { |
|
1243 sendingDelayed = ETrue; |
|
1244 } |
|
1245 break; |
|
1246 default: |
|
1247 // Other messages cause no action. |
|
1248 break; |
|
1249 } |
1239 |
1250 |
1240 if ( MEngineMonitor::EPEMessageInitiatedEmergencyCall == aMessage ) |
1251 if ( sendingDelayed ) |
1241 { |
1252 { |
1242 iEngineInfo->SetIsSwitchToOperationOngoing( EFalse ); |
1253 if ( iCallStackCutter ) |
1243 if ( iCallStackCutter ) |
1254 { |
1244 { |
1255 delete iCallStackCutter; |
1245 delete iCallStackCutter; |
1256 iCallStackCutter = NULL; |
1246 iCallStackCutter = NULL; |
1257 } |
1247 } |
1258 TRAPD( err, iCallStackCutter = CIdle::NewL( CActive::EPriorityHigh ) ); |
1248 TRAPD( err, iCallStackCutter = CIdle::NewL( CActive::EPriorityHigh ) ); |
1259 if ( !err ) |
1249 if ( !err ) |
1260 { |
1250 { |
1261 iCallBackMessage = aMessage; |
1251 iCallBackMessage = aMessage; |
1262 iCallBackCallId = aCallId; |
1252 iCallBackCallId = aCallId; |
1263 iCallStackCutter->Start( TCallBack( CallBackMessageSend , this ) ); |
1253 iCallStackCutter->Start( TCallBack( CallBackMessageSend , this ) ); |
1264 } |
1254 } |
1265 } |
1255 sendingDelayed = ETrue; |
1266 |
1256 } |
|
1257 return sendingDelayed; |
1267 return sendingDelayed; |
1258 } |
1268 } |
1259 |
1269 |
1260 // ----------------------------------------------------------------------------- |
1270 // ----------------------------------------------------------------------------- |
1261 // CPEPhoneModel::RecallSteps |
1271 // CPEPhoneModel::RecallSteps |
1415 case CPEPhoneModel::EPEPhoneServices: |
1425 case CPEPhoneModel::EPEPhoneServices: |
1416 { |
1426 { |
1417 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.1" ); |
1427 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.1" ); |
1418 __ASSERT_DEBUG( iMessageHandler, Panic( EPEPanicNullPointer ) ); |
1428 __ASSERT_DEBUG( iMessageHandler, Panic( EPEPanicNullPointer ) ); |
1419 __ASSERT_DEBUG( iEngineInfo, Panic( EPEPanicNullPointer ) ); |
1429 __ASSERT_DEBUG( iEngineInfo, Panic( EPEPanicNullPointer ) ); |
1420 iPhoneServices = new PhoneServices( |
1430 iPhoneServices = new PhoneServices(*iMessageHandler, *iEngineInfo); |
1421 *iMessageHandler, *iEngineInfo, *iMessageHandler); |
|
1422 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.2" ); |
1431 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.2" ); |
1423 break; |
1432 break; |
1424 } |
1433 } |
1425 |
1434 |
1426 case CPEPhoneModel::EPEParserRecognizer: |
|
1427 { |
|
1428 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 17.1" ); |
|
1429 iParserRecognizer = new ParserRecognizer; |
|
1430 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 17.2" ); |
|
1431 break; |
|
1432 } |
|
1433 |
|
1434 case CPEPhoneModel::EPENetworkHandling: |
1435 case CPEPhoneModel::EPENetworkHandling: |
1435 { |
1436 { |
1436 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 18.1" ); |
1437 TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 18.1" ); |
1437 XQServiceRequest request("com.nokia.services.networkhandling","start()"); |
1438 XQServiceRequest request("com.nokia.services.networkhandling","start()"); |
1438 bool res = request.send(); |
1439 bool res = request.send(); |
1491 static_cast< CPEContactHandlingProxy* >( iContactHandling )-> |
1492 static_cast< CPEContactHandlingProxy* >( iContactHandling )-> |
1492 CreateSecondPhaseL( *this, iFsSession ); |
1493 CreateSecondPhaseL( *this, iFsSession ); |
1493 TEFLOGSTRING( KTAOBJECT, |
1494 TEFLOGSTRING( KTAOBJECT, |
1494 "PE CPEPhoneModel::ConstructContactHandlingPhaseTwo, complete" ); |
1495 "PE CPEPhoneModel::ConstructContactHandlingPhaseTwo, complete" ); |
1495 SendMessage( MEngineMonitor::EPEMessagePEConstructionTwoPhaseReady ); |
1496 SendMessage( MEngineMonitor::EPEMessagePEConstructionTwoPhaseReady ); |
1496 // not need any more |
|
1497 delete iIdleStatusMonitor; |
|
1498 iIdleStatusMonitor = NULL; |
|
1499 } |
1497 } |
1500 |
1498 |
1501 // ----------------------------------------------------------------------------- |
1499 // ----------------------------------------------------------------------------- |
1502 // CallBackSendMessage |
1500 // CallBackSendMessage |
1503 // ----------------------------------------------------------------------------- |
1501 // ----------------------------------------------------------------------------- |
1512 self->iEngineMonitor.HandleMessage( self->iCallBackMessage, self->iCallBackCallId ); |
1510 self->iEngineMonitor.HandleMessage( self->iCallBackMessage, self->iCallBackCallId ); |
1513 |
1511 |
1514 return KErrNone; |
1512 return KErrNone; |
1515 } |
1513 } |
1516 |
1514 |
|
1515 // ----------------------------------------------------------------------------- |
|
1516 // SetCallError |
|
1517 // ----------------------------------------------------------------------------- |
|
1518 // |
|
1519 void CPEPhoneModel::SetCallError( TInt aCallId ) |
|
1520 { |
|
1521 TInt callError = KErrNone; |
|
1522 if ( iCallHandling ) |
|
1523 { |
|
1524 TInt err = iCallHandling->GetCallInfo( *iCallInfo, aCallId ); |
|
1525 |
|
1526 if ( err == KErrNone && ( iCallInfo->iExitCode & 0xFFFF0000 ) ) |
|
1527 { |
|
1528 callError = ( iCallInfo->iExitCode >> KTimesToSplitValue ); |
|
1529 //Set protocol spesific error code to TPEErrorInfo |
|
1530 EngineInfo()->SetProtocolError( callError, aCallId ); |
|
1531 } |
|
1532 } |
|
1533 } |
1517 // End of File |
1534 // End of File |