phoneapp/phoneuistates/src/cphoneconferenceandsingle.cpp
changeset 72 c76a0b1755b9
parent 56 5bcb308bd24d
child 74 d1c62c765e48
equal deleted inserted replaced
64:6aaf0276100e 72:c76a0b1755b9
   116             
   116             
   117         case MEngineMonitor::EPEMessageHeld:
   117         case MEngineMonitor::EPEMessageHeld:
   118             HandleHeldL( aCallId );
   118             HandleHeldL( aCallId );
   119             break;
   119             break;
   120             
   120             
   121         case MEngineMonitor::EPEMessageInValidEmergencyNumber:              
   121         case MEngineMonitor::EPEMessageInValidEmergencyNumber:
   122             SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );                       
   122             SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue );
   123             break;
   123             break;
   124             
   124             
   125         case MEngineMonitor::EPEMessageValidEmergencyNumber:
   125         case MEngineMonitor::EPEMessageValidEmergencyNumber:
   126             DialVoiceCallL();
   126             DialVoiceCallL();
   127             break;                          
   127             break;                          
   143 //
   143 //
   144 TBool CPhoneConferenceAndSingle::HandleCommandL( TInt aCommand )
   144 TBool CPhoneConferenceAndSingle::HandleCommandL( TInt aCommand )
   145     {
   145     {
   146     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleCommandL");
   146     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleCommandL");
   147     TBool commandStatus = ETrue;
   147     TBool commandStatus = ETrue;
   148 
       
   149     switch( aCommand )
   148     switch( aCommand )
   150         {
   149         {
   151         case EPhoneNumberAcqCmdCall:
   150         case EPhoneNumberAcqCmdCall:
   152         case EPhoneNumberAcqCmdSendCommand:
   151         case EPhoneNumberAcqCmdSendCommand:
   153             HandleSendL();
   152             HandleSendL();
   168         
   167         
   169         default:
   168         default:
   170             commandStatus = CPhoneConference::HandleCommandL( aCommand );
   169             commandStatus = CPhoneConference::HandleCommandL( aCommand );
   171             break;
   170             break;
   172         }
   171         }
   173 
       
   174     return commandStatus;
   172     return commandStatus;
   175     }
   173     }
   176 
   174 
   177 // -----------------------------------------------------------
   175 // -----------------------------------------------------------
   178 // CPhoneConferenceAndSingle::HandleConnectedConferenceL
   176 // CPhoneConferenceAndSingle::HandleConnectedConferenceL
   179 // -----------------------------------------------------------
   177 // -----------------------------------------------------------
   180 //
   178 //
   181 void CPhoneConferenceAndSingle::HandleConnectedConferenceL()
   179 void CPhoneConferenceAndSingle::HandleConnectedConferenceL()
   182     {
   180     {
   183     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConnectedConferenceL");
   181     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConnectedConferenceL");
   184     // Update call state
       
   185     TPhoneCmdParamCallHeaderData callHeaderParam;
   182     TPhoneCmdParamCallHeaderData callHeaderParam;
   186     callHeaderParam.SetCallState( EPEStateConnectedConference );
   183     callHeaderParam.SetCallState( EPEStateConnectedConference );
   187 
   184 
   188     TBuf<KPhoneCallHeaderLabelMaxLength> conferenceText( KNullDesC );
   185     TBuf<KPhoneCallHeaderLabelMaxLength> conferenceText( KNullDesC );
   189     TInt callLabelId = CPhoneMainResourceResolver::Instance()->
   186     TInt callLabelId = CPhoneMainResourceResolver::Instance()->
   204     iViewCommandHandle->ExecuteCommandL( 
   201     iViewCommandHandle->ExecuteCommandL( 
   205         EPhoneViewUpdateBubble, KConferenceCallId, &callHeaderParam );
   202         EPhoneViewUpdateBubble, KConferenceCallId, &callHeaderParam );
   206     
   203     
   207     SetTouchPaneButtons( EPhoneConferenceAndHeldSingleButtons );
   204     SetTouchPaneButtons( EPhoneConferenceAndHeldSingleButtons );
   208     UpdateInCallCbaL();
   205     UpdateInCallCbaL();
   209     EndUiUpdate();          
   206     EndUiUpdate();
   210     }
   207     }
   211 
       
   212 
   208 
   213 // -----------------------------------------------------------
   209 // -----------------------------------------------------------
   214 // CPhoneConferenceAndSingle::HandleHeldConferenceL
   210 // CPhoneConferenceAndSingle::HandleHeldConferenceL
   215 // 
   211 // 
   216 // one of the calls is on hold all the time, conference or single call
   212 // one of the calls is on hold all the time, conference or single call
   219 void CPhoneConferenceAndSingle::HandleHeldConferenceL()
   215 void CPhoneConferenceAndSingle::HandleHeldConferenceL()
   220     {
   216     {
   221     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleHeldConferenceL");
   217     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleHeldConferenceL");
   222     TPhoneCmdParamCallHeaderData callHeaderParam;
   218     TPhoneCmdParamCallHeaderData callHeaderParam;
   223     callHeaderParam.SetCallState( EPEStateHeldConference );
   219     callHeaderParam.SetCallState( EPEStateHeldConference );
   224     
       
   225     TInt callLabelId;
   220     TInt callLabelId;
   226     TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC );
   221     TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC );
   227     callLabelId = CPhoneMainResourceResolver::Instance()->
   222     callLabelId = CPhoneMainResourceResolver::Instance()->
   228             ResolveResourceID( EPhoneCallOnHold );
   223             ResolveResourceID( EPhoneCallOnHold );
   229 
       
   230     StringLoader::Load( 
   224     StringLoader::Load( 
   231         labelText, 
   225         labelText, 
   232         callLabelId, 
   226         callLabelId, 
   233         CCoeEnv::Static() );        
   227         CCoeEnv::Static() );        
   234     callHeaderParam.SetLabelText( labelText );
   228     callHeaderParam.SetLabelText( labelText );
   235 
       
   236     BeginUiUpdateLC();
   229     BeginUiUpdateLC();
   237      
   230     
   238     iViewCommandHandle->ExecuteCommandL( 
   231     iViewCommandHandle->ExecuteCommandL( 
   239         EPhoneViewUpdateBubble, KConferenceCallId, &callHeaderParam );
   232         EPhoneViewUpdateBubble, KConferenceCallId, &callHeaderParam );
   240         
   233     SetTouchPaneButtons( EPhoneConferenceAndSingleButtons );
   241     SetTouchPaneButtons( EPhoneConferenceAndSingleButtons );    
   234     
   242     EndUiUpdate();     
   235     EndUiUpdate();
   243     }
   236     }
   244 
   237 
   245 // -----------------------------------------------------------
   238 // -----------------------------------------------------------
   246 // CPhoneConferenceAndSingle::HandleConnectedL
   239 // CPhoneConferenceAndSingle::HandleConnectedL
   247 // -----------------------------------------------------------
   240 // -----------------------------------------------------------
   248 //
   241 //
   249 void CPhoneConferenceAndSingle::HandleConnectedL( TInt aCallId )
   242 void CPhoneConferenceAndSingle::HandleConnectedL( TInt aCallId )
   250     {
   243     {
   251     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConnectedL");
   244     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConnectedL");
   252     
       
   253     // Display connected bubble
       
   254     TPhoneCmdParamCallHeaderData callHeaderParam;
   245     TPhoneCmdParamCallHeaderData callHeaderParam;
   255     callHeaderParam.SetCallState( EPEStateConnected );
   246     callHeaderParam.SetCallState( EPEStateConnected );
   256     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
   247     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
   257         &callHeaderParam );
   248         &callHeaderParam );
   258 
       
   259     UpdateInCallCbaL();
   249     UpdateInCallCbaL();
   260     SetTouchPaneButtons( EPhoneConferenceButtons );
   250     SetTouchPaneButtons( EPhoneConferenceButtons );
   261     }
   251     }
   262 
   252 
   263 // -----------------------------------------------------------
   253 // -----------------------------------------------------------
   265 // -----------------------------------------------------------
   255 // -----------------------------------------------------------
   266 //
   256 //
   267 void CPhoneConferenceAndSingle::HandleHeldL( TInt aCallId )
   257 void CPhoneConferenceAndSingle::HandleHeldL( TInt aCallId )
   268     {
   258     {
   269     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleHeldL");
   259     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleHeldL");
   270     // Display hold bubble
       
   271     TPhoneCmdParamCallHeaderData callHeaderParam;
   260     TPhoneCmdParamCallHeaderData callHeaderParam;
   272     callHeaderParam.SetCallState( EPEStateHeld );
   261     callHeaderParam.SetCallState( EPEStateHeld );
   273     
   262     
   274     TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC );
   263     TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC );
   275     TInt callLabelId = CPhoneMainResourceResolver::Instance()->
   264     TInt callLabelId = CPhoneMainResourceResolver::Instance()->
   276             ResolveResourceID( EPhoneCallOnHold );
   265             ResolveResourceID( EPhoneCallOnHold );
   277 
       
   278     StringLoader::Load( 
   266     StringLoader::Load( 
   279         labelText, 
   267         labelText, 
   280         callLabelId, 
   268         callLabelId, 
   281         CCoeEnv::Static() );        
   269         CCoeEnv::Static() );        
   282     callHeaderParam.SetLabelText( labelText );
   270     callHeaderParam.SetLabelText( labelText );
   283 
       
   284     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
   271     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
   285         &callHeaderParam );      
   272         &callHeaderParam );
   286     
       
   287     SetTouchPaneButtons( EPhoneConferenceButtons );
   273     SetTouchPaneButtons( EPhoneConferenceButtons );
   288     }
   274     }
   289 
   275 
   290 // -----------------------------------------------------------
   276 // -----------------------------------------------------------
   291 // CPhoneConferenceAndSingle::HandleAddedConferenceMemberL
   277 // CPhoneConferenceAndSingle::HandleAddedConferenceMemberL
   292 // -----------------------------------------------------------
   278 // -----------------------------------------------------------
   293 //
   279 //
   294 void CPhoneConferenceAndSingle::HandleAddedConferenceMemberL( TInt aCallId )
   280 void CPhoneConferenceAndSingle::HandleAddedConferenceMemberL( TInt aCallId )
   295     {
   281     {
   296     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleAddedConferenceMemberL");
   282     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleAddedConferenceMemberL");
   297     
       
   298     BeginUiUpdateLC();
   283     BeginUiUpdateLC();
   299         
       
   300     // Update conference bubble
       
   301     iViewCommandHandle->ExecuteCommandL( EPhoneViewAddToConference );
   284     iViewCommandHandle->ExecuteCommandL( EPhoneViewAddToConference );
   302     
       
   303     UpdateConferenceSecurityStatusL( aCallId );
   285     UpdateConferenceSecurityStatusL( aCallId );
   304 
       
   305     SetTouchPaneButtons( EPhoneConferenceButtons );
   286     SetTouchPaneButtons( EPhoneConferenceButtons );
   306     
       
   307     EndUiUpdate();
   287     EndUiUpdate();
   308 
       
   309     UpdateCbaL( EPhoneCallHandlingInCallCBA );
   288     UpdateCbaL( EPhoneCallHandlingInCallCBA );
   310     iStateMachine->ChangeState( EPhoneStateConference );        
   289     iStateMachine->ChangeState( EPhoneStateConference );
   311     }
   290     }
   312 
   291 
   313 // -----------------------------------------------------------
   292 // -----------------------------------------------------------
   314 // CPhoneConferenceAndSingle::UpdateInCallCbaL
   293 // CPhoneConferenceAndSingle::UpdateInCallCbaL
   315 // -----------------------------------------------------------
   294 // -----------------------------------------------------------
   316 //
   295 //
   317 void CPhoneConferenceAndSingle::UpdateInCallCbaL()
   296 void CPhoneConferenceAndSingle::UpdateInCallCbaL()
   318     {
   297     {
   319     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneConferenceAndSingle::UpdateInCallCbaL() ");
   298     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneConferenceAndSingle::UpdateInCallCbaL() ");
   320     
       
   321     UpdateCbaL ( EPhoneCallHandlingNewCallSwapCBA );
   299     UpdateCbaL ( EPhoneCallHandlingNewCallSwapCBA );
   322     }
   300     }
   323 
   301 
   324 // -----------------------------------------------------------
   302 // -----------------------------------------------------------
   325 // CPhoneConferenceAndSingle::HandleIncomingL
   303 // CPhoneConferenceAndSingle::HandleIncomingL
   327 //
   305 //
   328 void CPhoneConferenceAndSingle::HandleIncomingL( TInt aCallId )
   306 void CPhoneConferenceAndSingle::HandleIncomingL( TInt aCallId )
   329     {
   307     {
   330     __LOGMETHODSTARTEND( EPhoneUIStates, 
   308     __LOGMETHODSTARTEND( EPhoneUIStates, 
   331         "CPhoneConferenceAndSingle::HandleIncomingL");
   309         "CPhoneConferenceAndSingle::HandleIncomingL");
   332     
   310     BeginUiUpdateLC(); 
   333     BeginUiUpdateLC();  
       
   334     
   311     
   335     TPhoneCmdParamBoolean dialerParam;
   312     TPhoneCmdParamBoolean dialerParam;
   336     dialerParam.SetBoolean( ETrue );
   313     dialerParam.SetBoolean( ETrue );
   337     
       
   338     // Get allow waiting call header param value.
       
   339     AllowShowingOfWaitingCallHeaderL( dialerParam );
   314     AllowShowingOfWaitingCallHeaderL( dialerParam );
   340     
   315     
   341     iViewCommandHandle->ExecuteCommandL( EPhoneViewCloseFSW );
   316     iViewCommandHandle->ExecuteCommandL( EPhoneViewCloseFSW );
   342     
   317     
   343     // Check if HW Keys or Call UI should be disabled
       
   344     CheckDisableHWKeysAndCallUIL();
   318     CheckDisableHWKeysAndCallUIL();
   345     
       
   346     // Display incoming call
       
   347     DisplayIncomingCallL( aCallId, dialerParam  );
   319     DisplayIncomingCallL( aCallId, dialerParam  );
   348 
       
   349     // Set touch controls
       
   350     SetTouchPaneButtons( EPhoneWaitingCallButtons );
   320     SetTouchPaneButtons( EPhoneWaitingCallButtons );
   351     
   321     
   352     EndUiUpdate();
   322     EndUiUpdate();
   353     
   323     
   354     // Go to Conference And Single And Waiting state
       
   355     UpdateCbaL( EPhoneCallHandlingIncomingRejectCBA );
   324     UpdateCbaL( EPhoneCallHandlingIncomingRejectCBA );
   356     iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );                
   325     iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );
   357     }
   326     }
   358 
   327 
   359 // -----------------------------------------------------------
   328 // -----------------------------------------------------------
   360 // CPhoneConferenceAndSingle::HandleIdleL
   329 // CPhoneConferenceAndSingle::HandleIdleL
   361 // -----------------------------------------------------------
   330 // -----------------------------------------------------------
   362 //
   331 //
   363 void CPhoneConferenceAndSingle::HandleIdleL( TInt aCallId )
   332 void CPhoneConferenceAndSingle::HandleIdleL( TInt aCallId )
   364     {
   333     {
   365     __LOGMETHODSTARTEND( EPhoneUIStates, 
   334     __LOGMETHODSTARTEND( EPhoneUIStates, 
   366         "CPhoneConferenceAndSingle::HandleIdleL");
   335         "CPhoneConferenceAndSingle::HandleIdleL");
   367     
       
   368     TPhoneCmdParamBoolean conferenceExistsForCallId;
   336     TPhoneCmdParamBoolean conferenceExistsForCallId;
   369     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference,
   337     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference,
   370         aCallId, &conferenceExistsForCallId );
   338         aCallId, &conferenceExistsForCallId );
   371     
   339     
   372     if( conferenceExistsForCallId.Boolean() )
   340     if( conferenceExistsForCallId.Boolean() )
   373         {
   341         {
   374         // Remove conference member from conference bubble
       
   375         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveFromConference, 
   342         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveFromConference, 
   376             aCallId );                    
   343             aCallId );
   377         }
   344         }
   378     else
   345     else
   379         {       
   346         {
   380         // Remove call
       
   381         BeginUiUpdateLC(); 
   347         BeginUiUpdateLC(); 
   382         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
   348         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
   383 
       
   384         SetTouchPaneButtons( EPhoneConferenceButtons );
   349         SetTouchPaneButtons( EPhoneConferenceButtons );
   385         
       
   386         UpdateCbaL( EPhoneCallHandlingInCallCBA );
   350         UpdateCbaL( EPhoneCallHandlingInCallCBA );
   387       
       
   388 
       
   389         EndUiUpdate();
   351         EndUiUpdate();
   390 
       
   391         iStateMachine->ChangeState( EPhoneStateConference );
   352         iStateMachine->ChangeState( EPhoneStateConference );
   392         }
   353         }
   393     
       
   394     }
   354     }
   395 
   355 
   396 // -----------------------------------------------------------
   356 // -----------------------------------------------------------
   397 // CPhoneConferenceAndSingle::HandleConferenceIdleL
   357 // CPhoneConferenceAndSingle::HandleConferenceIdleL
   398 // -----------------------------------------------------------
   358 // -----------------------------------------------------------
   399 //
   359 //
   400 void CPhoneConferenceAndSingle::HandleConferenceIdleL()
   360 void CPhoneConferenceAndSingle::HandleConferenceIdleL()
   401     {
   361     {
   402     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConferenceIdleL");
   362     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConferenceIdleL");
   403     
       
   404     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   363     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   405     
       
   406     TPhoneCmdParamInteger intParam;
   364     TPhoneCmdParamInteger intParam;
   407     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCountOfActiveCalls,
   365     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCountOfActiveCalls,
   408         &intParam );
   366         &intParam );
   409         
   367         
   410     switch( intParam.Integer() )
   368     switch( intParam.Integer() )
   430     {
   388     {
   431     __LOGMETHODSTARTEND( EPhoneUIStates, 
   389     __LOGMETHODSTARTEND( EPhoneUIStates, 
   432         "CPhoneConferenceAndSingle::HandleKeyMessageL()");
   390         "CPhoneConferenceAndSingle::HandleKeyMessageL()");
   433     switch ( aCode )
   391     switch ( aCode )
   434         {
   392         {
   435         // send-key
   393         case EKeyYes: // send-key
   436         case EKeyYes:
       
   437             if( IsNumberEntryVisibleL() )
   394             if( IsNumberEntryVisibleL() )
   438                 {
   395                 {
   439                 HandleSendL();
   396                 HandleSendL();
   440                 }
   397                 }
   441             else
   398             else
   442                 {
   399                 {
   443                 // Number entry is below so swap the call
       
   444                 iStateMachine->SendPhoneEngineMessage(
   400                 iStateMachine->SendPhoneEngineMessage(
   445                     CPEPhoneModelIF::EPEMessageSwap );        
   401                     CPEPhoneModelIF::EPEMessageSwap );
   446                 }
   402                 }
   447             break;
   403             break;
   448             
   404             
   449         default:
   405         default:
   450             // do base operation
       
   451             CPhoneConference::HandleKeyMessageL( aMessage, aCode );
   406             CPhoneConference::HandleKeyMessageL( aMessage, aCode );
   452             break;
   407             break;
   453         }
   408         }
   454     }
   409     }
   455 
       
   456 
       
   457 
   410 
   458 // --------------------------------------------------------------
   411 // --------------------------------------------------------------
   459 // CPhoneConferenceAndSingle::HandleSendL 
   412 // CPhoneConferenceAndSingle::HandleSendL 
   460 // --------------------------------------------------------------
   413 // --------------------------------------------------------------
   461 //
   414 //
   462 void CPhoneConferenceAndSingle::HandleSendL()
   415 void CPhoneConferenceAndSingle::HandleSendL()
   463     {
   416     {
   464     // Get the number entry contents
       
   465     HBufC *phoneNumber = HBufC::NewLC( KPhoneNumberEntryBufferSize );
   417     HBufC *phoneNumber = HBufC::NewLC( KPhoneNumberEntryBufferSize );
   466     TPtr ptr( phoneNumber->Des() );
   418     TPtr ptr( phoneNumber->Des() );
   467     TPhoneCmdParamString stringParam;
   419     TPhoneCmdParamString stringParam;
   468     stringParam.SetString( &ptr );
   420     stringParam.SetString( &ptr );
   469     
       
   470     iViewCommandHandle->ExecuteCommand(
   421     iViewCommandHandle->ExecuteCommand(
   471         EPhoneViewGetNumberFromEntry,
   422         EPhoneViewGetNumberFromEntry,
   472         &stringParam );
   423         &stringParam );
   473     
       
   474     iStateMachine->PhoneEngineInfo()->SetPhoneNumber( ptr ) ;
   424     iStateMachine->PhoneEngineInfo()->SetPhoneNumber( ptr ) ;
   475     
   425     
   476     if ( iStateMachine->PhoneEngineInfo()->PhoneNumberIsServiceCode() || 
   426     if ( iStateMachine->PhoneEngineInfo()->PhoneNumberIsServiceCode() || 
   477          phoneNumber->Des().Length() < KPhoneValidPhoneNumberLength )
   427          phoneNumber->Des().Length() < KPhoneValidPhoneNumberLength )
   478         {  
   428         {
   479         // Send a manual control sequence by providing number 
       
   480         // information with dial command
       
   481         CallFromNumberEntryL();
   429         CallFromNumberEntryL();
   482         }
   430         }
   483     else
   431     else
   484         {
   432         {
   485         iStateMachine->SendPhoneEngineMessage( 
   433         iStateMachine->SendPhoneEngineMessage(