adaptationlayer/tsy/nokiatsy_dll/src/cmmcallmesshandler.cpp
changeset 8 6295dc2169f3
parent 7 fa67e03b87df
child 9 8486d82aef45
--- 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<SIZE_PNS_PIPE_REMOVE_REQ> 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