diff -r fa67e03b87df -r 6295dc2169f3 adaptationlayer/tsy/nokiatsy_dll/src/cmmcallmesshandler.cpp --- a/adaptationlayer/tsy/nokiatsy_dll/src/cmmcallmesshandler.cpp Wed Feb 17 13:58:55 2010 +0200 +++ b/adaptationlayer/tsy/nokiatsy_dll/src/cmmcallmesshandler.cpp Wed Apr 21 14:29:55 2010 +0300 @@ -245,8 +245,6 @@ // Read "HSDPA Disabled" status from product profile InfoPpDataReadReq(); - iCallOperationID = CSD_CALL_CREATE; - iVideoCallReleased = EFalse; iCallControlCallId = CALL_MODEM_ID_NONE; iCcResult = KCcResultAllowedNoModification; iResourceControlSuppress = EFalse; @@ -289,7 +287,6 @@ aPhoNetReceiver->RegisterL( callMessHandler, PN_CSD ); aPhoNetReceiver->RegisterL( callMessHandler, PN_PIPE, PNS_PIPE_CREATE_RESP ); - aPhoNetReceiver->RegisterL( callMessHandler, PN_PIPE, PNS_PIPE_REMOVE_RESP ); callMessHandler->iDtmfMessHandler = aDtmfMessHandler; CleanupStack::Pop( callMessHandler ); @@ -307,6 +304,12 @@ TFLOGSTRING("TSY: CMmCallMessHandler::~CMmCallMessHandler"); OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CMMCALLMESSHANDLER, "CMmCallMessHandler::~CMmCallMessHandler" ); + if ( KInvalidPipeHandle != iPipeHandle ) + { + // error ignored + PnsPipeRemoveReq(); + } + if ( iDataPortHandler ) { delete iDataPortHandler; @@ -490,11 +493,6 @@ PnsPipeCreateResp( aIsiMessage ); break; } - case PNS_PIPE_REMOVE_RESP: - { - PnsPipeRemoveResp( aIsiMessage ); - break; - } default: { TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_PIPE, switch messageId - default.\n" ); @@ -3316,15 +3314,6 @@ iCallDirection = RMobileCall::EMobileTerminated; } - // Check if Video Call is MT Released. - // Pipe have to remove to make next call possible. - // Have to wait that Csd videoCall is disconnected. - if ( CALL_MODEM_STATUS_MT_RELEASE == callStatusISA || - CALL_MODEM_STATUS_MO_RELEASE == callStatusISA ) - { - iVideoCallReleased = ETrue; - } - // Read call mode if ( KErrNone == aIsiMessage.FindSubBlockOffsetById( ISI_HEADER_SIZE + CALL_MODEM_STATUS_IND_OFFSET_MODE, @@ -4585,10 +4574,10 @@ // SIM is ready, start dataport handling if ( !iDataPortHandler ) { -TFLOGSTRING("NTSY: CMmCallMessHandler::InitializeDataportL - Start dataport handling"); -OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_INITIALIZEDATAPORTL, "CMmCallMessHandler::InitializeDataportL - Start dataport handling" ); - // Deleted in CMmCallMessHandler::~CMmCallMessHandler() +TFLOGSTRING("NTSY: CMmCallMessHandler::InitializeDataportL - Create pipe for videotelephony"); +OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_INITIALIZEDATAPORTL, "CMmCallMessHandler::InitializeDataportL - Create pipe for videotelephony" ); iDataPortHandler = CMmDataPortHandler::NewL( iMessageRouter ); + User::LeaveIfError( PnsPipeCreateReq( PN_PIPE_ENABLE ) ); } } @@ -5264,18 +5253,8 @@ EEtelCallAnswer, &callData, KErrNone ); } } - else - { - // MO/MT video call released. we have to remove pipe. - if ( iVideoCallReleased ) - { -TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd: call MO/MT released"); -OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND, "CMmCallMessHandler::CsdVideoCallStatusInd: call MO/MT released" ); - //Remove Pipe for wideo telephony - PnsPipeRemoveReq(); - iVideoCallReleased = EFalse; - } - } + // no else + // CSD_VIDEO_CALL_STATUS_DISCONNECT arrives also when call establishment // fails // reset call direction to avoid further unnecessary IPC completions @@ -5512,13 +5491,8 @@ iTelNumber = callInfo->iDialledParty.iTelNumber; // Dial the call - iCallOperationID = CSD_CALL_CREATE; iCallDirection = RMobileCall::EMobileOriginated; - - // Create Pipe for wideo telephony - // If creation succeed, then CsdCallControlReq( CSD_CALL_CREATE ) - // is called on PnsPipeCreateResp() - PnsPipeCreateReq( PN_PIPE_ENABLE ); + CsdCallControlReq( CSD_CALL_CREATE ); } else { @@ -5559,12 +5533,7 @@ OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_ANSWERINCOMINGDATACALL, "CMmCallMessHandler::AnswerIncomingDataCall, Send ATA" ); // Answer the call - iCallOperationID = CSD_CALL_ANSWER; - - //Create Pipe for wideo telephony - // If creation succeed, then CsdCallControlReq( CSD_CALL_ANSWER ) - // is called on PnsPipeCreateResp() - PnsPipeCreateReq( PN_PIPE_ENABLE ); + CsdCallControlReq( CSD_CALL_ANSWER ); } // If we are setting auto answer, the status is unknown else if ( RMobileCall::EStatusIdle >= iMobileCallInfo.iStatus ) @@ -5680,39 +5649,14 @@ TFLOGSTRING4("TSY: CMmCallMessHandler::PnsPipeCreateResp. TransactionId: %d, PipeHandle: %d, error code: %d", transId, iPipeHandle, errorCode ); OstTraceExt3( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_PNSPIPECREATERESP, "CMmCallMessHandler::PnsPipeCreateResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, iPipeHandle, errorCode ); - if ( PN_PIPE_NO_ERROR == errorCode ) - { - // Dial or Answer the call - CsdCallControlReq( iCallOperationID ); - } - else + if ( PN_PIPE_NO_ERROR != errorCode ) { - CCallDataPackage callData; - // set call id and mode - callData.SetCallIdAndMode( - iMobileCallInfo.iCallId, iMobileCallInfo.iService ); - TInt err = CMmStaticUtility::PacketDataCSCauseToEpocError( - errorCode, PN_PIPE ); - if ( RMobileCall::EMobileTerminated == iCallDirection ) - { - // answering video call fails - iMessageRouter->Complete( - EEtelCallAnswer, - &callData, - err ); - } - else - { - // dialling video call fails - // for MO calls pipe is created before iCallDirection is set - iMessageRouter->Complete( - EEtelCallDial, - &callData, - err ); - } - iCallDirection = RMobileCall::EDirectionUnknown; + delete iDataPortHandler; + iDataPortHandler = NULL; } + // no else } + // no else } // ---------------------------------------------------------------------------- @@ -5725,6 +5669,8 @@ TFLOGSTRING2("TSY: CMmCallMessHandler::PnsPipeRemoveReq. PipeHandle: %d", iPipeHandle ); OstTraceExt1( TRACE_NORMAL, CMMCALLMESSHANDLER_PNSPIPEREMOVEREQ, "CMmCallMessHandler::PnsPipeRemoveReq;aPipeHandle=%hhu", iPipeHandle ); + iPipeHandle = KInvalidPipeHandle; + // Create buffer for isi msg data #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING TBuf8 data; @@ -5743,37 +5689,6 @@ data ); } -// ---------------------------------------------------------------------------- -// CMmCallMessHandler::PnsPipeRemoveResp -// Breaks a PNS_PIPE_REMOVE_RESP ISI-message. -// ---------------------------------------------------------------------------- -// -void CMmCallMessHandler::PnsPipeRemoveResp( - const TIsiReceiveC& aIsiMessage ) - { -TFLOGSTRING("TSY: CMmCallMessHandler::PnsPipeRemoveResp"); -OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_PNSPIPEREMOVERESP, "CMmCallMessHandler::PnsPipeRemoveResp" ); - // Get Transaction Id from the ISI message - TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); - - if ( KPipeTransID == transId ) - { - // Get Errorcode from the ISI message - TUint8 errorCode( aIsiMessage.Get8bit( -#ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING - ISI_HEADER_SIZE + PNS_PIPE_REMOVE_RESP_OFFSET_ERRORCODE ) ); -#else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ - ISI_HEADER_SIZE + CM_PIPE_REMOVE_RESP_OFFSET_ERRORCODE ) ); -#endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ - -TFLOGSTRING4("TSY: CMmCallMessHandler::PnsPipeRemoveResp - traId: %d, PipeHandle: %d, ErrorCode: %d", transId, iPipeHandle, errorCode ); -OstTraceExt3( TRACE_NORMAL, CMMCALLMESSHANDLER_PNSPIPEREMOVERESP, "CMmCallMessHandler::PnsPipeRemoveResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, iPipeHandle, errorCode ); - - iPipeHandle = KInvalidPipeHandle; - } - // no else - } - // ========================== OTHER EXPORTED FUNCTIONS ========================= // None