adaptationlayer/tsy/nokiatsy_dll/src/cmmcallmesshandler.cpp
changeset 9 8486d82aef45
parent 8 6295dc2169f3
equal deleted inserted replaced
8:6295dc2169f3 9:8486d82aef45
    84 const TUint8 KFirstPepType   = PN_PEP_TYPE_COMM; // First PEP type
    84 const TUint8 KFirstPepType   = PN_PEP_TYPE_COMM; // First PEP type
    85 
    85 
    86 // Second PEP
    86 // Second PEP
    87 const TUint8 KSecondPepDevice = PN_DEV_MODEM;    // Device Id of second PEP
    87 const TUint8 KSecondPepDevice = PN_DEV_MODEM;    // Device Id of second PEP
    88 const TUint8 KSecondPepObject = PN_OBJ_CSD_SRV; // Object Id of second PEP
    88 const TUint8 KSecondPepObject = PN_OBJ_CSD_SRV; // Object Id of second PEP
    89 const TUint8 KSecondPepType   = PN_PEP_TYPE_GPRS; // Second PEP type
    89 const TUint8 KSecondPepType   = PN_PEP_TYPE_COMMON; // Second PEP type
    90 
    90 
    91 const TUint8 KPipeTransID  = EIscNokiaDataport1;
    91 const TUint8 KPipeTransID  = EIscNokiaDataport1;
    92 
    92 
    93 const TUint8 KInvalidPipeHandle = 0xFF;
    93 const TUint8 KInvalidPipeHandle = 0xFF;
    94 
    94 
   129      CMmCallMessHandler& aCallMsgHandler )
   129      CMmCallMessHandler& aCallMsgHandler )
   130         :CTimer( CActive::EPriorityHigh ),
   130         :CTimer( CActive::EPriorityHigh ),
   131         iCallMsgHandler( aCallMsgHandler )
   131         iCallMsgHandler( aCallMsgHandler )
   132     {
   132     {
   133 TFLOGSTRING("TSY: CEmergencyTimer::CEmergencyTimer");
   133 TFLOGSTRING("TSY: CEmergencyTimer::CEmergencyTimer");
   134 OstTrace0( TRACE_NORMAL, CEMERGENCYTIMER_CEMERGENCYTIMER, "CEmergencyTimer::CEmergencyTimer" );
   134 OstTrace0( TRACE_NORMAL,  CEMERGENCYTIMER_CEMERGENCYTIMER_TD, "CEmergencyTimer::CEmergencyTimer" );
   135     }
   135     }
   136 
   136 
   137 // -----------------------------------------------------------------------------
   137 // -----------------------------------------------------------------------------
   138 // CEmergencyTimer::~CEmergencyTimer()
   138 // CEmergencyTimer::~CEmergencyTimer()
   139 // Destructor, deletes all allocated resources.
   139 // Destructor, deletes all allocated resources.
   140 // -----------------------------------------------------------------------------
   140 // -----------------------------------------------------------------------------
   141 //
   141 //
   142 CEmergencyTimer::~CEmergencyTimer()
   142 CEmergencyTimer::~CEmergencyTimer()
   143     {
   143     {
   144 TFLOGSTRING("TSY: CEmergencyTimer::~CEmergencyTimer");
   144 TFLOGSTRING("TSY: CEmergencyTimer::~CEmergencyTimer");
   145 OstTrace0( TRACE_NORMAL, DUP1_CEMERGENCYTIMER_CEMERGENCYTIMER, "CEmergencyTimer::~CEmergencyTimer" );
   145 OstTrace0( TRACE_NORMAL,  DUP1_CEMERGENCYTIMER_CEMERGENCYTIMER_TD, "CEmergencyTimer::~CEmergencyTimer" );
   146     Cancel();
   146     Cancel();
   147     }
   147     }
   148 
   148 
   149 // -----------------------------------------------------------------------------
   149 // -----------------------------------------------------------------------------
   150 // CEmergencyTimer::ConstructL()
   150 // CEmergencyTimer::ConstructL()
   152 // -----------------------------------------------------------------------------
   152 // -----------------------------------------------------------------------------
   153 //
   153 //
   154 void CEmergencyTimer::ConstructL()
   154 void CEmergencyTimer::ConstructL()
   155     {
   155     {
   156 TFLOGSTRING("TSY: CEmergencyTimer::ConstructL");
   156 TFLOGSTRING("TSY: CEmergencyTimer::ConstructL");
   157 OstTrace0( TRACE_NORMAL, CEMERGENCYTIMER_CONSTRUCTL, "CEmergencyTimer::ConstructL" );
   157 OstTrace0( TRACE_NORMAL,  CEMERGENCYTIMER_CONSTRUCTL_TD, "CEmergencyTimer::ConstructL" );
   158     CTimer::ConstructL(); // Must be called
   158     CTimer::ConstructL(); // Must be called
   159     CActiveScheduler::Add( this );
   159     CActiveScheduler::Add( this );
   160     }
   160     }
   161 
   161 
   162 // -----------------------------------------------------------------------------
   162 // -----------------------------------------------------------------------------
   165 // -----------------------------------------------------------------------------
   165 // -----------------------------------------------------------------------------
   166 //
   166 //
   167 void CEmergencyTimer::RunL()
   167 void CEmergencyTimer::RunL()
   168     {
   168     {
   169 TFLOGSTRING("TSY: CEmergencyTimer::RunL - TIMER ELAPSED");
   169 TFLOGSTRING("TSY: CEmergencyTimer::RunL - TIMER ELAPSED");
   170 OstTrace0( TRACE_NORMAL, CEMERGENCYTIMER_RUNL, "CEmergencyTimer::RunL" );
   170 OstTrace0( TRACE_NORMAL,  CEMERGENCYTIMER_RUNL_TD, "CEmergencyTimer::RunL" );
   171     iCallMsgHandler.GpdsContextsClearResp();
   171     iCallMsgHandler.GpdsContextsClearResp();
   172     }
   172     }
   173 
   173 
   174 // -----------------------------------------------------------------------------
   174 // -----------------------------------------------------------------------------
   175 // CEmergencyTimer::StartEmergencyTimer()
   175 // CEmergencyTimer::StartEmergencyTimer()
   177 // -----------------------------------------------------------------------------
   177 // -----------------------------------------------------------------------------
   178 //
   178 //
   179 void CEmergencyTimer::StartEmergencyTimer()
   179 void CEmergencyTimer::StartEmergencyTimer()
   180     {
   180     {
   181 TFLOGSTRING("TSY: CEmergencyTimer::StartEmergencyTimer");
   181 TFLOGSTRING("TSY: CEmergencyTimer::StartEmergencyTimer");
   182 OstTrace0( TRACE_NORMAL, CEMERGENCYTIMER_STARTEMERGENCYTIMER, "CEmergencyTimer::StartEmergencyTimer" );
   182 OstTrace0( TRACE_NORMAL,  CEMERGENCYTIMER_STARTEMERGENCYTIMER_TD, "CEmergencyTimer::StartEmergencyTimer" );
   183     Cancel();
   183     Cancel();
   184     After( KEmergencyTimerInterval ); // 5 seconds
   184     After( KEmergencyTimerInterval ); // 5 seconds
   185     }
   185     }
   186 
   186 
   187 // -----------------------------------------------------------------------------
   187 // -----------------------------------------------------------------------------
   190 // -----------------------------------------------------------------------------
   190 // -----------------------------------------------------------------------------
   191 //
   191 //
   192 void CEmergencyTimer::StopEmergencyTimer()
   192 void CEmergencyTimer::StopEmergencyTimer()
   193     {
   193     {
   194 TFLOGSTRING("TSY: CEmergencyTimer::StopEmergencyTimer");
   194 TFLOGSTRING("TSY: CEmergencyTimer::StopEmergencyTimer");
   195 OstTrace0( TRACE_NORMAL, CEMERGENCYTIMER_STOPEMERGENCYTIMER, "CEmergencyTimer::StopEmergencyTimer" );
   195 OstTrace0( TRACE_NORMAL,  CEMERGENCYTIMER_STOPEMERGENCYTIMER_TD, "CEmergencyTimer::StopEmergencyTimer" );
   196     Cancel();
   196     Cancel();
   197     }
   197     }
   198 
   198 
   199 
   199 
   200 
   200 
   206 // -----------------------------------------------------------------------------
   206 // -----------------------------------------------------------------------------
   207 //
   207 //
   208 CMmCallMessHandler::CMmCallMessHandler() : iEmergencyTimer( *this )
   208 CMmCallMessHandler::CMmCallMessHandler() : iEmergencyTimer( *this )
   209     {
   209     {
   210 TFLOGSTRING("TSY: CEmergencyTimer::CMmCallMessHandler");
   210 TFLOGSTRING("TSY: CEmergencyTimer::CMmCallMessHandler");
   211 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CMMCALLMESSHANDLER, "CMmCallMessHandler::CMmCallMessHandler" );
   211 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CMMCALLMESSHANDLER_TD, "CMmCallMessHandler::CMmCallMessHandler" );
   212     }
   212     }
   213 
   213 
   214 // -----------------------------------------------------------------------------
   214 // -----------------------------------------------------------------------------
   215 // CMmCallMessHandler::ConstructL
   215 // CMmCallMessHandler::ConstructL
   216 // Symbian 2nd phase constructor can leave.
   216 // Symbian 2nd phase constructor can leave.
   217 // -----------------------------------------------------------------------------
   217 // -----------------------------------------------------------------------------
   218 //
   218 //
   219 void CMmCallMessHandler::ConstructL()
   219 void CMmCallMessHandler::ConstructL()
   220     {
   220     {
   221 TFLOGSTRING("TSY: CMmCallMessHandler::ConstructL");
   221 TFLOGSTRING("TSY: CMmCallMessHandler::ConstructL");
   222 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CONSTRUCTL, "CMmCallMessHandler::ConstructL" );
   222 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CONSTRUCTL_TD, "CMmCallMessHandler::ConstructL" );
   223 
   223 
   224     iSubAddress.Zero();
   224     iSubAddress.Zero();
   225     iBearer.Zero();
   225     iBearer.Zero();
   226     iReceivedUusData.Zero();
   226     iReceivedUusData.Zero();
   227     iWaitingCall = KSymbianCallIdNone;
   227     iWaitingCall = KSymbianCallIdNone;
   260     CMmPhoNetReceiver* aPhoNetReceiver,
   260     CMmPhoNetReceiver* aPhoNetReceiver,
   261     CMmDtmfMessHandler* aDtmfMessHandler,
   261     CMmDtmfMessHandler* aDtmfMessHandler,
   262     CMmMessageRouter* aMessageRouter )
   262     CMmMessageRouter* aMessageRouter )
   263     {
   263     {
   264 TFLOGSTRING("TSY: CMmCallMessHandler::NewL");
   264 TFLOGSTRING("TSY: CMmCallMessHandler::NewL");
   265 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_NEWL, "CMmCallMessHandler::NewL" );
   265 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_NEWL_TD, "CMmCallMessHandler::NewL" );
   266 
   266 
   267     CMmCallMessHandler* callMessHandler = new( ELeave ) CMmCallMessHandler();
   267     CMmCallMessHandler* callMessHandler = new( ELeave ) CMmCallMessHandler();
   268 
   268 
   269     CleanupStack::PushL( callMessHandler );
   269     CleanupStack::PushL( callMessHandler );
   270     callMessHandler->iPhoNetSender = aPhoNetSender;
   270     callMessHandler->iPhoNetSender = aPhoNetSender;
   285         GPDS_CONTEXTS_CLEAR_RESP );
   285         GPDS_CONTEXTS_CLEAR_RESP );
   286 
   286 
   287     aPhoNetReceiver->RegisterL( callMessHandler, PN_CSD );
   287     aPhoNetReceiver->RegisterL( callMessHandler, PN_CSD );
   288 
   288 
   289     aPhoNetReceiver->RegisterL( callMessHandler, PN_PIPE, PNS_PIPE_CREATE_RESP );
   289     aPhoNetReceiver->RegisterL( callMessHandler, PN_PIPE, PNS_PIPE_CREATE_RESP );
       
   290     aPhoNetReceiver->RegisterL( callMessHandler, PN_PIPE, PNS_PIPE_ENABLE_RESP );
   290 
   291 
   291     callMessHandler->iDtmfMessHandler = aDtmfMessHandler;
   292     callMessHandler->iDtmfMessHandler = aDtmfMessHandler;
   292     CleanupStack::Pop( callMessHandler );
   293     CleanupStack::Pop( callMessHandler );
   293 
   294 
   294     return callMessHandler;
   295     return callMessHandler;
   300 // -----------------------------------------------------------------------------
   301 // -----------------------------------------------------------------------------
   301 //
   302 //
   302 CMmCallMessHandler::~CMmCallMessHandler()
   303 CMmCallMessHandler::~CMmCallMessHandler()
   303     {
   304     {
   304 TFLOGSTRING("TSY: CMmCallMessHandler::~CMmCallMessHandler");
   305 TFLOGSTRING("TSY: CMmCallMessHandler::~CMmCallMessHandler");
   305 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CMMCALLMESSHANDLER, "CMmCallMessHandler::~CMmCallMessHandler" );
   306 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CMMCALLMESSHANDLER_TD, "CMmCallMessHandler::~CMmCallMessHandler" );
   306 
   307 
   307     if ( KInvalidPipeHandle != iPipeHandle )
   308     if ( KInvalidPipeHandle != iPipeHandle )
   308         {
   309         {
   309         // error ignored
   310         // error ignored
   310         PnsPipeRemoveReq();
   311         PnsPipeRemoveReq();
   330     {
   331     {
   331     TInt resource (aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ));
   332     TInt resource (aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ));
   332     TInt messageId(aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ));
   333     TInt messageId(aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ));
   333 
   334 
   334 TFLOGSTRING3("TSY: CMmCallMessHandler::ReceiveMessageL. Resource:%d. MsgId:%d", resource, messageId);
   335 TFLOGSTRING3("TSY: CMmCallMessHandler::ReceiveMessageL. Resource:%d. MsgId:%d", resource, messageId);
   335 OstTraceExt2( TRACE_NORMAL, CMMCALLMESSHANDLER_RECEIVEMESSAGEL, "CMmCallMessHandler::ReceiveMessageL;resource=%d;messageId=%d", resource, messageId );
   336 OstTraceExt2( TRACE_NORMAL,  CMMCALLMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCallMessHandler::ReceiveMessageL;resource=%d;messageId=%d", resource, messageId );
   336 
   337 
   337     // Switch according to the resource
   338     // Switch according to the resource
   338     switch ( resource )
   339     switch ( resource )
   339         {
   340         {
   340         // Call server messages
   341         // Call server messages
   370                     {
   371                     {
   371                     TUint8 transactId( aIsiMessage.Get8bit(
   372                     TUint8 transactId( aIsiMessage.Get8bit(
   372                         ISI_HEADER_OFFSET_TRANSID ) );
   373                         ISI_HEADER_OFFSET_TRANSID ) );
   373 
   374 
   374 TFLOGSTRING2("TSY: CMmCallMessHandler::ReceiveMessageL. CALL_MODEM_PROPERTY_SET_RESP. transactId:%d",transactId);
   375 TFLOGSTRING2("TSY: CMmCallMessHandler::ReceiveMessageL. CALL_MODEM_PROPERTY_SET_RESP. transactId:%d",transactId);
   375 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_RECEIVEMESSAGEL, "CMmCallMessHandler::ReceiveMessageL. CALL_MODEM_PROPERTY_SET_RESP. transactId=%hhu", transactId );
   376 OstTraceExt1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCallMessHandler::ReceiveMessageL. CALL_MODEM_PROPERTY_SET_RESP. transactId=%hhu", transactId );
   376 
   377 
   377                     if ( KCallTransId == transactId )
   378                     if ( KCallTransId == transactId )
   378                         {
   379                         {
   379                         CallPropertySetResp( aIsiMessage );
   380                         CallPropertySetResp( aIsiMessage );
   380                         }
   381                         }
   418                 default:
   419                 default:
   419                     {
   420                     {
   420                     // Needed because call server messages are also handled
   421                     // Needed because call server messages are also handled
   421                     // by DTMF and conference call message handlers
   422                     // by DTMF and conference call message handlers
   422 TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_MODEM_CALL, switch messageId - default.\n" );
   423 TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_MODEM_CALL, switch messageId - default.\n" );
   423 OstTrace0( TRACE_NORMAL, DUP5_CMMCALLMESSHANDLER_RECEIVEMESSAGEL, "CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_MODEM_CALL, switch messageId - default.\n" );
   424 OstTrace0( TRACE_NORMAL,  DUP5_CMMCALLMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_MODEM_CALL, switch messageId - default.\n" );
   424                     break;
   425                     break;
   425                     }
   426                     }
   426                 }
   427                 }
   427             break;
   428             break;
   428             }
   429             }
   475                     break;
   476                     break;
   476                     }
   477                     }
   477                 default:
   478                 default:
   478                     {
   479                     {
   479 TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_CSD, switch messageId - default.\n" );
   480 TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_CSD, switch messageId - default.\n" );
   480 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_RECEIVEMESSAGEL, "CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_CSD, switch messageId - default." );
   481 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_CSD, switch messageId - default." );
   481                     break;
   482                     break;
   482                     }
   483                     }
   483                 }
   484                 }
   484             break;
   485             break;
   485             }
   486             }
   491                 case PNS_PIPE_CREATE_RESP:
   492                 case PNS_PIPE_CREATE_RESP:
   492                     {
   493                     {
   493                     PnsPipeCreateResp( aIsiMessage );
   494                     PnsPipeCreateResp( aIsiMessage );
   494                     break;
   495                     break;
   495                     }
   496                     }
   496                 default:
   497                 case PNS_PIPE_ENABLE_RESP:
   497                     {
   498                     {
   498 TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_PIPE, switch messageId - default.\n" );
   499                     PnsPipeEnableResp( aIsiMessage );
   499 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_RECEIVEMESSAGEL, "CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_PIPE, switch messageId - default.\n" );
       
   500                     break;
   500                     break;
   501                     }
   501                     }
       
   502                 default:
       
   503                     {
       
   504 TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_PIPE, switch messageId - default.\n" );
       
   505 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCallMessHandler::ReceiveMessageL, switch resource - case PN_PIPE, switch messageId - default.\n" );
       
   506                     break;
       
   507                     }
   502                 }
   508                 }
   503             break;
   509             break;
   504             }
   510             }
   505         default:
   511         default:
   506             {
   512             {
   507 TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - default.\n" );
   513 TFLOGSTRING("TSY: CMmCallMessHandler::ReceiveMessageL, switch resource - default.\n" );
   508 OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_RECEIVEMESSAGEL, "CMmCallMessHandler::ReceiveMessageL, switch resource - default.\n" );
   514 OstTrace0( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCallMessHandler::ReceiveMessageL, switch resource - default.\n" );
   509             break;
   515             break;
   510             }
   516             }
   511         }
   517         }
   512     }
   518     }
   513 
   519 
   520 TInt CMmCallMessHandler::ExtFuncL(
   526 TInt CMmCallMessHandler::ExtFuncL(
   521     TInt aIpc,
   527     TInt aIpc,
   522     const CMmDataPackage* aDataPackage )
   528     const CMmDataPackage* aDataPackage )
   523     {
   529     {
   524 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL - aIpc: %d", aIpc );
   530 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL - aIpc: %d", aIpc );
   525 OstTrace1( TRACE_NORMAL, CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL;aIpc=%d", aIpc );
   531 OstTrace1( TRACE_NORMAL,  CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL;aIpc=%d", aIpc );
   526 
   532 
   527     TInt ret( KErrNone );
   533     TInt ret( KErrNone );
   528     TUint8 messageId( 0 );
   534     TUint8 messageId( 0 );
   529     TUint8 isiCallId( 0 );
   535     TUint8 isiCallId( 0 );
   530     TInt callId( KSymbianCallIdNone );
   536     TInt callId( KSymbianCallIdNone );
   548         // call ID or call mode. CCallDataPackage is used in case of normal call.
   554         // call ID or call mode. CCallDataPackage is used in case of normal call.
   549         if ( EMobileCallDialEmergencyCall != aIpc )
   555         if ( EMobileCallDialEmergencyCall != aIpc )
   550             {
   556             {
   551             callData->GetCallIdAndMode( callId, callMode );
   557             callData->GetCallIdAndMode( callId, callMode );
   552 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL. CallMode:%d", callMode );
   558 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL. CallMode:%d", callMode );
   553 OstTrace1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL;callMode=%d", callMode );
   559 OstTrace1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL;callMode=%d", callMode );
   554             }
   560             }
   555 
   561 
   556         if ( KSymbianCallIdNone == callId )
   562         if ( KSymbianCallIdNone == callId )
   557             {
   563             {
   558             dosCallId = CALL_MODEM_ID_NONE;
   564             dosCallId = CALL_MODEM_ID_NONE;
   574             {
   580             {
   575             case EMobileCallDialEmergencyCall:
   581             case EMobileCallDialEmergencyCall:
   576                 {
   582                 {
   577                 aDataPackage->UnPackData( iTelEmergNumber );
   583                 aDataPackage->UnPackData( iTelEmergNumber );
   578 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL - emergency dial number is %S", &iTelEmergNumber);
   584 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL - emergency dial number is %S", &iTelEmergNumber);
   579 OstTraceExt1( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - emergency dial number is=%S", iTelEmergNumber );
   585 OstTraceExt1( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - emergency dial number is=%S", iTelEmergNumber );
   580 #ifdef NCP_COMMON_HSDPA_EMERGCALL_WORKAROUND
   586 #ifdef NCP_COMMON_HSDPA_EMERGCALL_WORKAROUND
   581                 if ( iHSDPADisabledInPp )
   587                 if ( iHSDPADisabledInPp )
   582                     {
   588                     {
   583                     // HSPDA is disabled in PP; no need to delay the emergency
   589                     // HSPDA is disabled in PP; no need to delay the emergency
   584                     // call setup.
   590                     // call setup.
   596                 else
   602                 else
   597                     {
   603                     {
   598                     // Destroy all data connections before attempting emergency
   604                     // Destroy all data connections before attempting emergency
   599                     // call. The call will be set up in GpdsContextsClearResp.
   605                     // call. The call will be set up in GpdsContextsClearResp.
   600 TFLOGSTRING( "TSY: CMmCallMessHandler::ExtFuncL - HSDPA workaround. Emergency call delayed, data connections have to be closed first." );
   606 TFLOGSTRING( "TSY: CMmCallMessHandler::ExtFuncL - HSDPA workaround. Emergency call delayed, data connections have to be closed first." );
   601 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - HSDPA workaround. Emergency call delayed, data connections have to be closed first." );
   607 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - HSDPA workaround. Emergency call delayed, data connections have to be closed first." );
   602                     iEmergCallDelayed = ETrue;
   608                     iEmergCallDelayed = ETrue;
   603                     GpdsContextsClearReq();
   609                     GpdsContextsClearReq();
   604                     }
   610                     }
   605 #endif //NCP_COMMON_HSDPA_EMERGCALL_WORKAROUND
   611 #endif //NCP_COMMON_HSDPA_EMERGCALL_WORKAROUND
   606                 break;
   612                 break;
   659 
   665 
   660                     if ( RMmCustomAPI::KETelCustomExtCustomCallParamsV3 ==
   666                     if ( RMmCustomAPI::KETelCustomExtCustomCallParamsV3 ==
   661                             recentCallParams.ExtensionId() )
   667                             recentCallParams.ExtensionId() )
   662                         {
   668                         {
   663 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - Custom API call params in use ");
   669 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - Custom API call params in use ");
   664 OstTrace0( TRACE_NORMAL, DUP7_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - Custom API call params in use" );
   670 OstTrace0( TRACE_NORMAL,  DUP7_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - Custom API call params in use" );
   665 
   671 
   666                         // Unpack custom call parameters
   672                         // Unpack custom call parameters
   667                         RMmCustomAPI::TCustomCallParamsPckg* customparamsPckgV1(
   673                         RMmCustomAPI::TCustomCallParamsPckg* customparamsPckgV1(
   668                             reinterpret_cast<RMmCustomAPI::TCustomCallParamsPckg*>
   674                             reinterpret_cast<RMmCustomAPI::TCustomCallParamsPckg*>
   669                                 ( paramsPckgV1 ) );
   675                                 ( paramsPckgV1 ) );
   675                         }
   681                         }
   676 #if ( NCP_COMMON_S60_VERSION_SUPPORT >= S60_VERSION_50 )
   682 #if ( NCP_COMMON_S60_VERSION_SUPPORT >= S60_VERSION_50 )
   677                     else if ( RMobileCall::KETelMobileCallParamsV7 == recentCallParams.ExtensionId() )
   683                     else if ( RMobileCall::KETelMobileCallParamsV7 == recentCallParams.ExtensionId() )
   678                         {
   684                         {
   679 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - V7 call params in use ");
   685 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - V7 call params in use ");
   680 OstTrace0( TRACE_NORMAL, DUP8_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - V7 call params in use" );
   686 OstTrace0( TRACE_NORMAL,  DUP8_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - V7 call params in use" );
   681 
   687 
   682                         RMobileCall::TMobileCallParamsV7Pckg* paramsPckgV7(
   688                         RMobileCall::TMobileCallParamsV7Pckg* paramsPckgV7(
   683                             reinterpret_cast<RMobileCall::TMobileCallParamsV7Pckg*>
   689                             reinterpret_cast<RMobileCall::TMobileCallParamsV7Pckg*>
   684                                 ( callParams ) );
   690                                 ( callParams ) );
   685 
   691 
   692 
   698 
   693                         // Prevent FDN check if call is SIM originated (SET UP CALL)
   699                         // Prevent FDN check if call is SIM originated (SET UP CALL)
   694                         if ( RMobileCall::EOriginatorSIM == recentCallParamsV7.iCallParamOrigin )
   700                         if ( RMobileCall::EOriginatorSIM == recentCallParamsV7.iCallParamOrigin )
   695                             {
   701                             {
   696 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - iNoFdnCheck = ETrue");
   702 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - iNoFdnCheck = ETrue");
   697 OstTrace0( TRACE_NORMAL, DUP9_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - iNoFdnCheck = ETrue" );
   703 OstTrace0( TRACE_NORMAL,  DUP9_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - iNoFdnCheck = ETrue" );
   698                             iNoFdnCheck = ETrue;
   704                             iNoFdnCheck = ETrue;
   699                             }
   705                             }
   700                         else
   706                         else
   701                             {
   707                             {
   702 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - iNoFdnCheck = EFalse");
   708 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - iNoFdnCheck = EFalse");
   703 OstTrace0( TRACE_NORMAL, DUP10_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - iNoFdnCheck = EFalse" );
   709 OstTrace0( TRACE_NORMAL,  DUP10_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - iNoFdnCheck = EFalse" );
   704                             iNoFdnCheck = EFalse;
   710                             iNoFdnCheck = EFalse;
   705                             }
   711                             }
   706                         }
   712                         }
   707 #endif
   713 #endif
   708                     else
   714                     else
   710                         iSubAddress.Zero();
   716                         iSubAddress.Zero();
   711                         iBearer.Zero();
   717                         iBearer.Zero();
   712                         }
   718                         }
   713 
   719 
   714 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL - Cug explicit invoked: %d", recentCallParams.iCug.iExplicitInvoke );
   720 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL - Cug explicit invoked: %d", recentCallParams.iCug.iExplicitInvoke );
   715 OstTrace1( TRACE_NORMAL, DUP5_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - Cug explicit invoked: %d", recentCallParams.iCug.iExplicitInvoke );
   721 OstTrace1( TRACE_NORMAL,  DUP5_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - Cug explicit invoked: %d", recentCallParams.iCug.iExplicitInvoke );
   716                     // if CUG is explicitly invoked by
   722                     // if CUG is explicitly invoked by
   717                     // the other entries in this structure will be filled in
   723                     // the other entries in this structure will be filled in
   718                     // function CallPropertySetReq.
   724                     // function CallPropertySetReq.
   719                     if ( recentCallParams.iCug.iExplicitInvoke )
   725                     if ( recentCallParams.iCug.iExplicitInvoke )
   720                         {
   726                         {
   725 
   731 
   726                         CallPropertySetReq( &callReq, callData );
   732                         CallPropertySetReq( &callReq, callData );
   727                         }
   733                         }
   728                     else
   734                     else
   729                         {
   735                         {
   730     //                    RMobileCall::TMobileCallParamsV1Pckg* callParams( NULL );
       
   731     //                    RMobileCall::TMobileCallInfoV1* callInfo( NULL );
       
   732     //                    aDataPackage->UnPackData( &callParams, &callInfo );
       
   733                         iTelNumber = callInfo->iDialledParty.iTelNumber;
   736                         iTelNumber = callInfo->iDialledParty.iTelNumber;
   734 TFLOGSTRING2("TSY: CMmCallMessHandlerExtFuncL - iTelNumber: %S", &iTelNumber);
   737 TFLOGSTRING2("TSY: CMmCallMessHandlerExtFuncL - iTelNumber: %S", &iTelNumber);
   735 OstTraceExt1( TRACE_NORMAL, DUP6_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - iTelNumber=%s", iTelNumber );
   738 OstTraceExt1( TRACE_NORMAL,  DUP6_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - iTelNumber=%s", iTelNumber );
   736                         iIdRestrict = recentCallParams.iIdRestrict;
   739                         iIdRestrict = recentCallParams.iIdRestrict;
   737 
   740 
   738                         CallCreateReq();
   741                         CallCreateReq();
   739                         callCreatedAlready = ETrue;
   742                         callCreatedAlready = ETrue;
   740                         // Reset information
   743                         // Reset information
   852                 break;
   855                 break;
   853                 }
   856                 }
   854             case ESatNotifySetUpCallPCmd:
   857             case ESatNotifySetUpCallPCmd:
   855                 {
   858                 {
   856 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - ESatNotifySetUpCallPCmd");
   859 TFLOGSTRING("TSY: CMmCallMessHandler::ExtFuncL - ESatNotifySetUpCallPCmd");
   857 OstTrace0( TRACE_NORMAL, DUP11_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL - ESatNotifySetUpCallPCmd" );
   860 OstTrace0( TRACE_NORMAL,  DUP11_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL - ESatNotifySetUpCallPCmd" );
   858                 iResourceControlSuppress = ETrue;
   861                 iResourceControlSuppress = ETrue;
   859                 ret = KErrNone;
   862                 ret = KErrNone;
   860                 break;
   863                 break;
   861                 }
   864                 }
   862             default:
   865             default:
   863                 {
   866                 {
   864 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL - Unknown IPC: %d", aIpc);
   867 TFLOGSTRING2("TSY: CMmCallMessHandler::ExtFuncL - Unknown IPC: %d", aIpc);
   865 OstTrace1( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_EXTFUNCL, "CMmCallMessHandler::ExtFuncL; - Unknown IPC=%d", aIpc );
   868 OstTrace1( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_EXTFUNCL_TD, "CMmCallMessHandler::ExtFuncL; - Unknown IPC=%d", aIpc );
   866                 ret = KErrNotSupported;
   869                 ret = KErrNotSupported;
   867                 break;
   870                 break;
   868                 }
   871                 }
   869             }
   872             }
   870 
   873 
   907 void CMmCallMessHandler::CallPropertySetReq(
   910 void CMmCallMessHandler::CallPropertySetReq(
   908     TIsiSend* aCallReq,
   911     TIsiSend* aCallReq,
   909     const CCallDataPackage* aDataPackage )
   912     const CCallDataPackage* aDataPackage )
   910     {
   913     {
   911 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetReq");
   914 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetReq");
   912 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLPROPERTYSETREQ, "CMmCallMessHandler::CallPropertySetReq" );
   915 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLPROPERTYSETREQ_TD, "CMmCallMessHandler::CallPropertySetReq" );
   913 
   916 
   914     RMobileCall::TMobileCallParamsV1Pckg* callParams( NULL );
   917     RMobileCall::TMobileCallParamsV1Pckg* callParams( NULL );
   915     RMobileCall::TMobileCallInfoV1* callInfo( NULL );
   918     RMobileCall::TMobileCallInfoV1* callInfo( NULL );
   916     aDataPackage->UnPackData( &callParams, &callInfo );
   919     aDataPackage->UnPackData( &callParams, &callInfo );
   917 
   920 
   925     TInt cugIndex( recentCallParams.iCug.iCugIndex );
   928     TInt cugIndex( recentCallParams.iCug.iCugIndex );
   926 
   929 
   927     aCallReq->Set8bit( ISI_HEADER_SIZE + CALL_MODEM_PROPERTY_SET_REQ_OFFSET_SUBBLOCKS, 2 );
   930     aCallReq->Set8bit( ISI_HEADER_SIZE + CALL_MODEM_PROPERTY_SET_REQ_OFFSET_SUBBLOCKS, 2 );
   928 
   931 
   929 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetReq - Call Property Info sub block ");
   932 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetReq - Call Property Info sub block ");
   930 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLPROPERTYSETREQ, "CMmCallMessHandler::CallPropertySetReq - Call Property Info sub block" );
   933 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLPROPERTYSETREQ_TD, "CMmCallMessHandler::CallPropertySetReq - Call Property Info sub block" );
   931 
   934 
   932     // Initialize message offset
   935     // Initialize message offset
   933     TInt currentMsgOffset(
   936     TInt currentMsgOffset(
   934         ISI_HEADER_SIZE + CALL_MODEM_PROPERTY_SET_REQ_OFFSET_PROPERTYINFO );
   937         ISI_HEADER_SIZE + CALL_MODEM_PROPERTY_SET_REQ_OFFSET_PROPERTYINFO );
   935 
   938 
   948 
   951 
   949     // Set new offset
   952     // Set new offset
   950     currentMsgOffset = currentMsgOffset + SIZE_CALL_MODEM_SB_PROPERTY_INFO;
   953     currentMsgOffset = currentMsgOffset + SIZE_CALL_MODEM_SB_PROPERTY_INFO;
   951 
   954 
   952 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetReq - Call Modem Cug Info sub block ");
   955 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetReq - Call Modem Cug Info sub block ");
   953 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_CALLPROPERTYSETREQ, "CMmCallMessHandler::CallPropertySetReq - Call Modem Cug Info sub block" );
   956 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_CALLPROPERTYSETREQ_TD, "CMmCallMessHandler::CallPropertySetReq - Call Modem Cug Info sub block" );
   954 
   957 
   955     // Create call GSM CUG info subblock
   958     // Create call GSM CUG info subblock
   956     TBuf8< SIZE_CALL_MODEM_SB_CUG_INFO > callGsmCugInfoBuf;
   959     TBuf8< SIZE_CALL_MODEM_SB_CUG_INFO > callGsmCugInfoBuf;
   957     TIsiSubBlock callGsmCugInfoSb(
   960     TIsiSubBlock callGsmCugInfoSb(
   958         callGsmCugInfoBuf,
   961         callGsmCugInfoBuf,
   982         {
   985         {
   983         callGsmCugInfoBuf.Append( CALL_MODEM_CUG_OA_SUPPRESS );
   986         callGsmCugInfoBuf.Append( CALL_MODEM_CUG_OA_SUPPRESS );
   984         }
   987         }
   985 
   988 
   986 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetReq - Cug Index copy 16 to 8 ");
   989 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetReq - Cug Index copy 16 to 8 ");
   987 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_CALLPROPERTYSETREQ, "CMmCallMessHandler::CallPropertySetReq - Cug Index copy 16 to 8" );
   990 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_CALLPROPERTYSETREQ_TD, "CMmCallMessHandler::CallPropertySetReq - Cug Index copy 16 to 8" );
   988 
   991 
   989     callGsmCugInfoBuf.Append( static_cast<TUint8>( cugIndex >> KShiftByOneByte ) );
   992     callGsmCugInfoBuf.Append( static_cast<TUint8>( cugIndex >> KShiftByOneByte ) );
   990     callGsmCugInfoBuf.Append( static_cast<TUint8>( cugIndex ) );
   993     callGsmCugInfoBuf.Append( static_cast<TUint8>( cugIndex ) );
   991 
   994 
   992     callGsmCugInfoBuf.Append( KCallPadding );
   995     callGsmCugInfoBuf.Append( KCallPadding );
   997         currentMsgOffset,
  1000         currentMsgOffset,
   998         callGsmCugInfoSb.CompleteSubBlock() );
  1001         callGsmCugInfoSb.CompleteSubBlock() );
   999 
  1002 
  1000     iTelNumber = callInfo->iDialledParty.iTelNumber;
  1003     iTelNumber = callInfo->iDialledParty.iTelNumber;
  1001 TFLOGSTRING2("TSY: CMmCallMessHandler::CallPropertySetReq - iTelNumber: %S", &iTelNumber);
  1004 TFLOGSTRING2("TSY: CMmCallMessHandler::CallPropertySetReq - iTelNumber: %S", &iTelNumber);
  1002 OstTraceExt1( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_CALLPROPERTYSETREQ, "CMmCallMessHandler::CallPropertySetReq - iTelNumber=%S", iTelNumber );
  1005 OstTraceExt1( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_CALLPROPERTYSETREQ_TD, "CMmCallMessHandler::CallPropertySetReq - iTelNumber=%S", iTelNumber );
  1003     iIdRestrict = recentCallParams.iIdRestrict;
  1006     iIdRestrict = recentCallParams.iIdRestrict;
  1004     }
  1007     }
  1005 
  1008 
  1006 // -----------------------------------------------------------------------------
  1009 // -----------------------------------------------------------------------------
  1007 // CMmCallMessHandler::CallPropertySetResp
  1010 // CMmCallMessHandler::CallPropertySetResp
  1014 //
  1017 //
  1015 void CMmCallMessHandler::CallPropertySetResp(
  1018 void CMmCallMessHandler::CallPropertySetResp(
  1016     const TIsiReceiveC &aIsiMessage )
  1019     const TIsiReceiveC &aIsiMessage )
  1017     {
  1020     {
  1018 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetResp");
  1021 TFLOGSTRING("TSY: CMmCallMessHandler::CallPropertySetResp");
  1019 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLPROPERTYSETRESP, "CMmCallMessHandler::CallPropertySetResp" );
  1022 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLPROPERTYSETRESP_TD, "CMmCallMessHandler::CallPropertySetResp" );
  1020 
  1023 
  1021     // Create call property get response
  1024     // Create call property get response
  1022     // if property set request fails, complete dial
  1025     // if property set request fails, complete dial
  1023 
  1026 
  1024     TUint sbStartOffSet( 0 );
  1027     TUint sbStartOffSet( 0 );
  1099 // -----------------------------------------------------------------------------
  1102 // -----------------------------------------------------------------------------
  1100 //
  1103 //
  1101 TInt CMmCallMessHandler::CallCreateReq()
  1104 TInt CMmCallMessHandler::CallCreateReq()
  1102     {
  1105     {
  1103 TFLOGSTRING("TSY: CMmCallMessHandler::CallCreateReq");
  1106 TFLOGSTRING("TSY: CMmCallMessHandler::CallCreateReq");
  1104 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLCREATEREQ, "CMmCallMessHandler::CallCreateReq" );
  1107 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLCREATEREQ_TD, "CMmCallMessHandler::CallCreateReq" );
  1105 
  1108 
  1106     TIsiSend isimsg( iPhoNetSender->SendBufferDes() );
  1109     TIsiSend isimsg( iPhoNetSender->SendBufferDes() );
  1107     isimsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_MODEM_CALL );
  1110     isimsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_MODEM_CALL );
  1108     isimsg.Set8bit(
  1111     isimsg.Set8bit(
  1109         ISI_HEADER_SIZE + CALL_MODEM_CREATE_REQ_OFFSET_TRID,
  1112         ISI_HEADER_SIZE + CALL_MODEM_CREATE_REQ_OFFSET_TRID,
  1162 //
  1165 //
  1163 void CMmCallMessHandler::CallCreateResp(
  1166 void CMmCallMessHandler::CallCreateResp(
  1164     const TIsiReceiveC &aIsiMessage )
  1167     const TIsiReceiveC &aIsiMessage )
  1165     {
  1168     {
  1166 TFLOGSTRING("TSY: CMmCallMessHandler::CallCreateResp");
  1169 TFLOGSTRING("TSY: CMmCallMessHandler::CallCreateResp");
  1167 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLCREATERESP, "CMmCallMessHandler::CallCreateResp" );
  1170 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLCREATERESP_TD, "CMmCallMessHandler::CallCreateResp" );
  1168 
  1171 
  1169     TUint sbStartOffSet( 0 );
  1172     TUint sbStartOffSet( 0 );
  1170 
  1173 
  1171     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  1174     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  1172         ISI_HEADER_SIZE + SIZE_CALL_MODEM_CREATE_RESP,
  1175         ISI_HEADER_SIZE + SIZE_CALL_MODEM_CREATE_RESP,
  1310 //
  1313 //
  1311 void CMmCallMessHandler::EmergencyCallCreateReq(
  1314 void CMmCallMessHandler::EmergencyCallCreateReq(
  1312     TIsiSend* aCallReq )
  1315     TIsiSend* aCallReq )
  1313     {
  1316     {
  1314 TFLOGSTRING("TSY: CMmCallMessHandler::EmergencyCallCreateReq");
  1317 TFLOGSTRING("TSY: CMmCallMessHandler::EmergencyCallCreateReq");
  1315 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_EMERGENCYCALLCREATEREQ, "CMmCallMessHandler::EmergencyCallCreateReq" );
  1318 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_EMERGENCYCALLCREATEREQ_TD, "CMmCallMessHandler::EmergencyCallCreateReq" );
  1316 
  1319 
  1317     // (TAN) Save the call mode of the latest CALL_MODEM_CREATE_REQ. This is
  1320     // (TAN) Save the call mode of the latest CALL_MODEM_CREATE_REQ. This is
  1318     // used when CALL_MODEM_CREATE_RESP is received and message handler should
  1321     // used when CALL_MODEM_CREATE_RESP is received and message handler should
  1319     // be able to identify if the resp is emergency or speech call.
  1322     // be able to identify if the resp is emergency or speech call.
  1320     iCallMode = CALL_MODEM_MODE_EMERGENCY;
  1323     iCallMode = CALL_MODEM_MODE_EMERGENCY;
  1350 //
  1353 //
  1351 RMobileCall::TMobileCallStatus CMmCallMessHandler::MapCallStatus(
  1354 RMobileCall::TMobileCallStatus CMmCallMessHandler::MapCallStatus(
  1352     TUint8 aCallStatus )
  1355     TUint8 aCallStatus )
  1353     {
  1356     {
  1354 TFLOGSTRING("TSY: CMmCallMessHandler::MapCallStatus");
  1357 TFLOGSTRING("TSY: CMmCallMessHandler::MapCallStatus");
  1355 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_MAPCALLSTATUS, "CMmCallMessHandler::MapCallStatus" );
  1358 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_MAPCALLSTATUS_TD, "CMmCallMessHandler::MapCallStatus" );
  1356 
  1359 
  1357     RMobileCall::TMobileCallStatus symbianStatus( RMobileCall::EStatusUnknown );
  1360     RMobileCall::TMobileCallStatus symbianStatus( RMobileCall::EStatusUnknown );
  1358 
  1361 
  1359     switch ( aCallStatus )
  1362     switch ( aCallStatus )
  1360         {
  1363         {
  1440 //
  1443 //
  1441 void CMmCallMessHandler::CallAnswerResp(
  1444 void CMmCallMessHandler::CallAnswerResp(
  1442     const TIsiReceiveC &aIsiMessage )
  1445     const TIsiReceiveC &aIsiMessage )
  1443     {
  1446     {
  1444 TFLOGSTRING("TSY: CMmCallMessHandler::CallAnswerResp");
  1447 TFLOGSTRING("TSY: CMmCallMessHandler::CallAnswerResp");
  1445 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLANSWERRESP, "CMmCallMessHandler::CallAnswerResp" );
  1448 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLANSWERRESP_TD, "CMmCallMessHandler::CallAnswerResp" );
  1446 
  1449 
  1447     TUint sbStartOffSet( 0 );
  1450     TUint sbStartOffSet( 0 );
  1448 
  1451 
  1449     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  1452     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  1450         ISI_HEADER_SIZE + SIZE_CALL_MODEM_ANSWER_RESP,
  1453         ISI_HEADER_SIZE + SIZE_CALL_MODEM_ANSWER_RESP,
  1505 void CMmCallMessHandler::CallReleaseReq(
  1508 void CMmCallMessHandler::CallReleaseReq(
  1506     TIsiSend* aCallReq,
  1509     TIsiSend* aCallReq,
  1507     const CCallDataPackage* aDataPackage )
  1510     const CCallDataPackage* aDataPackage )
  1508     {
  1511     {
  1509 TFLOGSTRING("TSY: CMmCallMessHandler::CallReleaseReq");
  1512 TFLOGSTRING("TSY: CMmCallMessHandler::CallReleaseReq");
  1510 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLRELEASEREQ, "CMmCallMessHandler::CallReleaseReq" );
  1513 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLRELEASEREQ_TD, "CMmCallMessHandler::CallReleaseReq" );
  1511 
  1514 
  1512     TUint8 cause( KCallCauseNoCause );
  1515     TUint8 cause( KCallCauseNoCause );
  1513     TInt symbianCauseValue( KErrNone );
  1516     TInt symbianCauseValue( KErrNone );
  1514     TBool autoStChangeDisable( EFalse );
  1517     TBool autoStChangeDisable( EFalse );
  1515 
  1518 
  1600 //
  1603 //
  1601 void CMmCallMessHandler::CallReleaseResp(
  1604 void CMmCallMessHandler::CallReleaseResp(
  1602     const TIsiReceiveC &aIsiMessage )
  1605     const TIsiReceiveC &aIsiMessage )
  1603     {
  1606     {
  1604 TFLOGSTRING("TSY: CMmCallMessHandler::CallReleaseResp");
  1607 TFLOGSTRING("TSY: CMmCallMessHandler::CallReleaseResp");
  1605 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLRELEASERESP, "CMmCallMessHandler::CallReleaseResp" );
  1608 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLRELEASERESP_TD, "CMmCallMessHandler::CallReleaseResp" );
  1606 
  1609 
  1607     TUint8 causeType( 0 );
  1610     TUint8 causeType( 0 );
  1608     TUint8 causeValue( KCallCauseNoCause );
  1611     TUint8 causeValue( KCallCauseNoCause );
  1609 
  1612 
  1610     TUint sbStartOffSet( 0 );
  1613     TUint sbStartOffSet( 0 );
  1660 //
  1663 //
  1661 void CMmCallMessHandler::CallReleaseInd(
  1664 void CMmCallMessHandler::CallReleaseInd(
  1662     const TIsiReceiveC &aIsiMessage )
  1665     const TIsiReceiveC &aIsiMessage )
  1663     {
  1666     {
  1664 TFLOGSTRING("TSY: CMmCallMessHandler::CallReleaseInd");
  1667 TFLOGSTRING("TSY: CMmCallMessHandler::CallReleaseInd");
  1665 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLRELEASEIND, "CMmCallMessHandler::CallReleaseInd" );
  1668 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLRELEASEIND_TD, "CMmCallMessHandler::CallReleaseInd" );
  1666 
  1669 
  1667     TUint sbStartOffSet( 0 );
  1670     TUint sbStartOffSet( 0 );
  1668 
  1671 
  1669     // Get the releaseinfo from the ISI message
  1672     // Get the releaseinfo from the ISI message
  1670     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  1673     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  1709 //
  1712 //
  1710 void CMmCallMessHandler::CallTerminatedInd(
  1713 void CMmCallMessHandler::CallTerminatedInd(
  1711     const TIsiReceiveC &aIsiMessage )
  1714     const TIsiReceiveC &aIsiMessage )
  1712     {
  1715     {
  1713 TFLOGSTRING("TSY: CMmCallMessHandler::CallTerminatedInd");
  1716 TFLOGSTRING("TSY: CMmCallMessHandler::CallTerminatedInd");
  1714 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLTERMINATEDIND, "CMmCallMessHandler::CallTerminatedInd" );
  1717 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLTERMINATEDIND_TD, "CMmCallMessHandler::CallTerminatedInd" );
  1715 
  1718 
  1716     TUint sbStartOffSet( 0 );
  1719     TUint sbStartOffSet( 0 );
  1717 
  1720 
  1718     // Get the GSM MM cause from the ISI message
  1721     // Get the GSM MM cause from the ISI message
  1719     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  1722     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  1743         CALL_DSAC_INFO,
  1746         CALL_DSAC_INFO,
  1744         EIsiSubBlockTypeId8Len8,
  1747         EIsiSubBlockTypeId8Len8,
  1745         sbStartOffSet ) )
  1748         sbStartOffSet ) )
  1746         {
  1749         {
  1747 TFLOGSTRING("TSY: CMmCallMessHandler::CallTerminatedInd, DSAC: call was rejected because of barred CS");
  1750 TFLOGSTRING("TSY: CMmCallMessHandler::CallTerminatedInd, DSAC: call was rejected because of barred CS");
  1748 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLTERMINATEDIND, "CMmCallMessHandler::CallTerminatedInd, DSAC: call was rejected because of barred CS" );
  1751 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLTERMINATEDIND_TD, "CMmCallMessHandler::CallTerminatedInd, DSAC: call was rejected because of barred CS" );
  1749         // Save error code. It is completed when CALL_STATUS_IND is received.
  1752         // Save error code. It is completed when CALL_STATUS_IND is received.
  1750         iGsmMmCauseError = CMmStaticUtility::EpocErrorCode(
  1753         iGsmMmCauseError = CMmStaticUtility::EpocErrorCode(
  1751             KErrGeneral, KErrGsmCSConnectionBarred );
  1754             KErrGeneral, KErrGsmCSConnectionBarred );
  1752         }
  1755         }
  1753 #endif // NCP_COMMON_CELLMO_BRANCH_SUPPORT == NCP_COMMON_CELLMO_BRANCH_0711
  1756 #endif // NCP_COMMON_CELLMO_BRANCH_SUPPORT == NCP_COMMON_CELLMO_BRANCH_0711
  1764      TIsiSend* aCallReq,
  1767      TIsiSend* aCallReq,
  1765      TInt aIpc ) const
  1768      TInt aIpc ) const
  1766     {
  1769     {
  1767 
  1770 
  1768 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlReq. Ipc:%d",aIpc);
  1771 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlReq. Ipc:%d",aIpc);
  1769 OstTrace1( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLCONTROLREQ, "CMmCallMessHandler::CallControlReq;aIpc=%d", aIpc );
  1772 OstTrace1( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLCONTROLREQ_TD, "CMmCallMessHandler::CallControlReq;aIpc=%d", aIpc );
  1770 
  1773 
  1771     TUint8 operation( 0 );
  1774     TUint8 operation( 0 );
  1772 
  1775 
  1773     switch ( aIpc )
  1776     switch ( aIpc )
  1774         {
  1777         {
  1798             break;
  1801             break;
  1799             }
  1802             }
  1800         default:
  1803         default:
  1801             {
  1804             {
  1802 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlReq - Unknown IPC: %d", aIpc);
  1805 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlReq - Unknown IPC: %d", aIpc);
  1803 OstTrace1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLCONTROLREQ, "CMmCallMessHandler::CallControlReq - Unknown aIpc=%d", aIpc );
  1806 OstTrace1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLCONTROLREQ_TD, "CMmCallMessHandler::CallControlReq - Unknown aIpc=%d", aIpc );
  1804             break;
  1807             break;
  1805             }
  1808             }
  1806         }
  1809         }
  1807 
  1810 
  1808     // Call operation sub block, no operation info used
  1811     // Call operation sub block, no operation info used
  1841     TIsiSend& aCallIsiMsg,
  1844     TIsiSend& aCallIsiMsg,
  1842     TUint8& aNumOfSbInMsg,
  1845     TUint8& aNumOfSbInMsg,
  1843     TInt& aCurrentMsgOffset )
  1846     TInt& aCurrentMsgOffset )
  1844     {
  1847     {
  1845 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock");
  1848 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock");
  1846 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock" );
  1849 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock" );
  1847 
  1850 
  1848     iDestPostAddressIncluded = EFalse;
  1851     iDestPostAddressIncluded = EFalse;
  1849 
  1852 
  1850     // CALL_MODEM_SB_MODE subblock
  1853     // CALL_MODEM_SB_MODE subblock
  1851     TBuf8<SIZE_CALL_MODEM_SB_MODE> callModeBuf;
  1854     TBuf8<SIZE_CALL_MODEM_SB_MODE> callModeBuf;
  1864     // Set new offset and increase subblock count
  1867     // Set new offset and increase subblock count
  1865     aCurrentMsgOffset = aCurrentMsgOffset + SIZE_CALL_MODEM_SB_MODE;
  1868     aCurrentMsgOffset = aCurrentMsgOffset + SIZE_CALL_MODEM_SB_MODE;
  1866     aNumOfSbInMsg++;
  1869     aNumOfSbInMsg++;
  1867 
  1870 
  1868 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_MODE CREATED");
  1871 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_MODE CREATED");
  1869     OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_MODE CREATED" );
  1872     OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_MODE CREATED" );
  1870 
  1873 
  1871     if ( CALL_MODEM_MODE_EMERGENCY == aMode && 0 < aTelNumber.Length() )
  1874     if ( CALL_MODEM_MODE_EMERGENCY == aMode && 0 < aTelNumber.Length() )
  1872         {
  1875         {
  1873         // Create destination address subblock. Size of data buffer
  1876         // Create destination address subblock. Size of data buffer
  1874         // "max length of destination address" + "message data"
  1877         // "max length of destination address" + "message data"
  1898         aCurrentMsgOffset =
  1901         aCurrentMsgOffset =
  1899             aCurrentMsgOffset + destinationAddressBuf.Length();
  1902             aCurrentMsgOffset + destinationAddressBuf.Length();
  1900         aNumOfSbInMsg++;
  1903         aNumOfSbInMsg++;
  1901 
  1904 
  1902 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_DESTINATION_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  1905 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_DESTINATION_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  1903 OstTraceExt1( TRACE_NORMAL, DUP17_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_SB_DESTINATION_ADDRESS - Subblock Count=%hhu", aNumOfSbInMsg );
  1906 OstTraceExt1( TRACE_NORMAL,  DUP17_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_SB_DESTINATION_ADDRESS - Subblock Count=%hhu", aNumOfSbInMsg );
  1904 
  1907 
  1905 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - emergDestAddress: %S", &aTelNumber);
  1908 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - emergDestAddress: %S", &aTelNumber);
  1906 OstTraceExt1( TRACE_NORMAL, DUP18_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock;emergDestAddress=%S", aTelNumber );
  1909 OstTraceExt1( TRACE_NORMAL,  DUP18_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock;emergDestAddress=%S", aTelNumber );
  1907 
  1910 
       
  1911         // Emergency number checking by Call Server is always disabled when
       
  1912         // call mode is set straight as emergency by the client.
       
  1913         TBuf8<SIZE_CALL_MODEM_SB_CHECK_INFO> checkInfoBuf;
       
  1914 
       
  1915         TIsiSubBlock checkInfoSb(
       
  1916             checkInfoBuf,
       
  1917             CALL_MODEM_SB_CHECK_INFO,
       
  1918             EIsiSubBlockTypeId8Len8 );
       
  1919 
       
  1920         checkInfoBuf.Append( CALL_MODEM_CHK_DISABLE_EMERG );
       
  1921         checkInfoBuf.Append( KCallPadding );
       
  1922 
       
  1923         aCallIsiMsg.CopyData(
       
  1924             aCurrentMsgOffset, checkInfoSb.CompleteSubBlock() );
       
  1925 
       
  1926         // Set new offset and increase subblock count
       
  1927         aCurrentMsgOffset =
       
  1928             aCurrentMsgOffset + checkInfoBuf.Length();
       
  1929         aNumOfSbInMsg++;
       
  1930 
       
  1931 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_CHECK_INFO - Subblock Count:  %d", aNumOfSbInMsg );
       
  1932 OstTraceExt1( TRACE_NORMAL,  DUP22_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock;aNumOfSbInMsg=%hhu", aNumOfSbInMsg );
  1908         }
  1933         }
  1909 
  1934 
  1910     else if ( CALL_MODEM_MODE_EMERGENCY != aMode && 0 < aTelNumber.Length() )
  1935     else if ( CALL_MODEM_MODE_EMERGENCY != aMode && 0 < aTelNumber.Length() )
  1911         {
  1936         {
  1912         // Get length of the given number
  1937         // Get length of the given number
  1913         TInt telNumLength( aTelNumber.Length() );
  1938         TInt telNumLength( aTelNumber.Length() );
  1914         TUint8 presentationInd( CALL_MODEM_PRESENT_DEFAULT );
  1939         TUint8 presentationInd( CALL_MODEM_PRESENT_DEFAULT );
  1915 
  1940 
  1916 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - aIdRestrict: %d", aIdRestrict);
  1941 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - aIdRestrict: %d", aIdRestrict);
  1917 OstTrace1( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock;aIdRestrict=%d", aIdRestrict );
  1942 OstTrace1( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock;aIdRestrict=%d", aIdRestrict );
  1918 
  1943 
  1919         if ( KTelephonyNumberMaxLength < telNumLength )
  1944         if ( KTelephonyNumberMaxLength < telNumLength )
  1920             {
  1945             {
  1921             telNumLength = KTelephonyNumberMaxLength;
  1946             telNumLength = KTelephonyNumberMaxLength;
  1922             }
  1947             }
  1965             // Set presentationInd based on prefix
  1990             // Set presentationInd based on prefix
  1966             if ( '*' == ( aTelNumber )[0] )
  1991             if ( '*' == ( aTelNumber )[0] )
  1967                 {
  1992                 {
  1968                 presentationInd = CALL_MODEM_PRESENT_ALLOWED;
  1993                 presentationInd = CALL_MODEM_PRESENT_ALLOWED;
  1969 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by PREFIX = CALL_MODEM_PRESENT_ALLOWED");
  1994 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by PREFIX = CALL_MODEM_PRESENT_ALLOWED");
  1970 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by PREFIX = CALL_MODEM_PRESENT_ALLOWED" );
  1995 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by PREFIX = CALL_MODEM_PRESENT_ALLOWED" );
  1971                 }
  1996                 }
  1972             else if ( '#' == ( aTelNumber )[0] )
  1997             else if ( '#' == ( aTelNumber )[0] )
  1973                 {
  1998                 {
  1974                 presentationInd = CALL_MODEM_PRESENT_RESTRICTED;
  1999                 presentationInd = CALL_MODEM_PRESENT_RESTRICTED;
  1975 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by PREFIX = CALL_MODEM_PRESENT_RESTRICTED");
  2000 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by PREFIX = CALL_MODEM_PRESENT_RESTRICTED");
  1976 OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by PREFIX = CALL_MODEM_PRESENT_RESTRICTED" );
  2001 OstTrace0( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by PREFIX = CALL_MODEM_PRESENT_RESTRICTED" );
  1977                 }
  2002                 }
  1978             }
  2003             }
  1979         else
  2004         else
  1980             {
  2005             {
  1981             // Set presentationInd based on aIdRestrict
  2006             // Set presentationInd based on aIdRestrict
  1983                 {
  2008                 {
  1984                 case RMobileCall::ESendMyId:
  2009                 case RMobileCall::ESendMyId:
  1985                     {
  2010                     {
  1986                     presentationInd = CALL_MODEM_PRESENT_ALLOWED; //0x01
  2011                     presentationInd = CALL_MODEM_PRESENT_ALLOWED; //0x01
  1987 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_ALLOWED");
  2012 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_ALLOWED");
  1988 OstTrace0( TRACE_NORMAL, DUP5_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_ALLOWED" );
  2013 OstTrace0( TRACE_NORMAL,  DUP5_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_ALLOWED" );
  1989                     break;
  2014                     break;
  1990                     }
  2015                     }
  1991                 case RMobileCall::EDontSendMyId:
  2016                 case RMobileCall::EDontSendMyId:
  1992                     {
  2017                     {
  1993                     presentationInd = CALL_MODEM_PRESENT_RESTRICTED; //0x02
  2018                     presentationInd = CALL_MODEM_PRESENT_RESTRICTED; //0x02
  1994 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_RESTRICTED");
  2019 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_RESTRICTED");
  1995 OstTrace0( TRACE_NORMAL, DUP6_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_RESTRICTED" );
  2020 OstTrace0( TRACE_NORMAL,  DUP6_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_RESTRICTED" );
  1996                     break;
  2021                     break;
  1997                     }
  2022                     }
  1998                 case RMobileCall::EIdRestrictDefault:
  2023                 case RMobileCall::EIdRestrictDefault:
  1999                 default:
  2024                 default:
  2000                     {
  2025                     {
  2001                     presentationInd = CALL_MODEM_PRESENT_DEFAULT; //0x00
  2026                     presentationInd = CALL_MODEM_PRESENT_DEFAULT; //0x00
  2002 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_DEFAULT");
  2027 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_DEFAULT");
  2003 OstTrace0( TRACE_NORMAL, DUP7_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_DEFAULT" );
  2028 OstTrace0( TRACE_NORMAL,  DUP7_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock -- presentationInd by aIdRestrict = CALL_MODEM_PRESENT_DEFAULT" );
  2004                     break;
  2029                     break;
  2005                     }
  2030                     }
  2006                 }
  2031                 }
  2007             }
  2032             }
  2008 
  2033 
  2009         if ( CALL_MODEM_PRESENT_DEFAULT != presentationInd )
  2034         if ( CALL_MODEM_PRESENT_DEFAULT != presentationInd )
  2010             {
  2035             {
  2011 
  2036 
  2012 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- Create line id sub block");
  2037 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- Create line id sub block");
  2013 OstTrace0( TRACE_NORMAL, DUP8_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock -- Create line id sub block" );
  2038 OstTrace0( TRACE_NORMAL,  DUP8_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock -- Create line id sub block" );
  2014 // Create CALL_MODEM_SB_LINE_ID subblock.
  2039 // Create CALL_MODEM_SB_LINE_ID subblock.
  2015 
  2040 
  2016             TBuf8<SIZE_CALL_MODEM_SB_LINE_ID> lineIdBuf( 0 );
  2041             TBuf8<SIZE_CALL_MODEM_SB_LINE_ID> lineIdBuf( 0 );
  2017             TIsiSubBlock lineIdSb(
  2042             TIsiSubBlock lineIdSb(
  2018                 lineIdBuf,
  2043                 lineIdBuf,
  2029             aCurrentMsgOffset =
  2054             aCurrentMsgOffset =
  2030                 aCurrentMsgOffset + lineIdBuf.Length();
  2055                 aCurrentMsgOffset + lineIdBuf.Length();
  2031             aNumOfSbInMsg++;
  2056             aNumOfSbInMsg++;
  2032 
  2057 
  2033 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_LINE_ID - Subblock Count:  %d", aNumOfSbInMsg );
  2058 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_LINE_ID - Subblock Count:  %d", aNumOfSbInMsg );
  2034 OstTrace1( TRACE_NORMAL, DUP19_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_LINE_ID - Subblock Count:%d", aNumOfSbInMsg );
  2059 OstTrace1( TRACE_NORMAL,  DUP19_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_LINE_ID - Subblock Count:%d", aNumOfSbInMsg );
  2035 
  2060 
  2036             }
  2061             }
  2037         // No else
  2062         // No else
  2038 
  2063 
  2039         // Check if there is post address
  2064         // Check if there is post address
  2096         aCurrentMsgOffset =
  2121         aCurrentMsgOffset =
  2097             aCurrentMsgOffset + destinationAddressBuf.Length();
  2122             aCurrentMsgOffset + destinationAddressBuf.Length();
  2098         aNumOfSbInMsg++;
  2123         aNumOfSbInMsg++;
  2099 
  2124 
  2100 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_DESTINATION_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  2125 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_DESTINATION_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  2101 OstTraceExt1( TRACE_NORMAL, DUP10_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_SB_DESTINATION_ADDRESS - Subblock Count=%hhu", aNumOfSbInMsg );
  2126 OstTraceExt1( TRACE_NORMAL,  DUP10_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_SB_DESTINATION_ADDRESS - Subblock Count=%hhu", aNumOfSbInMsg );
  2102 
  2127 
  2103 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - destAddress: %S", &destAddress);
  2128 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - destAddress: %S", &destAddress);
  2104 OstTraceExt1( TRACE_NORMAL, DUP16_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock;destAddress=%S", destAddress );
  2129 OstTraceExt1( TRACE_NORMAL,  DUP16_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock;destAddress=%S", destAddress );
  2105 
  2130 
  2106         if ( preAddressSupported )
  2131         if ( preAddressSupported )
  2107             {
  2132             {
  2108             // Pre address length can be KTelephonyNumberMaxLength
  2133             // Pre address length can be KTelephonyNumberMaxLength
  2109             TBuf16<KTelephonyNumberMaxLength> preAddress;
  2134             TBuf16<KTelephonyNumberMaxLength> preAddress;
  2134             aCurrentMsgOffset =
  2159             aCurrentMsgOffset =
  2135                 aCurrentMsgOffset + preAddressBuf.Length();
  2160                 aCurrentMsgOffset + preAddressBuf.Length();
  2136             aNumOfSbInMsg++;
  2161             aNumOfSbInMsg++;
  2137 
  2162 
  2138 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_DESTINATION_PRE_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  2163 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_DESTINATION_PRE_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  2139 OstTraceExt1( TRACE_NORMAL, DUP11_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_DESTINATION_PRE_ADDRESS - Subblock Count=%hhu", aNumOfSbInMsg );
  2164 OstTraceExt1( TRACE_NORMAL,  DUP11_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_DESTINATION_PRE_ADDRESS - Subblock Count=%hhu", aNumOfSbInMsg );
  2140             }
  2165             }
  2141         // No else
  2166         // No else
  2142 
  2167 
  2143         if ( postAddressSupported )
  2168         if ( postAddressSupported )
  2144             {
  2169             {
  2177 
  2202 
  2178             // Destination post address included
  2203             // Destination post address included
  2179             iDestPostAddressIncluded = ETrue;
  2204             iDestPostAddressIncluded = ETrue;
  2180 
  2205 
  2181 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock  - CALL_MODEM_DESTINATION_POST_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  2206 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock  - CALL_MODEM_DESTINATION_POST_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  2182 OstTraceExt1( TRACE_NORMAL, DUP14_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_DESTINATION_POST_ADDRESS - Subblock Count=%hhu", aNumOfSbInMsg );
  2207 OstTraceExt1( TRACE_NORMAL,  DUP14_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_DESTINATION_POST_ADDRESS - Subblock Count=%hhu", aNumOfSbInMsg );
  2183             }
  2208             }
  2184         // No else
  2209         // No else
  2185 
  2210 
  2186         // Subblock for user to user signaling (for skype service).
  2211         // Subblock for user to user signaling (for skype service).
  2187         if ( 0 < iUusData.iUUI.Length() && 0 != iUusData.iServiceReq )
  2212         if ( 0 < iUusData.iUUI.Length() && 0 != iUusData.iServiceReq )
  2188             {
  2213             {
  2189 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock. Creating sb for UUS signaling");
  2214 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock. Creating sb for UUS signaling");
  2190 OstTrace0( TRACE_NORMAL, DUP12_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock. Creating sb for UUS signaling" );
  2215 OstTrace0( TRACE_NORMAL,  DUP12_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock. Creating sb for UUS signaling" );
  2191 
  2216 
  2192             TBuf8<KUserToUserSbMaxLength> userToUserBuf;
  2217             TBuf8<KUserToUserSbMaxLength> userToUserBuf;
  2193             TBool validServiceType( ETrue );
  2218             TBool validServiceType( ETrue );
  2194 
  2219 
  2195             TIsiSubBlock userToUserSb(
  2220             TIsiSubBlock userToUserSb(
  2209                     }
  2234                     }
  2210                 default:
  2235                 default:
  2211                     {
  2236                     {
  2212                     validServiceType = EFalse;
  2237                     validServiceType = EFalse;
  2213 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock. switch UUS type case default. Illegal service req!");
  2238 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock. switch UUS type case default. Illegal service req!");
  2214 OstTrace0( TRACE_NORMAL, DUP13_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock. Switch UUS type case default. Illegal service req!" );
  2239 OstTrace0( TRACE_NORMAL,  DUP13_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock. Switch UUS type case default. Illegal service req!" );
  2215                     break;
  2240                     break;
  2216                     }
  2241                     }
  2217                 }
  2242                 }
  2218 
  2243 
  2219             // Creating subblock if service type was ok
  2244             // Creating subblock if service type was ok
  2237                 aCurrentMsgOffset = aCurrentMsgOffset + userToUserBuf.Length();
  2262                 aCurrentMsgOffset = aCurrentMsgOffset + userToUserBuf.Length();
  2238 
  2263 
  2239                 aNumOfSbInMsg++;
  2264                 aNumOfSbInMsg++;
  2240 
  2265 
  2241 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_USER_TO_USER - Subblock Count: %d", aNumOfSbInMsg );
  2266 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_USER_TO_USER - Subblock Count: %d", aNumOfSbInMsg );
  2242                 OstTraceExt1( TRACE_NORMAL, DUP15_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_SB_USER_TO_USER - Subblock Count=%hhu", aNumOfSbInMsg );
  2267                 OstTraceExt1( TRACE_NORMAL,  DUP15_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock- CALL_MODEM_SB_USER_TO_USER - Subblock Count=%hhu", aNumOfSbInMsg );
  2243                 }
  2268                 }
  2244 
  2269 
  2245             // Reset data
  2270             // Reset data
  2246             iUusData.iUUI.Zero();
  2271             iUusData.iUUI.Zero();
  2247             iUusData.iServiceReq = 0;
  2272             iUusData.iServiceReq = 0;
  2248             }
  2273             }
  2249 
  2274 
  2250         if ( iNoFdnDial || iNoFdnCheck )
  2275         if ( iNoFdnDial || iNoFdnCheck )
  2251             {
  2276             {
  2252 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- Create check info sub block");
  2277 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock -- Create check info sub block");
  2253 OstTrace0( TRACE_NORMAL, DUP9_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock -- Create check info sub block" );
  2278 OstTrace0( TRACE_NORMAL,  DUP9_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock -- Create check info sub block" );
  2254 
  2279 
  2255             // Create CALL_MODEM_SB_LINE_ID subblock.
  2280             // Create CALL_MODEM_SB_LINE_ID subblock.
  2256 
  2281 
  2257             TBuf8<SIZE_CALL_MODEM_SB_CHECK_INFO> checkInfoBuf( 0 );
  2282             TBuf8<SIZE_CALL_MODEM_SB_CHECK_INFO> checkInfoBuf( 0 );
  2258 
  2283 
  2271             aCurrentMsgOffset =
  2296             aCurrentMsgOffset =
  2272                             aCurrentMsgOffset + checkInfoBuf.Length();
  2297                             aCurrentMsgOffset + checkInfoBuf.Length();
  2273             aNumOfSbInMsg++;
  2298             aNumOfSbInMsg++;
  2274 
  2299 
  2275 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_CHECK_INFO - Subblock Count:  %d", aNumOfSbInMsg );
  2300 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_CHECK_INFO - Subblock Count:  %d", aNumOfSbInMsg );
  2276 OstTraceExt1( TRACE_NORMAL, DUP21_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_CHECK_INFO - Subblock Count=%hhu", aNumOfSbInMsg );
  2301 OstTraceExt1( TRACE_NORMAL,  DUP21_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock - CALL_MODEM_SB_CHECK_INFO - Subblock Count=%hhu", aNumOfSbInMsg );
  2277 
  2302 
  2278             }
  2303             }
  2279 
  2304 
  2280         if ( iResourceControlSuppress )
  2305         if ( iResourceControlSuppress )
  2281             {
  2306             {
  2282 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - suppressing resource control for this call");
  2307 TFLOGSTRING("TSY: CMmCallMessHandler::GetCallCreateReqSubBlock - suppressing resource control for this call");
  2283 OstTrace0( TRACE_NORMAL, DUP20_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK, "CMmCallMessHandler::GetCallCreateReqSubBlock - suppressing resource control for this call" );
  2308 OstTrace0( TRACE_NORMAL,  DUP20_CMMCALLMESSHANDLER_GETCALLCREATEREQSUBBLOCK_TD, "CMmCallMessHandler::GetCallCreateReqSubBlock - suppressing resource control for this call" );
  2284             TBuf8<SIZE_CALL_MODEM_SB_RESOURCE_CHECK_INFO> buffer;
  2309             TBuf8<SIZE_CALL_MODEM_SB_RESOURCE_CHECK_INFO> buffer;
  2285             TIsiSubBlock resourceCheckSb(
  2310             TIsiSubBlock resourceCheckSb(
  2286                 buffer,
  2311                 buffer,
  2287                 CALL_MODEM_SB_RESOURCE_CHECK_INFO,
  2312                 CALL_MODEM_SB_RESOURCE_CHECK_INFO,
  2288                 EIsiSubBlockTypeId8Len8 );
  2313                 EIsiSubBlockTypeId8Len8 );
  2311 //
  2336 //
  2312 void CMmCallMessHandler::CallControlResp(
  2337 void CMmCallMessHandler::CallControlResp(
  2313     const TIsiReceiveC &aIsiMessage ) const
  2338     const TIsiReceiveC &aIsiMessage ) const
  2314     {
  2339     {
  2315 TFLOGSTRING("TSY: CMmCallMessHandler::CallControlResp");
  2340 TFLOGSTRING("TSY: CMmCallMessHandler::CallControlResp");
  2316 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLCONTROLRESP, "CMmCallMessHandler::CallControlResp" );
  2341 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLCONTROLRESP_TD, "CMmCallMessHandler::CallControlResp" );
  2317 
  2342 
  2318     TUint sbStartOffSet( 0 );
  2343     TUint sbStartOffSet( 0 );
  2319 
  2344 
  2320     // Get call operation sub block
  2345     // Get call operation sub block
  2321     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  2346     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  2389                     }
  2414                     }
  2390                 case CALL_MODEM_OP_CONFERENCE_BUILD:
  2415                 case CALL_MODEM_OP_CONFERENCE_BUILD:
  2391                 default:
  2416                 default:
  2392                     {
  2417                     {
  2393 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlResp - Not supported operation: %d", operation);
  2418 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlResp - Not supported operation: %d", operation);
  2394 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLCONTROLRESP, "CMmCallMessHandler::CallControlResp - Not supported operation=%hhu", operation );
  2419 OstTraceExt1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLCONTROLRESP_TD, "CMmCallMessHandler::CallControlResp - Not supported operation=%hhu", operation );
  2395                     break;
  2420                     break;
  2396                     }
  2421                     }
  2397                 }
  2422                 }
  2398 
  2423 
  2399             // Complete the failed operation
  2424             // Complete the failed operation
  2434     TIsiSend& aCallIsiMsg,
  2459     TIsiSend& aCallIsiMsg,
  2435     TUint8& aNumOfSbInMsg,
  2460     TUint8& aNumOfSbInMsg,
  2436     TInt& aCurrentMsgOffset ) const
  2461     TInt& aCurrentMsgOffset ) const
  2437     {
  2462     {
  2438 TFLOGSTRING("TSY: CMmCallMessHandler::GetSatOriginatedSubBlocks");
  2463 TFLOGSTRING("TSY: CMmCallMessHandler::GetSatOriginatedSubBlocks");
  2439 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_GETSATORIGINATEDSUBBLOCKS, "TSY: CMmCallMessHandler::GetSatOriginatedSubBlocks" );
  2464 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_GETSATORIGINATEDSUBBLOCKS_TD, "TSY: CMmCallMessHandler::GetSatOriginatedSubBlocks" );
  2440 
  2465 
  2441     //Creates sub address sub block
  2466     //Creates sub address sub block
  2442     if ( 0 != iSubAddress.Length() )
  2467     if ( 0 != iSubAddress.Length() )
  2443         {
  2468         {
  2444         //Length of message data is max address length + message
  2469         //Length of message data is max address length + message
  2498     TIsiSend& aCallIsiMsg,
  2523     TIsiSend& aCallIsiMsg,
  2499     TUint8& aNumOfSbInMsg,
  2524     TUint8& aNumOfSbInMsg,
  2500     TInt& aCurrentMsgOffset ) const
  2525     TInt& aCurrentMsgOffset ) const
  2501     {
  2526     {
  2502 TFLOGSTRING("TSY: CMmCallMessHandler::GetSatOriginatedSubBlocks");
  2527 TFLOGSTRING("TSY: CMmCallMessHandler::GetSatOriginatedSubBlocks");
  2503 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_GETSATORIGINATEDSUBBLOCKS, "CMmCallMessHandler::GetSatOriginatedSubBlocks" );
  2528 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_GETSATORIGINATEDSUBBLOCKS_TD, "CMmCallMessHandler::GetSatOriginatedSubBlocks" );
  2504 
  2529 
  2505     // Creates sub address sub block
  2530     // Creates sub address sub block
  2506     if ( 0 != aSubAddress.Length() )
  2531     if ( 0 != aSubAddress.Length() )
  2507         {
  2532         {
  2508         // Length of message data is max address length + message
  2533         // Length of message data is max address length + message
  2576     TInt callId( static_cast<TInt>( aIsiMessage.Get8bit(
  2601     TInt callId( static_cast<TInt>( aIsiMessage.Get8bit(
  2577         ISI_HEADER_SIZE + CALL_MODEM_CONTROL_IND_OFFSET_CALLID )
  2602         ISI_HEADER_SIZE + CALL_MODEM_CONTROL_IND_OFFSET_CALLID )
  2578             & KMaskBits1to3 ) );
  2603             & KMaskBits1to3 ) );
  2579 
  2604 
  2580 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlInd, CallID: %d", callId);
  2605 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlInd, CallID: %d", callId);
  2581 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLCONTROLIND, "CMmCallMessHandler::CallControlInd" );
  2606 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLCONTROLIND_TD, "CMmCallMessHandler::CallControlInd" );
  2582 
  2607 
  2583     TUint8 callOperation( 0 );
  2608     TUint8 callOperation( 0 );
  2584     TUint sbStartOffSet( 0 );
  2609     TUint sbStartOffSet( 0 );
  2585 
  2610 
  2586     // Get call operation sub block
  2611     // Get call operation sub block
  2648                 break;
  2673                 break;
  2649                 }
  2674                 }
  2650             default:
  2675             default:
  2651                 {
  2676                 {
  2652 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlInd - Not supported operation: %d", operation);
  2677 TFLOGSTRING2("TSY: CMmCallMessHandler::CallControlInd - Not supported operation: %d", operation);
  2653 OstTrace1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLCONTROLIND, "CMmCallMessHandler::CallControlInd - Not supported operation=%d", operation );
  2678 OstTrace1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLCONTROLIND_TD, "CMmCallMessHandler::CallControlInd - Not supported operation=%d", operation );
  2654                 break;
  2679                 break;
  2655                 }
  2680                 }
  2656             }
  2681             }
  2657         CCallDataPackage callPackage;
  2682         CCallDataPackage callPackage;
  2658         callPackage.SetCallIdAndMode(
  2683         callPackage.SetCallIdAndMode(
  2698     TInt callId( static_cast<TInt>( aIsiMessage.Get8bit(
  2723     TInt callId( static_cast<TInt>( aIsiMessage.Get8bit(
  2699         ISI_HEADER_SIZE + CALL_MODEM_NOTIFICATION_IND_OFFSET_CALLID )
  2724         ISI_HEADER_SIZE + CALL_MODEM_NOTIFICATION_IND_OFFSET_CALLID )
  2700             & KMaskBits1to3 ) );
  2725             & KMaskBits1to3 ) );
  2701 
  2726 
  2702 TFLOGSTRING2("TSY: CMmCallMessHandler::CallGsmNotificationInd. CallId:%d",callId);
  2727 TFLOGSTRING2("TSY: CMmCallMessHandler::CallGsmNotificationInd. CallId:%d",callId);
  2703 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCallMessHandler::CallGsmNotificationInd" );
  2728 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCallMessHandler::CallGsmNotificationInd" );
  2704 
  2729 
  2705     CCallDataPackage callDataPackage;
  2730     CCallDataPackage callDataPackage;
  2706 
  2731 
  2707     TUint sbStartOffSet( 0 );
  2732     TUint sbStartOffSet( 0 );
  2708 
  2733 
  2901         CALL_MODEM_SB_ORIGIN_INFO,
  2926         CALL_MODEM_SB_ORIGIN_INFO,
  2902         EIsiSubBlockTypeId8Len8,
  2927         EIsiSubBlockTypeId8Len8,
  2903         sbStartOffSet ) )
  2928         sbStartOffSet ) )
  2904         {
  2929         {
  2905 TFLOGSTRING("TSY: CMmCallMessHandler::CallGsmNotificationInd: CALL_MODEM_SB_ORIGIN_INFO subblock");
  2930 TFLOGSTRING("TSY: CMmCallMessHandler::CallGsmNotificationInd: CALL_MODEM_SB_ORIGIN_INFO subblock");
  2906 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCallMessHandler::CallGsmNotificationInd - CALL_MODEM_SB_ORIGIN_INFO subblock" );
  2931 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCallMessHandler::CallGsmNotificationInd - CALL_MODEM_SB_ORIGIN_INFO subblock" );
  2907 
  2932 
  2908         TBuf16<RMobileCall::KCallingNameSize> targetOrigName;
  2933         TBuf16<RMobileCall::KCallingNameSize> targetOrigName;
  2909         CCallDataPackage callData;
  2934         CCallDataPackage callData;
  2910 
  2935 
  2911         // Update previously received incoming call info
  2936         // Update previously received incoming call info
  2956 void CMmCallMessHandler::FillModeData(
  2981 void CMmCallMessHandler::FillModeData(
  2957     RMobileCall::TMobileCallInfoV1& mobileCallInfo,
  2982     RMobileCall::TMobileCallInfoV1& mobileCallInfo,
  2958     TUint8 aIsiCallMode ) const
  2983     TUint8 aIsiCallMode ) const
  2959     {
  2984     {
  2960 TFLOGSTRING2("TSY: CMmCallMessHandler::FillModeData. callmode:%d",aIsiCallMode);
  2985 TFLOGSTRING2("TSY: CMmCallMessHandler::FillModeData. callmode:%d",aIsiCallMode);
  2961 OstTraceExt1( TRACE_NORMAL, CMMCALLMESSHANDLER_FILLMODEDATA, "CMmCallMessHandler::FillModeData;aIsiCallMode=%hhu", aIsiCallMode );
  2986 OstTraceExt1( TRACE_NORMAL,  CMMCALLMESSHANDLER_FILLMODEDATA_TD, "CMmCallMessHandler::FillModeData;aIsiCallMode=%hhu", aIsiCallMode );
  2962 
  2987 
  2963     // Set service and alternating call mode in iMobileCallInfo
  2988     // Set service and alternating call mode in iMobileCallInfo
  2964     mobileCallInfo.iAlternatingCall =
  2989     mobileCallInfo.iAlternatingCall =
  2965         RMobilePhone::EAlternatingModeUnspecified;
  2990         RMobilePhone::EAlternatingModeUnspecified;
  2966     mobileCallInfo.iService = RMobilePhone::EServiceUnspecified;
  2991     mobileCallInfo.iService = RMobilePhone::EServiceUnspecified;
  2994             break;
  3019             break;
  2995             }
  3020             }
  2996         default:
  3021         default:
  2997             {
  3022             {
  2998             TFLOGSTRING2("TSY: CMmCallMessHandler::FillModeData - Not supported ISA call mode: %d", aIsiCallMode);
  3023             TFLOGSTRING2("TSY: CMmCallMessHandler::FillModeData - Not supported ISA call mode: %d", aIsiCallMode);
  2999 OstTraceExt1( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_FILLMODEDATA, "CMmCallMessHandler::FillModeData - Not supported ISA call mode=%hhu", aIsiCallMode );
  3024 OstTraceExt1( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_FILLMODEDATA_TD, "CMmCallMessHandler::FillModeData - Not supported ISA call mode=%hhu", aIsiCallMode );
  3000             break;
  3025             break;
  3001             }
  3026             }
  3002         }
  3027         }
  3003     }
  3028     }
  3004 
  3029 
  3017     // Mask the nbrtype with 00001111 to get the number plan
  3042     // Mask the nbrtype with 00001111 to get the number plan
  3018     //(four least significant bits (1-4) contain numbering plan)
  3043     //(four least significant bits (1-4) contain numbering plan)
  3019     TUint nbrplan( aOrigAddressType & KMaskBits1to4 );
  3044     TUint nbrplan( aOrigAddressType & KMaskBits1to4 );
  3020 
  3045 
  3021 TFLOGSTRING2("TSY: CMmCallMessHandler::FillNumberPlanAndType. nbrplan (mask KMaskBits1to4) : %d",nbrplan);
  3046 TFLOGSTRING2("TSY: CMmCallMessHandler::FillNumberPlanAndType. nbrplan (mask KMaskBits1to4) : %d",nbrplan);
  3022 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_FILLNUMBERPLANANDTYPE, "CMmCallMessHandler::FillNumberPlanAndType" );
  3047 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_FILLNUMBERPLANANDTYPE_TD, "CMmCallMessHandler::FillNumberPlanAndType" );
  3023 
  3048 
  3024     if ( RMobilePhone::EUnknownNumberingPlan ==
  3049     if ( RMobilePhone::EUnknownNumberingPlan ==
  3025         aMobileCallInfo.iRemoteParty.iRemoteNumber.iNumberPlan )
  3050         aMobileCallInfo.iRemoteParty.iRemoteNumber.iNumberPlan )
  3026         {
  3051         {
  3027 TFLOGSTRING("TSY: CMmCallMessHandler::FillNumberPlanAndType. EUnknownNumberingPlan");
  3052 TFLOGSTRING("TSY: CMmCallMessHandler::FillNumberPlanAndType. EUnknownNumberingPlan");
  3028 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_FILLNUMBERPLANANDTYPE, "CMmCallMessHandler::FillNumberPlanAndType - EUnknownNumberingPlan" );
  3053 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_FILLNUMBERPLANANDTYPE_TD, "CMmCallMessHandler::FillNumberPlanAndType - EUnknownNumberingPlan" );
  3029 
  3054 
  3030         if ( CALL_MODEM_NBR_PLAN_UNKNOWN == nbrplan )
  3055         if ( CALL_MODEM_NBR_PLAN_UNKNOWN == nbrplan )
  3031             {
  3056             {
  3032             aMobileCallInfo.iRemoteParty.iRemoteNumber.iNumberPlan =
  3057             aMobileCallInfo.iRemoteParty.iRemoteNumber.iNumberPlan =
  3033                 RMobilePhone::EUnknownNumberingPlan;
  3058                 RMobilePhone::EUnknownNumberingPlan;
  3083     // (three bits (5-7) contain type of number, the most significant bit (8)
  3108     // (three bits (5-7) contain type of number, the most significant bit (8)
  3084     // is a spare bit and shall be ignored)
  3109     // is a spare bit and shall be ignored)
  3085     TUint nbrtype( aOrigAddressType & KMaskBits5to7 );
  3110     TUint nbrtype( aOrigAddressType & KMaskBits5to7 );
  3086 
  3111 
  3087 TFLOGSTRING2("TSY: CMmCallMessHandler::FillNumberPlanAndType. nbrplan (mask KMaskBits5to7) : %d",nbrtype);
  3112 TFLOGSTRING2("TSY: CMmCallMessHandler::FillNumberPlanAndType. nbrplan (mask KMaskBits5to7) : %d",nbrtype);
  3088 OstTrace1( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_FILLNUMBERPLANANDTYPE, "CMmCallMessHandler::FillNumberPlanAndType - nbrplan (mask KMaskBits5to7) nbrtype=%d", nbrtype );
  3113 OstTrace1( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_FILLNUMBERPLANANDTYPE_TD, "CMmCallMessHandler::FillNumberPlanAndType - nbrplan (mask KMaskBits5to7) nbrtype=%d", nbrtype );
  3089 
  3114 
  3090     if ( RMobilePhone::EUnknownNumber ==
  3115     if ( RMobilePhone::EUnknownNumber ==
  3091         aMobileCallInfo.iRemoteParty.iRemoteNumber.iTypeOfNumber )
  3116         aMobileCallInfo.iRemoteParty.iRemoteNumber.iTypeOfNumber )
  3092         {
  3117         {
  3093 TFLOGSTRING("TSY: CMmCallMessHandler::FillNumberPlanAndType. EUnknownNumber");
  3118 TFLOGSTRING("TSY: CMmCallMessHandler::FillNumberPlanAndType. EUnknownNumber");
  3094 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_FILLNUMBERPLANANDTYPE, "CMmCallMessHandler::FillNumberPlanAndType - EUnknownNumber" );
  3119 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_FILLNUMBERPLANANDTYPE_TD, "CMmCallMessHandler::FillNumberPlanAndType - EUnknownNumber" );
  3095 
  3120 
  3096         if ( CALL_MODEM_NBR_TYPE_UNKNOWN == nbrtype )
  3121         if ( CALL_MODEM_NBR_TYPE_UNKNOWN == nbrtype )
  3097             {
  3122             {
  3098             aMobileCallInfo.iRemoteParty.iRemoteNumber.iTypeOfNumber =
  3123             aMobileCallInfo.iRemoteParty.iRemoteNumber.iTypeOfNumber =
  3099                 RMobilePhone::EUnknownNumber;
  3124                 RMobilePhone::EUnknownNumber;
  3145     TUint8 aOrigPresentInd,
  3170     TUint8 aOrigPresentInd,
  3146     const TDes16& aOrigAddress,
  3171     const TDes16& aOrigAddress,
  3147     RMobileCall::TMobileCallDirection aDirection ) const
  3172     RMobileCall::TMobileCallDirection aDirection ) const
  3148     {
  3173     {
  3149 TFLOGSTRING3("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. OrigAdr: %S. CallDirection:%d", &aOrigAddress, aDirection);
  3174 TFLOGSTRING3("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. OrigAdr: %S. CallDirection:%d", &aOrigAddress, aDirection);
  3150 OstTraceExt2( TRACE_NORMAL, DUP5_CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER, "CMmCallMessHandler::FillRemoteStatusAndNumber;OrigAddr=%S;CallDirection=%d", aOrigAddress, aDirection );
  3175 OstTraceExt2( TRACE_NORMAL,  DUP5_CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER_TD, "CMmCallMessHandler::FillRemoteStatusAndNumber;OrigAddr=%S;CallDirection=%d", aOrigAddress, aDirection );
  3151 
  3176 
  3152     // Find out if telephone number is allowed to be presented.
  3177     // Find out if telephone number is allowed to be presented.
  3153     if ( RMobileCall::ERemoteIdentityUnknown ==
  3178     if ( RMobileCall::ERemoteIdentityUnknown ==
  3154         aMobileCallInfo.iRemoteParty.iRemoteIdStatus )
  3179         aMobileCallInfo.iRemoteParty.iRemoteIdStatus )
  3155         {
  3180         {
  3156         // CPN_ALLOWED
  3181         // CPN_ALLOWED
  3157         if ( CALL_MODEM_PRESENT_ALLOWED == aOrigPresentInd && RMobileCall::EMobileOriginated == aDirection
  3182         if ( CALL_MODEM_PRESENT_ALLOWED == aOrigPresentInd && RMobileCall::EMobileOriginated == aDirection
  3158                 || CALL_MODEM_PRESENTATION_ALLOWED == aOrigPresentInd && RMobileCall::EMobileTerminated == aDirection)
  3183                 || CALL_MODEM_PRESENTATION_ALLOWED == aOrigPresentInd && RMobileCall::EMobileTerminated == aDirection)
  3159             {
  3184             {
  3160 TFLOGSTRING("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. CPN_ALLOWED");
  3185 TFLOGSTRING("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. CPN_ALLOWED");
  3161 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER, "CMmCallMessHandler::FillRemoteStatusAndNumber - CPN_ALLOWED" );
  3186 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER_TD, "CMmCallMessHandler::FillRemoteStatusAndNumber - CPN_ALLOWED" );
  3162 
  3187 
  3163             // Available. iRemoteIdStatus is updated using the tel number
  3188             // Available. iRemoteIdStatus is updated using the tel number
  3164             // presentation status. Remote name does not affect to it, Symbian's
  3189             // presentation status. Remote name does not affect to it, Symbian's
  3165             // response:
  3190             // response:
  3166             // > In the meantime, I would say that iRemoteIdStatus relates to
  3191             // > In the meantime, I would say that iRemoteIdStatus relates to
  3176         // CPN_RESTRICTED & MT call
  3201         // CPN_RESTRICTED & MT call
  3177         else if ( CALL_MODEM_PRESENTATION_RESTRICTED == aOrigPresentInd &&
  3202         else if ( CALL_MODEM_PRESENTATION_RESTRICTED == aOrigPresentInd &&
  3178                   aDirection == RMobileCall::EMobileTerminated )
  3203                   aDirection == RMobileCall::EMobileTerminated )
  3179             {
  3204             {
  3180 TFLOGSTRING("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. CPN_RESTRICTED & MT call");
  3205 TFLOGSTRING("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. CPN_RESTRICTED & MT call");
  3181 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER, "CMmCallMessHandler::FillRemoteStatusAndNumber - CPN_RESTRICTED and MT call" );
  3206 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER_TD, "CMmCallMessHandler::FillRemoteStatusAndNumber - CPN_RESTRICTED and MT call" );
  3182 
  3207 
  3183             // There are cases when remote party info should still be presented.
  3208             // There are cases when remote party info should still be presented.
  3184             // See TSW ActionDB, Notes ID: MB03081534698
  3209             // See TSW ActionDB, Notes ID: MB03081534698
  3185             aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  3210             aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  3186                 RMobileCall::ERemoteIdentitySuppressed;
  3211                 RMobileCall::ERemoteIdentitySuppressed;
  3190                 aOrigAddress.Left( aOrigAddress.Length() ) );
  3215                 aOrigAddress.Left( aOrigAddress.Length() ) );
  3191             }
  3216             }
  3192         else // CPN_NOT_AVAILABLE or CPN_RESTRICTED & MO
  3217         else // CPN_NOT_AVAILABLE or CPN_RESTRICTED & MO
  3193             {
  3218             {
  3194 TFLOGSTRING("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. CPN_NOT_AVAILABLE or CPN_RESTRICTED & MO ");
  3219 TFLOGSTRING("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. CPN_NOT_AVAILABLE or CPN_RESTRICTED & MO ");
  3195 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER, "CMmCallMessHandler::FillRemoteStatusAndNumber - CPN_NOT_AVAILABLE or CPN_RESTRICTED and MO" );
  3220 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER_TD, "CMmCallMessHandler::FillRemoteStatusAndNumber - CPN_NOT_AVAILABLE or CPN_RESTRICTED and MO" );
  3196 
  3221 
  3197             if ( CALL_MODEM_PRESENT_RESTRICTED == aOrigPresentInd &&
  3222             if ( CALL_MODEM_PRESENT_RESTRICTED == aOrigPresentInd &&
  3198                  RMobileCall::EMobileOriginated == aDirection )
  3223                  RMobileCall::EMobileOriginated == aDirection )
  3199                 {
  3224                 {
  3200                 aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  3225                 aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  3201                     RMobileCall::ERemoteIdentitySuppressed;
  3226                     RMobileCall::ERemoteIdentitySuppressed;
  3202                 }
  3227                 }
  3203             else
  3228             else
  3204                 {
  3229                 {
  3205 TFLOGSTRING("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. OrigPresentInd is unknown");
  3230 TFLOGSTRING("TSY: CMmCallMessHandler::FillRemoteStatusAndNumber. OrigPresentInd is unknown");
  3206 OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER, "CMmCallMessHandler::FillRemoteStatusAndNumber - OrigPresentInd is unknown" );
  3231 OstTrace0( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_FILLREMOTESTATUSANDNUMBER_TD, "CMmCallMessHandler::FillRemoteStatusAndNumber - OrigPresentInd is unknown" );
  3207                 // Unknown
  3232                 // Unknown
  3208                 aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  3233                 aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  3209                     RMobileCall::ERemoteIdentityUnknown;
  3234                     RMobileCall::ERemoteIdentityUnknown;
  3210                 }
  3235                 }
  3211 
  3236 
  3236     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  3261     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  3237     TUint8 aOrigInfoPresentInd,
  3262     TUint8 aOrigInfoPresentInd,
  3238     const TDes16& aOrigInfoName ) const
  3263     const TDes16& aOrigInfoName ) const
  3239     {
  3264     {
  3240 TFLOGSTRING3("TSY: CMmCallMessHandler::FillCallingName. aOrigInfoPresentInd:%d, origInfoName:%s", aOrigInfoPresentInd,&aOrigInfoName);
  3265 TFLOGSTRING3("TSY: CMmCallMessHandler::FillCallingName. aOrigInfoPresentInd:%d, origInfoName:%s", aOrigInfoPresentInd,&aOrigInfoName);
  3241 OstTraceExt2( TRACE_NORMAL, CMMCALLMESSHANDLER_FILLCALLINGNAME, "CMmCallMessHandler::FillCallingName;aOrigInfoPresentInd=%hhu;aOrigInfoName=%S", aOrigInfoPresentInd, aOrigInfoName );
  3266 OstTraceExt2( TRACE_NORMAL,  CMMCALLMESSHANDLER_FILLCALLINGNAME_TD, "CMmCallMessHandler::FillCallingName;aOrigInfoPresentInd=%hhu;aOrigInfoName=%S", aOrigInfoPresentInd, aOrigInfoName );
  3242 
  3267 
  3243     // Find out if name is availble and can be presented.
  3268     // Find out if name is availble and can be presented.
  3244     if ( CALL_MODEM_PRESENTATION_ALLOWED == aOrigInfoPresentInd &&
  3269     if ( CALL_MODEM_PRESENTATION_ALLOWED == aOrigInfoPresentInd &&
  3245         0 < aOrigInfoName.Length() )
  3270         0 < aOrigInfoName.Length() )
  3246         {
  3271         {
  3264 //
  3289 //
  3265 void CMmCallMessHandler::CallStatusIndL(
  3290 void CMmCallMessHandler::CallStatusIndL(
  3266     const TIsiReceiveC &aIsiMessage )
  3291     const TIsiReceiveC &aIsiMessage )
  3267     {
  3292     {
  3268 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL");
  3293 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL");
  3269 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL" );
  3294 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL" );
  3270 
  3295 
  3271     TUint8 callStatusISA( 0xFF );
  3296     TUint8 callStatusISA( 0xFF );
  3272     TUint8 callModeISA( 0xFF );
  3297     TUint8 callModeISA( 0xFF );
  3273     RMobileCall::TMobileCallStatus statusETel( RMobileCall::EStatusUnknown );
  3298     RMobileCall::TMobileCallStatus statusETel( RMobileCall::EStatusUnknown );
  3274 
  3299 
  3297         // Get ISA call status
  3322         // Get ISA call status
  3298         callStatusISA = aIsiMessage.Get8bit(
  3323         callStatusISA = aIsiMessage.Get8bit(
  3299             sbStartOffSet + CALL_MODEM_SB_STATUS_OFFSET_STATUS );
  3324             sbStartOffSet + CALL_MODEM_SB_STATUS_OFFSET_STATUS );
  3300 
  3325 
  3301 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_STATUS subblock");
  3326 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_STATUS subblock");
  3302         OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_STATUS subblock" );
  3327         OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_STATUS subblock" );
  3303         }
  3328         }
  3304         // No else
  3329         // No else
  3305 
  3330 
  3306     statusETel = MapCallStatus( callStatusISA );
  3331     statusETel = MapCallStatus( callStatusISA );
  3307     mobileCallInfo.iStatus = statusETel;
  3332     mobileCallInfo.iStatus = statusETel;
  3324         // Get call mode and add it to mobile call info struct
  3349         // Get call mode and add it to mobile call info struct
  3325         callModeISA = aIsiMessage.Get8bit(
  3350         callModeISA = aIsiMessage.Get8bit(
  3326             sbStartOffSet + CALL_MODEM_SB_MODE_OFFSET_MODE );
  3351             sbStartOffSet + CALL_MODEM_SB_MODE_OFFSET_MODE );
  3327 
  3352 
  3328 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_MODE subblock");
  3353 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_MODE subblock");
  3329 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_MODE subblock" );
  3354 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_MODE subblock" );
  3330 
  3355 
  3331         FillModeData( mobileCallInfo, callModeISA );
  3356         FillModeData( mobileCallInfo, callModeISA );
  3332         mobileCallInfo.iValid |= RMobileCall::KCallEmergency;
  3357         mobileCallInfo.iValid |= RMobileCall::KCallEmergency;
  3333         }
  3358         }
  3334         // No else
  3359         // No else
  3338         {
  3363         {
  3339         // reset temporary call info
  3364         // reset temporary call info
  3340         ResetIncomingCallInfo( iIncomingCallInfo );
  3365         ResetIncomingCallInfo( iIncomingCallInfo );
  3341         }
  3366         }
  3342 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:Normal completion of call status ind (no termination of calls which haven't been indicated to CTSY yet)");
  3367 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:Normal completion of call status ind (no termination of calls which haven't been indicated to CTSY yet)");
  3343 OstTrace0( TRACE_NORMAL, DUP20_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL:Normal completion of call status ind (no termination of calls which haven't been indicated to CTSY yet)" );
  3368 OstTrace0( TRACE_NORMAL,  DUP20_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL:Normal completion of call status ind (no termination of calls which haven't been indicated to CTSY yet)" );
  3344 
  3369 
  3345     // Create call package (used for all completions)
  3370     // Create call package (used for all completions)
  3346     CCallDataPackage callData;
  3371     CCallDataPackage callData;
  3347     // Pack the data for sending to the manager
  3372     // Pack the data for sending to the manager
  3348     callData.SetCallIdAndMode(
  3373     callData.SetCallIdAndMode(
  3359         sbStartOffSet ) &&
  3384         sbStartOffSet ) &&
  3360         ( CALL_MODEM_STATUS_COMING == callStatusISA ) )
  3385         ( CALL_MODEM_STATUS_COMING == callStatusISA ) )
  3361         {
  3386         {
  3362 
  3387 
  3363 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: Receive UUI.");
  3388 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: Receive UUI.");
  3364 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: Receive UUI" );
  3389 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: Receive UUI" );
  3365 
  3390 
  3366         // Get data length
  3391         // Get data length
  3367         TUint8 userToUserDataLen( aIsiMessage.Get8bit(
  3392         TUint8 userToUserDataLen( aIsiMessage.Get8bit(
  3368         sbStartOffSet + CALL_MODEM_SB_USER_TO_USER_OFFSET_UTOULEN ) );
  3393         sbStartOffSet + CALL_MODEM_SB_USER_TO_USER_OFFSET_UTOULEN ) );
  3369 
  3394 
  3404             CALL_MODEM_SB_REDIRECTING_ADDRESS,
  3429             CALL_MODEM_SB_REDIRECTING_ADDRESS,
  3405             EIsiSubBlockTypeId8Len8,
  3430             EIsiSubBlockTypeId8Len8,
  3406             sbStartOffSet ) )
  3431             sbStartOffSet ) )
  3407             {
  3432             {
  3408 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_REDIRECTING_ADDRESS subblock");
  3433 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_REDIRECTING_ADDRESS subblock");
  3409 OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_REDIRECTING_ADDRESS subblock" );
  3434 OstTrace0( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_REDIRECTING_ADDRESS subblock" );
  3410 
  3435 
  3411             // Get address length
  3436             // Get address length
  3412             TUint8 redirectingAddressLength( aIsiMessage.Get8bit(
  3437             TUint8 redirectingAddressLength( aIsiMessage.Get8bit(
  3413                 sbStartOffSet +
  3438                 sbStartOffSet +
  3414                 CALL_MODEM_SB_REDIRECTING_ADDRESS_OFFSET_ADDRLEN ) );
  3439                 CALL_MODEM_SB_REDIRECTING_ADDRESS_OFFSET_ADDRLEN ) );
  3431             CALL_MODEM_SB_LINE_ID,
  3456             CALL_MODEM_SB_LINE_ID,
  3432             EIsiSubBlockTypeId8Len8,
  3457             EIsiSubBlockTypeId8Len8,
  3433             sbStartOffSet ))
  3458             sbStartOffSet ))
  3434             {
  3459             {
  3435 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_LINE_ID subblock");
  3460 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_LINE_ID subblock");
  3436 OstTrace0( TRACE_NORMAL, DUP21_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_LINE_ID subblock" );
  3461 OstTrace0( TRACE_NORMAL,  DUP21_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_LINE_ID subblock" );
  3437 
  3462 
  3438             origPresentInd = aIsiMessage.Get8bit(
  3463             origPresentInd = aIsiMessage.Get8bit(
  3439                 sbStartOffSet + CALL_MODEM_SB_LINE_ID_OFFSET_LINEID );
  3464                 sbStartOffSet + CALL_MODEM_SB_LINE_ID_OFFSET_LINEID );
  3440             }
  3465             }
  3441         // Read all destination address
  3466         // Read all destination address
  3444             CALL_MODEM_SB_DESTINATION_ADDRESS,
  3469             CALL_MODEM_SB_DESTINATION_ADDRESS,
  3445             EIsiSubBlockTypeId8Len8,
  3470             EIsiSubBlockTypeId8Len8,
  3446             sbStartOffSet ) )
  3471             sbStartOffSet ) )
  3447             {
  3472             {
  3448 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_DESTINATION_ADDRESS subblock");
  3473 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_DESTINATION_ADDRESS subblock");
  3449 OstTrace0( TRACE_NORMAL, DUP5_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_DESTINATION_ADDRESS subblock" );
  3474 OstTrace0( TRACE_NORMAL,  DUP5_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_DESTINATION_ADDRESS subblock" );
  3450             ReadAllAddressDestination(
  3475             ReadAllAddressDestination(
  3451                  mobileCallInfo,
  3476                  mobileCallInfo,
  3452                  targetOrig,
  3477                  targetOrig,
  3453                  aIsiMessage,
  3478                  aIsiMessage,
  3454                  sbStartOffSet,
  3479                  sbStartOffSet,
  3459             CALL_MODEM_SB_CONNECTED_ADDRESS,
  3484             CALL_MODEM_SB_CONNECTED_ADDRESS,
  3460             EIsiSubBlockTypeId8Len8,
  3485             EIsiSubBlockTypeId8Len8,
  3461             sbStartOffSet ) )
  3486             sbStartOffSet ) )
  3462             {
  3487             {
  3463 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_CONNECTED_ADDRESS subblock");
  3488 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_CONNECTED_ADDRESS subblock");
  3464 OstTrace0( TRACE_NORMAL, DUP19_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_CONNECTED_ADDRESS subblock" );
  3489 OstTrace0( TRACE_NORMAL,  DUP19_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_CONNECTED_ADDRESS subblock" );
  3465             ReadAllAddressConnected(
  3490             ReadAllAddressConnected(
  3466                 mobileCallInfo,
  3491                 mobileCallInfo,
  3467                 targetOrig,
  3492                 targetOrig,
  3468                 aIsiMessage,
  3493                 aIsiMessage,
  3469                 sbStartOffSet );
  3494                 sbStartOffSet );
  3486                 CALL_MODEM_SB_ORIGIN_INFO,
  3511                 CALL_MODEM_SB_ORIGIN_INFO,
  3487                 EIsiSubBlockTypeId8Len8,
  3512                 EIsiSubBlockTypeId8Len8,
  3488                 sbStartOffSet ) )
  3513                 sbStartOffSet ) )
  3489                 {
  3514                 {
  3490 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_ORIGIN_INFO subblock");
  3515 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_ORIGIN_INFO subblock");
  3491 OstTrace0( TRACE_NORMAL, DUP6_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_ORIGIN_INFO subblock" );
  3516 OstTrace0( TRACE_NORMAL,  DUP6_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_ORIGIN_INFO subblock" );
  3492 
  3517 
  3493                 ReadCallInfo(
  3518                 ReadCallInfo(
  3494                     mobileCallInfo,
  3519                     mobileCallInfo,
  3495                     targetOrigName,
  3520                     targetOrigName,
  3496                     aIsiMessage,
  3521                     aIsiMessage,
  3504                 CALL_MODEM_SB_CAUSE,
  3529                 CALL_MODEM_SB_CAUSE,
  3505                 EIsiSubBlockTypeId8Len8,
  3530                 EIsiSubBlockTypeId8Len8,
  3506                 sbStartOffSet ) )
  3531                 sbStartOffSet ) )
  3507                 {
  3532                 {
  3508 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_CAUSE subblock");
  3533 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_CAUSE subblock");
  3509 OstTrace0( TRACE_NORMAL, DUP7_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_CAUSE subblock" );
  3534 OstTrace0( TRACE_NORMAL,  DUP7_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_CAUSE subblock" );
  3510 
  3535 
  3511                 // Get cause type and value
  3536                 // Get cause type and value
  3512                 causeType = aIsiMessage.Get8bit(
  3537                 causeType = aIsiMessage.Get8bit(
  3513                     sbStartOffSet + CALL_MODEM_SB_CAUSE_OFFSET_CAUSETYPE );
  3538                     sbStartOffSet + CALL_MODEM_SB_CAUSE_OFFSET_CAUSETYPE );
  3514 
  3539 
  3530                     CALL_MODEM_SB_DESTINATION_POST_ADDRESS,
  3555                     CALL_MODEM_SB_DESTINATION_POST_ADDRESS,
  3531                     EIsiSubBlockTypeId8Len8,
  3556                     EIsiSubBlockTypeId8Len8,
  3532                     sbStartOffSet ) )
  3557                     sbStartOffSet ) )
  3533                     {
  3558                     {
  3534 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:CALL_MODEM_SB_DESTINATION_POST_ADDRESS");
  3559 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:CALL_MODEM_SB_DESTINATION_POST_ADDRESS");
  3535 OstTrace0( TRACE_NORMAL, DUP8_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_DESTINATION_POST_ADDRESS" );
  3560 OstTrace0( TRACE_NORMAL,  DUP8_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: CALL_MODEM_SB_DESTINATION_POST_ADDRESS" );
  3536 
  3561 
  3537                     // Get address length
  3562                     // Get address length
  3538                     TUint8 destinationPostAddressLength( aIsiMessage.Get8bit(
  3563                     TUint8 destinationPostAddressLength( aIsiMessage.Get8bit(
  3539                         sbStartOffSet + CALL_MODEM_SB_DESTINATION_POST_ADDRESS_OFFSET_ADDRLEN ) );
  3564                         sbStartOffSet + CALL_MODEM_SB_DESTINATION_POST_ADDRESS_OFFSET_ADDRLEN ) );
  3540 
  3565 
  3545 
  3570 
  3546                     // Do not handle post address which lenght is over 15 chars
  3571                     // Do not handle post address which lenght is over 15 chars
  3547                     if ( ( KDestPostAddressMaxLength * 2 ) >= postAddr.Length() )
  3572                     if ( ( KDestPostAddressMaxLength * 2 ) >= postAddr.Length() )
  3548                         {
  3573                         {
  3549 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:lenght less than 15 char");
  3574 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:lenght less than 15 char");
  3550 OstTrace0( TRACE_NORMAL, DUP9_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: Lenght less than 15 char" );
  3575 OstTrace0( TRACE_NORMAL,  DUP9_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: Lenght less than 15 char" );
  3551                         // Copy 8-bit name to the 16-bit target using correct endianess
  3576                         // Copy 8-bit name to the 16-bit target using correct endianess
  3552                         TIsiUtility::CopyFromBigEndian(
  3577                         TIsiUtility::CopyFromBigEndian(
  3553                             postAddr,
  3578                             postAddr,
  3554                             iDestPostAddress );
  3579                             iDestPostAddress );
  3555 
  3580 
  3563                         for ( TInt i( 0 ); i < postAddrLength; i++ )
  3588                         for ( TInt i( 0 ); i < postAddrLength; i++ )
  3564                             {
  3589                             {
  3565                             if ( 'w' == iDestPostAddress[ i ] )
  3590                             if ( 'w' == iDestPostAddress[ i ] )
  3566                                 {
  3591                                 {
  3567 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:w found");
  3592 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:w found");
  3568 OstTrace0( TRACE_NORMAL, DUP10_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: w found" );
  3593 OstTrace0( TRACE_NORMAL,  DUP10_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: w found" );
  3569                                 iDestPostAddress.SetLength( 0 );
  3594                                 iDestPostAddress.SetLength( 0 );
  3570                                 iDtmfPostAddressCallId = 0;
  3595                                 iDtmfPostAddressCallId = 0;
  3571                                 break;
  3596                                 break;
  3572                                 }
  3597                                 }
  3573                             }
  3598                             }
  3575                     }
  3600                     }
  3576 
  3601 
  3577 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:callStatusISA: %d", callStatusISA);
  3602 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:callStatusISA: %d", callStatusISA);
  3578 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:mobileCallInfo.iCallId: %d", mobileCallInfo.iCallId);
  3603 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:mobileCallInfo.iCallId: %d", mobileCallInfo.iCallId);
  3579 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:iDtmfPostAddressCallId: %d", iDtmfPostAddressCallId);
  3604 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:iDtmfPostAddressCallId: %d", iDtmfPostAddressCallId);
  3580 OstTraceExt1( TRACE_NORMAL, DUP11_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL;callStatusISA=%hhu", callStatusISA );
  3605 OstTraceExt1( TRACE_NORMAL,  DUP11_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL;callStatusISA=%hhu", callStatusISA );
  3581 OstTraceExt1( TRACE_NORMAL, DUP13_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL;mobileCallInfo.iCallId=%hhu", mobileCallInfo.iCallId );
  3606 OstTraceExt1( TRACE_NORMAL,  DUP13_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL;mobileCallInfo.iCallId=%hhu", mobileCallInfo.iCallId );
  3582 OstTraceExt1( TRACE_NORMAL, DUP12_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL;iDtmfPostAddressCallId=%hhu", iDtmfPostAddressCallId );
  3607 OstTraceExt1( TRACE_NORMAL,  DUP12_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL;iDtmfPostAddressCallId=%hhu", iDtmfPostAddressCallId );
  3583 
  3608 
  3584                 // When call is active, send post address
  3609                 // When call is active, send post address
  3585                 // DTMF sending in case this is SIMATK call
  3610                 // DTMF sending in case this is SIMATK call
  3586                 if ( CALL_MODEM_STATUS_ACTIVE == callStatusISA &&
  3611                 if ( CALL_MODEM_STATUS_ACTIVE == callStatusISA &&
  3587                     iDtmfPostAddressCallId == mobileCallInfo.iCallId &&
  3612                     iDtmfPostAddressCallId == mobileCallInfo.iCallId &&
  3588                     0 < iDtmfPostAddressCallId )
  3613                     0 < iDtmfPostAddressCallId )
  3589                     {
  3614                     {
  3590 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:Dtmf post address sending (ACTIVE)");
  3615 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:Dtmf post address sending (ACTIVE)");
  3591 OstTrace0( TRACE_NORMAL, DUP17_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL, Dtmf post address sending (ACTIVE)" );
  3616 OstTrace0( TRACE_NORMAL,  DUP17_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL, Dtmf post address sending (ACTIVE)" );
  3592                     iDtmfMessHandler->SendPostAddressL ( &iDestPostAddress );
  3617                     iDtmfMessHandler->SendPostAddressL ( &iDestPostAddress );
  3593 
  3618 
  3594                     // Reset iDestPostAddress and iDtmfPostAddressCallId to prevent multiple
  3619                     // Reset iDestPostAddress and iDtmfPostAddressCallId to prevent multiple
  3595                     // requests
  3620                     // requests
  3596                     iDestPostAddress.SetLength( 0 );
  3621                     iDestPostAddress.SetLength( 0 );
  3602                 if ( CALL_MODEM_STATUS_IDLE == callStatusISA &&
  3627                 if ( CALL_MODEM_STATUS_IDLE == callStatusISA &&
  3603                     iDtmfPostAddressCallId == mobileCallInfo.iCallId &&
  3628                     iDtmfPostAddressCallId == mobileCallInfo.iCallId &&
  3604                     0 < iDtmfPostAddressCallId )
  3629                     0 < iDtmfPostAddressCallId )
  3605                     {
  3630                     {
  3606 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:If call fails for some reason (IDLE)");
  3631 TFLOGSTRING("TSY: CMmCallMessHandler::CallStatusIndL:If call fails for some reason (IDLE)");
  3607 OstTrace0( TRACE_NORMAL, DUP14_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL: If call fails for some reason (IDLE)" );
  3632 OstTrace0( TRACE_NORMAL,  DUP14_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL: If call fails for some reason (IDLE)" );
  3608                     iDestPostAddress.SetLength( 0 );
  3633                     iDestPostAddress.SetLength( 0 );
  3609                     iDtmfPostAddressCallId = 0;
  3634                     iDtmfPostAddressCallId = 0;
  3610                     }
  3635                     }
  3611 
  3636 
  3612 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:iDtmfPostAddressCallId: %d After value",iDtmfPostAddressCallId);
  3637 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:iDtmfPostAddressCallId: %d After value",iDtmfPostAddressCallId);
  3613 OstTraceExt1( TRACE_NORMAL, DUP18_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL;iDtmfPostAddressCallId=%hhu After value", iDtmfPostAddressCallId );
  3638 OstTraceExt1( TRACE_NORMAL,  DUP18_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL;iDtmfPostAddressCallId=%hhu After value", iDtmfPostAddressCallId );
  3614                 }
  3639                 }
  3615                 // No else
  3640                 // No else
  3616 
  3641 
  3617             if ( CALL_MODEM_SSD_NO_CUG == ( iDiagnosticOctet & KMaskBits1to7 ) &&
  3642             if ( CALL_MODEM_SSD_NO_CUG == ( iDiagnosticOctet & KMaskBits1to7 ) &&
  3618                 CALL_MODEM_NW_CAUSE_FACILITY_REJECTED == causeValue )
  3643                 CALL_MODEM_NW_CAUSE_FACILITY_REJECTED == causeValue )
  3670             if ( CALL_MODEM_STATUS_ACTIVE == callStatusISA ||
  3695             if ( CALL_MODEM_STATUS_ACTIVE == callStatusISA ||
  3671                 CALL_MODEM_STATUS_MT_RELEASE == callStatusISA ||
  3696                 CALL_MODEM_STATUS_MT_RELEASE == callStatusISA ||
  3672                 CALL_MODEM_STATUS_MO_RELEASE == callStatusISA )
  3697                 CALL_MODEM_STATUS_MO_RELEASE == callStatusISA )
  3673                 {
  3698                 {
  3674 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:callStatusISA: %d", callStatusISA);
  3699 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:callStatusISA: %d", callStatusISA);
  3675 OstTraceExt1( TRACE_NORMAL, DUP15_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL;callStatusISA=%hhu", callStatusISA );
  3700 OstTraceExt1( TRACE_NORMAL,  DUP15_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL;callStatusISA=%hhu", callStatusISA );
  3676 
  3701 
  3677                 TBool playRemoteAlertToneLocally( EFalse );
  3702                 TBool playRemoteAlertToneLocally( EFalse );
  3678 
  3703 
  3679 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:playRemoteAlert: %d", playRemoteAlertToneLocally);
  3704 TFLOGSTRING2("TSY: CMmCallMessHandler::CallStatusIndL:playRemoteAlert: %d", playRemoteAlertToneLocally);
  3680 OstTraceExt1( TRACE_NORMAL, DUP16_CMMCALLMESSHANDLER_CALLSTATUSINDL, "CMmCallMessHandler::CallStatusIndL;playRemoteAlertToneLocally=%hhu", playRemoteAlertToneLocally );
  3705 OstTraceExt1( TRACE_NORMAL,  DUP16_CMMCALLMESSHANDLER_CALLSTATUSINDL_TD, "CMmCallMessHandler::CallStatusIndL;playRemoteAlertToneLocally=%hhu", playRemoteAlertToneLocally );
  3681 
  3706 
  3682                 CMmDataPackage dataPackage;
  3707                 CMmDataPackage dataPackage;
  3683                 dataPackage.PackData( &playRemoteAlertToneLocally );
  3708                 dataPackage.PackData( &playRemoteAlertToneLocally );
  3684                 iMessageRouter->Complete(
  3709                 iMessageRouter->Complete(
  3685                     ECustomGetRemoteAlertingToneStatusIPC,
  3710                     ECustomGetRemoteAlertingToneStatusIPC,
  3739 //
  3764 //
  3740 void CMmCallMessHandler::CallComingInd(
  3765 void CMmCallMessHandler::CallComingInd(
  3741     const TIsiReceiveC &aIsiMessage )
  3766     const TIsiReceiveC &aIsiMessage )
  3742     {
  3767     {
  3743 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd");
  3768 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd");
  3744 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLCOMINGIND, "CMmCallMessHandler::CallComingInd" );
  3769 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLCOMINGIND_TD, "CMmCallMessHandler::CallComingInd" );
  3745 
  3770 
  3746     // Call coming ind message
  3771     // Call coming ind message
  3747     TUint8 callMode( 0xFF );
  3772     TUint8 callMode( 0xFF );
  3748     TBuf16<RMobileCall::KCallingNameSize> targetOrigName;
  3773     TBuf16<RMobileCall::KCallingNameSize> targetOrigName;
  3749     TUint sbStartOffSet( 0 );
  3774     TUint sbStartOffSet( 0 );
  3758         // Get call mode value
  3783         // Get call mode value
  3759         callMode = aIsiMessage.Get8bit(
  3784         callMode = aIsiMessage.Get8bit(
  3760             sbStartOffSet + CALL_MODEM_SB_MODE_OFFSET_MODE );
  3785             sbStartOffSet + CALL_MODEM_SB_MODE_OFFSET_MODE );
  3761 
  3786 
  3762 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_MODE");
  3787 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_MODE");
  3763 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLCOMINGIND, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_MODE" );
  3788 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLCOMINGIND_TD, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_MODE" );
  3764 
  3789 
  3765         FillModeData( iIncomingCallInfo, callMode );
  3790         FillModeData( iIncomingCallInfo, callMode );
  3766         iIncomingCallInfo.iValid |= RMobileCall::KCallEmergency;
  3791         iIncomingCallInfo.iValid |= RMobileCall::KCallEmergency;
  3767         }
  3792         }
  3768     // No else
  3793     // No else
  3782         TPtrC8 address( aIsiMessage.GetData(
  3807         TPtrC8 address( aIsiMessage.GetData(
  3783             sbStartOffSet + CALL_MODEM_SB_REDIRECTING_ADDRESS_OFFSET_ADDR,
  3808             sbStartOffSet + CALL_MODEM_SB_REDIRECTING_ADDRESS_OFFSET_ADDR,
  3784             redirectingAddressLength * 2 ) );
  3809             redirectingAddressLength * 2 ) );
  3785 
  3810 
  3786 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_REDIRECTING_ADDRESS");
  3811 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_REDIRECTING_ADDRESS");
  3787 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_CALLCOMINGIND, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_REDIRECTING_ADDRESS" );
  3812 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_CALLCOMINGIND_TD, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_REDIRECTING_ADDRESS" );
  3788 
  3813 
  3789         // If there is a redirection address, the call has been forwarded
  3814         // If there is a redirection address, the call has been forwarded
  3790         // (but not vice versa; this information can come with another
  3815         // (but not vice versa; this information can come with another
  3791         // indication)
  3816         // indication)
  3792         if ( NULL != address.Length() )
  3817         if ( NULL != address.Length() )
  3826         TPtrC8 address( aIsiMessage.GetData(
  3851         TPtrC8 address( aIsiMessage.GetData(
  3827             sbStartOffSet + CALL_MODEM_SB_ORIGIN_ADDRESS_OFFSET_ADDR,
  3852             sbStartOffSet + CALL_MODEM_SB_ORIGIN_ADDRESS_OFFSET_ADDR,
  3828             callOriginAddressLength * 2 ) );
  3853             callOriginAddressLength * 2 ) );
  3829 
  3854 
  3830 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_ORIGIN_ADDRESS");
  3855 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_ORIGIN_ADDRESS");
  3831 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_CALLCOMINGIND, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_ORIGIN_ADDRESS" );
  3856 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_CALLCOMINGIND_TD, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_ORIGIN_ADDRESS" );
  3832 
  3857 
  3833         // Check if number is international and addrDataLength is bigger
  3858         // Check if number is international and addrDataLength is bigger
  3834         // than zero. The length of the string does not have to be checked
  3859         // than zero. The length of the string does not have to be checked
  3835         // since the original max length was 100. When the string was sent to
  3860         // since the original max length was 100. When the string was sent to
  3836         // ISA side the '+' character was cut off and now we just put it back.
  3861         // ISA side the '+' character was cut off and now we just put it back.
  3891         TPtrC8 name( aIsiMessage.GetData(
  3916         TPtrC8 name( aIsiMessage.GetData(
  3892             sbStartOffSet + CALL_MODEM_SB_ORIGIN_INFO_OFFSET_NAME,
  3917             sbStartOffSet + CALL_MODEM_SB_ORIGIN_INFO_OFFSET_NAME,
  3893             callOriginInfoNameLength * 2 ) );
  3918             callOriginInfoNameLength * 2 ) );
  3894 
  3919 
  3895 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_ORIGIN_INFO");
  3920 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_ORIGIN_INFO");
  3896 OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_CALLCOMINGIND, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_ORIGIN_INFO" );
  3921 OstTrace0( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_CALLCOMINGIND_TD, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_ORIGIN_INFO" );
  3897 
  3922 
  3898         // Copy 8-bit name to the 16-bit target using correct endianess
  3923         // Copy 8-bit name to the 16-bit target using correct endianess
  3899         TIsiUtility::CopyFromBigEndian( name, targetOrigName );
  3924         TIsiUtility::CopyFromBigEndian( name, targetOrigName );
  3900 
  3925 
  3901         // Set target to the iAddress
  3926         // Set target to the iAddress
  3915         // Get cause of no CLI
  3940         // Get cause of no CLI
  3916         TUint8 mmCauseOfNoCli( aIsiMessage.Get8bit(
  3941         TUint8 mmCauseOfNoCli( aIsiMessage.Get8bit(
  3917             sbStartOffSet + CALL_MODEM_SB_CAUSE_OF_NO_CLI_OFFSET_CAUSE ) );
  3942             sbStartOffSet + CALL_MODEM_SB_CAUSE_OF_NO_CLI_OFFSET_CAUSE ) );
  3918 
  3943 
  3919 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_CAUSE_OF_NO_CLI");
  3944 TFLOGSTRING("TSY: CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_CAUSE_OF_NO_CLI");
  3920 OstTrace0( TRACE_NORMAL, DUP5_CMMCALLMESSHANDLER_CALLCOMINGIND, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_CAUSE_OF_NO_CLI" );
  3945 OstTrace0( TRACE_NORMAL,  DUP5_CMMCALLMESSHANDLER_CALLCOMINGIND_TD, "CMmCallMessHandler::CallComingInd -- CALL_MODEM_SB_CAUSE_OF_NO_CLI" );
  3921 
  3946 
  3922         // Fill cause of no CLI
  3947         // Fill cause of no CLI
  3923         FillCauseOfNoCli(iIncomingCallInfo, mmCauseOfNoCli);
  3948         FillCauseOfNoCli(iIncomingCallInfo, mmCauseOfNoCli);
  3924         }
  3949         }
  3925 
  3950 
  3932 //
  3957 //
  3933 void CMmCallMessHandler::ResetIncomingCallInfo(
  3958 void CMmCallMessHandler::ResetIncomingCallInfo(
  3934     RMobileCall::TMobileCallInfoV1& aIncomingCallInfo ) const
  3959     RMobileCall::TMobileCallInfoV1& aIncomingCallInfo ) const
  3935     {
  3960     {
  3936 TFLOGSTRING("TSY: CMmCallMessHandler::ResetIncomingCallInfo");
  3961 TFLOGSTRING("TSY: CMmCallMessHandler::ResetIncomingCallInfo");
  3937 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_RESETINCOMINGCALLINFO, "CMmCallMessHandler::ResetIncomingCallInfo" );
  3962 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_RESETINCOMINGCALLINFO_TD, "CMmCallMessHandler::ResetIncomingCallInfo" );
  3938 
  3963 
  3939     // Reset all fields that are used in aIncomingCallInfo
  3964     // Reset all fields that are used in aIncomingCallInfo
  3940     aIncomingCallInfo.iValid = 0;
  3965     aIncomingCallInfo.iValid = 0;
  3941     aIncomingCallInfo.iService = RMobilePhone::EServiceUnspecified;
  3966     aIncomingCallInfo.iService = RMobilePhone::EServiceUnspecified;
  3942     aIncomingCallInfo.iStatus = RMobileCall::EStatusUnknown;
  3967     aIncomingCallInfo.iStatus = RMobileCall::EStatusUnknown;
  3963 //
  3988 //
  3964 void CMmCallMessHandler::CallServiceDeniedInd(
  3989 void CMmCallMessHandler::CallServiceDeniedInd(
  3965     const TIsiReceiveC &aIsiMessage )
  3990     const TIsiReceiveC &aIsiMessage )
  3966     {
  3991     {
  3967 TFLOGSTRING("TSY: CMmCallMessHandler::CallServiceDeniedInd");
  3992 TFLOGSTRING("TSY: CMmCallMessHandler::CallServiceDeniedInd");
  3968 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CALLSERVICEDENIEDIND, "CMmCallMessHandler::CallServiceDeniedInd" );
  3993 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CALLSERVICEDENIEDIND_TD, "CMmCallMessHandler::CallServiceDeniedInd" );
  3969 
  3994 
  3970     // Call service denied ind message
  3995     // Call service denied ind message
  3971 
  3996 
  3972     TUint sbStartOffSet( 0 );
  3997     TUint sbStartOffSet( 0 );
  3973 
  3998 
  4046             break;
  4071             break;
  4047             }
  4072             }
  4048         default:
  4073         default:
  4049             {
  4074             {
  4050 TFLOGSTRING("TSY: CMmCallMessHandler::CallServiceDeniedInd. Switch serviceId case default.");
  4075 TFLOGSTRING("TSY: CMmCallMessHandler::CallServiceDeniedInd. Switch serviceId case default.");
  4051 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CALLSERVICEDENIEDIND, "CMmCallMessHandler::CallServiceDeniedInd. Switch serviceId case default." );
  4076 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CALLSERVICEDENIEDIND_TD, "CMmCallMessHandler::CallServiceDeniedInd. Switch serviceId case default." );
  4052             break;
  4077             break;
  4053             }
  4078             }
  4054         }
  4079         }
  4055     }
  4080     }
  4056 
  4081 
  4064     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  4089     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  4065     TUint8 aCallStatusISA
  4090     TUint8 aCallStatusISA
  4066     )
  4091     )
  4067     {
  4092     {
  4068 TFLOGSTRING2("TSY: CMmCallMessHandler::CheckCallIsaStatus. callstatusisa:%d", aCallStatusISA);
  4093 TFLOGSTRING2("TSY: CMmCallMessHandler::CheckCallIsaStatus. callstatusisa:%d", aCallStatusISA);
  4069 OstTraceExt1( TRACE_NORMAL, CMMCALLMESSHANDLER_CHECKCALLISASTATUS, "CMmCallMessHandler::CheckCallIsaStatus;aCallStatusISA=%hhu", aCallStatusISA );
  4094 OstTraceExt1( TRACE_NORMAL,  CMMCALLMESSHANDLER_CHECKCALLISASTATUS_TD, "CMmCallMessHandler::CheckCallIsaStatus;aCallStatusISA=%hhu", aCallStatusISA );
  4070 
  4095 
  4071     // Check which status we got
  4096     // Check which status we got
  4072     if ( CALL_MODEM_STATUS_MT_RELEASE == aCallStatusISA )
  4097     if ( CALL_MODEM_STATUS_MT_RELEASE == aCallStatusISA )
  4073         {
  4098         {
  4074         // Complete remote release event notification
  4099         // Complete remote release event notification
  4118     TUint& aSbStartOffSet,
  4143     TUint& aSbStartOffSet,
  4119     TUint8 origPresentInd
  4144     TUint8 origPresentInd
  4120     )
  4145     )
  4121     {
  4146     {
  4122 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressDestination");
  4147 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressDestination");
  4123 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_READALLADDRESSDESTINATION, "CMmCallMessHandler::ReadAllAddressDestination" );
  4148 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_READALLADDRESSDESTINATION_TD, "CMmCallMessHandler::ReadAllAddressDestination" );
  4124 
  4149 
  4125     TUint8 origAddressType( aIsiMessage.Get8bit(
  4150     TUint8 origAddressType( aIsiMessage.Get8bit(
  4126         aSbStartOffSet + CALL_MODEM_SB_DESTINATION_ADDRESS_OFFSET_ADDRTYPE ) );
  4151         aSbStartOffSet + CALL_MODEM_SB_DESTINATION_ADDRESS_OFFSET_ADDRTYPE ) );
  4127 
  4152 
  4128 
  4153 
  4143         CALL_MODEM_SB_DESTINATION_PRE_ADDRESS,
  4168         CALL_MODEM_SB_DESTINATION_PRE_ADDRESS,
  4144         EIsiSubBlockTypeId8Len8,
  4169         EIsiSubBlockTypeId8Len8,
  4145         aSbStartOffSet ) )
  4170         aSbStartOffSet ) )
  4146         {
  4171         {
  4147 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressDestination: CALL_MODEM_SB_DESTINATION_PRE_ADDRESS");
  4172 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressDestination: CALL_MODEM_SB_DESTINATION_PRE_ADDRESS");
  4148 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_READALLADDRESSDESTINATION, "CMmCallMessHandler::ReadAllAddressDestination: CALL_MODEM_SB_DESTINATION_PRE_ADDRESS" );
  4173 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_READALLADDRESSDESTINATION_TD, "CMmCallMessHandler::ReadAllAddressDestination: CALL_MODEM_SB_DESTINATION_PRE_ADDRESS" );
  4149 
  4174 
  4150         // Get destination address length
  4175         // Get destination address length
  4151         TUint8 destinationPreAddressLength( aIsiMessage.Get8bit(
  4176         TUint8 destinationPreAddressLength( aIsiMessage.Get8bit(
  4152             aSbStartOffSet + CALL_MODEM_SB_DESTINATION_PRE_ADDRESS_OFFSET_ADDRLEN ) );
  4177             aSbStartOffSet + CALL_MODEM_SB_DESTINATION_PRE_ADDRESS_OFFSET_ADDRLEN ) );
  4153 
  4178 
  4185         CALL_MODEM_SB_DESTINATION_POST_ADDRESS,
  4210         CALL_MODEM_SB_DESTINATION_POST_ADDRESS,
  4186         EIsiSubBlockTypeId8Len8,
  4211         EIsiSubBlockTypeId8Len8,
  4187         aSbStartOffSet ) )
  4212         aSbStartOffSet ) )
  4188         {
  4213         {
  4189 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressDestination: CALL_MODEM_SB_DESTINATION_POST_ADDRESS");
  4214 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressDestination: CALL_MODEM_SB_DESTINATION_POST_ADDRESS");
  4190 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_READALLADDRESSDESTINATION, "CMmCallMessHandler::ReadAllAddressDestination: CALL_MODEM_SB_DESTINATION_POST_ADDRESS" );
  4215 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_READALLADDRESSDESTINATION_TD, "CMmCallMessHandler::ReadAllAddressDestination: CALL_MODEM_SB_DESTINATION_POST_ADDRESS" );
  4191 
  4216 
  4192         // Get destinationAddress Length
  4217         // Get destinationAddress Length
  4193         TUint8 destinationPostAddressLength( aIsiMessage.Get8bit(
  4218         TUint8 destinationPostAddressLength( aIsiMessage.Get8bit(
  4194             aSbStartOffSet + CALL_MODEM_SB_DESTINATION_POST_ADDRESS_OFFSET_ADDRLEN ) );
  4219             aSbStartOffSet + CALL_MODEM_SB_DESTINATION_POST_ADDRESS_OFFSET_ADDRLEN ) );
  4195 
  4220 
  4213 
  4238 
  4214     // Copy 8-bit address to the 16-bit target using correct endianess
  4239     // Copy 8-bit address to the 16-bit target using correct endianess
  4215     TIsiUtility::CopyFromBigEndian( address2, aTargetOrig );
  4240     TIsiUtility::CopyFromBigEndian( address2, aTargetOrig );
  4216 
  4241 
  4217 TFLOGSTRING2("TSY: CMmCallMessHandler::ReadAllAddressDestination: aTargetOrig = %S", &aTargetOrig);
  4242 TFLOGSTRING2("TSY: CMmCallMessHandler::ReadAllAddressDestination: aTargetOrig = %S", &aTargetOrig);
  4218 OstTraceExt1( TRACE_NORMAL, DUP19_CMMCALLMESSHANDLER_CallStatusIndL, "CMmCallMessHandler::ReadAllDestinationAddress;aTargetOrig=%S", aTargetOrig );
  4243 OstTraceExt1( TRACE_NORMAL,  DUP19_CMMCALLMESSHANDLER_CallStatusIndL_TD, "CMmCallMessHandler::ReadAllDestinationAddress;aTargetOrig=%S", aTargetOrig );
  4219     FillRemoteStatusAndNumber(
  4244     FillRemoteStatusAndNumber(
  4220         aMobileCallInfo,
  4245         aMobileCallInfo,
  4221         origPresentInd,
  4246         origPresentInd,
  4222         aTargetOrig,
  4247         aTargetOrig,
  4223         RMobileCall::EMobileOriginated );
  4248         RMobileCall::EMobileOriginated );
  4237     TBuf16<RMobilePhone::KMaxMobileTelNumberSize>& aTargetOrig,
  4262     TBuf16<RMobilePhone::KMaxMobileTelNumberSize>& aTargetOrig,
  4238     const TIsiReceiveC &aIsiMessage,
  4263     const TIsiReceiveC &aIsiMessage,
  4239     TUint& aSbStartOffSet)
  4264     TUint& aSbStartOffSet)
  4240     {
  4265     {
  4241 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressConnected");
  4266 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressConnected");
  4242 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_READALLADDRESSCONNECTED, "CMmCallMessHandler::ReadAllAddressConnected" );
  4267 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_READALLADDRESSCONNECTED_TD, "CMmCallMessHandler::ReadAllAddressConnected" );
  4243 
  4268 
  4244     TUint8 origAddressType( aIsiMessage.Get8bit(
  4269     TUint8 origAddressType( aIsiMessage.Get8bit(
  4245         aSbStartOffSet + CALL_MODEM_SB_CONNECTED_ADDRESS_OFFSET_ADDRTYPE ) );
  4270         aSbStartOffSet + CALL_MODEM_SB_CONNECTED_ADDRESS_OFFSET_ADDRTYPE ) );
  4246     TUint8 origPresentInd( aIsiMessage.Get8bit(
  4271     TUint8 origPresentInd( aIsiMessage.Get8bit(
  4247         aSbStartOffSet + CALL_MODEM_SB_CONNECTED_ADDRESS_OFFSET_PRESENTATION ) );
  4272         aSbStartOffSet + CALL_MODEM_SB_CONNECTED_ADDRESS_OFFSET_PRESENTATION ) );
  4284 
  4309 
  4285     // Copy 8-bit address to the 16-bit target using correct endianess
  4310     // Copy 8-bit address to the 16-bit target using correct endianess
  4286     TIsiUtility::CopyFromBigEndian( address2, aTargetOrig );
  4311     TIsiUtility::CopyFromBigEndian( address2, aTargetOrig );
  4287 
  4312 
  4288 TFLOGSTRING2("TSY: CMmCallMessHandler::ReadAllAddressConnected;aTargetOrig=%S", &aTargetOrig);
  4313 TFLOGSTRING2("TSY: CMmCallMessHandler::ReadAllAddressConnected;aTargetOrig=%S", &aTargetOrig);
  4289 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_READALLADDRESSCONNECTED, "CMmCallMessHandler::ReadAllAddressConnected;aTargetOrig=%S", aTargetOrig );
  4314 OstTraceExt1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_READALLADDRESSCONNECTED_TD, "CMmCallMessHandler::ReadAllAddressConnected;aTargetOrig=%S", aTargetOrig );
  4290 
  4315 
  4291     if ( CALL_MODEM_PRESENTATION_ALLOWED == origPresentInd )
  4316     if ( CALL_MODEM_PRESENTATION_ALLOWED == origPresentInd )
  4292         {
  4317         {
  4293 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN ALLOWED");
  4318 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN ALLOWED");
  4294 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_READALLADDRESSCONNECTED, "TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN ALLOWED" );
  4319 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_READALLADDRESSCONNECTED_TD, "TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN ALLOWED" );
  4295         aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  4320         aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  4296             RMobileCall::ERemoteIdentityAvailable;
  4321             RMobileCall::ERemoteIdentityAvailable;
  4297         // Copy the actual number
  4322         // Copy the actual number
  4298         aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Copy(
  4323         aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Copy(
  4299             aTargetOrig );
  4324             aTargetOrig );
  4300         }
  4325         }
  4301     else if ( CALL_MODEM_PRESENTATION_RESTRICTED == origPresentInd )
  4326     else if ( CALL_MODEM_PRESENTATION_RESTRICTED == origPresentInd )
  4302         {
  4327         {
  4303 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN RESTRICTED");
  4328 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN RESTRICTED");
  4304 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_READALLADDRESSCONNECTED, "TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN RESTRICTED" );
  4329 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_READALLADDRESSCONNECTED_TD, "TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN RESTRICTED" );
  4305         aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  4330         aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  4306             RMobileCall::ERemoteIdentitySuppressed;
  4331             RMobileCall::ERemoteIdentitySuppressed;
  4307         aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Zero();
  4332         aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Zero();
  4308         }
  4333         }
  4309     else
  4334     else
  4310         {
  4335         {
  4311 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN UNKNOWN");
  4336 TFLOGSTRING("TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN UNKNOWN");
  4312 OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_READALLADDRESSCONNECTED, "TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN UNKNOWN" );
  4337 OstTrace0( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_READALLADDRESSCONNECTED_TD, "TSY: CMmCallMessHandler::ReadAllAddressConnected; CPN UNKNOWN" );
  4313         aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  4338         aMobileCallInfo.iRemoteParty.iRemoteIdStatus =
  4314             RMobileCall::ERemoteIdentityUnknown;
  4339             RMobileCall::ERemoteIdentityUnknown;
  4315         aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Zero();
  4340         aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Zero();
  4316         }
  4341         }
  4317 
  4342 
  4340     const TIsiReceiveC &aIsiMessage,
  4365     const TIsiReceiveC &aIsiMessage,
  4341     TUint& aSbStartOffSet
  4366     TUint& aSbStartOffSet
  4342     )
  4367     )
  4343     {
  4368     {
  4344 TFLOGSTRING("TSY: CMmCallMessHandler::ReadCallInfo");
  4369 TFLOGSTRING("TSY: CMmCallMessHandler::ReadCallInfo");
  4345 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_READCALLINFO, "CMmCallMessHandler::ReadCallInfo" );
  4370 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_READCALLINFO_TD, "CMmCallMessHandler::ReadCallInfo" );
  4346 
  4371 
  4347      // Get presentation indicator (four bits (1-4))
  4372      // Get presentation indicator (four bits (1-4))
  4348     TUint8 origInfoPresentInd( aIsiMessage.Get8bit(
  4373     TUint8 origInfoPresentInd( aIsiMessage.Get8bit(
  4349         aSbStartOffSet + CALL_MODEM_SB_ORIGIN_INFO_OFFSET_PRESENTATION ) &
  4374         aSbStartOffSet + CALL_MODEM_SB_ORIGIN_INFO_OFFSET_PRESENTATION ) &
  4350         KMaskBits5to7 );
  4375         KMaskBits5to7 );
  4378     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  4403     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  4379     RMobileCall::TMobileCallStatus& aStatusETel
  4404     RMobileCall::TMobileCallStatus& aStatusETel
  4380     )
  4405     )
  4381     {
  4406     {
  4382 TFLOGSTRING("TSY: CMmCallMessHandler::CompleteIncomingCallNotif");
  4407 TFLOGSTRING("TSY: CMmCallMessHandler::CompleteIncomingCallNotif");
  4383 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_COMPLETEINCOMINGCALLNOTIF, "CMmCallMessHandler::CompleteIncomingCallNotif" );
  4408 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_COMPLETEINCOMINGCALLNOTIF_TD, "CMmCallMessHandler::CompleteIncomingCallNotif" );
  4384 
  4409 
  4385     if ( RMobileCall::EStatusRinging == aStatusETel )
  4410     if ( RMobileCall::EStatusRinging == aStatusETel )
  4386         {
  4411         {
  4387         // If call has been waiting, it is already notified
  4412         // If call has been waiting, it is already notified
  4388         // (see error item MEKK-5ZMKHG).
  4413         // (see error item MEKK-5ZMKHG).
  4397             // Pack mobile call info
  4422             // Pack mobile call info
  4398             callData.PackData( &aMobileCallInfo );
  4423             callData.PackData( &aMobileCallInfo );
  4399 
  4424 
  4400             // Complete IncomingCall notification
  4425             // Complete IncomingCall notification
  4401 TFLOGSTRING("TSY: CMmCallMessHandler::CompleteIncomingCallNotif - iWaitingCall != aMobileCallInfo.iCallId");
  4426 TFLOGSTRING("TSY: CMmCallMessHandler::CompleteIncomingCallNotif - iWaitingCall != aMobileCallInfo.iCallId");
  4402 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_COMPLETEINCOMINGCALLNOTIF, "CMmCallMessHandler::CompleteIncomingCallNotif - iWaitingCall != aMobileCallInfo.iCallId" );
  4427 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_COMPLETEINCOMINGCALLNOTIF_TD, "CMmCallMessHandler::CompleteIncomingCallNotif - iWaitingCall != aMobileCallInfo.iCallId" );
  4403 
  4428 
  4404             iMessageRouter->Complete(
  4429             iMessageRouter->Complete(
  4405                 EEtelLineNotifyIncomingCall,
  4430                 EEtelLineNotifyIncomingCall,
  4406                 &callData,
  4431                 &callData,
  4407                 KErrNone );
  4432                 KErrNone );
  4409             // If UUS data found complete Receive UUI.
  4434             // If UUS data found complete Receive UUI.
  4410             // Receive UUI is always completed after notify incoming call.
  4435             // Receive UUI is always completed after notify incoming call.
  4411             if ( 0 < iReceivedUusData.Length() )
  4436             if ( 0 < iReceivedUusData.Length() )
  4412                 {
  4437                 {
  4413 TFLOGSTRING("TSY: CMmCallMessHandler::CompleteIncomingCallNotif - Completing receive uui");
  4438 TFLOGSTRING("TSY: CMmCallMessHandler::CompleteIncomingCallNotif - Completing receive uui");
  4414 OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_COMPLETEINCOMINGCALLNOTIF, "CMmCallMessHandler::CompleteIncomingCallNotif - Completing receive uui" );
  4439 OstTrace0( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_COMPLETEINCOMINGCALLNOTIF_TD, "CMmCallMessHandler::CompleteIncomingCallNotif - Completing receive uui" );
  4415 
  4440 
  4416                 callData.PackData( &iReceivedUusData );
  4441                 callData.PackData( &iReceivedUusData );
  4417                 iMessageRouter->Complete(
  4442                 iMessageRouter->Complete(
  4418                     EMobileCallReceiveUUI,
  4443                     EMobileCallReceiveUUI,
  4419                     &callData,
  4444                     &callData,
  4438     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  4463     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  4439     RMobileCall::TMobileCallStatus& aStatusETel,
  4464     RMobileCall::TMobileCallStatus& aStatusETel,
  4440     TInt aResultETel )
  4465     TInt aResultETel )
  4441     {
  4466     {
  4442 TFLOGSTRING("TSY: CMmCallMessHandler::CompleteMobileCallInfoChange");
  4467 TFLOGSTRING("TSY: CMmCallMessHandler::CompleteMobileCallInfoChange");
  4443 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_COMPLETEMOBILECALLINFOANDSTATUSCHANGE, "CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange" );
  4468 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_COMPLETEMOBILECALLINFOANDSTATUSCHANGE_TD, "CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange" );
  4444 
  4469 
  4445 TFLOGSTRING3("TSY: CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aStatusETel=%d;aResultETel=%d", aStatusETel, aResultETel);
  4470 TFLOGSTRING3("TSY: CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aStatusETel=%d;aResultETel=%d", aStatusETel, aResultETel);
  4446 TFLOGSTRING2("TSY: CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber=%S", &aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber);
  4471 TFLOGSTRING2("TSY: CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber=%S", &aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber);
  4447 TFLOGSTRING2("TSY: CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aMobileCallInfo.iValid=%x", aMobileCallInfo.iValid);
  4472 TFLOGSTRING2("TSY: CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aMobileCallInfo.iValid=%x", aMobileCallInfo.iValid);
  4448 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_COMPLETEMOBILECALLINFOANDSTATUSCHANGE, "CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aStatusETel=%d;aResultETel=%d", aStatusETel, aResultETel );
  4473 OstTraceExt2( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_COMPLETEMOBILECALLINFOANDSTATUSCHANGE_TD, "CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aStatusETel=%d;aResultETel=%d", aStatusETel, aResultETel );
  4449 OstTraceExt1( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_COMPLETEMOBILECALLINFOANDSTATUSCHANGE, "CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber=%S", aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber );
  4474 OstTraceExt1( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_COMPLETEMOBILECALLINFOANDSTATUSCHANGE_TD, "CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber=%S", aMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber );
  4450 OstTrace1( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_COMPLETEMOBILECALLINFOANDSTATUSCHANGE, "CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aMobileCallInfo.iValid=%x", aMobileCallInfo.iValid );
  4475 OstTrace1( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_COMPLETEMOBILECALLINFOANDSTATUSCHANGE_TD, "CMmCallMessHandler::CompleteMobileCallInfoAndStatusChange;aMobileCallInfo.iValid=%x", aMobileCallInfo.iValid );
  4451 
  4476 
  4452     // Call data package
  4477     // Call data package
  4453     CCallDataPackage callData;
  4478     CCallDataPackage callData;
  4454     callData.SetCallIdAndMode(
  4479     callData.SetCallIdAndMode(
  4455         aMobileCallInfo.iCallId,
  4480         aMobileCallInfo.iCallId,
  4482     const TIsiReceiveC& /*aIsiMessage*/,
  4507     const TIsiReceiveC& /*aIsiMessage*/,
  4483     TInt /*aError*/ )
  4508     TInt /*aError*/ )
  4484     {
  4509     {
  4485     // None
  4510     // None
  4486 TFLOGSTRING("TSY: CMmCallMessHandler::HandleError.");
  4511 TFLOGSTRING("TSY: CMmCallMessHandler::HandleError.");
  4487 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_HANDLEERROR, "CMmCallMessHandler::HandleError" );
  4512 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_HANDLEERROR_TD, "CMmCallMessHandler::HandleError" );
  4488     }
  4513     }
  4489 
  4514 
  4490 // -----------------------------------------------------------------------------
  4515 // -----------------------------------------------------------------------------
  4491 // CMmCallMessHandler::FillCauseOfNoCli
  4516 // CMmCallMessHandler::FillCauseOfNoCli
  4492 // This method maps the Domestic OS cause of no CLI (Calling Line ID) to the
  4517 // This method maps the Domestic OS cause of no CLI (Calling Line ID) to the
  4497 void CMmCallMessHandler::FillCauseOfNoCli(
  4522 void CMmCallMessHandler::FillCauseOfNoCli(
  4498     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  4523     RMobileCall::TMobileCallInfoV1& aMobileCallInfo,
  4499     TUint8 aCauseOfNoCli )
  4524     TUint8 aCauseOfNoCli )
  4500     {
  4525     {
  4501 TFLOGSTRING2("TSY: CMmCallMessHandler::FillCauseOfNoCli. cause:%d", aCauseOfNoCli);
  4526 TFLOGSTRING2("TSY: CMmCallMessHandler::FillCauseOfNoCli. cause:%d", aCauseOfNoCli);
  4502 OstTraceExt1( TRACE_NORMAL, CMMCALLMESSHANDLER_FILLCAUSEOFNOCLI, "CMmCallMessHandler::FillCauseOfNoCli;aCauseOfNoCli=%hhu", aCauseOfNoCli );
  4527 OstTraceExt1( TRACE_NORMAL,  CMMCALLMESSHANDLER_FILLCAUSEOFNOCLI_TD, "CMmCallMessHandler::FillCauseOfNoCli;aCauseOfNoCli=%hhu", aCauseOfNoCli );
  4503 
  4528 
  4504     switch( aCauseOfNoCli )
  4529     switch( aCauseOfNoCli )
  4505         {
  4530         {
  4506         // Cause of No CLI is "reject by user"
  4531         // Cause of No CLI is "reject by user"
  4507         case CALL_MODEM_CLI_REJECT_BY_USER:
  4532         case CALL_MODEM_CLI_REJECT_BY_USER:
  4552             break;
  4577             break;
  4553             }
  4578             }
  4554         default:
  4579         default:
  4555             {
  4580             {
  4556 TFLOGSTRING("TSY: CMmCallMessHandler::FillCauseOfNoCli. Switch cause case default");
  4581 TFLOGSTRING("TSY: CMmCallMessHandler::FillCauseOfNoCli. Switch cause case default");
  4557 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_FILLCAUSEOFNOCLI, "CMmCallMessHandler::FillCauseOfNoCli. Switch cause case default" );
  4582 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_FILLCAUSEOFNOCLI_TD, "CMmCallMessHandler::FillCauseOfNoCli. Switch cause case default" );
  4558             // Keep aMobileCallInfo.iRemoteParty.iRemoteIdStatus unchanged
  4583             // Keep aMobileCallInfo.iRemoteParty.iRemoteIdStatus unchanged
  4559             break;
  4584             break;
  4560             }
  4585             }
  4561         }
  4586         }
  4562     }
  4587     }
  4567 // -----------------------------------------------------------------------------
  4592 // -----------------------------------------------------------------------------
  4568 //
  4593 //
  4569 void CMmCallMessHandler::InitializeDataportL()
  4594 void CMmCallMessHandler::InitializeDataportL()
  4570     {
  4595     {
  4571 TFLOGSTRING("NTSY: CMmCallMessHandler::InitializeDataportL()");
  4596 TFLOGSTRING("NTSY: CMmCallMessHandler::InitializeDataportL()");
  4572 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_INITIALIZEDATAPORTL, "CMmCallMessHandler::InitializeDataportL" );
  4597 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_INITIALIZEDATAPORTL_TD, "CMmCallMessHandler::InitializeDataportL" );
  4573 
  4598 
  4574     // SIM is ready, start dataport handling
  4599     // SIM is ready, start dataport handling
  4575     if ( !iDataPortHandler )
  4600     if ( !iDataPortHandler )
  4576         {
  4601         {
  4577 TFLOGSTRING("NTSY: CMmCallMessHandler::InitializeDataportL - Create pipe for videotelephony");
  4602 TFLOGSTRING("NTSY: CMmCallMessHandler::InitializeDataportL - Create pipe for videotelephony");
  4578 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_INITIALIZEDATAPORTL, "CMmCallMessHandler::InitializeDataportL - Create pipe for videotelephony" );
  4603 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_INITIALIZEDATAPORTL_TD, "CMmCallMessHandler::InitializeDataportL - Create pipe for videotelephony" );
       
  4604         // For testtool
       
  4605 #ifndef __WINSCW__
  4579         iDataPortHandler = CMmDataPortHandler::NewL( iMessageRouter );
  4606         iDataPortHandler = CMmDataPortHandler::NewL( iMessageRouter );
  4580         User::LeaveIfError( PnsPipeCreateReq( PN_PIPE_ENABLE ) );
  4607 #endif /* __WINSCW__ */
       
  4608         User::LeaveIfError( PnsPipeCreateReq() );
  4581         }
  4609         }
  4582     }
  4610     }
  4583 
  4611 
  4584 // -----------------------------------------------------------------------------
  4612 // -----------------------------------------------------------------------------
  4585 // CMmCallMessHandler::ActivateUUS()
  4613 // CMmCallMessHandler::ActivateUUS()
  4588 //
  4616 //
  4589 TInt CMmCallMessHandler::ActivateUUS(
  4617 TInt CMmCallMessHandler::ActivateUUS(
  4590     const CMmDataPackage* aDataPackage )
  4618     const CMmDataPackage* aDataPackage )
  4591     {
  4619     {
  4592 TFLOGSTRING( "TSY: CMmCallMessHandler::ActivateUUS. Unpacking UUS data." );
  4620 TFLOGSTRING( "TSY: CMmCallMessHandler::ActivateUUS. Unpacking UUS data." );
  4593 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_ACTIVATEUUS, "CMmCallMessHandler::ActivateUUS" );
  4621 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_ACTIVATEUUS_TD, "CMmCallMessHandler::ActivateUUS" );
  4594 
  4622 
  4595     TInt ret( KErrNone );
  4623     TInt ret( KErrNone );
  4596 
  4624 
  4597     // Reset obsolated data... just in case
  4625     // Reset obsolated data... just in case
  4598     iUusData.iUUI.Zero();
  4626     iUusData.iUUI.Zero();
  4602     aDataPackage->UnPackData( iUusData );
  4630     aDataPackage->UnPackData( iUusData );
  4603 
  4631 
  4604     if ( RMobileCall::KUUS1Implicit != iUusData.iServiceReq )
  4632     if ( RMobileCall::KUUS1Implicit != iUusData.iServiceReq )
  4605         {
  4633         {
  4606 TFLOGSTRING2( "TSY: CMmCallMessHandler::ActivateUUS. Service type is not supported (%d)!", iUusData.iServiceReq );
  4634 TFLOGSTRING2( "TSY: CMmCallMessHandler::ActivateUUS. Service type is not supported (%d)!", iUusData.iServiceReq );
  4607 OstTrace1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_ACTIVATEUUS, "CMmCallMessHandler::ActivateUUS;Service type is not supported (%d)", iUusData.iServiceReq );
  4635 OstTrace1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_ACTIVATEUUS_TD, "CMmCallMessHandler::ActivateUUS;Service type is not supported (%d)", iUusData.iServiceReq );
  4608         ret = KErrNotSupported;
  4636         ret = KErrNotSupported;
  4609         }
  4637         }
  4610 
  4638 
  4611     return ret;
  4639     return ret;
  4612     }
  4640     }
  4618 // -----------------------------------------------------------------------------
  4646 // -----------------------------------------------------------------------------
  4619 //
  4647 //
  4620 void CMmCallMessHandler::InfoPpDataReadReq()
  4648 void CMmCallMessHandler::InfoPpDataReadReq()
  4621     {
  4649     {
  4622 TFLOGSTRING( "TSY: CMmCallMessHandler::InfoPpDataReadReq" );
  4650 TFLOGSTRING( "TSY: CMmCallMessHandler::InfoPpDataReadReq" );
  4623 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_INFOPPDATAREADREQ, "CMmCallMessHandler::InfoPpDataReadReq" );
  4651 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_INFOPPDATAREADREQ_TD, "CMmCallMessHandler::InfoPpDataReadReq" );
  4624 
  4652 
  4625     // Create INFO_SB_PP_DATA subblock with only one PP feature (12 bytes)
  4653     // Create INFO_SB_PP_DATA subblock with only one PP feature (12 bytes)
  4626     TBuf8<12> infoSbPpBuf;
  4654     TBuf8<SIZE_INFO_SB_PP_DATA> infoSbPpBuf;
  4627     TIsiSubBlock infoSbPp(
  4655     TIsiSubBlock infoSbPp(
  4628         infoSbPpBuf,
  4656         infoSbPpBuf,
  4629         INFO_SB_PP_DATA,
  4657         INFO_SB_PP_DATA,
  4630         EIsiSubBlockTypeId8Len16 );
  4658         EIsiSubBlockTypeId8Len16 );
  4631     infoSbPpBuf.Append( 0 ); // Customer ID
  4659     infoSbPpBuf.Append( 0 ); // Customer ID
  4647     infoSbPpBuf.Append( 0 );
  4675     infoSbPpBuf.Append( 0 );
  4648 
  4676 
  4649     // Create INFO_PP_READ_REQ message:
  4677     // Create INFO_PP_READ_REQ message:
  4650     // batch mode (1) + number of SB (1) + INFO_SB_PP_DATA sub block with
  4678     // batch mode (1) + number of SB (1) + INFO_SB_PP_DATA sub block with
  4651     // only one PP feature (12)
  4679     // only one PP feature (12)
  4652     TBuf8<14> infoPpReadReq;
  4680     TBuf8<SIZE_INFO_PP_DATA_READ_REQ + SIZE_INFO_SB_PP_DATA> infoPpReadReq;
  4653 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
  4681 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
  4654     infoPpReadReq.Append( INFO_PP_PROD_PROFILE_FEATURE ); // No batch reading
  4682     infoPpReadReq.Append( INFO_PP_PROD_PROFILE_FEATURE ); // No batch reading
  4655 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
  4683 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
  4656     infoPpReadReq.Append( INFO_PP_FEATURE ); // No batch reading
  4684     infoPpReadReq.Append( INFO_PP_FEATURE ); // No batch reading
  4657 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
  4685 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
  4679     const TIsiReceiveC &aIsiMessage )
  4707     const TIsiReceiveC &aIsiMessage )
  4680     {
  4708     {
  4681     TUint8 status = aIsiMessage.Get8bit(
  4709     TUint8 status = aIsiMessage.Get8bit(
  4682         ISI_HEADER_SIZE + INFO_PP_DATA_READ_RESP_OFFSET_STATUS );
  4710         ISI_HEADER_SIZE + INFO_PP_DATA_READ_RESP_OFFSET_STATUS );
  4683 TFLOGSTRING2( "TSY: CMmCallMessHandler::InfoPpDataReadResp, status=%d.", status );
  4711 TFLOGSTRING2( "TSY: CMmCallMessHandler::InfoPpDataReadResp, status=%d.", status );
  4684 OstTraceExt1( TRACE_NORMAL, CMMCALLMESSHANDLER_INFOPPDATAREADRESP, "CMmCallMessHandler::InfoPpDataReadResp;status=%hhu", status );
  4712 OstTraceExt1( TRACE_NORMAL,  CMMCALLMESSHANDLER_INFOPPDATAREADRESP_TD, "CMmCallMessHandler::InfoPpDataReadResp;status=%hhu", status );
  4685 
  4713 
  4686     // iHSDPADisabledInPp is EFalse by default, change only if PP bit
  4714     // iHSDPADisabledInPp is EFalse by default, change only if PP bit
  4687     // is set to "HSDPA_HSUPA_DISABLED".
  4715     // is set to "HSDPA_HSUPA_DISABLED".
  4688     if ( INFO_OK == status )
  4716     if ( INFO_OK == status )
  4689         {
  4717         {
  4700             if ( INFO_PP_WCDMA_HS_CHANNEL_SUPPORT_HSDPA_HSUPA_DISABLED
  4728             if ( INFO_PP_WCDMA_HS_CHANNEL_SUPPORT_HSDPA_HSUPA_DISABLED
  4701                     == ppFeatureValue )
  4729                     == ppFeatureValue )
  4702                 {
  4730                 {
  4703                 iHSDPADisabledInPp = ETrue;
  4731                 iHSDPADisabledInPp = ETrue;
  4704 TFLOGSTRING( "TSY: CMmCallMessHandler::InfoPpDataReadResp: HSDPA is disabled in PP." );
  4732 TFLOGSTRING( "TSY: CMmCallMessHandler::InfoPpDataReadResp: HSDPA is disabled in PP." );
  4705 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_INFOPPDATAREADRESP, "CMmCallMessHandler::InfoPpDataReadResp: HSDPA is disabled in PP" );
  4733 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_INFOPPDATAREADRESP_TD, "CMmCallMessHandler::InfoPpDataReadResp: HSDPA is disabled in PP" );
  4706                 } // No else, ignore other values
  4734                 } // No else, ignore other values
  4707             } // No else, ignore missing sub block
  4735             } // No else, ignore missing sub block
  4708         } // No else, ignore failed reading
  4736         } // No else, ignore failed reading
  4709     }
  4737     }
  4710 
  4738 
  4714 // -----------------------------------------------------------------------------
  4742 // -----------------------------------------------------------------------------
  4715 //
  4743 //
  4716 void CMmCallMessHandler::GpdsContextsClearReq()
  4744 void CMmCallMessHandler::GpdsContextsClearReq()
  4717     {
  4745     {
  4718 TFLOGSTRING( "TSY: CMmCallMessHandler::GpdsContextsClearReq" );
  4746 TFLOGSTRING( "TSY: CMmCallMessHandler::GpdsContextsClearReq" );
  4719 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_GPDSCONTEXTSCLEARREQ, "CMmCallMessHandler::GpdsContextsClearReq" );
  4747 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_GPDSCONTEXTSCLEARREQ_TD, "CMmCallMessHandler::GpdsContextsClearReq" );
  4720 
  4748 
  4721     // Start emergency timer
  4749     // Start emergency timer
  4722     iEmergencyTimer.StartEmergencyTimer();
  4750     iEmergencyTimer.StartEmergencyTimer();
  4723 
  4751 
  4724     // Ignore return value
  4752     // Ignore return value
  4736 // -----------------------------------------------------------------------------
  4764 // -----------------------------------------------------------------------------
  4737 //
  4765 //
  4738 void CMmCallMessHandler::GpdsContextsClearResp()
  4766 void CMmCallMessHandler::GpdsContextsClearResp()
  4739     {
  4767     {
  4740 TFLOGSTRING( "TSY: CMmCallMessHandler::GpdsContextsClearResp" );
  4768 TFLOGSTRING( "TSY: CMmCallMessHandler::GpdsContextsClearResp" );
  4741 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_GPDSCONTEXTSCLEARRESP, "CMmCallMessHandler::GpdsContextsClearResp" );
  4769 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_GPDSCONTEXTSCLEARRESP_TD, "CMmCallMessHandler::GpdsContextsClearResp" );
  4742 
  4770 
  4743     // Stop emergency timer
  4771     // Stop emergency timer
  4744     iEmergencyTimer.StopEmergencyTimer();
  4772     iEmergencyTimer.StopEmergencyTimer();
  4745 
  4773 
  4746     // When GPDS_CONTEXTS_CLEAR_RESP response comes, all data contexts have been
  4774     // When GPDS_CONTEXTS_CLEAR_RESP response comes, all data contexts have been
  4747     // shut down. Emergency call can now be set up.
  4775     // shut down. Emergency call can now be set up.
  4748     if ( iEmergCallDelayed )
  4776     if ( iEmergCallDelayed )
  4749         {
  4777         {
  4750 TFLOGSTRING( "TSY: CMmCallMessHandler::GpdsContextsClearResp - HSDPA workaround. Emergency call is created now." );
  4778 TFLOGSTRING( "TSY: CMmCallMessHandler::GpdsContextsClearResp - HSDPA workaround. Emergency call is created now." );
  4751 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_GPDSCONTEXTSCLEARRESP, "CMmCallMessHandler::GpdsContextsClearResp - HSDPA workaround. Emergency call is created now" );
  4779 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_GPDSCONTEXTSCLEARRESP_TD, "CMmCallMessHandler::GpdsContextsClearResp - HSDPA workaround. Emergency call is created now" );
  4752 
  4780 
  4753         TIsiSend callReq( iPhoNetSender->SendBufferDes() );
  4781         TIsiSend callReq( iPhoNetSender->SendBufferDes() );
  4754         TUint8 dosCallId( CALL_MODEM_ID_NONE );
  4782         TUint8 dosCallId( CALL_MODEM_ID_NONE );
  4755         // In the case when emergency number checking is needed to be ignored ¨
  4783         // In the case when emergency number checking is needed to be ignored ¨
  4756         // the destination address is delivered
  4784         // the destination address is delivered
  4790     TUint8& aNumOfSbInMsg,
  4818     TUint8& aNumOfSbInMsg,
  4791     TInt& aCurrentMsgOffset )
  4819     TInt& aCurrentMsgOffset )
  4792     {
  4820     {
  4793 
  4821 
  4794 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock");
  4822 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock");
  4795 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock" );
  4823 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock" );
  4796 
  4824 
  4797     iDestPostAddressIncluded = EFalse;
  4825     iDestPostAddressIncluded = EFalse;
  4798 
  4826 
  4799     // Get length of the given number
  4827     // Get length of the given number
  4800     TInt telNumLength( aTelNumber.Length() );
  4828     TInt telNumLength( aTelNumber.Length() );
  4801     TUint8 presentationInd( CSD_GSM_PRESENTATION_DEFAULT );
  4829     TUint8 presentationInd( CSD_GSM_PRESENTATION_DEFAULT );
  4802 
  4830 
  4803 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - aIdRestrict: %d", aIdRestrict);
  4831 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - aIdRestrict: %d", aIdRestrict);
  4804 OstTrace1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock;aIdRestrict=%d", aIdRestrict );
  4832 OstTrace1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock;aIdRestrict=%d", aIdRestrict );
  4805 
  4833 
  4806     if ( KTelephonyNumberMaxLength < telNumLength )
  4834     if ( KTelephonyNumberMaxLength < telNumLength )
  4807         {
  4835         {
  4808         telNumLength = KTelephonyNumberMaxLength;
  4836         telNumLength = KTelephonyNumberMaxLength;
  4809         }
  4837         }
  4852         // Set presentationInd based on prefix
  4880         // Set presentationInd based on prefix
  4853         if ( '*' == ( aTelNumber )[0] )
  4881         if ( '*' == ( aTelNumber )[0] )
  4854             {
  4882             {
  4855             presentationInd = CSD_PRESENTATION_ALLOWED;
  4883             presentationInd = CSD_PRESENTATION_ALLOWED;
  4856 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by PREFIX = CSD_PRESENTATION_ALLOWED");
  4884 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by PREFIX = CSD_PRESENTATION_ALLOWED");
  4857 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by PREFIX = CSD_PRESENTATION_ALLOWED" );
  4885 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by PREFIX = CSD_PRESENTATION_ALLOWED" );
  4858             }
  4886             }
  4859         else if ( '#' == ( aTelNumber )[0] )
  4887         else if ( '#' == ( aTelNumber )[0] )
  4860             {
  4888             {
  4861             presentationInd = CSD_PRESENTATION_RESTRICTED;
  4889             presentationInd = CSD_PRESENTATION_RESTRICTED;
  4862 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by PREFIX = CSD_PRESENTATION_RESTRICTED");
  4890 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by PREFIX = CSD_PRESENTATION_RESTRICTED");
  4863 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by PREFIX = CSD_PRESENTATION_RESTRICTED" );
  4891 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by PREFIX = CSD_PRESENTATION_RESTRICTED" );
  4864             }
  4892             }
  4865         }
  4893         }
  4866     else
  4894     else
  4867         {
  4895         {
  4868         // Set presentationInd based on aIdRestrict
  4896         // Set presentationInd based on aIdRestrict
  4870             {
  4898             {
  4871             case RMobileCall::ESendMyId:
  4899             case RMobileCall::ESendMyId:
  4872                 {
  4900                 {
  4873                 presentationInd = CSD_PRESENTATION_ALLOWED; //0x00
  4901                 presentationInd = CSD_PRESENTATION_ALLOWED; //0x00
  4874 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_PRESENTATION_ALLOWED");
  4902 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_PRESENTATION_ALLOWED");
  4875 OstTrace0( TRACE_NORMAL, DUP4_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_PRESENTATION_ALLOWED" );
  4903 OstTrace0( TRACE_NORMAL,  DUP4_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_PRESENTATION_ALLOWED" );
  4876                 break;
  4904                 break;
  4877                 }
  4905                 }
  4878             case RMobileCall::EDontSendMyId:
  4906             case RMobileCall::EDontSendMyId:
  4879                 {
  4907                 {
  4880                 presentationInd = CSD_PRESENTATION_RESTRICTED; //0x01
  4908                 presentationInd = CSD_PRESENTATION_RESTRICTED; //0x01
  4881 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_PRESENTATION_RESTRICTED");
  4909 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_PRESENTATION_RESTRICTED");
  4882 OstTrace0( TRACE_NORMAL, DUP5_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_PRESENTATION_RESTRICTED" );
  4910 OstTrace0( TRACE_NORMAL,  DUP5_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_PRESENTATION_RESTRICTED" );
  4883                 break;
  4911                 break;
  4884                 }
  4912                 }
  4885             case RMobileCall::EIdRestrictDefault:
  4913             case RMobileCall::EIdRestrictDefault:
  4886             default:
  4914             default:
  4887                 {
  4915                 {
  4888                 presentationInd = CSD_GSM_PRESENTATION_DEFAULT; //0x07
  4916                 presentationInd = CSD_GSM_PRESENTATION_DEFAULT; //0x07
  4889 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_GSM_PRESENTATION_DEFAULT");
  4917 TFLOGSTRING("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_GSM_PRESENTATION_DEFAULT");
  4890 OstTrace0( TRACE_NORMAL, DUP6_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_GSM_PRESENTATION_DEFAULT" );
  4918 OstTrace0( TRACE_NORMAL,  DUP6_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock -- presentationInd by aIdRestrict = CSD_GSM_PRESENTATION_DEFAULT" );
  4891                 break;
  4919                 break;
  4892                 }
  4920                 }
  4893             }
  4921             }
  4894         }
  4922         }
  4895 
  4923 
  4954     aCurrentMsgOffset =
  4982     aCurrentMsgOffset =
  4955         aCurrentMsgOffset + destinationAddressBuf.Length();
  4983         aCurrentMsgOffset + destinationAddressBuf.Length();
  4956     aNumOfSbInMsg++;
  4984     aNumOfSbInMsg++;
  4957 
  4985 
  4958 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  4986 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  4959 OstTrace1( TRACE_NORMAL, DUP10_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_ADDRESS - Subblock Count: %d", aNumOfSbInMsg );
  4987 OstTrace1( TRACE_NORMAL,  DUP10_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_ADDRESS - Subblock Count: %d", aNumOfSbInMsg );
  4960 
  4988 
  4961 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - destAddress: %S", &destAddress);
  4989 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - destAddress: %S", &destAddress);
  4962 OstTraceExt2( TRACE_NORMAL, DUP11_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock;destAddress=%d;iDataRateCode=%S", destAddress, iDataRateCode );
  4990 OstTraceExt2( TRACE_NORMAL,  DUP11_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock;destAddress=%d;iDataRateCode=%S", destAddress, iDataRateCode );
  4963 
  4991 
  4964     if ( preAddressSupported )
  4992     if ( preAddressSupported )
  4965         {
  4993         {
  4966         // Pre address length can be KTelephonyNumberMaxLength
  4994         // Pre address length can be KTelephonyNumberMaxLength
  4967         TBuf16<KTelephonyNumberMaxLength> preAddress;
  4995         TBuf16<KTelephonyNumberMaxLength> preAddress;
  4992         aCurrentMsgOffset =
  5020         aCurrentMsgOffset =
  4993             aCurrentMsgOffset + preAddressBuf.Length();
  5021             aCurrentMsgOffset + preAddressBuf.Length();
  4994         aNumOfSbInMsg++;
  5022         aNumOfSbInMsg++;
  4995 
  5023 
  4996 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_PRE_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  5024 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_PRE_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  4997 OstTrace1( TRACE_NORMAL, DUP12_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_PRE_ADDRESS - Subblock Count: %d", aNumOfSbInMsg );
  5025 OstTrace1( TRACE_NORMAL,  DUP12_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_PRE_ADDRESS - Subblock Count: %d", aNumOfSbInMsg );
  4998         }
  5026         }
  4999     // No else
  5027     // No else
  5000 
  5028 
  5001     if ( postAddressSupported )
  5029     if ( postAddressSupported )
  5002         {
  5030         {
  5035 
  5063 
  5036         // Destination post address included
  5064         // Destination post address included
  5037         iDestPostAddressIncluded = ETrue;
  5065         iDestPostAddressIncluded = ETrue;
  5038 
  5066 
  5039 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_POST_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  5067 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_POST_ADDRESS - Subblock Count:  %d", aNumOfSbInMsg );
  5040 OstTrace1( TRACE_NORMAL, DUP13_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_POST_ADDRESS - Subblock Count: %d", aNumOfSbInMsg );
  5068 OstTrace1( TRACE_NORMAL,  DUP13_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_DESTINATION_POST_ADDRESS - Subblock Count: %d", aNumOfSbInMsg );
  5041     }
  5069     }
  5042     // No else
  5070     // No else
  5043 
  5071 
  5044     // Create Cbst_Params subblock.
  5072     // Create Cbst_Params subblock.
  5045     TBuf8<SIZE_CSD_CBST_PARAMS>  CbstParamsBuf;
  5073     TBuf8<SIZE_CSD_CBST_PARAMS>  CbstParamsBuf;
  5066     aCurrentMsgOffset =
  5094     aCurrentMsgOffset =
  5067         aCurrentMsgOffset + CbstParamsBuf.Length();
  5095         aCurrentMsgOffset + CbstParamsBuf.Length();
  5068     aNumOfSbInMsg++;
  5096     aNumOfSbInMsg++;
  5069 
  5097 
  5070 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_CBST_PARAMS - Subblock Count:  %d", aNumOfSbInMsg );
  5098 TFLOGSTRING2("TSY: CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_CBST_PARAMS - Subblock Count:  %d", aNumOfSbInMsg );
  5071 OstTrace1( TRACE_NORMAL, DUP14_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK, "CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_CBST_PARAMS - Subblock Count: %d", aNumOfSbInMsg );
  5099 OstTrace1( TRACE_NORMAL,  DUP14_CMMCALLMESSHANDLER_GETCSDCALLCONTROLREQSUBBLOCK_TD, "CMmCallMessHandler::GetCSDCallControlReqSubBlock - CSD_CBST_PARAMS - Subblock Count: %d", aNumOfSbInMsg );
  5072 
  5100 
  5073     }
  5101     }
  5074 
  5102 
  5075 // ----------------------------------------------------------------------------
  5103 // ----------------------------------------------------------------------------
  5076 // CMmCallMessHandler::csdCallControlReq
  5104 // CMmCallMessHandler::csdCallControlReq
  5079 // -----------------------------------------------------------------------------
  5107 // -----------------------------------------------------------------------------
  5080 //
  5108 //
  5081 TInt CMmCallMessHandler::CsdCallControlReq( TUint8 aCallOperId )
  5109 TInt CMmCallMessHandler::CsdCallControlReq( TUint8 aCallOperId )
  5082     {
  5110     {
  5083 TFLOGSTRING( "TSY: CMmCallMessHandler::CsdCallControlReq" );
  5111 TFLOGSTRING( "TSY: CMmCallMessHandler::CsdCallControlReq" );
  5084 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CSDCALLCONTROLREQ, "CMmCallMessHandler::CsdCallControlReq" );
  5112 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CSDCALLCONTROLREQ_TD, "CMmCallMessHandler::CsdCallControlReq" );
  5085 
  5113 
  5086     TBuf8<SIZE_CSD_CALL_CONTROL_REQ> data( 0 );
  5114     TBuf8<SIZE_CSD_CALL_CONTROL_REQ> data( 0 );
  5087 
  5115 
  5088     // Transaction ID
  5116     // Transaction ID
  5089     data.Append( KCallTransId );
  5117     data.Append( KCallTransId );
  5133 // -----------------------------------------------------------------------------
  5161 // -----------------------------------------------------------------------------
  5134 //
  5162 //
  5135 void CMmCallMessHandler::CsdCallControlResp( const TIsiReceiveC &aIsiMessage )
  5163 void CMmCallMessHandler::CsdCallControlResp( const TIsiReceiveC &aIsiMessage )
  5136     {
  5164     {
  5137 TFLOGSTRING( "TSY: CMmCallMessHandler::CsdCallControlResp" );
  5165 TFLOGSTRING( "TSY: CMmCallMessHandler::CsdCallControlResp" );
  5138 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CSDCALLCONTROLRESP, "CMmCallMessHandler::CsdCallControlResp" );
  5166 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CSDCALLCONTROLRESP_TD, "CMmCallMessHandler::CsdCallControlResp" );
  5139 
  5167 
  5140     // Get cause
  5168     // Get cause
  5141     TUint8 causeValue( aIsiMessage.Get8bit(
  5169     TUint8 causeValue( aIsiMessage.Get8bit(
  5142         ISI_HEADER_SIZE + CSD_CALL_CONTROL_RESP_OFFSET_CAUSE ) );
  5170         ISI_HEADER_SIZE + CSD_CALL_CONTROL_RESP_OFFSET_CAUSE ) );
  5143 
  5171 
  5144 TFLOGSTRING2( "TSY: CMmCallMessHandler::CsdCallControlResp. Cause value: %d", causeValue );
  5172 TFLOGSTRING2( "TSY: CMmCallMessHandler::CsdCallControlResp. Cause value: %d", causeValue );
  5145 OstTrace1( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_CSDCALLCONTROLRESP, "CMmCallMessHandler::CsdCallControlResp;causeValue=%d", causeValue );
  5173 OstTrace1( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_CSDCALLCONTROLRESP_TD, "CMmCallMessHandler::CsdCallControlResp;causeValue=%d", causeValue );
  5146 
  5174 
  5147     TUint8 oper_Id( aIsiMessage.Get8bit(
  5175     TUint8 oper_Id( aIsiMessage.Get8bit(
  5148         ISI_HEADER_SIZE + CSD_CALL_CONTROL_RESP_OFFSET_OPERID ) );
  5176         ISI_HEADER_SIZE + CSD_CALL_CONTROL_RESP_OFFSET_OPERID ) );
  5149 
  5177 
  5150 TFLOGSTRING2( "TSY: CMmCallMessHandler::CsdCallControlResp. Call operation id: %d", oper_Id );
  5178 TFLOGSTRING2( "TSY: CMmCallMessHandler::CsdCallControlResp. Call operation id: %d", oper_Id );
  5151 OstTrace1( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_CSDCALLCONTROLRESP, "CMmCallMessHandler::CsdCallControlResp;oper_Id=%d", oper_Id );
  5179 OstTrace1( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_CSDCALLCONTROLRESP_TD, "CMmCallMessHandler::CsdCallControlResp;oper_Id=%d", oper_Id );
  5152 
  5180 
  5153     TInt result( KErrNone );
  5181     TInt result( KErrNone );
  5154 
  5182 
  5155     // create call data package
  5183     // create call data package
  5156     CCallDataPackage callDataPackage;
  5184     CCallDataPackage callDataPackage;
  5208                 break;
  5236                 break;
  5209                 }
  5237                 }
  5210             default:
  5238             default:
  5211                 {
  5239                 {
  5212 TFLOGSTRING("TSY: CMmCallMessHandler::CsdCallControlResp. Switch oper_Id case default.");
  5240 TFLOGSTRING("TSY: CMmCallMessHandler::CsdCallControlResp. Switch oper_Id case default.");
  5213 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CSDCALLCONTROLRESP, "CMmCallMessHandler::CsdCallControlResp, Switch oper_Id case default" );
  5241 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CSDCALLCONTROLRESP_TD, "CMmCallMessHandler::CsdCallControlResp, Switch oper_Id case default" );
  5214                 break;
  5242                 break;
  5215                 }
  5243                 }
  5216             }
  5244             }
  5217         }
  5245         }
  5218     }
  5246     }
  5223 // -----------------------------------------------------------------------------
  5251 // -----------------------------------------------------------------------------
  5224 //
  5252 //
  5225 void CMmCallMessHandler::CsdVideoCallStatusInd( const TIsiReceiveC &aIsiMessage )
  5253 void CMmCallMessHandler::CsdVideoCallStatusInd( const TIsiReceiveC &aIsiMessage )
  5226     {
  5254     {
  5227 TFLOGSTRING( "TSY: CMmCallMessHandler::CsdVideoCallStatusInd" );
  5255 TFLOGSTRING( "TSY: CMmCallMessHandler::CsdVideoCallStatusInd" );
  5228 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND, "CMmCallMessHandler::CsdVideoCallStatusInd" );
  5256 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND_TD, "CMmCallMessHandler::CsdVideoCallStatusInd" );
  5229 
  5257 
  5230     iVideoCallStatus = aIsiMessage.Get8bit(
  5258     iVideoCallStatus = aIsiMessage.Get8bit(
  5231         ISI_HEADER_SIZE + CSD_VIDEO_CALL_STATUS_IND_OFFSET_STATUS );
  5259         ISI_HEADER_SIZE + CSD_VIDEO_CALL_STATUS_IND_OFFSET_STATUS );
  5232 
  5260 
  5233     // CSD_VIDEO_CALL_STATUS_CONNECT
  5261     // CSD_VIDEO_CALL_STATUS_CONNECT
  5239         callData.SetCallIdAndMode(
  5267         callData.SetCallIdAndMode(
  5240             iMobileCallInfo.iCallId, iMobileCallInfo.iService );
  5268             iMobileCallInfo.iCallId, iMobileCallInfo.iService );
  5241         if ( RMobileCall::EMobileOriginated == iCallDirection )
  5269         if ( RMobileCall::EMobileOriginated == iCallDirection )
  5242             {
  5270             {
  5243 TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd: MO call connected");
  5271 TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd: MO call connected");
  5244 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND, "CMmCallMessHandler::CsdVideoCallStatusInd: MO call connected" );
  5272 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND_TD, "CMmCallMessHandler::CsdVideoCallStatusInd: MO call connected" );
  5245             iMessageRouter->Complete(
  5273             iMessageRouter->Complete(
  5246                 EEtelCallDial, &callData, KErrNone );
  5274                 EEtelCallDial, &callData, KErrNone );
  5247             }
  5275             }
  5248         else if ( RMobileCall::EMobileTerminated == iCallDirection )
  5276         else if ( RMobileCall::EMobileTerminated == iCallDirection )
  5249             {
  5277             {
  5250 TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd: MT call connected");
  5278 TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd: MT call connected");
  5251 OstTrace0( TRACE_NORMAL, DUP3_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND, "CMmCallMessHandler::CsdVideoCallStatusInd: MT call connected" );
  5279 OstTrace0( TRACE_NORMAL,  DUP3_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND_TD, "CMmCallMessHandler::CsdVideoCallStatusInd: MT call connected" );
  5252             iMessageRouter->Complete(
  5280             iMessageRouter->Complete(
  5253                 EEtelCallAnswer, &callData, KErrNone );
  5281                 EEtelCallAnswer, &callData, KErrNone );
  5254             }
  5282             }
  5255         }
  5283         }
  5256     // no else
  5284     // no else
  5259     // fails
  5287     // fails
  5260     // reset call direction to avoid further unnecessary IPC completions
  5288     // reset call direction to avoid further unnecessary IPC completions
  5261     if ( iIsWaitingCall )
  5289     if ( iIsWaitingCall )
  5262         {
  5290         {
  5263 TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd. call direction reset to MT");
  5291 TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd. call direction reset to MT");
  5264 OstTrace0( TRACE_NORMAL, DUP5_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND, "CMmCallMessHandler::CsdVideoCallStatusInd. call direction reset to MT" );
  5292 OstTrace0( TRACE_NORMAL,  DUP5_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND_TD, "CMmCallMessHandler::CsdVideoCallStatusInd. call direction reset to MT" );
  5265         iCallDirection = RMobileCall::EMobileTerminated;
  5293         iCallDirection = RMobileCall::EMobileTerminated;
  5266         }
  5294         }
  5267     else
  5295     else
  5268         {
  5296         {
  5269 TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd. call direction reset to unknown");
  5297 TFLOGSTRING("TSY: CMmCallMessHandler::CsdVideoCallStatusInd. call direction reset to unknown");
  5270 OstTrace0( TRACE_NORMAL, DUP6_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND, "CMmCallMessHandler::CsdVideoCallStatusInd. call direction reset to unknown" );
  5298 OstTrace0( TRACE_NORMAL,  DUP6_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND_TD, "CMmCallMessHandler::CsdVideoCallStatusInd. call direction reset to unknown" );
  5271         iCallDirection = RMobileCall::EDirectionUnknown;
  5299         iCallDirection = RMobileCall::EDirectionUnknown;
  5272         }
  5300         }
  5273 TFLOGSTRING2( "TSY: CMmCallMessHandler::CsdVideoCallStatusInd. VideoCallStatus: %d", iVideoCallStatus );
  5301 TFLOGSTRING2( "TSY: CMmCallMessHandler::CsdVideoCallStatusInd. VideoCallStatus: %d", iVideoCallStatus );
  5274 OstTrace1( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND, "CMmCallMessHandler::CsdVideoCallStatusInd. VideoCallStatus: %d", iVideoCallStatus );
  5302 OstTrace1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_CSDVIDEOCALLSTATUSIND_TD, "CMmCallMessHandler::CsdVideoCallStatusInd. VideoCallStatus: %d", iVideoCallStatus );
  5275     }
  5303     }
  5276 
  5304 
  5277 // -----------------------------------------------------------------------------
  5305 // -----------------------------------------------------------------------------
  5278 // CMmCallMessHandler::CsdMultimediaDataRateInd
  5306 // CMmCallMessHandler::CsdMultimediaDataRateInd
  5279 // Breaks received CSD_MULTIMEDIA_DATA_RATE_IND ISI message.
  5307 // Breaks received CSD_MULTIMEDIA_DATA_RATE_IND ISI message.
  5280 // -----------------------------------------------------------------------------
  5308 // -----------------------------------------------------------------------------
  5281 //
  5309 //
  5282 void CMmCallMessHandler::CsdMultimediaDataRateInd( const TIsiReceiveC &aIsiMessage )
  5310 void CMmCallMessHandler::CsdMultimediaDataRateInd( const TIsiReceiveC &aIsiMessage )
  5283     {
  5311     {
  5284 TFLOGSTRING( "TSY: CMmCallMessHandler::CsdMultimediaDataRateInd" );
  5312 TFLOGSTRING( "TSY: CMmCallMessHandler::CsdMultimediaDataRateInd" );
  5285 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_CSDMULTIMEDIADATARATEIND, "CMmCallMessHandler::CsdMultimediaDataRateInd" );
  5313 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_CSDMULTIMEDIADATARATEIND_TD, "CMmCallMessHandler::CsdMultimediaDataRateInd" );
  5286 
  5314 
  5287     // Current maximum bearer rate for multimedia call in bits/s
  5315     // Current maximum bearer rate for multimedia call in bits/s
  5288     TUint dataRate( aIsiMessage.Get8bit(
  5316     TUint dataRate( aIsiMessage.Get8bit(
  5289         ISI_HEADER_SIZE + CSD_MULTIMEDIA_DATA_RATE_IND_OFFSET_RATE ) );
  5317         ISI_HEADER_SIZE + CSD_MULTIMEDIA_DATA_RATE_IND_OFFSET_RATE ) );
  5290 
  5318 
  5338     const TBool aIsMultimedia,
  5366     const TBool aIsMultimedia,
  5339     const TBool aIsWaitingCall )
  5367     const TBool aIsWaitingCall )
  5340     {
  5368     {
  5341 
  5369 
  5342 TFLOGSTRING3("TSY: CMmCallMessHandler::SetMobileCallInfo. Multimedia:%d, CallWaiting:%d", aIsMultimedia, aIsWaitingCall );
  5370 TFLOGSTRING3("TSY: CMmCallMessHandler::SetMobileCallInfo. Multimedia:%d, CallWaiting:%d", aIsMultimedia, aIsWaitingCall );
  5343 OstTraceExt2( TRACE_NORMAL, CMMCALLMESSHANDLER_SETMOBILECALLINFO, "CMmCallMessHandler::SetMobileCallInfo;aIsMultimedia=%d;aIsWaitingCall=%d", aIsMultimedia, aIsWaitingCall );
  5371 OstTraceExt2( TRACE_NORMAL,  CMMCALLMESSHANDLER_SETMOBILECALLINFO_TD, "CMmCallMessHandler::SetMobileCallInfo;aIsMultimedia=%d;aIsWaitingCall=%d", aIsMultimedia, aIsWaitingCall );
  5344 
  5372 
  5345 TFLOGSTRING("TSY: CMmCallMessHandler::SetMobileCallInfo. iStatus != RMobileCall::EStatusIdle");
  5373 TFLOGSTRING("TSY: CMmCallMessHandler::SetMobileCallInfo. iStatus != RMobileCall::EStatusIdle");
  5346 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_SETMOBILECALLINFO, "CMmCallMessHandler::SetMobileCallInfo, iStatus != RMobileCall::EStatusIdle" );
  5374 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_SETMOBILECALLINFO_TD, "CMmCallMessHandler::SetMobileCallInfo, iStatus != RMobileCall::EStatusIdle" );
  5347 
  5375 
  5348     // Is call multimedia/video
  5376     // Is call multimedia/video
  5349     iIsMultimedia = aIsMultimedia;
  5377     iIsMultimedia = aIsMultimedia;
  5350     // Is this a waiting call
  5378     // Is this a waiting call
  5351     iIsWaitingCall = aIsWaitingCall;
  5379     iIsWaitingCall = aIsWaitingCall;
  5454 TInt CMmCallMessHandler::DialDataCall(
  5482 TInt CMmCallMessHandler::DialDataCall(
  5455     const CCallDataPackage* aDataPackage )
  5483     const CCallDataPackage* aDataPackage )
  5456     {
  5484     {
  5457 
  5485 
  5458 TFLOGSTRING("TSY: CMmCallMessHandler::DialDataCall");
  5486 TFLOGSTRING("TSY: CMmCallMessHandler::DialDataCall");
  5459 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_DIALDATACALL, "CMmCallMessHandler::DialDataCall" );
  5487 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_DIALDATACALL_TD, "CMmCallMessHandler::DialDataCall" );
  5460 
  5488 
  5461     TInt ret( KErrNone );
  5489     TInt ret( KErrNone );
  5462     RMobileCall::TMobileCallParamsV1Pckg* callParams( NULL );
  5490     RMobileCall::TMobileCallParamsV1Pckg* callParams( NULL );
  5463     RMobileCall::TMobileCallInfoV1* callInfo( NULL );
  5491     RMobileCall::TMobileCallInfoV1* callInfo( NULL );
  5464     aDataPackage->UnPackData( &callParams, &callInfo );
  5492     aDataPackage->UnPackData( &callParams, &callInfo );
  5469     RMobileCall::TMobileCallParamsV1 recentCallParams( ( *paramsPckgV1 )() );
  5497     RMobileCall::TMobileCallParamsV1 recentCallParams( ( *paramsPckgV1 )() );
  5470 
  5498 
  5471     if ( callParams && callInfo )
  5499     if ( callParams && callInfo )
  5472         {
  5500         {
  5473 TFLOGSTRING("TSY: CMmCallMessHandler::DialDataCall. callParams and callInfo ok." );
  5501 TFLOGSTRING("TSY: CMmCallMessHandler::DialDataCall. callParams and callInfo ok." );
  5474 OstTrace0( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_DIALDATACALL, "CMmCallMessHandler::DialDataCall;callParams and callInfo ok." );
  5502 OstTrace0( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_DIALDATACALL_TD, "CMmCallMessHandler::DialDataCall;callParams and callInfo ok." );
  5475 
  5503 
  5476         // if CTSY does not set call id as valid we need to copy it from
  5504         // if CTSY does not set call id as valid we need to copy it from
  5477         // data package
  5505         // data package
  5478         if ( 0 == ( callInfo->iValid & RMobileCall::KCallId ) )
  5506         if ( 0 == ( callInfo->iValid & RMobileCall::KCallId ) )
  5479             {
  5507             {
  5480 TFLOGSTRING("TSY: CMmCallMessHandler::DialDataCall. Copy call mode into call info");
  5508 TFLOGSTRING("TSY: CMmCallMessHandler::DialDataCall. Copy call mode into call info");
  5481 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_DIALDATACALL, "CMmCallMessHandler::DialDataCall. Copy call mode into call info" );
  5509 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_DIALDATACALL_TD, "CMmCallMessHandler::DialDataCall. Copy call mode into call info" );
  5482             aDataPackage->GetCallIdAndMode(
  5510             aDataPackage->GetCallIdAndMode(
  5483                 callInfo->iCallId, callInfo->iService );
  5511                 callInfo->iCallId, callInfo->iService );
  5484             // service is always valid
  5512             // service is always valid
  5485             callInfo->iValid |= RMobileCall::KCallId;
  5513             callInfo->iValid |= RMobileCall::KCallId;
  5486             }
  5514             }
  5512 TInt CMmCallMessHandler::AnswerIncomingDataCall(
  5540 TInt CMmCallMessHandler::AnswerIncomingDataCall(
  5513     const CCallDataPackage* aCallDataPackage )
  5541     const CCallDataPackage* aCallDataPackage )
  5514     {
  5542     {
  5515 
  5543 
  5516     TFLOGSTRING("TSY: CMmCallMessHandler::AnswerIncomingDataCall");
  5544     TFLOGSTRING("TSY: CMmCallMessHandler::AnswerIncomingDataCall");
  5517 //OstTrace0( TRACE_NORMAL, CMMDATAPORTHANDLER_ANSWERINCOMINGDATACALL, "CMmCallMessHandler::AnswerIncomingDataCall" );
  5545 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_ANSWERINCOMINGDATACALL_TD, "CMmCallMessHandler::AnswerIncomingDataCall" );
  5518 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_ANSWERINCOMINGDATACALL, "CMmCallMessHandler::AnswerIncomingDataCall" );
       
  5519 
  5546 
  5520     TInt ret( KErrNone );
  5547     TInt ret( KErrNone );
  5521     TInt callId( KCallIdNone );
  5548     TInt callId( KCallIdNone );
  5522     RMobilePhone::TMobileService callMode( RMobilePhone::EServiceUnspecified );
  5549     RMobilePhone::TMobileService callMode( RMobilePhone::EServiceUnspecified );
  5523 
  5550 
  5524     aCallDataPackage->GetCallIdAndMode( callId, callMode );
  5551     aCallDataPackage->GetCallIdAndMode( callId, callMode );
  5525 
  5552 
  5526 TFLOGSTRING3("TSY: CMmCallMessHandler::AnswerIncomingDataCall. CallId:%d, CallMode:%d", callId, callMode);
  5553 TFLOGSTRING3("TSY: CMmCallMessHandler::AnswerIncomingDataCall. CallId:%d, CallMode:%d", callId, callMode);
  5527 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_ANSWERINCOMINGDATACALL, "CMmCallMessHandler::AnswerIncomingDataCall;callId=%d;callMode=%d", callId, callMode );
  5554 OstTraceExt2( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_ANSWERINCOMINGDATACALL_TD, "CMmCallMessHandler::AnswerIncomingDataCall;callId=%d;callMode=%d", callId, callMode );
  5528 
  5555 
  5529     // If we are answering an incoming call, the call status is not idle
  5556     // If we are answering an incoming call, the call status is not idle
  5530     if ( RMobileCall::EStatusIdle < iMobileCallInfo.iStatus )
  5557     if ( RMobileCall::EStatusIdle < iMobileCallInfo.iStatus )
  5531         {
  5558         {
  5532 TFLOGSTRING("TSY: CMmCallMessHandler::AnswerIncomingDataCall. Send ATA");
  5559 TFLOGSTRING("TSY: CMmCallMessHandler::AnswerIncomingDataCall. Send ATA");
  5533 OstTrace0( TRACE_NORMAL, DUP2_CMMCALLMESSHANDLER_ANSWERINCOMINGDATACALL, "CMmCallMessHandler::AnswerIncomingDataCall, Send ATA" );
  5560 OstTrace0( TRACE_NORMAL,  DUP2_CMMCALLMESSHANDLER_ANSWERINCOMINGDATACALL_TD, "CMmCallMessHandler::AnswerIncomingDataCall, Send ATA" );
  5534 
  5561 
  5535         // Answer the call
  5562         // Answer the call
  5536         CsdCallControlReq( CSD_CALL_ANSWER );
  5563         CsdCallControlReq( CSD_CALL_ANSWER );
  5537         }
  5564         }
  5538         // If we are setting auto answer, the status is unknown
  5565         // If we are setting auto answer, the status is unknown
  5555 //
  5582 //
  5556 TInt CMmCallMessHandler::HangUp(
  5583 TInt CMmCallMessHandler::HangUp(
  5557     const TInt aCallId )
  5584     const TInt aCallId )
  5558     {
  5585     {
  5559 TFLOGSTRING2("TSY: CMmCallMessHandler::HangUp - Call Id: %d", aCallId);
  5586 TFLOGSTRING2("TSY: CMmCallMessHandler::HangUp - Call Id: %d", aCallId);
  5560 OstTrace1( TRACE_NORMAL, CMMCALLMESSHANDLER_HANGUP, "CMmCallMessHandler::HangUp;aCallId=%d", aCallId );
  5587 OstTrace1( TRACE_NORMAL,  CMMCALLMESSHANDLER_HANGUP_TD, "CMmCallMessHandler::HangUp;aCallId=%d", aCallId );
  5561 
  5588 
  5562     TInt ret( KErrNone );
  5589     TInt ret( KErrNone );
  5563 
  5590 
  5564     // If valid call id
  5591     // If valid call id
  5565     if ( 0 < aCallId )
  5592     if ( 0 < aCallId )
  5586 // ----------------------------------------------------------------------------
  5613 // ----------------------------------------------------------------------------
  5587 // CMmCallMessHandler::PnsPipeCreateReq
  5614 // CMmCallMessHandler::PnsPipeCreateReq
  5588 // Construct a PNS_PIPE_CREATE_REQ ISI-message
  5615 // Construct a PNS_PIPE_CREATE_REQ ISI-message
  5589 // ----------------------------------------------------------------------------
  5616 // ----------------------------------------------------------------------------
  5590 //
  5617 //
  5591 TInt CMmCallMessHandler::PnsPipeCreateReq( const TUint8 aPipeStateAfter ) const
  5618 TInt CMmCallMessHandler::PnsPipeCreateReq() const
  5592     {
  5619     {
  5593     TFLOGSTRING("TSY: CMmCallMessHandler::PnsPipeCreateReq" );
  5620     TFLOGSTRING("TSY: CMmCallMessHandler::PnsPipeCreateReq" );
  5594 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_PNSPIPECREATEREQ, "CMmCallMessHandler::PnsPipeCreateReq" );
  5621 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_PNSPIPECREATEREQ_TD, "CMmCallMessHandler::PnsPipeCreateReq" );
  5595 
  5622 
  5596    // create buffer for isi msg data
  5623    // create buffer for isi msg data
  5597 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  5598     TBuf8<SIZE_PNS_PIPE_CREATE_REQ> data;
  5624     TBuf8<SIZE_PNS_PIPE_CREATE_REQ> data;
  5599 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
  5625 
  5600     TBuf8<SIZE_CM_PIPE_CREATE_REQ> data;
       
  5601 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  5602     // set message data
  5626     // set message data
  5603     data.Append( aPipeStateAfter );
  5627     data.Append( PN_PIPE_DISABLE );
  5604     data.Append( PN_MSG_PRIORITY_HIGH );
  5628     data.Append( PN_MSG_PRIORITY_HIGH );
  5605     data.Append( KFirstPepDevice );
  5629     data.Append( KFirstPepDevice );
  5606     data.Append( EIscNokiaDataport1 );
  5630     data.Append( EIscNokiaDataport1 );
  5607     data.Append( KFirstPepType );
  5631     data.Append( KFirstPepType );
  5608     data.Append( KCallPadding );
  5632     data.Append( KCallPadding );
  5623 //
  5647 //
  5624 void CMmCallMessHandler::PnsPipeCreateResp(
  5648 void CMmCallMessHandler::PnsPipeCreateResp(
  5625     const TIsiReceiveC& aIsiMessage )
  5649     const TIsiReceiveC& aIsiMessage )
  5626     {
  5650     {
  5627 TFLOGSTRING("TSY: CMmCallMessHandler::PnsPipeCreateResp");
  5651 TFLOGSTRING("TSY: CMmCallMessHandler::PnsPipeCreateResp");
  5628 OstTrace0( TRACE_NORMAL, CMMCALLMESSHANDLER_PNSPIPECREATERESP, "CMmCallMessHandler::PnsPipeCreateResp" );
  5652 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_PNSPIPECREATERESP_TD, "CMmCallMessHandler::PnsPipeCreateResp" );
       
  5653 
       
  5654     TInt err( KErrGeneral );
  5629 
  5655 
  5630     // Get transaction Id
  5656     // Get transaction Id
  5631     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
  5657     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
  5632 
  5658 
  5633     if ( KPipeTransID == transId )
  5659     if ( KPipeTransID == transId )
  5634         {
  5660         {
  5635         iPipeHandle = aIsiMessage.Get8bit(
  5661         iPipeHandle = aIsiMessage.Get8bit(
  5636 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  5637             ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_PIPEHANDLE );
  5662             ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_PIPEHANDLE );
  5638 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  5639             ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_PIPEHANDLE );
       
  5640 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  5641 
  5663 
  5642         TUint8 errorCode( aIsiMessage.Get8bit(
  5664         TUint8 errorCode( aIsiMessage.Get8bit(
  5643 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  5644             ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_ERRORCODE ) );
  5665             ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_ERRORCODE ) );
  5645 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  5646             ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_ERRORCODE ) );
       
  5647 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  5648 
  5666 
  5649 TFLOGSTRING4("TSY: CMmCallMessHandler::PnsPipeCreateResp. TransactionId: %d, PipeHandle: %d, error code: %d", transId, iPipeHandle, errorCode );
  5667 TFLOGSTRING4("TSY: CMmCallMessHandler::PnsPipeCreateResp. TransactionId: %d, PipeHandle: %d, error code: %d", transId, iPipeHandle, errorCode );
  5650 OstTraceExt3( TRACE_NORMAL, DUP1_CMMCALLMESSHANDLER_PNSPIPECREATERESP, "CMmCallMessHandler::PnsPipeCreateResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, iPipeHandle, errorCode );
  5668 OstTraceExt3( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_PNSPIPECREATERESP_TD, "CMmCallMessHandler::PnsPipeCreateResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, iPipeHandle, errorCode );
  5651 
  5669 
  5652         if ( PN_PIPE_NO_ERROR != errorCode )
  5670         if ( PN_PIPE_NO_ERROR == errorCode )
       
  5671             {
       
  5672             err = PnsPipeEnableReq();
       
  5673             }
       
  5674         // no else
       
  5675 
       
  5676         if ( KErrNone != err )
  5653             {
  5677             {
  5654             delete iDataPortHandler;
  5678             delete iDataPortHandler;
  5655             iDataPortHandler = NULL;
  5679             iDataPortHandler = NULL;
  5656             }
  5680             }
  5657         // no else
  5681         // no else
  5665 // ----------------------------------------------------------------------------
  5689 // ----------------------------------------------------------------------------
  5666 //
  5690 //
  5667 TInt CMmCallMessHandler::PnsPipeRemoveReq()
  5691 TInt CMmCallMessHandler::PnsPipeRemoveReq()
  5668     {
  5692     {
  5669     TFLOGSTRING2("TSY: CMmCallMessHandler::PnsPipeRemoveReq. PipeHandle: %d", iPipeHandle );
  5693     TFLOGSTRING2("TSY: CMmCallMessHandler::PnsPipeRemoveReq. PipeHandle: %d", iPipeHandle );
  5670 OstTraceExt1( TRACE_NORMAL, CMMCALLMESSHANDLER_PNSPIPEREMOVEREQ, "CMmCallMessHandler::PnsPipeRemoveReq;aPipeHandle=%hhu", iPipeHandle );
  5694 OstTraceExt1( TRACE_NORMAL,  CMMCALLMESSHANDLER_PNSPIPEREMOVEREQ_TD, "CMmCallMessHandler::PnsPipeRemoveReq;aPipeHandle=%hhu", iPipeHandle );
  5671 
       
  5672     iPipeHandle = KInvalidPipeHandle;
       
  5673 
  5695 
  5674     // Create buffer for isi msg data
  5696     // Create buffer for isi msg data
  5675 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  5676     TBuf8<SIZE_PNS_PIPE_REMOVE_REQ> data;
  5697     TBuf8<SIZE_PNS_PIPE_REMOVE_REQ> data;
  5677 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  5678     TBuf8<SIZE_CM_PIPE_REMOVE_REQ> data;
       
  5679 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  5680 
  5698 
  5681     data.Append( iPipeHandle );
  5699     data.Append( iPipeHandle );
  5682     data.Append( KCallPadding );
  5700     data.Append( KCallPadding );
       
  5701 
       
  5702     iPipeHandle = KInvalidPipeHandle;
  5683 
  5703 
  5684     // Send Isi message via phonet
  5704     // Send Isi message via phonet
  5685     return iPhoNetSender->Send(
  5705     return iPhoNetSender->Send(
  5686         PN_PIPE,
  5706         PN_PIPE,
  5687         KPipeTransID,
  5707         KPipeTransID,
  5688         PNS_PIPE_REMOVE_REQ,
  5708         PNS_PIPE_REMOVE_REQ,
  5689         data );
  5709         data );
  5690     }
  5710     }
  5691 
  5711 
       
  5712 // ----------------------------------------------------------------------------
       
  5713 // CMmCallMessHandler::PnsPipeEnableReq
       
  5714 // Builds PNS_PIPE_ENABLE_REQ ISI message and sends it to Phonet.
       
  5715 // ----------------------------------------------------------------------------
       
  5716 //
       
  5717 TInt CMmCallMessHandler::PnsPipeEnableReq() const
       
  5718     {
       
  5719 TFLOGSTRING("TSY: CMmCallMessHandler::PnsPipeEnableReq");
       
  5720 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_PNSPIPEENABLEREQ_TD, "CMmCallMessHandler::PnsPipeEnableReq" );
       
  5721     // create buffer for isi msg data
       
  5722     TBuf8<SIZE_PNS_PIPE_ENABLE_REQ> data;
       
  5723 
       
  5724     // set message data
       
  5725     data.Append( iPipeHandle );
       
  5726     data.Append( KCallPadding );
       
  5727 
       
  5728     // Sending message to phonet
       
  5729     return iPhoNetSender->Send(
       
  5730         PN_PIPE, KPipeTransID, PNS_PIPE_ENABLE_REQ, data );
       
  5731     }
       
  5732 
       
  5733 // ----------------------------------------------------------------------------
       
  5734 // CMmCallMessHandler::PnsPipeEnableResp
       
  5735 // Handles PNS_PIPE_ENABLE_RESP.
       
  5736 // ----------------------------------------------------------------------------
       
  5737 //
       
  5738 void CMmCallMessHandler::PnsPipeEnableResp( const TIsiReceiveC &aIsiMessage )
       
  5739     {
       
  5740 TFLOGSTRING("TSY: CMmCallMessHandler::PnsPipeEnableResp");
       
  5741 OstTrace0( TRACE_NORMAL,  CMMCALLMESSHANDLER_PNSPIPEENABLERESP_TD, "CMmCallMessHandler::PnsPipeEnableResp" );
       
  5742 
       
  5743     // Get transaction Id
       
  5744     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
  5745 
       
  5746     if ( KPipeTransID == transId )
       
  5747         {
       
  5748         TUint8 errorCode( aIsiMessage.Get8bit(
       
  5749             ISI_HEADER_SIZE + PNS_PIPE_ENABLE_RESP_OFFSET_ERRORCODE ) );
       
  5750 
       
  5751 TFLOGSTRING2("TSY: CMmCallMessHandler::PnsPipeEnableResp;errorCode=%d", errorCode);
       
  5752 OstTraceExt1( TRACE_NORMAL,  DUP1_CMMCALLMESSHANDLER_PNSPIPEENABLERESP_TD, "CMmCallMessHandler::PnsPipeEnableResp;errorCode=%hhu", errorCode );
       
  5753 
       
  5754         if ( PN_PIPE_NO_ERROR != errorCode )
       
  5755             {
       
  5756             PnsPipeRemoveReq();
       
  5757             delete iDataPortHandler;
       
  5758             iDataPortHandler = NULL;
       
  5759             }
       
  5760         // no else
       
  5761         }
       
  5762     }
  5692 // ========================== OTHER EXPORTED FUNCTIONS =========================
  5763 // ========================== OTHER EXPORTED FUNCTIONS =========================
  5693 
  5764 
  5694     // None
  5765     // None
  5695 
  5766 
  5696 //  End of File
  5767 //  End of File