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 // ----------------------------------------------------------------------------- |
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; |
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 } |
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; |
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 |
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, |
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; |
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( |
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( |
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 |
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; |
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( |
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, |
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 |
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; |
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: |
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; |
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; |
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 |
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 |