1 // Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of "Eclipse Public License v1.0" |
4 // under the terms of "Eclipse Public License v1.0" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
14 // |
14 // |
15 |
15 |
16 |
16 |
17 |
17 |
18 // INCLUDE FILES |
18 // INCLUDE FILES |
19 |
|
20 #include "OstTraceDefinitions.h" |
|
21 #ifdef OST_TRACE_COMPILER_IN_USE |
|
22 #include "cmmdatacalltsyTraces.h" |
|
23 #endif |
|
24 |
|
25 #include "cmmdatacalltsy.h" |
19 #include "cmmdatacalltsy.h" |
26 #include "cmmdatalinetsy.h" |
20 #include "cmmdatalinetsy.h" |
27 #include "cmmphonetsy.h" |
21 #include "cmmphonetsy.h" |
28 #include "cmmtsyreqhandlestore.h" |
22 #include "cmmtsyreqhandlestore.h" |
29 #include "cmmcalllist.h" |
23 #include "cmmcalllist.h" |
47 CMmPhoneTsy* aMmPhone, CMmDataLineTsy* aMmLine, |
41 CMmPhoneTsy* aMmPhone, CMmDataLineTsy* aMmLine, |
48 RMobilePhone::TMobileService aMode, |
42 RMobilePhone::TMobileService aMode, |
49 TDes& aName, |
43 TDes& aName, |
50 CMmMessageManagerBase* aMessageManager ) |
44 CMmMessageManagerBase* aMessageManager ) |
51 { |
45 { |
52 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_NEWL_1, "TSY: CMmDataCallTsy::NewL. Call name: %S", aName); |
46 TFLOGSTRING2("TSY: CMmDataCallTsy::NewL. Call name: %S", &aName); |
53 |
47 |
54 CMmDataCallTsy* mmCall = NULL; |
48 CMmDataCallTsy* mmCall = NULL; |
55 |
49 |
56 //check input parameters |
50 //check input parameters |
57 if ( NULL != aMmPhone && NULL != aMmLine && |
51 if ( NULL != aMmPhone && NULL != aMmLine && |
71 return mmCall; |
65 return mmCall; |
72 } |
66 } |
73 |
67 |
74 CMmDataCallTsy::~CMmDataCallTsy() |
68 CMmDataCallTsy::~CMmDataCallTsy() |
75 { |
69 { |
76 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DTOR_1, "TSY: CMmDataCallTsy::~CMmDataCallTsy - Call deleted iCallId: %d iCallName: %S",iCallId, iCallName); |
70 TFLOGSTRING3("TSY: CMmDataCallTsy::~CMmDataCallTsy - Call deleted iCallId: %d iCallName: %S", |
|
71 iCallId, &iCallName); |
77 |
72 |
78 // If Dial fails, Symbian CSD agent will close the call immediately. |
73 // If Dial fails, Symbian CSD agent will close the call immediately. |
79 // This means that TSY has not yet received call status indications, |
74 // This means that TSY has not yet received call status indications, |
80 // where call status changes to idle. Thus responses from modem are |
75 // where call status changes to idle. Thus responses from modem are |
81 // passed to call object. |
76 // passed to call object. |
148 TInt CMmDataCallTsy::DoExtFuncL( |
143 TInt CMmDataCallTsy::DoExtFuncL( |
149 const TTsyReqHandle aTsyReqHandle, |
144 const TTsyReqHandle aTsyReqHandle, |
150 const TInt aIpc, |
145 const TInt aIpc, |
151 const TDataPackage& aPackage ) |
146 const TDataPackage& aPackage ) |
152 { |
147 { |
153 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DOEXTFUNCL_1, "TSY: CMmDataCallTsy::DoExtFuncL - IPC: %d Handle: %d",aIpc, aTsyReqHandle); |
148 TFLOGSTRING3("TSY: CMmDataCallTsy::DoExtFuncL - IPC: %d Handle: %d", |
|
149 aIpc, aTsyReqHandle); |
154 |
150 |
155 TInt ret( KErrNone ); |
151 TInt ret( KErrNone ); |
156 |
152 |
157 TAny* dataPtr = aPackage.Ptr1(); |
153 TAny* dataPtr = aPackage.Ptr1(); |
158 TAny* dataPtr2 = aPackage.Ptr2(); |
154 TAny* dataPtr2 = aPackage.Ptr2(); |
287 // --------------------------------------------------------------------------- |
283 // --------------------------------------------------------------------------- |
288 // |
284 // |
289 CTelObject::TReqMode CMmDataCallTsy::ReqModeL( |
285 CTelObject::TReqMode CMmDataCallTsy::ReqModeL( |
290 const TInt aIpc ) |
286 const TInt aIpc ) |
291 { |
287 { |
292 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_REQMODEL_1, "TSY: CMmDataCallTsy::ReqModeL - IPC: %d", aIpc); |
288 TFLOGSTRING2("TSY: CMmDataCallTsy::ReqModeL - IPC: %d", aIpc); |
293 |
289 |
294 CTelObject::TReqMode ret( 0 ); // default return value |
290 CTelObject::TReqMode ret( 0 ); // default return value |
295 |
291 |
296 switch ( aIpc ) |
292 switch ( aIpc ) |
297 { |
293 { |
533 // |
529 // |
534 TInt CMmDataCallTsy::CancelService( |
530 TInt CMmDataCallTsy::CancelService( |
535 const TInt aIpc, |
531 const TInt aIpc, |
536 const TTsyReqHandle aTsyReqHandle ) |
532 const TTsyReqHandle aTsyReqHandle ) |
537 { |
533 { |
538 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_CANCELSERVICE_1, "TSY: CMmDataCallTsy::CancelService - IPC: %d, Req handle: %d",aIpc, aTsyReqHandle); |
534 TFLOGSTRING3("TSY: CMmDataCallTsy::CancelService - IPC: %d, Req handle: %d", |
|
535 aIpc, aTsyReqHandle); |
539 |
536 |
540 TInt ret( KErrNone ); |
537 TInt ret( KErrNone ); |
541 |
538 |
542 //When the clients close their sub-sessions (eg. by calling RPhone::Close) |
539 //When the clients close their sub-sessions (eg. by calling RPhone::Close) |
543 //they may not have cancelled all their outstanding asynchronous requests |
540 //they may not have cancelled all their outstanding asynchronous requests |
638 CCallDataPackage* callDataPackage = |
635 CCallDataPackage* callDataPackage = |
639 reinterpret_cast<CCallDataPackage*>( aDataPackage ); |
636 reinterpret_cast<CCallDataPackage*>( aDataPackage ); |
640 |
637 |
641 callDataPackage->UnPackData( callStatus ); |
638 callDataPackage->UnPackData( callStatus ); |
642 |
639 |
643 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETENOTIFYSTATUSCHANGE_1, "TSY: CMmDataCallTsy::CompleteNotifyStatusChange - \aResult: %d", aResult ); |
640 TFLOGSTRING2("TSY: CMmDataCallTsy::CompleteNotifyStatusChange - \ |
644 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETENOTIFYSTATUSCHANGE_2, "TSY: CMmDataCallTsy::CompleteNotifyStatusChange - \Call status: %d, Call name: %S", callStatus, iCallName); |
641 aResult: %d", aResult ); |
|
642 TFLOGSTRING3("TSY: CMmDataCallTsy::CompleteNotifyStatusChange - \ |
|
643 Call status: %d, Call name: %S", callStatus, &iCallName); |
645 |
644 |
646 switch( callStatus ) |
645 switch( callStatus ) |
647 { |
646 { |
648 case RMobileCall::EStatusIdle: |
647 case RMobileCall::EStatusIdle: |
649 // stop the call duration timer |
648 // stop the call duration timer |
759 iTsyReqHandleStore->GetTsyReqHandle( |
758 iTsyReqHandleStore->GetTsyReqHandle( |
760 EMultimodeCallDialNoFdnCheck ); |
759 EMultimodeCallDialNoFdnCheck ); |
761 |
760 |
762 if ( 0 < dialCancelHandle ) |
761 if ( 0 < dialCancelHandle ) |
763 { |
762 { |
764 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETENOTIFYSTATUSCHANGE_3, "TSY: CMmDataCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDial"); |
763 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDial"); |
765 HangUp( dialCancelHandle ); |
764 HangUp( dialCancelHandle ); |
766 } |
765 } |
767 else if ( 0 < dialCancelHandleNoFdn ) |
766 else if ( 0 < dialCancelHandleNoFdn ) |
768 { |
767 { |
769 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETENOTIFYSTATUSCHANGE_4, "TSY: CMmDataCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDialNoFdnCheck"); |
768 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDialNoFdnCheck"); |
770 HangUp( dialCancelHandleNoFdn ); |
769 HangUp( dialCancelHandleNoFdn ); |
771 } |
770 } |
772 else |
771 else |
773 { |
772 { |
774 iDialCancelFlag = CMmCallTsy::EDialCancelNotCalled; |
773 iDialCancelFlag = CMmCallTsy::EDialCancelNotCalled; |
801 CompleteNotifyCapsChange(); |
800 CompleteNotifyCapsChange(); |
802 |
801 |
803 // Check if the call is for Call Back functionality. |
802 // Check if the call is for Call Back functionality. |
804 // E.g. client has dialled server, which calls back to |
803 // E.g. client has dialled server, which calls back to |
805 // save user the data call charging. |
804 // save user the data call charging. |
806 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETENOTIFYSTATUSCHANGE_5, "TSY: CMmDataCallTsy::Check for waiting call"); |
805 TFLOGSTRING("TSY: CMmDataCallTsy::Check for waiting call"); |
807 if ( this == iMmPhone->WaitingCallForData() ) |
806 if ( this == iMmPhone->WaitingCallForData() ) |
808 { |
807 { |
809 // Client has already tried to answer the incoming |
808 // Client has already tried to answer the incoming |
810 // call, so do it now |
809 // call, so do it now |
811 CallComingForWaitingCall(); |
810 CallComingForWaitingCall(); |
836 |
835 |
837 // if there is call with status Answering, complete |
836 // if there is call with status Answering, complete |
838 // it with CALL_CAUSE_NOT_ALLOWED |
837 // it with CALL_CAUSE_NOT_ALLOWED |
839 if( RCall::EStatusAnswering == call->Status() ) |
838 if( RCall::EStatusAnswering == call->Status() ) |
840 { |
839 { |
841 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETENOTIFYSTATUSCHANGE_6, "TSY: CMmDataCallTsy::CompleteNotifyStatusChange Answering not allowed!"); |
840 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteNotifyStatusChange Answering not allowed!"); |
842 TInt errorValue = |
841 TInt errorValue = |
843 CMmCommonStaticUtility::EpocErrorCode( |
842 CMmCommonStaticUtility::EpocErrorCode( |
844 KErrAccessDenied, KErrMMEtelCallForbidden ); |
843 KErrAccessDenied, KErrMMEtelCallForbidden ); |
845 call->CompleteAnswerIncomingCall( errorValue ); |
844 call->CompleteAnswerIncomingCall( errorValue ); |
846 } |
845 } |
1042 TInt CMmDataCallTsy::Dial( |
1041 TInt CMmDataCallTsy::Dial( |
1043 const TTsyReqHandle aTsyReqHandle, |
1042 const TTsyReqHandle aTsyReqHandle, |
1044 const TDesC8* aCallParams, |
1043 const TDesC8* aCallParams, |
1045 TDesC* aTelNumber ) |
1044 TDesC* aTelNumber ) |
1046 { |
1045 { |
1047 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIAL_1, "TSY: CMmDataCallTsy::Dial - Req handle: %u, Call name: %S",aTsyReqHandle, iCallName); |
1046 TFLOGSTRING3("TSY: CMmDataCallTsy::Dial - Req handle: %d, Call name: %S", |
|
1047 aTsyReqHandle, &iCallName); |
1048 |
1048 |
1049 if( aCallParams->Length()!= 0) |
1049 if( aCallParams->Length()!= 0) |
1050 { |
1050 { |
1051 if(sizeof(RCall::TCallParams) > aCallParams->Length()) |
1051 if(sizeof(RCall::TCallParams) > aCallParams->Length()) |
1052 { |
1052 { |
1053 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIAL_2, "TSY: CMmDataCallTsy::Dial bad size argument"); |
1053 TFLOGSTRING ("TSY: CMmDataCallTsy::Dial bad size argument"); |
1054 // Complete the request with appropiate error |
1054 // Complete the request with appropiate error |
1055 return KErrArgument; |
1055 return KErrArgument; |
1056 } |
1056 } |
1057 } |
1057 } |
1058 CMmCallList* callList = iMmPhone->CallList(); |
1058 CMmCallList* callList = iMmPhone->CallList(); |
1081 // reset finished data call flag |
1081 // reset finished data call flag |
1082 iIsFinishedDataCall = EFalse; |
1082 iIsFinishedDataCall = EFalse; |
1083 |
1083 |
1084 if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() ) |
1084 if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() ) |
1085 { |
1085 { |
1086 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIAL_4, "TSY: Offline mode ON, Dial request is not allowed" ); |
1086 TFLOGSTRING("TSY: Offline mode ON, Dial request is not allowed" ); |
1087 TInt ret = CMmCommonStaticUtility::EpocErrorCode( |
1087 TInt ret = CMmCommonStaticUtility::EpocErrorCode( |
1088 KErrGeneral, KErrGsmOfflineOpNotAllowed ); |
1088 KErrGeneral, KErrGsmOfflineOpNotAllowed ); |
1089 |
1089 |
1090 // Complete the request with appropiate error |
1090 // Complete the request with appropiate error |
1091 ReqCompleted ( aTsyReqHandle, ret ); |
1091 ReqCompleted ( aTsyReqHandle, ret ); |
1096 { |
1096 { |
1097 // The request cannot be forwarded since this call object |
1097 // The request cannot be forwarded since this call object |
1098 // is still in use. |
1098 // is still in use. |
1099 // Complete request with status value informing the client |
1099 // Complete request with status value informing the client |
1100 // about the situation. |
1100 // about the situation. |
1101 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIAL_5, "TSY: CMmDataCallTsy::Dial - KErrNotReady"); |
1101 TFLOGSTRING("TSY: CMmDataCallTsy::Dial - KErrNotReady"); |
1102 ReqCompleted( aTsyReqHandle, KErrNotReady ); |
1102 ReqCompleted( aTsyReqHandle, KErrNotReady ); |
1103 } |
1103 } |
1104 else if ( 0 < dialHandle ) |
1104 else if ( 0 < dialHandle ) |
1105 { |
1105 { |
1106 // The request is already in processing because of previous request |
1106 // The request is already in processing because of previous request |
1107 // Complete request with status value informing the client about |
1107 // Complete request with status value informing the client about |
1108 // the situation. |
1108 // the situation. |
1109 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIAL_6, "TSY: CMmDataCallTsy::Dial - KErrServerBusy"); |
1109 TFLOGSTRING("TSY: CMmDataCallTsy::Dial - KErrServerBusy"); |
1110 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
1110 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
1111 } |
1111 } |
1112 else |
1112 else |
1113 { |
1113 { |
1114 |
1114 |
1168 { |
1168 { |
1169 SetOwnership( aTsyReqHandle ); |
1169 SetOwnership( aTsyReqHandle ); |
1170 |
1170 |
1171 if ( KErrNone == ret ) |
1171 if ( KErrNone == ret ) |
1172 { |
1172 { |
1173 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIAL_7, "TSY: CMmDataCallTsy::Dial - DialDataCall"); |
1173 TFLOGSTRING("TSY: CMmDataCallTsy::Dial - DialDataCall"); |
1174 TRAP( trapError, |
1174 TRAP( trapError, |
1175 ret = iMmCallExtInterface->DialDataCallL( |
1175 ret = iMmCallExtInterface->DialDataCallL( |
1176 iCallMode, aCallParams, aTelNumber ); |
1176 iCallMode, aCallParams, aTelNumber ); |
1177 ); |
1177 ); |
1178 if ( KErrNone != trapError ) |
1178 if ( KErrNone != trapError ) |
1229 // --------------------------------------------------------------------------- |
1229 // --------------------------------------------------------------------------- |
1230 // |
1230 // |
1231 void CMmDataCallTsy::CompleteDial( |
1231 void CMmDataCallTsy::CompleteDial( |
1232 TInt aResult ) |
1232 TInt aResult ) |
1233 { |
1233 { |
1234 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEDIAL_1, "TSY: CMmDataCallTsy::CompleteDial - Result: %d", aResult ); |
1234 TFLOGSTRING2("TSY: CMmDataCallTsy::CompleteDial - Result: %d", aResult ); |
1235 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEDIAL_2, "TSY: CMmDataCallTsy::CompleteDial - Call Id: %d, Call name: %S",iCallId, iCallName); |
1235 TFLOGSTRING3("TSY: CMmDataCallTsy::CompleteDial - Call Id: %d, Call name: %S", |
|
1236 iCallId, &iCallName); |
1236 |
1237 |
1237 // Set dial flag to false |
1238 // Set dial flag to false |
1238 SetDialFlag( EFalse ); |
1239 SetDialFlag( EFalse ); |
1239 |
1240 |
1240 // reset req handle. Returns the deleted req handle |
1241 // reset req handle. Returns the deleted req handle |
1283 // |
1284 // |
1284 TInt CMmDataCallTsy::AnswerIncomingCall( |
1285 TInt CMmDataCallTsy::AnswerIncomingCall( |
1285 const TTsyReqHandle aTsyReqHandle, |
1286 const TTsyReqHandle aTsyReqHandle, |
1286 const TDesC8* ) |
1287 const TDesC8* ) |
1287 { |
1288 { |
1288 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_ANSWERINCOMINGCALL_1, "TSY: CMmDataCallTsy::AnswerIncomingCall. \n\t\t\t Handle: %d",aTsyReqHandle); |
1289 TFLOGSTRING2("TSY: CMmDataCallTsy::AnswerIncomingCall. \n\t\t\t Handle: %d", |
|
1290 aTsyReqHandle); |
1289 |
1291 |
1290 TTsyReqHandle answerCallHandle = |
1292 TTsyReqHandle answerCallHandle = |
1291 iTsyReqHandleStore->GetTsyReqHandle( EMultimodeCallAnswer ); |
1293 iTsyReqHandleStore->GetTsyReqHandle( EMultimodeCallAnswer ); |
1292 |
1294 |
1293 if ( 0 < answerCallHandle ) |
1295 if ( 0 < answerCallHandle ) |
1396 // --------------------------------------------------------------------------- |
1398 // --------------------------------------------------------------------------- |
1397 // |
1399 // |
1398 TInt CMmDataCallTsy::AnswerIncomingCallCancel( |
1400 TInt CMmDataCallTsy::AnswerIncomingCallCancel( |
1399 const TTsyReqHandle aTsyReqHandle ) |
1401 const TTsyReqHandle aTsyReqHandle ) |
1400 { |
1402 { |
1401 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_ANSWERINCOMINGCALLCANCEL_1, "TSY: CMmDataCallTsy::AnswerIncomingCallCancel. Req handle: %u, Call name: %S",aTsyReqHandle, iCallName); |
1403 TFLOGSTRING3("TSY: CMmDataCallTsy::AnswerIncomingCallCancel. Req handle: %d, Call name: %S", |
|
1404 aTsyReqHandle, &iCallName); |
1402 |
1405 |
1403 TInt ret( KErrNone ); |
1406 TInt ret( KErrNone ); |
1404 |
1407 |
1405 if( iAnswerCancelFlag ) |
1408 if( iAnswerCancelFlag ) |
1406 { |
1409 { |
1458 // --------------------------------------------------------------------------- |
1462 // --------------------------------------------------------------------------- |
1459 // |
1463 // |
1460 void CMmDataCallTsy::CompleteAnswerIncomingCall( |
1464 void CMmDataCallTsy::CompleteAnswerIncomingCall( |
1461 TInt aResult ) |
1465 TInt aResult ) |
1462 { |
1466 { |
1463 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEANSWERINCOMINGCALL_1, "TSY: CMmDataCallTsy::CompleteAnswerIncomingCall - Result: %d",aResult ); |
1467 TFLOGSTRING2("TSY: CMmDataCallTsy::CompleteAnswerIncomingCall - Result: %d", |
1464 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEANSWERINCOMINGCALL_2, "TSY: CMmDataCallTsy::CompleteAnswerIncomingCall - Call Id: %d, Call name: %S",iCallId, iCallName); |
1468 aResult ); |
|
1469 TFLOGSTRING3("TSY: CMmDataCallTsy::CompleteAnswerIncomingCall - Call Id: %d, Call name: %S", |
|
1470 iCallId, &iCallName); |
1465 |
1471 |
1466 //reset req handle. Returns the deleted req handle |
1472 //reset req handle. Returns the deleted req handle |
1467 TTsyReqHandle reqHandle = |
1473 TTsyReqHandle reqHandle = |
1468 iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeCallAnswer ); |
1474 iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeCallAnswer ); |
1469 |
1475 |
1521 // --------------------------------------------------------------------------- |
1527 // --------------------------------------------------------------------------- |
1522 // |
1528 // |
1523 TInt CMmDataCallTsy::HangUp( |
1529 TInt CMmDataCallTsy::HangUp( |
1524 const TTsyReqHandle aTsyReqHandle ) |
1530 const TTsyReqHandle aTsyReqHandle ) |
1525 { |
1531 { |
1526 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_HANGUP_1, "TSY: CMmDataCallTsy::HangUp - Req. handle: %u, Call name: %S",aTsyReqHandle, iCallName); |
1532 TFLOGSTRING3("TSY: CMmDataCallTsy::HangUp - Req. handle: %d, Call name: %S", |
|
1533 aTsyReqHandle, &iCallName); |
1527 |
1534 |
1528 TInt hangUpCause( KErrNone ); |
1535 TInt hangUpCause( KErrNone ); |
1529 TInt ret( KErrNone ); |
1536 TInt ret( KErrNone ); |
1530 |
1537 |
1531 TTsyReqHandle hangUpHandle = |
1538 TTsyReqHandle hangUpHandle = |
1538 if ( 0 < hangUpHandle || iHangUpFlag ) |
1545 if ( 0 < hangUpHandle || iHangUpFlag ) |
1539 { |
1546 { |
1540 //The request is already in processing because of previous request |
1547 //The request is already in processing because of previous request |
1541 //Complete request with status value informing the client about |
1548 //Complete request with status value informing the client about |
1542 //the situation. |
1549 //the situation. |
1543 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_HANGUP_2, "TSY: CMmDataCallTsy::HangUp - KErrServerBusy"); |
1550 TFLOGSTRING("TSY: CMmDataCallTsy::HangUp - KErrServerBusy"); |
1544 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
1551 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
1545 } |
1552 } |
1546 else if ( RCall::EStatusIdle == iCallStatus && |
1553 else if ( RCall::EStatusIdle == iCallStatus && |
1547 EMultimodeCallReqHandleUnknown == dialHandle ) |
1554 EMultimodeCallReqHandleUnknown == dialHandle ) |
1548 { |
1555 { |
1549 //Call object is already in idle state. Complete HangUp request with |
1556 //Call object is already in idle state. Complete HangUp request with |
1550 //error. |
1557 //error. |
1551 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_HANGUP_3, "TSY: CMmDataCallTsy::HangUp - KErrNotReady"); |
1558 TFLOGSTRING("TSY: CMmDataCallTsy::HangUp - KErrNotReady"); |
1552 ReqCompleted( aTsyReqHandle, KErrNotReady ); |
1559 ReqCompleted( aTsyReqHandle, KErrNotReady ); |
1553 } |
1560 } |
1554 else |
1561 else |
1555 { |
1562 { |
1556 // If this was not called by DialCancel or AnswerIncomingCallCancel |
1563 // If this was not called by DialCancel or AnswerIncomingCallCancel |
1582 //If the call is ringing e.g. MT call, we do not have ownership |
1589 //If the call is ringing e.g. MT call, we do not have ownership |
1583 //yet. So let the client reject the call without checking |
1590 //yet. So let the client reject the call without checking |
1584 //ownership. |
1591 //ownership. |
1585 if ( RCall::EStatusRinging == iCallStatus ) |
1592 if ( RCall::EStatusRinging == iCallStatus ) |
1586 { |
1593 { |
1587 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_HANGUP_4, "TSY: CMmDataCallTsy::HangUp - Reject incoming call"); |
1594 TFLOGSTRING("TSY: CMmDataCallTsy::HangUp - Reject incoming call"); |
1588 } |
1595 } |
1589 //Phone Application is the first client that is started, it |
1596 //Phone Application is the first client that is started, it |
1590 //will always be the priority client and thus able to hangup calls |
1597 //will always be the priority client and thus able to hangup calls |
1591 //Owner of the call is also able to hangup the call. |
1598 //Owner of the call is also able to hangup the call. |
1592 else if ( ( CCallBase::CheckPriorityClient( aTsyReqHandle ) ) || |
1599 else if ( ( CCallBase::CheckPriorityClient( aTsyReqHandle ) ) || |
1659 // --------------------------------------------------------------------------- |
1666 // --------------------------------------------------------------------------- |
1660 // |
1667 // |
1661 void CMmDataCallTsy::CompleteHangUp( |
1668 void CMmDataCallTsy::CompleteHangUp( |
1662 TInt aResult ) |
1669 TInt aResult ) |
1663 { |
1670 { |
1664 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_1, "TSY: CMmDataCallTsy::CompleteHangUp.\n \t\t\t Result: %d",aResult ); |
1671 TFLOGSTRING2("TSY: CMmDataCallTsy::CompleteHangUp.\n \t\t\t Result: %d", |
1665 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_2, "TSY: CMmDataCallTsy::CompleteHangUp - Call Id: %d, Call name: %S", iCallId, iCallName); |
1672 aResult ); |
|
1673 TFLOGSTRING3("TSY: CMmDataCallTsy::CompleteHangUp - Call Id: %d, Call name: %S", |
|
1674 iCallId, &iCallName); |
1666 |
1675 |
1667 TInt ret( KErrNone ); |
1676 TInt ret( KErrNone ); |
1668 |
1677 |
1669 // Complete for HangUp request |
1678 // Complete for HangUp request |
1670 // (not to DialCancel or AnswerIncomingCallCancel) |
1679 // (not to DialCancel or AnswerIncomingCallCancel) |
1727 } |
1736 } |
1728 } |
1737 } |
1729 // Complete for DialCancel or AnswerIncomingCallCancel, success |
1738 // Complete for DialCancel or AnswerIncomingCallCancel, success |
1730 else if ( KErrNone == aResult ) |
1739 else if ( KErrNone == aResult ) |
1731 { |
1740 { |
1732 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_3, "TSY: CMmDataCallTsy::CompleteHangUp - EMultimodeCallDial"); |
1741 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteHangUp - EMultimodeCallDial"); |
1733 // Find out if this is cancelling of Dial |
1742 // Find out if this is cancelling of Dial |
1734 TTsyReqHandle cancelHandle = |
1743 TTsyReqHandle cancelHandle = |
1735 iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeCallDial ); |
1744 iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeCallDial ); |
1736 |
1745 |
1737 if ( NULL == cancelHandle ) |
1746 if ( NULL == cancelHandle ) |
1738 { |
1747 { |
1739 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_4, "TSY: CMmDataCallTsy::CompleteHangUp - EMultimodeCallDialNoFdnCheck"); |
1748 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteHangUp - EMultimodeCallDialNoFdnCheck"); |
1740 // Find out if this is cancelling of DialNoFdnCheck |
1749 // Find out if this is cancelling of DialNoFdnCheck |
1741 cancelHandle = iTsyReqHandleStore-> |
1750 cancelHandle = iTsyReqHandleStore-> |
1742 ResetTsyReqHandle( EMultimodeCallDialNoFdnCheck ); |
1751 ResetTsyReqHandle( EMultimodeCallDialNoFdnCheck ); |
1743 |
1752 |
1744 if ( NULL == cancelHandle ) |
1753 if ( NULL == cancelHandle ) |
1745 { |
1754 { |
1746 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_5, "TSY: CMmDataCallTsy::CompleteHangUp - EMultimodeCallAnswer"); |
1755 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteHangUp - EMultimodeCallAnswer"); |
1747 // Find out if this is cancelling of AnswerIncomingCall |
1756 // Find out if this is cancelling of AnswerIncomingCall |
1748 cancelHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
1757 cancelHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
1749 EMultimodeCallAnswer ); |
1758 EMultimodeCallAnswer ); |
1750 } |
1759 } |
1751 } |
1760 } |
1752 |
1761 |
1753 if ( 0 < cancelHandle ) |
1762 if ( 0 < cancelHandle ) |
1754 { |
1763 { |
1755 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_6, "TSY: CMmDataCallTsy::CompleteHangUp with KErrCancel"); |
1764 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteHangUp with KErrCancel"); |
1756 |
1765 |
1757 // Complete with error value KErrCancel |
1766 // Complete with error value KErrCancel |
1758 ReqCompleted( cancelHandle, KErrCancel ); |
1767 ReqCompleted( cancelHandle, KErrCancel ); |
1759 |
1768 |
1760 // Cancel has succeeded, update core status - |
1769 // Cancel has succeeded, update core status - |
1783 TTsyReqHandle cancelHandle = |
1792 TTsyReqHandle cancelHandle = |
1784 iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeCallDial ); |
1793 iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeCallDial ); |
1785 |
1794 |
1786 if ( NULL == cancelHandle ) |
1795 if ( NULL == cancelHandle ) |
1787 { |
1796 { |
1788 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_7, "TSY: CMmDataCallTsy::CompleteHangUp - cancelling of EMultimodeCallDialNoFdnCheck"); |
1797 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteHangUp - cancelling of EMultimodeCallDialNoFdnCheck"); |
1789 // Find out if this is cancelling of DialNoFdnCheck |
1798 // Find out if this is cancelling of DialNoFdnCheck |
1790 TTsyReqHandle cancelHandle = |
1799 TTsyReqHandle cancelHandle = |
1791 iTsyReqHandleStore->ResetTsyReqHandle( |
1800 iTsyReqHandleStore->ResetTsyReqHandle( |
1792 EMultimodeCallDialNoFdnCheck ); |
1801 EMultimodeCallDialNoFdnCheck ); |
1793 |
1802 |
1794 if ( NULL == cancelHandle ) |
1803 if ( NULL == cancelHandle ) |
1795 { |
1804 { |
1796 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_8, "TSY: CMmDataCallTsy::CompleteHangUp - cancelling of AnswerIncomingCall"); |
1805 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteHangUp - cancelling of AnswerIncomingCall"); |
1797 // Find out if this is cancelling of AnswerIncomingCall |
1806 // Find out if this is cancelling of AnswerIncomingCall |
1798 cancelHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
1807 cancelHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
1799 EMultimodeCallAnswer ); |
1808 EMultimodeCallAnswer ); |
1800 } |
1809 } |
1801 } |
1810 } |
1802 |
1811 |
1803 |
1812 |
1804 // Cancel to Dial or AnswerIncomingCall |
1813 // Cancel to Dial or AnswerIncomingCall |
1805 if ( 0 < cancelHandle ) |
1814 if ( 0 < cancelHandle ) |
1806 { |
1815 { |
1807 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEHANGUP_9, "TSY: CMmDataCallTsy::CompleteHangUp - with KErrNone"); |
1816 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteHangUp - with KErrNone"); |
1808 // Complete with success (KErrNone) |
1817 // Complete with success (KErrNone) |
1809 ReqCompleted( cancelHandle, KErrNone ); |
1818 ReqCompleted( cancelHandle, KErrNone ); |
1810 |
1819 |
1811 // Succeeded, update core status - hangup possible again |
1820 // Succeeded, update core status - hangup possible again |
1812 iCallCaps.iFlags |= RCall::KCapsHangUp; |
1821 iCallCaps.iFlags |= RCall::KCapsHangUp; |
2234 // |
2243 // |
2235 void CMmDataCallTsy::CallComingForWaitingCall() |
2244 void CMmDataCallTsy::CallComingForWaitingCall() |
2236 { |
2245 { |
2237 //Incoming call detected, which is directed to this call object |
2246 //Incoming call detected, which is directed to this call object |
2238 //which should be waiting for incoming call |
2247 //which should be waiting for incoming call |
2239 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_CALLCOMINGFORWAITINGCALL_1, "TSY: CMmDataCallTsy::CallComingForWaitingCall"); |
2248 TFLOGSTRING("TSY: CMmDataCallTsy::CallComingForWaitingCall"); |
2240 |
2249 |
2241 TInt ret( KErrNone ); |
2250 TInt ret( KErrNone ); |
2242 |
2251 |
2243 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_CALLCOMINGFORWAITINGCALL_2, "TSY: CMmDataCallTsy::AnswerIncomingCall - Data call"); |
2252 TFLOGSTRING("TSY: CMmDataCallTsy::AnswerIncomingCall - Data call"); |
2244 //Answer incoming call |
2253 //Answer incoming call |
2245 TRAPD( trapError, |
2254 TRAPD( trapError, |
2246 ret = iMmCallExtInterface->AnswerIncomingDataCallL( iCallId ); |
2255 ret = iMmCallExtInterface->AnswerIncomingDataCallL( iCallId ); |
2247 ); |
2256 ); |
2248 |
2257 |
2284 // |
2293 // |
2285 TInt CMmDataCallTsy::LoanDataPort( |
2294 TInt CMmDataCallTsy::LoanDataPort( |
2286 const TTsyReqHandle aTsyReqHandle, |
2295 const TTsyReqHandle aTsyReqHandle, |
2287 RCall::TCommPort* aCommPort ) |
2296 RCall::TCommPort* aCommPort ) |
2288 { |
2297 { |
2289 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_LOANDATAPORT_1, "TSY: CMmDataCallTsy::LoanDataPort - Client taking control: %S",iCallName ); |
2298 TFLOGSTRING2("TSY: CMmDataCallTsy::LoanDataPort - Client taking control: %S", |
|
2299 &iCallName ); |
2290 |
2300 |
2291 TInt ret( KErrNone ); |
2301 TInt ret( KErrNone ); |
2292 |
2302 |
2293 // Check if the port is loaned! |
2303 // Check if the port is loaned! |
2294 if ( iLoanedCommPort.iPort.Compare( KNullDesC) == 0 ) |
2304 if ( iLoanedCommPort.iPort.Compare( KNullDesC) == 0 ) |
2394 // --------------------------------------------------------------------------- |
2404 // --------------------------------------------------------------------------- |
2395 // |
2405 // |
2396 TInt CMmDataCallTsy::RecoverDataPort( |
2406 TInt CMmDataCallTsy::RecoverDataPort( |
2397 const TTsyReqHandle aTsyReqHandle ) |
2407 const TTsyReqHandle aTsyReqHandle ) |
2398 { |
2408 { |
2399 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_RECOVERDATAPORT_1, "TSY: CMmDataCallTsy::RecoverDataPort - Client returning control: %S",iCallName ); |
2409 TFLOGSTRING2("TSY: CMmDataCallTsy::RecoverDataPort - Client returning control: %S", |
|
2410 &iCallName ); |
2400 |
2411 |
2401 TInt ret( KErrNone ); |
2412 TInt ret( KErrNone ); |
2402 |
2413 |
2403 // Check if the port is loaned! |
2414 // Check if the port is loaned! |
2404 if ( iLoanedCommPort.iPort.Compare( KNullDesC) != 0 ) |
2415 if ( iLoanedCommPort.iPort.Compare( KNullDesC) != 0 ) |
2453 // (other items were commented in a header). |
2464 // (other items were commented in a header). |
2454 // --------------------------------------------------------------------------- |
2465 // --------------------------------------------------------------------------- |
2455 // |
2466 // |
2456 TInt CMmDataCallTsy::RecoverDataPortAndRelinquishOwnership() |
2467 TInt CMmDataCallTsy::RecoverDataPortAndRelinquishOwnership() |
2457 { |
2468 { |
2458 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_RECOVERDATAPORTANDRELINQUISHOWNERSHIP_1, "TSY: CMmDataCallTsy::RecoverDataPortAndRelinquishOwnership - \Client returning control: %S", iCallName ); |
2469 TFLOGSTRING2("TSY: CMmDataCallTsy::RecoverDataPortAndRelinquishOwnership - \ |
|
2470 Client returning control: %S", &iCallName ); |
2459 |
2471 |
2460 TInt ret( KErrNone ); |
2472 TInt ret( KErrNone ); |
2461 |
2473 |
2462 // Check if the port is loaned! |
2474 // Check if the port is loaned! |
2463 if ( iLoanedCommPort.iPort.Compare( KNullDesC) != 0 ) |
2475 if ( iLoanedCommPort.iPort.Compare( KNullDesC) != 0 ) |
2530 // |
2542 // |
2531 TInt CMmDataCallTsy::Connect( |
2543 TInt CMmDataCallTsy::Connect( |
2532 const TTsyReqHandle aTsyReqHandle, |
2544 const TTsyReqHandle aTsyReqHandle, |
2533 const TDesC8* aCallParams ) |
2545 const TDesC8* aCallParams ) |
2534 { |
2546 { |
2535 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_CONNECT_1, "TSY: CMmDataCallTsy::Connect"); |
2547 TFLOGSTRING("TSY: CMmDataCallTsy::Connect"); |
2536 if ( CheckOwnership( aTsyReqHandle ) == CCallBase::EOwnedUnowned ) |
2548 if ( CheckOwnership( aTsyReqHandle ) == CCallBase::EOwnedUnowned ) |
2537 { |
2549 { |
2538 SetOwnership( aTsyReqHandle ); |
2550 SetOwnership( aTsyReqHandle ); |
2539 } |
2551 } |
2540 TDes8* callParams = reinterpret_cast<TDes8*>(const_cast<TDesC8*> (aCallParams)); |
2552 TDes8* callParams = reinterpret_cast<TDes8*>(const_cast<TDesC8*> (aCallParams)); |
2564 |
2576 |
2565 return KErrNone; |
2577 return KErrNone; |
2566 } |
2578 } |
2567 if(sizeof(RMobileCall::TMobileCallParamsV1) > aCallParams->Length()) |
2579 if(sizeof(RMobileCall::TMobileCallParamsV1) > aCallParams->Length()) |
2568 { |
2580 { |
2569 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_CONNECT_2, "TSY: CMmDataCallTsy::Connect bad size argument"); |
2581 TFLOGSTRING ("TSY: CMmDataCallTsy::Connect bad size argument"); |
2570 // Complete the request with appropiate error |
2582 // Complete the request with appropiate error |
2571 return KErrArgument; |
2583 return KErrArgument; |
2572 } |
2584 } |
2573 RMobileCall::TMobileCallParamsV1Pckg* paramsPckgV1 = |
2585 RMobileCall::TMobileCallParamsV1Pckg* paramsPckgV1 = |
2574 reinterpret_cast<RMobileCall::TMobileCallParamsV1Pckg*> ( callParams ); |
2586 reinterpret_cast<RMobileCall::TMobileCallParamsV1Pckg*> ( callParams ); |
2789 TInt* aRxTimeslots ) |
2801 TInt* aRxTimeslots ) |
2790 { |
2802 { |
2791 TInt ret( KErrNone ); |
2803 TInt ret( KErrNone ); |
2792 // HSCSD parameters can be set only if this call has been opened |
2804 // HSCSD parameters can be set only if this call has been opened |
2793 // from the phone's data line. |
2805 // from the phone's data line. |
2794 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_SETDYNAMICHSCSDPARAMS_1, "TSY: CMmDataCallTsy::SetDynamicHscsdParams.\n \t\t\t Air Intrf: %d\n \t\t\t RX slots: %d", *aAiur, *aRxTimeslots); |
2806 TFLOGSTRING3("TSY: CMmDataCallTsy::SetDynamicHscsdParams.\n \t\t\t Air Intrf: %d\n \t\t\t RX slots: %d", |
|
2807 *aAiur, *aRxTimeslots); |
2795 |
2808 |
2796 iReqHandleType = EMultimodeCallSetDynamicHscsdParams; |
2809 iReqHandleType = EMultimodeCallSetDynamicHscsdParams; |
2797 |
2810 |
2798 TRAP_IGNORE( |
2811 TRAP_IGNORE( |
2799 ret = iMmCallExtInterface->SetDynamicHscsdParamsL( |
2812 ret = iMmCallExtInterface->SetDynamicHscsdParamsL( |
2829 // --------------------------------------------------------------------------- |
2842 // --------------------------------------------------------------------------- |
2830 // |
2843 // |
2831 void CMmDataCallTsy::CompleteSetDynamicHscsdParams( |
2844 void CMmDataCallTsy::CompleteSetDynamicHscsdParams( |
2832 TInt aErrorCode ) |
2845 TInt aErrorCode ) |
2833 { |
2846 { |
2834 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETESETDYNAMICHSCSDPARAMS_1, "TSY: CMmDataCallTsy::CompleteSetDynamicHscsdParams"); |
2847 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteSetDynamicHscsdParams"); |
2835 //reset req handle. Returns the deleted req handle |
2848 //reset req handle. Returns the deleted req handle |
2836 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
2849 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
2837 EMultimodeCallSetDynamicHscsdParams ); |
2850 EMultimodeCallSetDynamicHscsdParams ); |
2838 |
2851 |
2839 if ( EMultimodeCallReqHandleUnknown != reqHandle ) |
2852 if ( EMultimodeCallReqHandleUnknown != reqHandle ) |
2850 // |
2863 // |
2851 TInt CMmDataCallTsy::GetCurrentHscsdInfo( |
2864 TInt CMmDataCallTsy::GetCurrentHscsdInfo( |
2852 const TTsyReqHandle aTsyReqHandle, |
2865 const TTsyReqHandle aTsyReqHandle, |
2853 TDes8* aHSCSDInfo ) |
2866 TDes8* aHSCSDInfo ) |
2854 { |
2867 { |
2855 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_GETCURRENTHSCSDINFO_1, "TSY: CMmDataCallTsy::GetCurrentHscsdInfo"); |
2868 TFLOGSTRING("TSY: CMmDataCallTsy::GetCurrentHscsdInfo"); |
2856 TInt ret( KErrNone ); |
2869 TInt ret( KErrNone ); |
2857 // HSCSD info can be read only if this call has been opened from the |
2870 // HSCSD info can be read only if this call has been opened from the |
2858 // phone's data line and call is connected. |
2871 // phone's data line and call is connected. |
2859 // Connected here means that TSY gas has received CONNECT: XXXX from modem |
2872 // Connected here means that TSY gas has received CONNECT: XXXX from modem |
2860 // When CONNECT: XXXX has been received, TSY has completed clients request |
2873 // When CONNECT: XXXX has been received, TSY has completed clients request |
2936 // (other items were commented in a header). |
2949 // (other items were commented in a header). |
2937 // --------------------------------------------------------------------------- |
2950 // --------------------------------------------------------------------------- |
2938 // |
2951 // |
2939 void CMmDataCallTsy::CompleteNotifyHscsdInfoChange() |
2952 void CMmDataCallTsy::CompleteNotifyHscsdInfoChange() |
2940 { |
2953 { |
2941 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETENOTIFYHSCSDINFOCHANGE_1, "TSY: CMmDataCallTsy::CompleteNotifyHscsdInfoChange"); |
2954 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteNotifyHscsdInfoChange"); |
2942 //reset req handle. Returns the deleted req handle |
2955 //reset req handle. Returns the deleted req handle |
2943 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
2956 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
2944 EMultimodeCallNotifyHscsdInfoChange ); |
2957 EMultimodeCallNotifyHscsdInfoChange ); |
2945 |
2958 |
2946 if ( EMultimodeCallReqHandleUnknown != reqHandle ) |
2959 if ( EMultimodeCallReqHandleUnknown != reqHandle ) |
2976 TInt CMmDataCallTsy::DialNoFdnCheck( |
2989 TInt CMmDataCallTsy::DialNoFdnCheck( |
2977 const TTsyReqHandle aTsyReqHandle, |
2990 const TTsyReqHandle aTsyReqHandle, |
2978 const TDesC8* aCallParams, |
2991 const TDesC8* aCallParams, |
2979 TDesC* aTelNumber ) |
2992 TDesC* aTelNumber ) |
2980 { |
2993 { |
2981 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIALNOFDNCHECK_1, "TSY: CMmDataCallTsy::DialNoFdnCheck - Req handle: %u, Call name: %S",aTsyReqHandle, iCallName); |
2994 TFLOGSTRING3("TSY: CMmDataCallTsy::DialNoFdnCheck - Req handle: %d, Call name: %S", |
|
2995 aTsyReqHandle, &iCallName); |
2982 |
2996 |
2983 CMmCallList* callList = iMmPhone->CallList(); |
2997 CMmCallList* callList = iMmPhone->CallList(); |
2984 TBool dialFlag( EFalse ); |
2998 TBool dialFlag( EFalse ); |
2985 |
2999 |
2986 for(TInt i=0; i< callList->GetNumberOfObjects();i++) |
3000 for(TInt i=0; i< callList->GetNumberOfObjects();i++) |
3008 // reset finished data call flag |
3022 // reset finished data call flag |
3009 iIsFinishedDataCall = EFalse; |
3023 iIsFinishedDataCall = EFalse; |
3010 |
3024 |
3011 if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() ) |
3025 if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() ) |
3012 { |
3026 { |
3013 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIALNOFDNCHECK_3, "TSY: CMmDataCallTsy - DialNoFdnCheck - Offline mode ON, Dial request is not allowed" ); |
3027 TFLOGSTRING("TSY: CMmDataCallTsy - DialNoFdnCheck - Offline mode ON, Dial request is not allowed" ); |
3014 TInt ret = CMmCommonStaticUtility::EpocErrorCode( |
3028 TInt ret = CMmCommonStaticUtility::EpocErrorCode( |
3015 KErrGeneral, KErrGsmOfflineOpNotAllowed ); |
3029 KErrGeneral, KErrGsmOfflineOpNotAllowed ); |
3016 SetDialFlag( EFalse ); |
3030 SetDialFlag( EFalse ); |
3017 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIALNOFDNCHECK_4, "TSY: CMmDataCallTsy::DialNoFdnCheck - RF inactive -> dial-flag false" ); |
3031 TFLOGSTRING("TSY: CMmDataCallTsy::DialNoFdnCheck - RF inactive -> dial-flag false" ); |
3018 // Complete the request with appropiate error |
3032 // Complete the request with appropiate error |
3019 ReqCompleted ( aTsyReqHandle, ret ); |
3033 ReqCompleted ( aTsyReqHandle, ret ); |
3020 } |
3034 } |
3021 |
3035 |
3022 // check that status is Idle |
3036 // check that status is Idle |
3024 { |
3038 { |
3025 // Request cannot be forwarded since this call object |
3039 // Request cannot be forwarded since this call object |
3026 // is still in use. |
3040 // is still in use. |
3027 // Complete request with status value informing the client |
3041 // Complete request with status value informing the client |
3028 // about the situation. |
3042 // about the situation. |
3029 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIALNOFDNCHECK_5, "TSY: CMmDataCallTsy::DialNoFdnCheck - KErrNotReady"); |
3043 TFLOGSTRING("TSY: CMmDataCallTsy::DialNoFdnCheck - KErrNotReady"); |
3030 ReqCompleted( aTsyReqHandle, KErrNotReady ); |
3044 ReqCompleted( aTsyReqHandle, KErrNotReady ); |
3031 } |
3045 } |
3032 else if ( 0 < dialHandle ) |
3046 else if ( 0 < dialHandle ) |
3033 { |
3047 { |
3034 // Request is already in processing because of previous request |
3048 // Request is already in processing because of previous request |
3035 // Complete request with status value informing the client about |
3049 // Complete request with status value informing the client about |
3036 // the situation. |
3050 // the situation. |
3037 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIALNOFDNCHECK_6, "TSY: CMmDataCallTsy::DialNoFdnCheck - KErrServerBusy"); |
3051 TFLOGSTRING("TSY: CMmDataCallTsy::DialNoFdnCheck - KErrServerBusy"); |
3038 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
3052 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
3039 } |
3053 } |
3040 else |
3054 else |
3041 { |
3055 { |
3042 TInt ret( KErrNone ); |
3056 TInt ret( KErrNone ); |
3088 |
3102 |
3089 if ( KErrNone == ret ) |
3103 if ( KErrNone == ret ) |
3090 { |
3104 { |
3091 SetDialTypeId( KMultimodeCallTypeIDNoFdnCheck ); |
3105 SetDialTypeId( KMultimodeCallTypeIDNoFdnCheck ); |
3092 |
3106 |
3093 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_DIALNOFDNCHECK_7, "TSY: CMmDataCallTsy::DialNoFdnCheck - DialDataCall"); |
3107 TFLOGSTRING("TSY: CMmDataCallTsy::DialNoFdnCheck - DialDataCall"); |
3094 TRAP( trapError, |
3108 TRAP( trapError, |
3095 ret = iMmCallExtInterface->DialDataCallL( |
3109 ret = iMmCallExtInterface->DialDataCallL( |
3096 iCallMode, aCallParams, aTelNumber ); |
3110 iCallMode, aCallParams, aTelNumber ); |
3097 ); |
3111 ); |
3098 if ( KErrNone != trapError ) |
3112 if ( KErrNone != trapError ) |
3152 // --------------------------------------------------------------------------- |
3166 // --------------------------------------------------------------------------- |
3153 // |
3167 // |
3154 void CMmDataCallTsy::CompleteDialNoFdn( |
3168 void CMmDataCallTsy::CompleteDialNoFdn( |
3155 TInt aResult ) |
3169 TInt aResult ) |
3156 { |
3170 { |
3157 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEDIALNOFDN_1, "TSY: CMmDataCallTsy::CompleteDialNoFdn - Result: %d", aResult ); |
3171 TFLOGSTRING2("TSY: CMmDataCallTsy::CompleteDialNoFdn - Result: %d", aResult ); |
3158 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEDIALNOFDN_2, "TSY: CMmDataCallTsy::CompleteDialNoFdn - Call Id: %d, Call name: %S",iCallId, iCallName); |
3172 TFLOGSTRING3("TSY: CMmDataCallTsy::CompleteDialNoFdn - Call Id: %d, Call name: %S", |
|
3173 iCallId, &iCallName); |
3159 |
3174 |
3160 // Set dial flag to false |
3175 // Set dial flag to false |
3161 SetDialFlag( EFalse ); |
3176 SetDialFlag( EFalse ); |
3162 |
3177 |
3163 // reset req handle. Returns the deleted req handle |
3178 // reset req handle. Returns the deleted req handle |
3177 iCallCaps.iFlags &= ~( RCall::KCapsHangUp ); |
3192 iCallCaps.iFlags &= ~( RCall::KCapsHangUp ); |
3178 |
3193 |
3179 //complete caps change notification |
3194 //complete caps change notification |
3180 CompleteNotifyCapsChange(); |
3195 CompleteNotifyCapsChange(); |
3181 } |
3196 } |
3182 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEDIALNOFDN_3, "TSY: CMmDataCallTsy::CompleteDialNoFdn before ReqComplete %d", aResult ); |
3197 TFLOGSTRING2("TSY: CMmDataCallTsy::CompleteDialNoFdn before ReqComplete %d", aResult ); |
3183 ReqCompleted( reqHandle, aResult ); |
3198 ReqCompleted( reqHandle, aResult ); |
3184 |
3199 |
3185 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_COMPLETEDIALNOFDN_4, "TSY: CMmDataCallTsy::CompleteDialNoFdn - set dialtype to none "); |
3200 TFLOGSTRING("TSY: CMmDataCallTsy::CompleteDialNoFdn - set dialtype to none "); |
3186 //Set dial type to none |
3201 //Set dial type to none |
3187 SetDialTypeId( KMultimodeCallTypeDialNone ); |
3202 SetDialTypeId( KMultimodeCallTypeDialNone ); |
3188 } |
3203 } |
3189 |
3204 |
3190 // Set also new call caps to enable dataport loaning! |
3205 // Set also new call caps to enable dataport loaning! |
3215 const TInt aError ) |
3230 const TInt aError ) |
3216 { |
3231 { |
3217 //Overloads CTelObject::ReqCompleted for logging purposes. It |
3232 //Overloads CTelObject::ReqCompleted for logging purposes. It |
3218 //prints the aTsyReqHandle and aError variable in the log file and then |
3233 //prints the aTsyReqHandle and aError variable in the log file and then |
3219 //calls CTelObject::ReqCompleted. |
3234 //calls CTelObject::ReqCompleted. |
3220 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMDATACALLTSY_REQCOMPLETED_1, "TSY: CMmDataCallTsy::Request Completed. Handle:%d Error:%d", aTsyReqHandle, aError); |
3235 TFLOGSTRING3("TSY: CMmDataCallTsy::Request Completed. Handle:%d Error:%d", aTsyReqHandle, aError); |
3221 |
3236 |
3222 CTelObject::ReqCompleted(aTsyReqHandle,aError); |
3237 CTelObject::ReqCompleted(aTsyReqHandle,aError); |
3223 } |
3238 } |
3224 #endif |
3239 #endif |
3225 |
3240 |