phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp
branchRCL_3
changeset 24 41a7f70b3818
parent 23 40a3f856b14d
child 25 5266b1f337bd
equal deleted inserted replaced
23:40a3f856b14d 24:41a7f70b3818
    32 #include "cphonepubsubproxy.h"
    32 #include "cphonepubsubproxy.h"
    33 #include "tphonecmdparamboolean.h"
    33 #include "tphonecmdparamboolean.h"
    34 #include "tphonecmdparamglobalnote.h"
    34 #include "tphonecmdparamglobalnote.h"
    35 #include "tphonecmdparamnote.h"
    35 #include "tphonecmdparamnote.h"
    36 #include "cphonemainresourceresolver.h"
    36 #include "cphonemainresourceresolver.h"
       
    37 #include "cphonecenrepproxy.h"
       
    38 
       
    39 // CONSTANTS
       
    40 const TUid KCRUidTelConfiguration = {0x102828B8};
       
    41 
       
    42 const TUint32 KTelShowCauseCode   = 0x00000002;
    37 
    43 
    38 
    44 
    39 // ================= MEMBER FUNCTIONS =======================
    45 // ================= MEMBER FUNCTIONS =======================
    40 
    46 
    41 // C++ default constructor can NOT contain any code, that
    47 // C++ default constructor can NOT contain any code, that
    43 //
    49 //
    44 EXPORT_C CPhoneErrorMessagesHandler::CPhoneErrorMessagesHandler(
    50 EXPORT_C CPhoneErrorMessagesHandler::CPhoneErrorMessagesHandler(
    45     MPhoneViewCommandHandle* aViewCommandHandle,
    51     MPhoneViewCommandHandle* aViewCommandHandle,
    46     MPhoneStateMachine* aStateMachine ) :
    52     MPhoneStateMachine* aStateMachine ) :
    47     iViewCommandHandle( aViewCommandHandle),
    53     iViewCommandHandle( aViewCommandHandle),
    48     iStateMachine (aStateMachine )
    54     iStateMachine( aStateMachine ),
       
    55     iCauseCodeVariation( EFalse )
    49     {
    56     {
    50     }
    57     if ( KErrNone != CPhoneCenRepProxy::Instance()->GetInt(
       
    58             KCRUidTelConfiguration,
       
    59             KTelShowCauseCode,
       
    60             iCauseCodeVariation ) )
       
    61         {
       
    62         iCauseCodeVariation = EFalse;
       
    63         }
       
    64     } 
    51 
    65 
    52 // -----------------------------------------------------------
    66 // -----------------------------------------------------------
    53 // CPhoneErrorMessagesHandler::~CPhoneErrorMessagesHandler()
    67 // CPhoneErrorMessagesHandler::~CPhoneErrorMessagesHandler()
    54 // Destructor
    68 // Destructor
    55 // (other items were commented in a header).
    69 // (other items were commented in a header).
    91 
   105 
    92 // ---------------------------------------------------------
   106 // ---------------------------------------------------------
    93 // CPhoneErrorMessagesHandler::SendGlobalInfoNoteL
   107 // CPhoneErrorMessagesHandler::SendGlobalInfoNoteL
    94 // ---------------------------------------------------------
   108 // ---------------------------------------------------------
    95 //
   109 //
    96 EXPORT_C void CPhoneErrorMessagesHandler::SendGlobalInfoNoteL( TInt aResourceId )
   110 EXPORT_C void CPhoneErrorMessagesHandler::SendGlobalInfoNoteL( 
       
   111         TInt aResourceId, TBool aNotificationDialog )
    97     {
   112     {
    98     __LOGMETHODSTARTEND( EPhoneControl, 
   113     __LOGMETHODSTARTEND( EPhoneControl, 
    99         "CPhoneErrorMessagesHandler::SendGlobalInfoNoteL()" );
   114         "CPhoneErrorMessagesHandler::SendGlobalInfoNoteL()" );
   100 
   115 
   101     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
   116     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
   103             KPSUidUikon, KUikGlobalNotesAllowed ) == 1 )
   118             KPSUidUikon, KUikGlobalNotesAllowed ) == 1 )
   104         {
   119         {
   105         // Re-enable global notes
   120         // Re-enable global notes
   106         TPhoneCmdParamBoolean globalNotifierParam;
   121         TPhoneCmdParamBoolean globalNotifierParam;
   107         globalNotifierParam.SetBoolean( EFalse );
   122         globalNotifierParam.SetBoolean( EFalse );
   108         iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,    &globalNotifierParam );
   123         iViewCommandHandle->ExecuteCommandL( 
       
   124                 EPhoneViewSetGlobalNotifiersDisabled,    
       
   125                 &globalNotifierParam );
   109             
   126             
   110         TPhoneCmdParamGlobalNote globalNoteParam;
   127         TPhoneCmdParamGlobalNote globalNoteParam;
   111       
   128         PhoneNotificationType type = aNotificationDialog ? 
   112         globalNoteParam.SetType( EAknGlobalInformationNote );
   129                 EPhoneNotificationDialog : EPhoneMessageBoxInformation;
   113         globalNoteParam.SetTextResourceId( 
   130         globalNoteParam.SetType( type );
   114             CPhoneMainResourceResolver::Instance()->
   131         globalNoteParam.SetNotificationDialog( aNotificationDialog );
   115             ResolveResourceID( aResourceId ) );
   132 
   116         globalNoteParam.SetTone( EAvkonSIDInformationTone );
   133         TInt resourceID( KErrNotFound );
   117 
   134         TInt causeCode( KErrNotFound );
       
   135         TBool notification( ETrue );
       
   136         if ( iCauseCodeVariation && GetCauseCode( causeCode, resourceID, notification ) )
       
   137             {
       
   138             globalNoteParam.SetNotificationDialog( notification );
       
   139             globalNoteParam.SetCauseCode(causeCode);
       
   140             globalNoteParam.SetTextResourceId( 
       
   141                 CPhoneMainResourceResolver::Instance()->
       
   142                 ResolveResourceID( resourceID ) );
       
   143             }
       
   144         else
       
   145             {
       
   146             globalNoteParam.SetTextResourceId( 
       
   147                 CPhoneMainResourceResolver::Instance()->
       
   148                 ResolveResourceID( aResourceId ) );
       
   149             }
       
   150         
   118         iViewCommandHandle->ExecuteCommandL( 
   151         iViewCommandHandle->ExecuteCommandL( 
   119             EPhoneViewShowGlobalNote, &globalNoteParam );    
   152             EPhoneViewShowGlobalNote, &globalNoteParam );    
   120         }
   153         }
   121   
   154   
   122     }
   155     }
   123  
   156  
   124 // ---------------------------------------------------------
   157 // ---------------------------------------------------------
   125 //  CPhoneErrorMessagesHandler::SendGlobalErrorNoteL
   158 //  CPhoneErrorMessagesHandler::SendGlobalErrorNoteL
   126 // ---------------------------------------------------------
   159 // ---------------------------------------------------------
   127 //
   160 //
   128 EXPORT_C void CPhoneErrorMessagesHandler::SendGlobalErrorNoteL( TInt aResourceId )
   161 EXPORT_C void CPhoneErrorMessagesHandler::SendGlobalErrorNoteL( 
       
   162         TInt aResourceId, TBool aNotificationDialog )
   129     {
   163     {
   130     __LOGMETHODSTARTEND( EPhoneControl, 
   164     __LOGMETHODSTARTEND( EPhoneControl, 
   131         "CPhoneErrorMessagesHandler::SendGlobalErrorNoteL()" );
   165         "CPhoneErrorMessagesHandler::SendGlobalErrorNoteL()" );
   132     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
   166     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
   133 
   167 
   140         iViewCommandHandle->ExecuteCommandL( 
   174         iViewCommandHandle->ExecuteCommandL( 
   141              EPhoneViewSetGlobalNotifiersDisabled,
   175              EPhoneViewSetGlobalNotifiersDisabled,
   142             &globalNotifierParam );
   176             &globalNotifierParam );
   143             
   177             
   144         TPhoneCmdParamGlobalNote globalNoteParam;
   178         TPhoneCmdParamGlobalNote globalNoteParam;
   145         globalNoteParam.SetType( EAknGlobalErrorNote );
   179         PhoneNotificationType type = aNotificationDialog ? 
   146         globalNoteParam.SetTextResourceId( 
   180                 EPhoneNotificationDialog : EPhoneMessageBoxInformation;
   147             CPhoneMainResourceResolver::Instance()->
   181         globalNoteParam.SetType( type );
   148             ResolveResourceID( aResourceId ) );
   182         globalNoteParam.SetNotificationDialog( aNotificationDialog );
   149         globalNoteParam.SetTone( CAknNoteDialog::EErrorTone );
   183         
   150 
   184         TInt resourceID( KErrNotFound );
       
   185         TInt causeCode( KErrNotFound );
       
   186         TBool notification( ETrue );
       
   187         if ( iCauseCodeVariation && GetCauseCode( causeCode, resourceID, notification ) )
       
   188             {
       
   189             globalNoteParam.SetNotificationDialog( notification );
       
   190             globalNoteParam.SetCauseCode(causeCode);
       
   191             globalNoteParam.SetTextResourceId( 
       
   192                 CPhoneMainResourceResolver::Instance()->
       
   193                 ResolveResourceID( resourceID ) );
       
   194             }
       
   195         else
       
   196             {
       
   197             globalNoteParam.SetTextResourceId( 
       
   198                 CPhoneMainResourceResolver::Instance()->
       
   199                 ResolveResourceID( aResourceId ) );
       
   200             }
       
   201         
   151         iViewCommandHandle->ExecuteCommandL(  
   202         iViewCommandHandle->ExecuteCommandL(  
   152             EPhoneViewShowGlobalNote, &globalNoteParam );
   203             EPhoneViewShowGlobalNote, &globalNoteParam );
   153         }
   204         }
   154   
   205   
   155     }
   206     }
   156 
   207 
   157 // ---------------------------------------------------------
   208 // ---------------------------------------------------------
   158 //  CPhoneErrorMessagesHandler::SendGlobalWarningNoteL
   209 //  CPhoneErrorMessagesHandler::SendGlobalWarningNoteL
   159 // ---------------------------------------------------------
   210 // ---------------------------------------------------------
   160 //
   211 //
   161 EXPORT_C void CPhoneErrorMessagesHandler::SendGlobalWarningNoteL( TInt aResourceId )
   212 EXPORT_C void CPhoneErrorMessagesHandler::SendGlobalWarningNoteL( 
       
   213         TInt aResourceId, TBool aNotificationDialog )
   162     {
   214     {
   163     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneErrorMessagesHandler::SendGlobalWarningNoteL( ) ");
   215     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneErrorMessagesHandler::SendGlobalWarningNoteL( ) ");
   164     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
   216     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
   165 
   217 
   166     if ( CPhonePubSubProxy::Instance()->Value( 
   218     if ( CPhonePubSubProxy::Instance()->Value( 
   173         iViewCommandHandle->ExecuteCommandL(  
   225         iViewCommandHandle->ExecuteCommandL(  
   174             EPhoneViewSetGlobalNotifiersDisabled,
   226             EPhoneViewSetGlobalNotifiersDisabled,
   175             &globalNotifierParam );
   227             &globalNotifierParam );
   176             
   228             
   177         TPhoneCmdParamGlobalNote globalNoteParam;
   229         TPhoneCmdParamGlobalNote globalNoteParam;
   178         globalNoteParam.SetType( EAknGlobalWarningNote );
   230         PhoneNotificationType type = aNotificationDialog ? 
   179         globalNoteParam.SetTextResourceId( 
   231                 EPhoneNotificationDialog : EPhoneMessageBoxInformation;
   180             CPhoneMainResourceResolver::Instance()->
   232         globalNoteParam.SetType( type );
   181             ResolveResourceID( aResourceId ) );
   233         globalNoteParam.SetNotificationDialog( aNotificationDialog );
   182         globalNoteParam.SetTone( EAvkonSIDWarningTone );
   234 
   183 
   235         TInt resourceID( KErrNotFound );
       
   236         TInt causeCode( KErrNotFound );
       
   237         TBool notification( ETrue );
       
   238         if ( iCauseCodeVariation && GetCauseCode( causeCode, resourceID, notification) )
       
   239             {
       
   240             globalNoteParam.SetNotificationDialog( notification );
       
   241             globalNoteParam.SetCauseCode(causeCode);
       
   242             globalNoteParam.SetTextResourceId( 
       
   243                 CPhoneMainResourceResolver::Instance()->
       
   244                 ResolveResourceID( resourceID ) );
       
   245             }
       
   246         else
       
   247             {
       
   248             globalNoteParam.SetTextResourceId( 
       
   249                 CPhoneMainResourceResolver::Instance()->
       
   250                 ResolveResourceID( aResourceId ) );
       
   251             }
       
   252         
   184         iViewCommandHandle->ExecuteCommandL( 
   253         iViewCommandHandle->ExecuteCommandL( 
   185             EPhoneViewShowGlobalNote, &globalNoteParam );
   254             EPhoneViewShowGlobalNote, &globalNoteParam );
   186         }
   255         }
   187     }
   256     }
   188 
   257 
   207     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL()");
   276     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL()");
   208     
   277     
   209     __PHONELOG1( EBasic, EPhoneControl,
   278     __PHONELOG1( EBasic, EPhoneControl,
   210             "PhoneUIControl: CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL - aErrorInfo.iErrorCode =%d ",
   279             "PhoneUIControl: CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL - aErrorInfo.iErrorCode =%d ",
   211             aErrorInfo.iErrorCode);
   280             aErrorInfo.iErrorCode);
   212 
   281     iCallId = aErrorInfo.iCallId;
       
   282     
   213     switch( aErrorInfo.iErrorCode )
   283     switch( aErrorInfo.iErrorCode )
   214         {
   284         {
   215         case ECCPErrorRejected:
   285         case ECCPErrorRejected:
   216         case ECCPRequestFailure:
   286         case ECCPRequestFailure:
   217             SendGlobalErrorNoteL( EPhoneNoteTextRequestRejected );    
   287             SendGlobalErrorNoteL( EPhoneNoteTextRequestRejected, ETrue );    
   218             break;
   288             break;
   219             
   289             
   220         case ECCPErrorInvalidPhoneNumber:
   290         case ECCPErrorInvalidPhoneNumber:
   221             SendGlobalErrorNoteL( EPhoneInvalidPhoneNumber );
   291             SendGlobalErrorNoteL( EPhoneInvalidPhoneNumber, ETrue );
   222             break;
   292             break;
   223 
   293 
   224         case ECCPErrorInvalidURI:
   294         case ECCPErrorInvalidURI:
   225             if( IsVideoCall( aErrorInfo.iCallId ) )
   295             if( IsVideoCall( aErrorInfo.iCallId ) )
   226                 {
   296                 {
   227                 SendGlobalInfoNoteL( EPhoneInvalidPhoneNumber );
   297                 SendGlobalInfoNoteL( EPhoneInvalidPhoneNumber, ETrue );
   228                 }
   298                 }
   229             else
   299             else
   230                 {
   300                 {
   231                 SendGlobalErrorNoteL( EPhoneInvalidPhoneNumber );
   301                 SendGlobalErrorNoteL( EPhoneInvalidPhoneNumber, ETrue );
   232                 }
   302                 }
   233             break;
   303             break;
   234 
   304 
   235         case ECCPErrorServiceSettingError:
   305         case ECCPErrorServiceSettingError:
   236             if( IsVideoCall( aErrorInfo.iCallId ) )
   306             if( IsVideoCall( aErrorInfo.iCallId ) )
   237                 {
   307                 {
   238                 SendGlobalInfoNoteL( EPhoneNotePhoneOutOf3GCoverage );
   308                 SendGlobalInfoNoteL( EPhoneNotePhoneOutOf3GCoverage );
   239                 }
   309                 }
   240             else
   310             else
   241                 {
   311                 {
   242                 SendGlobalInfoNoteL( EPhoneNoteTextCheckNetworkservices );
   312                 SendGlobalInfoNoteL( EPhoneNoteTextCheckNetworkservices, ETrue );
   243                 }
   313                 }
   244             break;
   314             break;
   245 
   315 
   246         case ECCPErrorNotAllowedInOfflineMode:
   316         case ECCPErrorNotAllowedInOfflineMode:
   247         case ECCPErrorAuthenticationFailed:
   317         case ECCPErrorAuthenticationFailed:
   248             SendGlobalWarningNoteL( EPhoneEmergencyCallsOnly );
   318             SendGlobalWarningNoteL( EPhoneEmergencyCallsOnly, ETrue );
   249             break;
   319             break;
   250 
   320 
   251         case ECCPErrorNotReady:     
   321         case ECCPErrorNotReady:     
   252         case ECCPErrorGeneral:
   322         case ECCPErrorGeneral:
   253         case ECCPErrorNotAllowed:
   323         case ECCPErrorNotAllowed:
   254         case ECCPErrorNotFound:
   324         case ECCPErrorNotFound:
   255         case ECCPErrorTimedOut:
   325         case ECCPErrorTimedOut:
   256         case ECCPErrorAccessDenied:        
   326         case ECCPErrorAccessDenied:        
   257             SendGlobalWarningNoteL( EPhoneNoteTextNotAllowed );                    
   327             SendGlobalWarningNoteL( EPhoneNoteTextNotAllowed, ETrue );                    
   258             break;
   328             break;
   259             
   329             
   260         case ECCPErrorAlreadyInUse:
   330         case ECCPErrorAlreadyInUse:
   261             SendGlobalErrorNoteL( EPhoneNoteTextCallNotAllowed );                    
   331             SendGlobalErrorNoteL( EPhoneNoteTextCallNotAllowed, ETrue );                    
   262             break;
   332             break;
   263 
   333 
   264         case ECCPErrorInvalidFDN:
   334         case ECCPErrorInvalidFDN:
   265             SendGlobalWarningNoteL( EPhoneNoteTextCallNotAllowedFDN );                    
   335             SendGlobalWarningNoteL( EPhoneNoteTextCallNotAllowedFDN, ETrue );                    
   266             break;
   336             break;
   267             
   337             
   268         case ECCPErrorNotReached:
   338         case ECCPErrorNotReached:
   269             if( IsVideoCall( aErrorInfo.iCallId ) )
   339             if( IsVideoCall( aErrorInfo.iCallId ) )
   270                 {
   340                 {
   271                 SendGlobalInfoNoteL( EPhoneNumberNotInUse );
   341                 SendGlobalInfoNoteL( EPhoneNumberNotInUse, ETrue );
   272                 }
   342                 }
   273             else
   343             else
   274                 {
   344                 {
   275                 SendGlobalWarningNoteL( EPhoneNumberNotInUse );    
   345                 SendGlobalWarningNoteL( EPhoneNumberNotInUse, ETrue );    
   276                 }
   346                 }
   277                 
   347                 
   278             break;
   348             break;
   279 
   349 
   280         case ECCPErrorUnacceptableChannel:
   350         case ECCPErrorUnacceptableChannel:
   281         case ECCPErrorCCDestinationOutOfOrder:
   351         case ECCPErrorCCDestinationOutOfOrder:                
   282         case ECCPErrorAccessInformationDiscarded:
       
   283         case ECCPErrorQualityOfServiceNotAvailable:        
       
   284         case ECCPErrorInvalidCallReferenceValue:
   352         case ECCPErrorInvalidCallReferenceValue:
   285         case ECCPErrorCCInvalidTransitNetworkSelection:        
   353         case ECCPErrorCCInvalidTransitNetworkSelection:        
   286         case ECCPErrorConnectionError:        
   354         case ECCPErrorConnectionError:        
   287         case ECCPErrorCCIncompatibleMessageInCallState:        
   355         case ECCPErrorCCIncompatibleMessageInCallState:        
   288             if( IsVideoCall( aErrorInfo.iCallId ) &&
   356             if( IsVideoCall( aErrorInfo.iCallId ) )
   289                 iStateMachine->PhoneEngineInfo()->ProfileId() != EProfileOffLineId )
       
   290                 {
   357                 {
   291                 SendGlobalInfoNoteL( EPhoneNoteVideoCallNotPossible );
   358                 SendGlobalInfoNoteL( EPhoneNoteVideoCallNotPossible );
   292                 }
   359                 }
   293             else
   360             else
   294                 {
   361                 {
   295                 SendGlobalWarningNoteL( EPhoneErrorInConnection );
   362                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
   296                 }
   363                 }
   297             break;
   364             break;
   298             
   365            
       
   366         case ECCPErrorQualityOfServiceNotAvailable:
       
   367         case ECCPErrorAccessInformationDiscarded:
   299         case ECCPErrorCCResourceNotAvailable:
   368         case ECCPErrorCCResourceNotAvailable:
   300             SendGlobalWarningNoteL( EPhoneErrorInConnection );
   369             SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
   301             break;
   370             break;
   302                         
   371                         
   303         case ECCPErrorNumberBarred:
   372         case ECCPErrorNumberBarred:
   304             SendGlobalWarningNoteL( EPhoneNumberBarred );
   373             SendGlobalWarningNoteL( EPhoneNumberBarred, ETrue );
   305             break;
   374             break;
   306             
   375             
   307         case ECCPErrorCCUserAlertingNoAnswer:
   376         case ECCPErrorCCUserAlertingNoAnswer:
   308             if( IsVideoCall( aErrorInfo.iCallId ) )
   377             if( IsVideoCall( aErrorInfo.iCallId ) )
   309                 {
   378                 {
   310                 SendGlobalInfoNoteL( EPhoneNoAnswer );
   379                 SendGlobalInfoNoteL( EPhoneNoAnswer, ETrue );
   311                 }
   380                 }
   312             else
   381             else
   313                 {
   382                 {
   314                 SendGlobalWarningNoteL( EPhoneNoAnswer );   
   383                 SendGlobalWarningNoteL( EPhoneNoAnswer, ETrue );   
   315                 }           
   384                 }           
   316             break;
   385             break;
   317             
   386             
   318         case KErrPhoneEngineNoWcdmaNetwork:  // Videotel special case. Refactoring PE/CSPlugin needed
   387         case KErrPhoneEngineNoWcdmaNetwork:  // Videotel special case. Refactoring PE/CSPlugin needed
   319         case ECCPErrorVideoCallNotSupportedByNetwork:
   388         case ECCPErrorVideoCallNotSupportedByNetwork: ////
   320             SendGlobalInfoNoteL( EPhoneInformationNoNetworkSupportForVideoCallNote );
   389             SendGlobalInfoNoteL( EPhoneInformationNoNetworkSupportForVideoCallNote );
   321             break;
   390             break;
   322                 
   391                 
   323         case KErrPhoneEngineVideoCallNotAllowedDuringRestore: // Videotel special case. Refactoring PE/CSPlugin needed
   392         case KErrPhoneEngineVideoCallNotAllowedDuringRestore: // Videotel special case. Refactoring PE/CSPlugin needed
   324         case ECCPErrorVideoCallNotAllowedDuringRestore:
   393         case ECCPErrorVideoCallNotAllowedDuringRestore:
   329         case ECCPErrorVideoCallSetupFailed:
   398         case ECCPErrorVideoCallSetupFailed:
   330             SendGlobalInfoNoteL( EPhoneNoteVideoCallSetupFailed );
   399             SendGlobalInfoNoteL( EPhoneNoteVideoCallSetupFailed );
   331             break;
   400             break;
   332 
   401 
   333         case ECCPErrorNetworkBusy:
   402         case ECCPErrorNetworkBusy:
   334             SendGlobalWarningNoteL( EPhoneNetworkBusy );
   403             SendGlobalWarningNoteL( EPhoneNetworkBusy, ETrue );
   335             break;
   404             break;
   336             
   405             
   337         case ECCPErrorNoService:
   406         case ECCPErrorNoService:
   338             SendGlobalWarningNoteL( EPhoneNoteNoService );   
   407             SendGlobalWarningNoteL( EPhoneNoteNoService, ETrue );   
   339             break;
   408             break;
   340             
   409             
   341         case ECCPErrorBusy:
   410         case ECCPErrorBusy:
   342             SendGlobalWarningNoteL( EPhoneNumberBusy );   
   411             SendGlobalWarningNoteL( EPhoneNumberBusy, ETrue );   
   343             break;
   412             break;
   344             
   413             
   345         case ECCPErrorUserNotInCug:
   414         case ECCPErrorUserNotInCug:
   346             if( IsVideoCall( aErrorInfo.iCallId ) )
   415             if( IsVideoCall( aErrorInfo.iCallId ) )
   347                 {
   416                 {
   348                 SendGlobalInfoNoteL( EPhoneNumberNotInCUG );
   417                 SendGlobalInfoNoteL( EPhoneNumberNotInCUG, ETrue );
   349                 }
   418                 }
       
   419             else
       
   420                 {
       
   421                 SendGlobalWarningNoteL( EPhoneNumberNotInCUG, ETrue );   
       
   422                 }
       
   423             break;
       
   424             
       
   425         case ECCPErrorCCNoRouteToDestination:
       
   426              if( IsVideoCall( aErrorInfo.iCallId ) )
       
   427                  {
       
   428                  SendGlobalInfoNoteL( EPhoneErrorInConnection );
       
   429                  }
   350              else
   430              else
   351                 {
   431                  {
   352                 SendGlobalWarningNoteL( EPhoneNumberNotInCUG );   
   432                  SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
   353                 }
   433                  }
   354             break;
       
   355             
       
   356         case ECCPErrorCCNoRouteToDestination:
       
   357             if( IsVideoCall( aErrorInfo.iCallId ) )
       
   358                 {
       
   359                 SendGlobalInfoNoteL( EPhoneNotePhoneOutOf3GCoverage );
       
   360                 }
       
   361             else
       
   362                 {
       
   363                 SendGlobalWarningNoteL( EPhoneErrorInConnection );
       
   364                 }
       
   365              break;
   434              break;
   366             
   435             
   367         case ECCPErrorCCNormalCallClearing:
   436         case ECCPErrorCCNormalCallClearing:
   368             if( IsVideoCall( aErrorInfo.iCallId ) )
   437             if( IsVideoCall( aErrorInfo.iCallId ) )
   369                 {
   438                 {
   372             break;
   441             break;
   373                     
   442                     
   374         case ECCPErrorCCUserNotResponding:
   443         case ECCPErrorCCUserNotResponding:
   375             if( IsVideoCall( aErrorInfo.iCallId ) )
   444             if( IsVideoCall( aErrorInfo.iCallId ) )
   376                 {
   445                 {
   377                 SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue18 ); 
   446                 SendGlobalInfoNoteL( EPhoneNoAnswer ); 
   378                 }
   447                 }
   379             else
   448             else
   380                 {
   449                 {
   381                 SendGlobalWarningNoteL( EPhoneNoAnswer );
   450                 SendGlobalWarningNoteL( EPhoneNoAnswer, ETrue );
   382                 }
   451                 }
   383             break;
   452             break;
   384             
   453             
   385         case ECCPErrorCCCallRejected:
   454         case ECCPErrorCCCallRejected:
   386             if( IsVideoCall( aErrorInfo.iCallId ) )
   455             if ( !iStateMachine->PhoneEngineInfo()->IsOutgoingCallBarringActivated() )
   387                 {
   456                 {
   388                 SendGlobalInfoNoteL( EPhoneNoteCalledNumberHasBarredIncomingCalls );
   457                 if( IsVideoCall( aErrorInfo.iCallId ) )
   389                 }
   458                     {
   390             else if ( IsVoiceCall( aErrorInfo.iCallId ))
   459                     SendGlobalInfoNoteL( EPhoneNoteCalledNumberHasBarredIncomingCalls );
   391                 {
   460                     }
   392                 SendGlobalWarningNoteL( EPhoneNoteCallInfoCauseValue21 );
   461                 else if ( IsVoiceCall( aErrorInfo.iCallId ))
       
   462                     {
       
   463                     SendGlobalWarningNoteL( EPhoneNoteCalledNumberHasBarredIncomingCalls, ETrue );
       
   464                     }
   393                 }
   465                 }
   394             break;
   466             break;
   395             
   467             
   396         case ECCPErrorMovedPermanently:
   468         case ECCPErrorMovedPermanently:
   397             SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue22 );
   469             if( IsVideoCall( aErrorInfo.iCallId ) )
       
   470                 {
       
   471                 SendGlobalInfoNoteL( EPhoneNumberNotInUse );
       
   472                 }
       
   473             else
       
   474                 {
       
   475                 SendGlobalWarningNoteL( EPhoneNumberNotInUse, ETrue );
       
   476                 }
   398             break;
   477             break;
   399             
   478             
   400         case ECCPErrorNoAnswerForVideo:
   479         case ECCPErrorNoAnswerForVideo:
   401             if( IsVideoCall( aErrorInfo.iCallId ) )
   480             if( IsVideoCall( aErrorInfo.iCallId ) )
   402                 {
   481                 {
   403                 SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue16 );   
   482                 SendGlobalInfoNoteL( EPhoneNotePhoneOutOf3GCoverage );   
   404                 }
   483                 }
   405             else
   484             else
   406                 {
   485                 {
   407                 SendGlobalWarningNoteL( EPhoneNoAnswer );
   486                 SendGlobalWarningNoteL( EPhoneNoAnswer, ETrue );
   408                 }
   487                 }
   409             break;
   488             break;
   410             
   489             
   411         case ECCPErrorCCNoChannelAvailable:
   490         case ECCPErrorCCNoChannelAvailable:
   412             if( IsVideoCall( aErrorInfo.iCallId ) )
   491             if( IsVideoCall( aErrorInfo.iCallId ) )
   413                 {
   492                 {
   414                 SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue34 ); 
   493                 SendGlobalInfoNoteL( EPhoneNetworkBusy ); 
   415                 }
   494                 }
   416             else
   495             else
   417                 {
   496                 {
   418                 SendGlobalWarningNoteL( EPhoneNetworkBusy );
   497                 SendGlobalWarningNoteL( EPhoneNetworkBusy, ETrue );
   419                 }
   498                 }
   420             break;
   499             break;
   421             
   500             
   422         case ECCPErrorNetworkOutOfOrder:
   501         case ECCPErrorNetworkOutOfOrder:
   423             if( IsVideoCall( aErrorInfo.iCallId ) )
   502             if( IsVideoCall( aErrorInfo.iCallId ) )
   424                 {
   503                 {
   425                 SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue38 );
   504                 SendGlobalInfoNoteL( EPhoneErrorInConnection );
   426                 }
   505                 }
   427             else
   506             else
   428                 {
   507                 {
   429                 SendGlobalWarningNoteL( EPhoneErrorInConnection );
   508                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
   430                 }
   509                 }
   431             break;
   510             break;
   432             
   511             
   433         case ECCPErrorCCRequestedFacilityNotSubscribed:
   512         case ECCPErrorCCRequestedFacilityNotSubscribed:
   434             if( IsVideoCall( aErrorInfo.iCallId ) )
   513             if( IsVideoCall( aErrorInfo.iCallId ) )
   435                 {
   514                 {
   436                 SendGlobalInfoNoteL( EPhoneNoteVideoCallOnlyPossibleUnder3GCoverage );
   515                 SendGlobalInfoNoteL( EPhoneNoteVideoCallOnlyPossibleUnder3GCoverage );
   437                 }
   516                 }
   438             else
   517             else
   439                 {
   518                 {
   440                 SendGlobalWarningNoteL( EPhoneNoteTextNotAllowed );
   519                 SendGlobalWarningNoteL( EPhoneNoteTextNotAllowed, ETrue );
   441                 }
   520                 }
   442             break;
   521             break;
   443 
   522 
   444         case ECCPErrorCCIncomingCallsBarredInCug:
   523         case ECCPErrorCCIncomingCallsBarredInCug:
   445             SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue55 );
   524             if( IsVideoCall( aErrorInfo.iCallId ) )
       
   525                 {
       
   526                 SendGlobalInfoNoteL( EPhoneNumberBarred );
       
   527                 }
       
   528             else
       
   529                 {
       
   530                 SendGlobalWarningNoteL( EPhoneNumberBarred, ETrue );
       
   531                 }
   446             break;
   532             break;
   447             
   533             
   448         case ECCPErrorCCIncompatibleDestination:
   534         case ECCPErrorCCIncompatibleDestination:
   449         case ECCPErrorCCBearerCapabilityNotAuthorised:
   535         case ECCPErrorCCBearerCapabilityNotAuthorised:
   450             if( IsVideoCall( aErrorInfo.iCallId ) )
   536             if( IsVideoCall( aErrorInfo.iCallId ) )
   451                 {
   537                 {
   452                 SendGlobalInfoNoteL( EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone );
   538                 SendGlobalInfoNoteL( EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone );
   453                 }
   539                 }
       
   540             else
       
   541                 {
       
   542                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
       
   543                 }
   454             break;
   544             break;
   455         
   545         
   456         case ECCPErrorCCBearerCapabilityNotCurrentlyAvailable:
   546         case ECCPErrorCCBearerCapabilityNotCurrentlyAvailable:
   457             if( IsVideoCall( aErrorInfo.iCallId ) )
   547         case ECCPErrorCCInvalidMandatoryInformation:
   458                 {
   548         case ECCPErrorCCUnspecifiedInterworkingError:
   459                 SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue58 );
   549             if( IsVideoCall( aErrorInfo.iCallId ) )
       
   550                 {
       
   551                 SendGlobalInfoNoteL( EPhoneNoteVideoCallNotPossible );
       
   552                 }
       
   553             else
       
   554                 {
       
   555                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
   460                 }
   556                 }
   461             break;
   557             break;
   462             
   558             
   463         case ECCPErrorBadRequest:
   559         case ECCPErrorBadRequest:
   464             if( IsVideoCall( aErrorInfo.iCallId ) )
   560             if( IsVideoCall( aErrorInfo.iCallId ) )
   465                 {
   561                 {
   466                 SendGlobalInfoNoteL( EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone );
   562                 SendGlobalInfoNoteL( EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone );
   467                 }
   563                 }
   468             else
   564             else
   469                 {
   565                 {
   470                 SendGlobalWarningNoteL( EPhoneErrorInConnection );
   566                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
   471                 } 
   567                 } 
   472             break;
   568             break;
   473             
   569             
   474         case ECCPErrorCCUnspecifiedInterworkingError:
   570         case ECCPErrorCCPreemption:                                              
   475             if( IsVideoCall( aErrorInfo.iCallId ) )
       
   476                 {
       
   477                 SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue127 );
       
   478                 }
       
   479             break;
       
   480             
       
   481         case ECCPErrorCCPreemption:        
       
   482         case ECCPErrorCCResponseToStatusEnquiry:        
       
   483         case ECCPErrorCCInvalidMandatoryInformation:        
       
   484         case ECCPErrorCCNonExistentMessageType:        
       
   485         case ECCPErrorCCIncompatibleMessageInProtocolState:        
       
   486         case ECCPErrorCCNonExistentInformationElement:
       
   487             if( IsVideoCall( aErrorInfo.iCallId ) )
   571             if( IsVideoCall( aErrorInfo.iCallId ) )
   488                 {
   572                 {
   489                 SendGlobalInfoNoteL( EPhoneNoteCallInfoNotSupported );
   573                 SendGlobalInfoNoteL( EPhoneNoteCallInfoNotSupported );
   490                 }
   574                 }
   491             else
   575             else
   492                 {
   576                 {
   493                 SendGlobalWarningNoteL( EPhoneErrorInConnection );
   577                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
   494                 }     
   578                 }     
   495             break;
   579             break;
   496 
   580         case ECCPErrorCCResponseToStatusEnquiry: 
   497         case ECCPErrorCCRecoveryOnTimerExpiry:        
   581             if( IsVideoCall( aErrorInfo.iCallId ) )
   498             if( IsVideoCall( aErrorInfo.iCallId ) )
   582                 {
   499                 {
   583                 SendGlobalInfoNoteL( EPhoneErrorInConnection );
   500                 SendGlobalInfoNoteL( EPhoneNoteCallInfoNotSupported );                
   584                 }
   501                 }
   585             else
       
   586                 {
       
   587                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
       
   588                 }              
   502             break;
   589             break;
   503             
   590             
   504         case ECCPErrorCCFacilityRejected:
   591         case ECCPErrorCCFacilityRejected:
   505             if( IsVideoCall( aErrorInfo.iCallId ) )
   592             if( IsVideoCall( aErrorInfo.iCallId ) )
   506                 {
   593                 {
   507                 SendGlobalInfoNoteL( EPhoneNoteCallInfoNotSupported );
   594                 SendGlobalInfoNoteL( EPhoneNoteTextRequestRejected );
   508                 }
   595                 }
   509             else
   596             else
   510                 {
   597                 {
   511                 SendGlobalErrorNoteL( EPhoneNoteTextRequestRejected );
   598                 SendGlobalErrorNoteL( EPhoneNoteTextRequestRejected, ETrue );
   512                 }
   599                 }
   513             break;
   600             break;
   514             
   601             
   515         case ECCPTransferFailed:
   602         case ECCPTransferFailed:
   516             SendGlobalErrorNoteL( EPhoneNoteTextRequestRejected );
   603             SendGlobalErrorNoteL( EPhoneNoteTextRequestRejected, ETrue );
   517             break;
   604             break;
   518  
   605  
   519         case ECCPErrorCCServiceNotAvailable:
       
   520         case ECCPErrorCCBearerServiceNotImplemented:
   606         case ECCPErrorCCBearerServiceNotImplemented:
   521         case ECCPErrorCCOnlyRestrictedDigitalInformationBCAvailable:
   607         case ECCPErrorCCOnlyRestrictedDigitalInformationBCAvailable:
       
   608         case ECCPErrorCCNonExistentMessageType:
       
   609         case ECCPErrorCCIncompatibleMessageInProtocolState:
       
   610         case ECCPErrorCCNonExistentInformationElement:
       
   611         case ECCPErrorCCRecoveryOnTimerExpiry:
       
   612             if ( IsVideoCall( aErrorInfo.iCallId ) ) 
       
   613                 {
       
   614                 SendGlobalInfoNoteL( EPhoneNoteVideoCallNotPossible ); //Video call didn't succeed to called end.
       
   615                 }
       
   616             else
       
   617                 {
       
   618                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
       
   619                 }
       
   620             break;
       
   621             
   522         case ECCPErrorCCServiceNotImplemented:
   622         case ECCPErrorCCServiceNotImplemented:
   523             if( IsVideoCall( aErrorInfo.iCallId ) )
   623             if( IsVideoCall( aErrorInfo.iCallId ) )
   524                 {
   624                 {
   525                 SendGlobalInfoNoteL( EPhoneNoteCallInfoServiceNotAvailable );
   625                 SendGlobalInfoNoteL( EPhoneNoteCallInfoServiceNotAvailable );
   526                 }
   626                 }
   527             else
   627             break;
   528                 {
   628 
   529                 SendGlobalWarningNoteL( EPhoneErrorInConnection );
   629         case ECCPErrorCCServiceNotAvailable:
       
   630             if( IsVideoCall( aErrorInfo.iCallId ) )
       
   631                 {
       
   632                 SendGlobalInfoNoteL( EPhoneErrorInConnection );
       
   633                 }
       
   634             else
       
   635                 {
       
   636                 SendGlobalWarningNoteL( EPhoneErrorInConnection, ETrue );
   530                 }
   637                 }
   531             break;
   638             break;
   532             
   639             
   533         case ECCPErrorCUGOutgoingCallsBarred:
   640         case ECCPErrorCUGOutgoingCallsBarred:
   534             SendGlobalInfoNoteL( EPhoneOutgoingCallsBarredWithinCUG );
   641             SendGlobalInfoNoteL( EPhoneOutgoingCallsBarredWithinCUG, ETrue );
   535             break;
   642             break;
   536         
   643         
   537         case ECCPErrorCUGNotSelected:
   644         case ECCPErrorCUGNotSelected:
   538             SendGlobalInfoNoteL( EPhoneNoCUGSelected );
   645             SendGlobalInfoNoteL( EPhoneNoCUGSelected, ETrue );
   539             break;
   646             break;
   540         
   647         
   541         case ECCPErrorCUGIndexUnknown:
   648         case ECCPErrorCUGIndexUnknown:
   542             SendGlobalInfoNoteL( EPhoneUnknownCUGIndex );
   649             SendGlobalInfoNoteL( EPhoneUnknownCUGIndex, ETrue );
   543             break;
   650             break;
   544         
   651         
   545         case ECCPErrorCUGIndexIncompatible:
   652         case ECCPErrorCUGIndexIncompatible:
   546             SendGlobalInfoNoteL( EPhoneCUGIndexIncompatible );
   653             SendGlobalInfoNoteL( EPhoneCUGIndexIncompatible, ETrue );
   547             break;
   654             break;
   548         
   655         
   549         case ECCPErrorCUGCallsFailure:
   656         case ECCPErrorCUGCallsFailure:
   550             SendGlobalInfoNoteL( EPhoneCUGCallsFailure );
   657             SendGlobalInfoNoteL( EPhoneCUGCallsFailure, ETrue );
   551             break;
   658             break;
   552         
   659         
   553         case ECCPErrorCLIRNotSubscribed:
   660         case ECCPErrorCLIRNotSubscribed:
   554             SendGlobalInfoNoteL( EPhoneCLIRNotSubscribed );
   661             SendGlobalInfoNoteL( EPhoneCLIRNotSubscribed, ETrue );
   555             break;
   662             break;
   556             
   663             
   557         case ECCPErrorCCBSPossible:
   664         case ECCPErrorCCBSPossible:
   558         case ECCPErrorCCBSNotPossible:
   665         case ECCPErrorCCBSNotPossible:
   559         case ECCPErrorSatControl:
   666         case ECCPErrorSatControl:
   565                 EPhoneControl,
   672                 EPhoneControl,
   566                 "PHONEUI_ERROR: CPhoneErrorMessagesHandler::HandleErrorL - Error received (err=%d)",
   673                 "PHONEUI_ERROR: CPhoneErrorMessagesHandler::HandleErrorL - Error received (err=%d)",
   567                 aErrorInfo.iErrorCode);
   674                 aErrorInfo.iErrorCode);
   568             break;
   675             break;
   569         } 
   676         } 
       
   677     
       
   678     iCallId = KErrNotFound;
   570     }    
   679     }    
   571 
   680 
   572 // -----------------------------------------------------------
   681 // -----------------------------------------------------------
   573 // CPhoneErrorMessagesHandler::IsVideoCall
   682 // CPhoneErrorMessagesHandler::IsVideoCall
   574 // -----------------------------------------------------------
   683 // -----------------------------------------------------------
   585         }
   694         }
   586         
   695         
   587     return ( iStateMachine->PhoneEngineInfo()
   696     return ( iStateMachine->PhoneEngineInfo()
   588         ->CallType( aCallId )== EPECallTypeVideo );
   697         ->CallType( aCallId )== EPECallTypeVideo );
   589     }
   698     }
   590     
   699 
   591 // -----------------------------------------------------------
   700 // -----------------------------------------------------------
   592 // CPhoneErrorMessagesHandler::IsVoiceCall
   701 // CPhoneErrorMessagesHandler::IsVoiceCall
   593 // -----------------------------------------------------------
   702 // -----------------------------------------------------------
   594 //
   703 //
   595 TBool CPhoneErrorMessagesHandler::IsVoiceCall( const TInt aCallId ) const
   704 TBool CPhoneErrorMessagesHandler::IsVoiceCall( const TInt aCallId ) const
   604         }
   713         }
   605      
   714      
   606     return ( iStateMachine->PhoneEngineInfo()
   715     return ( iStateMachine->PhoneEngineInfo()
   607             ->CallType( aCallId )== EPECallTypeCSVoice );
   716             ->CallType( aCallId )== EPECallTypeCSVoice );
   608 	}
   717 	}
       
   718     
       
   719 // -----------------------------------------------------------
       
   720 // CPhoneErrorMessagesHandler::GetCauseCode
       
   721 // -----------------------------------------------------------
       
   722 //
       
   723 TBool CPhoneErrorMessagesHandler::GetCauseCode( 
       
   724         TInt &aCauseCode, TInt &aResourceId, TBool &aNotification ) const
       
   725     {
       
   726     __LOGMETHODSTARTEND( EPhoneControl, "CPhoneErrorMessagesHandler::CauseCode() ");
       
   727 
       
   728     aCauseCode = KErrNotFound;
       
   729     aNotification = ETrue;
       
   730     TInt callId = (KErrNotFound == iCallId) ? 
       
   731         iStateMachine->PhoneEngineInfo()->CallId() :
       
   732         iCallId;
       
   733     
       
   734     
       
   735     //get exit code error from call data
       
   736     TInt callError = iStateMachine->PhoneEngineInfo()->ProtocolError( 
       
   737             callId );
       
   738 
       
   739     switch( callError )
       
   740         {
       
   741         case KErrGsmCCUnassignedNumber:
       
   742             aResourceId = EPhoneNumberNotInUse;
       
   743             aCauseCode = 1;                
       
   744             break;
       
   745             
       
   746         case KErrGsmCCNoRouteToDestination:
       
   747             aResourceId = EPhoneErrorInConnection;
       
   748             aCauseCode = 3;                
       
   749             break;
       
   750 
       
   751         case KErrGsmCCChannelUnacceptable:
       
   752             if ( IsVideoCall( callId ) ) 
       
   753                 {
       
   754                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
   755                 aNotification = EFalse;
       
   756                 }
       
   757             else
       
   758                 {
       
   759                 aResourceId = EPhoneErrorInConnection;
       
   760                 }
       
   761             aCauseCode = 6;                
       
   762             break;
       
   763             
       
   764         case KErrGsmCCOperatorDeterminedBarring:
       
   765             aResourceId = EPhoneNumberBarred;
       
   766             aCauseCode = 8;            
       
   767             break;
       
   768             
       
   769         case KErrGsmCCUserBusy:
       
   770             aResourceId = EPhoneNumberBusy;
       
   771             aCauseCode = 17;                
       
   772             break;
       
   773             
       
   774         case KErrGsmCCUserNotResponding:
       
   775             aResourceId = EPhoneNoAnswer;
       
   776             aCauseCode = 18;                
       
   777             break;
       
   778             
       
   779         case KErrGsmCCUserAlertingNoAnswer:
       
   780             aResourceId = EPhoneNoAnswer;
       
   781             aCauseCode = 19;                
       
   782             break;
       
   783             
       
   784         case KErrGsmCCCallRejected:
       
   785             if ( !iStateMachine->PhoneEngineInfo()->IsOutgoingCallBarringActivated() )
       
   786                 {
       
   787                 aResourceId = EPhoneNoteCalledNumberHasBarredIncomingCalls;
       
   788                 aCauseCode = 21;
       
   789                 aNotification = (EFalse == IsVideoCall( callId ));
       
   790                 }
       
   791             break;
       
   792             
       
   793         case KErrGsmCCNumberChanged:
       
   794             aResourceId = EPhoneNumberNotInUse;
       
   795             aCauseCode = 22;
       
   796             break;
       
   797         
       
   798         case KErrGsmCCNonSelectedUserClearing:
       
   799             if ( IsVideoCall( callId ) ) 
       
   800                 {
       
   801                 aResourceId = EPhoneNotePhoneOutOf3GCoverage; 
       
   802                 aNotification = EFalse;
       
   803                 }
       
   804             else
       
   805                 {
       
   806                 aResourceId = EPhoneNoAnswer;
       
   807                 }
       
   808             aCauseCode = 26;                
       
   809             break;
       
   810             
       
   811         case KErrGsmCCDestinationOutOfOrder:
       
   812             if ( IsVideoCall( callId ) ) 
       
   813                 {
       
   814                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
   815                 aNotification = EFalse;
       
   816                 }
       
   817             else
       
   818                 {
       
   819                 aResourceId = EPhoneErrorInConnection;
       
   820                 }
       
   821             aCauseCode = 27;
       
   822             break;
       
   823 
       
   824         case KErrGsmCCInvalidNumberFormat:
       
   825             aResourceId = EPhoneInvalidPhoneNumber;
       
   826             aCauseCode = 28;                
       
   827             break;
       
   828             
       
   829         case KErrGsmCCFacilityRejected:
       
   830             aResourceId = EPhoneNoteTextRequestRejected;
       
   831             aCauseCode = 29;                
       
   832             break;
       
   833      
       
   834         case KErrGsmCCResponseToStatusEnquiry:
       
   835             aResourceId = EPhoneErrorInConnection;
       
   836             aCauseCode = 30;                
       
   837             break;
       
   838             
       
   839         case KErrGsmCCNormalUnspecified:
       
   840             if ( IsVideoCall( callId ) ) 
       
   841                 {
       
   842                 aResourceId = EPhoneNotePhoneOutOf3GCoverage; 
       
   843                 aNotification = EFalse;
       
   844                 }
       
   845             else
       
   846                 {
       
   847                 aResourceId = EPhoneNoAnswer;
       
   848                 }
       
   849             aCauseCode = 31;                
       
   850             break;
       
   851             
       
   852         case KErrGsmCCNoChannelAvailable:
       
   853             aResourceId = EPhoneNetworkBusy;
       
   854             aCauseCode = 34;                
       
   855             break;
       
   856             
       
   857         case KErrGsmCCNetworkOutOfOrder:
       
   858             aResourceId = EPhoneErrorInConnection;
       
   859             aCauseCode = 38;                
       
   860             break;
       
   861             
       
   862         case KErrGsmCCTemporaryFailure:
       
   863             aResourceId = EPhoneNetworkBusy;
       
   864             aCauseCode = 41;                
       
   865             break;
       
   866             
       
   867         case KErrGsmCCSwitchingEquipmentCongestion:
       
   868             aResourceId = EPhoneNetworkBusy;
       
   869             aCauseCode = 42;                
       
   870             break;
       
   871             
       
   872         case KErrGsmCCAccessInformationDiscarded:
       
   873             aResourceId = EPhoneErrorInConnection;
       
   874             aCauseCode = 43;                
       
   875             break;
       
   876             
       
   877         case KErrGsmCCRequestedChannelNotAvailable:
       
   878             aResourceId = EPhoneNetworkBusy;
       
   879             aCauseCode = 44;                
       
   880             break;
       
   881             
       
   882         case KErrGsmCCResourceNotAvailable:
       
   883             aResourceId = EPhoneErrorInConnection;
       
   884             aCauseCode = 47;                
       
   885             break;
       
   886             
       
   887         case KErrGsmCCQualityOfServiceNotAvailable:
       
   888             aResourceId = EPhoneErrorInConnection;
       
   889             aCauseCode = 49;                
       
   890             break;
       
   891             
       
   892         case KErrGsmCCRequestedFacilityNotSubscribed:
       
   893             if ( IsVideoCall( callId ) ) 
       
   894                 {
       
   895                 aResourceId = EPhoneNoteVideoCallOnlyPossibleUnder3GCoverage; 
       
   896                 aNotification = EFalse;
       
   897                 }
       
   898             else
       
   899                 {
       
   900                 aResourceId = EPhoneNoteTextNotAllowed;
       
   901                 }
       
   902             aCauseCode = 50;                
       
   903             break;
       
   904             
       
   905         case KErrGsmCCIncomingCallsBarredInCug:
       
   906             aResourceId = EPhoneNumberBarred;
       
   907             aCauseCode = 55;                
       
   908             break;
       
   909             
       
   910         case KErrGsmCCBearerCapabilityNotAuthorised:
       
   911             if ( IsVideoCall( callId ) ) 
       
   912                 {
       
   913                 aResourceId = EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone; 
       
   914                 aNotification = EFalse;
       
   915                 }
       
   916             else
       
   917                 {
       
   918                 aResourceId = EPhoneErrorInConnection;
       
   919                 }
       
   920             aCauseCode = 57;                
       
   921             break;
       
   922    
       
   923         case KErrGsmCCBearerCapabilityNotCurrentlyAvailable:
       
   924             if ( IsVideoCall( callId ) ) 
       
   925                 {
       
   926                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
   927                 aNotification = EFalse;
       
   928                 }
       
   929             else
       
   930                 {
       
   931                 aResourceId = EPhoneErrorInConnection;
       
   932                 }
       
   933             aCauseCode = 58;                
       
   934             break;
       
   935             
       
   936         case KErrGsmCCServiceNotAvailable:
       
   937             aResourceId = EPhoneErrorInConnection;
       
   938             aCauseCode = 63;                
       
   939             break;
       
   940             
       
   941         case KErrGsmCCBearerServiceNotImplemented:
       
   942             if ( IsVideoCall( callId ) ) 
       
   943                 {
       
   944                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
   945                 aNotification = EFalse;
       
   946                 }
       
   947             else
       
   948                 {
       
   949                 aResourceId = EPhoneErrorInConnection;
       
   950                 }
       
   951             aCauseCode = 65;                
       
   952             break;
       
   953  
       
   954         case KErrGsmCCAcmGreaterThanAcmMax:
       
   955             aResourceId = EPhoneErrorInConnection;
       
   956             aCauseCode = 68;                
       
   957             break;
       
   958             
       
   959         case KErrGsmCCRequestedFacilityNotImplemented:
       
   960             if ( IsVideoCall( callId ) ) 
       
   961                 {
       
   962                 aResourceId = EPhoneNotePhoneOutOf3GCoverage;
       
   963                 aNotification = EFalse;
       
   964                 }
       
   965             else
       
   966                 {
       
   967                 aResourceId = EPhoneNoteTextCheckNetworkservices;
       
   968                 }
       
   969             aCauseCode = 69;                
       
   970             break;
       
   971             
       
   972         case KErrGsmCCOnlyRestrictedDigitalInformationBCAvailable:
       
   973             if ( IsVideoCall( callId ) ) 
       
   974                 {
       
   975                 aResourceId = EPhoneNoteVideoCallNotPossible;
       
   976                 aNotification = EFalse;
       
   977                 }
       
   978             else
       
   979                 {
       
   980                 aResourceId = EPhoneNoteTextCheckNetworkservices;
       
   981                 }
       
   982             aCauseCode = 70;                
       
   983             break;
       
   984             
       
   985         case KErrGsmCCServiceNotImplemented:
       
   986             if ( IsVideoCall( callId ) ) 
       
   987                 {
       
   988                 aResourceId = EPhoneNoteVideoCallNotPossible;
       
   989                 aNotification = EFalse;
       
   990                 }
       
   991             else
       
   992                 {
       
   993                 aResourceId = EPhoneErrorInConnection;
       
   994                 }
       
   995             aCauseCode = 79;                
       
   996             break;
       
   997             
       
   998         case KErrGsmCCInvalidCallReferenceValue:
       
   999             if ( IsVideoCall( callId ) ) 
       
  1000                 {
       
  1001                 aResourceId = EPhoneNoteVideoCallNotPossible;
       
  1002                 aNotification = EFalse;
       
  1003                 }
       
  1004             else
       
  1005                 {
       
  1006                 aResourceId = EPhoneErrorInConnection;
       
  1007                 }
       
  1008             aCauseCode = 81;                
       
  1009             break;
       
  1010             
       
  1011         case KErrGsmCCUserNotInCug:
       
  1012             aResourceId = EPhoneNumberNotInCUG;
       
  1013             aCauseCode = 87;                
       
  1014             break;
       
  1015             
       
  1016         case KErrGsmCCIncompatibleDestination:
       
  1017             if ( IsVideoCall( callId ) ) 
       
  1018                 {
       
  1019                 aResourceId = EPhoneNoteUnableToMakeVideoCallNotSupportedByOtherPhone;
       
  1020                 aNotification = EFalse;
       
  1021                 }
       
  1022             else
       
  1023                 {
       
  1024                 aResourceId = EPhoneErrorInConnection;
       
  1025                 }
       
  1026             aCauseCode = 88;                
       
  1027             break;
       
  1028        
       
  1029         case KErrGsmCCInvalidTransitNetworkSelection:
       
  1030             if ( IsVideoCall( callId ) ) 
       
  1031                 {
       
  1032                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1033                 aNotification = EFalse;
       
  1034                 }
       
  1035             else
       
  1036                 {
       
  1037                 aResourceId = EPhoneErrorInConnection;
       
  1038                 }
       
  1039             aCauseCode = 91;                
       
  1040             break;
       
  1041             
       
  1042         case KErrGsmCCSemanticallyIncorrectMessage:
       
  1043             if ( IsVideoCall( callId ) ) 
       
  1044                 {
       
  1045                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1046                 aNotification = EFalse;
       
  1047                 }
       
  1048             else
       
  1049                 {
       
  1050                 aResourceId = EPhoneErrorInConnection;
       
  1051                 }
       
  1052             aCauseCode = 95;                
       
  1053             break;
       
  1054             
       
  1055         case KErrGsmCCInvalidMandatoryInformation:
       
  1056             if ( IsVideoCall( callId ) ) 
       
  1057                 {
       
  1058                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1059                 aNotification = EFalse;
       
  1060                 }
       
  1061             else
       
  1062                 {
       
  1063                 aResourceId = EPhoneErrorInConnection;
       
  1064                 }
       
  1065             aCauseCode = 96;                
       
  1066             break;
       
  1067             
       
  1068         case KErrGsmCCNonExistentMessageType:
       
  1069             if ( IsVideoCall( callId ) ) 
       
  1070                 {
       
  1071                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1072                 aNotification = EFalse;
       
  1073                 }
       
  1074             else
       
  1075                 {
       
  1076                 aResourceId = EPhoneErrorInConnection;
       
  1077                 }
       
  1078             aCauseCode = 97;                
       
  1079             break;
       
  1080             
       
  1081         case KErrGsmCCIncompatibleMessageInProtocolState:
       
  1082             if ( IsVideoCall( callId ) ) 
       
  1083                 {
       
  1084                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1085                 aNotification = EFalse;
       
  1086                 }
       
  1087             else
       
  1088                 {
       
  1089                 aResourceId = EPhoneErrorInConnection;
       
  1090                 }
       
  1091             aCauseCode = 98;                
       
  1092             break;
       
  1093             
       
  1094         case KErrGsmCCNonExistentInformationElement:
       
  1095             if ( IsVideoCall( callId ) ) 
       
  1096                 {
       
  1097                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1098                 aNotification = EFalse;
       
  1099                 }
       
  1100             else
       
  1101                 {
       
  1102                 aResourceId = EPhoneErrorInConnection;
       
  1103                 }
       
  1104             aCauseCode = 99;                
       
  1105             break;
       
  1106             
       
  1107         case KErrGsmCCConditionalIEError:
       
  1108             if ( IsVideoCall( callId ) ) 
       
  1109                 {
       
  1110                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1111                 aNotification = EFalse;
       
  1112                 }
       
  1113             else
       
  1114                 {
       
  1115                 aResourceId = EPhoneErrorInConnection;
       
  1116                 }
       
  1117             aCauseCode = 100;                
       
  1118             break;
       
  1119             
       
  1120         case KErrGsmCCIncompatibleMessageInCallState:
       
  1121             if ( IsVideoCall( callId ) ) 
       
  1122                 {
       
  1123                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1124                 aNotification = EFalse;
       
  1125                 }
       
  1126             else
       
  1127                 {
       
  1128                 aResourceId = EPhoneErrorInConnection;
       
  1129                 }
       
  1130             aCauseCode = 101;                
       
  1131             break;
       
  1132             
       
  1133         case KErrGsmCCRecoveryOnTimerExpiry:
       
  1134             if ( IsVideoCall( callId ) ) 
       
  1135                 {
       
  1136                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1137                 aNotification = EFalse;
       
  1138                 }
       
  1139             else
       
  1140                 {
       
  1141                 aResourceId = EPhoneErrorInConnection;
       
  1142                 }
       
  1143             aCauseCode = 102;                
       
  1144             break;
       
  1145             
       
  1146         case KErrGsmCCUnspecifiedProtocolError:
       
  1147             if ( IsVideoCall( callId ) ) 
       
  1148                 {
       
  1149                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1150                 aNotification = EFalse;
       
  1151                 }
       
  1152             else
       
  1153                 {
       
  1154                 aResourceId = EPhoneErrorInConnection;
       
  1155                 }
       
  1156             aCauseCode = 111;                
       
  1157             break;
       
  1158             
       
  1159         case KErrGsmCCUnspecifiedInterworkingError:
       
  1160             if ( IsVideoCall( callId ) ) 
       
  1161                 {
       
  1162                 aResourceId = EPhoneNoteVideoCallNotPossible; //Video call didn't succeed to called end.
       
  1163                 aNotification = EFalse;
       
  1164                 }
       
  1165             else
       
  1166                 {
       
  1167                 aResourceId = EPhoneErrorInConnection;
       
  1168                 }
       
  1169             aCauseCode = 127;
       
  1170             break;
       
  1171         default:
       
  1172             break;
       
  1173         }  
       
  1174 
       
  1175     return (aCauseCode != KErrNotFound);
       
  1176     }
   609 
  1177 
   610 // End of File
  1178 // End of File