Merge fix for Bug 3596 RCL_3 PDK_3.0.2
authorandy simpson <andrews@symbian.org>
Thu, 09 Sep 2010 18:09:57 +0100
branchRCL_3
changeset 66 b0a26d6936b2
parent 63 fe4f904300fc (diff)
parent 55 fbea179620e6 (current diff)
child 70 0258d9fa8eac
Merge fix for Bug 3596
phoneengine/phonemodel/src/cpemessagehandler.cpp
--- a/phone_plat/phone_application_commands_api/inc/phoneappcommands.hrh	Tue Aug 17 18:45:21 2010 +0100
+++ b/phone_plat/phone_application_commands_api/inc/phoneappcommands.hrh	Thu Sep 09 18:09:57 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,10 +11,10 @@
 *
 * Contributors:
 *
-* Description: 
+* Description:
 *     This file contains declarations for commands of PhoneAppS60.
 *     The file can be included in C++ or resource file.
-*     
+*
 *
 */
 
@@ -28,7 +28,7 @@
 //  CONSTANTS
 
 #define KPhoneCmdBase 6000
-enum 
+enum
     {
     // commands for all
     EPhoneCmdDoNothing = KPhoneCmdBase,
@@ -132,13 +132,13 @@
     EPhoneInCallCmdCancelSendingDtmfString,
     EPhoneInCallCmdContinueSendingDtmfString,
     EPhoneInCallCmdVoiceMode,
-    EPhoneInCallCmdSendToCallerMenu,    
+    EPhoneInCallCmdSendToCallerMenu,
     EPhoneInCallCmdSendNew,
     EPhoneInCallCmdSendFile,
     EPhoneInCallCmdProcessSend, // NOT IN MENU!
     EPhoneInCallCmdDrop,
     EPhoneInCallCmdPrivate,
-    EPhoneInCallCmdCbaJoin,	// NOT IN MENU!
+    EPhoneInCallCmdCbaJoin,    // NOT IN MENU!
     EPhoneInCallCmdDialer,
 
     // Enable video
@@ -160,7 +160,7 @@
     EPhoneInCallCmdNewCallCall,
     EPhoneInCallCmdGoToIdle,
     EPhoneInCallCmdParticipants,
-    
+
     // CDMA specific
     EPhoneInCallCmdMulticall3WayCall,
     EPhoneInCallCmdMulticallIgnore,
@@ -181,12 +181,12 @@
     EPhoneCmdSettingsUiExit,
     // Settings GUI - Data Parameters GUI (commands specific to DataParameters)
     EPhoneCmdDataParametersRestoreSettings,
-    EPhoneCmdRelease,	
+    EPhoneCmdRelease,
     // DTMF specific
     EPhoneCmdDtmfSearch,
     EPhoneCmdDtmfOk,
     EPhoneCmdDtmfSpeedDialOk,
-    EPhoneInCallCmdDtmfListViewSearch,    
+    EPhoneInCallCmdDtmfListViewSearch,
     // other commands
     EPhoneCmdWaitNoteOk,
     EPhoneCmdVideoCallMemoryLowNoteDismissed,
@@ -196,7 +196,7 @@
     EPhoneCmdYesSwitchToVideo,
     EPhoneCmdNoSwitchToVideo,
     EPhoneCmdYesSwitchToVoice,
-    EPhoneCmdNoSwitchToVoice,    
+    EPhoneCmdNoSwitchToVoice,
     EPhoneMediatorSetPhoneNumber,
     EPhoneCmdCoverUiShowMultimediaRingingTone,
     EPhoneInCallCmdLockKeypad,
@@ -204,17 +204,17 @@
     EPhoneCmdYesVideoFailedNoMemorySwitchToVoice,
     EPhoneCmdNoVideoFailedNoMemorySwitchToVoice,
     EPhoneInCallCmdSetVolumeLevel,
-    
+
     //Dialer commands
     EPhoneDialerCmdLog,
     EPhoneDialerCmdContacts,
-    EPhoneDialerCmdClear,  
+    EPhoneDialerCmdClear,
     EPhoneDialerCallHandling,
     EPhoneDialerCmdTouchInput,
     EPhoneDialerCmdSpeedDial,
     EPhoneDialerCmdEditText,
-    EPhoneDialerCallSettings,	
-    EPhoneDtmfDialerCancel,	
+    EPhoneDialerCallSettings,
+    EPhoneDtmfDialerCancel,
     EPhoneDtmfDialerExit,
     EPhoneIsDTMFDialerVisible,
     EPhoneDialerCmdHelp,
@@ -232,10 +232,13 @@
     EPhoneCmdBlockingDialogLaunched,
     EPhoneCmdBlockingDialogClosed,
 
+    // Update cba in case of emergency call
+    EPhoneCmdUpdateEmergencyCba,
+
     EPhoneCmdLast
     };
-    
-    
+
+
 // Command range for custom menu commands.
 // Custom commands can be used for menu extensions.
 #define KPhoneCustomCmdBase 8000
--- a/phone_plat/telephony_configuration_api/inc/telconfigcrkeys.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phone_plat/telephony_configuration_api/inc/telconfigcrkeys.h	Thu Sep 09 18:09:57 2010 +0100
@@ -31,6 +31,8 @@
 /**
 * Amount of digits to be used in contact matching.
 * This allows a customer to variate the amount of digits to be matched.
+* Note that altough PhoneApp doesn't use this value anymore, there are other
+* users for it in S60 SW. 
 */
 const TUint32 KTelMatchDigits                               = 0x00000001;
 
Binary file phoneapp/phoneui/help/data/xhtml.zip has changed
--- a/phoneapp/phoneui/loc/incalloperations.loc	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneui/loc/incalloperations.loc	Thu Sep 09 18:09:57 2010 +0100
@@ -541,6 +541,13 @@
 //
 #define qtn_incal_tooltip_handset "Activate handset"
 
+// d: Tooltip text for callhandling toolbar 'BT handsfree' button.
+// l: popup_preview_text_window_t1  
+// w:
+// r: 9.2
+//
+#define qtn_incal_tooltip_bt_handsfree "Activate BT handsfree"
+
 // d: Tooltip text for callhandling toolbar 'Mute' button.
 // l: popup_preview_text_window_t1  
 // w:
--- a/phoneapp/phoneui/srcdata/phoneui.rss	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneui/srcdata/phoneui.rss	Thu Sep 09 18:09:57 2010 +0100
@@ -151,19 +151,6 @@
     }
 
 
-// ---------------------------------------------------------
-//
-//    r_phone_incall_muted_pane
-//
-// ---------------------------------------------------------
-//
-RESOURCE TBUF64 r_phone_incall_muted_pane
-    {
-    buf = qtn_incal_muted_pane;
-    }
-
-
-
 // ----------------------------------------------------------------
 //
 //    r_phoneui_idle_menubar
@@ -7593,6 +7580,17 @@
 
 // ----------------------------------------------------------------
 //
+//    r_phoneui_tooltip_bt_handsfree
+//
+// ----------------------------------------------------------------
+//
+RESOURCE TBUF r_phoneui_tooltip_bt_handsfree
+    {
+    buf = qtn_incal_tooltip_bt_handsfree;
+    }
+
+// ----------------------------------------------------------------
+//
 //    r_phoneui_tooltip_mute
 //
 // ----------------------------------------------------------------
@@ -7638,6 +7636,10 @@
         MENU_TITLE
             {
             menu_pane = r_phoneuidialer_options_menu;
+            },
+        MENU_TITLE
+            {
+            menu_pane = r_phoneui_numberacq_options_call_menu;
             }
         };
     }
@@ -7696,12 +7698,6 @@
             },
         MENU_ITEM
             {
-            command = EPhoneNumberAcqCmdCall;
-            cascade = r_phoneui_numberacq_options_call_menu;
-            txt = text_number_call;
-            },
-        MENU_ITEM
-            {
             command = EPhoneNumberAcqCmdSendMessage;
             txt = qtn_nren_send_message;
             },
--- a/phoneapp/phoneuicontrol/bwins/phoneuicontrolu.def	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/bwins/phoneuicontrolu.def	Thu Sep 09 18:09:57 2010 +0100
@@ -1,243 +1,247 @@
 EXPORTS
-	?CallWaitingNoteL@CPhoneState@@IAEXH@Z @ 1  NONAME ; void CPhoneState::CallWaitingNoteL(int)
-	?HandleKeyMessageL@CPhoneStateIncoming@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 2  NONAME ; void CPhoneStateIncoming::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?TopAppIsDisplayedL@CPhoneState@@IBEHXZ @ 3  NONAME ; int CPhoneState::TopAppIsDisplayedL(void) const
-	?HandleKeyMessageL@CPhoneStateCallSetup@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 4  NONAME ; void CPhoneStateCallSetup::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?SetContextMenuL@CPhoneState@@MAEXH@Z @ 5  NONAME ; void CPhoneState::SetContextMenuL(int)
-	?CallFetchedNumberL@CPhoneStateInCall@@MAEXABVTDesC16@@@Z @ 6  NONAME ; void CPhoneStateInCall::CallFetchedNumberL(class TDesC16 const &)
-	?DisconnectCallL@CPhoneState@@MAEXXZ @ 7  NONAME ; void CPhoneState::DisconnectCallL(void)
-	?SetCbaL@CPhoneCbaManager@@QAEXH@Z @ 8  NONAME ; void CPhoneCbaManager::SetCbaL(int)
-	?InstanceL@CPhoneReconnectQuery@@SAPAV1@XZ @ 9  NONAME ; class CPhoneReconnectQuery * CPhoneReconnectQuery::InstanceL(void)
-	?HandlePhoneStartupL@CPhoneState@@UAEXXZ @ 10  NONAME ; void CPhoneState::HandlePhoneStartupL(void)
-	?HandlePhoneFocusLostEventL@CPhoneStateIdle@@UAEXXZ @ 11  NONAME ; void CPhoneStateIdle::HandlePhoneFocusLostEventL(void)
-	?HandleIdleL@CPhoneStateInCall@@IAEXH@Z @ 12  NONAME ; void CPhoneStateInCall::HandleIdleL(int)
-	?ShowQueryL@CPhoneState@@IAEXH@Z @ 13  NONAME ; void CPhoneState::ShowQueryL(int)
-	?PhoneNumberAvailableInPhoneEngineL@CPhoneStateInCall@@IAEXH@Z @ 14  NONAME ; void CPhoneStateInCall::PhoneNumberAvailableInPhoneEngineL(int)
-	?DisplayCallTerminationNoteL@CPhoneState@@IAEXXZ @ 15  NONAME ; void CPhoneState::DisplayCallTerminationNoteL(void)
-	??0CPhoneStateInCall@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 16  NONAME ; CPhoneStateInCall::CPhoneStateInCall(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?HandleNumberLongKeyPressL@CPhoneStateIdle@@IAEXXZ @ 17  NONAME ; void CPhoneStateIdle::HandleNumberLongKeyPressL(void)
-	?DisplayHeaderForInitializingCallL@CPhoneState@@IAEXH@Z @ 18  NONAME ; void CPhoneState::DisplayHeaderForInitializingCallL(int)
-	?HandlePropertyChangedL@CPhoneStateMachine@@UAEXABVTUid@@IH@Z @ 19  NONAME ; void CPhoneStateMachine::HandlePropertyChangedL(class TUid const &, unsigned int, int)
-	?PhoneEngine@CPhoneStateMachine@@UAEPAVMPEPhoneModel@@XZ @ 20  NONAME ; class MPEPhoneModel * CPhoneStateMachine::PhoneEngine(void)
-	?OpenMenuBarL@CPhoneStateCallSetup@@MAEXXZ @ 21  NONAME ; void CPhoneStateCallSetup::OpenMenuBarL(void)
-	??1CPhoneStateCallSetup@@UAE@XZ @ 22  NONAME ; CPhoneStateCallSetup::~CPhoneStateCallSetup(void)
-	?HandleEnvironmentChangeL@CPhoneUIController@@UAEXH@Z @ 23  NONAME ; void CPhoneUIController::HandleEnvironmentChangeL(int)
-	?SetToolbarButtonLoudspeakerEnabled@CPhoneState@@IAEXXZ @ 24  NONAME ; void CPhoneState::SetToolbarButtonLoudspeakerEnabled(void)
-	?Instance@CPhoneStateHandle@@SAPAV1@XZ @ 25  NONAME ; class CPhoneStateHandle * CPhoneStateHandle::Instance(void)
-	?HandleNumberEntryClearedL@CPhoneStateIdle@@MAEXXZ @ 26  NONAME ; void CPhoneStateIdle::HandleNumberEntryClearedL(void)
-	?DynInitMenuPaneL@CPhoneStateIncoming@@MAEXHPAVCEikMenuPane@@@Z @ 27  NONAME ; void CPhoneStateIncoming::DynInitMenuPaneL(int, class CEikMenuPane *)
-	?HandleCommandL@CPhoneState@@UAEHH@Z @ 28  NONAME ; int CPhoneState::HandleCommandL(int)
-	?StartAlsLineChangeTimerL@CPhoneState@@IAEXXZ @ 29  NONAME ; void CPhoneState::StartAlsLineChangeTimerL(void)
-	?IsNumberEntryVisibleL@CPhoneState@@QAEHXZ @ 30  NONAME ; int CPhoneState::IsNumberEntryVisibleL(void)
-	?HandlePhoneEngineMessageL@CPhoneStateIdle@@UAEXHH@Z @ 31  NONAME ; void CPhoneStateIdle::HandlePhoneEngineMessageL(int, int)
-	?HandleDialingL@CPhoneStateIdle@@MAEXH@Z @ 32  NONAME ; void CPhoneStateIdle::HandleDialingL(int)
-	?CustomizedDialerCbaResourceIdL@CPhoneState@@IAEHXZ @ 33  NONAME ; int CPhoneState::CustomizedDialerCbaResourceIdL(void)
-	?CaptureKeysDuringCallNotificationL@CPhoneState@@IAEXH@Z @ 34  NONAME ; void CPhoneState::CaptureKeysDuringCallNotificationL(int)
-	?HandleKeyPressDurationL@CPhoneState@@UAEXW4TKeyCode@@VTTimeIntervalMicroSeconds@@@Z @ 35  NONAME ; void CPhoneState::HandleKeyPressDurationL(enum TKeyCode, class TTimeIntervalMicroSeconds)
-	?RegisterStateObserver@CPhoneSecurityModeObserver@@UAEXAAVMPhoneSecurityModeChangeObserver@@@Z @ 36  NONAME ; void CPhoneSecurityModeObserver::RegisterStateObserver(class MPhoneSecurityModeChangeObserver &)
-	?SetToolbarButtonHandsetEnabled@CPhoneState@@IAEXXZ @ 37  NONAME ; void CPhoneState::SetToolbarButtonHandsetEnabled(void)
-	?ChangeState@CPhoneStateMachine@@UAEXH@Z @ 38  NONAME ; void CPhoneStateMachine::ChangeState(int)
-	?NewL@CPhoneUIController@@SAPAV1@AAVCPhoneViewController@@@Z @ 39  NONAME ; class CPhoneUIController * CPhoneUIController::NewL(class CPhoneViewController &)
-	?IsSimStateNotPresentWithSecurityModeEnabled@CPhoneState@@IAEHXZ @ 40  NONAME ; int CPhoneState::IsSimStateNotPresentWithSecurityModeEnabled(void)
-	?HandlePhoneEngineMessageL@CPhoneState@@UAEXHH@Z @ 41  NONAME ; void CPhoneState::HandlePhoneEngineMessageL(int, int)
-	?HandleNumberEntryClearedL@CPhoneStateIncoming@@UAEXXZ @ 42  NONAME ; void CPhoneStateIncoming::HandleNumberEntryClearedL(void)
-	?HandleKeyEventL@CPhoneUIController@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 43  NONAME ; enum TKeyResponse CPhoneUIController::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?HandleRemConCommandL@CPhoneStateIdle@@MAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 44  NONAME ; int CPhoneStateIdle::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
-	?HandleAudioPlayStoppedL@CPhoneStateIncoming@@MAEXXZ @ 45  NONAME ; void CPhoneStateIncoming::HandleAudioPlayStoppedL(void)
-	?HandleCenRepChangeL@CPhoneState@@UAEXABVTUid@@I@Z @ 46  NONAME ; void CPhoneState::HandleCenRepChangeL(class TUid const &, unsigned int)
-	?HandleLongHashL@CPhoneState@@UAEXXZ @ 47  NONAME ; void CPhoneState::HandleLongHashL(void)
-	?DialL@CPhoneStateIdle@@MAEXABVTDesC16@@W4TPhoneNumberType@@W4TDialInitiationMethod@1@@Z @ 48  NONAME ; void CPhoneStateIdle::DialL(class TDesC16 const &, enum TPhoneNumberType, enum CPhoneStateIdle::TDialInitiationMethod)
-	?ShowNumberBusyNoteL@CPhoneState@@IAEXXZ @ 49  NONAME ; void CPhoneState::ShowNumberBusyNoteL(void)
-	?HandleNumberEntryClearedL@CPhoneStateCallSetup@@MAEXXZ @ 50  NONAME ; void CPhoneStateCallSetup::HandleNumberEntryClearedL(void)
-	?HandleIdleForegroundEventL@CPhoneStateIdle@@UAEXXZ @ 51  NONAME ; void CPhoneStateIdle::HandleIdleForegroundEventL(void)
-	?HandleDisconnectingL@CPhoneState@@IAEXH@Z @ 52  NONAME ; void CPhoneState::HandleDisconnectingL(int)
-	?HandleAudioMuteChangedL@CPhoneState@@IAEXXZ @ 53  NONAME ; void CPhoneState::HandleAudioMuteChangedL(void)
-	?HandleCommandL@CPhoneStateIncoming@@UAEHH@Z @ 54  NONAME ; int CPhoneStateIncoming::HandleCommandL(int)
-	?UpdateSingleActiveCallL@CPhoneState@@IAEXH@Z @ 55  NONAME ; void CPhoneState::UpdateSingleActiveCallL(int)
-	?IsOnScreenDialerSupported@CPhoneState@@IBEHXZ @ 56  NONAME ; int CPhoneState::IsOnScreenDialerSupported(void) const
-	?SimState@CPhoneState@@IBE?AW4TPESimState@@XZ @ 57  NONAME ; enum TPESimState CPhoneState::SimState(void) const
-	?HandleKeyEventL@CPhoneStateCallSetup@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 58  NONAME ; void CPhoneStateCallSetup::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?SetupIdleScreenInBackgroundL@CPhoneState@@IAEXXZ @ 59  NONAME ; void CPhoneState::SetupIdleScreenInBackgroundL(void)
-	?SendGlobalWarningNoteL@CPhoneState@@IAEXH@Z @ 60  NONAME ; void CPhoneState::SendGlobalWarningNoteL(int)
-	?CompleteSatRequestL@CPhoneState@@IAEXH@Z @ 61  NONAME ; void CPhoneState::CompleteSatRequestL(int)
-	?NewL@CPhoneStateStartup@@SAPAV1@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 62  NONAME ; class CPhoneStateStartup * CPhoneStateStartup::NewL(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?LaunchNewCallQueryL@CPhoneStateInCall@@IAEXXZ @ 63  NONAME ; void CPhoneStateInCall::LaunchNewCallQueryL(void)
-	?SetCallHeaderTextsForCallComingInL@CPhoneState@@IAEXHHPAVTPhoneCmdParamCallHeaderData@@@Z @ 64  NONAME ; void CPhoneState::SetCallHeaderTextsForCallComingInL(int, int, class TPhoneCmdParamCallHeaderData *)
-	?HandlePhoneEngineMessageL@CPhoneStateMachine@@UAEXHH@Z @ 65  NONAME ; void CPhoneStateMachine::HandlePhoneEngineMessageL(int, int)
-	?IsSecurityMode@CPhoneSecurityModeObserver@@UAEHXZ @ 66  NONAME ; int CPhoneSecurityModeObserver::IsSecurityMode(void)
-	?IsSimOk@CPhoneState@@QAEHXZ @ 67  NONAME ; int CPhoneState::IsSimOk(void)
-	?ClearNumberEntryContentCache@CPhoneState@@IAEXXZ @ 68  NONAME ; void CPhoneState::ClearNumberEntryContentCache(void)
-	?HandleCommandL@CPhoneStateIdle@@UAEHH@Z @ 69  NONAME ; int CPhoneStateIdle::HandleCommandL(int)
-	?ViewCommandHandle@CPhoneStateHandle@@QAEPAVMPhoneViewCommandHandle@@XZ @ 70  NONAME ; class MPhoneViewCommandHandle * CPhoneStateHandle::ViewCommandHandle(void)
-	?DialMultimediaCallL@CPhoneStateIdle@@IAEXXZ @ 71  NONAME ; void CPhoneStateIdle::DialMultimediaCallL(void)
-	?DisconnectOutgoingCallL@CPhoneStateInCall@@IAEXXZ @ 72  NONAME ; void CPhoneStateInCall::DisconnectOutgoingCallL(void)
-	?IsKeyLockOn@CPhoneState@@MBEHXZ @ 73  NONAME ; int CPhoneState::IsKeyLockOn(void) const
-	??1CPhoneStateInCall@@UAE@XZ @ 74  NONAME ; CPhoneStateInCall::~CPhoneStateInCall(void)
-	?CustomizedDialerMenuResourceIdL@CPhoneState@@IAEHXZ @ 75  NONAME ; int CPhoneState::CustomizedDialerMenuResourceIdL(void)
-	?ShowReconnectQueryL@CPhoneReconnectQuery@@QAEXH@Z @ 76  NONAME ; void CPhoneReconnectQuery::ShowReconnectQueryL(int)
-	?UpdateSilenceButtonDimming@CPhoneState@@IAEXXZ @ 77  NONAME ; void CPhoneState::UpdateSilenceButtonDimming(void)
-	?SetNumberEntryVisibilityL@CPhoneState@@IAEXH@Z @ 78  NONAME ; void CPhoneState::SetNumberEntryVisibilityL(int)
-	?HandleError@CPhoneUIController@@UAEXABUTPEErrorInfo@@@Z @ 79  NONAME ; void CPhoneUIController::HandleError(struct TPEErrorInfo const &)
-	?ConstructL@CPhoneStateInCall@@MAEXXZ @ 80  NONAME ; void CPhoneStateInCall::ConstructL(void)
-	?OnlyHashInNumberEntryL@CPhoneStateIdle@@MAEXXZ @ 81  NONAME ; void CPhoneStateIdle::OnlyHashInNumberEntryL(void)
-	?IsVideoCallRingingL@CPhoneStateInCall@@MAEHXZ @ 82  NONAME ; int CPhoneStateInCall::IsVideoCallRingingL(void)
-	?IsAutolockEnabled@CPhoneSecurityModeObserver@@UAEHXZ @ 83  NONAME ; int CPhoneSecurityModeObserver::IsAutolockEnabled(void)
-	?HandlePhoneForegroundEventL@CPhoneStateIdle@@UAEXXZ @ 84  NONAME ; void CPhoneStateIdle::HandlePhoneForegroundEventL(void)
-	?CloseDtmfQueryL@CPhoneStateInCall@@IAEXXZ @ 85  NONAME ; void CPhoneStateInCall::CloseDtmfQueryL(void)
-	?DynInitMenuBarL@CPhoneState@@UAEXHPAVCEikMenuBar@@@Z @ 86  NONAME ; void CPhoneState::DynInitMenuBarL(int, class CEikMenuBar *)
-	?HandleDtmfKeyToneL@CPhoneStateStartup@@EAEXABUTKeyEvent@@W4TEventCode@@@Z @ 87  NONAME ; void CPhoneStateStartup::HandleDtmfKeyToneL(struct TKeyEvent const &, enum TEventCode)
-	?HandleNumberEntryEdited@CPhoneState@@MAEXXZ @ 88  NONAME ; void CPhoneState::HandleNumberEntryEdited(void)
-	?ShowTextQueryL@CPhoneState@@IAEXHHHPAVTDes16@@H@Z @ 89  NONAME ; void CPhoneState::ShowTextQueryL(int, int, int, class TDes16 *, int)
-	?DialMultimediaCallL@CPhoneState@@IAEXXZ @ 90  NONAME ; void CPhoneState::DialMultimediaCallL(void)
-	?HandleCreateNumberEntryL@CPhoneStateStartup@@EAEXABUTKeyEvent@@W4TEventCode@@@Z @ 91  NONAME ; void CPhoneStateStartup::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
-	?IsMenuBarVisibleL@CPhoneState@@UBEHXZ @ 92  NONAME ; int CPhoneState::IsMenuBarVisibleL(void) const
-	?HandleErrorL@CPhoneState@@UAEXABUTPEErrorInfo@@@Z @ 93  NONAME ; void CPhoneState::HandleErrorL(struct TPEErrorInfo const &)
-	?HandleCommandL@CPhoneStateCallSetup@@UAEHH@Z @ 94  NONAME ; int CPhoneStateCallSetup::HandleCommandL(int)
-	?SecurityMode@CPhoneStateMachine@@UAEPAVMPhoneSecurityModeObserver@@XZ @ 95  NONAME ; class MPhoneSecurityModeObserver * CPhoneStateMachine::SecurityMode(void)
-	?HandleAudioOutputChangedL@CPhoneState@@IAEXXZ @ 96  NONAME ; void CPhoneState::HandleAudioOutputChangedL(void)
-	??1CPhoneUIController@@UAE@XZ @ 97  NONAME ; CPhoneUIController::~CPhoneUIController(void)
-	?ForwardPEMessageToPhoneCustomizationL@CPhoneState@@IAEHHH@Z @ 98  NONAME ; int CPhoneState::ForwardPEMessageToPhoneCustomizationL(int, int)
-	?HandleKeyEventL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 99  NONAME ; void CPhoneState::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?UpdateIncomingContextMenuL@CPhoneState@@MAEXH@Z @ 100  NONAME ; void CPhoneState::UpdateIncomingContextMenuL(int)
-	?OpenMenuBarL@CPhoneStateInCall@@MAEXXZ @ 101  NONAME ; void CPhoneStateInCall::OpenMenuBarL(void)
-	?UpdateIncomingCbaL@CPhoneCbaManager@@QAEXH@Z @ 102  NONAME ; void CPhoneCbaManager::UpdateIncomingCbaL(int)
-	?SetTouchPaneButtonDisabled@CPhoneState@@IAEXH@Z @ 103  NONAME ; void CPhoneState::SetTouchPaneButtonDisabled(int)
-	?ConstructL@CPhoneStateIncoming@@MAEXXZ @ 104  NONAME ; void CPhoneStateIncoming::ConstructL(void)
-	?CreatePhoneEngineL@CPhoneStateMachine@@UAEPAVMPEPhoneModel@@AAVMEngineMonitor@@@Z @ 105  NONAME ; class MPEPhoneModel * CPhoneStateMachine::CreatePhoneEngineL(class MEngineMonitor &)
-	?SetTouchPaneButtons@CPhoneState@@IAEXH@Z @ 106  NONAME ; void CPhoneState::SetTouchPaneButtons(int)
-	?HandleIdleForegroundEventL@CPhoneStateStartup@@UAEXXZ @ 107  NONAME ; void CPhoneStateStartup::HandleIdleForegroundEventL(void)
-	?CallFromNumberEntryL@CPhoneState@@IAEXXZ @ 108  NONAME ; void CPhoneState::CallFromNumberEntryL(void)
-	?UpdateCbaL@CPhoneCbaManager@@QAEXH@Z @ 109  NONAME ; void CPhoneCbaManager::UpdateCbaL(int)
-	?IsVideoCall@CPhoneState@@IAEHH@Z @ 110  NONAME ; int CPhoneState::IsVideoCall(int)
-	?IsSwivelClosed@CPhoneState@@QBEHXZ @ 111  NONAME ; int CPhoneState::IsSwivelClosed(void) const
-	?CloseCustomizedDialerL@CPhoneState@@QAEXXZ @ 112  NONAME ; void CPhoneState::CloseCustomizedDialerL(void)
-	?HandlePhoneForegroundEventL@CPhoneUIController@@UAEXXZ @ 113  NONAME ; void CPhoneUIController::HandlePhoneForegroundEventL(void)
-	?CheckIfRestoreNEContentAfterDtmfDialer@CPhoneState@@IAEXXZ @ 114  NONAME ; void CPhoneState::CheckIfRestoreNEContentAfterDtmfDialer(void)
-	?UpdateInCallContextMenuL@CPhoneState@@UAEXXZ @ 115  NONAME ; void CPhoneState::UpdateInCallContextMenuL(void)
-	?HandleNumericKeyEventL@CPhoneState@@MAEXABUTKeyEvent@@W4TEventCode@@@Z @ 116  NONAME ; void CPhoneState::HandleNumericKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?SetToolbarDimming@CPhoneState@@IAEXH@Z @ 117  NONAME ; void CPhoneState::SetToolbarDimming(int)
-	?SendGlobalErrorNoteL@CPhoneState@@QAEXH@Z @ 118  NONAME ; void CPhoneState::SendGlobalErrorNoteL(int)
-	?IsAutoLockOn@CPhoneState@@UBEHXZ @ 119  NONAME ; int CPhoneState::IsAutoLockOn(void) const
-	?UpdateCbaL@CPhoneStateCallSetup@@MAEXH@Z @ 120  NONAME ; void CPhoneStateCallSetup::UpdateCbaL(int)
-	?RestoreNumberEntryContentL@CPhoneState@@IAEXXZ @ 121  NONAME ; void CPhoneState::RestoreNumberEntryContentL(void)
-	?HandleKeyEventL@CPhoneStateIdle@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 122  NONAME ; void CPhoneStateIdle::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?IsNumberEntryContentStored@CPhoneState@@IAEHXZ @ 123  NONAME ; int CPhoneState::IsNumberEntryContentStored(void)
-	?IsVideoCallActiveL@CPhoneStateInCall@@MAEHXZ @ 124  NONAME ; int CPhoneStateInCall::IsVideoCallActiveL(void)
-	?HandlePhoneStartupL@CPhoneStateStartup@@UAEXXZ @ 125  NONAME ; void CPhoneStateStartup::HandlePhoneStartupL(void)
-	?DialVoiceCallL@CPhoneState@@IAEXXZ @ 126  NONAME ; void CPhoneState::DialVoiceCallL(void)
-	?EndUiUpdate@CPhoneState@@IAEXXZ @ 127  NONAME ; void CPhoneState::EndUiUpdate(void)
-	?HandleKeyPressDurationL@CPhoneStateIncoming@@UAEXW4TKeyCode@@VTTimeIntervalMicroSeconds@@@Z @ 128  NONAME ; void CPhoneStateIncoming::HandleKeyPressDurationL(enum TKeyCode, class TTimeIntervalMicroSeconds)
-	?UpdateInCallCbaL@CPhoneStateInCall@@MAEXXZ @ 129  NONAME ; void CPhoneStateInCall::UpdateInCallCbaL(void)
-	?EndTransEffect@CPhoneState@@QAEXXZ @ 130  NONAME ; void CPhoneState::EndTransEffect(void)
-	?HandleEnvironmentChangeL@CPhoneState@@UAEXH@Z @ 131  NONAME ; void CPhoneState::HandleEnvironmentChangeL(int)
-	?HandleKeyMessageL@CPhoneStateInCall@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 132  NONAME ; void CPhoneStateInCall::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?SetRingingTonePlaybackL@CPhoneState@@IAEXH@Z @ 133  NONAME ; void CPhoneState::SetRingingTonePlaybackL(int)
-	?ProcessCommandL@CPhoneState@@UAEHH@Z @ 134  NONAME ; int CPhoneState::ProcessCommandL(int)
-	?BeginUiUpdateLC@CPhoneState@@IAEXXZ @ 135  NONAME ; void CPhoneState::BeginUiUpdateLC(void)
-	?DecreaseAudioVolumeL@CPhoneState@@IAEXXZ @ 136  NONAME ; void CPhoneState::DecreaseAudioVolumeL(void)
-	?RemoveStateObserver@CPhoneSecurityModeObserver@@UAEXAAVMPhoneSecurityModeChangeObserver@@@Z @ 137  NONAME ; void CPhoneSecurityModeObserver::RemoveStateObserver(class MPhoneSecurityModeChangeObserver &)
-	?PhoneEngineInfo@CPhoneStateMachine@@UAEPAVMPEEngineInfo@@XZ @ 138  NONAME ; class MPEEngineInfo * CPhoneStateMachine::PhoneEngineInfo(void)
-	?CreateNumberEntryL@CPhoneStateInCall@@IAEXXZ @ 139  NONAME ; void CPhoneStateInCall::CreateNumberEntryL(void)
-	?HandleSystemEventL@CPhoneUIController@@UAEXABVTWsEvent@@@Z @ 140  NONAME ; void CPhoneUIController::HandleSystemEventL(class TWsEvent const &)
-	?DynInitMenuPaneL@CPhoneUIController@@UAEXHPAVCEikMenuPane@@@Z @ 141  NONAME ; void CPhoneUIController::DynInitMenuPaneL(int, class CEikMenuPane *)
-	??0CPhoneStateStartup@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 142  NONAME ; CPhoneStateStartup::CPhoneStateStartup(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?GetRemoteInfoDataL@CPhoneState@@IAEXHAAVTDes16@@@Z @ 143  NONAME ; void CPhoneState::GetRemoteInfoDataL(int, class TDes16 &)
-	?SetDivertIndication@CPhoneState@@UAEXH@Z @ 144  NONAME ; void CPhoneState::SetDivertIndication(int)
-	?UpdateCbaL@CPhoneStateInCall@@MAEXH@Z @ 145  NONAME ; void CPhoneStateInCall::UpdateCbaL(int)
-	?SetCallId@CPhoneStateMachine@@UAEXH@Z @ 146  NONAME ; void CPhoneStateMachine::SetCallId(int)
-	?ProcessCommandL@CPhoneUIController@@UAEHH@Z @ 147  NONAME ; int CPhoneUIController::ProcessCommandL(int)
-	?DisplayHeaderForCallComingInL@CPhoneState@@IAEXHH@Z @ 148  NONAME ; void CPhoneState::DisplayHeaderForCallComingInL(int, int)
-	?CanTransEffectTypeBeUsed@CPhoneState@@MAEHW4TStateTransEffectType@@@Z @ 149  NONAME ; int CPhoneState::CanTransEffectTypeBeUsed(enum TStateTransEffectType)
-	??0CPhoneStateIdle@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 150  NONAME ; CPhoneStateIdle::CPhoneStateIdle(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?SendPhoneEngineMessage@CPhoneStateMachine@@UAEXH@Z @ 151  NONAME ; void CPhoneStateMachine::SendPhoneEngineMessage(int)
-	??0CPhoneStateCallSetup@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 152  NONAME ; CPhoneStateCallSetup::CPhoneStateCallSetup(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	??0CPhoneState@@QAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 153  NONAME ; CPhoneState::CPhoneState(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?HandleDtmfKeyToneL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 154  NONAME ; void CPhoneState::HandleDtmfKeyToneL(struct TKeyEvent const &, enum TEventCode)
-	?HandleKeyMessageL@CPhoneStateIdle@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 155  NONAME ; void CPhoneStateIdle::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?HandlePEConstructionReadyL@CPhoneStateStartup@@QAEXH@Z @ 156  NONAME ; void CPhoneStateStartup::HandlePEConstructionReadyL(int)
-	?HandleForegroundEventL@CPhoneUIController@@UAEXH@Z @ 157  NONAME ; void CPhoneUIController::HandleForegroundEventL(int)
-	?HandleSendCommandL@CPhoneStateIdle@@MAEXXZ @ 158  NONAME ; void CPhoneStateIdle::HandleSendCommandL(void)
-	?HandleCommandL@CPhoneUIController@@UAEHH@Z @ 159  NONAME ; int CPhoneUIController::HandleCommandL(int)
-	?HandleCreateNumberEntryL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 160  NONAME ; void CPhoneState::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
-	?DisplayHeaderForOutgoingCallL@CPhoneState@@IAEXH@Z @ 161  NONAME ; void CPhoneState::DisplayHeaderForOutgoingCallL(int)
-	?HandlePhoneEngineMessageL@CPhoneStateInCall@@UAEXHH@Z @ 162  NONAME ; void CPhoneStateInCall::HandlePhoneEngineMessageL(int, int)
-	?IsSpeedDialNumber@CPhoneStateIdle@@IBEHABVTDesC16@@@Z @ 163  NONAME ; int CPhoneStateIdle::IsSpeedDialNumber(class TDesC16 const &) const
-	?IsNumberEntryUsedL@CPhoneState@@UAEHXZ @ 164  NONAME ; int CPhoneState::IsNumberEntryUsedL(void)
-	??1CPhoneState@@UAE@XZ @ 165  NONAME ; CPhoneState::~CPhoneState(void)
-	?HandleCreateNumberEntryL@CPhoneStateCallSetup@@MAEXABUTKeyEvent@@W4TEventCode@@@Z @ 166  NONAME ; void CPhoneStateCallSetup::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
-	?HandlePhoneEngineMessageL@CPhoneStateCallSetup@@UAEXHH@Z @ 167  NONAME ; void CPhoneStateCallSetup::HandlePhoneEngineMessageL(int, int)
-	?HandlePhoneFocusLostEventL@CPhoneState@@UAEXXZ @ 168  NONAME ; void CPhoneState::HandlePhoneFocusLostEventL(void)
-	?HandlePropertyChangedL@CPhoneStateInCall@@EAEXABVTUid@@IH@Z @ 169  NONAME ; void CPhoneStateInCall::HandlePropertyChangedL(class TUid const &, unsigned int, int)
-	??1CPhoneStateMachine@@UAE@XZ @ 170  NONAME ; CPhoneStateMachine::~CPhoneStateMachine(void)
-	?HandleIdleForegroundEventL@CPhoneState@@UAEXXZ @ 171  NONAME ; void CPhoneState::HandleIdleForegroundEventL(void)
-	?DynInitMenuPaneL@CPhoneState@@UAEXHPAVCEikMenuPane@@@Z @ 172  NONAME ; void CPhoneState::DynInitMenuPaneL(int, class CEikMenuPane *)
-	?IsDTMFEditorVisibleL@CPhoneState@@IBEHXZ @ 173  NONAME ; int CPhoneState::IsDTMFEditorVisibleL(void) const
-	?BeginTransEffectLC@CPhoneState@@QAEXW4TStateTransEffectType@@@Z @ 174  NONAME ; void CPhoneState::BeginTransEffectLC(enum TStateTransEffectType)
-	?ConstructL@CPhoneStateCallSetup@@MAEXXZ @ 175  NONAME ; void CPhoneStateCallSetup::ConstructL(void)
-	?SetSecurityModeObserver@CPhoneStateMachine@@UAEXPAVMPhoneSecurityModeObserver@@@Z @ 176  NONAME ; void CPhoneStateMachine::SetSecurityModeObserver(class MPhoneSecurityModeObserver *)
-	?HandleMessage@CPhoneUIController@@UAEXHH@Z @ 177  NONAME ; void CPhoneUIController::HandleMessage(int, int)
-	?HandleSystemEventL@CPhoneState@@UAEXABVTWsEvent@@@Z @ 178  NONAME ; void CPhoneState::HandleSystemEventL(class TWsEvent const &)
-	?NeedToReturnToForegroundAppL@CPhoneState@@IBEHXZ @ 179  NONAME ; int CPhoneState::NeedToReturnToForegroundAppL(void) const
-	?DisplayCallSetupL@CPhoneStateIdle@@IAEXH@Z @ 180  NONAME ; void CPhoneStateIdle::DisplayCallSetupL(int)
-	?ConstructL@CPhoneStateStartup@@MAEXXZ @ 181  NONAME ; void CPhoneStateStartup::ConstructL(void)
-	?HandleKeyMessageL@CPhoneStateStartup@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 182  NONAME ; void CPhoneStateStartup::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?ShowNoteL@CPhoneState@@IAEXH@Z @ 183  NONAME ; void CPhoneState::ShowNoteL(int)
-	?HandlePropertyChangedL@CPhoneState@@UAEXABVTUid@@IH@Z @ 184  NONAME ; void CPhoneState::HandlePropertyChangedL(class TUid const &, unsigned int, int)
-	?IsAnyQueryActiveL@CPhoneState@@QAEHXZ @ 185  NONAME ; int CPhoneState::IsAnyQueryActiveL(void)
-	?State@CPhoneStateMachine@@UAEPAVMPhoneState@@XZ @ 186  NONAME ; class MPhoneState * CPhoneStateMachine::State(void)
-	?SetHandsfreeModeL@CPhoneState@@IAEXH@Z @ 187  NONAME ; void CPhoneState::SetHandsfreeModeL(int)
-	?IsCustomizedDialerVisibleL@CPhoneState@@QBEHXZ @ 188  NONAME ; int CPhoneState::IsCustomizedDialerVisibleL(void) const
-	?UpdateInCallCbaL@CPhoneStateCallSetup@@MAEXXZ @ 189  NONAME ; void CPhoneStateCallSetup::UpdateInCallCbaL(void)
-	?HandleNumberEntryClearedL@CPhoneStateInCall@@MAEXXZ @ 190  NONAME ; void CPhoneStateInCall::HandleNumberEntryClearedL(void)
-	??0CPhoneStateIncoming@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 191  NONAME ; CPhoneStateIncoming::CPhoneStateIncoming(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?CanTransEffectTypeBeUsed@CPhoneStateIdle@@MAEHW4TStateTransEffectType@@@Z @ 192  NONAME ; int CPhoneStateIdle::CanTransEffectTypeBeUsed(enum TStateTransEffectType)
-	??1CPhoneStateIncoming@@UAE@XZ @ 193  NONAME ; CPhoneStateIncoming::~CPhoneStateIncoming(void)
-	?DeleteTouchPaneButtons@CPhoneState@@IAEXXZ @ 194  NONAME ; void CPhoneState::DeleteTouchPaneButtons(void)
-	?ProcessCommandL@CPhoneStateIdle@@UAEHH@Z @ 195  NONAME ; int CPhoneStateIdle::ProcessCommandL(int)
-	?IsNoteVisibleL@CPhoneState@@MAEHXZ @ 196  NONAME ; int CPhoneState::IsNoteVisibleL(void)
-	?DynInitMenuBarL@CPhoneUIController@@UAEXHPAVCEikMenuBar@@@Z @ 197  NONAME ; void CPhoneUIController::DynInitMenuBarL(int, class CEikMenuBar *)
-	?IsAlphanumericSupportedAndCharInput@CPhoneState@@MAEHABUTKeyEvent@@@Z @ 198  NONAME ; int CPhoneState::IsAlphanumericSupportedAndCharInput(struct TKeyEvent const &)
-	?HandlePhoneEngineMessageL@CPhoneStateStartup@@UAEXHH@Z @ 199  NONAME ; void CPhoneStateStartup::HandlePhoneEngineMessageL(int, int)
-	?HandleKeyEventL@CPhoneStateIncoming@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 200  NONAME ; void CPhoneStateIncoming::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?HandleKeyEventL@CPhoneStateStartup@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 201  NONAME ; void CPhoneStateStartup::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?HandleNumberEntryClearedL@CPhoneState@@MAEXXZ @ 202  NONAME ; void CPhoneState::HandleNumberEntryClearedL(void)
-	?OnlyHashInNumberEntryL@CPhoneState@@MAEXXZ @ 203  NONAME ; void CPhoneState::OnlyHashInNumberEntryL(void)
-	?IncreaseAudioVolumeL@CPhoneState@@IAEXXZ @ 204  NONAME ; void CPhoneState::IncreaseAudioVolumeL(void)
-	?ConstructL@CPhoneStateIdle@@MAEXXZ @ 205  NONAME ; void CPhoneStateIdle::ConstructL(void)
-	?CheckIfShowCallTerminationNote@CPhoneState@@MAEHXZ @ 206  NONAME ; int CPhoneState::CheckIfShowCallTerminationNote(void)
-	?SetCallHeaderType@CPhoneState@@IAEXW4TPhoneCallTypeFlags@CBubbleManager@@@Z @ 207  NONAME ; void CPhoneState::SetCallHeaderType(enum CBubbleManager::TPhoneCallTypeFlags)
-	?SendGlobalInfoNoteL@CPhoneState@@QAEXH@Z @ 208  NONAME ; void CPhoneState::SendGlobalInfoNoteL(int)
-	?DisplayIdleScreenL@CPhoneState@@IAEXXZ @ 209  NONAME ; void CPhoneState::DisplayIdleScreenL(void)
-	?StartShowSecurityNoteL@CPhoneState@@IAEXXZ @ 210  NONAME ; void CPhoneState::StartShowSecurityNoteL(void)
-	?StoreNumberEntryContentL@CPhoneState@@IAEXXZ @ 211  NONAME ; void CPhoneState::StoreNumberEntryContentL(void)
-	?SetBTHandsfreeModeL@CPhoneState@@IAEXH@Z @ 212  NONAME ; void CPhoneState::SetBTHandsfreeModeL(int)
-	?HandlePhoneEngineMessageL@CPhoneStateIncoming@@UAEXHH@Z @ 213  NONAME ; void CPhoneStateIncoming::HandlePhoneEngineMessageL(int, int)
-	?SetDefaultFlagsL@CPhoneState@@IAEXXZ @ 214  NONAME ; void CPhoneState::SetDefaultFlagsL(void)
-	?HandleCommandL@CPhoneStateInCall@@UAEHH@Z @ 215  NONAME ; int CPhoneStateInCall::HandleCommandL(int)
-	?DialVoiceCallL@CPhoneStateIdle@@IAEXXZ @ 216  NONAME ; void CPhoneStateIdle::DialVoiceCallL(void)
-	?UpdateRemoteInfoDataL@CPhoneState@@IAEXH@Z @ 217  NONAME ; void CPhoneState::UpdateRemoteInfoDataL(int)
-	?GetRingingCallL@CPhoneStateInCall@@MAEHXZ @ 218  NONAME ; int CPhoneStateInCall::GetRingingCallL(void)
-	?HandleIdleForegroundEventL@CPhoneUIController@@UAEXXZ @ 219  NONAME ; void CPhoneUIController::HandleIdleForegroundEventL(void)
-	?HandlePhoneForegroundEventL@CPhoneState@@UAEXXZ @ 220  NONAME ; void CPhoneState::HandlePhoneForegroundEventL(void)
-	?HandleForegroundEventL@CPhoneState@@UAEXH@Z @ 221  NONAME ; void CPhoneState::HandleForegroundEventL(int)
-	?HandleErrorL@CPhoneStateIdle@@UAEXABUTPEErrorInfo@@@Z @ 222  NONAME ; void CPhoneStateIdle::HandleErrorL(struct TPEErrorInfo const &)
-	?DisplayIncomingCallL@CPhoneStateIdle@@IAEXH@Z @ 223  NONAME ; void CPhoneStateIdle::DisplayIncomingCallL(int)
-	?SetSecurityMessageHandler@CPhoneStateMachine@@UAEXPAVMPhoneSecurityMessageHandler@@@Z @ 224  NONAME ; void CPhoneStateMachine::SetSecurityMessageHandler(class MPhoneSecurityMessageHandler *)
-	?HandleRemConCommandL@CPhoneState@@UAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 225  NONAME ; int CPhoneState::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
-	??1CPhoneStateIdle@@UAE@XZ @ 226  NONAME ; CPhoneStateIdle::~CPhoneStateIdle(void)
-	?IsDialingExtensionInFocusL@CPhoneState@@QBEHXZ @ 227  NONAME ; int CPhoneState::IsDialingExtensionInFocusL(void) const
-	?Initialize@CPhoneSecurityModeObserver@@UAEXXZ @ 228  NONAME ; void CPhoneSecurityModeObserver::Initialize(void)
-	?PhoneNumberFromEntryLC@CPhoneState@@IAEPAVHBufC16@@XZ @ 229  NONAME ; class HBufC16 * CPhoneState::PhoneNumberFromEntryLC(void)
-	?BaseConstructL@CPhoneState@@QAEXXZ @ 230  NONAME ; void CPhoneState::BaseConstructL(void)
-	?HandlePhoneStartupL@CPhoneUIController@@UAEXXZ @ 231  NONAME ; void CPhoneUIController::HandlePhoneStartupL(void)
-	?SpeedDialL@CPhoneStateIdle@@IAEXABIW4TDialInitiationMethod@1@@Z @ 232  NONAME ; void CPhoneStateIdle::SpeedDialL(unsigned int const &, enum CPhoneStateIdle::TDialInitiationMethod)
-	?SetTouchPaneButtonEnabled@CPhoneState@@IAEXH@Z @ 233  NONAME ; void CPhoneState::SetTouchPaneButtonEnabled(int)
-	?SetPhoneEngine@CPhoneStateMachine@@UAEXPAVMPEPhoneModel@@@Z @ 234  NONAME ; void CPhoneStateMachine::SetPhoneEngine(class MPEPhoneModel *)
-	?SpeedDialCanceledL@CPhoneStateIdle@@IAEXABI@Z @ 235  NONAME ; void CPhoneStateIdle::SpeedDialCanceledL(unsigned int const &)
-	?CloseDTMFEditorL@CPhoneState@@IAEXXZ @ 236  NONAME ; void CPhoneState::CloseDTMFEditorL(void)
-	?SetTouchPaneVisible@CPhoneState@@IAEXH@Z @ 237  NONAME ; void CPhoneState::SetTouchPaneVisible(int)
-	?HandlePhoneFocusLostEventL@CPhoneUIController@@UAEXXZ @ 238  NONAME ; void CPhoneUIController::HandlePhoneFocusLostEventL(void)
-	??0CPhoneStateMachine@@IAE@PAVMPhoneViewCommandHandle@@@Z @ 239  NONAME ; CPhoneStateMachine::CPhoneStateMachine(class MPhoneViewCommandHandle *)
-	??1CPhoneStateStartup@@UAE@XZ @ 240  NONAME ; CPhoneStateStartup::~CPhoneStateStartup(void)
-	?HandleKeyMessageL@CPhoneState@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 241  NONAME ; void CPhoneState::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?CallWaitingNoteL@CPhoneState@@IAEXH@Z @ 1 NONAME ; void CPhoneState::CallWaitingNoteL(int)
+	?HandleKeyMessageL@CPhoneStateIncoming@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 2 NONAME ; void CPhoneStateIncoming::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?TopAppIsDisplayedL@CPhoneState@@IBEHXZ @ 3 NONAME ; int CPhoneState::TopAppIsDisplayedL(void) const
+	?HandleKeyMessageL@CPhoneStateCallSetup@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 4 NONAME ; void CPhoneStateCallSetup::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?SetContextMenuL@CPhoneState@@MAEXH@Z @ 5 NONAME ; void CPhoneState::SetContextMenuL(int)
+	?CallFetchedNumberL@CPhoneStateInCall@@MAEXABVTDesC16@@@Z @ 6 NONAME ; void CPhoneStateInCall::CallFetchedNumberL(class TDesC16 const &)
+	?DisconnectCallL@CPhoneState@@MAEXXZ @ 7 NONAME ; void CPhoneState::DisconnectCallL(void)
+	?SetCbaL@CPhoneCbaManager@@QAEXH@Z @ 8 NONAME ; void CPhoneCbaManager::SetCbaL(int)
+	?InstanceL@CPhoneReconnectQuery@@SAPAV1@XZ @ 9 NONAME ; class CPhoneReconnectQuery * CPhoneReconnectQuery::InstanceL(void)
+	?HandlePhoneStartupL@CPhoneState@@UAEXXZ @ 10 NONAME ; void CPhoneState::HandlePhoneStartupL(void)
+	?HandlePhoneFocusLostEventL@CPhoneStateIdle@@UAEXXZ @ 11 NONAME ; void CPhoneStateIdle::HandlePhoneFocusLostEventL(void)
+	?HandleIdleL@CPhoneStateInCall@@IAEXH@Z @ 12 NONAME ; void CPhoneStateInCall::HandleIdleL(int)
+	?ShowQueryL@CPhoneState@@IAEXH@Z @ 13 NONAME ; void CPhoneState::ShowQueryL(int)
+	?PhoneNumberAvailableInPhoneEngineL@CPhoneStateInCall@@IAEXH@Z @ 14 NONAME ; void CPhoneStateInCall::PhoneNumberAvailableInPhoneEngineL(int)
+	?DisplayCallTerminationNoteL@CPhoneState@@IAEXXZ @ 15 NONAME ; void CPhoneState::DisplayCallTerminationNoteL(void)
+	??0CPhoneStateInCall@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 16 NONAME ; CPhoneStateInCall::CPhoneStateInCall(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?HandleNumberLongKeyPressL@CPhoneStateIdle@@IAEXXZ @ 17 NONAME ; void CPhoneStateIdle::HandleNumberLongKeyPressL(void)
+	?HandlePropertyChangedL@CPhoneStateMachine@@UAEXABVTUid@@IH@Z @ 18 NONAME ; void CPhoneStateMachine::HandlePropertyChangedL(class TUid const &, unsigned int, int)
+	?PhoneEngine@CPhoneStateMachine@@UAEPAVMPEPhoneModel@@XZ @ 19 NONAME ; class MPEPhoneModel * CPhoneStateMachine::PhoneEngine(void)
+	?OpenMenuBarL@CPhoneStateCallSetup@@MAEXXZ @ 20 NONAME ; void CPhoneStateCallSetup::OpenMenuBarL(void)
+	??1CPhoneStateCallSetup@@UAE@XZ @ 21 NONAME ; CPhoneStateCallSetup::~CPhoneStateCallSetup(void)
+	?HandleEnvironmentChangeL@CPhoneUIController@@UAEXH@Z @ 22 NONAME ; void CPhoneUIController::HandleEnvironmentChangeL(int)
+	?SetToolbarButtonLoudspeakerEnabled@CPhoneState@@IAEXXZ @ 23 NONAME ; void CPhoneState::SetToolbarButtonLoudspeakerEnabled(void)
+	?Instance@CPhoneStateHandle@@SAPAV1@XZ @ 24 NONAME ; class CPhoneStateHandle * CPhoneStateHandle::Instance(void)
+	?HandleNumberEntryClearedL@CPhoneStateIdle@@MAEXXZ @ 25 NONAME ; void CPhoneStateIdle::HandleNumberEntryClearedL(void)
+	?DynInitMenuPaneL@CPhoneStateIncoming@@MAEXHPAVCEikMenuPane@@@Z @ 26 NONAME ; void CPhoneStateIncoming::DynInitMenuPaneL(int, class CEikMenuPane *)
+	?HandleCommandL@CPhoneState@@UAEHH@Z @ 27 NONAME ; int CPhoneState::HandleCommandL(int)
+	?StartAlsLineChangeTimerL@CPhoneState@@IAEXXZ @ 28 NONAME ; void CPhoneState::StartAlsLineChangeTimerL(void)
+	?IsNumberEntryVisibleL@CPhoneState@@QAEHXZ @ 29 NONAME ; int CPhoneState::IsNumberEntryVisibleL(void)
+	?HandlePhoneEngineMessageL@CPhoneStateIdle@@UAEXHH@Z @ 30 NONAME ; void CPhoneStateIdle::HandlePhoneEngineMessageL(int, int)
+	?HandleDialingL@CPhoneStateIdle@@MAEXH@Z @ 31 NONAME ; void CPhoneStateIdle::HandleDialingL(int)
+	?CustomizedDialerCbaResourceIdL@CPhoneState@@IAEHXZ @ 32 NONAME ; int CPhoneState::CustomizedDialerCbaResourceIdL(void)
+	?CaptureKeysDuringCallNotificationL@CPhoneState@@IAEXH@Z @ 33 NONAME ; void CPhoneState::CaptureKeysDuringCallNotificationL(int)
+	?HandleKeyPressDurationL@CPhoneState@@UAEXW4TKeyCode@@VTTimeIntervalMicroSeconds@@@Z @ 34 NONAME ; void CPhoneState::HandleKeyPressDurationL(enum TKeyCode, class TTimeIntervalMicroSeconds)
+	?DisplayCallSetupL@CPhoneState@@IAEXH@Z @ 35 NONAME ; void CPhoneState::DisplayCallSetupL(int)
+	?RegisterStateObserver@CPhoneSecurityModeObserver@@UAEXAAVMPhoneSecurityModeChangeObserver@@@Z @ 36 NONAME ; void CPhoneSecurityModeObserver::RegisterStateObserver(class MPhoneSecurityModeChangeObserver &)
+	?DoStateSpecificCallSetUpDefinitionsL@CPhoneState@@UAEXXZ @ 37 NONAME ; void CPhoneState::DoStateSpecificCallSetUpDefinitionsL(void)
+	?SetToolbarButtonHandsetEnabled@CPhoneState@@IAEXXZ @ 38 NONAME ; void CPhoneState::SetToolbarButtonHandsetEnabled(void)
+	?ChangeState@CPhoneStateMachine@@UAEXH@Z @ 39 NONAME ; void CPhoneStateMachine::ChangeState(int)
+	?NewL@CPhoneUIController@@SAPAV1@AAVCPhoneViewController@@@Z @ 40 NONAME ; class CPhoneUIController * CPhoneUIController::NewL(class CPhoneViewController &)
+	?IsSimStateNotPresentWithSecurityModeEnabled@CPhoneState@@IAEHXZ @ 41 NONAME ; int CPhoneState::IsSimStateNotPresentWithSecurityModeEnabled(void)
+	?HandlePhoneEngineMessageL@CPhoneState@@UAEXHH@Z @ 42 NONAME ; void CPhoneState::HandlePhoneEngineMessageL(int, int)
+	?HandleNumberEntryClearedL@CPhoneStateIncoming@@UAEXXZ @ 43 NONAME ; void CPhoneStateIncoming::HandleNumberEntryClearedL(void)
+	?HandleKeyEventL@CPhoneUIController@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 44 NONAME ; enum TKeyResponse CPhoneUIController::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?HandleRemConCommandL@CPhoneStateIdle@@MAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 45 NONAME ; int CPhoneStateIdle::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
+	?HandleAudioPlayStoppedL@CPhoneStateIncoming@@MAEXXZ @ 46 NONAME ; void CPhoneStateIncoming::HandleAudioPlayStoppedL(void)
+	?HandleCenRepChangeL@CPhoneState@@UAEXABVTUid@@I@Z @ 47 NONAME ; void CPhoneState::HandleCenRepChangeL(class TUid const &, unsigned int)
+	?HandleLongHashL@CPhoneState@@UAEXXZ @ 48 NONAME ; void CPhoneState::HandleLongHashL(void)
+	?DialL@CPhoneStateIdle@@MAEXABVTDesC16@@W4TPhoneNumberType@@W4TDialInitiationMethod@1@@Z @ 49 NONAME ; void CPhoneStateIdle::DialL(class TDesC16 const &, enum TPhoneNumberType, enum CPhoneStateIdle::TDialInitiationMethod)
+	?ShowNumberBusyNoteL@CPhoneState@@IAEXXZ @ 50 NONAME ; void CPhoneState::ShowNumberBusyNoteL(void)
+	?HandleNumberEntryClearedL@CPhoneStateCallSetup@@MAEXXZ @ 51 NONAME ; void CPhoneStateCallSetup::HandleNumberEntryClearedL(void)
+	?HandleIdleForegroundEventL@CPhoneStateIdle@@UAEXXZ @ 52 NONAME ; void CPhoneStateIdle::HandleIdleForegroundEventL(void)
+	?HandleDisconnectingL@CPhoneState@@IAEXH@Z @ 53 NONAME ; void CPhoneState::HandleDisconnectingL(int)
+	?HandleAudioMuteChangedL@CPhoneState@@IAEXXZ @ 54 NONAME ; void CPhoneState::HandleAudioMuteChangedL(void)
+	?HandleCommandL@CPhoneStateIncoming@@UAEHH@Z @ 55 NONAME ; int CPhoneStateIncoming::HandleCommandL(int)
+	?UpdateSingleActiveCallL@CPhoneState@@IAEXH@Z @ 56 NONAME ; void CPhoneState::UpdateSingleActiveCallL(int)
+	?IsOnScreenDialerSupported@CPhoneState@@IBEHXZ @ 57 NONAME ; int CPhoneState::IsOnScreenDialerSupported(void) const
+	?SimState@CPhoneState@@IBE?AW4TPESimState@@XZ @ 58 NONAME ; enum TPESimState CPhoneState::SimState(void) const
+	?HandleKeyEventL@CPhoneStateCallSetup@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 59 NONAME ; void CPhoneStateCallSetup::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?SetupIdleScreenInBackgroundL@CPhoneState@@IAEXXZ @ 60 NONAME ; void CPhoneState::SetupIdleScreenInBackgroundL(void)
+	?SendGlobalWarningNoteL@CPhoneState@@IAEXH@Z @ 61 NONAME ; void CPhoneState::SendGlobalWarningNoteL(int)
+	?CompleteSatRequestL@CPhoneState@@IAEXH@Z @ 62 NONAME ; void CPhoneState::CompleteSatRequestL(int)
+	?NewL@CPhoneStateStartup@@SAPAV1@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 63 NONAME ; class CPhoneStateStartup * CPhoneStateStartup::NewL(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?LaunchNewCallQueryL@CPhoneStateInCall@@IAEXXZ @ 64 NONAME ; void CPhoneStateInCall::LaunchNewCallQueryL(void)
+	?SetCallHeaderTextsForCallComingInL@CPhoneState@@IAEXHHPAVTPhoneCmdParamCallHeaderData@@@Z @ 65 NONAME ; void CPhoneState::SetCallHeaderTextsForCallComingInL(int, int, class TPhoneCmdParamCallHeaderData *)
+	?HandlePhoneEngineMessageL@CPhoneStateMachine@@UAEXHH@Z @ 66 NONAME ; void CPhoneStateMachine::HandlePhoneEngineMessageL(int, int)
+	?IsSecurityMode@CPhoneSecurityModeObserver@@UAEHXZ @ 67 NONAME ; int CPhoneSecurityModeObserver::IsSecurityMode(void)
+	?IsSimOk@CPhoneState@@QAEHXZ @ 68 NONAME ; int CPhoneState::IsSimOk(void)
+	?ClearNumberEntryContentCache@CPhoneState@@IAEXXZ @ 69 NONAME ; void CPhoneState::ClearNumberEntryContentCache(void)
+	?HandleCommandL@CPhoneStateIdle@@UAEHH@Z @ 70 NONAME ; int CPhoneStateIdle::HandleCommandL(int)
+	?ViewCommandHandle@CPhoneStateHandle@@QAEPAVMPhoneViewCommandHandle@@XZ @ 71 NONAME ; class MPhoneViewCommandHandle * CPhoneStateHandle::ViewCommandHandle(void)
+	?DialMultimediaCallL@CPhoneStateIdle@@IAEXXZ @ 72 NONAME ; void CPhoneStateIdle::DialMultimediaCallL(void)
+	?DisconnectOutgoingCallL@CPhoneStateInCall@@IAEXXZ @ 73 NONAME ; void CPhoneStateInCall::DisconnectOutgoingCallL(void)
+	?IsKeyLockOn@CPhoneState@@MBEHXZ @ 74 NONAME ; int CPhoneState::IsKeyLockOn(void) const
+	??1CPhoneStateInCall@@UAE@XZ @ 75 NONAME ; CPhoneStateInCall::~CPhoneStateInCall(void)
+	?CustomizedDialerMenuResourceIdL@CPhoneState@@IAEHXZ @ 76 NONAME ; int CPhoneState::CustomizedDialerMenuResourceIdL(void)
+	?ShowReconnectQueryL@CPhoneReconnectQuery@@QAEXH@Z @ 77 NONAME ; void CPhoneReconnectQuery::ShowReconnectQueryL(int)
+	?UpdateSilenceButtonDimming@CPhoneState@@IAEXXZ @ 78 NONAME ; void CPhoneState::UpdateSilenceButtonDimming(void)
+	?SetNumberEntryVisibilityL@CPhoneState@@IAEXH@Z @ 79 NONAME ; void CPhoneState::SetNumberEntryVisibilityL(int)
+	?HandleError@CPhoneUIController@@UAEXABUTPEErrorInfo@@@Z @ 80 NONAME ; void CPhoneUIController::HandleError(struct TPEErrorInfo const &)
+	?ConstructL@CPhoneStateInCall@@MAEXXZ @ 81 NONAME ; void CPhoneStateInCall::ConstructL(void)
+	?OnlyHashInNumberEntryL@CPhoneStateIdle@@MAEXXZ @ 82 NONAME ; void CPhoneStateIdle::OnlyHashInNumberEntryL(void)
+	?IsVideoCallRingingL@CPhoneStateInCall@@MAEHXZ @ 83 NONAME ; int CPhoneStateInCall::IsVideoCallRingingL(void)
+	?IsAutolockEnabled@CPhoneSecurityModeObserver@@UAEHXZ @ 84 NONAME ; int CPhoneSecurityModeObserver::IsAutolockEnabled(void)
+	?HandlePhoneForegroundEventL@CPhoneStateIdle@@UAEXXZ @ 85 NONAME ; void CPhoneStateIdle::HandlePhoneForegroundEventL(void)
+	?CloseDtmfQueryL@CPhoneStateInCall@@IAEXXZ @ 86 NONAME ; void CPhoneStateInCall::CloseDtmfQueryL(void)
+	?DynInitMenuBarL@CPhoneState@@UAEXHPAVCEikMenuBar@@@Z @ 87 NONAME ; void CPhoneState::DynInitMenuBarL(int, class CEikMenuBar *)
+	?HandleDtmfKeyToneL@CPhoneStateStartup@@EAEXABUTKeyEvent@@W4TEventCode@@@Z @ 88 NONAME ; void CPhoneStateStartup::HandleDtmfKeyToneL(struct TKeyEvent const &, enum TEventCode)
+	?HandleNumberEntryEdited@CPhoneState@@MAEXXZ @ 89 NONAME ; void CPhoneState::HandleNumberEntryEdited(void)
+	?EikonEnv@CPhoneStateMachine@@QBEPAVCEikonEnv@@XZ @ 90 NONAME ; class CEikonEnv * CPhoneStateMachine::EikonEnv(void) const
+	?ShowTextQueryL@CPhoneState@@IAEXHHHPAVTDes16@@H@Z @ 91 NONAME ; void CPhoneState::ShowTextQueryL(int, int, int, class TDes16 *, int)
+	?DialMultimediaCallL@CPhoneState@@IAEXXZ @ 92 NONAME ; void CPhoneState::DialMultimediaCallL(void)
+	?HandleCreateNumberEntryL@CPhoneStateStartup@@EAEXABUTKeyEvent@@W4TEventCode@@@Z @ 93 NONAME ; void CPhoneStateStartup::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
+	?IsMenuBarVisibleL@CPhoneState@@UBEHXZ @ 94 NONAME ; int CPhoneState::IsMenuBarVisibleL(void) const
+	?HandleErrorL@CPhoneState@@UAEXABUTPEErrorInfo@@@Z @ 95 NONAME ; void CPhoneState::HandleErrorL(struct TPEErrorInfo const &)
+	?HandleCommandL@CPhoneStateCallSetup@@UAEHH@Z @ 96 NONAME ; int CPhoneStateCallSetup::HandleCommandL(int)
+	?SecurityMode@CPhoneStateMachine@@UAEPAVMPhoneSecurityModeObserver@@XZ @ 97 NONAME ; class MPhoneSecurityModeObserver * CPhoneStateMachine::SecurityMode(void)
+	?HandleAudioOutputChangedL@CPhoneState@@IAEXXZ @ 98 NONAME ; void CPhoneState::HandleAudioOutputChangedL(void)
+	??1CPhoneUIController@@UAE@XZ @ 99 NONAME ; CPhoneUIController::~CPhoneUIController(void)
+	?ForwardPEMessageToPhoneCustomizationL@CPhoneState@@IAEHHH@Z @ 100 NONAME ; int CPhoneState::ForwardPEMessageToPhoneCustomizationL(int, int)
+	?HandleKeyEventL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 101 NONAME ; void CPhoneState::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?UpdateIncomingContextMenuL@CPhoneState@@MAEXH@Z @ 102 NONAME ; void CPhoneState::UpdateIncomingContextMenuL(int)
+	?OpenMenuBarL@CPhoneStateInCall@@MAEXXZ @ 103 NONAME ; void CPhoneStateInCall::OpenMenuBarL(void)
+	?UpdateIncomingCbaL@CPhoneCbaManager@@QAEXH@Z @ 104 NONAME ; void CPhoneCbaManager::UpdateIncomingCbaL(int)
+	?SetTouchPaneButtonDisabled@CPhoneState@@IAEXH@Z @ 105 NONAME ; void CPhoneState::SetTouchPaneButtonDisabled(int)
+	?SetToolbarButtonBTHFEnabled@CPhoneState@@IAEXXZ @ 106 NONAME ; void CPhoneState::SetToolbarButtonBTHFEnabled(void)
+	?ConstructL@CPhoneStateIncoming@@MAEXXZ @ 107 NONAME ; void CPhoneStateIncoming::ConstructL(void)
+	?CreatePhoneEngineL@CPhoneStateMachine@@UAEPAVMPEPhoneModel@@AAVMEngineMonitor@@@Z @ 108 NONAME ; class MPEPhoneModel * CPhoneStateMachine::CreatePhoneEngineL(class MEngineMonitor &)
+	?SetTouchPaneButtons@CPhoneState@@IAEXH@Z @ 109 NONAME ; void CPhoneState::SetTouchPaneButtons(int)
+	?HandleIdleForegroundEventL@CPhoneStateStartup@@UAEXXZ @ 110 NONAME ; void CPhoneStateStartup::HandleIdleForegroundEventL(void)
+	?CallFromNumberEntryL@CPhoneState@@IAEXXZ @ 111 NONAME ; void CPhoneState::CallFromNumberEntryL(void)
+	?UpdateCbaL@CPhoneCbaManager@@QAEXH@Z @ 112 NONAME ; void CPhoneCbaManager::UpdateCbaL(int)
+	?IsVideoCall@CPhoneState@@IAEHH@Z @ 113 NONAME ; int CPhoneState::IsVideoCall(int)
+	?IsSwivelClosed@CPhoneState@@QBEHXZ @ 114 NONAME ; int CPhoneState::IsSwivelClosed(void) const
+	?CloseCustomizedDialerL@CPhoneState@@QAEXXZ @ 115 NONAME ; void CPhoneState::CloseCustomizedDialerL(void)
+	?HandlePhoneForegroundEventL@CPhoneUIController@@UAEXXZ @ 116 NONAME ; void CPhoneUIController::HandlePhoneForegroundEventL(void)
+	?CheckIfRestoreNEContentAfterDtmfDialer@CPhoneState@@IAEXXZ @ 117 NONAME ; void CPhoneState::CheckIfRestoreNEContentAfterDtmfDialer(void)
+	?UpdateInCallContextMenuL@CPhoneState@@UAEXXZ @ 118 NONAME ; void CPhoneState::UpdateInCallContextMenuL(void)
+	?HandleNumericKeyEventL@CPhoneState@@MAEXABUTKeyEvent@@W4TEventCode@@@Z @ 119 NONAME ; void CPhoneState::HandleNumericKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?SetToolbarDimming@CPhoneState@@IAEXH@Z @ 120 NONAME ; void CPhoneState::SetToolbarDimming(int)
+	?SendGlobalErrorNoteL@CPhoneState@@QAEXH@Z @ 121 NONAME ; void CPhoneState::SendGlobalErrorNoteL(int)
+	?IsAutoLockOn@CPhoneState@@UBEHXZ @ 122 NONAME ; int CPhoneState::IsAutoLockOn(void) const
+	?UpdateCbaL@CPhoneStateCallSetup@@MAEXH@Z @ 123 NONAME ; void CPhoneStateCallSetup::UpdateCbaL(int)
+	?RestoreNumberEntryContentL@CPhoneState@@IAEXXZ @ 124 NONAME ; void CPhoneState::RestoreNumberEntryContentL(void)
+	?HandleKeyEventL@CPhoneStateIdle@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 125 NONAME ; void CPhoneStateIdle::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?IsNumberEntryContentStored@CPhoneState@@IAEHXZ @ 126 NONAME ; int CPhoneState::IsNumberEntryContentStored(void)
+	?IsVideoCallActiveL@CPhoneStateInCall@@MAEHXZ @ 127 NONAME ; int CPhoneStateInCall::IsVideoCallActiveL(void)
+	?HandlePhoneStartupL@CPhoneStateStartup@@UAEXXZ @ 128 NONAME ; void CPhoneStateStartup::HandlePhoneStartupL(void)
+	?DialVoiceCallL@CPhoneState@@IAEXXZ @ 129 NONAME ; void CPhoneState::DialVoiceCallL(void)
+	?EndUiUpdate@CPhoneState@@IAEXXZ @ 130 NONAME ; void CPhoneState::EndUiUpdate(void)
+	?HandleKeyPressDurationL@CPhoneStateIncoming@@UAEXW4TKeyCode@@VTTimeIntervalMicroSeconds@@@Z @ 131 NONAME ; void CPhoneStateIncoming::HandleKeyPressDurationL(enum TKeyCode, class TTimeIntervalMicroSeconds)
+	?UpdateInCallCbaL@CPhoneStateInCall@@MAEXXZ @ 132 NONAME ; void CPhoneStateInCall::UpdateInCallCbaL(void)
+	?EndTransEffect@CPhoneState@@QAEXXZ @ 133 NONAME ; void CPhoneState::EndTransEffect(void)
+	?HandleEnvironmentChangeL@CPhoneState@@UAEXH@Z @ 134 NONAME ; void CPhoneState::HandleEnvironmentChangeL(int)
+	?HandleKeyMessageL@CPhoneStateInCall@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 135 NONAME ; void CPhoneStateInCall::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?SetRingingTonePlaybackL@CPhoneState@@IAEXH@Z @ 136 NONAME ; void CPhoneState::SetRingingTonePlaybackL(int)
+	?ProcessCommandL@CPhoneState@@UAEHH@Z @ 137 NONAME ; int CPhoneState::ProcessCommandL(int)
+	?BeginUiUpdateLC@CPhoneState@@IAEXXZ @ 138 NONAME ; void CPhoneState::BeginUiUpdateLC(void)
+	?DecreaseAudioVolumeL@CPhoneState@@IAEXXZ @ 139 NONAME ; void CPhoneState::DecreaseAudioVolumeL(void)
+	?RemoveStateObserver@CPhoneSecurityModeObserver@@UAEXAAVMPhoneSecurityModeChangeObserver@@@Z @ 140 NONAME ; void CPhoneSecurityModeObserver::RemoveStateObserver(class MPhoneSecurityModeChangeObserver &)
+	?PhoneEngineInfo@CPhoneStateMachine@@UAEPAVMPEEngineInfo@@XZ @ 141 NONAME ; class MPEEngineInfo * CPhoneStateMachine::PhoneEngineInfo(void)
+	?CreateNumberEntryL@CPhoneStateInCall@@IAEXXZ @ 142 NONAME ; void CPhoneStateInCall::CreateNumberEntryL(void)
+	?HandleSystemEventL@CPhoneUIController@@UAEXABVTWsEvent@@@Z @ 143 NONAME ; void CPhoneUIController::HandleSystemEventL(class TWsEvent const &)
+	?DynInitMenuPaneL@CPhoneUIController@@UAEXHPAVCEikMenuPane@@@Z @ 144 NONAME ; void CPhoneUIController::DynInitMenuPaneL(int, class CEikMenuPane *)
+	??0CPhoneStateStartup@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 145 NONAME ; CPhoneStateStartup::CPhoneStateStartup(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?GetRemoteInfoDataL@CPhoneState@@IAEXHAAVTDes16@@@Z @ 146 NONAME ; void CPhoneState::GetRemoteInfoDataL(int, class TDes16 &)
+	?UpdateCbaL@CPhoneStateInCall@@MAEXH@Z @ 147 NONAME ; void CPhoneStateInCall::UpdateCbaL(int)
+	?SetCallId@CPhoneStateMachine@@UAEXH@Z @ 148 NONAME ; void CPhoneStateMachine::SetCallId(int)
+	?ProcessCommandL@CPhoneUIController@@UAEHH@Z @ 149 NONAME ; int CPhoneUIController::ProcessCommandL(int)
+	?DisplayHeaderForCallComingInL@CPhoneState@@IAEXHH@Z @ 150 NONAME ; void CPhoneState::DisplayHeaderForCallComingInL(int, int)
+	??0CPhoneStateIdle@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 151 NONAME ; CPhoneStateIdle::CPhoneStateIdle(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?SendPhoneEngineMessage@CPhoneStateMachine@@UAEXH@Z @ 152 NONAME ; void CPhoneStateMachine::SendPhoneEngineMessage(int)
+	??0CPhoneStateCallSetup@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 153 NONAME ; CPhoneStateCallSetup::CPhoneStateCallSetup(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	??0CPhoneState@@QAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 154 NONAME ; CPhoneState::CPhoneState(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?HandleDtmfKeyToneL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 155 NONAME ; void CPhoneState::HandleDtmfKeyToneL(struct TKeyEvent const &, enum TEventCode)
+	?HandleKeyMessageL@CPhoneStateIdle@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 156 NONAME ; void CPhoneStateIdle::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?HandlePEConstructionReadyL@CPhoneStateStartup@@QAEXH@Z @ 157 NONAME ; void CPhoneStateStartup::HandlePEConstructionReadyL(int)
+	?HandleForegroundEventL@CPhoneUIController@@UAEXH@Z @ 158 NONAME ; void CPhoneUIController::HandleForegroundEventL(int)
+	?HandleSendCommandL@CPhoneStateIdle@@MAEXXZ @ 159 NONAME ; void CPhoneStateIdle::HandleSendCommandL(void)
+	?DoStateSpecificCallSetUpDefinitionsL@CPhoneStateIdle@@UAEXXZ @ 160 NONAME ; void CPhoneStateIdle::DoStateSpecificCallSetUpDefinitionsL(void)
+	?HandleCommandL@CPhoneUIController@@UAEHH@Z @ 161 NONAME ; int CPhoneUIController::HandleCommandL(int)
+	?HandleCreateNumberEntryL@CPhoneState@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 162 NONAME ; void CPhoneState::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
+	?DisplayHeaderForOutgoingCallL@CPhoneState@@IAEXH@Z @ 163 NONAME ; void CPhoneState::DisplayHeaderForOutgoingCallL(int)
+	?HandlePhoneEngineMessageL@CPhoneStateInCall@@UAEXHH@Z @ 164 NONAME ; void CPhoneStateInCall::HandlePhoneEngineMessageL(int, int)
+	?IsSpeedDialNumber@CPhoneStateIdle@@IBEHABVTDesC16@@@Z @ 165 NONAME ; int CPhoneStateIdle::IsSpeedDialNumber(class TDesC16 const &) const
+	?IsNumberEntryUsedL@CPhoneState@@UAEHXZ @ 166 NONAME ; int CPhoneState::IsNumberEntryUsedL(void)
+	??1CPhoneState@@UAE@XZ @ 167 NONAME ; CPhoneState::~CPhoneState(void)
+	?HandleCreateNumberEntryL@CPhoneStateCallSetup@@MAEXABUTKeyEvent@@W4TEventCode@@@Z @ 168 NONAME ; void CPhoneStateCallSetup::HandleCreateNumberEntryL(struct TKeyEvent const &, enum TEventCode)
+	?HandlePhoneEngineMessageL@CPhoneStateCallSetup@@UAEXHH@Z @ 169 NONAME ; void CPhoneStateCallSetup::HandlePhoneEngineMessageL(int, int)
+	?HandlePhoneFocusLostEventL@CPhoneState@@UAEXXZ @ 170 NONAME ; void CPhoneState::HandlePhoneFocusLostEventL(void)
+	?HandlePropertyChangedL@CPhoneStateInCall@@EAEXABVTUid@@IH@Z @ 171 NONAME ; void CPhoneStateInCall::HandlePropertyChangedL(class TUid const &, unsigned int, int)
+	??1CPhoneStateMachine@@UAE@XZ @ 172 NONAME ; CPhoneStateMachine::~CPhoneStateMachine(void)
+	?HandleIdleForegroundEventL@CPhoneState@@UAEXXZ @ 173 NONAME ; void CPhoneState::HandleIdleForegroundEventL(void)
+	?DynInitMenuPaneL@CPhoneState@@UAEXHPAVCEikMenuPane@@@Z @ 174 NONAME ; void CPhoneState::DynInitMenuPaneL(int, class CEikMenuPane *)
+	?IsDTMFEditorVisibleL@CPhoneState@@IBEHXZ @ 175 NONAME ; int CPhoneState::IsDTMFEditorVisibleL(void) const
+	?ConstructL@CPhoneStateCallSetup@@MAEXXZ @ 176 NONAME ; void CPhoneStateCallSetup::ConstructL(void)
+	?BeginTransEffectLC@CPhoneState@@QAEXW4TStateTransEffectType@@@Z @ 177 NONAME ; void CPhoneState::BeginTransEffectLC(enum TStateTransEffectType)
+	?SetSecurityModeObserver@CPhoneStateMachine@@UAEXPAVMPhoneSecurityModeObserver@@@Z @ 178 NONAME ; void CPhoneStateMachine::SetSecurityModeObserver(class MPhoneSecurityModeObserver *)
+	?HandleMessage@CPhoneUIController@@UAEXHH@Z @ 179 NONAME ; void CPhoneUIController::HandleMessage(int, int)
+	?HandleSystemEventL@CPhoneState@@UAEXABVTWsEvent@@@Z @ 180 NONAME ; void CPhoneState::HandleSystemEventL(class TWsEvent const &)
+	?NeedToReturnToForegroundAppL@CPhoneState@@IBEHXZ @ 181 NONAME ; int CPhoneState::NeedToReturnToForegroundAppL(void) const
+	?ConstructL@CPhoneStateStartup@@MAEXXZ @ 182 NONAME ; void CPhoneStateStartup::ConstructL(void)
+	?HandleKeyMessageL@CPhoneStateStartup@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 183 NONAME ; void CPhoneStateStartup::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?ShowNoteL@CPhoneState@@IAEXH@Z @ 184 NONAME ; void CPhoneState::ShowNoteL(int)
+	?HandlePropertyChangedL@CPhoneState@@UAEXABVTUid@@IH@Z @ 185 NONAME ; void CPhoneState::HandlePropertyChangedL(class TUid const &, unsigned int, int)
+	?IsAnyQueryActiveL@CPhoneState@@QAEHXZ @ 186 NONAME ; int CPhoneState::IsAnyQueryActiveL(void)
+	?State@CPhoneStateMachine@@UAEPAVMPhoneState@@XZ @ 187 NONAME ; class MPhoneState * CPhoneStateMachine::State(void)
+	?SetHandsfreeModeL@CPhoneState@@IAEXH@Z @ 188 NONAME ; void CPhoneState::SetHandsfreeModeL(int)
+	?IsCustomizedDialerVisibleL@CPhoneState@@QBEHXZ @ 189 NONAME ; int CPhoneState::IsCustomizedDialerVisibleL(void) const
+	?UpdateInCallCbaL@CPhoneStateCallSetup@@MAEXXZ @ 190 NONAME ; void CPhoneStateCallSetup::UpdateInCallCbaL(void)
+	?HandleNumberEntryClearedL@CPhoneStateInCall@@MAEXXZ @ 191 NONAME ; void CPhoneStateInCall::HandleNumberEntryClearedL(void)
+	??0CPhoneStateIncoming@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 192 NONAME ; CPhoneStateIncoming::CPhoneStateIncoming(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	??1CPhoneStateIncoming@@UAE@XZ @ 193 NONAME ; CPhoneStateIncoming::~CPhoneStateIncoming(void)
+	?DeleteTouchPaneButtons@CPhoneState@@IAEXXZ @ 194 NONAME ; void CPhoneState::DeleteTouchPaneButtons(void)
+	?ProcessCommandL@CPhoneStateIdle@@UAEHH@Z @ 195 NONAME ; int CPhoneStateIdle::ProcessCommandL(int)
+	?IsNoteVisibleL@CPhoneState@@MAEHXZ @ 196 NONAME ; int CPhoneState::IsNoteVisibleL(void)
+	?DynInitMenuBarL@CPhoneUIController@@UAEXHPAVCEikMenuBar@@@Z @ 197 NONAME ; void CPhoneUIController::DynInitMenuBarL(int, class CEikMenuBar *)
+	?IsAlphanumericSupportedAndCharInput@CPhoneState@@MAEHABUTKeyEvent@@@Z @ 198 NONAME ; int CPhoneState::IsAlphanumericSupportedAndCharInput(struct TKeyEvent const &)
+	?HandlePhoneEngineMessageL@CPhoneStateStartup@@UAEXHH@Z @ 199 NONAME ; void CPhoneStateStartup::HandlePhoneEngineMessageL(int, int)
+	?HandleKeyEventL@CPhoneStateIncoming@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 200 NONAME ; void CPhoneStateIncoming::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?HandleKeyEventL@CPhoneStateStartup@@UAEXABUTKeyEvent@@W4TEventCode@@@Z @ 201 NONAME ; void CPhoneStateStartup::HandleKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?HandleNumberEntryClearedL@CPhoneState@@MAEXXZ @ 202 NONAME ; void CPhoneState::HandleNumberEntryClearedL(void)
+	?OnlyHashInNumberEntryL@CPhoneState@@MAEXXZ @ 203 NONAME ; void CPhoneState::OnlyHashInNumberEntryL(void)
+	?IncreaseAudioVolumeL@CPhoneState@@IAEXXZ @ 204 NONAME ; void CPhoneState::IncreaseAudioVolumeL(void)
+	?ConstructL@CPhoneStateIdle@@MAEXXZ @ 205 NONAME ; void CPhoneStateIdle::ConstructL(void)
+	?SetEikonEnv@CPhoneState@@UAEXPAVCEikonEnv@@@Z @ 206 NONAME ; void CPhoneState::SetEikonEnv(class CEikonEnv *)
+	?CheckIfShowCallTerminationNote@CPhoneState@@MAEHXZ @ 207 NONAME ; int CPhoneState::CheckIfShowCallTerminationNote(void)
+	?SetCallHeaderType@CPhoneState@@IAEXW4TPhoneCallTypeFlags@CBubbleManager@@@Z @ 208 NONAME ; void CPhoneState::SetCallHeaderType(enum CBubbleManager::TPhoneCallTypeFlags)
+	?SendGlobalInfoNoteL@CPhoneState@@QAEXH@Z @ 209 NONAME ; void CPhoneState::SendGlobalInfoNoteL(int)
+	?DisplayIdleScreenL@CPhoneState@@IAEXXZ @ 210 NONAME ; void CPhoneState::DisplayIdleScreenL(void)
+	?StartShowSecurityNoteL@CPhoneState@@IAEXXZ @ 211 NONAME ; void CPhoneState::StartShowSecurityNoteL(void)
+	?StoreNumberEntryContentL@CPhoneState@@IAEXXZ @ 212 NONAME ; void CPhoneState::StoreNumberEntryContentL(void)
+	?SetBTHandsfreeModeL@CPhoneState@@IAEXH@Z @ 213 NONAME ; void CPhoneState::SetBTHandsfreeModeL(int)
+	?HandlePhoneEngineMessageL@CPhoneStateIncoming@@UAEXHH@Z @ 214 NONAME ; void CPhoneStateIncoming::HandlePhoneEngineMessageL(int, int)
+	?SetDefaultFlagsL@CPhoneState@@IAEXXZ @ 215 NONAME ; void CPhoneState::SetDefaultFlagsL(void)
+	?HandleCommandL@CPhoneStateInCall@@UAEHH@Z @ 216 NONAME ; int CPhoneStateInCall::HandleCommandL(int)
+	?DialVoiceCallL@CPhoneStateIdle@@IAEXXZ @ 217 NONAME ; void CPhoneStateIdle::DialVoiceCallL(void)
+	?UpdateRemoteInfoDataL@CPhoneState@@IAEXH@Z @ 218 NONAME ; void CPhoneState::UpdateRemoteInfoDataL(int)
+	?GetRingingCallL@CPhoneStateInCall@@MAEHXZ @ 219 NONAME ; int CPhoneStateInCall::GetRingingCallL(void)
+	?EikonEnv@CPhoneState@@QBEPAVCEikonEnv@@XZ @ 220 NONAME ; class CEikonEnv * CPhoneState::EikonEnv(void) const
+	?HandleIdleForegroundEventL@CPhoneUIController@@UAEXXZ @ 221 NONAME ; void CPhoneUIController::HandleIdleForegroundEventL(void)
+	?HandlePhoneForegroundEventL@CPhoneState@@UAEXXZ @ 222 NONAME ; void CPhoneState::HandlePhoneForegroundEventL(void)
+	?HandleForegroundEventL@CPhoneState@@UAEXH@Z @ 223 NONAME ; void CPhoneState::HandleForegroundEventL(int)
+	?CloseClearNumberEntryAndLoadEffectL@CPhoneState@@QAEXW4TStateTransEffectType@@@Z @ 224 NONAME ; void CPhoneState::CloseClearNumberEntryAndLoadEffectL(enum TStateTransEffectType)
+	?HandleErrorL@CPhoneStateIdle@@UAEXABUTPEErrorInfo@@@Z @ 225 NONAME ; void CPhoneStateIdle::HandleErrorL(struct TPEErrorInfo const &)
+	?DisplayIncomingCallL@CPhoneStateIdle@@IAEXH@Z @ 226 NONAME ; void CPhoneStateIdle::DisplayIncomingCallL(int)
+	?SetSecurityMessageHandler@CPhoneStateMachine@@UAEXPAVMPhoneSecurityMessageHandler@@@Z @ 227 NONAME ; void CPhoneStateMachine::SetSecurityMessageHandler(class MPhoneSecurityMessageHandler *)
+	?HandleRemConCommandL@CPhoneState@@UAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 228 NONAME ; int CPhoneState::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
+	??1CPhoneStateIdle@@UAE@XZ @ 229 NONAME ; CPhoneStateIdle::~CPhoneStateIdle(void)
+	?IsDialingExtensionInFocusL@CPhoneState@@QBEHXZ @ 230 NONAME ; int CPhoneState::IsDialingExtensionInFocusL(void) const
+	?Initialize@CPhoneSecurityModeObserver@@UAEXXZ @ 231 NONAME ; void CPhoneSecurityModeObserver::Initialize(void)
+	?PhoneNumberFromEntryLC@CPhoneState@@IAEPAVHBufC16@@XZ @ 232 NONAME ; class HBufC16 * CPhoneState::PhoneNumberFromEntryLC(void)
+	?BaseConstructL@CPhoneState@@QAEXXZ @ 233 NONAME ; void CPhoneState::BaseConstructL(void)
+	?HandlePhoneStartupL@CPhoneUIController@@UAEXXZ @ 234 NONAME ; void CPhoneUIController::HandlePhoneStartupL(void)
+	?SpeedDialL@CPhoneStateIdle@@IAEXABIW4TDialInitiationMethod@1@@Z @ 235 NONAME ; void CPhoneStateIdle::SpeedDialL(unsigned int const &, enum CPhoneStateIdle::TDialInitiationMethod)
+	?SetTouchPaneButtonEnabled@CPhoneState@@IAEXH@Z @ 236 NONAME ; void CPhoneState::SetTouchPaneButtonEnabled(int)
+	?SetPhoneEngine@CPhoneStateMachine@@UAEXPAVMPEPhoneModel@@@Z @ 237 NONAME ; void CPhoneStateMachine::SetPhoneEngine(class MPEPhoneModel *)
+	?SpeedDialCanceledL@CPhoneStateIdle@@IAEXABI@Z @ 238 NONAME ; void CPhoneStateIdle::SpeedDialCanceledL(unsigned int const &)
+	?CloseDTMFEditorL@CPhoneState@@IAEXXZ @ 239 NONAME ; void CPhoneState::CloseDTMFEditorL(void)
+	?SetTouchPaneVisible@CPhoneState@@IAEXH@Z @ 240 NONAME ; void CPhoneState::SetTouchPaneVisible(int)
+	?HandlePhoneFocusLostEventL@CPhoneUIController@@UAEXXZ @ 241 NONAME ; void CPhoneUIController::HandlePhoneFocusLostEventL(void)
+	??0CPhoneStateMachine@@IAE@PAVMPhoneViewCommandHandle@@@Z @ 242 NONAME ; CPhoneStateMachine::CPhoneStateMachine(class MPhoneViewCommandHandle *)
+	??1CPhoneStateStartup@@UAE@XZ @ 243 NONAME ; CPhoneStateStartup::~CPhoneStateStartup(void)
+	?HandleKeyMessageL@CPhoneState@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 244 NONAME ; void CPhoneState::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?SetNeedToReturnToForegroundAppStatusL@CPhoneState@@IAEXH@Z @ 245 NONAME ; void CPhoneState::SetNeedToReturnToForegroundAppStatusL(int)
 
--- a/phoneapp/phoneuicontrol/eabi/phoneuicontrolu.def	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/eabi/phoneuicontrolu.def	Thu Sep 09 18:09:57 2010 +0100
@@ -2,68 +2,68 @@
 	_ZN11CPhoneState10ShowQueryLEi @ 1 NONAME
 	_ZN11CPhoneState11EndUiUpdateEv @ 2 NONAME
 	_ZN11CPhoneState11IsVideoCallEi @ 3 NONAME
-	_ZN11CPhoneState12HandleErrorLERK12TPEErrorInfo @ 4 NONAME
-	_ZN11CPhoneState14BaseConstructLEv @ 5 NONAME
-	_ZN11CPhoneState14DialVoiceCallLEv @ 6 NONAME
-	_ZN11CPhoneState14EndTransEffectEv @ 7 NONAME
-	_ZN11CPhoneState14HandleCommandLEi @ 8 NONAME
-	_ZN11CPhoneState14IsNoteVisibleLEv @ 9 NONAME
-	_ZN11CPhoneState14ShowTextQueryLEiiiP6TDes16i @ 10 NONAME
-	_ZN11CPhoneState15BeginUiUpdateLCEv @ 11 NONAME
-	_ZN11CPhoneState15DisconnectCallLEv @ 12 NONAME
-	_ZN11CPhoneState15DynInitMenuBarLEiP11CEikMenuBar @ 13 NONAME
-	_ZN11CPhoneState15HandleKeyEventLERK9TKeyEvent10TEventCode @ 14 NONAME
-	_ZN11CPhoneState15HandleLongHashLEv @ 15 NONAME
-	_ZN11CPhoneState15ProcessCommandLEi @ 16 NONAME
-	_ZN11CPhoneState15SetContextMenuLEi @ 17 NONAME
-	_ZN11CPhoneState16CallWaitingNoteLEi @ 18 NONAME
-	_ZN11CPhoneState16CloseDTMFEditorLEv @ 19 NONAME
-	_ZN11CPhoneState16DynInitMenuPaneLEiP12CEikMenuPane @ 20 NONAME
-	_ZN11CPhoneState16SetDefaultFlagsLEv @ 21 NONAME
-	_ZN11CPhoneState17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 22 NONAME
-	_ZN11CPhoneState17IsAnyQueryActiveLEv @ 23 NONAME
-	_ZN11CPhoneState17SetCallHeaderTypeEN14CBubbleManager19TPhoneCallTypeFlagsE @ 24 NONAME
-	_ZN11CPhoneState17SetHandsfreeModeLEi @ 25 NONAME
-	_ZN11CPhoneState17SetToolbarDimmingEi @ 26 NONAME
-	_ZN11CPhoneState18BeginTransEffectLCE21TStateTransEffectType @ 27 NONAME
-	_ZN11CPhoneState18DisplayIdleScreenLEv @ 28 NONAME
-	_ZN11CPhoneState18GetRemoteInfoDataLEiR6TDes16 @ 29 NONAME
-	_ZN11CPhoneState18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 30 NONAME
-	_ZN11CPhoneState18HandleSystemEventLERK8TWsEvent @ 31 NONAME
-	_ZN11CPhoneState18IsNumberEntryUsedLEv @ 32 NONAME
-	_ZN11CPhoneState19CompleteSatRequestLEi @ 33 NONAME
-	_ZN11CPhoneState19DialMultimediaCallLEv @ 34 NONAME
-	_ZN11CPhoneState19HandleCenRepChangeLERK4TUidj @ 35 NONAME
-	_ZN11CPhoneState19HandlePhoneStartupLEv @ 36 NONAME
-	_ZN11CPhoneState19SendGlobalInfoNoteLEi @ 37 NONAME
-	_ZN11CPhoneState19SetBTHandsfreeModeLEi @ 38 NONAME
-	_ZN11CPhoneState19SetDivertIndicationEi @ 39 NONAME
-	_ZN11CPhoneState19SetTouchPaneButtonsEi @ 40 NONAME
-	_ZN11CPhoneState19SetTouchPaneVisibleEi @ 41 NONAME
-	_ZN11CPhoneState19ShowNumberBusyNoteLEv @ 42 NONAME
-	_ZN11CPhoneState20CallFromNumberEntryLEv @ 43 NONAME
-	_ZN11CPhoneState20DecreaseAudioVolumeLEv @ 44 NONAME
-	_ZN11CPhoneState20HandleDisconnectingLEi @ 45 NONAME
-	_ZN11CPhoneState20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 46 NONAME
-	_ZN11CPhoneState20IncreaseAudioVolumeLEv @ 47 NONAME
-	_ZN11CPhoneState20SendGlobalErrorNoteLEi @ 48 NONAME
-	_ZN11CPhoneState21IsNumberEntryVisibleLEv @ 49 NONAME
-	_ZN11CPhoneState21UpdateRemoteInfoDataLEi @ 50 NONAME
-	_ZN11CPhoneState22CloseCustomizedDialerLEv @ 51 NONAME
-	_ZN11CPhoneState22DeleteTouchPaneButtonsEv @ 52 NONAME
-	_ZN11CPhoneState22HandleForegroundEventLEi @ 53 NONAME
-	_ZN11CPhoneState22HandleNumericKeyEventLERK9TKeyEvent10TEventCode @ 54 NONAME
-	_ZN11CPhoneState22HandlePropertyChangedLERK4TUidji @ 55 NONAME
-	_ZN11CPhoneState22OnlyHashInNumberEntryLEv @ 56 NONAME
-	_ZN11CPhoneState22PhoneNumberFromEntryLCEv @ 57 NONAME
-	_ZN11CPhoneState22SendGlobalWarningNoteLEi @ 58 NONAME
-	_ZN11CPhoneState22StartShowSecurityNoteLEv @ 59 NONAME
-	_ZN11CPhoneState23HandleAudioMuteChangedLEv @ 60 NONAME
-	_ZN11CPhoneState23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 61 NONAME
-	_ZN11CPhoneState23HandleNumberEntryEditedEv @ 62 NONAME
-	_ZN11CPhoneState23SetRingingTonePlaybackLEi @ 63 NONAME
-	_ZN11CPhoneState23UpdateSingleActiveCallLEi @ 64 NONAME
-	_ZN11CPhoneState24CanTransEffectTypeBeUsedE21TStateTransEffectType @ 65 NONAME
+	_ZN11CPhoneState11SetEikonEnvEP9CEikonEnv @ 4 NONAME
+	_ZN11CPhoneState12HandleErrorLERK12TPEErrorInfo @ 5 NONAME
+	_ZN11CPhoneState14BaseConstructLEv @ 6 NONAME
+	_ZN11CPhoneState14DialVoiceCallLEv @ 7 NONAME
+	_ZN11CPhoneState14EndTransEffectEv @ 8 NONAME
+	_ZN11CPhoneState14HandleCommandLEi @ 9 NONAME
+	_ZN11CPhoneState14IsNoteVisibleLEv @ 10 NONAME
+	_ZN11CPhoneState14ShowTextQueryLEiiiP6TDes16i @ 11 NONAME
+	_ZN11CPhoneState15BeginUiUpdateLCEv @ 12 NONAME
+	_ZN11CPhoneState15DisconnectCallLEv @ 13 NONAME
+	_ZN11CPhoneState15DynInitMenuBarLEiP11CEikMenuBar @ 14 NONAME
+	_ZN11CPhoneState15HandleKeyEventLERK9TKeyEvent10TEventCode @ 15 NONAME
+	_ZN11CPhoneState15HandleLongHashLEv @ 16 NONAME
+	_ZN11CPhoneState15ProcessCommandLEi @ 17 NONAME
+	_ZN11CPhoneState15SetContextMenuLEi @ 18 NONAME
+	_ZN11CPhoneState16CallWaitingNoteLEi @ 19 NONAME
+	_ZN11CPhoneState16CloseDTMFEditorLEv @ 20 NONAME
+	_ZN11CPhoneState16DynInitMenuPaneLEiP12CEikMenuPane @ 21 NONAME
+	_ZN11CPhoneState16SetDefaultFlagsLEv @ 22 NONAME
+	_ZN11CPhoneState17DisplayCallSetupLEi @ 23 NONAME
+	_ZN11CPhoneState17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 24 NONAME
+	_ZN11CPhoneState17IsAnyQueryActiveLEv @ 25 NONAME
+	_ZN11CPhoneState17SetCallHeaderTypeEN14CBubbleManager19TPhoneCallTypeFlagsE @ 26 NONAME
+	_ZN11CPhoneState17SetHandsfreeModeLEi @ 27 NONAME
+	_ZN11CPhoneState17SetToolbarDimmingEi @ 28 NONAME
+	_ZN11CPhoneState18BeginTransEffectLCE21TStateTransEffectType @ 29 NONAME
+	_ZN11CPhoneState18DisplayIdleScreenLEv @ 30 NONAME
+	_ZN11CPhoneState18GetRemoteInfoDataLEiR6TDes16 @ 31 NONAME
+	_ZN11CPhoneState18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 32 NONAME
+	_ZN11CPhoneState18HandleSystemEventLERK8TWsEvent @ 33 NONAME
+	_ZN11CPhoneState18IsNumberEntryUsedLEv @ 34 NONAME
+	_ZN11CPhoneState19CompleteSatRequestLEi @ 35 NONAME
+	_ZN11CPhoneState19DialMultimediaCallLEv @ 36 NONAME
+	_ZN11CPhoneState19HandleCenRepChangeLERK4TUidj @ 37 NONAME
+	_ZN11CPhoneState19HandlePhoneStartupLEv @ 38 NONAME
+	_ZN11CPhoneState19SendGlobalInfoNoteLEi @ 39 NONAME
+	_ZN11CPhoneState19SetBTHandsfreeModeLEi @ 40 NONAME
+	_ZN11CPhoneState19SetTouchPaneButtonsEi @ 41 NONAME
+	_ZN11CPhoneState19SetTouchPaneVisibleEi @ 42 NONAME
+	_ZN11CPhoneState19ShowNumberBusyNoteLEv @ 43 NONAME
+	_ZN11CPhoneState20CallFromNumberEntryLEv @ 44 NONAME
+	_ZN11CPhoneState20DecreaseAudioVolumeLEv @ 45 NONAME
+	_ZN11CPhoneState20HandleDisconnectingLEi @ 46 NONAME
+	_ZN11CPhoneState20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 47 NONAME
+	_ZN11CPhoneState20IncreaseAudioVolumeLEv @ 48 NONAME
+	_ZN11CPhoneState20SendGlobalErrorNoteLEi @ 49 NONAME
+	_ZN11CPhoneState21IsNumberEntryVisibleLEv @ 50 NONAME
+	_ZN11CPhoneState21UpdateRemoteInfoDataLEi @ 51 NONAME
+	_ZN11CPhoneState22CloseCustomizedDialerLEv @ 52 NONAME
+	_ZN11CPhoneState22DeleteTouchPaneButtonsEv @ 53 NONAME
+	_ZN11CPhoneState22HandleForegroundEventLEi @ 54 NONAME
+	_ZN11CPhoneState22HandleNumericKeyEventLERK9TKeyEvent10TEventCode @ 55 NONAME
+	_ZN11CPhoneState22HandlePropertyChangedLERK4TUidji @ 56 NONAME
+	_ZN11CPhoneState22OnlyHashInNumberEntryLEv @ 57 NONAME
+	_ZN11CPhoneState22PhoneNumberFromEntryLCEv @ 58 NONAME
+	_ZN11CPhoneState22SendGlobalWarningNoteLEi @ 59 NONAME
+	_ZN11CPhoneState22StartShowSecurityNoteLEv @ 60 NONAME
+	_ZN11CPhoneState23HandleAudioMuteChangedLEv @ 61 NONAME
+	_ZN11CPhoneState23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 62 NONAME
+	_ZN11CPhoneState23HandleNumberEntryEditedEv @ 63 NONAME
+	_ZN11CPhoneState23SetRingingTonePlaybackLEi @ 64 NONAME
+	_ZN11CPhoneState23UpdateSingleActiveCallLEi @ 65 NONAME
 	_ZN11CPhoneState24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 66 NONAME
 	_ZN11CPhoneState24HandleEnvironmentChangeLEi @ 67 NONAME
 	_ZN11CPhoneState24StartAlsLineChangeTimerLEv @ 68 NONAME
@@ -83,394 +83,386 @@
 	_ZN11CPhoneState26UpdateSilenceButtonDimmingEv @ 82 NONAME
 	_ZN11CPhoneState27DisplayCallTerminationNoteLEv @ 83 NONAME
 	_ZN11CPhoneState27HandlePhoneForegroundEventLEv @ 84 NONAME
-	_ZN11CPhoneState28ClearNumberEntryContentCacheEv @ 85 NONAME
-	_ZN11CPhoneState28SetupIdleScreenInBackgroundLEv @ 86 NONAME
-	_ZN11CPhoneState29DisplayHeaderForCallComingInLEii @ 87 NONAME
-	_ZN11CPhoneState29DisplayHeaderForOutgoingCallLEi @ 88 NONAME
-	_ZN11CPhoneState30CheckIfShowCallTerminationNoteEv @ 89 NONAME
-	_ZN11CPhoneState30CustomizedDialerCbaResourceIdLEv @ 90 NONAME
-	_ZN11CPhoneState30SetToolbarButtonHandsetEnabledEv @ 91 NONAME
-	_ZN11CPhoneState31CustomizedDialerMenuResourceIdLEv @ 92 NONAME
-	_ZN11CPhoneState33DisplayHeaderForInitializingCallLEi @ 93 NONAME
+	_ZN11CPhoneState27SetToolbarButtonBTHFEnabledEv @ 85 NONAME
+	_ZN11CPhoneState28ClearNumberEntryContentCacheEv @ 86 NONAME
+	_ZN11CPhoneState28SetupIdleScreenInBackgroundLEv @ 87 NONAME
+	_ZN11CPhoneState29DisplayHeaderForCallComingInLEii @ 88 NONAME
+	_ZN11CPhoneState29DisplayHeaderForOutgoingCallLEi @ 89 NONAME
+	_ZN11CPhoneState30CheckIfShowCallTerminationNoteEv @ 90 NONAME
+	_ZN11CPhoneState30CustomizedDialerCbaResourceIdLEv @ 91 NONAME
+	_ZN11CPhoneState30SetToolbarButtonHandsetEnabledEv @ 92 NONAME
+	_ZN11CPhoneState31CustomizedDialerMenuResourceIdLEv @ 93 NONAME
 	_ZN11CPhoneState34CaptureKeysDuringCallNotificationLEi @ 94 NONAME
 	_ZN11CPhoneState34SetCallHeaderTextsForCallComingInLEiiP28TPhoneCmdParamCallHeaderData @ 95 NONAME
 	_ZN11CPhoneState34SetToolbarButtonLoudspeakerEnabledEv @ 96 NONAME
-	_ZN11CPhoneState35IsAlphanumericSupportedAndCharInputERK9TKeyEvent @ 97 NONAME
-	_ZN11CPhoneState37ForwardPEMessageToPhoneCustomizationLEii @ 98 NONAME
-	_ZN11CPhoneState38CheckIfRestoreNEContentAfterDtmfDialerEv @ 99 NONAME
-	_ZN11CPhoneState43IsSimStateNotPresentWithSecurityModeEnabledEv @ 100 NONAME
-	_ZN11CPhoneState7IsSimOkEv @ 101 NONAME
-	_ZN11CPhoneState9ShowNoteLEi @ 102 NONAME
-	_ZN11CPhoneStateC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 103 NONAME
-	_ZN11CPhoneStateC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 104 NONAME
-	_ZN11CPhoneStateD0Ev @ 105 NONAME
-	_ZN11CPhoneStateD1Ev @ 106 NONAME
-	_ZN11CPhoneStateD2Ev @ 107 NONAME
-	_ZN15CPhoneStateIdle10ConstructLEv @ 108 NONAME
-	_ZN15CPhoneStateIdle10SpeedDialLERKjNS_21TDialInitiationMethodE @ 109 NONAME
-	_ZN15CPhoneStateIdle12HandleErrorLERK12TPEErrorInfo @ 110 NONAME
-	_ZN15CPhoneStateIdle14DialVoiceCallLEv @ 111 NONAME
-	_ZN15CPhoneStateIdle14HandleCommandLEi @ 112 NONAME
-	_ZN15CPhoneStateIdle14HandleDialingLEi @ 113 NONAME
-	_ZN15CPhoneStateIdle15HandleKeyEventLERK9TKeyEvent10TEventCode @ 114 NONAME
-	_ZN15CPhoneStateIdle15ProcessCommandLEi @ 115 NONAME
-	_ZN15CPhoneStateIdle17DisplayCallSetupLEi @ 116 NONAME
-	_ZN15CPhoneStateIdle17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 117 NONAME
-	_ZN15CPhoneStateIdle18HandleSendCommandLEv @ 118 NONAME
-	_ZN15CPhoneStateIdle18SpeedDialCanceledLERKj @ 119 NONAME
-	_ZN15CPhoneStateIdle19DialMultimediaCallLEv @ 120 NONAME
-	_ZN15CPhoneStateIdle20DisplayIncomingCallLEi @ 121 NONAME
-	_ZN15CPhoneStateIdle20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 122 NONAME
-	_ZN15CPhoneStateIdle22OnlyHashInNumberEntryLEv @ 123 NONAME
-	_ZN15CPhoneStateIdle24CanTransEffectTypeBeUsedE21TStateTransEffectType @ 124 NONAME
+	_ZN11CPhoneState35CloseClearNumberEntryAndLoadEffectLE21TStateTransEffectType @ 97 NONAME
+	_ZN11CPhoneState35IsAlphanumericSupportedAndCharInputERK9TKeyEvent @ 98 NONAME
+	_ZN11CPhoneState36DoStateSpecificCallSetUpDefinitionsLEv @ 99 NONAME
+	_ZN11CPhoneState37ForwardPEMessageToPhoneCustomizationLEii @ 100 NONAME
+	_ZN11CPhoneState38CheckIfRestoreNEContentAfterDtmfDialerEv @ 101 NONAME
+	_ZN11CPhoneState43IsSimStateNotPresentWithSecurityModeEnabledEv @ 102 NONAME
+	_ZN11CPhoneState7IsSimOkEv @ 103 NONAME
+	_ZN11CPhoneState9ShowNoteLEi @ 104 NONAME
+	_ZN11CPhoneStateC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 105 NONAME
+	_ZN11CPhoneStateC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 106 NONAME
+	_ZN11CPhoneStateD0Ev @ 107 NONAME
+	_ZN11CPhoneStateD1Ev @ 108 NONAME
+	_ZN11CPhoneStateD2Ev @ 109 NONAME
+	_ZN15CPhoneStateIdle10ConstructLEv @ 110 NONAME
+	_ZN15CPhoneStateIdle10SpeedDialLERKjNS_21TDialInitiationMethodE @ 111 NONAME
+	_ZN15CPhoneStateIdle12HandleErrorLERK12TPEErrorInfo @ 112 NONAME
+	_ZN15CPhoneStateIdle14DialVoiceCallLEv @ 113 NONAME
+	_ZN15CPhoneStateIdle14HandleCommandLEi @ 114 NONAME
+	_ZN15CPhoneStateIdle14HandleDialingLEi @ 115 NONAME
+	_ZN15CPhoneStateIdle15HandleKeyEventLERK9TKeyEvent10TEventCode @ 116 NONAME
+	_ZN15CPhoneStateIdle15ProcessCommandLEi @ 117 NONAME
+	_ZN15CPhoneStateIdle17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 118 NONAME
+	_ZN15CPhoneStateIdle18HandleSendCommandLEv @ 119 NONAME
+	_ZN15CPhoneStateIdle18SpeedDialCanceledLERKj @ 120 NONAME
+	_ZN15CPhoneStateIdle19DialMultimediaCallLEv @ 121 NONAME
+	_ZN15CPhoneStateIdle20DisplayIncomingCallLEi @ 122 NONAME
+	_ZN15CPhoneStateIdle20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 123 NONAME
+	_ZN15CPhoneStateIdle22OnlyHashInNumberEntryLEv @ 124 NONAME
 	_ZN15CPhoneStateIdle25HandleNumberEntryClearedLEv @ 125 NONAME
 	_ZN15CPhoneStateIdle25HandleNumberLongKeyPressLEv @ 126 NONAME
 	_ZN15CPhoneStateIdle25HandlePhoneEngineMessageLEii @ 127 NONAME
 	_ZN15CPhoneStateIdle26HandleIdleForegroundEventLEv @ 128 NONAME
 	_ZN15CPhoneStateIdle26HandlePhoneFocusLostEventLEv @ 129 NONAME
 	_ZN15CPhoneStateIdle27HandlePhoneForegroundEventLEv @ 130 NONAME
-	_ZN15CPhoneStateIdle5DialLERK7TDesC1616TPhoneNumberTypeNS_21TDialInitiationMethodE @ 131 NONAME
-	_ZN15CPhoneStateIdleC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 132 NONAME
-	_ZN15CPhoneStateIdleC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 133 NONAME
-	_ZN15CPhoneStateIdleD0Ev @ 134 NONAME
-	_ZN15CPhoneStateIdleD1Ev @ 135 NONAME
-	_ZN15CPhoneStateIdleD2Ev @ 136 NONAME
-	_ZN16CPhoneCbaManager10UpdateCbaLEi @ 137 NONAME
-	_ZN16CPhoneCbaManager18UpdateIncomingCbaLEi @ 138 NONAME
-	_ZN16CPhoneCbaManager7SetCbaLEi @ 139 NONAME
-	_ZN17CPhoneStateHandle17ViewCommandHandleEv @ 140 NONAME
-	_ZN17CPhoneStateHandle8InstanceEv @ 141 NONAME
-	_ZN17CPhoneStateInCall10ConstructLEv @ 142 NONAME
-	_ZN17CPhoneStateInCall10UpdateCbaLEi @ 143 NONAME
-	_ZN17CPhoneStateInCall11HandleIdleLEi @ 144 NONAME
-	_ZN17CPhoneStateInCall12OpenMenuBarLEv @ 145 NONAME
-	_ZN17CPhoneStateInCall14HandleCommandLEi @ 146 NONAME
-	_ZN17CPhoneStateInCall15CloseDtmfQueryLEv @ 147 NONAME
-	_ZN17CPhoneStateInCall15GetRingingCallLEv @ 148 NONAME
-	_ZN17CPhoneStateInCall16UpdateInCallCbaLEv @ 149 NONAME
-	_ZN17CPhoneStateInCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 150 NONAME
-	_ZN17CPhoneStateInCall18CallFetchedNumberLERK7TDesC16 @ 151 NONAME
-	_ZN17CPhoneStateInCall18CreateNumberEntryLEv @ 152 NONAME
-	_ZN17CPhoneStateInCall18IsVideoCallActiveLEv @ 153 NONAME
-	_ZN17CPhoneStateInCall19IsVideoCallRingingLEv @ 154 NONAME
-	_ZN17CPhoneStateInCall19LaunchNewCallQueryLEv @ 155 NONAME
-	_ZN17CPhoneStateInCall22HandlePropertyChangedLERK4TUidji @ 156 NONAME
-	_ZN17CPhoneStateInCall23DisconnectOutgoingCallLEv @ 157 NONAME
-	_ZN17CPhoneStateInCall25HandleNumberEntryClearedLEv @ 158 NONAME
-	_ZN17CPhoneStateInCall25HandlePhoneEngineMessageLEii @ 159 NONAME
-	_ZN17CPhoneStateInCall34PhoneNumberAvailableInPhoneEngineLEi @ 160 NONAME
-	_ZN17CPhoneStateInCallC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 161 NONAME
-	_ZN17CPhoneStateInCallC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 162 NONAME
-	_ZN17CPhoneStateInCallD0Ev @ 163 NONAME
-	_ZN17CPhoneStateInCallD1Ev @ 164 NONAME
-	_ZN17CPhoneStateInCallD2Ev @ 165 NONAME
-	_ZN18CPhoneStateMachine11ChangeStateEi @ 166 NONAME
-	_ZN18CPhoneStateMachine11PhoneEngineEv @ 167 NONAME
-	_ZN18CPhoneStateMachine12SecurityModeEv @ 168 NONAME
-	_ZN18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 169 NONAME
-	_ZN18CPhoneStateMachine15PhoneEngineInfoEv @ 170 NONAME
-	_ZN18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 171 NONAME
-	_ZN18CPhoneStateMachine22HandlePropertyChangedLERK4TUidji @ 172 NONAME
-	_ZN18CPhoneStateMachine22SendPhoneEngineMessageEi @ 173 NONAME
-	_ZN18CPhoneStateMachine23SetSecurityModeObserverEP26MPhoneSecurityModeObserver @ 174 NONAME
-	_ZN18CPhoneStateMachine25HandlePhoneEngineMessageLEii @ 175 NONAME
-	_ZN18CPhoneStateMachine25SetSecurityMessageHandlerEP28MPhoneSecurityMessageHandler @ 176 NONAME
-	_ZN18CPhoneStateMachine5StateEv @ 177 NONAME
-	_ZN18CPhoneStateMachine9SetCallIdEi @ 178 NONAME
-	_ZN18CPhoneStateMachineC1EP23MPhoneViewCommandHandle @ 179 NONAME
-	_ZN18CPhoneStateMachineC2EP23MPhoneViewCommandHandle @ 180 NONAME
-	_ZN18CPhoneStateMachineD0Ev @ 181 NONAME
-	_ZN18CPhoneStateMachineD1Ev @ 182 NONAME
-	_ZN18CPhoneStateMachineD2Ev @ 183 NONAME
-	_ZN18CPhoneStateStartup10ConstructLEv @ 184 NONAME
-	_ZN18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 185 NONAME
-	_ZN18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 186 NONAME
-	_ZN18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 187 NONAME
-	_ZN18CPhoneStateStartup19HandlePhoneStartupLEv @ 188 NONAME
-	_ZN18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 189 NONAME
-	_ZN18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 190 NONAME
-	_ZN18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 191 NONAME
-	_ZN18CPhoneStateStartup26HandlePEConstructionReadyLEi @ 192 NONAME
-	_ZN18CPhoneStateStartup4NewLEP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 193 NONAME
-	_ZN18CPhoneStateStartupC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 194 NONAME
-	_ZN18CPhoneStateStartupC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 195 NONAME
-	_ZN18CPhoneStateStartupD0Ev @ 196 NONAME
-	_ZN18CPhoneStateStartupD1Ev @ 197 NONAME
-	_ZN18CPhoneStateStartupD2Ev @ 198 NONAME
-	_ZN18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 199 NONAME
-	_ZN18CPhoneUIController13HandleMessageEii @ 200 NONAME
-	_ZN18CPhoneUIController14HandleCommandLEi @ 201 NONAME
-	_ZN18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 202 NONAME
-	_ZN18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 203 NONAME
-	_ZN18CPhoneUIController15ProcessCommandLEi @ 204 NONAME
-	_ZN18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 205 NONAME
-	_ZN18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 206 NONAME
-	_ZN18CPhoneUIController19HandlePhoneStartupLEv @ 207 NONAME
-	_ZN18CPhoneUIController22HandleForegroundEventLEi @ 208 NONAME
-	_ZN18CPhoneUIController24HandleEnvironmentChangeLEi @ 209 NONAME
-	_ZN18CPhoneUIController26HandleIdleForegroundEventLEv @ 210 NONAME
-	_ZN18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 211 NONAME
-	_ZN18CPhoneUIController27HandlePhoneForegroundEventLEv @ 212 NONAME
-	_ZN18CPhoneUIController4NewLER20CPhoneViewController @ 213 NONAME
-	_ZN18CPhoneUIControllerD0Ev @ 214 NONAME
-	_ZN18CPhoneUIControllerD1Ev @ 215 NONAME
-	_ZN18CPhoneUIControllerD2Ev @ 216 NONAME
-	_ZN19CPhoneStateIncoming10ConstructLEv @ 217 NONAME
-	_ZN19CPhoneStateIncoming14HandleCommandLEi @ 218 NONAME
-	_ZN19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 219 NONAME
-	_ZN19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 220 NONAME
-	_ZN19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 221 NONAME
-	_ZN19CPhoneStateIncoming23HandleAudioPlayStoppedLEv @ 222 NONAME
-	_ZN19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 223 NONAME
-	_ZN19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 224 NONAME
-	_ZN19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 225 NONAME
-	_ZN19CPhoneStateIncomingC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 226 NONAME
-	_ZN19CPhoneStateIncomingC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 227 NONAME
-	_ZN19CPhoneStateIncomingD0Ev @ 228 NONAME
-	_ZN19CPhoneStateIncomingD1Ev @ 229 NONAME
-	_ZN19CPhoneStateIncomingD2Ev @ 230 NONAME
-	_ZN20CPhoneReconnectQuery19ShowReconnectQueryLEi @ 231 NONAME
-	_ZN20CPhoneReconnectQuery9InstanceLEv @ 232 NONAME
-	_ZN20CPhoneStateCallSetup10ConstructLEv @ 233 NONAME
-	_ZN20CPhoneStateCallSetup10UpdateCbaLEi @ 234 NONAME
-	_ZN20CPhoneStateCallSetup12OpenMenuBarLEv @ 235 NONAME
-	_ZN20CPhoneStateCallSetup14HandleCommandLEi @ 236 NONAME
-	_ZN20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 237 NONAME
-	_ZN20CPhoneStateCallSetup16UpdateInCallCbaLEv @ 238 NONAME
-	_ZN20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 239 NONAME
-	_ZN20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 240 NONAME
-	_ZN20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 241 NONAME
-	_ZN20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 242 NONAME
-	_ZN20CPhoneStateCallSetupC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 243 NONAME
-	_ZN20CPhoneStateCallSetupC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 244 NONAME
-	_ZN20CPhoneStateCallSetupD0Ev @ 245 NONAME
-	_ZN20CPhoneStateCallSetupD1Ev @ 246 NONAME
-	_ZN20CPhoneStateCallSetupD2Ev @ 247 NONAME
-	_ZNK11CPhoneState11IsKeyLockOnEv @ 248 NONAME
-	_ZNK11CPhoneState12IsAutoLockOnEv @ 249 NONAME
-	_ZNK11CPhoneState14IsSwivelClosedEv @ 250 NONAME
-	_ZNK11CPhoneState17IsMenuBarVisibleLEv @ 251 NONAME
-	_ZNK11CPhoneState18TopAppIsDisplayedLEv @ 252 NONAME
-	_ZNK11CPhoneState20IsDTMFEditorVisibleLEv @ 253 NONAME
-	_ZNK11CPhoneState25IsOnScreenDialerSupportedEv @ 254 NONAME
-	_ZNK11CPhoneState26IsCustomizedDialerVisibleLEv @ 255 NONAME
-	_ZNK11CPhoneState26IsDialingExtensionInFocusLEv @ 256 NONAME
-	_ZNK11CPhoneState28NeedToReturnToForegroundAppLEv @ 257 NONAME
-	_ZNK11CPhoneState8SimStateEv @ 258 NONAME
-	_ZNK15CPhoneStateIdle17IsSpeedDialNumberERK7TDesC16 @ 259 NONAME
-	_ZTI11CPhoneState @ 260 NONAME
-	_ZTI15CPhoneStateIdle @ 261 NONAME
-	_ZTI17CPhoneStateHandle @ 262 NONAME
-	_ZTI17CPhoneStateInCall @ 263 NONAME
-	_ZTI18CPhoneStateMachine @ 264 NONAME
-	_ZTI18CPhoneStateStartup @ 265 NONAME
-	_ZTI18CPhoneUIController @ 266 NONAME
-	_ZTI19CPhoneStateIncoming @ 267 NONAME
-	_ZTI20CPhoneReconnectQuery @ 268 NONAME
-	_ZTI20CPhoneStateCallSetup @ 269 NONAME
-	_ZTI23CPhoneDtmfWaitCharTimer @ 270 NONAME
-	_ZTI23CPhoneKeyEventForwarder @ 271 NONAME
-	_ZTI24CPhoneSystemEventHandler @ 272 NONAME
-	_ZTI26CPhoneRemoteControlHandler @ 273 NONAME
-	_ZTI27CPhoneBtaaDisconnectHandler @ 274 NONAME
-	_ZTV11CPhoneState @ 275 NONAME
-	_ZTV15CPhoneStateIdle @ 276 NONAME
-	_ZTV17CPhoneStateHandle @ 277 NONAME
-	_ZTV17CPhoneStateInCall @ 278 NONAME
-	_ZTV18CPhoneStateMachine @ 279 NONAME
-	_ZTV18CPhoneStateStartup @ 280 NONAME
-	_ZTV18CPhoneUIController @ 281 NONAME
-	_ZTV19CPhoneStateIncoming @ 282 NONAME
-	_ZTV20CPhoneReconnectQuery @ 283 NONAME
-	_ZTV20CPhoneStateCallSetup @ 284 NONAME
-	_ZTV23CPhoneDtmfWaitCharTimer @ 285 NONAME
-	_ZTV23CPhoneKeyEventForwarder @ 286 NONAME
-	_ZTV24CPhoneSystemEventHandler @ 287 NONAME
-	_ZTV26CPhoneRemoteControlHandler @ 288 NONAME
-	_ZTV27CPhoneBtaaDisconnectHandler @ 289 NONAME
-	_ZThn12_N11CPhoneState15DynInitMenuBarLEiP11CEikMenuBar @ 290 NONAME
-	_ZThn12_N11CPhoneState16DynInitMenuPaneLEiP12CEikMenuPane @ 291 NONAME
-	_ZThn12_N11CPhoneState18HandleSystemEventLERK8TWsEvent @ 292 NONAME
-	_ZThn12_N11CPhoneState19HandleCenRepChangeLERK4TUidj @ 293 NONAME
-	_ZThn12_N11CPhoneState19HandlePhoneStartupLEv @ 294 NONAME
-	_ZThn12_N11CPhoneState22HandleForegroundEventLEi @ 295 NONAME
-	_ZThn12_N11CPhoneState22HandlePropertyChangedLERK4TUidji @ 296 NONAME
-	_ZThn12_N11CPhoneState24HandleEnvironmentChangeLEi @ 297 NONAME
-	_ZThn12_N11CPhoneState26HandleIdleForegroundEventLEv @ 298 NONAME
-	_ZThn12_N11CPhoneState26HandlePhoneFocusLostEventLEv @ 299 NONAME
-	_ZThn12_N11CPhoneState27HandlePhoneForegroundEventLEv @ 300 NONAME
-	_ZThn12_N11CPhoneStateD0Ev @ 301 NONAME
-	_ZThn12_N11CPhoneStateD1Ev @ 302 NONAME
-	_ZThn12_N15CPhoneStateIdle26HandleIdleForegroundEventLEv @ 303 NONAME
-	_ZThn12_N15CPhoneStateIdle26HandlePhoneFocusLostEventLEv @ 304 NONAME
-	_ZThn12_N15CPhoneStateIdle27HandlePhoneForegroundEventLEv @ 305 NONAME
-	_ZThn12_N15CPhoneStateIdleD0Ev @ 306 NONAME
-	_ZThn12_N15CPhoneStateIdleD1Ev @ 307 NONAME
-	_ZThn12_N17CPhoneStateInCall22HandlePropertyChangedLERK4TUidji @ 308 NONAME
-	_ZThn12_N17CPhoneStateInCallD0Ev @ 309 NONAME
-	_ZThn12_N17CPhoneStateInCallD1Ev @ 310 NONAME
-	_ZThn12_N18CPhoneStateStartup19HandlePhoneStartupLEv @ 311 NONAME
-	_ZThn12_N18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 312 NONAME
-	_ZThn12_N18CPhoneStateStartupD0Ev @ 313 NONAME
-	_ZThn12_N18CPhoneStateStartupD1Ev @ 314 NONAME
-	_ZThn12_N18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 315 NONAME
-	_ZThn12_N18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 316 NONAME
-	_ZThn12_N18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 317 NONAME
-	_ZThn12_N18CPhoneUIController19HandlePhoneStartupLEv @ 318 NONAME
-	_ZThn12_N18CPhoneUIController22HandleForegroundEventLEi @ 319 NONAME
-	_ZThn12_N18CPhoneUIController24HandleEnvironmentChangeLEi @ 320 NONAME
-	_ZThn12_N18CPhoneUIController26HandleIdleForegroundEventLEv @ 321 NONAME
-	_ZThn12_N18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 322 NONAME
-	_ZThn12_N18CPhoneUIController27HandlePhoneForegroundEventLEv @ 323 NONAME
-	_ZThn12_N18CPhoneUIControllerD0Ev @ 324 NONAME
-	_ZThn12_N18CPhoneUIControllerD1Ev @ 325 NONAME
-	_ZThn12_N19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 326 NONAME
-	_ZThn12_N19CPhoneStateIncomingD0Ev @ 327 NONAME
-	_ZThn12_N19CPhoneStateIncomingD1Ev @ 328 NONAME
-	_ZThn12_N20CPhoneStateCallSetupD0Ev @ 329 NONAME
-	_ZThn12_N20CPhoneStateCallSetupD1Ev @ 330 NONAME
-	_ZThn16_N11CPhoneState14HandleCommandLEi @ 331 NONAME
-	_ZThn16_N11CPhoneState15ProcessCommandLEi @ 332 NONAME
-	_ZThn16_N11CPhoneStateD0Ev @ 333 NONAME
-	_ZThn16_N11CPhoneStateD1Ev @ 334 NONAME
-	_ZThn16_N15CPhoneStateIdle14HandleCommandLEi @ 335 NONAME
-	_ZThn16_N15CPhoneStateIdle15ProcessCommandLEi @ 336 NONAME
-	_ZThn16_N15CPhoneStateIdleD0Ev @ 337 NONAME
-	_ZThn16_N15CPhoneStateIdleD1Ev @ 338 NONAME
-	_ZThn16_N17CPhoneStateInCall14HandleCommandLEi @ 339 NONAME
-	_ZThn16_N17CPhoneStateInCallD0Ev @ 340 NONAME
-	_ZThn16_N17CPhoneStateInCallD1Ev @ 341 NONAME
-	_ZThn16_N18CPhoneStateStartupD0Ev @ 342 NONAME
-	_ZThn16_N18CPhoneStateStartupD1Ev @ 343 NONAME
-	_ZThn16_N18CPhoneUIController14HandleCommandLEi @ 344 NONAME
-	_ZThn16_N18CPhoneUIController15ProcessCommandLEi @ 345 NONAME
-	_ZThn16_N18CPhoneUIControllerD0Ev @ 346 NONAME
-	_ZThn16_N18CPhoneUIControllerD1Ev @ 347 NONAME
-	_ZThn16_N19CPhoneStateIncoming14HandleCommandLEi @ 348 NONAME
-	_ZThn16_N19CPhoneStateIncomingD0Ev @ 349 NONAME
-	_ZThn16_N19CPhoneStateIncomingD1Ev @ 350 NONAME
-	_ZThn16_N20CPhoneStateCallSetup14HandleCommandLEi @ 351 NONAME
-	_ZThn16_N20CPhoneStateCallSetupD0Ev @ 352 NONAME
-	_ZThn16_N20CPhoneStateCallSetupD1Ev @ 353 NONAME
-	_ZThn20_N11CPhoneState20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 354 NONAME
-	_ZThn20_N11CPhoneStateD0Ev @ 355 NONAME
-	_ZThn20_N11CPhoneStateD1Ev @ 356 NONAME
-	_ZThn20_N15CPhoneStateIdle20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 357 NONAME
-	_ZThn20_N15CPhoneStateIdleD0Ev @ 358 NONAME
-	_ZThn20_N15CPhoneStateIdleD1Ev @ 359 NONAME
-	_ZThn20_N17CPhoneStateInCallD0Ev @ 360 NONAME
-	_ZThn20_N17CPhoneStateInCallD1Ev @ 361 NONAME
-	_ZThn20_N18CPhoneStateStartupD0Ev @ 362 NONAME
-	_ZThn20_N18CPhoneStateStartupD1Ev @ 363 NONAME
-	_ZThn20_N19CPhoneStateIncomingD0Ev @ 364 NONAME
-	_ZThn20_N19CPhoneStateIncomingD1Ev @ 365 NONAME
-	_ZThn20_N20CPhoneStateCallSetupD0Ev @ 366 NONAME
-	_ZThn20_N20CPhoneStateCallSetupD1Ev @ 367 NONAME
-	_ZThn24_N11CPhoneState19SetDivertIndicationEi @ 368 NONAME
-	_ZThn24_N11CPhoneStateD0Ev @ 369 NONAME
-	_ZThn24_N11CPhoneStateD1Ev @ 370 NONAME
-	_ZThn24_N15CPhoneStateIdleD0Ev @ 371 NONAME
-	_ZThn24_N15CPhoneStateIdleD1Ev @ 372 NONAME
-	_ZThn24_N17CPhoneStateInCallD0Ev @ 373 NONAME
-	_ZThn24_N17CPhoneStateInCallD1Ev @ 374 NONAME
-	_ZThn24_N18CPhoneStateStartupD0Ev @ 375 NONAME
-	_ZThn24_N18CPhoneStateStartupD1Ev @ 376 NONAME
-	_ZThn24_N19CPhoneStateIncomingD0Ev @ 377 NONAME
-	_ZThn24_N19CPhoneStateIncomingD1Ev @ 378 NONAME
-	_ZThn24_N20CPhoneStateCallSetupD0Ev @ 379 NONAME
-	_ZThn24_N20CPhoneStateCallSetupD1Ev @ 380 NONAME
-	_ZThn28_N11CPhoneState25HandleNumberEntryClearedLEv @ 381 NONAME
-	_ZThn28_N15CPhoneStateIdle25HandleNumberEntryClearedLEv @ 382 NONAME
-	_ZThn28_N17CPhoneStateInCall25HandleNumberEntryClearedLEv @ 383 NONAME
-	_ZThn28_N19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 384 NONAME
-	_ZThn28_N20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 385 NONAME
-	_ZThn32_N11CPhoneState23HandleNumberEntryEditedEv @ 386 NONAME
-	_ZThn32_N11CPhoneStateD0Ev @ 387 NONAME
-	_ZThn32_N11CPhoneStateD1Ev @ 388 NONAME
-	_ZThn32_N15CPhoneStateIdleD0Ev @ 389 NONAME
-	_ZThn32_N15CPhoneStateIdleD1Ev @ 390 NONAME
-	_ZThn32_N17CPhoneStateInCallD0Ev @ 391 NONAME
-	_ZThn32_N17CPhoneStateInCallD1Ev @ 392 NONAME
-	_ZThn32_N18CPhoneStateStartupD0Ev @ 393 NONAME
-	_ZThn32_N18CPhoneStateStartupD1Ev @ 394 NONAME
-	_ZThn32_N19CPhoneStateIncomingD0Ev @ 395 NONAME
-	_ZThn32_N19CPhoneStateIncomingD1Ev @ 396 NONAME
-	_ZThn32_N20CPhoneStateCallSetupD0Ev @ 397 NONAME
-	_ZThn32_N20CPhoneStateCallSetupD1Ev @ 398 NONAME
-	_ZThn36_NK11CPhoneState11IsKeyLockOnEv @ 399 NONAME
-	_ZThn36_NK11CPhoneState12IsAutoLockOnEv @ 400 NONAME
-	_ZThn4_N11CPhoneState12HandleErrorLERK12TPEErrorInfo @ 401 NONAME
-	_ZThn4_N11CPhoneState25HandlePhoneEngineMessageLEii @ 402 NONAME
-	_ZThn4_N11CPhoneStateD0Ev @ 403 NONAME
-	_ZThn4_N11CPhoneStateD1Ev @ 404 NONAME
-	_ZThn4_N15CPhoneStateIdle12HandleErrorLERK12TPEErrorInfo @ 405 NONAME
-	_ZThn4_N15CPhoneStateIdle25HandlePhoneEngineMessageLEii @ 406 NONAME
-	_ZThn4_N15CPhoneStateIdleD0Ev @ 407 NONAME
-	_ZThn4_N15CPhoneStateIdleD1Ev @ 408 NONAME
-	_ZThn4_N17CPhoneStateInCall25HandlePhoneEngineMessageLEii @ 409 NONAME
-	_ZThn4_N17CPhoneStateInCallD0Ev @ 410 NONAME
-	_ZThn4_N17CPhoneStateInCallD1Ev @ 411 NONAME
-	_ZThn4_N18CPhoneStateMachine11ChangeStateEi @ 412 NONAME
-	_ZThn4_N18CPhoneStateMachine11PhoneEngineEv @ 413 NONAME
-	_ZThn4_N18CPhoneStateMachine12SecurityModeEv @ 414 NONAME
-	_ZThn4_N18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 415 NONAME
-	_ZThn4_N18CPhoneStateMachine15PhoneEngineInfoEv @ 416 NONAME
-	_ZThn4_N18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 417 NONAME
-	_ZThn4_N18CPhoneStateMachine22HandlePropertyChangedLERK4TUidji @ 418 NONAME
-	_ZThn4_N18CPhoneStateMachine22SendPhoneEngineMessageEi @ 419 NONAME
-	_ZThn4_N18CPhoneStateMachine23SetSecurityModeObserverEP26MPhoneSecurityModeObserver @ 420 NONAME
-	_ZThn4_N18CPhoneStateMachine25HandlePhoneEngineMessageLEii @ 421 NONAME
-	_ZThn4_N18CPhoneStateMachine25SetSecurityMessageHandlerEP28MPhoneSecurityMessageHandler @ 422 NONAME
-	_ZThn4_N18CPhoneStateMachine5StateEv @ 423 NONAME
-	_ZThn4_N18CPhoneStateMachine9SetCallIdEi @ 424 NONAME
-	_ZThn4_N18CPhoneStateMachineD0Ev @ 425 NONAME
-	_ZThn4_N18CPhoneStateMachineD1Ev @ 426 NONAME
-	_ZThn4_N18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 427 NONAME
-	_ZThn4_N18CPhoneStateStartupD0Ev @ 428 NONAME
-	_ZThn4_N18CPhoneStateStartupD1Ev @ 429 NONAME
-	_ZThn4_N18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 430 NONAME
-	_ZThn4_N18CPhoneUIController13HandleMessageEii @ 431 NONAME
-	_ZThn4_N19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 432 NONAME
-	_ZThn4_N19CPhoneStateIncomingD0Ev @ 433 NONAME
-	_ZThn4_N19CPhoneStateIncomingD1Ev @ 434 NONAME
-	_ZThn4_N20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 435 NONAME
-	_ZThn4_N20CPhoneStateCallSetupD0Ev @ 436 NONAME
-	_ZThn4_N20CPhoneStateCallSetupD1Ev @ 437 NONAME
-	_ZThn8_N11CPhoneState14IsNoteVisibleLEv @ 438 NONAME
-	_ZThn8_N11CPhoneState15HandleKeyEventLERK9TKeyEvent10TEventCode @ 439 NONAME
-	_ZThn8_N11CPhoneState15HandleLongHashLEv @ 440 NONAME
-	_ZThn8_N11CPhoneState17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 441 NONAME
-	_ZThn8_N11CPhoneState18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 442 NONAME
-	_ZThn8_N11CPhoneState23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 443 NONAME
-	_ZThn8_N11CPhoneState24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 444 NONAME
-	_ZThn8_N11CPhoneState35IsAlphanumericSupportedAndCharInputERK9TKeyEvent @ 445 NONAME
-	_ZThn8_N11CPhoneStateD0Ev @ 446 NONAME
-	_ZThn8_N11CPhoneStateD1Ev @ 447 NONAME
-	_ZThn8_N15CPhoneStateIdle15HandleKeyEventLERK9TKeyEvent10TEventCode @ 448 NONAME
-	_ZThn8_N15CPhoneStateIdle17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 449 NONAME
-	_ZThn8_N15CPhoneStateIdleD0Ev @ 450 NONAME
-	_ZThn8_N15CPhoneStateIdleD1Ev @ 451 NONAME
-	_ZThn8_N17CPhoneStateInCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 452 NONAME
-	_ZThn8_N17CPhoneStateInCallD0Ev @ 453 NONAME
-	_ZThn8_N17CPhoneStateInCallD1Ev @ 454 NONAME
-	_ZThn8_N18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 455 NONAME
-	_ZThn8_N18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 456 NONAME
-	_ZThn8_N18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 457 NONAME
-	_ZThn8_N18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 458 NONAME
-	_ZThn8_N18CPhoneStateStartupD0Ev @ 459 NONAME
-	_ZThn8_N18CPhoneStateStartupD1Ev @ 460 NONAME
-	_ZThn8_N18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 461 NONAME
-	_ZThn8_N18CPhoneUIControllerD0Ev @ 462 NONAME
-	_ZThn8_N18CPhoneUIControllerD1Ev @ 463 NONAME
-	_ZThn8_N19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 464 NONAME
-	_ZThn8_N19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 465 NONAME
-	_ZThn8_N19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 466 NONAME
-	_ZThn8_N19CPhoneStateIncomingD0Ev @ 467 NONAME
-	_ZThn8_N19CPhoneStateIncomingD1Ev @ 468 NONAME
-	_ZThn8_N20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 469 NONAME
-	_ZThn8_N20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 470 NONAME
-	_ZThn8_N20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 471 NONAME
-	_ZThn8_N20CPhoneStateCallSetupD0Ev @ 472 NONAME
-	_ZThn8_N20CPhoneStateCallSetupD1Ev @ 473 NONAME
-	_ZThn8_NK11CPhoneState17IsMenuBarVisibleLEv @ 474 NONAME
+	_ZN15CPhoneStateIdle36DoStateSpecificCallSetUpDefinitionsLEv @ 131 NONAME
+	_ZN15CPhoneStateIdle5DialLERK7TDesC1616TPhoneNumberTypeNS_21TDialInitiationMethodE @ 132 NONAME
+	_ZN15CPhoneStateIdleC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 133 NONAME
+	_ZN15CPhoneStateIdleC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 134 NONAME
+	_ZN15CPhoneStateIdleD0Ev @ 135 NONAME
+	_ZN15CPhoneStateIdleD1Ev @ 136 NONAME
+	_ZN15CPhoneStateIdleD2Ev @ 137 NONAME
+	_ZN16CPhoneCbaManager10UpdateCbaLEi @ 138 NONAME
+	_ZN16CPhoneCbaManager18UpdateIncomingCbaLEi @ 139 NONAME
+	_ZN16CPhoneCbaManager7SetCbaLEi @ 140 NONAME
+	_ZN17CPhoneStateHandle17ViewCommandHandleEv @ 141 NONAME
+	_ZN17CPhoneStateHandle8InstanceEv @ 142 NONAME
+	_ZN17CPhoneStateInCall10ConstructLEv @ 143 NONAME
+	_ZN17CPhoneStateInCall10UpdateCbaLEi @ 144 NONAME
+	_ZN17CPhoneStateInCall11HandleIdleLEi @ 145 NONAME
+	_ZN17CPhoneStateInCall12OpenMenuBarLEv @ 146 NONAME
+	_ZN17CPhoneStateInCall14HandleCommandLEi @ 147 NONAME
+	_ZN17CPhoneStateInCall15CloseDtmfQueryLEv @ 148 NONAME
+	_ZN17CPhoneStateInCall15GetRingingCallLEv @ 149 NONAME
+	_ZN17CPhoneStateInCall16UpdateInCallCbaLEv @ 150 NONAME
+	_ZN17CPhoneStateInCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 151 NONAME
+	_ZN17CPhoneStateInCall18CallFetchedNumberLERK7TDesC16 @ 152 NONAME
+	_ZN17CPhoneStateInCall18CreateNumberEntryLEv @ 153 NONAME
+	_ZN17CPhoneStateInCall18IsVideoCallActiveLEv @ 154 NONAME
+	_ZN17CPhoneStateInCall19IsVideoCallRingingLEv @ 155 NONAME
+	_ZN17CPhoneStateInCall19LaunchNewCallQueryLEv @ 156 NONAME
+	_ZN17CPhoneStateInCall22HandlePropertyChangedLERK4TUidji @ 157 NONAME
+	_ZN17CPhoneStateInCall23DisconnectOutgoingCallLEv @ 158 NONAME
+	_ZN17CPhoneStateInCall25HandleNumberEntryClearedLEv @ 159 NONAME
+	_ZN17CPhoneStateInCall25HandlePhoneEngineMessageLEii @ 160 NONAME
+	_ZN17CPhoneStateInCall34PhoneNumberAvailableInPhoneEngineLEi @ 161 NONAME
+	_ZN17CPhoneStateInCallC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 162 NONAME
+	_ZN17CPhoneStateInCallC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 163 NONAME
+	_ZN17CPhoneStateInCallD0Ev @ 164 NONAME
+	_ZN17CPhoneStateInCallD1Ev @ 165 NONAME
+	_ZN17CPhoneStateInCallD2Ev @ 166 NONAME
+	_ZN18CPhoneStateMachine11ChangeStateEi @ 167 NONAME
+	_ZN18CPhoneStateMachine11PhoneEngineEv @ 168 NONAME
+	_ZN18CPhoneStateMachine12SecurityModeEv @ 169 NONAME
+	_ZN18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 170 NONAME
+	_ZN18CPhoneStateMachine15PhoneEngineInfoEv @ 171 NONAME
+	_ZN18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 172 NONAME
+	_ZN18CPhoneStateMachine22HandlePropertyChangedLERK4TUidji @ 173 NONAME
+	_ZN18CPhoneStateMachine22SendPhoneEngineMessageEi @ 174 NONAME
+	_ZN18CPhoneStateMachine23SetSecurityModeObserverEP26MPhoneSecurityModeObserver @ 175 NONAME
+	_ZN18CPhoneStateMachine25HandlePhoneEngineMessageLEii @ 176 NONAME
+	_ZN18CPhoneStateMachine25SetSecurityMessageHandlerEP28MPhoneSecurityMessageHandler @ 177 NONAME
+	_ZN18CPhoneStateMachine5StateEv @ 178 NONAME
+	_ZN18CPhoneStateMachine9SetCallIdEi @ 179 NONAME
+	_ZN18CPhoneStateMachineC1EP23MPhoneViewCommandHandle @ 180 NONAME
+	_ZN18CPhoneStateMachineC2EP23MPhoneViewCommandHandle @ 181 NONAME
+	_ZN18CPhoneStateMachineD0Ev @ 182 NONAME
+	_ZN18CPhoneStateMachineD1Ev @ 183 NONAME
+	_ZN18CPhoneStateMachineD2Ev @ 184 NONAME
+	_ZN18CPhoneStateStartup10ConstructLEv @ 185 NONAME
+	_ZN18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 186 NONAME
+	_ZN18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 187 NONAME
+	_ZN18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 188 NONAME
+	_ZN18CPhoneStateStartup19HandlePhoneStartupLEv @ 189 NONAME
+	_ZN18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 190 NONAME
+	_ZN18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 191 NONAME
+	_ZN18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 192 NONAME
+	_ZN18CPhoneStateStartup26HandlePEConstructionReadyLEi @ 193 NONAME
+	_ZN18CPhoneStateStartup4NewLEP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 194 NONAME
+	_ZN18CPhoneStateStartupC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 195 NONAME
+	_ZN18CPhoneStateStartupC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 196 NONAME
+	_ZN18CPhoneStateStartupD0Ev @ 197 NONAME
+	_ZN18CPhoneStateStartupD1Ev @ 198 NONAME
+	_ZN18CPhoneStateStartupD2Ev @ 199 NONAME
+	_ZN18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 200 NONAME
+	_ZN18CPhoneUIController13HandleMessageEii @ 201 NONAME
+	_ZN18CPhoneUIController14HandleCommandLEi @ 202 NONAME
+	_ZN18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 203 NONAME
+	_ZN18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 204 NONAME
+	_ZN18CPhoneUIController15ProcessCommandLEi @ 205 NONAME
+	_ZN18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 206 NONAME
+	_ZN18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 207 NONAME
+	_ZN18CPhoneUIController19HandlePhoneStartupLEv @ 208 NONAME
+	_ZN18CPhoneUIController22HandleForegroundEventLEi @ 209 NONAME
+	_ZN18CPhoneUIController24HandleEnvironmentChangeLEi @ 210 NONAME
+	_ZN18CPhoneUIController26HandleIdleForegroundEventLEv @ 211 NONAME
+	_ZN18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 212 NONAME
+	_ZN18CPhoneUIController27HandlePhoneForegroundEventLEv @ 213 NONAME
+	_ZN18CPhoneUIController4NewLER20CPhoneViewController @ 214 NONAME
+	_ZN18CPhoneUIControllerD0Ev @ 215 NONAME
+	_ZN18CPhoneUIControllerD1Ev @ 216 NONAME
+	_ZN18CPhoneUIControllerD2Ev @ 217 NONAME
+	_ZN19CPhoneStateIncoming10ConstructLEv @ 218 NONAME
+	_ZN19CPhoneStateIncoming14HandleCommandLEi @ 219 NONAME
+	_ZN19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 220 NONAME
+	_ZN19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 221 NONAME
+	_ZN19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 222 NONAME
+	_ZN19CPhoneStateIncoming23HandleAudioPlayStoppedLEv @ 223 NONAME
+	_ZN19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 224 NONAME
+	_ZN19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 225 NONAME
+	_ZN19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 226 NONAME
+	_ZN19CPhoneStateIncomingC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 227 NONAME
+	_ZN19CPhoneStateIncomingC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 228 NONAME
+	_ZN19CPhoneStateIncomingD0Ev @ 229 NONAME
+	_ZN19CPhoneStateIncomingD1Ev @ 230 NONAME
+	_ZN19CPhoneStateIncomingD2Ev @ 231 NONAME
+	_ZN20CPhoneReconnectQuery19ShowReconnectQueryLEi @ 232 NONAME
+	_ZN20CPhoneReconnectQuery9InstanceLEv @ 233 NONAME
+	_ZN20CPhoneStateCallSetup10ConstructLEv @ 234 NONAME
+	_ZN20CPhoneStateCallSetup10UpdateCbaLEi @ 235 NONAME
+	_ZN20CPhoneStateCallSetup12OpenMenuBarLEv @ 236 NONAME
+	_ZN20CPhoneStateCallSetup14HandleCommandLEi @ 237 NONAME
+	_ZN20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 238 NONAME
+	_ZN20CPhoneStateCallSetup16UpdateInCallCbaLEv @ 239 NONAME
+	_ZN20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 240 NONAME
+	_ZN20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 241 NONAME
+	_ZN20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 242 NONAME
+	_ZN20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 243 NONAME
+	_ZN20CPhoneStateCallSetupC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 244 NONAME
+	_ZN20CPhoneStateCallSetupC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 245 NONAME
+	_ZN20CPhoneStateCallSetupD0Ev @ 246 NONAME
+	_ZN20CPhoneStateCallSetupD1Ev @ 247 NONAME
+	_ZN20CPhoneStateCallSetupD2Ev @ 248 NONAME
+	_ZNK11CPhoneState11IsKeyLockOnEv @ 249 NONAME
+	_ZNK11CPhoneState12IsAutoLockOnEv @ 250 NONAME
+	_ZNK11CPhoneState14IsSwivelClosedEv @ 251 NONAME
+	_ZNK11CPhoneState17IsMenuBarVisibleLEv @ 252 NONAME
+	_ZNK11CPhoneState18TopAppIsDisplayedLEv @ 253 NONAME
+	_ZNK11CPhoneState20IsDTMFEditorVisibleLEv @ 254 NONAME
+	_ZNK11CPhoneState25IsOnScreenDialerSupportedEv @ 255 NONAME
+	_ZNK11CPhoneState26IsCustomizedDialerVisibleLEv @ 256 NONAME
+	_ZNK11CPhoneState26IsDialingExtensionInFocusLEv @ 257 NONAME
+	_ZNK11CPhoneState28NeedToReturnToForegroundAppLEv @ 258 NONAME
+	_ZNK11CPhoneState8EikonEnvEv @ 259 NONAME
+	_ZNK11CPhoneState8SimStateEv @ 260 NONAME
+	_ZNK15CPhoneStateIdle17IsSpeedDialNumberERK7TDesC16 @ 261 NONAME
+	_ZNK18CPhoneStateMachine8EikonEnvEv @ 262 NONAME
+	_ZTI11CPhoneState @ 263 NONAME
+	_ZTI15CPhoneStateIdle @ 264 NONAME
+	_ZTI17CPhoneStateHandle @ 265 NONAME
+	_ZTI17CPhoneStateInCall @ 266 NONAME
+	_ZTI18CPhoneStateMachine @ 267 NONAME
+	_ZTI18CPhoneStateStartup @ 268 NONAME
+	_ZTI18CPhoneUIController @ 269 NONAME
+	_ZTI19CPhoneStateIncoming @ 270 NONAME
+	_ZTI20CPhoneReconnectQuery @ 271 NONAME
+	_ZTI20CPhoneStateCallSetup @ 272 NONAME
+	_ZTI23CPhoneDtmfWaitCharTimer @ 273 NONAME
+	_ZTI23CPhoneKeyEventForwarder @ 274 NONAME
+	_ZTI24CPhoneSystemEventHandler @ 275 NONAME
+	_ZTI26CPhoneRemoteControlHandler @ 276 NONAME
+	_ZTI27CPhoneBtaaDisconnectHandler @ 277 NONAME
+	_ZTV11CPhoneState @ 278 NONAME
+	_ZTV15CPhoneStateIdle @ 279 NONAME
+	_ZTV17CPhoneStateHandle @ 280 NONAME
+	_ZTV17CPhoneStateInCall @ 281 NONAME
+	_ZTV18CPhoneStateMachine @ 282 NONAME
+	_ZTV18CPhoneStateStartup @ 283 NONAME
+	_ZTV18CPhoneUIController @ 284 NONAME
+	_ZTV19CPhoneStateIncoming @ 285 NONAME
+	_ZTV20CPhoneReconnectQuery @ 286 NONAME
+	_ZTV20CPhoneStateCallSetup @ 287 NONAME
+	_ZTV23CPhoneDtmfWaitCharTimer @ 288 NONAME
+	_ZTV23CPhoneKeyEventForwarder @ 289 NONAME
+	_ZTV24CPhoneSystemEventHandler @ 290 NONAME
+	_ZTV26CPhoneRemoteControlHandler @ 291 NONAME
+	_ZTV27CPhoneBtaaDisconnectHandler @ 292 NONAME
+	_ZThn12_N11CPhoneState15DynInitMenuBarLEiP11CEikMenuBar @ 293 NONAME
+	_ZThn12_N11CPhoneState16DynInitMenuPaneLEiP12CEikMenuPane @ 294 NONAME
+	_ZThn12_N11CPhoneState18HandleSystemEventLERK8TWsEvent @ 295 NONAME
+	_ZThn12_N11CPhoneState19HandleCenRepChangeLERK4TUidj @ 296 NONAME
+	_ZThn12_N11CPhoneState19HandlePhoneStartupLEv @ 297 NONAME
+	_ZThn12_N11CPhoneState22HandleForegroundEventLEi @ 298 NONAME
+	_ZThn12_N11CPhoneState22HandlePropertyChangedLERK4TUidji @ 299 NONAME
+	_ZThn12_N11CPhoneState24HandleEnvironmentChangeLEi @ 300 NONAME
+	_ZThn12_N11CPhoneState26HandleIdleForegroundEventLEv @ 301 NONAME
+	_ZThn12_N11CPhoneState26HandlePhoneFocusLostEventLEv @ 302 NONAME
+	_ZThn12_N11CPhoneState27HandlePhoneForegroundEventLEv @ 303 NONAME
+	_ZThn12_N11CPhoneStateD0Ev @ 304 NONAME
+	_ZThn12_N11CPhoneStateD1Ev @ 305 NONAME
+	_ZThn12_N15CPhoneStateIdle26HandleIdleForegroundEventLEv @ 306 NONAME
+	_ZThn12_N15CPhoneStateIdle26HandlePhoneFocusLostEventLEv @ 307 NONAME
+	_ZThn12_N15CPhoneStateIdle27HandlePhoneForegroundEventLEv @ 308 NONAME
+	_ZThn12_N15CPhoneStateIdleD0Ev @ 309 NONAME
+	_ZThn12_N15CPhoneStateIdleD1Ev @ 310 NONAME
+	_ZThn12_N17CPhoneStateInCall22HandlePropertyChangedLERK4TUidji @ 311 NONAME
+	_ZThn12_N17CPhoneStateInCallD0Ev @ 312 NONAME
+	_ZThn12_N17CPhoneStateInCallD1Ev @ 313 NONAME
+	_ZThn12_N18CPhoneStateStartup19HandlePhoneStartupLEv @ 314 NONAME
+	_ZThn12_N18CPhoneStateStartup26HandleIdleForegroundEventLEv @ 315 NONAME
+	_ZThn12_N18CPhoneStateStartupD0Ev @ 316 NONAME
+	_ZThn12_N18CPhoneStateStartupD1Ev @ 317 NONAME
+	_ZThn12_N18CPhoneUIController15DynInitMenuBarLEiP11CEikMenuBar @ 318 NONAME
+	_ZThn12_N18CPhoneUIController16DynInitMenuPaneLEiP12CEikMenuPane @ 319 NONAME
+	_ZThn12_N18CPhoneUIController18HandleSystemEventLERK8TWsEvent @ 320 NONAME
+	_ZThn12_N18CPhoneUIController19HandlePhoneStartupLEv @ 321 NONAME
+	_ZThn12_N18CPhoneUIController22HandleForegroundEventLEi @ 322 NONAME
+	_ZThn12_N18CPhoneUIController24HandleEnvironmentChangeLEi @ 323 NONAME
+	_ZThn12_N18CPhoneUIController26HandleIdleForegroundEventLEv @ 324 NONAME
+	_ZThn12_N18CPhoneUIController26HandlePhoneFocusLostEventLEv @ 325 NONAME
+	_ZThn12_N18CPhoneUIController27HandlePhoneForegroundEventLEv @ 326 NONAME
+	_ZThn12_N18CPhoneUIControllerD0Ev @ 327 NONAME
+	_ZThn12_N18CPhoneUIControllerD1Ev @ 328 NONAME
+	_ZThn12_N19CPhoneStateIncoming16DynInitMenuPaneLEiP12CEikMenuPane @ 329 NONAME
+	_ZThn12_N19CPhoneStateIncomingD0Ev @ 330 NONAME
+	_ZThn12_N19CPhoneStateIncomingD1Ev @ 331 NONAME
+	_ZThn12_N20CPhoneStateCallSetupD0Ev @ 332 NONAME
+	_ZThn12_N20CPhoneStateCallSetupD1Ev @ 333 NONAME
+	_ZThn16_N11CPhoneState14HandleCommandLEi @ 334 NONAME
+	_ZThn16_N11CPhoneState15ProcessCommandLEi @ 335 NONAME
+	_ZThn16_N11CPhoneStateD0Ev @ 336 NONAME
+	_ZThn16_N11CPhoneStateD1Ev @ 337 NONAME
+	_ZThn16_N15CPhoneStateIdle14HandleCommandLEi @ 338 NONAME
+	_ZThn16_N15CPhoneStateIdle15ProcessCommandLEi @ 339 NONAME
+	_ZThn16_N15CPhoneStateIdleD0Ev @ 340 NONAME
+	_ZThn16_N15CPhoneStateIdleD1Ev @ 341 NONAME
+	_ZThn16_N17CPhoneStateInCall14HandleCommandLEi @ 342 NONAME
+	_ZThn16_N17CPhoneStateInCallD0Ev @ 343 NONAME
+	_ZThn16_N17CPhoneStateInCallD1Ev @ 344 NONAME
+	_ZThn16_N18CPhoneStateStartupD0Ev @ 345 NONAME
+	_ZThn16_N18CPhoneStateStartupD1Ev @ 346 NONAME
+	_ZThn16_N18CPhoneUIController14HandleCommandLEi @ 347 NONAME
+	_ZThn16_N18CPhoneUIController15ProcessCommandLEi @ 348 NONAME
+	_ZThn16_N18CPhoneUIControllerD0Ev @ 349 NONAME
+	_ZThn16_N18CPhoneUIControllerD1Ev @ 350 NONAME
+	_ZThn16_N19CPhoneStateIncoming14HandleCommandLEi @ 351 NONAME
+	_ZThn16_N19CPhoneStateIncomingD0Ev @ 352 NONAME
+	_ZThn16_N19CPhoneStateIncomingD1Ev @ 353 NONAME
+	_ZThn16_N20CPhoneStateCallSetup14HandleCommandLEi @ 354 NONAME
+	_ZThn16_N20CPhoneStateCallSetupD0Ev @ 355 NONAME
+	_ZThn16_N20CPhoneStateCallSetupD1Ev @ 356 NONAME
+	_ZThn20_N11CPhoneState20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 357 NONAME
+	_ZThn20_N11CPhoneStateD0Ev @ 358 NONAME
+	_ZThn20_N11CPhoneStateD1Ev @ 359 NONAME
+	_ZThn20_N15CPhoneStateIdle20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 360 NONAME
+	_ZThn20_N15CPhoneStateIdleD0Ev @ 361 NONAME
+	_ZThn20_N15CPhoneStateIdleD1Ev @ 362 NONAME
+	_ZThn20_N17CPhoneStateInCallD0Ev @ 363 NONAME
+	_ZThn20_N17CPhoneStateInCallD1Ev @ 364 NONAME
+	_ZThn20_N18CPhoneStateStartupD0Ev @ 365 NONAME
+	_ZThn20_N18CPhoneStateStartupD1Ev @ 366 NONAME
+	_ZThn20_N19CPhoneStateIncomingD0Ev @ 367 NONAME
+	_ZThn20_N19CPhoneStateIncomingD1Ev @ 368 NONAME
+	_ZThn20_N20CPhoneStateCallSetupD0Ev @ 369 NONAME
+	_ZThn20_N20CPhoneStateCallSetupD1Ev @ 370 NONAME
+	_ZThn24_N11CPhoneState25HandleNumberEntryClearedLEv @ 371 NONAME
+	_ZThn24_N15CPhoneStateIdle25HandleNumberEntryClearedLEv @ 372 NONAME
+	_ZThn24_N17CPhoneStateInCall25HandleNumberEntryClearedLEv @ 373 NONAME
+	_ZThn24_N19CPhoneStateIncoming25HandleNumberEntryClearedLEv @ 374 NONAME
+	_ZThn24_N20CPhoneStateCallSetup25HandleNumberEntryClearedLEv @ 375 NONAME
+	_ZThn28_N11CPhoneState23HandleNumberEntryEditedEv @ 376 NONAME
+	_ZThn28_N11CPhoneStateD0Ev @ 377 NONAME
+	_ZThn28_N11CPhoneStateD1Ev @ 378 NONAME
+	_ZThn28_N15CPhoneStateIdleD0Ev @ 379 NONAME
+	_ZThn28_N15CPhoneStateIdleD1Ev @ 380 NONAME
+	_ZThn28_N17CPhoneStateInCallD0Ev @ 381 NONAME
+	_ZThn28_N17CPhoneStateInCallD1Ev @ 382 NONAME
+	_ZThn28_N18CPhoneStateStartupD0Ev @ 383 NONAME
+	_ZThn28_N18CPhoneStateStartupD1Ev @ 384 NONAME
+	_ZThn28_N19CPhoneStateIncomingD0Ev @ 385 NONAME
+	_ZThn28_N19CPhoneStateIncomingD1Ev @ 386 NONAME
+	_ZThn28_N20CPhoneStateCallSetupD0Ev @ 387 NONAME
+	_ZThn28_N20CPhoneStateCallSetupD1Ev @ 388 NONAME
+	_ZThn32_NK11CPhoneState11IsKeyLockOnEv @ 389 NONAME
+	_ZThn32_NK11CPhoneState12IsAutoLockOnEv @ 390 NONAME
+	_ZThn36_N11CPhoneState11SetEikonEnvEP9CEikonEnv @ 391 NONAME
+	_ZThn4_N11CPhoneState12HandleErrorLERK12TPEErrorInfo @ 392 NONAME
+	_ZThn4_N11CPhoneState25HandlePhoneEngineMessageLEii @ 393 NONAME
+	_ZThn4_N11CPhoneStateD0Ev @ 394 NONAME
+	_ZThn4_N11CPhoneStateD1Ev @ 395 NONAME
+	_ZThn4_N15CPhoneStateIdle12HandleErrorLERK12TPEErrorInfo @ 396 NONAME
+	_ZThn4_N15CPhoneStateIdle25HandlePhoneEngineMessageLEii @ 397 NONAME
+	_ZThn4_N15CPhoneStateIdleD0Ev @ 398 NONAME
+	_ZThn4_N15CPhoneStateIdleD1Ev @ 399 NONAME
+	_ZThn4_N17CPhoneStateInCall25HandlePhoneEngineMessageLEii @ 400 NONAME
+	_ZThn4_N17CPhoneStateInCallD0Ev @ 401 NONAME
+	_ZThn4_N17CPhoneStateInCallD1Ev @ 402 NONAME
+	_ZThn4_N18CPhoneStateMachine11ChangeStateEi @ 403 NONAME
+	_ZThn4_N18CPhoneStateMachine11PhoneEngineEv @ 404 NONAME
+	_ZThn4_N18CPhoneStateMachine12SecurityModeEv @ 405 NONAME
+	_ZThn4_N18CPhoneStateMachine14SetPhoneEngineEP13MPEPhoneModel @ 406 NONAME
+	_ZThn4_N18CPhoneStateMachine15PhoneEngineInfoEv @ 407 NONAME
+	_ZThn4_N18CPhoneStateMachine18CreatePhoneEngineLER14MEngineMonitor @ 408 NONAME
+	_ZThn4_N18CPhoneStateMachine22HandlePropertyChangedLERK4TUidji @ 409 NONAME
+	_ZThn4_N18CPhoneStateMachine22SendPhoneEngineMessageEi @ 410 NONAME
+	_ZThn4_N18CPhoneStateMachine23SetSecurityModeObserverEP26MPhoneSecurityModeObserver @ 411 NONAME
+	_ZThn4_N18CPhoneStateMachine25HandlePhoneEngineMessageLEii @ 412 NONAME
+	_ZThn4_N18CPhoneStateMachine25SetSecurityMessageHandlerEP28MPhoneSecurityMessageHandler @ 413 NONAME
+	_ZThn4_N18CPhoneStateMachine5StateEv @ 414 NONAME
+	_ZThn4_N18CPhoneStateMachine9SetCallIdEi @ 415 NONAME
+	_ZThn4_N18CPhoneStateMachineD0Ev @ 416 NONAME
+	_ZThn4_N18CPhoneStateMachineD1Ev @ 417 NONAME
+	_ZThn4_N18CPhoneStateStartup25HandlePhoneEngineMessageLEii @ 418 NONAME
+	_ZThn4_N18CPhoneStateStartupD0Ev @ 419 NONAME
+	_ZThn4_N18CPhoneStateStartupD1Ev @ 420 NONAME
+	_ZThn4_N18CPhoneUIController11HandleErrorERK12TPEErrorInfo @ 421 NONAME
+	_ZThn4_N18CPhoneUIController13HandleMessageEii @ 422 NONAME
+	_ZThn4_N19CPhoneStateIncoming25HandlePhoneEngineMessageLEii @ 423 NONAME
+	_ZThn4_N19CPhoneStateIncomingD0Ev @ 424 NONAME
+	_ZThn4_N19CPhoneStateIncomingD1Ev @ 425 NONAME
+	_ZThn4_N20CPhoneStateCallSetup25HandlePhoneEngineMessageLEii @ 426 NONAME
+	_ZThn4_N20CPhoneStateCallSetupD0Ev @ 427 NONAME
+	_ZThn4_N20CPhoneStateCallSetupD1Ev @ 428 NONAME
+	_ZThn8_N11CPhoneState14IsNoteVisibleLEv @ 429 NONAME
+	_ZThn8_N11CPhoneState15HandleKeyEventLERK9TKeyEvent10TEventCode @ 430 NONAME
+	_ZThn8_N11CPhoneState15HandleLongHashLEv @ 431 NONAME
+	_ZThn8_N11CPhoneState17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 432 NONAME
+	_ZThn8_N11CPhoneState18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 433 NONAME
+	_ZThn8_N11CPhoneState23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 434 NONAME
+	_ZThn8_N11CPhoneState24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 435 NONAME
+	_ZThn8_N11CPhoneState35IsAlphanumericSupportedAndCharInputERK9TKeyEvent @ 436 NONAME
+	_ZThn8_N11CPhoneStateD0Ev @ 437 NONAME
+	_ZThn8_N11CPhoneStateD1Ev @ 438 NONAME
+	_ZThn8_N15CPhoneStateIdle15HandleKeyEventLERK9TKeyEvent10TEventCode @ 439 NONAME
+	_ZThn8_N15CPhoneStateIdle17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 440 NONAME
+	_ZThn8_N15CPhoneStateIdleD0Ev @ 441 NONAME
+	_ZThn8_N15CPhoneStateIdleD1Ev @ 442 NONAME
+	_ZThn8_N17CPhoneStateInCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 443 NONAME
+	_ZThn8_N17CPhoneStateInCallD0Ev @ 444 NONAME
+	_ZThn8_N17CPhoneStateInCallD1Ev @ 445 NONAME
+	_ZThn8_N18CPhoneStateStartup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 446 NONAME
+	_ZThn8_N18CPhoneStateStartup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 447 NONAME
+	_ZThn8_N18CPhoneStateStartup18HandleDtmfKeyToneLERK9TKeyEvent10TEventCode @ 448 NONAME
+	_ZThn8_N18CPhoneStateStartup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 449 NONAME
+	_ZThn8_N18CPhoneStateStartupD0Ev @ 450 NONAME
+	_ZThn8_N18CPhoneStateStartupD1Ev @ 451 NONAME
+	_ZThn8_N18CPhoneUIController15HandleKeyEventLERK9TKeyEvent10TEventCode @ 452 NONAME
+	_ZThn8_N18CPhoneUIControllerD0Ev @ 453 NONAME
+	_ZThn8_N18CPhoneUIControllerD1Ev @ 454 NONAME
+	_ZThn8_N19CPhoneStateIncoming15HandleKeyEventLERK9TKeyEvent10TEventCode @ 455 NONAME
+	_ZThn8_N19CPhoneStateIncoming17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 456 NONAME
+	_ZThn8_N19CPhoneStateIncoming23HandleKeyPressDurationLE8TKeyCode25TTimeIntervalMicroSeconds @ 457 NONAME
+	_ZThn8_N19CPhoneStateIncomingD0Ev @ 458 NONAME
+	_ZThn8_N19CPhoneStateIncomingD1Ev @ 459 NONAME
+	_ZThn8_N20CPhoneStateCallSetup15HandleKeyEventLERK9TKeyEvent10TEventCode @ 460 NONAME
+	_ZThn8_N20CPhoneStateCallSetup17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 461 NONAME
+	_ZThn8_N20CPhoneStateCallSetup24HandleCreateNumberEntryLERK9TKeyEvent10TEventCode @ 462 NONAME
+	_ZThn8_N20CPhoneStateCallSetupD0Ev @ 463 NONAME
+	_ZThn8_N20CPhoneStateCallSetupD1Ev @ 464 NONAME
+	_ZThn8_NK11CPhoneState17IsMenuBarVisibleLEv @ 465 NONAME
+	_ZN11CPhoneState37SetNeedToReturnToForegroundAppStatusLEi @ 466 NONAME
 
--- a/phoneapp/phoneuicontrol/inc/cphonecallheadermanager.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/inc/cphonecallheadermanager.h	Thu Sep 09 18:09:57 2010 +0100
@@ -86,12 +86,6 @@
         */
         void DisplayHeaderForOutgoingCallL(
                 const TInt aCallId );
-        
-        /**
-        * Display initializing call header (phone number isn't initially
-        * displayed)
-        */
-        void DisplayHeaderForInitializingCallL( TInt aCallId );
        
         /**
         * Sets the call header type used in the call bubble.
@@ -106,14 +100,6 @@
         CBubbleManager::TPhoneCallTypeFlags CallHeaderType() const;
                 
         /**
-        * Sets divert indication to call header if necessary
-        * @param aCallId - Call Id.
-        * @param aCallHeaderData - Call header where indication will be set
-        *                          if needed.
-        */
-        void SetDivertIndication( const TBool aDivertIndication );
-        
-        /**
         * Checks if call is waiting, returns ETrue if call is waiting
         * otherwise EFalse.
         * @param aCallId, call id.
--- a/phoneapp/phoneuicontrol/inc/cphonekeyeventforwarder.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/inc/cphonekeyeventforwarder.h	Thu Sep 09 18:09:57 2010 +0100
@@ -186,7 +186,7 @@
         /**
         * Convert key code
         */   
-        void ConvertKeyCode( TUint& aCode, const TKeyEvent& aKeyEvent ); 
+        void ConvertKeyCodeL( TUint& aCode, const TKeyEvent& aKeyEvent ); 
 
         /**
         * Handle key long press
@@ -197,7 +197,7 @@
          * Checks from the statemachine is the given keyevent 
          * one which produces a legal character in the current mode.
          */
-        TBool IsKeyAllowed( const TKeyEvent& aKeyEvent );
+        TBool IsKeyAllowedL( const TKeyEvent& aKeyEvent );
                 
         /**
          * Checks is the given key special character (*, 0, # ) from half-qwerty
@@ -297,6 +297,13 @@
          */     
         TBool iVirtualKeyBoardOpen;
         
+        
+        /**
+         * Indicates if menu or dialog was displayed
+         * when the key was pressed down.
+         */
+        TBool iDisplayingMenuOrDialogOnEventKeyDown;
+        
         /**
          * Application menu.
          * Not owned.
--- a/phoneapp/phoneuicontrol/inc/cphonestate.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/inc/cphonestate.h	Thu Sep 09 18:09:57 2010 +0100
@@ -25,6 +25,7 @@
 #include <remconcoreapitargetobserver.h>
 #include <MProfileEngine.h>
 #include <bmbubblemanager.h>
+#include <eikenv.h>
 
 #include "mphonestate.h"
 #include "mphoneviewcommandhandle.h"
@@ -42,6 +43,8 @@
 enum TStateTransEffectType
     {
     ENoneType,
+    ECallUiAppear,
+    ECallUiDisappear,
     // These effect types can be used only when NE is opened/closed
     // when some other app than phone is visible on the foreground/
     // background.
@@ -232,15 +235,6 @@
             TRemConCoreApiButtonAction aButtonAct);
 
         /**
-        * Setter for divert indication showing in bubble.
-        * @param aDivertIndication ETrue to show divert indication,
-        *          EFalse to not. Usually setting EFalse isn't necessary
-        *         as it's a default value in bubble creation.
-        */
-        IMPORT_C virtual void SetDivertIndication(
-            const TBool aDivertIndication );
-
-        /**
         * Handles Long hash key press
         */
         IMPORT_C void HandleLongHashL();
@@ -336,6 +330,24 @@
         * @return boolean value indicating if dialer extension is in focus
         */
         IMPORT_C TBool IsDialingExtensionInFocusL() const;
+        
+        /**
+        * At moment does nothing in CPhoneState, only causes function call
+        * to inherinting classes.
+        */ 
+        IMPORT_C virtual void DoStateSpecificCallSetUpDefinitionsL();
+        
+        /**
+        * Getter for CEikonEnv to avoid use of static system calls
+        * @return CEikonEnv handle
+        */
+        IMPORT_C CEikonEnv* EikonEnv() const;
+        
+        /**
+        * Setter for CEikonEnv to avoid use of static system calls
+        * @param CEikonEnv handle
+        */
+        IMPORT_C virtual void SetEikonEnv( CEikonEnv* aEnv );
 
     public: // NumberEntry functions.
 
@@ -356,6 +368,11 @@
         * @return boolean value indicating that number entry is visible
         */
         IMPORT_C TBool IsNumberEntryVisibleL();
+        
+        /**
+        * Close and and clear number entry.
+        */
+        IMPORT_C void CloseClearNumberEntryAndLoadEffectL( TStateTransEffectType aType );
 
     protected:
 
@@ -434,12 +451,6 @@
         * @param aCallid call id
         */
         IMPORT_C void DisplayHeaderForOutgoingCallL( TInt aCallId );
-        
-        /**
-        * Display initializing call header (phone number isn't initially
-        * displayed)
-        */
-        IMPORT_C void DisplayHeaderForInitializingCallL( TInt aCallId );
 
         /**
         * Update Single Active Call
@@ -626,14 +637,6 @@
         */
         IMPORT_C virtual void OnlyHashInNumberEntryL();
 
-        /*
-        * Checks if it's ok to use aType effect in this state.
-        *
-        * @param aType effect to be checked
-        * @return true if aType effect can be used
-        */
-        IMPORT_C virtual TBool CanTransEffectTypeBeUsed( TStateTransEffectType aType );
-
         /**
         * Informs view that UI is being updated (call bubble or number editor).
         * EndUiUpdate() must be called when update is done.
@@ -740,6 +743,20 @@
         IMPORT_C TBool ForwardPEMessageToPhoneCustomizationL(
             const TInt aMessage,
             TInt aCallId );
+        
+        /**
+        * Sets up all call setup to display.
+        * @param aCallId - call id to set up
+        */ 
+         IMPORT_C void DisplayCallSetupL( TInt aCallId );
+         
+         /**
+          * Sets the flag wether the foreground application
+          * needs to be brought foreground after the phone
+          * goes idle 
+          */
+         IMPORT_C void SetNeedToReturnToForegroundAppStatusL( 
+             TBool aNeedToReturn );
 
     protected: // NumberEntry functions.
 
@@ -842,6 +859,11 @@
          */
          IMPORT_C void SetToolbarButtonHandsetEnabled();
 
+         /**
+         * Sets Bluetooth handsfree button enabled.
+         */
+         IMPORT_C void SetToolbarButtonBTHFEnabled();  
+         
     protected:
 
        /**
@@ -1167,7 +1189,7 @@
 
         // Internal variable for EikonEnv to avoid
         // use of static system calls
-        CEikonEnv& iEnv;
+        CEikonEnv* iEnv; // Not owned
 
         // Call header manager.
         CPhoneCallHeaderManager* iCallHeaderManager;
--- a/phoneapp/phoneuicontrol/inc/cphonestateidle.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/inc/cphonestateidle.h	Thu Sep 09 18:09:57 2010 +0100
@@ -101,13 +101,18 @@
         IMPORT_C virtual void HandlePhoneFocusLostEventL();
         
         /**
+        * This function is called from displaycallsetup and 
+        * the purpose is to do state specific things for callsetup.
+        */
+        IMPORT_C virtual void DoStateSpecificCallSetUpDefinitionsL();
+		
+		/**
         * HandleError
         * Implements error handling framework
         * @param aErrorInfo: the error info
         */
         IMPORT_C virtual void HandleErrorL( 
                 const TPEErrorInfo& aErrorInfo );
-
     protected:
 
         /** 
@@ -126,12 +131,6 @@
         IMPORT_C void DisplayIncomingCallL( TInt aCallId );
 
         /**
-        * Display Call Setup
-        * @param aCallid call id
-        */
-        IMPORT_C void DisplayCallSetupL( TInt aCallId );
-
-        /**
         * By default EPOC constructor is private.
         */
         IMPORT_C CPhoneStateIdle( 
@@ -171,14 +170,6 @@
         * in number entry.
         */
         IMPORT_C virtual void OnlyHashInNumberEntryL();
-        
-        /*
-        * Checks if it's ok to use aType effect in this state.
-        *
-        * @param aType effect to be checked
-        * @return true if aType effect can be used
-        */
-        IMPORT_C virtual TBool CanTransEffectTypeBeUsed( TStateTransEffectType aType );
 
         /**
         * A message handling function for EPEMessageDialling
@@ -221,14 +212,20 @@
     protected:
         
         /**
-        * Sets iBubbleInitialized value.
+        * Sets iCallInitialized value.
         */
-        void SetBubbleInitialized( TBool aValue );
+        void SetCallInitialized( TBool aValue );
          
         /**
-        * Gets iBubbleInitialized value.
+        * Gets iCallInitialized value.
         */
-        TBool IsBubbleInitialized();
+        TBool IsCallInitialized();
+        
+        /**
+        * Removes NE and sets idle to background, for more detailed
+        * information check comments from implementation.
+        */
+        void RemoveNumberEntryAndSetIdleToBackgroundIfNeededL();
         
     private: // New functions
         
@@ -317,32 +314,15 @@
          TInt GetNumberAcqMenuIdL();
          
          /**
-          * Launches initializing call bubble.
-          */
-         void DisplayInitializingCallL( TInt aCallId );
-         
-         /**
-          * Updates existing call bubble.
-          */
-         TBool UpdateCallBubbleL( TInt aCallId );
-         
-         /**
-          * Handles initialized call error.
-          */
-         void HandleInitializingCallErrorL( TInt aCallId );
-         
-         /**
           * Changes state to aState and resets iBubbleInitialized
           * value to false.
           */
          void ChangeTo( TInt aState );
          
     private:
-         // indicates that incomming call is arrived.
-         TBool iIncommingCall;
         
-         // Indicates call bubble is already initiliazed.
-         TBool iBubbleInitialized;
+         // True if call initiliazed.
+         TBool iCallInitialized;
     };
 
 #endif // CPHONESTATEIDLE
--- a/phoneapp/phoneuicontrol/inc/cphonestatemachine.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/inc/cphonestatemachine.h	Thu Sep 09 18:09:57 2010 +0100
@@ -142,6 +142,13 @@
          IMPORT_C void HandlePropertyChangedL(const TUid& aCategory,
          	const TUint aKey,
          	const TInt aValue );
+         
+         /**
+           * Getter for CEikonEnv to avoid use of static system calls
+           * @return CEikonEnv handle
+           */
+          IMPORT_C CEikonEnv* EikonEnv() const;
+         
 
     protected:
 
@@ -193,6 +200,11 @@
          */
         MPhoneSecurityMessageHandler* iSecurityMessageHandler;
         
+        /** Internal variable for EikonEnv to avoid use of static system calls
+         * Not own.
+         */
+        CEikonEnv* iEnv;
+        
     };
 
 #endif      // CPHONESTATEMACHINE_H
--- a/phoneapp/phoneuicontrol/inc/mphonedivertif.h	Tue Aug 17 18:45:21 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*     Interface for manipulating divert information.
-*
-*/
-
-
-#ifndef MPHONEDIVERTIF_H
-#define MPHONEDIVERTIF_H
-
-//  INCLUDES
-#include <e32def.h>
-
-// CLASS DECLARATION
-
-/**
-*  Handle all possible messages from Phone Engine
-*/
-class MPhoneDivertIF
-    {
-    public:
-        
-        /**
-        * Destructor.
-        */
-        virtual ~MPhoneDivertIF() {};
-
-        /**
-        * Setter for divert indication showing in bubble.
-        * @param aDivertIndication ETrue to show divert indication,
-        * 		 EFalse to not. Usually setting EFalse isn't necessary
-        *		 as it's a default value in bubble creation.
-        */
-        virtual void SetDivertIndication(
-            const TBool aDivertIndication ) = 0;            
-    };
-
-#endif      // MPHONEDIVERTIF_H   
-            
-// End of File
--- a/phoneapp/phoneuicontrol/inc/mphonestate.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/inc/mphonestate.h	Thu Sep 09 18:09:57 2010 +0100
@@ -26,10 +26,10 @@
 #include "mphonesystemevents.h"
 #include "mphonemenuandcbaevents.h"
 #include "mphoneremotecontrolevents.h"
-#include "mphonedivertif.h"
 #include "mphoneneclearedhandler.h"
 #include "mphonenumberentryevents.h"
 #include "mphonelockinfo.h"
+#include "mphonestateproperties.h"
 
 // FORWARD DECLARATIONS
 
@@ -45,10 +45,10 @@
     public MPhoneSystemEvents,
     public MPhoneMenuAndCbaEvents,
     public MPhoneRemoteControlEvents,
-    public MPhoneDivertIF,
     public MPhoneNEClearedHandler,
     public MPhoneNumberEntryEvents,
-    public MPhoneLockInfo
+    public MPhoneLockInfo,
+    public MPhoneStateProperties
     {
     public:
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/inc/mphonestateproperties.h	Thu Sep 09 18:09:57 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors: Nokia
+*
+* Description: An abstract class for accessing generic state properties
+*
+*/
+
+
+#ifndef MPHONESTATEPROPERTIES_H
+#define MPHONESTATEPROPERTIES_H
+
+// INCLUDES
+#include <e32cmn.h>
+#include <eikenv.h>
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+*  An abstract class for accessing generic state properties
+*
+*/
+class MPhoneStateProperties
+    {
+    public:
+
+        /**
+        * Sets CEikonEnv handle to minimize static system calls
+        * @param CEikonEnv handle
+        */
+        virtual void SetEikonEnv( CEikonEnv* aEnv ) = 0;
+        
+    };
+
+#endif // MPHONESTATEPROPERTIES_H
+            
+// End of File
--- a/phoneapp/phoneuicontrol/inc/tphonecallheaderparam.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/inc/tphonecallheaderparam.h	Thu Sep 09 18:09:57 2010 +0100
@@ -70,16 +70,6 @@
         void SetOutgoingCallHeaderParamsL(
                 const TInt aCallId,
                 TPhoneCmdParamCallHeaderData* aCallHeaderData );
-        
-       /**
-       * Sets info to initializing call header.
-       * @param aCallId - call id.
-       * @param aCallHeaderData - Call header parameter into which the text/picture
-       *                          parameters will be set.
-       */
-        void SetIniticalizingCallHeaderParamsL(
-                const TInt aCallId,
-                TPhoneCmdParamCallHeaderData* aCallHeaderData );
 				
         /**
         * Updates call header info. 
@@ -109,14 +99,6 @@
         * of call bubble.
         */
         CBubbleManager::TPhoneCallTypeFlags CallHeaderType() const;
-            
-        /**
-        * Setter for divert indication showing in bubble.
-        * @param aDivertIndication ETrue to show divert indication,
-        *        EFalse to not. Usually setting EFalse isn't necessary
-        *        as it's a default value in bubble creation.
-        */
-        void SetDivertIndication( const TBool aDivertIndication );
         
         /**
         * Return remote info data
@@ -152,8 +134,7 @@
         */
         void SetBasicCallHeaderParamsL(
             const TInt aCallId, 
-            TPhoneCmdParamCallHeaderData* aCallHeaderData,
-            TBool aInitializing );
+            TPhoneCmdParamCallHeaderData* aCallHeaderData );
         
         /**
         * Sets divert indication to call header if necessary
@@ -271,8 +252,6 @@
         MPhoneCallHeaderManagerUtility& iManagerUtility;
         MPhoneStateMachine& iStateMachine;
         CBubbleManager::TPhoneCallTypeFlags iCallHeaderType;
-        TBool iSetDivertIndication;
-            
     };
 
 #endif // TPHONECALLHEADERPARAM_H
--- a/phoneapp/phoneuicontrol/src/cphoneaccessorybthandler.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphoneaccessorybthandler.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -22,6 +22,7 @@
 #include    <btengdomainpskeys.h>
 #include    <btengdomaincrkeys.h>
 #include    <mpeengineinfo.h>
+#include    <AknNotifyStd.h>
 
 #include    "cphoneaccessorybthandler.h"
 #include    "cphonecenrepproxy.h"
@@ -34,6 +35,8 @@
 #include    "phoneui.pan"
 #include    "phonerssbase.h"
 #include    "tphonecmdparamnote.h"
+#include    "tphonecmdparamglobalnote.h"
+
 
 // CONSTANTS
 
@@ -235,18 +238,18 @@
 //
 void CPhoneAccessoryBTHandler::ShowBTActivatedL()
     {
-    // Get localised text 
-    HBufC* buf = StringLoader::LoadLC( 
-            CPhoneMainResourceResolver::Instance()->
-            ResolveResourceID( EPhoneInfoBTAccActivated ) );
-    
-    TPhoneCmdParamNote noteParam;
-    noteParam.SetType( EPhoneNoteConfirmation );
-    noteParam.SetText( *buf );
+ 
+    TPhoneCmdParamGlobalNote globalNoteParam;
+    globalNoteParam.SetType( EAknGlobalInformationNote );
+    globalNoteParam.SetTone( EAvkonSIDNoSound );
 
+    globalNoteParam.SetTextResourceId( 
+        CPhoneMainResourceResolver::Instance()->
+        ResolveResourceID( EPhoneInfoBTAccActivated ) );
+		
     // Display note
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNote, &noteParam );
-    CleanupStack::PopAndDestroy( buf );
+    iViewCommandHandle->ExecuteCommandL( 
+        EPhoneViewShowGlobalNote, &globalNoteParam );   
     }
 
 // ---------------------------------------------------------
--- a/phoneapp/phoneuicontrol/src/cphonecallheadermanager.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonecallheadermanager.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -223,38 +223,6 @@
             &callHeaderParam );
     }
 
-
-// ---------------------------------------------------------------------------
-//  CPhoneCallHeaderManager::DisplayHeaderForInitializingCallL
-// ---------------------------------------------------------------------------
-//
-void CPhoneCallHeaderManager::DisplayHeaderForInitializingCallL( TInt aCallId )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneCallHeaderManager::DisplayHeaderForInitializingCallL() ");
-    __ASSERT_DEBUG( iStateMachine.PhoneEngineInfo(), Panic( EPhoneCtrlInvariant ) );
-    
-    TPhoneCmdParamCallHeaderData callHeaderParam;
-    
-    iCallHeaderParam->SetIniticalizingCallHeaderParamsL( 
-            aCallId,
-            &callHeaderParam );
-            
-    if( iCustomization )
-        {
-        // to do modifications to call header parameters
-        // if VoIP call in question
-        iCustomization->ModifyCallHeaderTexts( aCallId, &callHeaderParam,
-            KNullDesC );
-        }
-    
-    // Display call header for outgoing call
-    iViewCommandHandle.ExecuteCommandL( 
-            EPhoneViewCreateCallHeader, 
-            aCallId, 
-            &callHeaderParam );
-    
-    }
-
 // ---------------------------------------------------------------------------
 //  CPhoneCallHeaderManager::IsWaitingCallL
 // ---------------------------------------------------------------------------
@@ -318,16 +286,6 @@
     }
 
 // ---------------------------------------------------------------------------
-//  CPhoneCallHeaderManager::SetDivertIndication
-// ---------------------------------------------------------------------------
-//
-void CPhoneCallHeaderManager::SetDivertIndication( const TBool aDivertIndication )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneCallHeaderManager::SetDivertIndication()");
-    iCallHeaderParam->SetDivertIndication( aDivertIndication );           
-    }
-
-// ---------------------------------------------------------------------------
 // CPhoneCallHeaderManager::SetPhoneNumberAvailabilityL
 // ---------------------------------------------------------------------------
 //
--- a/phoneapp/phoneuicontrol/src/cphonekeyeventforwarder.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonekeyeventforwarder.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -156,11 +156,18 @@
 
     ret = OfferKeyEventBeforeControlStackL( aKeyEvent, aType );
 
-    if ( !aKeyEvent.iRepeats )
+    if ( !aKeyEvent.iRepeats && aKeyEvent.iCode != EKeyEscape )
         {
         // Convert event. Use already converted iKeyPressedDown.
         TKeyEvent keyEvent = aKeyEvent;
-        keyEvent.iCode = iKeyPressedDown;
+        if ( keyEvent.iScanCode == EStdKeyApplication0 )
+            {
+            keyEvent.iCode = EKeyApplication0;
+            }
+        else
+            {
+            keyEvent.iCode = iKeyPressedDown;
+            }
         
         // Do not handle dtmf tone if the type is EEventKey but we are not
         // expecting key up event. This happens if the key up event has been
@@ -174,7 +181,7 @@
         
         // Open number entry view if any allowed character key
         // is pressed on homescreen or in-call ui
-        if ( aType != EEventKeyUp && IsKeyAllowed( keyEvent ) )
+        if ( aType != EEventKeyUp && IsKeyAllowedL( keyEvent ) )
             {
             // Do not open number entry with up key
             iStateMachine->State()->HandleCreateNumberEntryL( keyEvent, aType );
@@ -252,13 +259,13 @@
     }
 
 // -----------------------------------------------------------------------------
-// CPhoneKeyEventForwarder::IsAlphaNumericKey
+// CPhoneKeyEventForwarder::IsKeyAllowedL
 // -----------------------------------------------------------------------------
 //
-TBool CPhoneKeyEventForwarder::IsKeyAllowed( const TKeyEvent& aKeyEvent )
+TBool CPhoneKeyEventForwarder::IsKeyAllowedL( const TKeyEvent& aKeyEvent )
     {
     __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::IsAlphaNumericKey");
+        "CPhoneKeyEventForwarder::IsKeyAllowedL");
 
     TKeyEvent keyEvent( aKeyEvent );
     
@@ -428,14 +435,20 @@
     
     if ( EEventKeyUp == aType && EKeyNull != iKeyPressedDown )
         {
-        // Handle short key press
-        iStateMachine->State()->HandleKeyMessageL( 
-            MPhoneKeyEvents::EPhoneKeyShortPress, 
-            TKeyCode( iKeyPressedDown ) );
-
+		// EKeyEnter is always offered to Telephony so don´t offer it 
+		// to state if there is menu or a dialog open.
+        if ( !( EKeyEnter == iKeyPressedDown 
+                && iDisplayingMenuOrDialogOnEventKeyDown ) )
+            {
+            // Handle short key press
+            iStateMachine->State()->HandleKeyMessageL( 
+                    MPhoneKeyEvents::EPhoneKeyShortPress, 
+                    TKeyCode( iKeyPressedDown ) );
+            }
         // Reset key code
         iScanCode = EStdKeyNull;
         iKeyPressedDown = EKeyNull;
+        iDisplayingMenuOrDialogOnEventKeyDown = EFalse;
         }
 
     return EKeyWasNotConsumed;
@@ -478,7 +491,7 @@
         "CPhoneKeyEventForwarder::HandleEventKeyDownBeforeControlStackL");
 
     // Convert key code
-    ConvertKeyCode( iKeyPressedDown, aKeyEvent );
+    ConvertKeyCodeL( iKeyPressedDown, aKeyEvent );
     // Save key scan code
     iScanCode = aKeyEvent.iScanCode;
     
@@ -520,6 +533,14 @@
             this ) );
         }
 
+    // Check if dialog or menu is open
+    // EikAppUi()->IsDisplayingMenuOrDialog doesn´t always return correct 
+    // value for menubar, so ask visibility also from CEikMenuBar
+    iDisplayingMenuOrDialogOnEventKeyDown = ( iViewCommandHandle->HandleCommandL(
+            EPhoneViewIsDisplayingMenuOrDialog ) == 
+            EPhoneViewResponseSuccess ) || ( iMenu && iMenu->IsDisplayed() );
+
+
     return ( EKeyWasNotConsumed );
     }
 
@@ -631,6 +652,7 @@
     // Store the previous scan code
     iPreviousScanCode = iScanCode;
 
+    // Consume dialer simulated key events, pass others on
     return EKeyWasNotConsumed;
     }
 
@@ -699,19 +721,19 @@
     }
 
 // -----------------------------------------------------------
-// CPhoneKeyEventForwarder::ConvertKeyCode
+// CPhoneKeyEventForwarder::ConvertKeyCodeL
 // -----------------------------------------------------------
 //
-void CPhoneKeyEventForwarder::ConvertKeyCode( TUint& aCode,
+void CPhoneKeyEventForwarder::ConvertKeyCodeL( TUint& aCode,
         const TKeyEvent& aKeyEvent )
     {
     __LOGMETHODSTARTEND( EPhoneControl,
-        "CPhoneKeyEventForwarder::ConvertKeyCode");
+        "CPhoneKeyEventForwarder::ConvertKeyCodeL");
 
     // Handler for special device key mapping in case iScanCode
     // to iCode conversion hasn't been handled by CAknAppUi::GetAliasKeyCodeL
     __PHONELOG1( EBasic, EPhoneControl,
-        "CPhoneKeyEventHandler::ConvertKeyCode scan code (%d)",
+        "CPhoneKeyEventHandler::ConvertKeyCodeL scan code (%d)",
         aKeyEvent.iScanCode );
 
     if ( !ConvertHalfQwertySpecialChar( aCode, aKeyEvent ) )
@@ -743,6 +765,7 @@
                 case EStdKeyYes:
                     aCode = EKeyYes;
                     break;
+                case EStdKeyEnd: // End key is emulated if the device has combined power and end key
                 case EStdKeyNo:
                     aCode = EKeyNo;
                     break;
@@ -766,7 +789,7 @@
         }
 
     __PHONELOG1( EBasic, EPhoneControl,
-        "CPhoneKeyEventHandler::ConvertKeyCode aCode (%d)", aCode );
+        "CPhoneKeyEventHandler::ConvertKeyCodeL aCode (%d)", aCode );
     }
 
 //  End of File
--- a/phoneapp/phoneuicontrol/src/cphonenumberentrymanager.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonenumberentrymanager.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -67,7 +67,7 @@
      iStateMachine ( aStateMachine ),
      iCustomization ( aCustomization ),
      iCbaManager ( aCbaManager ),
-     iEnv( *CEikonEnv::Static() )
+     iEnv( *CEikonEnv::Static() ) // codescanner::eikonenvstatic
     {
     __LOGMETHODSTARTEND( EPhoneControl, "CPhoneNumberEntryManager::CPhoneNumberEntryManager() ");
     }
@@ -478,9 +478,12 @@
         const TKeyEvent& aKeyEvent ) const
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneNumberEntryManager::IsAlphanumericSupportedAndCharInput( ) ");
-    TBool ret = ( iViewCommandHandle.HandleCommandL( EPhoneViewIsNumberEntryNumericMode ) 
-                    != EPhoneViewResponseSuccess )
-                        &&
+    
+    TBool numericMode = EFalse;
+    TRAP_IGNORE( numericMode = ( iViewCommandHandle.HandleCommandL( EPhoneViewIsNumberEntryNumericMode ) 
+            == EPhoneViewResponseSuccess ) );
+    
+    TBool ret = !numericMode &&
                 ( ( aKeyEvent.iScanCode >= KPhoneKeyStart &&
                     aKeyEvent.iScanCode <= KPhoneKeyEnd ) ||
                   aKeyEvent.iModifiers & EModifierSpecial );
--- a/phoneapp/phoneuicontrol/src/cphoneremotecontrolhandler.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphoneremotecontrolhandler.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -113,6 +113,12 @@
         {
         case ERemConCoreApiButtonClick:
             {
+            // Cancel the button repeat timer
+            if( iButtonRepeatTimer->IsActive() ) 
+                {
+                iButtonRepeatTimer->Cancel();
+                }
+
             // Pass the remote control operation to the current state
             TRAP_IGNORE( handled = 
                 iStateMachine->State()->
--- a/phoneapp/phoneuicontrol/src/cphonestate.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonestate.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -117,8 +117,7 @@
     MPhoneCustomization* aCustomization) :
     iStateMachine( aStateMachine ),
     iViewCommandHandle( aViewCommandHandle ),
-    iCustomization( aCustomization ),
-    iEnv( *CEikonEnv::Static() )
+    iCustomization( aCustomization )
     {
     // Need to get current SimState for inherited classis
     iPreviousSimState = SimState();
@@ -378,21 +377,18 @@
             break;
 
         default:
-
             TBool handled( EFalse );
-
             handled = ForwardPEMessageToPhoneCustomizationL( aMessage, aCallId );
-
             if ( EFalse == handled )
                 {
-            	MPhoneMediatorMessage* mediatorMessage = CPhoneMediatorFactory::Instance()->MediatorMessage( aMessage, aCallId );
-            	if( mediatorMessage )
-    	        	{
-    	        	CleanupDeletePushL( mediatorMessage );
-	        		mediatorMessage->ExecuteL();
-	        		CleanupStack::PopAndDestroy( mediatorMessage );
-	        		mediatorMessage = NULL;
-    	        	}
+                MPhoneMediatorMessage* mediatorMessage = CPhoneMediatorFactory::Instance()->MediatorMessage( aMessage, aCallId );
+                if( mediatorMessage )
+                    {
+                    CleanupDeletePushL( mediatorMessage );
+                    mediatorMessage->ExecuteL();
+                    CleanupStack::PopAndDestroy( mediatorMessage );
+                    mediatorMessage = NULL;
+                    }
                 }
             break;
         }
@@ -475,7 +471,7 @@
     else if ( RouteParameters.iShowNote && audioOutput == EPELoudspeaker )
         {
         CAknKeySoundSystem* keySounds =
-               static_cast<CAknAppUi*>( iEnv.EikAppUi() )->KeySounds();
+               static_cast<CAknAppUi*>( EikonEnv()->EikAppUi() )->KeySounds();
         keySounds->PlaySound( EAvkonSIDIHFActive );
         }
     }
@@ -1165,6 +1161,26 @@
     }
 
 // -----------------------------------------------------------
+// CPhoneState::EikonEnv
+// -----------------------------------------------------------
+//
+EXPORT_C CEikonEnv* CPhoneState::EikonEnv() const
+    {
+    __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::EikonEnv( ) ");
+    return iEnv;
+    }
+
+// -----------------------------------------------------------
+// CPhoneState::SetEikonEnv
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneState::SetEikonEnv( CEikonEnv* aEnv )
+    {
+    __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::SetEikonEnv( ) ");
+    iEnv = aEnv;
+    }
+
+// -----------------------------------------------------------
 // CPhoneState::SendKeyEventL
 // -----------------------------------------------------------
 //
@@ -1553,10 +1569,7 @@
             // this should be bypasses?
         case EPhoneDialerCallHandling:
         case EPhoneCmdBack:
-            // Remove number entry from screen
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-            // Do state-specific behaviour if number entry is cleared
-            HandleNumberEntryClearedL();
+            CloseClearNumberEntryAndLoadEffectL( ECallUiAppear );
             break;
 
         case EPhoneDialerCmdTouchInput:
@@ -1906,7 +1919,7 @@
     else
         {
         CAknKeySoundSystem* keySounds =
-            static_cast<CAknAppUi*>( iEnv.EikAppUi() )
+            static_cast<CAknAppUi*>( EikonEnv()->EikAppUi() )
                 ->KeySounds();
 
         if ( aLevel < KPhoneVolumeMinValue )
@@ -1960,13 +1973,12 @@
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::DialVoiceCallL() ");
     __ASSERT_DEBUG( iStateMachine->PhoneEngineInfo(),
         Panic( EPhoneCtrlInvariant ) );
-
     // Disable global notes
     TPhoneCmdParamBoolean globalNotifierParam;
     globalNotifierParam.SetBoolean( ETrue );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,
             &globalNotifierParam );
-   iStateMachine->PhoneEngineInfo()->SetCallTypeCommand( EPECallTypeCSVoice );
+    iStateMachine->PhoneEngineInfo()->SetCallTypeCommand( EPECallTypeCSVoice );
     iStateMachine->SendPhoneEngineMessage( MPEPhoneModel::EPEMessageDial );
     }
 
@@ -2076,23 +2088,13 @@
     // Don't remove reconnect query if it's shown
     if( !CPhoneReconnectQuery::InstanceL()->IsDisplayingQuery() )
         {
-        // Remove dialogs if necessary
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
         }
     // Return phone to the background
     iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
-
-    // Set Idle app as the top app
+    // Set Idle app as the top app to PS key this way we know if need to 
+    // bring idle to fore in next phone acitvation event.
     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetIdleTopApplication );
-
-	// Go to Homescreen when application, which was open when answered incoming call,
-	// is closed during active call    
-    if( TopAppIsDisplayedL() )
-        {
-        DisplayIdleScreenL();
-        }
-
-    // Set Empty CBA
     iCbaManager->SetCbaL( EPhoneEmptyCBA );
     }
 
@@ -2156,9 +2158,8 @@
         iStateMachine->PhoneEngineInfo()->SetPhoneNumber( *phoneNumber );
     
         if ( phoneNumber->Des().Length() < KPhoneValidPhoneNumberLength )
-            {        
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-            HandleNumberEntryClearedL();
+            {
+            CloseClearNumberEntryAndLoadEffectL( ECallUiAppear );
             }
     
         CleanupStack::PopAndDestroy( phoneNumber );        
@@ -2210,17 +2211,6 @@
     CallheaderManagerL()->DisplayHeaderForOutgoingCallL(aCallId);
     }
 
-
-// -----------------------------------------------------------
-// CPhoneState::DisplayHeaderForInitializingCallL
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneState::DisplayHeaderForInitializingCallL( TInt aCallId )
-    {
-    __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::DisplayHeaderForInitializingCallL( ) ");
-    CallheaderManagerL()->DisplayHeaderForInitializingCallL( aCallId );
-    }
-	
 // -----------------------------------------------------------
 // CPhoneState::UpdateSingleActiveCallL
 // -----------------------------------------------------------
@@ -2228,10 +2218,8 @@
 EXPORT_C void CPhoneState::UpdateSingleActiveCallL( TInt aCallId )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::UpdateSingleActiveCallL( ) ");
-
     // Stop capturing keys
     CaptureKeysDuringCallNotificationL( EFalse );
-
     BeginUiUpdateLC();
 
     SetTouchPaneButtonEnabled( EPhoneInCallCmdHold );
@@ -3388,16 +3376,6 @@
     }
 
 // ---------------------------------------------------------
-// CPhoneState::SetDivertIndication
-// ---------------------------------------------------------
-//
-EXPORT_C void CPhoneState::SetDivertIndication( const TBool aDivertIndication )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneState::SetDivertIndication()");
-    TRAP_IGNORE( CallheaderManagerL()->SetDivertIndication( aDivertIndication ) );
-    }
-
-// ---------------------------------------------------------
 // CPhoneState::StartAlsLineChangeTimerL
 // ---------------------------------------------------------
 //
@@ -3772,7 +3750,8 @@
         if ( aResourceId == EPhoneIncallButtons &&
              FeatureManager::FeatureSupported( KFeatureIdFfEntryPointForVideoShare ) &&
              CPhonePubSubProxy::Instance()->Value
-                ( KPSUidCoreApplicationUIs, KCoreAppUIsVideoSharingIndicator ) )
+                ( KPSUidCoreApplicationUIs, KCoreAppUIsVideoSharingIndicator )
+                == ECoreAppUIsVideoSharingIndicatorOn )
             {
             aResourceId = EPhoneIncallVideoShareButtons;
             }
@@ -3890,56 +3869,55 @@
 //
 EXPORT_C void CPhoneState::BeginUiUpdateLC()
     {
-
     iViewCommandHandle->ExecuteCommand( EPhoneViewBeginUpdate );
-
     TCleanupItem operation( UiUpdateCleanup, this );
     CleanupStack::PushL( operation );
     }
 
 // -----------------------------------------------------------
-// CPhoneState::BeginTransEffectLC
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneState::BeginTransEffectLC(  TStateTransEffectType aType )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneState::BeginTransEffectLC( ) ");
-    
-    // Check if this particular effect can be used in the current state.
-    if ( CanTransEffectTypeBeUsed( aType ) )
-        {
-        TPhoneCmdParamTransEffect effectParam;
-        switch ( aType )
-            {
-            case ENumberEntryOpen:
-                effectParam.SetType( EPhoneTransEffectDialerOpen );
-                break;
-            case ENumberEntryClose:
-                effectParam.SetType( EPhoneTransEffectDialerClose );
-                break;
-            case ENumberEntryCreate:
-                effectParam.SetType( EPhoneTransEffectDialerCreate );
-                break;
-            default:
-                effectParam.SetType( EPhoneTransEffectNone );
-            }
-
-        iViewCommandHandle->ExecuteCommand( EPhoneViewBeginTransEffect,  
-                                            &effectParam );
-        }
-
-    // Always put the cleanup item into stack as expected by the caller.
-    TCleanupItem operation( EffectCleanup, this );
-    CleanupStack::PushL( operation );
-    }
-
-// -----------------------------------------------------------
 // CPhoneState::EndUiUpdate
 // -----------------------------------------------------------
 //
 EXPORT_C void CPhoneState::EndUiUpdate()
     {
-    CleanupStack::PopAndDestroy(); // Call UiUpdateCleanup
+     CleanupStack::PopAndDestroy(); // Call UiUpdateCleanup
+    }
+	
+// -----------------------------------------------------------
+// CPhoneState::BeginTransEffectLC
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneState::BeginTransEffectLC( TStateTransEffectType aType )
+    {
+    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneState::BeginTransEffectLC( ) ");
+    TPhoneCmdParamTransEffect effectParam;
+    switch ( aType )
+        {
+        case ENumberEntryOpen:
+            effectParam.SetType( EPhoneTransEffectDialerOpen );
+            break;
+        case ENumberEntryClose:
+            effectParam.SetType( EPhoneTransEffectDialerClose );
+            break;
+        case ENumberEntryCreate:
+            effectParam.SetType( EPhoneTransEffectDialerCreate );
+            break;
+        case ECallUiAppear:
+            effectParam.SetType( EPhoneTransEffectCallUiAppear );
+            break;
+        case ECallUiDisappear:
+            effectParam.SetType( EPhoneTransEffectCallUiDisappear );
+            break;
+        default:
+            effectParam.SetType( EPhoneTransEffectNone );
+        }
+    effectParam.SetAppUid( KUidPhoneApplication );
+    iViewCommandHandle->ExecuteCommand( 
+            EPhoneViewBeginTransEffect, 
+            &effectParam );
+    // Always put the cleanup item into stack as expected by the caller.
+    TCleanupItem operation( EffectCleanup, this );
+    CleanupStack::PushL( operation );
     }
 
 // -----------------------------------------------------------
@@ -4034,11 +4012,10 @@
         {
         TPhoneCmdParamBoolean booleanParam;
         booleanParam.SetBoolean( EFalse );
-        // Disable dialer DTMF mode
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewSetDtmfDialerViewVisible,
-                                             &booleanParam );
-
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
+        iViewCommandHandle->ExecuteCommandL( 
+                EPhoneViewSetDtmfDialerViewVisible,
+                &booleanParam );
+        CloseClearNumberEntryAndLoadEffectL( ECallUiAppear );
         }
     else // Non-Touch
         {
@@ -4046,10 +4023,9 @@
         // because it should not be shown if user has pressed end key.
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveQuery );
+        // Do state-specific behaviour if number entry is cleared
+        HandleNumberEntryClearedL();
         }
-
-    // Do state-specific behaviour if number entry is cleared
-    HandleNumberEntryClearedL();
     }
 
 // -----------------------------------------------------------
@@ -4370,14 +4346,9 @@
 EXPORT_C void CPhoneState::CloseCustomizedDialerL()
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::CloseCustomizedDialerL( ) ");
-
     // Set dialer back to default mode.
     iViewCommandHandle->HandleCommandL( EPhoneViewHideCustomizedDialer );
-
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-
-    // Do state-specific behaviour if number entry is cleared
-    HandleNumberEntryClearedL();
+    CloseClearNumberEntryAndLoadEffectL( ENumberEntryClose );
     }
 
 // -----------------------------------------------------------------------------
@@ -4426,6 +4397,7 @@
     booleanParam.SetBoolean( ETrue );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetDtmfDialerViewVisible,
                                          &booleanParam );
+    BeginTransEffectLC( ECallUiDisappear );
     if ( IsNumberEntryUsedL() )
         {
         // Store the number entry content to cache
@@ -4442,6 +4414,7 @@
         // Create and display DTMF dialer
         NumberEntryManagerL()->CreateNumberEntryL();
         }
+    EndTransEffect();
 
     // Update CBA
     iCbaManager->UpdateInCallCbaL();
@@ -4509,7 +4482,7 @@
     __PHONELOG1( EBasic, EPhoneControl, "CPhoneState::LoadResource - aResource: %d", aResource );
     StringLoader::Load(  aData,
                          CPhoneMainResourceResolver::Instance()->ResolveResourceID( aResource ),
-                         &iEnv  );
+                         EikonEnv() );
     }
 
 // -----------------------------------------------------------
@@ -4698,16 +4671,6 @@
     StartAlsLineChangeTimerL();
     }
 
-// ---------------------------------------------------------
-// CPhoneState::CanTransEffectTypeBeUsed
-// ---------------------------------------------------------
-//
-EXPORT_C TBool CPhoneState::CanTransEffectTypeBeUsed( TStateTransEffectType /*aType*/ )
-    {
-    // State dependant so return EFalse by default.
-    return EFalse;
-    }
-
 // -----------------------------------------------------------
 // CPhoneState::NumberEntryClearL
 // -----------------------------------------------------------
@@ -4789,6 +4752,21 @@
     }
 
 // ---------------------------------------------------------
+// CPhoneState::SetToolbarButtonBTHFEnabled
+// ---------------------------------------------------------
+//
+EXPORT_C void CPhoneState::SetToolbarButtonBTHFEnabled()
+    {
+    if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) )
+        {
+        TPhoneCmdParamInteger integerParam;
+        integerParam.SetInteger( EPhoneInCallCmdBtHandsfree );
+        iViewCommandHandle->ExecuteCommand(
+            EPhoneViewEnableToolbarButton, &integerParam );
+        }
+    }
+
+// ---------------------------------------------------------
 // CPhoneState::HandleEasyDialingCommandsL
 // ---------------------------------------------------------
 //
@@ -4892,5 +4870,69 @@
         } 
     }
 
+// -----------------------------------------------------------
+// CPhoneState::DisplayCallSetupL
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneState::DisplayCallSetupL( TInt aCallId )
+    {
+    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneState::DisplayCallSetupL() ");
+    BeginTransEffectLC( ECallUiAppear );
+    BeginUiUpdateLC();
+    SetNumberEntryVisibilityL( EFalse );
+    CaptureKeysDuringCallNotificationL( ETrue );
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
+    TPhoneCmdParamInteger uidParam;
+    uidParam.SetInteger( KUidPhoneApplication.iUid );
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
+        &uidParam );
+    // Do state-specific operations.
+    DoStateSpecificCallSetUpDefinitionsL();
+    DisplayHeaderForOutgoingCallL(aCallId);
+    EndUiUpdate();
+    EndTransEffect();
+    iCbaManager->UpdateCbaL(EPhoneCallHandlingCallSetupCBA);
+    }
+
+// -----------------------------------------------------------
+// Sends command to viewcontroller to store the flag
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneState::SetNeedToReturnToForegroundAppStatusL( 
+    TBool aNeedToReturn )
+    {
+    TPhoneCmdParamBoolean booleanParam;
+    booleanParam.SetBoolean( aNeedToReturn );
+    iViewCommandHandle->ExecuteCommandL( 
+        EPhoneViewSetNeedToReturnToForegroundAppStatus,
+        &booleanParam );
+    }
+
+// -----------------------------------------------------------
+// CPhoneState::DoStateSpecificCallSetUpDefinitionsL
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneState::DoStateSpecificCallSetUpDefinitionsL()
+    {
+    // do nothing
+    }
+
+// -----------------------------------------------------------
+// CPhoneState::CloseClearNumberEntryAndLoadEffect
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneState::CloseClearNumberEntryAndLoadEffectL( 
+        TStateTransEffectType aType )
+    {
+    __LOGMETHODSTARTEND( EPhoneControl, 
+            "CPhoneState::CloseClearNumberEntryAndLoadEffectL() ");
+    BeginTransEffectLC( aType );
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
+    EndTransEffect();
+    // Do state-specific operation when number entry is cleared
+    HandleNumberEntryClearedL();
+    }
+
 //  End of File
 
--- a/phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -87,11 +87,17 @@
     // Enable the volume display
     iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNaviPaneAudioVolume );   
     HandleAudioOutputChangedL();
-     
-    CPhonePubSubProxy::Instance()->ChangePropertyValue(
-                    KPSUidScreenSaver,
-                    KScreenSaverAllowScreenSaver,
-                    EPhoneScreensaverNotAllowed );
+
+    TPhoneCmdParamCallStateData callStateData;
+    callStateData.SetCallState( EPEStateDialing );
+    iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, &callStateData );
+    if ( callStateData.CallId() > KErrNotFound && IsVideoCall( callStateData.CallId() ) )
+        {
+        CPhonePubSubProxy::Instance()->ChangePropertyValue(
+                        KPSUidScreenSaver,
+                        KScreenSaverAllowScreenSaver,
+                        EPhoneScreensaverNotAllowed );
+        }
     }
 
 // -----------------------------------------------------------
@@ -245,10 +251,8 @@
     {
     __LOGMETHODSTARTEND(EPhoneControl,  
         "CPhoneStateCallSetup::HandleCreateNumberEntryL()" );
-    
     }
 
-
 // -----------------------------------------------------------
 // CPhoneStateCallSetup::UpdateInCallCbaL
 // -----------------------------------------------------------
@@ -608,8 +612,16 @@
 void CPhoneStateCallSetup::HandleIdleL( TInt aCallId )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleIdleL()");
-    
-    BeginUiUpdateLC ();
+    if ( !NeedToReturnToForegroundAppL() &&
+         IsNumberEntryUsedL() )
+        {
+        BeginTransEffectLC( ECallUiDisappear );
+        }
+    else 
+        {
+        BeginTransEffectLC( ENumberEntryOpen );
+        }
+    BeginUiUpdateLC();
     
     // Disable the volume display
     iViewCommandHandle->ExecuteCommandL( EPhoneViewHideNaviPaneAudioVolume );
@@ -622,8 +634,21 @@
       
     if ( IsNumberEntryUsedL() )
         {
-        // Show the number entry if it exists
-        SetNumberEntryVisibilityL(ETrue);    
+        if ( NeedToReturnToForegroundAppL() )
+            {
+            // Return phone to the background if send to background is needed.
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
+    
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
+    
+            // Set Number Entry CBA
+            iCbaManager->SetCbaL( EPhoneNumberAcqCBA );
+            }
+        else
+            {
+            // Show the number entry if it exists
+            SetNumberEntryVisibilityL(ETrue);
+            }
         }    
     else if ( NeedToReturnToForegroundAppL() )
         {
@@ -640,8 +665,7 @@
         }
         
     EndUiUpdate();
-
-    // Go to idle state
+    EndTransEffect(); 
     // No need update cba
     iStateMachine->ChangeState( EPhoneStateIdle );
     }
--- a/phoneapp/phoneuicontrol/src/cphonestateidle.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonestateidle.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -76,7 +76,8 @@
     MPhoneStateMachine* aStateMachine, 
     MPhoneViewCommandHandle* aViewCommandHandle,
     MPhoneCustomization* aCustomization ) : 
-    CPhoneState( aStateMachine, aViewCommandHandle, aCustomization )
+    CPhoneState( aStateMachine, aViewCommandHandle, aCustomization ),
+    iCallInitialized( EFalse )
     {
     }
 
@@ -101,6 +102,25 @@
                 &boolean );
     
     iViewCommandHandle->ExecuteCommandL( EPhoneViewCreatePhoneBookServices ); 
+
+    // If Sim is not ok and we are not at foreground, bring ourselves to foreground
+    // so that the security note can be seen.
+    TPhoneCmdParamInteger foregroundAppParam;
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewGetForegroundApplication,
+                                         &foregroundAppParam );
+
+    if ( !IsSimOk() )
+        {
+        TPhoneCmdParamInteger uidParam;
+        // Bring Phone app in the foreground
+        uidParam.SetInteger( KUidPhoneApplication.iUid );
+        iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
+            &uidParam );
+
+        // Set Phone as the top application
+        iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication,
+            &uidParam );
+        }
     }
 
 // -----------------------------------------------------------
@@ -334,13 +354,7 @@
     switch ( aMessage )
         {
         case MEngineMonitor::EPEMessageInitiatedMoCall:
-           if( !IsBubbleInitialized() &&
-              ( EPECallTypeCSVoice == 
-                iStateMachine->PhoneEngineInfo()->CallType(aCallId) ) )
-                {
-                // Display call setup ASAP.
-                DisplayInitializingCallL( aCallId );
-                }
+            SetCallInitialized( ETrue );
             break;
                     
         case MEngineMonitor::EPEMessageIncoming:
@@ -384,28 +398,11 @@
             break;
             
         case MEngineMonitor::EPEMessageInValidEmergencyNumber:
-            // if sim is ok then there is no need show this note.
-            if ( !IsSimOk() )
-                {
-                SendGlobalWarningNoteL( EPhoneEmergencyCallsOnly );
-                }
+            SendGlobalWarningNoteL( EPhoneEmergencyCallsOnly );
             break;
             
         case MEngineMonitor::EPEMessageValidEmergencyNumber:
-            /* DisplayInitializingCallL calls EPEMessageCheckEmergencyNumber which
-            means that engine will send EPEMessageInValidEmergencyNumber or
-            EPEMessageValidEmergencyNumber response to phoneapp. If phoneengine
-            sends EPEMessageValidEmergencyNumber then iBubbleInitialized should be
-            set to EFalse this way we dont initializing call bubble behind attempting emergency 
-            call dialog.*/
-            if ( IsBubbleInitialized() )
-                {
-                SetBubbleInitialized( EFalse );
-                }
-            else
-                {
-                DialVoiceCallL();
-                }
+            DialVoiceCallL();
             break; 
         
         default:
@@ -435,6 +432,9 @@
         KScreenSaverAllowScreenSaver,
         EPhoneScreensaverNotAllowed );
     
+    IsNumberEntryUsedL() ? 
+        BeginTransEffectLC( ECallUiAppear ) :
+        BeginTransEffectLC( ENumberEntryOpen );
     BeginUiUpdateLC();
     
     // Hide the number entry if it exists
@@ -444,7 +444,7 @@
         }
      
     // Close fast swap window if it's displayed
-    CEikonEnv::Static()->DismissTaskList();
+    EikonEnv()->DismissTaskList();
 
     // Show incoming call buttons
     SetTouchPaneButtons( EPhoneIncomingCallButtons );
@@ -455,6 +455,7 @@
     DisplayIncomingCallL( aCallId );
 
     EndUiUpdate();
+    EndTransEffect();
     
     // Go to incoming state
     iCbaManager->UpdateIncomingCbaL( aCallId );
@@ -466,46 +467,39 @@
     iViewCommandHandle->HandleCommandL( EPhoneViewShowToolbar );
     
     ChangeTo( EPhoneStateIncoming );
-         
-    // Reset divert indication
-    SetDivertIndication( EFalse );
     }
 
 // -----------------------------------------------------------
-// CPhoneStateIdle::HandleDiallingL
+// CPhoneStateIdle::HandleDialingL
 // Default handling for dialling message
 // (other items were commented in a header).
 // -----------------------------------------------------------
 //
 EXPORT_C void CPhoneStateIdle::HandleDialingL( TInt aCallId )
-    {
+    {    
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIdle::HandleDialingL( ) ");
+    // Indicate that the Phone needs to be sent to the background if
+    // an application other than phone or idle application is in the foreground
+    SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
+   
+    DisplayCallSetupL( aCallId );
+    ChangeTo( EPhoneStateCallSetup );
+    }
 
-    BeginUiUpdateLC();
-    
-    SetNumberEntryVisibilityL(EFalse);
-
+// -----------------------------------------------------------
+// CPhoneStateIdle::DoStateSpecificCallSetUpDefinitionsL
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneStateIdle::DoStateSpecificCallSetUpDefinitionsL()
+    {
     // Show call setup buttons
     SetTouchPaneButtons( EPhoneCallSetupButtons );
-    SetTouchPaneButtonDisabled( EPhoneInCallCmdHold );    
-
-    // Display call setup 
-    DisplayCallSetupL( aCallId );            
-    
-    EndUiUpdate();
-    
-    // Remove any phone dialogs if they are displayed
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
-            
-    // Go to call setup state
-    iCbaManager->UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
+    SetTouchPaneButtonDisabled( EPhoneInCallCmdHold );
 
     SetToolbarDimming( ETrue );
-
     SetToolbarButtonLoudspeakerEnabled();
     SetToolbarButtonHandsetEnabled();
-    
-    ChangeTo( EPhoneStateCallSetup );
+    SetToolbarButtonBTHFEnabled();
     }
 
 // -----------------------------------------------------------
@@ -529,9 +523,9 @@
         iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground, 
             &uidParam );
         }
- 
+    BeginTransEffectLC( ENumberEntryClose );
     BeginUiUpdateLC();
-            
+    
     // Remove the number entry
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
  
@@ -546,6 +540,7 @@
     SetToolbarDimming( EFalse );
     
     EndUiUpdate();
+    EndTransEffect();
   
     // Go to single state
     iCbaManager->UpdateCbaL( EPhoneCallHandlingInCallCBA );
@@ -566,16 +561,13 @@
         case EPhoneCmdOptions:
             {
             // Open number entry menubar
-            TPhoneCmdParamInteger integerParam;  
-                      
             TInt menuId( GetNumberAcqMenuIdL() );
-            integerParam.SetInteger( menuId );   
-
+            TPhoneCmdParamInteger integerParam;
+            integerParam.SetInteger( menuId );
             iViewCommandHandle->ExecuteCommandL( 
                 EPhoneViewMenuBarOpen, &integerParam );
+            }
             break;
-            }
-        
         case EPhoneNumberAcqCmdCall:
             HandleVoiceCallCommandL( EFalse );
             break;
@@ -592,14 +584,18 @@
             HandleBackCommandL();
             EndTransEffect();
             break;
+        
+        case EPhoneViewOpenNumberEntry:
+            BeginTransEffectLC( ENumberEntryOpen );
+            commandStatus = CPhoneState::HandleCommandL( aCommand );
+            EndTransEffect();
+            break;
             
         default:
             commandStatus = CPhoneState::HandleCommandL( aCommand );
             break;
         }
-
     return commandStatus;
-
     }
 
 // -----------------------------------------------------------------------------
@@ -623,16 +619,7 @@
                EPhoneViewMenuBarOpen, &integerParam );
            commandStatus = ETrue;
            }
-           break;       
-           
-       case EPhoneViewOpenNumberEntry:   
-           {
-           BeginTransEffectLC( ENumberEntryOpen );
-           commandStatus = CPhoneState::ProcessCommandL( aCommand );
-           EndTransEffect();
-           }
            break;
-           
        default:
            commandStatus = CPhoneState::ProcessCommandL( aCommand );
            break;
@@ -780,12 +767,8 @@
 
     // Indicate that the Foreground application needs to be sent to the foreground 
     // after call is ended.
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( !TopAppIsDisplayedL() );
-    iViewCommandHandle->ExecuteCommandL( 
-        EPhoneViewSetNeedToReturnToForegroundAppStatus,
-        &booleanParam );
-
+    SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
+    
     // Bring Phone app in the foreground
     TPhoneCmdParamInteger uidParam;
     uidParam.SetInteger( KUidPhoneApplication.iUid );
@@ -808,120 +791,6 @@
     }
 
 // -----------------------------------------------------------
-// CPhoneStateIdle::DisplayCallSetupL
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneStateIdle::DisplayCallSetupL( TInt aCallId )
-    {
-    __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIdle::DisplayCallSetupL( ) ");
-    __ASSERT_DEBUG( aCallId > KErrNotFound, Panic( EPhoneCtrlParameterNotInitialized ) );
-    
-    // Close menu bar, if it is displayed
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
-    // Capture keys when the phone is dialling
-    CaptureKeysDuringCallNotificationL( ETrue );
-    
-    // Bring Phone app in the foreground
-    TPhoneCmdParamInteger uidParam;
-    uidParam.SetInteger( KUidPhoneApplication.iUid );
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
-        &uidParam );
-
-    // Set Phone as the top application
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication,
-        &uidParam ); 
-    
-    if ( !UpdateCallBubbleL( aCallId ) )
-        {
-        // Create and Display call setup header if update was not done.
-        DisplayHeaderForOutgoingCallL( aCallId );
-        }
-    }
-
-// -----------------------------------------------------------
-// CPhoneStateIdle::UpdateCallBubbleL
-// -----------------------------------------------------------
-//
-TBool CPhoneStateIdle::UpdateCallBubbleL( TInt aCallId )
-    {
-    __LOGMETHODSTARTEND(EPhoneControl, 
-                "CPhoneStateIdle::UpdateCallBubbleL( )");
-    TBool retValue(EFalse);
-    if( IsBubbleInitialized() )
-        {
-        // Call bubble is already initialized so it is 
-        // enough just to update existing header with 
-        // contacts,number...etc info.
-        TPhoneCmdParamCallHeaderData callHeaderParam = 
-                UpdateCallHeaderInfoL( aCallId );
-        iViewCommandHandle->ExecuteCommandL( 
-                EPhoneViewUpdateCallHeaderRemoteInfoData, 
-                aCallId, 
-                &callHeaderParam );
-        // reset flag.
-        SetBubbleInitialized( EFalse );
-        retValue = ETrue;
-        }
-    __PHONELOG1( EBasic, EPhoneControl, 
-            "PhoneUIControl: CPhoneStateIdle::UpdateCallBubbleL - retValue =%d ",
-            retValue );
-    return retValue;
-    }
-
-// -----------------------------------------------------------
-// CPhoneStateIdle::DisplayInitializingCallL
-// -----------------------------------------------------------
-//
-void CPhoneStateIdle::DisplayInitializingCallL( TInt aCallId )
-    {
-    __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIdle::DisplayInitializingCallL( )");
-    /*Set flag value to true before SendPhoneEngineMessage because if phone number
-    is emergency number then EPEMessageValidEmergencyNumber message handling sets 
-    iBubbleInitialized to false value and if value is false then initializing call 
-    bubble shouldnt be shown.*/
-    SetBubbleInitialized( ETrue );
-    iStateMachine->SendPhoneEngineMessage( MPEPhoneModel::EPEMessageCheckEmergencyNumber );
-    if ( IsBubbleInitialized() )
-        {
-        BeginUiUpdateLC();
-        
-        SetNumberEntryVisibilityL(EFalse);
-        
-        // Show call setup buttons
-        SetTouchPaneButtons( EPhoneCallSetupButtons );
-        
-        // Close menu bar, if it is displayed
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
-        // Capture keys when the phone is dialling
-        CaptureKeysDuringCallNotificationL( ETrue );
-        
-        // Bring Phone app in the foreground
-        TPhoneCmdParamInteger uidParam;
-        uidParam.SetInteger( KUidPhoneApplication.iUid );
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
-            &uidParam );
-
-        // Set Phone as the top application
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication,
-            &uidParam ); 
-        
-        DisplayHeaderForInitializingCallL( aCallId );
-            
-        EndUiUpdate();
-        
-        // Remove any phone dialogs if they are displayed
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
-                
-        // Go to call setup state
-        iCbaManager->UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
-
-        SetToolbarDimming( ETrue );
-        }
-    }
-
-// -----------------------------------------------------------
 // CPhoneStateIdle::HandleIdleForegroundEventL
 // -----------------------------------------------------------
 //
@@ -984,11 +853,11 @@
         // If dialer is open add icon to FSW list.
         iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateFSW );
         }
-    /*iBubbleInitialized has to be checked because if it true then phoneapp 
-    is already showing call bubble and we cant bring idle to screen. */
+    /*iCallInitialized has to be checked because if it true then phoneapp 
+    is already initializing call bubble and we cant bring idle to screen. */
     else if ( !IsNumberEntryUsedL() && 
               !iStateMachine->SecurityMode()->IsSecurityMode() &&
-              !IsBubbleInitialized() )
+              !iCallInitialized )
         {
         // Bring Idle app to the foreground
         iViewCommandHandle->ExecuteCommandL( EPhoneViewBringIdleToForeground );
@@ -1016,28 +885,21 @@
 void CPhoneStateIdle::HandleIdleL( TInt /*aCallId*/ )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIdle::HandleIdleL()" );
-        
-    // Remove all call headers
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveAllCallHeaders );
-    
-    // Close number entry
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-
-    // Remove all notes and dialogs
+    CloseClearNumberEntryAndLoadEffectL( ECallUiDisappear );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
     // Reset flag.
-    SetBubbleInitialized( EFalse );
+    SetCallInitialized( EFalse );
     }
  
 // -----------------------------------------------------------
 // CPhoneStateIdle::SpeedDialL
 // -----------------------------------------------------------
-//   
+//
 EXPORT_C void CPhoneStateIdle::SpeedDialL( const TUint& aDigit, 
         TDialInitiationMethod aDialMethod )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIdle::SpeedDialL( ) ");
-    
     iStateMachine->SendPhoneEngineMessage( MPEPhoneModel::EPEMessageEndDTMF );
     
     TPhoneCmdParamSpeedDial speedDialParam;
@@ -1050,29 +912,44 @@
     if ( NULL != phoneNumber && KNullDesC() != *phoneNumber )
         {
         DialL( *phoneNumber, speedDialParam.NumberType(), aDialMethod );
-        
-        if ( IsNumberEntryUsedL()  ) 
-            {         
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-            
-            // Set Idle background, if still idle
-            if ( iStateMachine->State() == this )
-                {
-                SetupIdleScreenInBackgroundL();
-                }
-            }
+        RemoveNumberEntryAndSetIdleToBackgroundIfNeededL();
         }
     else
         {
         // User cancelled dialog or didn't give a valid number
         SpeedDialCanceledL( aDigit );
         }
-    
     CleanupStack::PopAndDestroy( phoneNumber );
     }
 
 // -----------------------------------------------------------
-// CPhoneStateIdle:SpeedDialCanceledL
+// CPhoneStateIdle::RemoveNumberEntryAndSetIdleToBackgroundIfNeededL
+// -----------------------------------------------------------
+//
+void CPhoneStateIdle::RemoveNumberEntryAndSetIdleToBackgroundIfNeededL()
+    {
+    __LOGMETHODSTARTEND(EPhoneControl, 
+    "CPhoneStateIdle::RemoveNumberEntryAndSetIdleToBackgroundIfNeededL( ) ");
+    if ( IsNumberEntryUsedL() )
+        {
+        BeginTransEffectLC( ECallUiAppear );
+        /*NE should be removed because if speeddial dial is interupted during
+        call setup phone should not return to NE/Dialler view.*/
+        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
+        
+        /*It might be possible that some async operation was ongoing and 
+        state has already in that case do not set idle to background.*/
+        if ( iStateMachine->State() == this )
+            {
+            iCbaManager->UpdateCbaL( EPhoneEmptyCBA );
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetIdleTopApplication );
+            }
+        EndTransEffect();
+        }
+    }
+
+// -----------------------------------------------------------
+// CPhoneStateIdle::SpeedDialCanceledL
 // -----------------------------------------------------------
 //
 EXPORT_C void CPhoneStateIdle::SpeedDialCanceledL( const TUint& aDigit )
@@ -1161,7 +1038,7 @@
     if ( numberEntryCountParam.Integer() == 1 )
         {
         // Remove the number entry window
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
+        iViewCommandHandle->ExecuteCommandL( EPhoneViewClearNumberEntryContent );
         
         iStateMachine->SendPhoneEngineMessage( 
                 MPEPhoneModel::EPEMessageEndDTMF );
@@ -1170,9 +1047,6 @@
         iViewCommandHandle->ExecuteCommandL(
             EPhoneViewLaunchApplication );
 
-        // Continue displaying current app but set up the 
-        // idle screen in the background
-        SetupIdleScreenInBackgroundL();
         }
     }
 
@@ -1183,20 +1057,18 @@
 void CPhoneStateIdle::SendExitCommandL()
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIdle::SendExitCommand( ) ");
-    // Remove number entry from screen
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
+    // Remove number entry from screen 
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); 
 
-    // Simulate exit command
-    CEikonEnv& eikEnv = *CEikonEnv::Static();
-    CCoeEnv& coeEnv = eikEnv;
-    RWsSession& wsSession=coeEnv.WsSession();
-    TKeyEvent keyEvent;
-    keyEvent.iCode = EEikCmdExit;
-    keyEvent.iScanCode = EEikCmdExit;
-    keyEvent.iModifiers = 0;
-    keyEvent.iRepeats = 0;
-    wsSession.SimulateKeyEvent( keyEvent );
-    wsSession.Flush();  
+    // Simulate exit command 
+    RWsSession& wsSession = EikonEnv()->WsSession(); 
+    TKeyEvent keyEvent; 
+    keyEvent.iCode = EEikCmdExit; 
+    keyEvent.iScanCode = EEikCmdExit; 
+    keyEvent.iModifiers = 0; 
+    keyEvent.iRepeats = 0; 
+    wsSession.SimulateKeyEvent( keyEvent ); 
+    wsSession.Flush(); 
     }
 
 // -----------------------------------------------------------
@@ -1235,14 +1107,7 @@
 
                 if ( IsNumberEntryUsedL() )
                     {
-                    BeginTransEffectLC( ENumberEntryClose );
-                    // Remove number entry from screen
-                    iViewCommandHandle->ExecuteCommandL( 
-                        EPhoneViewRemoveNumberEntry );
-                    EndTransEffect();
-                    // Do state-specific operation when number entry is cleared
-                    HandleNumberEntryClearedL();
-                    
+                    CloseClearNumberEntryAndLoadEffectL( ENumberEntryClose );
                     // If long end key event occures then all calls are terminated and
                     // dialer is closed, therefore tel.icon must be removed from FSW.
                     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateFSW );
@@ -1255,33 +1120,19 @@
                 }
             else if ( IsNumberEntryUsedL() && TopAppIsDisplayedL() )
                 {
-                // Remove number entry from screen with effect
-                BeginTransEffectLC( ENumberEntryClose );
-                iViewCommandHandle->ExecuteCommandL( 
-                    EPhoneViewRemoveNumberEntry );
-                EndTransEffect();
-                // Do state-specific operation when number entry is cleared
-                HandleNumberEntryClearedL();
+                CloseClearNumberEntryAndLoadEffectL( ENumberEntryClose );
                 }
             else if ( !TopAppIsDisplayedL() )
                 {
                 // Phone might not be the topmost app since it has
                 // some dialog/query open therefore we need to remove dialog/phone.
-            
                 if ( !IsSimStateNotPresentWithSecurityModeEnabled() )
                     {
                     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
                     }
-                // Remove number entry from screen
-                iViewCommandHandle->ExecuteCommandL( 
-                        EPhoneViewRemoveNumberEntry );
-                    
-                // Bring Idle app to the foreground
+                iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
                 iViewCommandHandle->ExecuteCommandL( EPhoneViewBringIdleToForeground );
-                
-                // Updates Task list
                 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateFSW );
-
                 }
             }
         else if ( IsNumberEntryUsedL() )
@@ -1301,17 +1152,15 @@
 EXPORT_C void CPhoneStateIdle::OnlyHashInNumberEntryL()
     {
     __LOGMETHODSTARTEND( EPhoneControl, "CPhoneStateIdle::OnlyHashInNumberEntryL( ) ");
-    
     if ( CPhoneCenRepProxy::Instance()->IsTelephonyFeatureSupported( 
         KTelephonyLVFlagMannerMode ) )
         {
         ChangeMannerModeL();
-        }            
+        }
     else
         {
         StartAlsLineChangeTimerL();
         }
-
     // Check if any application launch functionality
     // is configured for pressing hash for a long time
     // the return value of CheckAppLaunchingL ignored.
@@ -1319,24 +1168,6 @@
     }
 
 // ---------------------------------------------------------
-// CPhoneStateIdle::CanTransEffectTypeBeUsed
-// ---------------------------------------------------------
-//
-EXPORT_C TBool CPhoneStateIdle::CanTransEffectTypeBeUsed( TStateTransEffectType aType )
-    {
-    TBool okToUse( EFalse );
-    // These effects can be used for transitions between
-    // phone and some other app.
-    if ( aType == ENumberEntryOpen || 
-         aType == ENumberEntryClose ||
-         aType == ENumberEntryCreate )
-        {
-        okToUse = ETrue;
-        }
-    return okToUse;
-    }
-
-// ---------------------------------------------------------
 // CPhoneStateIdle::ChangeMannerModeL
 // ---------------------------------------------------------
 //
@@ -1572,7 +1403,7 @@
     }
 
 // -----------------------------------------------------------
-// CPhoneStateIdle::HandleVoiceCallCommandL()
+// CPhoneStateIdle::GetNumberAcqMenuIdL()
 // -----------------------------------------------------------
 //
 TInt CPhoneStateIdle::GetNumberAcqMenuIdL()
@@ -1595,7 +1426,7 @@
         }
     return menuId;
     }
-
+	
 // -----------------------------------------------------------
 // CPhoneStateIdle::HandleErrorL
 // -----------------------------------------------------------
@@ -1603,105 +1434,14 @@
 EXPORT_C void CPhoneStateIdle::HandleErrorL( const TPEErrorInfo& aErrorInfo )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneStateIdle::HandleErrorL() ");
-    __PHONELOG1( EBasic, EPhoneControl, 
-            "PhoneUIControl: CPhoneStateIdle::HandleErrorL - aErrorInfo.iErrorCode =%d ",
-            aErrorInfo.iErrorCode );
-    __PHONELOG1( EBasic, EPhoneControl,
-            "PhoneUIControl: CPhoneStateIdle::HandleErrorL - aErrorInfo.iCallId =%d ",
-            aErrorInfo.iCallId );
-    if( ( ECCPErrorNone != aErrorInfo.iErrorCode ) &&
-            IsBubbleInitialized() )
+    if( KErrNotFound < aErrorInfo.iCallId )
         {
-        HandleInitializingCallErrorL( aErrorInfo.iCallId );
-        SetBubbleInitialized( EFalse );
+        SetCallInitialized( EFalse );
         }
     CPhoneState::HandleErrorL( aErrorInfo );
     }
 
 // -----------------------------------------------------------
-// CPhoneStateIdle::HandleInitializingCallErrorL
-// -----------------------------------------------------------
-//
-void CPhoneStateIdle::HandleInitializingCallErrorL( TInt aCallId )
-    {
-    __LOGMETHODSTARTEND(
-            EPhoneControl, 
-            "CPhoneStateIdle::HandleInitializingCallErrorL()" );
-    // Remove call 
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
-    BeginUiUpdateLC();
-    SetDefaultFlagsL();
-    if ( IsNumberEntryUsedL() )
-        {
-        if ( NeedToReturnToForegroundAppL() )
-            {
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
-            iCbaManager->SetCbaL( EPhoneNumberAcqCBA );
-            }
-        else
-            {
-            // Show the number entry if it exists and update cba's.
-            SetNumberEntryVisibilityL( ETrue );
-            if ( IsDTMFEditorVisibleL() )
-                {
-                CloseDTMFEditorL();
-                DisplayIdleScreenL();
-                }
-            else if ( iOnScreenDialer && IsCustomizedDialerVisibleL() )
-                {
-                CloseCustomizedDialerL();
-                DisplayIdleScreenL();
-                } 
-            }
-        }
-    else
-        {
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-        if ( !TopAppIsDisplayedL() || IsAutoLockOn() || NeedToReturnToForegroundAppL() )
-            {
-            // Continue displaying current app but set up the 
-            // idle screen in the background
-            SetupIdleScreenInBackgroundL();
-            }
-        else
-            {
-            DisplayIdleScreenL();
-            }
-        }
-    DeleteTouchPaneButtons();
-    EndUiUpdate();
-    
-    // Display call termination note, if necessary
-    DisplayCallTerminationNoteL();
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar );
-    }
-
-// -----------------------------------------------------------
-// CPhoneStateIdle::SetBubbleInitialized
-// -----------------------------------------------------------
-//
-void CPhoneStateIdle::SetBubbleInitialized( TBool aValue )
-    {
-    __PHONELOG1( EBasic, EPhoneControl, 
-            "PhoneUIControl: CPhoneStateIdle::SetBubbleInitialized - aValue =%d ",
-            aValue );
-    iBubbleInitialized = aValue;
-    }
-
-// -----------------------------------------------------------
-// CPhoneStateIdle::IsBubbleInitialized
-// -----------------------------------------------------------
-//
-TBool CPhoneStateIdle::IsBubbleInitialized()
-    {
-    __PHONELOG1( EBasic, EPhoneControl, 
-            "PhoneUIControl: CPhoneStateIdle::IsBubbleInitialized - iBubbleInitialized =%d ",
-            iBubbleInitialized );
-    return iBubbleInitialized;
-    }
-
-// -----------------------------------------------------------
 // CPhoneStateIdle::ChangeTo
 // -----------------------------------------------------------
 //
@@ -1710,8 +1450,32 @@
     __PHONELOG1( EBasic, EPhoneControl, 
            "PhoneUIControl: CPhoneStateIdle::ChangeTo - aState =%d ",
            aState );
-    SetBubbleInitialized( EFalse );
+    SetCallInitialized( EFalse );
     iStateMachine->ChangeState( aState );
     }
 
+// -----------------------------------------------------------
+// CPhoneStateIdle::SetBubbleInitialized
+// -----------------------------------------------------------
+//
+void CPhoneStateIdle::SetCallInitialized( TBool aValue )
+    {
+    __PHONELOG1( EBasic, EPhoneControl, 
+            "PhoneUIControl: CPhoneStateIdle::SetCallInitialized - iCallInitialized =%d ",
+            aValue );
+    iCallInitialized = aValue;
+    }
+
+// -----------------------------------------------------------
+// CPhoneStateIdle::IsBubbleInitialized
+// -----------------------------------------------------------
+//
+TBool CPhoneStateIdle::IsCallInitialized()
+    {
+    __PHONELOG1( EBasic, EPhoneControl, 
+            "PhoneUIControl: CPhoneStateIdle::IsCallInitialized - iCallInitialized =%d ",
+            iCallInitialized );
+    return iCallInitialized;
+    }
+
 // End of File
--- a/phoneapp/phoneuicontrol/src/cphonestateincall.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonestateincall.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -306,49 +306,40 @@
     __LOGMETHODSTARTEND(EPhoneControl,  
         "CPhoneStateInCall::HandleIdleL()" );
     __ASSERT_DEBUG( aCallId >= 0, Panic( EPhoneCtrlParameterNotInitialized ) );
-    // Remove call 
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
-  
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar );
+    if (  IsNumberEntryUsedL() )
+        {
+        BeginTransEffectLC( ECallUiDisappear );
+        }
+    else 
+        {
+        BeginTransEffectLC( ENumberEntryClose );
+        }
     BeginUiUpdateLC();
     SetDefaultFlagsL();
+        
     if ( IsNumberEntryUsedL() )
         {
-        if ( NeedToReturnToForegroundAppL() )
-            {
-            // Return phone to the background if menu application is needed to foreground.
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
-    
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
-    
-            // Set Number Entry CBA
-            iCbaManager->SetCbaL( EPhoneNumberAcqCBA );
+        // Show the number entry if it exists and update cba's.
+        SetNumberEntryVisibilityL( ETrue );
+        // Close dtmf dialer when call is disconnected.
+        if ( IsDTMFEditorVisibleL() )
+            {      
+            CloseDTMFEditorL();
+            // Display idle screen and update CBA's
+            DisplayIdleScreenL();
             }
-        else
-            {
-            // Show the number entry if it exists and update cba's.
-            SetNumberEntryVisibilityL( ETrue );
-            
-            // Close dtmf dialer when call is disconnected.
-            if ( IsDTMFEditorVisibleL() )
-                {      
-                CloseDTMFEditorL();
-                
-                // Display idle screen and update CBA's
-                DisplayIdleScreenL();
-                }
-            else if ( iOnScreenDialer && IsCustomizedDialerVisibleL() )
-                {            
-                CloseCustomizedDialerL();
-                // Display idle screen and update CBA's
-                DisplayIdleScreenL();
-                } 
-            }
-        }
+        else if ( iOnScreenDialer && IsCustomizedDialerVisibleL() )
+            {            
+            CloseCustomizedDialerL();
+            // Display idle screen and update CBA's
+            DisplayIdleScreenL();
+            } 
+        }            
     else
         {
-        // Close menu bar, if it is displayed
         iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-        
         if ( !TopAppIsDisplayedL() || IsAutoLockOn() || NeedToReturnToForegroundAppL() )
             {        
             // Continue displaying current app but set up the 
@@ -362,16 +353,11 @@
             }
         }
         
-    DeleteTouchPaneButtons();        
+    DeleteTouchPaneButtons();
     EndUiUpdate();
-    
-    // Display call termination note, if necessary
+    EndTransEffect();
     DisplayCallTerminationNoteL();
-
-    // Go to idle state
     iStateMachine->ChangeState( EPhoneStateIdle );
-
-    //Make sure that toolbar is not shown
     iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar );
     }
 
@@ -423,6 +409,26 @@
         // Go to current state implementation
         UpdateInCallCbaL();
         }
+	TBool audioMute = iStateMachine->PhoneEngineInfo()->AudioMute();
+    TPhoneCmdParamCallStateData callStateData;
+    callStateData.SetCallState( EPEStateConnected );
+    iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, &callStateData );
+    TInt call = callStateData.CallId();
+    if ( call != KErrNotFound  && iStateMachine->PhoneEngineInfo()->CallType( call ) == EPECallTypeVoIP
+            && audioMute )
+		{
+			  TPhoneCmdParamBoolean dtmfSendFlag;
+			  dtmfSendFlag.SetBoolean( ETrue );
+			  iViewCommandHandle->ExecuteCommandL( EPhoneViewSetVoipCallDTMFVisibilityFlag,
+																							   &dtmfSendFlag );
+		}
+    else
+		{           
+		 TPhoneCmdParamBoolean dtmfSendFlag;
+		  dtmfSendFlag.SetBoolean( EFalse );
+		  iViewCommandHandle->ExecuteCommandL( EPhoneViewSetVoipCallDTMFVisibilityFlag,
+																						   &dtmfSendFlag );
+		} 
     }
 
 // -----------------------------------------------------------
@@ -605,11 +611,13 @@
     switch( aCommand )
         {
         case EPhoneInCallCmdDialer:
+            BeginTransEffectLC( ECallUiDisappear );
             if ( !IsNumberEntryUsedL() )
                 {
                 CreateNumberEntryL();
                 }
-            SetNumberEntryVisibilityL(ETrue ); 
+            SetNumberEntryVisibilityL( ETrue ); 
+            EndTransEffect();
           break;
           
         case EPhoneCmdOptions:
@@ -843,8 +851,10 @@
        case EPhoneViewOpenCallHandling:
             if ( iOnScreenDialer && IsNumberEntryUsedL() )
                 {
+                BeginTransEffectLC( ECallUiAppear );
                 // Remove number entry from screen
                 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
+                EndTransEffect();
                 HandleNumberEntryClearedL();
                 }
             commandStatus = CPhoneState::HandleCommandL( aCommand );        
@@ -919,6 +929,7 @@
     if ( iOnScreenDialer )
         {
         //In touch, just activate dialer
+        BeginTransEffectLC( ECallUiDisappear );
         if ( IsNumberEntryUsedL() )
             {
             SetNumberEntryVisibilityL(ETrue);   
@@ -928,6 +939,7 @@
             CreateNumberEntryL();
             SetNumberEntryVisibilityL(ETrue); 
             }
+        EndTransEffect();
         }
     else
         {
@@ -1545,12 +1557,8 @@
                 CloseDTMFEditorL();
                 }
             else
-                {
-                // Remove number entry from screen
-                iViewCommandHandle->ExecuteCommandL( 
-                    EPhoneViewRemoveNumberEntry );
-                // Do state-specific operation when number entry is cleared
-                HandleNumberEntryClearedL();         
+                {    
+                CloseClearNumberEntryAndLoadEffectL( ENumberEntryClose );
                 }
             }
 
--- a/phoneapp/phoneuicontrol/src/cphonestateincoming.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonestateincoming.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -361,7 +361,6 @@
     {
     __LOGMETHODSTARTEND(EPhoneControl,
         "CPhoneStateIncoming::HandleConnectedL ()" );
-
     // Re-enable global notes
     TPhoneCmdParamBoolean globalNotifierParam;
     globalNotifierParam.SetBoolean( EFalse );
@@ -371,20 +370,13 @@
         &globalNotifierParam );
     // Stop tone playing, if necessary
     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
-
     BeginUiUpdateLC();
-    
     // Update single call
     UpdateSingleActiveCallL( aCallId );
-
     SetTouchPaneButtons( EPhoneIncallButtons );
     SetToolbarDimming( EFalse );
-            
     EndUiUpdate();
-
-    // Go to single state
     iCbaManager->UpdateCbaL( EPhoneCallHandlingInCallCBA );
-
     iStateMachine->ChangeState( EPhoneStateSingle );
     }
 
@@ -430,14 +422,10 @@
     {
     __LOGMETHODSTARTEND(EPhoneControl,
         "CPhoneStateIncoming::HandleIdleL ()" );
-
+    BeginTransEffectLC( ENumberEntryClose );
     BeginUiUpdateLC();
-
-    // Remove call
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
-    // Close menu bar, if it is displayed
     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-    // Stop tone playing, if necessary
     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
     
     TPhoneCmdParamBoolean globalNotifierParam;
@@ -445,7 +433,6 @@
     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetEikonNotifiersDisabled,
         &globalNotifierParam );
     
-
     SetDefaultFlagsL();
     
      if ( IsNumberEntryUsedL() )
@@ -454,10 +441,7 @@
             {
             // Return phone to the background if send to background is needed.
             iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
-
             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
-
-            // Set Number Entry CBA
             iCbaManager->SetCbaL( EPhoneNumberAcqCBA );
             }
         else
@@ -475,14 +459,12 @@
         }
     else
         {
-        // Display idle screen
         DisplayIdleScreenL();
         }
  
     DeleteTouchPaneButtons();
     EndUiUpdate();
-
-    // Go to idle state   
+    EndTransEffect();
     iCbaManager->UpdateCbaL( EPhoneEmptyCBA );
     iStateMachine->ChangeState( EPhoneStateIdle );
     }
--- a/phoneapp/phoneuicontrol/src/cphonestatemachine.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonestatemachine.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -41,7 +41,8 @@
     MPhoneViewCommandHandle* aViewCommandHandle ) :
     iOldStateId( EPhoneStateNull ),
     iNewStateId( EPhoneStateNull ),
-    iViewCommandHandle( aViewCommandHandle )
+    iViewCommandHandle( aViewCommandHandle ),
+    iEnv( CEikonEnv::Static() ) // codescanner::eikonenvstatic
     {
     __ASSERT_ALWAYS( aViewCommandHandle,
     	Panic( EPhoneCtrlParameterNotInitialized ) );
@@ -224,5 +225,14 @@
 		}
 	State()->HandlePropertyChangedL( aCategory, aKey, aValue );
 	}
+
+// -----------------------------------------------------------
+// CPhoneStateMachine::EikonEnv
+// -----------------------------------------------------------
+//
+EXPORT_C CEikonEnv* CPhoneStateMachine::EikonEnv() const
+    {
+    return iEnv;
+    }
 	
 // End of File
--- a/phoneapp/phoneuicontrol/src/cphonestatestartup.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphonestatestartup.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -212,6 +212,14 @@
     // Indicate that the phone is ready
     iPhoneReady = ETrue;
 
+    // Sim security status is available at this phase.
+    iStateMachine->SecurityMode()->Initialize();
+    if ( !IsSimOk() )
+        {
+        iCreateNote = CIdle::NewL( CActive::EPriorityHigh );
+        CreateAndShowNoteAfterIdle(); 
+        }
+    
     // Only go to idle state when Phone engine is also ready
     if ( iPEReady )
         {
@@ -276,12 +284,6 @@
 void CPhoneStateStartup::InitializationReadyL()
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateStartup::InitializationReady() ");
-    iStateMachine->SecurityMode()->Initialize();
-    if ( !IsSimOk() )
-        {
-        iCreateNote = CIdle::NewL( CActive::EPriorityHigh );
-        CreateAndShowNoteAfterIdle(); 
-        }
     // Go to idle state
     SetDefaultFlagsL();
     iCbaManager->UpdateCbaL( EPhoneEmptyCBA );
--- a/phoneapp/phoneuicontrol/src/cphoneuicontroller.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/cphoneuicontroller.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -71,7 +71,7 @@
 
     // Create the key event forwarder
     iKeyEventForwarder = CPhoneKeyEventForwarder::NewL( 
-        CEikonEnv::Static()->EikAppUi()->ClientRect(), iStateMachine, &aViewController );
+        CEikonEnv::Static()->EikAppUi()->ClientRect(), iStateMachine, &aViewController ); // codescanner::eikonenvstatic
 
     TInt leaveCode( 0 );
     TInt retry( 0 );
--- a/phoneapp/phoneuicontrol/src/tphonecallheaderparam.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuicontrol/src/tphonecallheaderparam.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -43,8 +43,7 @@
         MPhoneStateMachine& aStateMachine ) 
         : iManagerUtility ( aManagerUtility ),
           iStateMachine ( aStateMachine ),
-          iCallHeaderType ( CBubbleManager::ENormal ),
-          iSetDivertIndication ( EFalse )
+          iCallHeaderType ( CBubbleManager::ENormal )
     {
     }
 
@@ -226,23 +225,13 @@
 //
 void TPhoneCallHeaderParam::SetBasicCallHeaderParamsL(
         const TInt aCallId, 
-        TPhoneCmdParamCallHeaderData* aCallHeaderData,
-        TBool aInitializing )
+        TPhoneCmdParamCallHeaderData* aCallHeaderData )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "TPhoneCallHeaderParam::SetBasicCallHeaderParamsL( ) ");
     // Set call header call state
-    if( aInitializing )
-        {
-        // fake state to initializing call this way we get correct bubble to screen.
-        aCallHeaderData->SetCallState( EPEStateDialing );
-        }
-    else
-        {
-        aCallHeaderData->SetCallState( 
-                iStateMachine.PhoneEngineInfo()->CallState( aCallId ) );
-        }
-    
-    // Set call header type.
+    aCallHeaderData->SetCallState( 
+            iStateMachine.PhoneEngineInfo()->CallState( aCallId ) );
+    // Set call header type
     aCallHeaderData->SetCallType( GetCallType( aCallId, aCallHeaderData ) );
     aCallHeaderData->SetCallFlag( CallHeaderType() );
     
@@ -498,7 +487,8 @@
     TPhoneCmdParamCallHeaderData* aCallHeaderData )
     {
     __LOGMETHODSTARTEND(EPhoneControl, "TPhoneCallHeaderParam::SetDivertIndicatorToCallHeader( ) ");
-    if( iSetDivertIndication )
+    TBool forwarded = iStateMachine.PhoneEngineInfo()->CallForwarded( aCallId );
+    if ( forwarded )
         {
         aCallHeaderData->AddCallFlag( CBubbleManager::EDiverted );
         }
@@ -512,19 +502,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// TPhoneCallHeaderParam::SetDivertIndication
-// ---------------------------------------------------------------------------
-//
-void TPhoneCallHeaderParam::SetDivertIndication( const TBool aDivertIndication )
-    {
-    __LOGMETHODSTARTEND(EPhoneControl, "TPhoneCallHeaderParam::SetDivertIndication( ) ");
-    iSetDivertIndication = aDivertIndication;           
-    __PHONELOG1( EBasic, EPhoneControl, 
-                "TPhoneCallHeaderParam::SetDivertIndication() - iSetDivertIndication: %d ", 
-                iSetDivertIndication )
-    }
-
-// ---------------------------------------------------------------------------
 //  TPhoneCallHeaderParam::SetIncomingCallHeaderParamsL
 // ---------------------------------------------------------------------------
 //
@@ -536,7 +513,7 @@
     {
     __LOGMETHODSTARTEND(EPhoneControl, "TPhoneCallHeaderParam::SetIncomingCallHeaderParamsL( ) ");
     // Set basic params must be called before update is called.
-    SetBasicCallHeaderParamsL( aCallId, aCallHeaderData, EFalse );
+    SetBasicCallHeaderParamsL( aCallId, aCallHeaderData );
     
     // Set call header labels
     SetCallHeaderTexts( 
@@ -561,28 +538,13 @@
     {
     __LOGMETHODSTARTEND(EPhoneControl, "TPhoneCallHeaderParam::SetOutgoingCallHeaderParamsL( ) ");
     // Set basic params must be called before update is called.
-    SetBasicCallHeaderParamsL( aCallId, aCallHeaderData, EFalse );
+    SetBasicCallHeaderParamsL( aCallId, aCallHeaderData );
     // Set call header labels
     SetCallHeaderLabels( aCallHeaderData );
     SetCliParamatersL( aCallId, aCallHeaderData );
     }
 
 // ---------------------------------------------------------------------------
-//  TPhoneCallHeaderParam::SetIniticalizingCallHeaderParamsL
-// ---------------------------------------------------------------------------
-//
-void TPhoneCallHeaderParam::SetIniticalizingCallHeaderParamsL(
-        const TInt aCallId,
-        TPhoneCmdParamCallHeaderData* aCallHeaderData )
-    {
-    __LOGMETHODSTARTEND(EPhoneControl, "TPhoneCallHeaderParam::SetIniticalizingCallHeaderParamsL( ) ");
-    // Set basic params must be called before update is called.
-    SetBasicCallHeaderParamsL( aCallId, aCallHeaderData, ETrue );
-    // Set call header labels
-    SetCallHeaderLabels( aCallHeaderData );
-    }
-
-// ---------------------------------------------------------------------------
 //  TPhoneCallHeaderParam::SetCallHeaderLabels
 // ---------------------------------------------------------------------------
 //
@@ -635,7 +597,15 @@
         else
             {
             aCallHeaderData->SetCNAPText( iStateMachine.PhoneEngineInfo()->
-                RemotePhoneNumber( aCallId ), CBubbleManager::ELeft );       
+                RemotePhoneNumber( aCallId ), CBubbleManager::ELeft );
+
+            // No contact name, use phonenumber when available.
+            if ( iStateMachine.PhoneEngineInfo()->RemotePhoneNumber( aCallId ).Length() 
+                    && !ContactInfoAvailable( aCallId ) )
+                {
+                aCallHeaderData->SetParticipantListCLI(
+                        TPhoneCmdParamCallHeaderData::EPhoneParticipantCNAPText );
+                }
             }
         }
     else
@@ -675,6 +645,9 @@
     SetCallerImage( 
             aCallId, 
             aCallHeaderData ); 
+    
+    // Update divert indication
+    SetDivertIndicatorToCallHeader( aCallId, aCallHeaderData );
     }
 
 // ---------------------------------------------------------------------------
--- a/phoneapp/phoneuistates/bwins/phoneuistatesu.def	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/bwins/phoneuistatesu.def	Thu Sep 09 18:09:57 2010 +0100
@@ -1,22 +1,22 @@
 EXPORTS
-	?NewPhoneUIStateMachineFactoryL@@YAPAVCPhoneUIStateMachineFactoryBase@@XZ @ 1 NONAME ; class CPhoneUIStateMachineFactoryBase * NewPhoneUIStateMachineFactoryL(void)
-	?ConstructL@CPhoneTwoSingles@@MAEXXZ @ 2 NONAME ; void CPhoneTwoSingles::ConstructL(void)
-	?SendGlobalErrorNoteL@CPhoneErrorMessagesHandler@@IAEXH@Z @ 3 NONAME ; void CPhoneErrorMessagesHandler::SendGlobalErrorNoteL(int)
-	?HandleKeyMessageL@CPhoneAlerting@@MAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 4 NONAME ; void CPhoneAlerting::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	?HandleKeyMessageL@CPhoneTwoSingles@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 5 NONAME ; void CPhoneTwoSingles::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
-	??0CPhoneIncoming@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 6 NONAME ; CPhoneIncoming::CPhoneIncoming(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	??0CPhoneSingleCall@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 7 NONAME ; CPhoneSingleCall::CPhoneSingleCall(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?HandleCommandL@CPhoneSingleCall@@UAEHH@Z @ 8 NONAME ; int CPhoneSingleCall::HandleCommandL(int)
-	?ConstructL@CPhoneCallSetup@@MAEXXZ @ 9 NONAME ; void CPhoneCallSetup::ConstructL(void)
-	??0CPhoneErrorMessagesHandler@@IAE@PAVMPhoneViewCommandHandle@@PAVMPhoneStateMachine@@@Z @ 10 NONAME ; CPhoneErrorMessagesHandler::CPhoneErrorMessagesHandler(class MPhoneViewCommandHandle *, class MPhoneStateMachine *)
-	?HandlePhoneEngineMessageL@CPhoneStartupSimlockUi@@UAEXHH@Z @ 11 NONAME ; void CPhoneStartupSimlockUi::HandlePhoneEngineMessageL(int, int)
-	??1CPhoneTwoSingles@@UAE@XZ @ 12 NONAME ; CPhoneTwoSingles::~CPhoneTwoSingles(void)
-	?HandleDisconnectingL@CPhoneAlerting@@IAEXH@Z @ 13 NONAME ; void CPhoneAlerting::HandleDisconnectingL(int)
-	??0CPhoneIdle@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 14 NONAME ; CPhoneIdle::CPhoneIdle(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?ShowErrorSpecificNoteL@CPhoneErrorMessagesHandler@@UAEXABUTPEErrorInfo@@@Z @ 15 NONAME ; void CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL(struct TPEErrorInfo const &)
-	?HandleErrorL@CPhoneConferenceAndSingleAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 16 NONAME ; void CPhoneConferenceAndSingleAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
-	??0CPhoneStateMachineGSM@@IAE@PAVMPhoneViewCommandHandle@@@Z @ 17 NONAME ; CPhoneStateMachineGSM::CPhoneStateMachineGSM(class MPhoneViewCommandHandle *)
-	?SetDivertIndication@CPhoneGsmInCall@@MAEXH@Z @ 18 NONAME ; void CPhoneGsmInCall::SetDivertIndication(int)
+    ?NewPhoneUIStateMachineFactoryL@@YAPAVCPhoneUIStateMachineFactoryBase@@XZ @ 1 NONAME ; class CPhoneUIStateMachineFactoryBase * NewPhoneUIStateMachineFactoryL(void)
+	?DoStateSpecificCallSetUpDefinitionsL@CPhoneSingleCall@@UAEXXZ @ 2 NONAME ; void CPhoneSingleCall::DoStateSpecificCallSetUpDefinitionsL(void)
+	?ConstructL@CPhoneTwoSingles@@MAEXXZ @ 3 NONAME ; void CPhoneTwoSingles::ConstructL(void)
+	?SendGlobalErrorNoteL@CPhoneErrorMessagesHandler@@IAEXH@Z @ 4 NONAME ; void CPhoneErrorMessagesHandler::SendGlobalErrorNoteL(int)
+	?HandleKeyMessageL@CPhoneAlerting@@MAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 5 NONAME ; void CPhoneAlerting::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	?HandleKeyMessageL@CPhoneTwoSingles@@UAEXW4TPhoneKeyEventMessages@MPhoneKeyEvents@@W4TKeyCode@@@Z @ 6 NONAME ; void CPhoneTwoSingles::HandleKeyMessageL(enum MPhoneKeyEvents::TPhoneKeyEventMessages, enum TKeyCode)
+	??0CPhoneIncoming@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 7 NONAME ; CPhoneIncoming::CPhoneIncoming(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	??0CPhoneSingleCall@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 8 NONAME ; CPhoneSingleCall::CPhoneSingleCall(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?HandleCommandL@CPhoneSingleCall@@UAEHH@Z @ 9 NONAME ; int CPhoneSingleCall::HandleCommandL(int)
+	?ConstructL@CPhoneCallSetup@@MAEXXZ @ 10 NONAME ; void CPhoneCallSetup::ConstructL(void)
+	??0CPhoneErrorMessagesHandler@@IAE@PAVMPhoneViewCommandHandle@@PAVMPhoneStateMachine@@@Z @ 11 NONAME ; CPhoneErrorMessagesHandler::CPhoneErrorMessagesHandler(class MPhoneViewCommandHandle *, class MPhoneStateMachine *)
+	?HandlePhoneEngineMessageL@CPhoneStartupSimlockUi@@UAEXHH@Z @ 12 NONAME ; void CPhoneStartupSimlockUi::HandlePhoneEngineMessageL(int, int)
+	??1CPhoneTwoSingles@@UAE@XZ @ 13 NONAME ; CPhoneTwoSingles::~CPhoneTwoSingles(void)
+	?HandleDisconnectingL@CPhoneAlerting@@IAEXH@Z @ 14 NONAME ; void CPhoneAlerting::HandleDisconnectingL(int)
+	??0CPhoneIdle@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 15 NONAME ; CPhoneIdle::CPhoneIdle(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?ShowErrorSpecificNoteL@CPhoneErrorMessagesHandler@@UAEXABUTPEErrorInfo@@@Z @ 16 NONAME ; void CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL(struct TPEErrorInfo const &)
+	?HandleErrorL@CPhoneConferenceAndSingleAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 17 NONAME ; void CPhoneConferenceAndSingleAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
+	??0CPhoneStateMachineGSM@@IAE@PAVMPhoneViewCommandHandle@@@Z @ 18 NONAME ; CPhoneStateMachineGSM::CPhoneStateMachineGSM(class MPhoneViewCommandHandle *)
 	?HandlePhoneEngineMessageL@CPhoneAlerting@@UAEXHH@Z @ 19 NONAME ; void CPhoneAlerting::HandlePhoneEngineMessageL(int, int)
 	?ConstructL@CPhoneSingleCall@@MAEXXZ @ 20 NONAME ; void CPhoneSingleCall::ConstructL(void)
 	?HandlePhoneEngineMessageL@CPhoneIncoming@@UAEXHH@Z @ 21 NONAME ; void CPhoneIncoming::HandlePhoneEngineMessageL(int, int)
@@ -42,32 +42,35 @@
 	?HandleCommandL@CPhoneAlerting@@MAEHH@Z @ 41 NONAME ; int CPhoneAlerting::HandleCommandL(int)
 	?HandleErrorL@CPhoneSingleAndCallSetupAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 42 NONAME ; void CPhoneSingleAndCallSetupAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
 	??1CPhoneSingleCall@@UAE@XZ @ 43 NONAME ; CPhoneSingleCall::~CPhoneSingleCall(void)
-	??1CPhoneAlerting@@UAE@XZ @ 44 NONAME ; CPhoneAlerting::~CPhoneAlerting(void)
-	?HandleConnectedL@CPhoneAlerting@@IAEXH@Z @ 45 NONAME ; void CPhoneAlerting::HandleConnectedL(int)
-	?ConstructL@CPhoneAlerting@@MAEXXZ @ 46 NONAME ; void CPhoneAlerting::ConstructL(void)
-	?HandleErrorL@CPhoneCallSetupAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 47 NONAME ; void CPhoneCallSetupAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
-	??1CPhoneIncoming@@UAE@XZ @ 48 NONAME ; CPhoneIncoming::~CPhoneIncoming(void)
-	?HandlePhoneStartupL@CPhoneStartupSimlockUi@@EAEXXZ @ 49 NONAME ; void CPhoneStartupSimlockUi::HandlePhoneStartupL(void)
-	?ConstructL@CPhoneIncoming@@MAEXXZ @ 50 NONAME ; void CPhoneIncoming::ConstructL(void)
-	?HandleErrorL@CPhoneConferenceAndWaitingAndCallSetup@@UAEXABUTPEErrorInfo@@@Z @ 51 NONAME ; void CPhoneConferenceAndWaitingAndCallSetup::HandleErrorL(struct TPEErrorInfo const &)
-	?HandlePhoneEngineMessageL@CPhoneSingleCall@@UAEXHH@Z @ 52 NONAME ; void CPhoneSingleCall::HandlePhoneEngineMessageL(int, int)
-	??1CPhoneErrorMessagesHandler@@UAE@XZ @ 53 NONAME ; CPhoneErrorMessagesHandler::~CPhoneErrorMessagesHandler(void)
-	?HandleErrorL@CPhoneTwoSinglesAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 54 NONAME ; void CPhoneTwoSinglesAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
-	?CreatePhoneEngineL@CPhoneStateMachineGSM@@UAEPAVMPEPhoneModel@@AAVMEngineMonitor@@@Z @ 55 NONAME ; class MPEPhoneModel * CPhoneStateMachineGSM::CreatePhoneEngineL(class MEngineMonitor &)
-	?HandleCommandL@CPhoneGsmInCall@@MAEHH@Z @ 56 NONAME ; int CPhoneGsmInCall::HandleCommandL(int)
-	?ResolveResourceID@CPhoneResourceResolverGSM@@UBEHABH@Z @ 57 NONAME ; int CPhoneResourceResolverGSM::ResolveResourceID(int const &) const
-	?HandleErrorL@CPhoneIncoming@@UAEXABUTPEErrorInfo@@@Z @ 58 NONAME ; void CPhoneIncoming::HandleErrorL(struct TPEErrorInfo const &)
-	??1CPhoneStateMachineGSM@@UAE@XZ @ 59 NONAME ; CPhoneStateMachineGSM::~CPhoneStateMachineGSM(void)
-	?OpenMenuBarL@CPhoneSingleCall@@MAEXXZ @ 60 NONAME ; void CPhoneSingleCall::OpenMenuBarL(void)
-	?HandleErrorL@CPhoneConferenceAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 61 NONAME ; void CPhoneConferenceAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
-	?HandlePhoneEngineMessageL@CPhoneTwoSingles@@UAEXHH@Z @ 62 NONAME ; void CPhoneTwoSingles::HandlePhoneEngineMessageL(int, int)
-	?HandleRemConCommandL@CPhoneEmergency@@MAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 63 NONAME ; int CPhoneEmergency::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
-	?UpdateInCallCbaL@CPhoneTwoSingles@@MAEXXZ @ 64 NONAME ; void CPhoneTwoSingles::UpdateInCallCbaL(void)
-	?ConstructL@CPhoneIdle@@MAEXXZ @ 65 NONAME ; void CPhoneIdle::ConstructL(void)
-	?HandlePhoneForegroundEventL@CPhoneGsmInCall@@MAEXXZ @ 66 NONAME ; void CPhoneGsmInCall::HandlePhoneForegroundEventL(void)
-	?OpenMenuBarL@CPhoneAlerting@@MAEXXZ @ 67 NONAME ; void CPhoneAlerting::OpenMenuBarL(void)
-	?SendGlobalWarningNoteL@CPhoneErrorMessagesHandler@@IAEXH@Z @ 68 NONAME ; void CPhoneErrorMessagesHandler::SendGlobalWarningNoteL(int)
-	?HandleConnectedConferenceL@CPhoneTwoSingles@@MAEXH@Z @ 69 NONAME ; void CPhoneTwoSingles::HandleConnectedConferenceL(int)
-	??0CPhoneTwoSingles@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 70 NONAME ; CPhoneTwoSingles::CPhoneTwoSingles(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
-	?HandlePropertyChangedL@CPhoneStartupSimlockUi@@UAEXABVTUid@@IH@Z @ 71 NONAME ; void CPhoneStartupSimlockUi::HandlePropertyChangedL(class TUid const &, unsigned int, int)
+	?DoStateSpecificCallSetUpDefinitionsL@CPhoneSingleAndWaiting@@UAEXXZ @ 44 NONAME ; void CPhoneSingleAndWaiting::DoStateSpecificCallSetUpDefinitionsL(void)
+	??1CPhoneAlerting@@UAE@XZ @ 45 NONAME ; CPhoneAlerting::~CPhoneAlerting(void)
+	?HandleConnectedL@CPhoneAlerting@@IAEXH@Z @ 46 NONAME ; void CPhoneAlerting::HandleConnectedL(int)
+	?ConstructL@CPhoneAlerting@@MAEXXZ @ 47 NONAME ; void CPhoneAlerting::ConstructL(void)
+	?DoStateSpecificCallSetUpDefinitionsL@CPhoneConference@@UAEXXZ @ 48 NONAME ; void CPhoneConference::DoStateSpecificCallSetUpDefinitionsL(void)
+	?HandleErrorL@CPhoneCallSetupAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 49 NONAME ; void CPhoneCallSetupAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
+	??1CPhoneIncoming@@UAE@XZ @ 50 NONAME ; CPhoneIncoming::~CPhoneIncoming(void)
+	?HandlePhoneStartupL@CPhoneStartupSimlockUi@@EAEXXZ @ 51 NONAME ; void CPhoneStartupSimlockUi::HandlePhoneStartupL(void)
+	?ConstructL@CPhoneIncoming@@MAEXXZ @ 52 NONAME ; void CPhoneIncoming::ConstructL(void)
+	?HandleErrorL@CPhoneConferenceAndWaitingAndCallSetup@@UAEXABUTPEErrorInfo@@@Z @ 53 NONAME ; void CPhoneConferenceAndWaitingAndCallSetup::HandleErrorL(struct TPEErrorInfo const &)
+	?HandlePhoneEngineMessageL@CPhoneSingleCall@@UAEXHH@Z @ 54 NONAME ; void CPhoneSingleCall::HandlePhoneEngineMessageL(int, int)
+	??1CPhoneErrorMessagesHandler@@UAE@XZ @ 55 NONAME ; CPhoneErrorMessagesHandler::~CPhoneErrorMessagesHandler(void)
+	?HandleErrorL@CPhoneTwoSinglesAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 56 NONAME ; void CPhoneTwoSinglesAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
+	?CreatePhoneEngineL@CPhoneStateMachineGSM@@UAEPAVMPEPhoneModel@@AAVMEngineMonitor@@@Z @ 57 NONAME ; class MPEPhoneModel * CPhoneStateMachineGSM::CreatePhoneEngineL(class MEngineMonitor &)
+	?HandleCommandL@CPhoneGsmInCall@@MAEHH@Z @ 58 NONAME ; int CPhoneGsmInCall::HandleCommandL(int)
+	?ResolveResourceID@CPhoneResourceResolverGSM@@UBEHABH@Z @ 59 NONAME ; int CPhoneResourceResolverGSM::ResolveResourceID(int const &) const
+	?HandleErrorL@CPhoneIncoming@@UAEXABUTPEErrorInfo@@@Z @ 60 NONAME ; void CPhoneIncoming::HandleErrorL(struct TPEErrorInfo const &)
+	??1CPhoneStateMachineGSM@@UAE@XZ @ 61 NONAME ; CPhoneStateMachineGSM::~CPhoneStateMachineGSM(void)
+	?DoStateSpecificCallSetUpDefinitionsL@CPhoneConferenceAndWaiting@@UAEXXZ @ 62 NONAME ; void CPhoneConferenceAndWaiting::DoStateSpecificCallSetUpDefinitionsL(void)
+	?OpenMenuBarL@CPhoneSingleCall@@MAEXXZ @ 63 NONAME ; void CPhoneSingleCall::OpenMenuBarL(void)
+	?HandleErrorL@CPhoneConferenceAndWaiting@@UAEXABUTPEErrorInfo@@@Z @ 64 NONAME ; void CPhoneConferenceAndWaiting::HandleErrorL(struct TPEErrorInfo const &)
+	?HandlePhoneEngineMessageL@CPhoneTwoSingles@@UAEXHH@Z @ 65 NONAME ; void CPhoneTwoSingles::HandlePhoneEngineMessageL(int, int)
+	?HandleRemConCommandL@CPhoneEmergency@@MAEHW4TRemConCoreApiOperationId@@W4TRemConCoreApiButtonAction@@@Z @ 66 NONAME ; int CPhoneEmergency::HandleRemConCommandL(enum TRemConCoreApiOperationId, enum TRemConCoreApiButtonAction)
+	?UpdateInCallCbaL@CPhoneTwoSingles@@MAEXXZ @ 67 NONAME ; void CPhoneTwoSingles::UpdateInCallCbaL(void)
+	?ConstructL@CPhoneIdle@@MAEXXZ @ 68 NONAME ; void CPhoneIdle::ConstructL(void)
+	?HandlePhoneForegroundEventL@CPhoneGsmInCall@@MAEXXZ @ 69 NONAME ; void CPhoneGsmInCall::HandlePhoneForegroundEventL(void)
+	?OpenMenuBarL@CPhoneAlerting@@MAEXXZ @ 70 NONAME ; void CPhoneAlerting::OpenMenuBarL(void)
+	?SendGlobalWarningNoteL@CPhoneErrorMessagesHandler@@IAEXH@Z @ 71 NONAME ; void CPhoneErrorMessagesHandler::SendGlobalWarningNoteL(int)
+	??0CPhoneTwoSingles@@IAE@PAVMPhoneStateMachine@@PAVMPhoneViewCommandHandle@@PAVMPhoneCustomization@@@Z @ 72 NONAME ; CPhoneTwoSingles::CPhoneTwoSingles(class MPhoneStateMachine *, class MPhoneViewCommandHandle *, class MPhoneCustomization *)
+	?HandleConnectedConferenceL@CPhoneTwoSingles@@MAEXH@Z @ 73 NONAME ; void CPhoneTwoSingles::HandleConnectedConferenceL(int)
+	?HandlePropertyChangedL@CPhoneStartupSimlockUi@@UAEXABVTUid@@IH@Z @ 74 NONAME ; void CPhoneStartupSimlockUi::HandlePropertyChangedL(class TUid const &, unsigned int, int)
 
--- a/phoneapp/phoneuistates/eabi/phoneuistatesu.def	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/eabi/phoneuistatesu.def	Thu Sep 09 18:09:57 2010 +0100
@@ -39,238 +39,228 @@
 	_ZN15CPhoneCallSetupD2Ev @ 38 NONAME
 	_ZN15CPhoneEmergency20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 39 NONAME
 	_ZN15CPhoneGsmInCall14HandleCommandLEi @ 40 NONAME
-	_ZN15CPhoneGsmInCall19SetDivertIndicationEi @ 41 NONAME
-	_ZN15CPhoneGsmInCall27HandlePhoneForegroundEventLEv @ 42 NONAME
+	_ZN15CPhoneGsmInCall27HandlePhoneForegroundEventLEv @ 41 NONAME
+	_ZN16CPhoneConference36DoStateSpecificCallSetUpDefinitionsLEv @ 42 NONAME
 	_ZN16CPhoneSingleCall10ConstructLEv @ 43 NONAME
 	_ZN16CPhoneSingleCall12OpenMenuBarLEv @ 44 NONAME
 	_ZN16CPhoneSingleCall14HandleCommandLEi @ 45 NONAME
 	_ZN16CPhoneSingleCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 46 NONAME
 	_ZN16CPhoneSingleCall25HandlePhoneEngineMessageLEii @ 47 NONAME
-	_ZN16CPhoneSingleCallC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 48 NONAME
-	_ZN16CPhoneSingleCallC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 49 NONAME
-	_ZN16CPhoneSingleCallD0Ev @ 50 NONAME
-	_ZN16CPhoneSingleCallD1Ev @ 51 NONAME
-	_ZN16CPhoneSingleCallD2Ev @ 52 NONAME
-	_ZN16CPhoneTwoSingles10ConstructLEv @ 53 NONAME
-	_ZN16CPhoneTwoSingles12OpenMenuBarLEv @ 54 NONAME
-	_ZN16CPhoneTwoSingles16UpdateInCallCbaLEv @ 55 NONAME
-	_ZN16CPhoneTwoSingles17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 56 NONAME
-	_ZN16CPhoneTwoSingles25HandleNumberEntryClearedLEv @ 57 NONAME
-	_ZN16CPhoneTwoSingles25HandlePhoneEngineMessageLEii @ 58 NONAME
-	_ZN16CPhoneTwoSingles26HandleConnectedConferenceLEi @ 59 NONAME
-	_ZN16CPhoneTwoSinglesC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 60 NONAME
-	_ZN16CPhoneTwoSinglesC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 61 NONAME
-	_ZN16CPhoneTwoSinglesD0Ev @ 62 NONAME
-	_ZN16CPhoneTwoSinglesD1Ev @ 63 NONAME
-	_ZN16CPhoneTwoSinglesD2Ev @ 64 NONAME
-	_ZN21CPhoneStateMachineGSM18CreatePhoneEngineLER14MEngineMonitor @ 65 NONAME
-	_ZN21CPhoneStateMachineGSM5StateEv @ 66 NONAME
-	_ZN21CPhoneStateMachineGSMC1EP23MPhoneViewCommandHandle @ 67 NONAME
-	_ZN21CPhoneStateMachineGSMC2EP23MPhoneViewCommandHandle @ 68 NONAME
-	_ZN21CPhoneStateMachineGSMD0Ev @ 69 NONAME
-	_ZN21CPhoneStateMachineGSMD1Ev @ 70 NONAME
-	_ZN21CPhoneStateMachineGSMD2Ev @ 71 NONAME
-	_ZN22CPhoneSingleAndWaiting12HandleErrorLERK12TPEErrorInfo @ 72 NONAME
-	_ZN22CPhoneStartupSimlockUi19HandlePhoneStartupLEv @ 73 NONAME
-	_ZN22CPhoneStartupSimlockUi22HandlePropertyChangedLERK4TUidji @ 74 NONAME
-	_ZN22CPhoneStartupSimlockUi25HandlePhoneEngineMessageLEii @ 75 NONAME
-	_ZN25CPhoneCallSetupAndWaiting12HandleErrorLERK12TPEErrorInfo @ 76 NONAME
-	_ZN25CPhoneResourceResolverGSM10ConstructLEv @ 77 NONAME
-	_ZN25CPhoneResourceResolverGSMC1Ev @ 78 NONAME
-	_ZN25CPhoneResourceResolverGSMC2Ev @ 79 NONAME
-	_ZN25CPhoneResourceResolverGSMD0Ev @ 80 NONAME
-	_ZN25CPhoneResourceResolverGSMD1Ev @ 81 NONAME
-	_ZN25CPhoneResourceResolverGSMD2Ev @ 82 NONAME
-	_ZN26CPhoneConferenceAndWaiting12HandleErrorLERK12TPEErrorInfo @ 83 NONAME
-	_ZN26CPhoneErrorMessagesHandler19SendGlobalInfoNoteLEi @ 84 NONAME
-	_ZN26CPhoneErrorMessagesHandler20SendGlobalErrorNoteLEi @ 85 NONAME
-	_ZN26CPhoneErrorMessagesHandler22SendGlobalWarningNoteLEi @ 86 NONAME
-	_ZN26CPhoneErrorMessagesHandler22ShowErrorSpecificNoteLERK12TPEErrorInfo @ 87 NONAME
-	_ZN26CPhoneErrorMessagesHandlerC1EP23MPhoneViewCommandHandleP18MPhoneStateMachine @ 88 NONAME
-	_ZN26CPhoneErrorMessagesHandlerC2EP23MPhoneViewCommandHandleP18MPhoneStateMachine @ 89 NONAME
-	_ZN26CPhoneErrorMessagesHandlerD0Ev @ 90 NONAME
-	_ZN26CPhoneErrorMessagesHandlerD1Ev @ 91 NONAME
-	_ZN26CPhoneErrorMessagesHandlerD2Ev @ 92 NONAME
-	_ZN26CPhoneTwoSinglesAndWaiting12HandleErrorLERK12TPEErrorInfo @ 93 NONAME
-	_ZN34CPhoneSingleAndCallSetupAndWaiting12HandleErrorLERK12TPEErrorInfo @ 94 NONAME
-	_ZN35CPhoneConferenceAndSingleAndWaiting12HandleErrorLERK12TPEErrorInfo @ 95 NONAME
-	_ZN38CPhoneConferenceAndWaitingAndCallSetup12HandleErrorLERK12TPEErrorInfo @ 96 NONAME
-	_ZNK16CPhoneSingleCall6CallIdEv @ 97 NONAME
-	_ZNK25CPhoneResourceResolverGSM17ResolveResourceIDERKi @ 98 NONAME
-	_ZTI10CPhoneIdle @ 99 NONAME
-	_ZTI13CPhoneStartup @ 100 NONAME
-	_ZTI14CPhoneAlerting @ 101 NONAME
-	_ZTI14CPhoneIncoming @ 102 NONAME
-	_ZTI15CPhoneCallSetup @ 103 NONAME
-	_ZTI15CPhoneEmergency @ 104 NONAME
-	_ZTI15CPhoneGsmInCall @ 105 NONAME
-	_ZTI16CPhoneConference @ 106 NONAME
-	_ZTI16CPhoneSingleCall @ 107 NONAME
-	_ZTI16CPhoneTwoSingles @ 108 NONAME
-	_ZTI21CPhoneStateMachineGSM @ 109 NONAME
-	_ZTI22CPhoneSingleAndWaiting @ 110 NONAME
-	_ZTI22CPhoneStartupSimlockUi @ 111 NONAME
-	_ZTI23CPhoneSingleAndAlerting @ 112 NONAME
-	_ZTI24CPhoneSingleAndCallSetup @ 113 NONAME
-	_ZTI25CPhoneCallSetupAndWaiting @ 114 NONAME
-	_ZTI25CPhoneConferenceAndSingle @ 115 NONAME
-	_ZTI25CPhoneResourceResolverGSM @ 116 NONAME
-	_ZTI26CPhoneConferenceAndWaiting @ 117 NONAME
-	_ZTI26CPhoneErrorMessagesHandler @ 118 NONAME
-	_ZTI26CPhoneTwoSinglesAndWaiting @ 119 NONAME
-	_ZTI28CPhoneConferenceAndCallSetup @ 120 NONAME
-	_ZTI30CPhoneUIStateMachineFactoryGSM @ 121 NONAME
-	_ZTI31CPhoneGeneralGsmMessagesHandler @ 122 NONAME
-	_ZTI34CPhoneSingleAndCallSetupAndWaiting @ 123 NONAME
-	_ZTI35CPhoneConferenceAndSingleAndWaiting @ 124 NONAME
-	_ZTI38CPhoneConferenceAndWaitingAndCallSetup @ 125 NONAME
-	_ZTV10CPhoneIdle @ 126 NONAME
-	_ZTV13CPhoneStartup @ 127 NONAME
-	_ZTV14CPhoneAlerting @ 128 NONAME
-	_ZTV14CPhoneIncoming @ 129 NONAME
-	_ZTV15CPhoneCallSetup @ 130 NONAME
-	_ZTV15CPhoneEmergency @ 131 NONAME
-	_ZTV15CPhoneGsmInCall @ 132 NONAME
-	_ZTV16CPhoneConference @ 133 NONAME
-	_ZTV16CPhoneSingleCall @ 134 NONAME
-	_ZTV16CPhoneTwoSingles @ 135 NONAME
-	_ZTV21CPhoneStateMachineGSM @ 136 NONAME
-	_ZTV22CPhoneSingleAndWaiting @ 137 NONAME
-	_ZTV22CPhoneStartupSimlockUi @ 138 NONAME
-	_ZTV23CPhoneSingleAndAlerting @ 139 NONAME
-	_ZTV24CPhoneSingleAndCallSetup @ 140 NONAME
-	_ZTV25CPhoneCallSetupAndWaiting @ 141 NONAME
-	_ZTV25CPhoneConferenceAndSingle @ 142 NONAME
-	_ZTV25CPhoneResourceResolverGSM @ 143 NONAME
-	_ZTV26CPhoneConferenceAndWaiting @ 144 NONAME
-	_ZTV26CPhoneErrorMessagesHandler @ 145 NONAME
-	_ZTV26CPhoneTwoSinglesAndWaiting @ 146 NONAME
-	_ZTV28CPhoneConferenceAndCallSetup @ 147 NONAME
-	_ZTV30CPhoneUIStateMachineFactoryGSM @ 148 NONAME
-	_ZTV31CPhoneGeneralGsmMessagesHandler @ 149 NONAME
-	_ZTV34CPhoneSingleAndCallSetupAndWaiting @ 150 NONAME
-	_ZTV35CPhoneConferenceAndSingleAndWaiting @ 151 NONAME
-	_ZTV38CPhoneConferenceAndWaitingAndCallSetup @ 152 NONAME
-	_ZThn12_N10CPhoneIdleD0Ev @ 153 NONAME
-	_ZThn12_N10CPhoneIdleD1Ev @ 154 NONAME
-	_ZThn12_N14CPhoneAlertingD0Ev @ 155 NONAME
-	_ZThn12_N14CPhoneAlertingD1Ev @ 156 NONAME
-	_ZThn12_N14CPhoneIncomingD0Ev @ 157 NONAME
-	_ZThn12_N14CPhoneIncomingD1Ev @ 158 NONAME
-	_ZThn12_N15CPhoneCallSetupD0Ev @ 159 NONAME
-	_ZThn12_N15CPhoneCallSetupD1Ev @ 160 NONAME
-	_ZThn12_N15CPhoneGsmInCall27HandlePhoneForegroundEventLEv @ 161 NONAME
-	_ZThn12_N16CPhoneSingleCallD0Ev @ 162 NONAME
-	_ZThn12_N16CPhoneSingleCallD1Ev @ 163 NONAME
-	_ZThn12_N16CPhoneTwoSinglesD0Ev @ 164 NONAME
-	_ZThn12_N16CPhoneTwoSinglesD1Ev @ 165 NONAME
-	_ZThn12_N22CPhoneStartupSimlockUi19HandlePhoneStartupLEv @ 166 NONAME
-	_ZThn12_N22CPhoneStartupSimlockUi22HandlePropertyChangedLERK4TUidji @ 167 NONAME
-	_ZThn16_N10CPhoneIdleD0Ev @ 168 NONAME
-	_ZThn16_N10CPhoneIdleD1Ev @ 169 NONAME
-	_ZThn16_N14CPhoneAlerting14HandleCommandLEi @ 170 NONAME
-	_ZThn16_N14CPhoneAlertingD0Ev @ 171 NONAME
-	_ZThn16_N14CPhoneAlertingD1Ev @ 172 NONAME
-	_ZThn16_N14CPhoneIncomingD0Ev @ 173 NONAME
-	_ZThn16_N14CPhoneIncomingD1Ev @ 174 NONAME
-	_ZThn16_N15CPhoneCallSetupD0Ev @ 175 NONAME
-	_ZThn16_N15CPhoneCallSetupD1Ev @ 176 NONAME
-	_ZThn16_N15CPhoneGsmInCall14HandleCommandLEi @ 177 NONAME
-	_ZThn16_N16CPhoneSingleCall14HandleCommandLEi @ 178 NONAME
-	_ZThn16_N16CPhoneSingleCallD0Ev @ 179 NONAME
-	_ZThn16_N16CPhoneSingleCallD1Ev @ 180 NONAME
-	_ZThn16_N16CPhoneTwoSinglesD0Ev @ 181 NONAME
-	_ZThn16_N16CPhoneTwoSinglesD1Ev @ 182 NONAME
-	_ZThn20_N10CPhoneIdleD0Ev @ 183 NONAME
-	_ZThn20_N10CPhoneIdleD1Ev @ 184 NONAME
-	_ZThn20_N14CPhoneAlertingD0Ev @ 185 NONAME
-	_ZThn20_N14CPhoneAlertingD1Ev @ 186 NONAME
-	_ZThn20_N14CPhoneIncomingD0Ev @ 187 NONAME
-	_ZThn20_N14CPhoneIncomingD1Ev @ 188 NONAME
-	_ZThn20_N15CPhoneCallSetupD0Ev @ 189 NONAME
-	_ZThn20_N15CPhoneCallSetupD1Ev @ 190 NONAME
-	_ZThn20_N15CPhoneEmergency20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 191 NONAME
-	_ZThn20_N16CPhoneSingleCallD0Ev @ 192 NONAME
-	_ZThn20_N16CPhoneSingleCallD1Ev @ 193 NONAME
-	_ZThn20_N16CPhoneTwoSinglesD0Ev @ 194 NONAME
-	_ZThn20_N16CPhoneTwoSinglesD1Ev @ 195 NONAME
-	_ZThn24_N10CPhoneIdleD0Ev @ 196 NONAME
-	_ZThn24_N10CPhoneIdleD1Ev @ 197 NONAME
-	_ZThn24_N14CPhoneAlertingD0Ev @ 198 NONAME
-	_ZThn24_N14CPhoneAlertingD1Ev @ 199 NONAME
-	_ZThn24_N14CPhoneIncomingD0Ev @ 200 NONAME
-	_ZThn24_N14CPhoneIncomingD1Ev @ 201 NONAME
-	_ZThn24_N15CPhoneCallSetupD0Ev @ 202 NONAME
-	_ZThn24_N15CPhoneCallSetupD1Ev @ 203 NONAME
-	_ZThn24_N15CPhoneGsmInCall19SetDivertIndicationEi @ 204 NONAME
-	_ZThn24_N16CPhoneSingleCallD0Ev @ 205 NONAME
-	_ZThn24_N16CPhoneSingleCallD1Ev @ 206 NONAME
-	_ZThn24_N16CPhoneTwoSinglesD0Ev @ 207 NONAME
-	_ZThn24_N16CPhoneTwoSinglesD1Ev @ 208 NONAME
-	_ZThn28_N16CPhoneTwoSingles25HandleNumberEntryClearedLEv @ 209 NONAME
-	_ZThn32_N10CPhoneIdleD0Ev @ 210 NONAME
-	_ZThn32_N10CPhoneIdleD1Ev @ 211 NONAME
-	_ZThn32_N14CPhoneAlertingD0Ev @ 212 NONAME
-	_ZThn32_N14CPhoneAlertingD1Ev @ 213 NONAME
-	_ZThn32_N14CPhoneIncomingD0Ev @ 214 NONAME
-	_ZThn32_N14CPhoneIncomingD1Ev @ 215 NONAME
-	_ZThn32_N15CPhoneCallSetupD0Ev @ 216 NONAME
-	_ZThn32_N15CPhoneCallSetupD1Ev @ 217 NONAME
-	_ZThn32_N16CPhoneSingleCallD0Ev @ 218 NONAME
-	_ZThn32_N16CPhoneSingleCallD1Ev @ 219 NONAME
-	_ZThn32_N16CPhoneTwoSinglesD0Ev @ 220 NONAME
-	_ZThn32_N16CPhoneTwoSinglesD1Ev @ 221 NONAME
-	_ZThn4_N10CPhoneIdle12HandleErrorLERK12TPEErrorInfo @ 222 NONAME
-	_ZThn4_N10CPhoneIdle25HandlePhoneEngineMessageLEii @ 223 NONAME
-	_ZThn4_N10CPhoneIdleD0Ev @ 224 NONAME
-	_ZThn4_N10CPhoneIdleD1Ev @ 225 NONAME
-	_ZThn4_N14CPhoneAlerting25HandlePhoneEngineMessageLEii @ 226 NONAME
-	_ZThn4_N14CPhoneAlertingD0Ev @ 227 NONAME
-	_ZThn4_N14CPhoneAlertingD1Ev @ 228 NONAME
-	_ZThn4_N14CPhoneIncoming12HandleErrorLERK12TPEErrorInfo @ 229 NONAME
-	_ZThn4_N14CPhoneIncoming25HandlePhoneEngineMessageLEii @ 230 NONAME
-	_ZThn4_N14CPhoneIncomingD0Ev @ 231 NONAME
-	_ZThn4_N14CPhoneIncomingD1Ev @ 232 NONAME
-	_ZThn4_N15CPhoneCallSetup25HandlePhoneEngineMessageLEii @ 233 NONAME
-	_ZThn4_N15CPhoneCallSetupD0Ev @ 234 NONAME
-	_ZThn4_N15CPhoneCallSetupD1Ev @ 235 NONAME
-	_ZThn4_N16CPhoneSingleCall25HandlePhoneEngineMessageLEii @ 236 NONAME
-	_ZThn4_N16CPhoneSingleCallD0Ev @ 237 NONAME
-	_ZThn4_N16CPhoneSingleCallD1Ev @ 238 NONAME
-	_ZThn4_N16CPhoneTwoSingles25HandlePhoneEngineMessageLEii @ 239 NONAME
-	_ZThn4_N16CPhoneTwoSinglesD0Ev @ 240 NONAME
-	_ZThn4_N16CPhoneTwoSinglesD1Ev @ 241 NONAME
-	_ZThn4_N21CPhoneStateMachineGSM18CreatePhoneEngineLER14MEngineMonitor @ 242 NONAME
-	_ZThn4_N21CPhoneStateMachineGSM5StateEv @ 243 NONAME
-	_ZThn4_N21CPhoneStateMachineGSMD0Ev @ 244 NONAME
-	_ZThn4_N21CPhoneStateMachineGSMD1Ev @ 245 NONAME
-	_ZThn4_N22CPhoneSingleAndWaiting12HandleErrorLERK12TPEErrorInfo @ 246 NONAME
-	_ZThn4_N22CPhoneStartupSimlockUi25HandlePhoneEngineMessageLEii @ 247 NONAME
-	_ZThn4_N25CPhoneCallSetupAndWaiting12HandleErrorLERK12TPEErrorInfo @ 248 NONAME
-	_ZThn4_N25CPhoneResourceResolverGSMD0Ev @ 249 NONAME
-	_ZThn4_N25CPhoneResourceResolverGSMD1Ev @ 250 NONAME
-	_ZThn4_N26CPhoneConferenceAndWaiting12HandleErrorLERK12TPEErrorInfo @ 251 NONAME
-	_ZThn4_N26CPhoneErrorMessagesHandler22ShowErrorSpecificNoteLERK12TPEErrorInfo @ 252 NONAME
-	_ZThn4_N26CPhoneErrorMessagesHandlerD0Ev @ 253 NONAME
-	_ZThn4_N26CPhoneErrorMessagesHandlerD1Ev @ 254 NONAME
-	_ZThn4_N26CPhoneTwoSinglesAndWaiting12HandleErrorLERK12TPEErrorInfo @ 255 NONAME
-	_ZThn4_N34CPhoneSingleAndCallSetupAndWaiting12HandleErrorLERK12TPEErrorInfo @ 256 NONAME
-	_ZThn4_N35CPhoneConferenceAndSingleAndWaiting12HandleErrorLERK12TPEErrorInfo @ 257 NONAME
-	_ZThn4_N38CPhoneConferenceAndWaitingAndCallSetup12HandleErrorLERK12TPEErrorInfo @ 258 NONAME
-	_ZThn4_NK25CPhoneResourceResolverGSM17ResolveResourceIDERKi @ 259 NONAME
-	_ZThn8_N10CPhoneIdleD0Ev @ 260 NONAME
-	_ZThn8_N10CPhoneIdleD1Ev @ 261 NONAME
-	_ZThn8_N14CPhoneAlerting17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 262 NONAME
-	_ZThn8_N14CPhoneAlertingD0Ev @ 263 NONAME
-	_ZThn8_N14CPhoneAlertingD1Ev @ 264 NONAME
-	_ZThn8_N14CPhoneIncomingD0Ev @ 265 NONAME
-	_ZThn8_N14CPhoneIncomingD1Ev @ 266 NONAME
-	_ZThn8_N15CPhoneCallSetupD0Ev @ 267 NONAME
-	_ZThn8_N15CPhoneCallSetupD1Ev @ 268 NONAME
-	_ZThn8_N16CPhoneSingleCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 269 NONAME
-	_ZThn8_N16CPhoneSingleCallD0Ev @ 270 NONAME
-	_ZThn8_N16CPhoneSingleCallD1Ev @ 271 NONAME
-	_ZThn8_N16CPhoneTwoSingles17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 272 NONAME
-	_ZThn8_N16CPhoneTwoSinglesD0Ev @ 273 NONAME
-	_ZThn8_N16CPhoneTwoSinglesD1Ev @ 274 NONAME
+	_ZN16CPhoneSingleCall36DoStateSpecificCallSetUpDefinitionsLEv @ 48 NONAME
+	_ZN16CPhoneSingleCallC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 49 NONAME
+	_ZN16CPhoneSingleCallC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 50 NONAME
+	_ZN16CPhoneSingleCallD0Ev @ 51 NONAME
+	_ZN16CPhoneSingleCallD1Ev @ 52 NONAME
+	_ZN16CPhoneSingleCallD2Ev @ 53 NONAME
+	_ZN16CPhoneTwoSingles10ConstructLEv @ 54 NONAME
+	_ZN16CPhoneTwoSingles12OpenMenuBarLEv @ 55 NONAME
+	_ZN16CPhoneTwoSingles16UpdateInCallCbaLEv @ 56 NONAME
+	_ZN16CPhoneTwoSingles17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 57 NONAME
+	_ZN16CPhoneTwoSingles25HandleNumberEntryClearedLEv @ 58 NONAME
+	_ZN16CPhoneTwoSingles25HandlePhoneEngineMessageLEii @ 59 NONAME
+	_ZN16CPhoneTwoSingles26HandleConnectedConferenceLEi @ 60 NONAME
+	_ZN16CPhoneTwoSinglesC1EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 61 NONAME
+	_ZN16CPhoneTwoSinglesC2EP18MPhoneStateMachineP23MPhoneViewCommandHandleP19MPhoneCustomization @ 62 NONAME
+	_ZN16CPhoneTwoSinglesD0Ev @ 63 NONAME
+	_ZN16CPhoneTwoSinglesD1Ev @ 64 NONAME
+	_ZN16CPhoneTwoSinglesD2Ev @ 65 NONAME
+	_ZN21CPhoneStateMachineGSM18CreatePhoneEngineLER14MEngineMonitor @ 66 NONAME
+	_ZN21CPhoneStateMachineGSM5StateEv @ 67 NONAME
+	_ZN21CPhoneStateMachineGSMC1EP23MPhoneViewCommandHandle @ 68 NONAME
+	_ZN21CPhoneStateMachineGSMC2EP23MPhoneViewCommandHandle @ 69 NONAME
+	_ZN21CPhoneStateMachineGSMD0Ev @ 70 NONAME
+	_ZN21CPhoneStateMachineGSMD1Ev @ 71 NONAME
+	_ZN21CPhoneStateMachineGSMD2Ev @ 72 NONAME
+	_ZN22CPhoneSingleAndWaiting12HandleErrorLERK12TPEErrorInfo @ 73 NONAME
+	_ZN22CPhoneSingleAndWaiting36DoStateSpecificCallSetUpDefinitionsLEv @ 74 NONAME
+	_ZN22CPhoneStartupSimlockUi19HandlePhoneStartupLEv @ 75 NONAME
+	_ZN22CPhoneStartupSimlockUi22HandlePropertyChangedLERK4TUidji @ 76 NONAME
+	_ZN22CPhoneStartupSimlockUi25HandlePhoneEngineMessageLEii @ 77 NONAME
+	_ZN25CPhoneCallSetupAndWaiting12HandleErrorLERK12TPEErrorInfo @ 78 NONAME
+	_ZN25CPhoneResourceResolverGSM10ConstructLEv @ 79 NONAME
+	_ZN25CPhoneResourceResolverGSMC1Ev @ 80 NONAME
+	_ZN25CPhoneResourceResolverGSMC2Ev @ 81 NONAME
+	_ZN25CPhoneResourceResolverGSMD0Ev @ 82 NONAME
+	_ZN25CPhoneResourceResolverGSMD1Ev @ 83 NONAME
+	_ZN25CPhoneResourceResolverGSMD2Ev @ 84 NONAME
+	_ZN26CPhoneConferenceAndWaiting12HandleErrorLERK12TPEErrorInfo @ 85 NONAME
+	_ZN26CPhoneConferenceAndWaiting36DoStateSpecificCallSetUpDefinitionsLEv @ 86 NONAME
+	_ZN26CPhoneErrorMessagesHandler19SendGlobalInfoNoteLEi @ 87 NONAME
+	_ZN26CPhoneErrorMessagesHandler20SendGlobalErrorNoteLEi @ 88 NONAME
+	_ZN26CPhoneErrorMessagesHandler22SendGlobalWarningNoteLEi @ 89 NONAME
+	_ZN26CPhoneErrorMessagesHandler22ShowErrorSpecificNoteLERK12TPEErrorInfo @ 90 NONAME
+	_ZN26CPhoneErrorMessagesHandlerC1EP23MPhoneViewCommandHandleP18MPhoneStateMachine @ 91 NONAME
+	_ZN26CPhoneErrorMessagesHandlerC2EP23MPhoneViewCommandHandleP18MPhoneStateMachine @ 92 NONAME
+	_ZN26CPhoneErrorMessagesHandlerD0Ev @ 93 NONAME
+	_ZN26CPhoneErrorMessagesHandlerD1Ev @ 94 NONAME
+	_ZN26CPhoneErrorMessagesHandlerD2Ev @ 95 NONAME
+	_ZN26CPhoneTwoSinglesAndWaiting12HandleErrorLERK12TPEErrorInfo @ 96 NONAME
+	_ZN34CPhoneSingleAndCallSetupAndWaiting12HandleErrorLERK12TPEErrorInfo @ 97 NONAME
+	_ZN35CPhoneConferenceAndSingleAndWaiting12HandleErrorLERK12TPEErrorInfo @ 98 NONAME
+	_ZN38CPhoneConferenceAndWaitingAndCallSetup12HandleErrorLERK12TPEErrorInfo @ 99 NONAME
+	_ZNK16CPhoneSingleCall6CallIdEv @ 100 NONAME
+	_ZNK25CPhoneResourceResolverGSM17ResolveResourceIDERKi @ 101 NONAME
+	_ZTI10CPhoneIdle @ 102 NONAME
+	_ZTI13CPhoneStartup @ 103 NONAME
+	_ZTI14CPhoneAlerting @ 104 NONAME
+	_ZTI14CPhoneIncoming @ 105 NONAME
+	_ZTI15CPhoneCallSetup @ 106 NONAME
+	_ZTI15CPhoneEmergency @ 107 NONAME
+	_ZTI15CPhoneGsmInCall @ 108 NONAME
+	_ZTI16CPhoneConference @ 109 NONAME
+	_ZTI16CPhoneSingleCall @ 110 NONAME
+	_ZTI16CPhoneTwoSingles @ 111 NONAME
+	_ZTI21CPhoneStateMachineGSM @ 112 NONAME
+	_ZTI22CPhoneSingleAndWaiting @ 113 NONAME
+	_ZTI22CPhoneStartupSimlockUi @ 114 NONAME
+	_ZTI23CPhoneSingleAndAlerting @ 115 NONAME
+	_ZTI24CPhoneSingleAndCallSetup @ 116 NONAME
+	_ZTI25CPhoneCallSetupAndWaiting @ 117 NONAME
+	_ZTI25CPhoneConferenceAndSingle @ 118 NONAME
+	_ZTI25CPhoneResourceResolverGSM @ 119 NONAME
+	_ZTI26CPhoneConferenceAndWaiting @ 120 NONAME
+	_ZTI26CPhoneErrorMessagesHandler @ 121 NONAME
+	_ZTI26CPhoneTwoSinglesAndWaiting @ 122 NONAME
+	_ZTI28CPhoneConferenceAndCallSetup @ 123 NONAME
+	_ZTI30CPhoneUIStateMachineFactoryGSM @ 124 NONAME
+	_ZTI31CPhoneGeneralGsmMessagesHandler @ 125 NONAME
+	_ZTI34CPhoneSingleAndCallSetupAndWaiting @ 126 NONAME
+	_ZTI35CPhoneConferenceAndSingleAndWaiting @ 127 NONAME
+	_ZTI38CPhoneConferenceAndWaitingAndCallSetup @ 128 NONAME
+	_ZTV10CPhoneIdle @ 129 NONAME
+	_ZTV13CPhoneStartup @ 130 NONAME
+	_ZTV14CPhoneAlerting @ 131 NONAME
+	_ZTV14CPhoneIncoming @ 132 NONAME
+	_ZTV15CPhoneCallSetup @ 133 NONAME
+	_ZTV15CPhoneEmergency @ 134 NONAME
+	_ZTV15CPhoneGsmInCall @ 135 NONAME
+	_ZTV16CPhoneConference @ 136 NONAME
+	_ZTV16CPhoneSingleCall @ 137 NONAME
+	_ZTV16CPhoneTwoSingles @ 138 NONAME
+	_ZTV21CPhoneStateMachineGSM @ 139 NONAME
+	_ZTV22CPhoneSingleAndWaiting @ 140 NONAME
+	_ZTV22CPhoneStartupSimlockUi @ 141 NONAME
+	_ZTV23CPhoneSingleAndAlerting @ 142 NONAME
+	_ZTV24CPhoneSingleAndCallSetup @ 143 NONAME
+	_ZTV25CPhoneCallSetupAndWaiting @ 144 NONAME
+	_ZTV25CPhoneConferenceAndSingle @ 145 NONAME
+	_ZTV25CPhoneResourceResolverGSM @ 146 NONAME
+	_ZTV26CPhoneConferenceAndWaiting @ 147 NONAME
+	_ZTV26CPhoneErrorMessagesHandler @ 148 NONAME
+	_ZTV26CPhoneTwoSinglesAndWaiting @ 149 NONAME
+	_ZTV28CPhoneConferenceAndCallSetup @ 150 NONAME
+	_ZTV30CPhoneUIStateMachineFactoryGSM @ 151 NONAME
+	_ZTV31CPhoneGeneralGsmMessagesHandler @ 152 NONAME
+	_ZTV34CPhoneSingleAndCallSetupAndWaiting @ 153 NONAME
+	_ZTV35CPhoneConferenceAndSingleAndWaiting @ 154 NONAME
+	_ZTV38CPhoneConferenceAndWaitingAndCallSetup @ 155 NONAME
+	_ZThn12_N10CPhoneIdleD0Ev @ 156 NONAME
+	_ZThn12_N10CPhoneIdleD1Ev @ 157 NONAME
+	_ZThn12_N14CPhoneAlertingD0Ev @ 158 NONAME
+	_ZThn12_N14CPhoneAlertingD1Ev @ 159 NONAME
+	_ZThn12_N14CPhoneIncomingD0Ev @ 160 NONAME
+	_ZThn12_N14CPhoneIncomingD1Ev @ 161 NONAME
+	_ZThn12_N15CPhoneCallSetupD0Ev @ 162 NONAME
+	_ZThn12_N15CPhoneCallSetupD1Ev @ 163 NONAME
+	_ZThn12_N15CPhoneGsmInCall27HandlePhoneForegroundEventLEv @ 164 NONAME
+	_ZThn12_N16CPhoneSingleCallD0Ev @ 165 NONAME
+	_ZThn12_N16CPhoneSingleCallD1Ev @ 166 NONAME
+	_ZThn12_N16CPhoneTwoSinglesD0Ev @ 167 NONAME
+	_ZThn12_N16CPhoneTwoSinglesD1Ev @ 168 NONAME
+	_ZThn12_N22CPhoneStartupSimlockUi19HandlePhoneStartupLEv @ 169 NONAME
+	_ZThn12_N22CPhoneStartupSimlockUi22HandlePropertyChangedLERK4TUidji @ 170 NONAME
+	_ZThn16_N10CPhoneIdleD0Ev @ 171 NONAME
+	_ZThn16_N10CPhoneIdleD1Ev @ 172 NONAME
+	_ZThn16_N14CPhoneAlerting14HandleCommandLEi @ 173 NONAME
+	_ZThn16_N14CPhoneAlertingD0Ev @ 174 NONAME
+	_ZThn16_N14CPhoneAlertingD1Ev @ 175 NONAME
+	_ZThn16_N14CPhoneIncomingD0Ev @ 176 NONAME
+	_ZThn16_N14CPhoneIncomingD1Ev @ 177 NONAME
+	_ZThn16_N15CPhoneCallSetupD0Ev @ 178 NONAME
+	_ZThn16_N15CPhoneCallSetupD1Ev @ 179 NONAME
+	_ZThn16_N15CPhoneGsmInCall14HandleCommandLEi @ 180 NONAME
+	_ZThn16_N16CPhoneSingleCall14HandleCommandLEi @ 181 NONAME
+	_ZThn16_N16CPhoneSingleCallD0Ev @ 182 NONAME
+	_ZThn16_N16CPhoneSingleCallD1Ev @ 183 NONAME
+	_ZThn16_N16CPhoneTwoSinglesD0Ev @ 184 NONAME
+	_ZThn16_N16CPhoneTwoSinglesD1Ev @ 185 NONAME
+	_ZThn20_N10CPhoneIdleD0Ev @ 186 NONAME
+	_ZThn20_N10CPhoneIdleD1Ev @ 187 NONAME
+	_ZThn20_N14CPhoneAlertingD0Ev @ 188 NONAME
+	_ZThn20_N14CPhoneAlertingD1Ev @ 189 NONAME
+	_ZThn20_N14CPhoneIncomingD0Ev @ 190 NONAME
+	_ZThn20_N14CPhoneIncomingD1Ev @ 191 NONAME
+	_ZThn20_N15CPhoneCallSetupD0Ev @ 192 NONAME
+	_ZThn20_N15CPhoneCallSetupD1Ev @ 193 NONAME
+	_ZThn20_N15CPhoneEmergency20HandleRemConCommandLE25TRemConCoreApiOperationId26TRemConCoreApiButtonAction @ 194 NONAME
+	_ZThn20_N16CPhoneSingleCallD0Ev @ 195 NONAME
+	_ZThn20_N16CPhoneSingleCallD1Ev @ 196 NONAME
+	_ZThn20_N16CPhoneTwoSinglesD0Ev @ 197 NONAME
+	_ZThn20_N16CPhoneTwoSinglesD1Ev @ 198 NONAME
+	_ZThn24_N16CPhoneTwoSingles25HandleNumberEntryClearedLEv @ 199 NONAME
+	_ZThn28_N10CPhoneIdleD0Ev @ 200 NONAME
+	_ZThn28_N10CPhoneIdleD1Ev @ 201 NONAME
+	_ZThn28_N14CPhoneAlertingD0Ev @ 202 NONAME
+	_ZThn28_N14CPhoneAlertingD1Ev @ 203 NONAME
+	_ZThn28_N14CPhoneIncomingD0Ev @ 204 NONAME
+	_ZThn28_N14CPhoneIncomingD1Ev @ 205 NONAME
+	_ZThn28_N15CPhoneCallSetupD0Ev @ 206 NONAME
+	_ZThn28_N15CPhoneCallSetupD1Ev @ 207 NONAME
+	_ZThn28_N16CPhoneSingleCallD0Ev @ 208 NONAME
+	_ZThn28_N16CPhoneSingleCallD1Ev @ 209 NONAME
+	_ZThn28_N16CPhoneTwoSinglesD0Ev @ 210 NONAME
+	_ZThn28_N16CPhoneTwoSinglesD1Ev @ 211 NONAME
+	_ZThn4_N10CPhoneIdle12HandleErrorLERK12TPEErrorInfo @ 212 NONAME
+	_ZThn4_N10CPhoneIdle25HandlePhoneEngineMessageLEii @ 213 NONAME
+	_ZThn4_N10CPhoneIdleD0Ev @ 214 NONAME
+	_ZThn4_N10CPhoneIdleD1Ev @ 215 NONAME
+	_ZThn4_N14CPhoneAlerting25HandlePhoneEngineMessageLEii @ 216 NONAME
+	_ZThn4_N14CPhoneAlertingD0Ev @ 217 NONAME
+	_ZThn4_N14CPhoneAlertingD1Ev @ 218 NONAME
+	_ZThn4_N14CPhoneIncoming12HandleErrorLERK12TPEErrorInfo @ 219 NONAME
+	_ZThn4_N14CPhoneIncoming25HandlePhoneEngineMessageLEii @ 220 NONAME
+	_ZThn4_N14CPhoneIncomingD0Ev @ 221 NONAME
+	_ZThn4_N14CPhoneIncomingD1Ev @ 222 NONAME
+	_ZThn4_N15CPhoneCallSetup25HandlePhoneEngineMessageLEii @ 223 NONAME
+	_ZThn4_N15CPhoneCallSetupD0Ev @ 224 NONAME
+	_ZThn4_N15CPhoneCallSetupD1Ev @ 225 NONAME
+	_ZThn4_N16CPhoneSingleCall25HandlePhoneEngineMessageLEii @ 226 NONAME
+	_ZThn4_N16CPhoneSingleCallD0Ev @ 227 NONAME
+	_ZThn4_N16CPhoneSingleCallD1Ev @ 228 NONAME
+	_ZThn4_N16CPhoneTwoSingles25HandlePhoneEngineMessageLEii @ 229 NONAME
+	_ZThn4_N16CPhoneTwoSinglesD0Ev @ 230 NONAME
+	_ZThn4_N16CPhoneTwoSinglesD1Ev @ 231 NONAME
+	_ZThn4_N21CPhoneStateMachineGSM18CreatePhoneEngineLER14MEngineMonitor @ 232 NONAME
+	_ZThn4_N21CPhoneStateMachineGSM5StateEv @ 233 NONAME
+	_ZThn4_N21CPhoneStateMachineGSMD0Ev @ 234 NONAME
+	_ZThn4_N21CPhoneStateMachineGSMD1Ev @ 235 NONAME
+	_ZThn4_N22CPhoneSingleAndWaiting12HandleErrorLERK12TPEErrorInfo @ 236 NONAME
+	_ZThn4_N22CPhoneStartupSimlockUi25HandlePhoneEngineMessageLEii @ 237 NONAME
+	_ZThn4_N25CPhoneCallSetupAndWaiting12HandleErrorLERK12TPEErrorInfo @ 238 NONAME
+	_ZThn4_N25CPhoneResourceResolverGSMD0Ev @ 239 NONAME
+	_ZThn4_N25CPhoneResourceResolverGSMD1Ev @ 240 NONAME
+	_ZThn4_N26CPhoneConferenceAndWaiting12HandleErrorLERK12TPEErrorInfo @ 241 NONAME
+	_ZThn4_N26CPhoneErrorMessagesHandler22ShowErrorSpecificNoteLERK12TPEErrorInfo @ 242 NONAME
+	_ZThn4_N26CPhoneErrorMessagesHandlerD0Ev @ 243 NONAME
+	_ZThn4_N26CPhoneErrorMessagesHandlerD1Ev @ 244 NONAME
+	_ZThn4_N26CPhoneTwoSinglesAndWaiting12HandleErrorLERK12TPEErrorInfo @ 245 NONAME
+	_ZThn4_N34CPhoneSingleAndCallSetupAndWaiting12HandleErrorLERK12TPEErrorInfo @ 246 NONAME
+	_ZThn4_N35CPhoneConferenceAndSingleAndWaiting12HandleErrorLERK12TPEErrorInfo @ 247 NONAME
+	_ZThn4_N38CPhoneConferenceAndWaitingAndCallSetup12HandleErrorLERK12TPEErrorInfo @ 248 NONAME
+	_ZThn4_NK25CPhoneResourceResolverGSM17ResolveResourceIDERKi @ 249 NONAME
+	_ZThn8_N10CPhoneIdleD0Ev @ 250 NONAME
+	_ZThn8_N10CPhoneIdleD1Ev @ 251 NONAME
+	_ZThn8_N14CPhoneAlerting17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 252 NONAME
+	_ZThn8_N14CPhoneAlertingD0Ev @ 253 NONAME
+	_ZThn8_N14CPhoneAlertingD1Ev @ 254 NONAME
+	_ZThn8_N14CPhoneIncomingD0Ev @ 255 NONAME
+	_ZThn8_N14CPhoneIncomingD1Ev @ 256 NONAME
+	_ZThn8_N15CPhoneCallSetupD0Ev @ 257 NONAME
+	_ZThn8_N15CPhoneCallSetupD1Ev @ 258 NONAME
+	_ZThn8_N16CPhoneSingleCall17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 259 NONAME
+	_ZThn8_N16CPhoneSingleCallD0Ev @ 260 NONAME
+	_ZThn8_N16CPhoneSingleCallD1Ev @ 261 NONAME
+	_ZThn8_N16CPhoneTwoSingles17HandleKeyMessageLEN15MPhoneKeyEvents22TPhoneKeyEventMessagesE8TKeyCode @ 262 NONAME
+	_ZThn8_N16CPhoneTwoSinglesD0Ev @ 263 NONAME
+	_ZThn8_N16CPhoneTwoSinglesD1Ev @ 264 NONAME
 
--- a/phoneapp/phoneuistates/inc/cphoneconference.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/inc/cphoneconference.h	Thu Sep 09 18:09:57 2010 +0100
@@ -65,6 +65,12 @@
         virtual void HandleKeyMessageL(
             TPhoneKeyEventMessages aMessage,
             TKeyCode aCode );
+        
+        /**
+        * This function is called from displaycallsetup and 
+        * the purpose is to do state specific things for callsetup.
+        */
+        IMPORT_C virtual void DoStateSpecificCallSetUpDefinitionsL();
             
     protected:
 
@@ -102,8 +108,6 @@
         virtual void HandleConferenceIdleL();
                         
         virtual void MakeStateTransitionToTwoSinglesL();
-
-        virtual void DisplayCallSetupL( TInt aCallId );
         
         virtual TBool IsConferenceBubbleInSelectionMode() const;
         
@@ -143,7 +147,7 @@
         
         void MakeStateTransitionToIdleL();
         
-        void HandleDiallingL( TInt aCallId );
+        void HandleDialingL( TInt aCallId );
               
         void CallFromNewCallQueryL();
         
--- a/phoneapp/phoneuistates/inc/cphoneconferenceandwaiting.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/inc/cphoneconferenceandwaiting.h	Thu Sep 09 18:09:57 2010 +0100
@@ -70,6 +70,12 @@
         IMPORT_C virtual void HandleErrorL( 
             const TPEErrorInfo& aErrorInfo ); 
         
+        /**
+        * This function is called from displaycallsetup and 
+        * the purpose is to do state specific things for callsetup.
+        */
+        IMPORT_C virtual void DoStateSpecificCallSetUpDefinitionsL();
+        
     protected:
 
         /**
@@ -100,7 +106,7 @@
                   
          void MakeStateTransitionToConferenceAndSingleL( TInt aCallId );
          
-         void HandleDiallingL( TInt aCallId );
+         void HandleDialingL( TInt aCallId );
          
          void HandleWentOneToOneL( TInt aCallId );
       
--- a/phoneapp/phoneuistates/inc/cphonegsmincall.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/inc/cphonegsmincall.h	Thu Sep 09 18:09:57 2010 +0100
@@ -107,23 +107,9 @@
         */
         void HandleHoldNoteL( TInt aCallId, TBool aHold );
         
-        
-        /**
-        * Setter for divert indication showing in bubble.
-        * @param aDivertIndication ETrue to show divert indication,
-        *        EFalse to not. Usually setting EFalse isn't necessary
-        *        as it's a default value in bubble creation.
-        */
-        IMPORT_C void SetDivertIndication(
-            const TBool aDivertIndication );
-        
     private:
     
     	void ReplaceCallL();
-    	/**
-        * Handles divert indication 
-        */
-    	void HandeDivertIndicationL();
     };
 
 #endif // CPHONEGSMINCALL_H
--- a/phoneapp/phoneuistates/inc/cphonesingleandwaiting.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/inc/cphonesingleandwaiting.h	Thu Sep 09 18:09:57 2010 +0100
@@ -61,8 +61,14 @@
         /**
         * Handles user selected UI commands.
         * @param aCommand - selected command
-        */    
+        */
         TBool HandleCommandL( TInt aCommand );  
+        
+        /**
+        * This function is called from displaycallsetup and 
+        * the purpose is to do state specific things for callsetup.
+        */
+        IMPORT_C virtual void DoStateSpecificCallSetUpDefinitionsL();
             
     protected:
 
@@ -148,13 +154,7 @@
         * Handles received dialing message from Phone Engine.
         * @param aCallId - call id that received the event
         */ 
-        void HandleDiallingL( TInt aCallId );
-        
-        /**
-        * Sets up all call setup to display.
-        * @param aCallId - call id to set up
-        */ 
-        void DisplayCallSetupL( TInt aCallId );
+        void HandleDialingL( TInt aCallId );
         
         /**
         *  Handles received EPEMessageDisconnecting message from Phone Engine.
--- a/phoneapp/phoneuistates/inc/cphonesinglecall.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/inc/cphonesinglecall.h	Thu Sep 09 18:09:57 2010 +0100
@@ -65,6 +65,11 @@
             
         IMPORT_C virtual TBool HandleCommandL( TInt aCommand );
 
+        /**
+        * This function is called from displaycallsetup and 
+        * the purpose is to do state specific things for callsetup.
+        */
+        IMPORT_C virtual void DoStateSpecificCallSetUpDefinitionsL();
 
     protected:
 
@@ -91,6 +96,7 @@
         * @return   Call identifier.
         */
         IMPORT_C TInt CallId() const;
+        
     private:
     
     	void OpenVideoCallMenuBarL();
@@ -109,9 +115,7 @@
 
         void CallFromNewCallQueryL();
         
-        void HandleDiallingL( TInt aCallId );
-                
-        void DisplayCallSetupL( TInt aCallId );
+        void HandleDialingL( TInt aCallId );
         
         void SetCallResumeL();
         
--- a/phoneapp/phoneuistates/src/cphonealerting.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonealerting.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -132,11 +132,7 @@
 
                 if ( IsNumberEntryUsedL() )
                     {
-                    // Remove number entry from screen
-                    iViewCommandHandle->ExecuteCommandL( 
-                        EPhoneViewRemoveNumberEntry );
-                    // Do state-specific operation when number entry is cleared
-                    HandleNumberEntryClearedL();
+                    CloseClearNumberEntryAndLoadEffectL( ENumberEntryClose );
                     }
                 if ( !TopAppIsDisplayedL() )
                     {
--- a/phoneapp/phoneuistates/src/cphonecallsetup.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonecallsetup.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -103,18 +103,16 @@
         case MEngineMonitor::EPEMessageConnecting:
             HandleConnectingL( aCallId );
             break;
-		
-		case MEngineMonitor::EPEMessageShowVersion:
-			{
-			if ( iStateMachine->SecurityMode()->IsSecurityMode() )
-				{
-				// Do nothing if security mode is enabled.
-				return;
-				}
-			}
-		// Fall through
 
-        // fall through.    
+        case MEngineMonitor::EPEMessageShowVersion:
+            {
+            if ( iStateMachine->SecurityMode()->IsSecurityMode() )
+                {
+                // Do nothing if security mode is enabled.
+                return;
+                }
+            }
+        // Fall through
         case MEngineMonitor::EPEMessageIssuingSSRequest:
         case MEngineMonitor::EPEMessageCallBarred:
         case MEngineMonitor::EPEMessageIssuedSSRequest:
@@ -159,12 +157,12 @@
     // set when the CDMA network receives the call, not (like in GSM) when
     // when the remote party receives the call. So, in CDMA, the user
     // should still be able to cancel the MO call before the call is connected.
-    __LOGMETHODSTARTEND( EPhoneUIStates, 
-        "CPhoneCallSetup::HandleConnectingL()");
-    
+    __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneCallSetup::HandleConnectingL()");
     BeginUiUpdateLC();
     UpdateRemoteInfoDataL ( aCallId );
     
+    SetNeedToReturnToForegroundAppStatusL( EFalse );
+    
     // Re-enable global notes
     TPhoneCmdParamBoolean globalNotifierParam;
     globalNotifierParam.SetBoolean( EFalse );
@@ -191,9 +189,7 @@
 
     EndUiUpdate();
     
-    // Go to alerting state
     UpdateCbaL( EPhoneCallHandlingInCallCBA );
-
     iStateMachine->ChangeState( EPhoneStateAlerting );
     }
 
--- a/phoneapp/phoneuistates/src/cphonecallsetupandwaiting.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonecallsetupandwaiting.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -238,7 +238,7 @@
         iStateMachine->ChangeState( EPhoneStateAlerting );            
         }
     
-    EndUiUpdate();        
+    EndUiUpdate();
     }
         
 // -----------------------------------------------------------
@@ -276,7 +276,7 @@
     CPhoneState::SetTouchPaneButtons( EPhoneWaitingCallButtons );
     SetToolbarDimming( EFalse );
     
-    CPhoneState::EndUiUpdate();
+    EndUiUpdate();
  
     if ( CPhoneState::IsNumberEntryUsedL() )
         {
--- a/phoneapp/phoneuistates/src/cphoneconference.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneconference.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -168,7 +168,7 @@
             break;
             
         case MEngineMonitor::EPEMessageDialing:
-            HandleDiallingL( aCallId );
+            HandleDialingL( aCallId );
             break;
             
         case MEngineMonitor::EPEMessageIncoming:
@@ -443,7 +443,7 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneConference::HandleConferenceIdleL()");
-    
+    BeginTransEffectLC( ENumberEntryClose );
     BeginUiUpdateLC();
     
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
@@ -456,7 +456,7 @@
         {
         case ENoActiveCalls:
             MakeStateTransitionToIdleL();
-            break;
+            break; 
             
         case EOneActiveCall:
             {
@@ -472,13 +472,12 @@
                                 KPSUidScreenSaver,
                                 KScreenSaverAllowScreenSaver,
                                 EPhoneScreensaverNotAllowed );
-            
                 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
                 iStateMachine->ChangeState( EPhoneStateWaitingInSingle );    
                 }
             else
                 {
-                MakeStateTransitionToSingleL();                    
+                MakeStateTransitionToSingleL();
                 }
             }
             break;
@@ -491,8 +490,8 @@
             MakeStateTransitionToTwoSinglesL();
             break;
         }
-    
-    EndUiUpdate();  
+    EndUiUpdate();
+    EndTransEffect();     
     }
 
 // -----------------------------------------------------------
@@ -842,65 +841,34 @@
     }
 
 // -----------------------------------------------------------
-// CPhoneConference::HandleDiallingL
+// CPhoneConference::HandleDialingL
 // -----------------------------------------------------------
 //
-void CPhoneConference::HandleDiallingL( TInt aCallId )
+void CPhoneConference::HandleDialingL( TInt aCallId )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
-        "CPhoneConference::HandleDiallingL()");
-    
+        "CPhoneConference::HandleDialingL()");
     CPhonePubSubProxy::Instance()->ChangePropertyValue(
                     KPSUidScreenSaver,
                     KScreenSaverAllowScreenSaver,
                     EPhoneScreensaverNotAllowed );
-    
-    BeginUiUpdateLC(); 
-    
-    CloseSelectionListL(); 
-    
-    SetNumberEntryVisibilityL(EFalse);
+    CloseSelectionListL();
     
     // Display call setup 
     DisplayCallSetupL( aCallId );
-    
-    // Conference is understood as single call in buttons enumerations.
-    SetTouchPaneButtons(EPhoneCallSetupAndSingleButtons); 
-
-    EndUiUpdate();
-    
-    // Set Call Setup CBA 
-    UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
-      
+          
     // Go to conference and call setup state
     iStateMachine->ChangeState( EPhoneStateConferenceAndCallSetup );
     }
 
 // -----------------------------------------------------------
-// CPhoneConference::DisplayCallSetupL
+// CPhoneConference::DoStateSpecificCallSetUpDefinitionsL
 // -----------------------------------------------------------
 //
-void CPhoneConference::DisplayCallSetupL( TInt aCallId )
+EXPORT_C void CPhoneConference::DoStateSpecificCallSetUpDefinitionsL()
     {
-    __LOGMETHODSTARTEND( EPhoneUIStates, 
-        "CPhoneConference::DisplayCallSetupL()");
-    // Close menu bar, if it is displayed
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
-    // Remove dialogs if necessary
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
-
-    // Capture keys when the phone is dialling
-    CaptureKeysDuringCallNotificationL( ETrue );
-
-    // Bring Phone app in the foreground
-    TPhoneCmdParamInteger uidParam;
-    uidParam.SetInteger( KUidPhoneApplication.iUid );
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
-        &uidParam );
-
-    // Display call setup header
-    DisplayHeaderForOutgoingCallL( aCallId );
+    // Show incoming call buttons
+    SetTouchPaneButtons( EPhoneCallSetupAndSingleButtons );
     }
 
 // ---------------------------------------------------------
@@ -943,6 +911,9 @@
                     KScreenSaverAllowScreenSaver,
                     EPhoneScreensaverNotAllowed );
     
+    IsNumberEntryUsedL() ? 
+        BeginTransEffectLC( ECallUiAppear ) :
+        BeginTransEffectLC( ENumberEntryOpen );
     BeginUiUpdateLC();
     
     // Hide the number entry if it exists
@@ -953,12 +924,8 @@
     
     // Indicate that the menu application on foreground needs to be sent back to the foreground 
     // after call is ended.
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( !TopAppIsDisplayedL() );
-    iViewCommandHandle->ExecuteCommandL( 
-        EPhoneViewSetNeedToReturnToForegroundAppStatus,
-        &booleanParam );
- 
+    SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
+    
     TPhoneCmdParamBoolean dialerParam;
     dialerParam.SetBoolean( ETrue );
     
@@ -968,7 +935,7 @@
     CloseSelectionListL();
 
     // Close fast swap window if it's displayed
-    CEikonEnv::Static()->DismissTaskList();
+    EikonEnv()->DismissTaskList();
 
     SetTouchPaneButtons( EPhoneWaitingCallButtons );
     
@@ -976,6 +943,7 @@
     DisplayIncomingCallL( aCallId, dialerParam );
 
     EndUiUpdate();
+    EndTransEffect();
 
     // Go to incoming state
     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
@@ -988,7 +956,7 @@
 //
 void CPhoneConference::DisplayIncomingCallL( 
     TInt aCallId, 
-    const TPhoneCmdParamBoolean aCommandParam )
+    const TPhoneCmdParamBoolean /*aCommandParam*/ )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneConference::DisplayIncomingCallL()");
@@ -1000,11 +968,7 @@
 
     // Indicate that the Phone needs to be sent to the background if
     // an application other than the top application is in the foreground
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( !TopAppIsDisplayedL() );
-    iViewCommandHandle->ExecuteCommandL( 
-        EPhoneViewSetNeedToReturnToForegroundAppStatus,
-        &booleanParam );
+    SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
 
     // Bring Phone app in the foreground
     TPhoneCmdParamInteger uidParam;
--- a/phoneapp/phoneuistates/src/cphoneconferenceandcallsetup.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandcallsetup.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -374,35 +374,30 @@
                 }
             else
                 {
-                iStateMachine->ChangeState( EPhoneStateCallSetupInSingle );     
+                iStateMachine->ChangeState( EPhoneStateCallSetupInSingle );
                 }
             }
         }
     else
-        {       
-        // Remove  outgoing call
+        {
+        // Remove  outgoing call 
+        BeginTransEffectLC( ENumberEntryOpen );
         BeginUiUpdateLC();
-        
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
-        
         CheckIfRestoreNEContentAfterDtmfDialer();
-         
         if ( IsNumberEntryUsedL() )
             {
             // Show the number entry if it exists
             SetNumberEntryVisibilityL(ETrue);
-	        }
-	        
+            }
+            
         SetTouchPaneButtons( EPhoneConferenceButtons );
         EndUiUpdate();
-        
-        // Go to conference state
+        EndTransEffect(); 
         UpdateCbaL( EPhoneCallHandlingInCallCBA );
         iStateMachine->ChangeState( EPhoneStateConference );
-        } 
-
+        }
     }
-   
     
 // -----------------------------------------------------------
 // CPhoneConferenceAndCallSetup::UpdateInCallCbaL
--- a/phoneapp/phoneuistates/src/cphoneconferenceandsingle.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandsingle.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -459,14 +459,16 @@
 void CPhoneConferenceAndSingle::HandleIncomingL( TInt aCallId )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
-    	"CPhoneConferenceAndSingle::HandleIncomingL");
-    
+            "CPhoneConferenceAndSingle::HandleIncomingL");
+    IsNumberEntryUsedL() ? 
+        BeginTransEffectLC( ECallUiAppear ) :
+        BeginTransEffectLC( ENumberEntryOpen );
     BeginUiUpdateLC();  
     
     // Hide the number entry if it exists
     if ( IsNumberEntryUsedL() )
         {
-        SetNumberEntryVisibilityL( EFalse );    
+        SetNumberEntryVisibilityL( EFalse );
         }
     
     TPhoneCmdParamBoolean dialerParam;
@@ -492,7 +494,7 @@
     DisplayIncomingCallL( aCallId, dialerParam  );
 
     EndUiUpdate();
-
+    EndTransEffect();
     TPhoneCmdParamBoolean conferenceAndSingleFlag;
     conferenceAndSingleFlag.SetBoolean( EFalse );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetConferenceAndSingleFlag, 
--- a/phoneapp/phoneuistates/src/cphoneconferenceandsingleandwaiting.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandsingleandwaiting.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -198,31 +198,25 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneConferenceAndSingleAndWaiting::HandleIdleL()");
-             
-    BeginUiUpdateLC();    
-    // Set touch controls
+    BeginUiUpdateLC();
     SetTouchPaneButtonEnabled( EPhoneCallComingCmdAnswer );
     SetTouchPaneButtons( EPhoneWaitingCallButtons );
-       
 
     TPhoneCmdParamBoolean conferenceExistsForCallId;
     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference,
         aCallId, &conferenceExistsForCallId );
-    
     if( conferenceExistsForCallId.Boolean() )
         {
         // Remove conference member from conference bubble
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveFromConference, 
-            aCallId );            
+            aCallId );
         }
     else
         {
-        // Remove call 
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
-
         TPhoneCmdParamBoolean conferenceBubbleExists;
         iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, 
-            &conferenceBubbleExists );                            
+            &conferenceBubbleExists );
         if( !conferenceBubbleExists.Boolean() )
             {
             // Idle message came for conference member.
@@ -237,13 +231,13 @@
             if( callStateData.CallId() >= 0 )
                 {
                 // We have Conference and Waiting calls left
-                MakeStateTransitionToConferenceAndWaitingL( aCallId );            
+                MakeStateTransitionToConferenceAndWaitingL( aCallId );
                 }
             else
                 {
                 // We have Conference and Single calls left
                 MakeStateTransitionToConferenceAndSingleL( aCallId );
-                }                
+                }
             }
         }
     EndUiUpdate();
@@ -465,7 +459,6 @@
                 
                 // Go to Incoming state
                 iCbaManager->UpdateIncomingCbaL( callStateData.CallId() );
-
                 SetTouchPaneButtons( EPhoneIncomingCallButtons );
                 UpdateSilenceButtonDimming();
                 SetTouchPaneButtonEnabled( EPhoneCallComingCmdAnswer );
@@ -487,7 +480,6 @@
             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
             SetTouchPaneButtons( EPhoneWaitingCallButtons );        
             SetTouchPaneButtonEnabled( EPhoneCallComingCmdAnswer );
-
             iStateMachine->ChangeState( EPhoneStateWaitingInSingle );        
             }
             break;
@@ -495,7 +487,6 @@
             {
             // Go to Two Singles And Waiting state
             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
-
             SetTouchPaneButtons( EPhoneWaitingCallButtons );        
             iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
             }
--- a/phoneapp/phoneuistates/src/cphoneconferenceandwaiting.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandwaiting.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -115,7 +115,7 @@
             break;
             
         case MEngineMonitor::EPEMessageDialing:
-            HandleDiallingL( aCallId );
+            HandleDialingL( aCallId );
             break;
             
         case MEngineMonitor::EPEMessageConferenceIdle:
@@ -265,29 +265,22 @@
 void CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL( TInt aCallId )
     {
     __LOGMETHODSTARTEND(EPhoneUIStates, "CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL()");
-        
-    BeginUiUpdateLC();    
-         
+    BeginUiUpdateLC();
+    
     UpdateRemoteInfoDataL ( aCallId );
-    
     if ( IsConferenceBubbleInSelectionMode() )
         {
-        CloseSelectionListL();                
+        CloseSelectionListL();
         }
-    
-    // Show bubble
     TPhoneCmdParamCallHeaderData callHeaderParam;
     callHeaderParam.SetCallState( EPEStateConnected );
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
-        &callHeaderParam );
-    
-    
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, 
+            aCallId, &callHeaderParam );
     if ( IsNumberEntryUsedL() )
         {
         if ( NeedToReturnToForegroundAppL() )
             {
             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
-            
             UpdateCbaL( EPhoneCallHandlingInCallCBA );
             }
         }
@@ -299,9 +292,8 @@
     SetTouchPaneButtonDisabled( EPhoneInCallCmdPrivate );
     
     EndUiUpdate();
-
     // CBA updates in above if-else conditions
-    iStateMachine->ChangeState( EPhoneStateConferenceAndSingle );                     
+    iStateMachine->ChangeState( EPhoneStateConferenceAndSingle );
     }
 
 // -----------------------------------------------------------
@@ -324,13 +316,8 @@
     
     if( iRingingCallId == aCallId )
         {
-        BeginUiUpdateLC();    
- 
-        // Idle message came for waiting call            
-        // Close menu bar, if it is displayed
+        BeginUiUpdateLC();
         iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
-        // Remove call 
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
             
         if ( IsNumberEntryUsedL() )
@@ -339,9 +326,7 @@
                 {
                 // Return phone to the background if menu application is needed to foreground.
                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
- 
                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
-                
                 UpdateCbaL( EPhoneCallHandlingInCallCBA );
                 }
             }
@@ -367,20 +352,16 @@
             SetTouchPaneButtons( EPhoneConferenceButtons );    
             }
         EndUiUpdate();
-
-        // Go to conference state
         // CBA updates in above if-else conditions
-        iStateMachine->ChangeState( EPhoneStateConference );                    
+        iStateMachine->ChangeState( EPhoneStateConference );
         }
     else
         {
         // Idle message came for conference member
-        CPhoneConference::HandleIdleL( aCallId );           
-        
+        CPhoneConference::HandleIdleL( aCallId );
         TPhoneCmdParamBoolean conferenceBubbleExists;
         iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference,
-                                             &conferenceBubbleExists );                            
-                
+                                             &conferenceBubbleExists );
         if( !conferenceBubbleExists.Boolean() )
             {
             HandleConferenceIdleL();
@@ -395,18 +376,12 @@
 void CPhoneConferenceAndWaiting::HandleConferenceIdleL()
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::HandleConferenceIdleL()");
- 
     BeginUiUpdateLC();
-    
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
-    
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
     TPhoneCmdParamInteger activeCallCount;
     iViewCommandHandle->ExecuteCommandL(
-        EPhoneViewGetCountOfActiveCalls, &activeCallCount );
-        
-     // Close menu bar, if it is displayed
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-        
+            EPhoneViewGetCountOfActiveCalls, &activeCallCount );
     switch( activeCallCount.Integer() )
         {
         case ENoActiveCalls:
@@ -425,7 +400,7 @@
             BringIncomingToForegroundL(); 
            
             SetCallHeaderTextsForCallComingInL( iRingingCallId, EFalse, &callHeaderParam );
-          
+            
             iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, 
                 iRingingCallId ,&callHeaderParam );
             iCbaManager->UpdateIncomingCbaL( iRingingCallId );
@@ -434,16 +409,15 @@
             // Hide number entry if visible
             if ( IsNumberEntryVisibleL() )
                 {
-                SetNumberEntryVisibilityL(EFalse);   
+                SetNumberEntryVisibilityL(EFalse);
                 }
-            
             SetTouchPaneButtons( EPhoneIncomingCallButtons );
             SetTouchPaneButtonEnabled( EPhoneCallComingCmdSilent );
-            SetRingingTonePlaybackL( iRingingCallId );          
+            SetRingingTonePlaybackL( iRingingCallId );
             SetToolbarDimming( ETrue );
             iStateMachine->ChangeState( EPhoneStateIncoming );
-            break;   
-            }   
+            }
+            break;
             
         case EOneActiveCall:
             if ( IsNumberEntryUsedL() )
@@ -453,8 +427,7 @@
                 }
             // Go to waiting in single state
             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
-            
-            SetTouchPaneButtons( EPhoneWaitingCallButtons );             
+            SetTouchPaneButtons( EPhoneWaitingCallButtons );
             iStateMachine->ChangeState( EPhoneStateWaitingInSingle );
             break;
             
@@ -466,9 +439,7 @@
                 }
             // Go to two singles and waiting state
             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
-            
-            SetTouchPaneButtons( EPhoneWaitingCallButtons );               
-
+            SetTouchPaneButtons( EPhoneWaitingCallButtons ); 
             iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
             break; 
         default:
@@ -476,7 +447,7 @@
           // Waiting for all conference member idles
           // This case may happen when 'End all calls' because conferenceIdle may 
           // come earlier than idle for conference member
-           break;            
+           break;
         }
     EndUiUpdate();
     }
@@ -492,33 +463,29 @@
     }
 
 // -----------------------------------------------------------
-// CPhoneConferenceAndWaiting::HandleDiallingL
+// CPhoneConferenceAndWaiting::HandleDialingL
 // -----------------------------------------------------------
 //
-void CPhoneConferenceAndWaiting::HandleDiallingL( TInt aCallId )
+void CPhoneConferenceAndWaiting::HandleDialingL( TInt aCallId )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
-        "CPhoneConferenceAndWaiting::HandleDiallingL()");
-    
-    BeginUiUpdateLC();
-    // Hide number entry if it exists
-    SetNumberEntryVisibilityL(EFalse);        
-
+        "CPhoneConferenceAndWaiting::HandleDialingL()");
     // Display call setup 
     DisplayCallSetupL( aCallId );
-
-    SetTouchPaneButtons( EPhoneCallSetupButtons ); 
-
-    EndUiUpdate();
-    
-    // Update conference and waiting and call setup softkeys
-    UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
-    
     // Go to conference and waiting and call setup state
     iStateMachine->ChangeState( EPhoneStateConferenceAndWaitingAndCallSetup );
     }
 
 // -----------------------------------------------------------
+// CPhoneConferenceAndWaiting::DoStateSpecificCallSetUpDefinitionsL
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneConferenceAndWaiting::DoStateSpecificCallSetUpDefinitionsL()
+    {
+    SetTouchPaneButtons( EPhoneCallSetupButtons );
+    }
+
+// -----------------------------------------------------------
 // CPhoneConferenceAndWaiting::HandleWentOneToOneL
 // -----------------------------------------------------------
 //
@@ -556,7 +523,6 @@
         // Go to Conference And Single And Waiting state
         iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );  
         }
-
     EndUiUpdate();
     }
 
--- a/phoneapp/phoneuistates/src/cphoneconferenceandwaitingandcallsetup.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandwaitingandcallsetup.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -385,12 +385,9 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL");
-
     BeginUiUpdateLC();
-        
+    
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
-        
-    // Close menu bar, if it is displayed
     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
 
     if ( IsNumberEntryUsedL() )
@@ -428,18 +425,13 @@
             // Reset Hold flag to view
             TPhoneCmdParamBoolean holdFlag;
             holdFlag.SetBoolean( EFalse );
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );       
-
-            // Go to Call Setup And Waiting state
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
             SetTouchPaneButtons( EPhoneCallSetupButtons ); 
-
             SetToolbarDimming( ETrue );
-
-            // No need update cbas            
             iStateMachine->ChangeState( EPhoneStateCallSetupAndWaiting );
             }
         }
-    EndUiUpdate();            
+    EndUiUpdate();
     }
 
 // -----------------------------------------------------------
@@ -517,7 +509,7 @@
                 UpdateCbaL( EPhoneCallHandlingInCallCBA );                  
                 iStateMachine->ChangeState( EPhoneStateConferenceAndCallSetup );
                 }
-            EndUiUpdate();            
+            EndUiUpdate();
             }
         }
     }
--- a/phoneapp/phoneuistates/src/cphoneemergency.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneemergency.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -45,8 +45,10 @@
 
 // ================= MEMBER FUNCTIONS =======================
 
+// -----------------------------------------------------------
 // C++ default constructor can NOT contain any code, that
 // might leave.
+// -----------------------------------------------------------
 //
 CPhoneEmergency::CPhoneEmergency(
     MPhoneStateMachine* aStateMachine,
@@ -62,7 +64,7 @@
 // Destructor
 // (other items were commented in a header).
 // -----------------------------------------------------------
-
+//
 CPhoneEmergency::~CPhoneEmergency()
     {
     }
@@ -183,10 +185,10 @@
                     }
                  }
             break;
-            
+
         case MEngineMonitor::EPEMessageColpNumberAvailable:
             //Don't show COLP note during emergency call.
-            break; 
+            break;
 
         default:
             CPhoneGsmInCall::HandlePhoneEngineMessageL(
@@ -330,7 +332,7 @@
 
     if ( aCallId == KPEEmergencyCallId )
         {
-        if ( !IsSimOk() )
+        if ( !IsSimOk() || IsSimStateNotPresentWithSecurityModeEnabled() )
             {
             TPhoneCmdParamBoolean visibleMode;
             visibleMode.SetBoolean( ETrue );
@@ -360,12 +362,8 @@
 
         // Indicate that the Phone needs to be sent to the background if
         // an application other than the top application is in the foreground
-        TPhoneCmdParamBoolean booleanParam;
-        booleanParam.SetBoolean( !TopAppIsDisplayedL() );
-        iViewCommandHandle->ExecuteCommandL(
-                EPhoneViewSetNeedToReturnToForegroundAppStatus,
-            &booleanParam );
-
+        SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
+        
         // Bring Phone app in the foreground
         TPhoneCmdParamInteger uidParam;
         uidParam.SetInteger( KUidPhoneApplication.iUid );
@@ -551,11 +549,11 @@
             }
         }
     else if ( iStateMachine->SecurityMode()->IsAutolockEnabled()
-    	|| SimState() != EPESimUsable
-    	|| iStartupInterrupted )
+        || SimState() != EPESimUsable
+        || iStartupInterrupted )
         {
         if ( TouchCallHandlingSupported() )
-        	{
+            {
             resourceId = EPhoneCallHandlingEmergencyInCallNoOptions;
             }
         else if ( audioOutput == EPEWiredAudioAccessory || IsSwivelClosed())
@@ -581,8 +579,8 @@
             {
             resourceId = EPhoneCallHandlingEmergencyHandsetCBA;
             }
-        else if ( ( audioOutput == EPEHandset ) 
-        		&& ( btAvailable ) )
+        else if ( ( audioOutput == EPEHandset )
+                && ( btAvailable ) )
             {
             resourceId = EPhoneCallHandlingInCallBtaaCBA;
             }
@@ -643,10 +641,10 @@
             {
             if ( TouchCallHandlingSupported() )
                 {
-                CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode ); 
+                CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode );
                 }
             else if ( !iStateMachine->SecurityMode()->IsAutolockEnabled()
-            	&& SimState() == EPESimUsable )   
+                && SimState() == EPESimUsable )
                 {
                 // do base operation
                 CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode );
@@ -696,6 +694,10 @@
             DisconnectEmergencyCallL();
             break;
 
+        case EPhoneCmdUpdateEmergencyCba:
+            UpdateInCallCbaL();
+            break;
+
         default:
             commandStatus = CPhoneGsmInCall::HandleCommandL( aCommand );
             break;
@@ -768,24 +770,24 @@
     TEventCode aEventCode )
     {
     __LOGMETHODSTARTEND(EPhoneUIStates, "CPhoneEmergency::HandleKeyEventL( ) ");
-    
+
     if ( TouchCallHandlingSupported() )
         {
         CPhoneState::HandleKeyEventL( aKeyEvent, aEventCode );
         }
     else
         {
-		 if ( iStateMachine->SecurityMode()->IsAutolockEnabled()
-			&& CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) )
-			{
-			// Send the key event to the phone engine
-			SendKeyEventL( aKeyEvent, aEventCode );
-			}
-		else
-			{
-			// Handle numeric keys when key events are received in idle state
-			CPhoneState::HandleKeyEventL( aKeyEvent, aEventCode );
-			}
+         if ( iStateMachine->SecurityMode()->IsAutolockEnabled()
+            && CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) )
+            {
+            // Send the key event to the phone engine
+            SendKeyEventL( aKeyEvent, aEventCode );
+            }
+        else
+            {
+            // Handle numeric keys when key events are received in idle state
+            CPhoneState::HandleKeyEventL( aKeyEvent, aEventCode );
+            }
         }
     }
 
@@ -880,8 +882,8 @@
     const TPEAudioOutput audioOutput =
         iStateMachine->PhoneEngineInfo()->AudioOutput();
 
-    if ( !( TouchCallHandlingSupported() ) 
-    		&& iCallSetup && audioOutput != EPENotActive )
+    if ( !( TouchCallHandlingSupported() )
+            && iCallSetup && audioOutput != EPENotActive )
         {
         if ( audioOutput == EPELoudspeaker )
             {
@@ -951,33 +953,33 @@
 // --------------------------------------------------------------
 //
 TBool CPhoneEmergency::TouchCallHandlingSupported () const
-	{
-	if ( FeatureManager::FeatureSupported ( KFeatureIdTouchCallHandling ) )
-		{
-		return ETrue;
-		}
-	else 
-		{
-		return EFalse;
-		}
-	}
+    {
+    if ( FeatureManager::FeatureSupported ( KFeatureIdTouchCallHandling ) )
+        {
+        return ETrue;
+        }
+    else
+        {
+        return EFalse;
+        }
+    }
 
 // --------------------------------------------------------------
 // CPhoneEmergency::UseEmergencyNoIhfCBA
 // --------------------------------------------------------------
 //
 TBool CPhoneEmergency::UseEmergencyNoIhfCBA( const TPEAudioOutput& aAudioOutput ) const
-	{
-	if ( !( TouchCallHandlingSupported() ) 
-		&& ( ( aAudioOutput == EPEWiredAudioAccessory ) || ( IsSwivelClosed() ) ) )
-		{
-		return ETrue;
-		}
-	else 
-		{
-		return EFalse;
-		}
-	}
+    {
+    if ( !( TouchCallHandlingSupported() )
+        && ( ( aAudioOutput == EPEWiredAudioAccessory ) || ( IsSwivelClosed() ) ) )
+        {
+        return ETrue;
+        }
+    else
+        {
+        return EFalse;
+        }
+    }
 
 // --------------------------------------------------------------
 // CPhoneEmergency::UseHandsetEmergencyCBA
@@ -985,15 +987,15 @@
 //
 TBool CPhoneEmergency::UseHandsetEmergencyCBA( const TPEAudioOutput& aAudioOutput ) const
     {
-	if ( !( TouchCallHandlingSupported() ) 
-		&& ( ( aAudioOutput == EPELoudspeaker ) || ( aAudioOutput == EPEBTAudioAccessory ) ) )
-		{
-		return ETrue;
-		}
-	else 
-		{
-		return EFalse;
-		}
+    if ( !( TouchCallHandlingSupported() )
+        && ( ( aAudioOutput == EPELoudspeaker ) || ( aAudioOutput == EPEBTAudioAccessory ) ) )
+        {
+        return ETrue;
+        }
+    else
+        {
+        return EFalse;
+        }
     }
 
 // --------------------------------------------------------------
--- a/phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -358,6 +358,10 @@
                 {
                 SendGlobalInfoNoteL( EPhoneNotePhoneOutOf3GCoverage );
                 }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection );
+                }
              break;
             
         case ECCPErrorCCNormalCallClearing:
@@ -390,10 +394,7 @@
             break;
             
         case ECCPErrorMovedPermanently:
-            if( IsVideoCall( aErrorInfo.iCallId ) )
-                {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue22 );
-                }
+            SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue22 );
             break;
             
         case ECCPErrorNoAnswerForVideo:
@@ -423,6 +424,10 @@
                 {
                 SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue38 );
                 }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection );
+                }
             break;
             
         case ECCPErrorCCRequestedFacilityNotSubscribed:
@@ -437,10 +442,7 @@
             break;
 
         case ECCPErrorCCIncomingCallsBarredInCug:
-            if( IsVideoCall( aErrorInfo.iCallId ) )
-                {
-                SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue55 );
-                }
+            SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue55 );
             break;
             
         case ECCPErrorCCIncompatibleDestination:
@@ -522,6 +524,10 @@
                 {
                 SendGlobalInfoNoteL( EPhoneNoteCallInfoServiceNotAvailable );
                 }
+            else
+                {
+                SendGlobalWarningNoteL( EPhoneErrorInConnection );
+                }
             break;
             
         case ECCPErrorCUGOutgoingCallsBarred:
--- a/phoneapp/phoneuistates/src/cphonegeneralgsmmessageshandler.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonegeneralgsmmessageshandler.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -252,9 +252,6 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneGeneralGsmMessagesHandler::HandleIncomingCallForwardedL()" );
-    
-    iActiveState.SetDivertIndication( ETrue );
-    
     }
 
 // -----------------------------------------------------------
--- a/phoneapp/phoneuistates/src/cphonegsmincall.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonegsmincall.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -399,53 +399,4 @@
             EPhoneViewShowGlobalNote, &globalNoteParam ); 
     }
 
-
-// ---------------------------------------------------------
-// CPhoneGsmInCall::SetDivertIndication
-// ---------------------------------------------------------
-//
-EXPORT_C void CPhoneGsmInCall::SetDivertIndication( const TBool aDivertIndication )
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneGsmInCall::SetDivertIndication()");
-           
-    CPhoneState::SetDivertIndication( aDivertIndication );    
-    
-    TRAP_IGNORE( HandeDivertIndicationL() );
-	}
-
-// ---------------------------------------------------------
-// CPhoneGsmInCall::HandeDivertIndicationL
-// ---------------------------------------------------------
-//
-void CPhoneGsmInCall::HandeDivertIndicationL()
-    {
-    __LOGMETHODSTARTEND( EPhoneControl, "CPhoneGsmInCall::HandeDivertIndicationL()");
-       
-    TBuf< KPhoneContactNameMaxLength > remoteInfoText( KNullDesC );
-    TInt ringingCallId ( KErrNotFound );
-        
-    ringingCallId = GetRingingCallL();
-    
-    if( ringingCallId > KErrNotFound )
-       {
-       TPhoneCmdParamCallHeaderData divertData;
-    
-       divertData.SetCallFlag( CBubbleManager::EDiverted );
-       
-       GetRemoteInfoDataL( ringingCallId, remoteInfoText );
-       divertData.SetCLIText( 
-                  remoteInfoText,
-                  CBubbleManager::ERight );
-       
-       divertData.SetCiphering(
-           iStateMachine->PhoneEngineInfo()->IsSecureCall( ringingCallId ) );
-       divertData.SetCipheringIndicatorAllowed(
-           iStateMachine->PhoneEngineInfo()->SecureSpecified() );
-           
-       iViewCommandHandle->ExecuteCommandL( 
-           EPhoneViewUpdateCallHeaderRemoteInfoData, ringingCallId,
-           &divertData );
-        }
-    }
-
 // End of File
--- a/phoneapp/phoneuistates/src/cphoneincoming.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneincoming.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -199,6 +199,9 @@
     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallIdByState, &callState );
     TInt connectedCall = callState.CallId(); 
     
+    IsNumberEntryUsedL() ? 
+        BeginTransEffectLC( ECallUiAppear ) :
+        BeginTransEffectLC( ENumberEntryOpen );
     BeginUiUpdateLC();
     
     // Hide the number entry if it exists
@@ -213,7 +216,7 @@
     AllowShowingOfWaitingCallHeaderL( dialerParam );
       
     // Close fast swap window if it's displayed
-    CEikonEnv::Static()->DismissTaskList();
+    EikonEnv()->DismissTaskList();
     
     // If the 1st incoming call became Connected, this is waiting call
     // If the 1st incoming call went just Idle, this is a normal call
@@ -236,10 +239,10 @@
     DisplayIncomingCallL( aCallId, dialerParam );
 
     EndUiUpdate();
+    EndTransEffect();
 
     if ( connectedCall > KErrNotFound )
         {
-        // Go to incoming state
         iCbaManager->UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
         iStateMachine->ChangeState( EPhoneStateWaitingInSingle );   
         }
@@ -270,12 +273,8 @@
     
     // Indicate that the Phone needs to be sent to the background if
     // an application other than the top application is in the foreground
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( !TopAppIsDisplayedL() );
-    iViewCommandHandle->ExecuteCommandL( 
-            EPhoneViewSetNeedToReturnToForegroundAppStatus,
-        &booleanParam );
-
+    SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
+    
     // Bring Phone app in the foreground
     TPhoneCmdParamInteger uidParam;
     uidParam.SetInteger( KUidPhoneApplication.iUid );
--- a/phoneapp/phoneuistates/src/cphoneresourceresolvergsm.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphoneresourceresolvergsm.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -40,7 +40,8 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //
-EXPORT_C CPhoneResourceResolverGSM::CPhoneResourceResolverGSM(): iEnv( *CEikonEnv::Static() )
+EXPORT_C CPhoneResourceResolverGSM::CPhoneResourceResolverGSM() :
+    iEnv( *CEikonEnv::Static() ) // codescanner::performance::eikonenvstatic
     {
     }
 
--- a/phoneapp/phoneuistates/src/cphonesingleandalerting.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonesingleandalerting.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -204,8 +204,8 @@
         iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
             &callHeaderParam );
 
-        CPhoneState::SetTouchPaneButtons( EPhoneTwoSinglesButtons );
-        CPhoneState::EndUiUpdate();
+        SetTouchPaneButtons( EPhoneTwoSinglesButtons );
+        EndUiUpdate();
               
         // Set Hold flag to view
         TPhoneCmdParamBoolean holdFlag;
--- a/phoneapp/phoneuistates/src/cphonesingleandcallsetup.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonesingleandcallsetup.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -291,55 +291,44 @@
 void CPhoneSingleAndCallSetup::HandleIdleL( TInt aCallId )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneSingleAndCallSetup::HandleIdleL()");
-    
     BeginUiUpdateLC();
- 
-    // Remove call 
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
-
-    // Close menu bar, if it is displayed
     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
     // Find out do we have single or outgoing call left
     TPhoneCmdParamInteger activeCallCount;
     iViewCommandHandle->ExecuteCommandL(
-        EPhoneViewGetCountOfActiveCalls, &activeCallCount );
-        
+            EPhoneViewGetCountOfActiveCalls, &activeCallCount );
     if( activeCallCount.Integer() )
         {
         CheckIfRestoreNEContentAfterDtmfDialer();
- 
         if ( IsNumberEntryUsedL() )
             {
             // Show the number entry if it exists
             SetNumberEntryVisibilityL(ETrue);
-	        }
-	    else
-    	    {
-    	    // Set incall CBAs
-    	    UpdateCbaL( EPhoneCallHandlingInCallCBA );    
-    	    }
-	        
+            }
+        else
+            {
+            // Set incall CBAs
+            UpdateCbaL( EPhoneCallHandlingInCallCBA );    
+            }
         SetTouchPaneButtons( EPhoneIncallButtons );    
         // UnCapture keys callsetup fails
         CaptureKeysDuringCallNotificationL( EFalse );
         // Setup call was terminated
-        iStateMachine->ChangeState( EPhoneStateSingle );            
+        iStateMachine->ChangeState( EPhoneStateSingle );
         }
     else
         {
-    	// Display call termination note, if necessary
-    	DisplayCallTerminationNoteL();
-
+        // Display call termination note, if necessary
+        DisplayCallTerminationNoteL();
         // Single call was terminated
         SetTouchPaneButtons( EPhoneCallSetupButtons );
         SetToolbarDimming( ETrue );
-		SetToolbarButtonLoudspeakerEnabled();
+        SetToolbarButtonLoudspeakerEnabled();
         // Update call setup CBAs
         UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
-        iStateMachine->ChangeState( EPhoneStateCallSetup );            
+        iStateMachine->ChangeState( EPhoneStateCallSetup );
         }
-        
     EndUiUpdate();
     }
 
--- a/phoneapp/phoneuistates/src/cphonesingleandcallsetupandwaiting.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonesingleandcallsetupandwaiting.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -120,18 +120,17 @@
         {
         // send-key
         case EKeyYes:
-			if( IsNumberEntryVisibleL() )
-				{
-            	CPhoneState::CallFromNumberEntryL();    						
-				}
-			else
-				{
-				// Number entry is behind waiting call bubble
-				// We can't answer to waiting call in this state
-				// so display Not allowed -note.						
-                CPhoneState::SendGlobalErrorNoteL( 
-                    EPhoneNoteTextNotAllowed );
-				}
+            if( IsNumberEntryVisibleL() )
+                {
+                CPhoneState::CallFromNumberEntryL();
+                }
+            else
+                {
+                // Number entry is behind waiting call bubble
+                // We can't answer to waiting call in this state
+                // so display Not allowed -note.
+                CPhoneState::SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed );
+                }
             break;
             
         // end-key
@@ -174,7 +173,7 @@
             else
                 {
                 // handle end key
-                DisconnectOutgoingCallL();              
+                DisconnectOutgoingCallL();
                 }
             break;
             
@@ -597,7 +596,7 @@
 // CPhoneSingleAndCallSetupAndWaiting::StateChangeToTwoSinglesL
 // -----------------------------------------------------------
 //
-void CPhoneSingleAndCallSetupAndWaiting::StateChangeToTwoSinglesL( TInt aCallId )
+void CPhoneSingleAndCallSetupAndWaiting::StateChangeToTwoSinglesL( TInt /*aCallId*/ )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
 	    "CPhoneSingleAndCallSetupAndWaiting::StateChangeToTwoSinglesL()");
@@ -618,7 +617,7 @@
 // CPhoneSingleAndCallSetupAndWaiting::StateChangeToTwoSinglesAndWaitingL
 // -----------------------------------------------------------
 //
-void CPhoneSingleAndCallSetupAndWaiting::StateChangeToTwoSinglesAndWaitingL( TInt aCallId )
+void CPhoneSingleAndCallSetupAndWaiting::StateChangeToTwoSinglesAndWaitingL( TInt /*aCallId*/ )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
 	    "CPhoneSingleAndCallSetupAndWaiting::StateChangeToTwoSinglesAndWaitingL()");
--- a/phoneapp/phoneuistates/src/cphonesingleandwaiting.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonesingleandwaiting.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -149,7 +149,7 @@
             break;
 
         case MEngineMonitor::EPEMessageDialing:
-            HandleDiallingL( aCallId );
+            HandleDialingL( aCallId );
             break;
             
         case MEngineMonitor::EPEMessageDisconnecting:
@@ -434,7 +434,6 @@
 
         // Remove call
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
-
         // Idle message came for waiting call
         if ( IsNumberEntryUsedL() )
             {
@@ -442,9 +441,7 @@
                 {
                 // Return phone to the background if send to background is needed.
                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
-
                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
-
                 UpdateCbaL( EPhoneCallHandlingInCallCBA );
                 }
             else
@@ -465,13 +462,21 @@
                 }
             }
         
+        if ( IsVideoCall( iSingleCallId ) )
+            {
+            TPhoneCmdParamInteger uidParam;
+            uidParam.SetInteger( KVtUiAppUidValue.iUid );
+
+            // Set video Phone as the top application
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication,
+                &uidParam );
+            }
+        
         SetTouchPaneButtons( EPhoneIncallButtons );
         EndUiUpdate();
-
         // CBA updates in above if-else conditions
         iStateMachine->ChangeState( EPhoneStateSingle );
         }
-
     }
 
 // -----------------------------------------------------------
@@ -578,9 +583,7 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates,
         "CPhoneSingleAndWaiting::MakeStateTransitionToTwoSinglesL() ");
-
     BeginUiUpdateLC();
-
     UpdateRemoteInfoDataL ( aCallId );
     // Show bubble
     TPhoneCmdParamCallHeaderData callHeaderParam;
@@ -606,19 +609,16 @@
     if ( IsNumberEntryUsedL() && NeedToReturnToForegroundAppL() )
         {
         iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
-
         UpdateCbaL( EPhoneCallHandlingInCallCBA );
         }
     else
         {
-        // Set Two singles softkeys
+        // Set Two singles state softkeys
         UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
         }
-
+    
     SetTouchPaneButtons( EPhoneTwoSinglesButtons );
     EndUiUpdate();
-
-    // Go to two singles state
     // CBA updates in above if-else conditions
     iStateMachine->ChangeState( EPhoneStateTwoSingles );
     }
@@ -649,63 +649,30 @@
     }
 
 // -----------------------------------------------------------
-// CPhoneSingleAndWaiting::HandleDiallingL
+// CPhoneSingleAndWaiting::HandleDialingL
 // -----------------------------------------------------------
 //
-void CPhoneSingleAndWaiting::HandleDiallingL( TInt aCallId )
+void CPhoneSingleAndWaiting::HandleDialingL( TInt aCallId )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates,
-        "CPhoneSingleAndWaiting::HandleDiallingL() ");
-
-    BeginUiUpdateLC();
-
-    // Hide number entry if it exists
-    SetNumberEntryVisibilityL(EFalse);
-
+        "CPhoneSingleAndWaiting::HandleDialingL() ");
     // Display call setup
     DisplayCallSetupL( aCallId );
-
-    // Set Hold flag to view ( DTMF menu label have to present )
-    TPhoneCmdParamBoolean holdFlag;
-    holdFlag.SetBoolean( EFalse );
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
-
-    SetTouchPaneButtons( EPhoneCallSetupButtons );
-
-    EndUiUpdate();
-
-    // Update call setup CBAs
-    UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
-
     // Go to Single And Waiting And Call Setup state
     iStateMachine->ChangeState( EPhoneStateSingleAndCallSetupAndWaiting );
     }
 
 // -----------------------------------------------------------
-// CPhoneSingleAndWaiting::DisplayCallSetupL
+// CPhoneSingleAndWaiting::DoStateSpecificCallSetUpDefinitionsL
 // -----------------------------------------------------------
 //
-void CPhoneSingleAndWaiting::DisplayCallSetupL( TInt aCallId )
+EXPORT_C void CPhoneSingleAndWaiting::DoStateSpecificCallSetUpDefinitionsL()
     {
-    __LOGMETHODSTARTEND( EPhoneUIStates,
-        "CPhoneSingleAndWaiting::DisplayCallSetupL() ");
-    // Close menu bar, if it is displayed
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
-    // Remove dialogs if necessary
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
-
-    // Capture keys when the phone is dialling
-    CaptureKeysDuringCallNotificationL( ETrue );
-
-    // Force telephony to the foreground
-    TPhoneCmdParamInteger uidParam;
-    uidParam.SetInteger( KUidPhoneApplication.iUid );
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
-        &uidParam );
-
-    // Display call setup header
-    DisplayHeaderForOutgoingCallL( aCallId );
+    // Set Hold flag to view ( DTMF menu label have to present )
+    TPhoneCmdParamBoolean holdFlag;
+    holdFlag.SetBoolean( EFalse );
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
+    SetTouchPaneButtons( EPhoneCallSetupButtons );
     }
 
 // -----------------------------------------------------------
@@ -744,7 +711,7 @@
 // CPhoneSingleAndWaiting::HandleDisconnectingL
 // -----------------------------------------------------------
 //
-void CPhoneSingleAndWaiting::HandleDisconnectingL( TInt aCallId )
+void CPhoneSingleAndWaiting::HandleDisconnectingL( TInt /*aCallId*/ )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneSingleAndWaiting::HandleDisconnectingL( ) ");
     }
--- a/phoneapp/phoneuistates/src/cphonesinglecall.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonesinglecall.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -122,7 +122,6 @@
     
     // Update phone number availability for menu use
     PhoneNumberAvailableInPhoneEngineL( callStateData.CallId() );
-	  
     }
 
 // -----------------------------------------------------------
@@ -229,7 +228,7 @@
             break;
                 
         case MEngineMonitor::EPEMessageDialing:
-            HandleDiallingL( aCallId );
+            HandleDialingL( aCallId );
             break;
         
         /* Flow through */ 
@@ -503,7 +502,9 @@
                     KPSUidScreenSaver,
                     KScreenSaverAllowScreenSaver,
                     EPhoneScreensaverNotAllowed );
-    
+    IsNumberEntryUsedL() ? 
+        BeginTransEffectLC( ECallUiAppear ) :
+        BeginTransEffectLC( ENumberEntryOpen );
     BeginUiUpdateLC();
     
     // Hide the number entry if it exists
@@ -519,7 +520,7 @@
     AllowShowingOfWaitingCallHeaderL( dialerParam );    
 
     // Close fast swap window if it's displayed
-    CEikonEnv::Static()->DismissTaskList();
+    EikonEnv()->DismissTaskList();
 
     // Show incoming call buttons
     SetTouchPaneButtons( EPhoneWaitingCallButtons );    
@@ -528,15 +529,13 @@
     DisplayIncomingCallL( aCallId, dialerParam );
 
     EndUiUpdate();
-
+    EndTransEffect();
     // This query is required to dismiss
     // Operation cannot be completed in waiting and single state
     if ( iSwitchToVideoQuery )
         {
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveQuery );
         }
-    
-    // Go to incoming state
     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
     iStateMachine->ChangeState( EPhoneStateWaitingInSingle );        
     }
@@ -547,7 +546,7 @@
 //
 void CPhoneSingleCall::DisplayIncomingCallL( 
     TInt aCallId, 
-    const TPhoneCmdParamBoolean aCommandParam )
+    const TPhoneCmdParamBoolean /*aCommandParam*/ )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneSingleCall::DisplayIncomingCallL()");
@@ -565,12 +564,8 @@
     
     // Indicate that the Phone needs to be sent to the background if
     // an application other than the top application is in the foreground
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( !TopAppIsDisplayedL() );
-    iViewCommandHandle->ExecuteCommandL( 
-        EPhoneViewSetNeedToReturnToForegroundAppStatus,
-        &booleanParam );
-
+    SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
+    
     // Bring Phone app in the foreground
     TPhoneCmdParamInteger uidParam;
     uidParam.SetInteger( KUidPhoneApplication.iUid );
@@ -610,61 +605,31 @@
     }
 
 // -----------------------------------------------------------
-// CPhoneSingleCall::HandleDiallingL
+// CPhoneSingleCall::HandleDialingL
 // -----------------------------------------------------------
 //
-void CPhoneSingleCall::HandleDiallingL( TInt aCallId )
+void CPhoneSingleCall::HandleDialingL( TInt aCallId )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
-        "CPhoneSingleCall::HandleDiallingL()");
+        "CPhoneSingleCall::HandleDialingL()");
     
     CPhonePubSubProxy::Instance()->ChangePropertyValue(
                     KPSUidScreenSaver,
                     KScreenSaverAllowScreenSaver,
                     EPhoneScreensaverNotAllowed );
-    
-    BeginUiUpdateLC();
-    
-    SetNumberEntryVisibilityL(EFalse);
-    
-    // Show incoming call buttons
-    SetTouchPaneButtons( EPhoneCallSetupAndSingleButtons );
-
     // Display call setup 
     DisplayCallSetupL( aCallId );
-
-    EndUiUpdate();
-
-    // Go to call setup state
-    UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
     iStateMachine->ChangeState( EPhoneStateCallSetupInSingle );
     }
-    
+
 // -----------------------------------------------------------
-// CPhoneSingleCall::DisplayCallSetupL
+// CPhoneSingleCall::DoStateSpecificCallSetUpDefinitionsL
 // -----------------------------------------------------------
 //
-void CPhoneSingleCall::DisplayCallSetupL( TInt aCallId )
+EXPORT_C void CPhoneSingleCall::DoStateSpecificCallSetUpDefinitionsL()
     {
-    __LOGMETHODSTARTEND( EPhoneUIStates, 
-        "CPhoneSingleCall::DisplayCallSetupL()");
-    // Close menu bar, if it is displayed
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
-    // Remove dialogs if necessary
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
-
-    // Capture keys when the phone is dialling
-    CaptureKeysDuringCallNotificationL( ETrue );
-
-    // Force telephony to the foreground
-    TPhoneCmdParamInteger uidParam;
-    uidParam.SetInteger( KUidPhoneApplication.iUid );
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
-        &uidParam );
-
-    // Display call setup header
-    DisplayHeaderForOutgoingCallL( aCallId );
+    // Show incoming call buttons
+    SetTouchPaneButtons( EPhoneCallSetupAndSingleButtons );
     }
 
 // -----------------------------------------------------------
--- a/phoneapp/phoneuistates/src/cphonestatemachinegsm.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonestatemachinegsm.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -295,6 +295,10 @@
         {
         __PHONELOGSTATECHANGE( iOldStateId, iNewStateId );
         iOldStateId = iNewStateId;
+        
+        // Needs to be set or any attempts to access eikon env handle
+        // will fail
+        iState->SetEikonEnv( EikonEnv() );
         }
 
     return iState;
--- a/phoneapp/phoneuistates/src/cphonetwosingles.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonetwosingles.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -401,6 +401,9 @@
                     KScreenSaverAllowScreenSaver,
                     EPhoneScreensaverNotAllowed );
     
+    IsNumberEntryUsedL() ? 
+        BeginTransEffectLC( ECallUiAppear ) :
+        BeginTransEffectLC( ENumberEntryOpen );
     BeginUiUpdateLC();
     
     // Hide the number entry if it exists
@@ -416,7 +419,7 @@
     AllowShowingOfWaitingCallHeaderL( dialerParam );
     
     // Close fast swap window if it's displayed
-    CEikonEnv::Static()->DismissTaskList();
+    EikonEnv()->DismissTaskList();
 
     // Display incoming call
     DisplayIncomingCallL( aCallId, dialerParam );
@@ -427,6 +430,7 @@
     SetTouchPaneButtons( EPhoneWaitingCallButtons );
 
     EndUiUpdate();
+    EndTransEffect();
 
     // Go to incoming state
     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
@@ -439,7 +443,7 @@
 //
 void CPhoneTwoSingles::DisplayIncomingCallL( 
     TInt aCallId, 
-    const TPhoneCmdParamBoolean aCommandParam )
+    const TPhoneCmdParamBoolean /*aCommandParam*/ )
     {
     __LOGMETHODSTARTEND( EPhoneUIStates,
          "CPhoneTwoSingles::DisplayIncomingCallL()"); 
@@ -451,11 +455,7 @@
 
     // Indicate that the Phone needs to be sent to the background if
     // an application other than the top application is in the foreground
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( !TopAppIsDisplayedL() );
-    iViewCommandHandle->ExecuteCommandL( 
-        EPhoneViewSetNeedToReturnToForegroundAppStatus,
-        &booleanParam );
+    SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
 
     // Bring Phone app in the foreground
     TPhoneCmdParamInteger uidParam;
--- a/phoneapp/phoneuistates/src/cphonetwosinglesandwaiting.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuistates/src/cphonetwosinglesandwaiting.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -217,27 +217,21 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneTwoSinglesAndWaiting::HandleIdleL()");
-     
-    BeginUiUpdateLC();    
-         
+    BeginUiUpdateLC();
     if ( !IsNumberEntryUsedL() )
         {
-        // Close menu bar, if number entry isnt open.
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );       
+        iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); 
         }
-    
-    // Remove call 
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
     
     if ( iRingingCallId == aCallId )
         {
-        StateTransitionToTwoSinglesL();    
+        StateTransitionToTwoSinglesL();
         }
     else
         {
         StateTransitionToSingleAndWaitingL();
         }
-
     EndUiUpdate();
     }
 
@@ -349,12 +343,7 @@
     iViewCommandHandle->ExecuteCommandL( EPhoneViewCreateConference, aCallId,
         &callHeaderParam );
         
-    // Clear the flag
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( EFalse );
-    iViewCommandHandle->ExecuteCommandL( 
-         EPhoneViewSetNeedToReturnToForegroundAppStatus,
-         &booleanParam );
+    SetNeedToReturnToForegroundAppStatusL( EFalse );
         
     EndUiUpdate();
     // Go to Conference And Waiting state
--- a/phoneapp/phoneuiutils/bwins/phoneuiutilsu.def	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/bwins/phoneuiutilsu.def	Thu Sep 09 18:09:57 2010 +0100
@@ -328,4 +328,5 @@
 	?After@CPhoneTimer@@QAEXVTTimeIntervalMicroSeconds32@@VTCallBack@@@Z @ 327 NONAME ; void CPhoneTimer::After(class TTimeIntervalMicroSeconds32, class TCallBack)
 	?ContactMatcher@TPhoneCmdParamReconnectQuery@@QBEPAVCPhCntMatcher@@XZ @ 328 NONAME ; class CPhCntMatcher * TPhoneCmdParamReconnectQuery::ContactMatcher(void) const
 	?ConvertToNumeric@CPhoneQwertyHandler@@QAEHAAUTKeyEvent@@@Z @ 329 NONAME ; int CPhoneQwertyHandler::ConvertToNumeric(struct TKeyEvent &)
+	?DoVanityNumberConversion@PhoneVanityDialingUtils@@SAXAAVTDes16@@@Z @ 330 NONAME ; void PhoneVanityDialingUtils::DoVanityNumberConversion(class TDes16 &)
 
--- a/phoneapp/phoneuiutils/eabi/phoneuiutilsu.def	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/eabi/phoneuiutilsu.def	Thu Sep 09 18:09:57 2010 +0100
@@ -420,4 +420,5 @@
 	_ZThn4_N26CPhoneResourceResolverBaseD1Ev @ 419 NONAME
 	_ZThn4_NK26CPhoneResourceResolverBase17ResolveResourceIDERKi @ 420 NONAME
 	_ZN19CPhoneQwertyHandler16ConvertToNumericER9TKeyEvent @ 421 NONAME
+	_ZN23PhoneVanityDialingUtils24DoVanityNumberConversionER6TDes16 @ 422 NONAME
 
--- a/phoneapp/phoneuiutils/group/phoneuiutils.mmp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/group/phoneuiutils.mmp	Thu Sep 09 18:09:57 2010 +0100
@@ -53,6 +53,7 @@
 SOURCE          phoneloggerviewcommands.cpp
 SOURCE          phonestatestrings.cpp
 SOURCE          phonestatestringsgsm.cpp
+SOURCE          phonevanitydialingutils.cpp
 SOURCE          rphoneanimclearblacklist.cpp
 SOURCE          tphonecmdparamappinfo.cpp
 SOURCE          tphonecmdparamaudiooutput.cpp
--- a/phoneapp/phoneuiutils/inc/phoneconstants.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/inc/phoneconstants.h	Thu Sep 09 18:09:57 2010 +0100
@@ -161,14 +161,18 @@
 
 // Used in CPhoneKeys
 // The character to be used as the 'wait' character, by DTMF code.
-const TUint KPhoneDtmfWaitCharacter  = 'w';
+const TUint KPhoneDtmfWaitCharacter = 'w';
+const TUint KPhoneDtmfWaitCharacterUpper = 'W';
 
 // The character to be used as the 'soft pause' character, by DTMF code.
 const TUint KPhoneDtmfPauseCharacter = 'p';
+const TUint KPhoneDtmfPauseCharacterUpper = 'P';
 
 // The character to be used as the 'speed-dial' character, by DTMF code.
 const TUint KPhoneDtmfSpeedDialCharacter = '+';
 
+const TUint KPhoneDtmfPlusCharacter = 135;  // Bluetooth SU-8W '+'
+
 // The length of the speed dial prefix, used to prevent buffer overflow
 const TUint KPhoneDtmfSpeedDialPrefixLength = 1;
 
--- a/phoneapp/phoneuiutils/inc/phoneloggerviewcommands.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/inc/phoneloggerviewcommands.h	Thu Sep 09 18:09:57 2010 +0100
@@ -194,10 +194,10 @@
 		EPhoneViewPrivateFromConference,
 		/** EPhoneViewSelectedConfMember */
 		EPhoneViewSelectedConfMember,
+		/** EPhoneViewGetConferenceListVisibleFlag */
+		EPhoneViewGetConferenceListVisibleFlag,
 		/** EPhoneViewOpenConferenceList */
 		EPhoneViewOpenConferenceList,
-		/** EPhoneViewGetConferenceListVisibleFlag */
-		EPhoneViewGetConferenceListVisibleFlag,
 		/** EPhoneViewGetCallState */
 		EPhoneViewGetCallState,
 		/** EPhoneViewGetCallIdByState */
@@ -246,10 +246,6 @@
 		EPhoneViewSetBlockingDialogStatus,
 		/** EPhoneViewSetPhoneNumberAvailableInPhoneEngine */
 		EPhoneViewSetPhoneNumberAvailableInPhoneEngine,
-		/** EPhoneViewSetSecurityMode */
-		EPhoneViewSetSecurityMode,
-		/** EPhoneViewGetSecurityModeStatus */
-		EPhoneViewGetSecurityModeStatus,
 		/** EPhoneViewSetStatusPaneVisible */
 		EPhoneViewSetStatusPaneVisible,
 		/** EPhoneViewEnableKeyLock */
@@ -366,12 +362,12 @@
 		EPhoneViewSetVideoCallDTMFVisibilityFlag,
 		/** EPhoneViewLoadPlugins */
 		EPhoneViewLoadPlugins,
-		/** PhoneViewServiceSelection */
-		PhoneViewServiceSelection,
 		/** EPhoneViewOpenVirtualKeyBoard */
 		EPhoneViewOpenVirtualKeyBoard,
 		/** EPhoneViewUpdateNoteSoftkeys */
 		EPhoneViewUpdateNoteSoftkeys,
+		/** EPhoneViewSendAiwCommand */
+		EPhoneViewSendAiwCommand,
 		/** EPhoneViewShowCustomizedDialer */
 		EPhoneViewShowCustomizedDialer,
 		/** EPhoneViewHideCustomizedDialer */
@@ -380,6 +376,8 @@
 		EPhoneViewGetCustomizedDialerMenuResourceId,
 		/** EPhoneViewGetCustomizedDialerCbaResourceId */
 		EPhoneViewGetCustomizedDialerCbaResourceId,
+		/** EPhoneViewCipheringInfoChangePlayTone */
+		EPhoneViewCipheringInfoChangePlayTone,
 		/** EPhoneViewCreatePhoneBookServices */
 		EPhoneViewCreatePhoneBookServices,
 		/** EPhoneViewDisableKeyLockWithoutNote */
@@ -404,6 +402,8 @@
 		EPhoneViewAddContactByString,
 		/** EPhoneViewIsActiveNoteDissmissableByKeyEvent */
 		EPhoneViewIsActiveNoteDissmissableByKeyEvent,
+		/** EPhoneViewUpdateContextMenu */
+		EPhoneViewUpdateContextMenu,
 		/** EPhoneViewSetNoConnectedCalls */
 		EPhoneViewSetNoConnectedCalls,
 		/** EPhoneViewIsDTMFEditorVisible */
@@ -430,12 +430,18 @@
 		EPhoneViewGetNeedToReturnToForegroundAppStatus,
 		/** EPhoneViewSetNeedToReturnToForegroundAppStatus */
 		EPhoneViewSetNeedToReturnToForegroundAppStatus,
+		/** EPhoneViewSetConferenceAndWaitingVideo */
+		EPhoneViewSetConferenceAndWaitingVideo,
+		/** EPhoneViewLaunchMultimediaSharing */
+		EPhoneViewLaunchMultimediaSharing,
 		/** EPhoneViewGetQwertyModeObserver */
 		EPhoneViewGetQwertyModeObserver,
 		/** EPhoneViewSetIncallBubbleTrue */
 		EPhoneViewSetIncallBubbleTrue,
 		/** EPhoneViewSetIncallBubbleFalse */
 		EPhoneViewSetIncallBubbleFalse,
+		/** EPhoneViewIsDisplayingMenuOrDialog */
+		EPhoneViewIsDisplayingMenuOrDialog,
 		/** , // Don't remove this, this should always be the last in list. */
 		EPhoneAmountOfCommands
 		};
--- a/phoneapp/phoneuiutils/inc/phonerssbase.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/inc/phonerssbase.h	Thu Sep 09 18:09:57 2010 +0100
@@ -138,8 +138,6 @@
     EPhoneVideoCallIncoming,
     EPhoneVideoCallIncomingShort,
 
-    // "Muted"
-    EPhoneInCallMutedText,
     // "Call"
     EPhoneCall,
     // " Call %N"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiutils/inc/phonevanitydialingutils.h	Thu Sep 09 18:09:57 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*     Helper class for converting vanity dialing numbers
+*
+*/
+
+
+#ifndef PHONEVANITYDIALINGUTILS_H
+#define PHONEVANITYDIALINGUTILS_H
+
+
+//  INCLUDES
+#include <e32std.h>
+
+
+// CLASS DECLARATION
+
+/**
+* Defines helper function for vanity dialing number conversion
+*/
+class PhoneVanityDialingUtils
+    {
+    public:
+        /**
+        * Converts vanity dialing number to normal phone number
+        * @param aDes Phone number to be converted
+        */   
+        IMPORT_C static void DoVanityNumberConversion( TDes& aDes );
+    };
+
+
+#endif //PHONEVANITYDIALINGUTILS_H
--- a/phoneapp/phoneuiutils/inc/tphonecmdparamtranseffect.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/inc/tphonecmdparamtranseffect.h	Thu Sep 09 18:09:57 2010 +0100
@@ -37,6 +37,8 @@
 enum TPhoneTransEffectType
     {
     EPhoneTransEffectNone,
+    EPhoneTransEffectCallUiAppear,
+    EPhoneTransEffectCallUiDisappear,
     // These 3 effect types can be used only when dialer is
     // opened/closed when some other app than phone is visible 
     // on the foreground/in the background.
--- a/phoneapp/phoneuiutils/src/cphonekeys.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/src/cphonekeys.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -86,9 +86,13 @@
             case KPhoneDtmfHashCharacter:      // Hash
             case KPhoneDtmfStarCharacter:      // Asterisk
                 // the following key can be got via taps of *
-            case KPhoneDtmfSpeedDialCharacter: // Plus
-            case KPhoneDtmfPauseCharacter:     // DTMF Soft-Pause character
-            case KPhoneDtmfWaitCharacter:      // DTMF Wait character
+            case KPhoneDtmfSpeedDialCharacter:  // Plus
+            case KPhoneDtmfPlusCharacter:       // SU-8W Plus
+                
+            case KPhoneDtmfPauseCharacterUpper: // DTMF Soft-Pause character 'P'
+            case KPhoneDtmfWaitCharacterUpper:  // DTMF Wait character 'W'
+            case KPhoneDtmfPauseCharacter:      // DTMF Soft-Pause character 'p'
+            case KPhoneDtmfWaitCharacter:       // DTMF Wait character 'w'
                 result = ETrue;
                 break;
             default:
--- a/phoneapp/phoneuiutils/src/cphoneresourceresolverbase.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/src/cphoneresourceresolverbase.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -47,7 +47,7 @@
 // -----------------------------------------------------------------------------
 //
 EXPORT_C CPhoneResourceResolverBase::CPhoneResourceResolverBase():
-    iEnv( *CEikonEnv::Static() )
+    iEnv( *CEikonEnv::Static() ) // codescanner::performance::eikonenvstatic
     {
     if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) )
         {
@@ -1080,10 +1080,6 @@
             retVal = R_PHONE_DISCONNECTING_NETWORK_WAIT_NOTE;
             break;
 
-        case EPhoneInCallMutedText:
-            retVal = R_PHONE_INCALL_MUTED_PANE;
-            break;
-
         case EPhoneInCallNumberText:
             retVal = R_PHONEUI_INCALL_CALL_NUMBER;
             break;
--- a/phoneapp/phoneuiutils/src/phoneloggerviewcommands.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/src/phoneloggerviewcommands.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -106,8 +106,8 @@
 _STLIT8(K80, "EPhoneViewRemoveFromConference");
 _STLIT8(K81, "EPhoneViewPrivateFromConference");
 _STLIT8(K82, "EPhoneViewSelectedConfMember");
-_STLIT8(K83, "EPhoneViewOpenConferenceList");
-_STLIT8(K84, "EPhoneViewGetConferenceListVisibleFlag");
+_STLIT8(K83, "EPhoneViewGetConferenceListVisibleFlag");
+_STLIT8(K84, "EPhoneViewOpenConferenceList");
 _STLIT8(K85, "EPhoneViewGetCallState");
 _STLIT8(K86, "EPhoneViewGetCallIdByState");
 _STLIT8(K87, "EPhoneViewMoveHighLightInList");
@@ -132,85 +132,85 @@
 _STLIT8(K106, "EPhoneViewSendMessage");
 _STLIT8(K107, "EPhoneViewSetBlockingDialogStatus");
 _STLIT8(K108, "EPhoneViewSetPhoneNumberAvailableInPhoneEngine");
-_STLIT8(K109, "EPhoneViewSetSecurityMode");
-_STLIT8(K110, "EPhoneViewGetSecurityModeStatus");
-_STLIT8(K111, "EPhoneViewSetStatusPaneVisible");
-_STLIT8(K112, "EPhoneViewEnableKeyLock");
-_STLIT8(K113, "EPhoneViewLaunchFaxModem");
-_STLIT8(K114, "EPhoneViewUpdateFSW");
-_STLIT8(K115, "EPhoneViewIsQuery");
-_STLIT8(K116, "EPhoneViewBringIdleToForeground");
-_STLIT8(K117, "EPhoneViewSetIdleTopApplication");
-_STLIT8(K118, "EPhoneViewBeginUpdate");
-_STLIT8(K119, "EPhoneViewEndUpdate");
-_STLIT8(K120, "EPhoneViewSetConfrenceOptionsFlag");
-_STLIT8(K121, "EPhoneViewRemoveConferenceBubble");
-_STLIT8(K122, "EPhoneViewGetSoftRejectWindowGroupId");
-_STLIT8(K123, "EPhoneViewSetTouchPaneButtons");
-_STLIT8(K124, "EPhoneViewSetTouchPaneVisible");
-_STLIT8(K125, "EPhoneViewEnableTouchButton");
-_STLIT8(K126, "EPhoneViewDisableTouchButton");
-_STLIT8(K127, "EPhoneResetTouchButtons");
-_STLIT8(K128, "EPhoneViewGetIsConferenceInSelectionMode");
-_STLIT8(K129, "EPhoneViewIsStraightCallToVideoMailBox");
-_STLIT8(K130, "EPhoneViewSetDtmfDialerViewVisible");
-_STLIT8(K131, "EPhoneViewSetRestrictedDialer");
-_STLIT8(K132, "EPhoneViewIsConferenceInExpandedMode");
-_STLIT8(K133, "EPhoneViewIsMenuBarVisible");
-_STLIT8(K134, "EPhoneViewGetBlockingDialogStatus");
-_STLIT8(K135, "EPhoneViewYesSingleItemFetch");
-_STLIT8(K136, "EPhoneViewNoSingleItemFetch");
-_STLIT8(K137, "EPhoneViewGetLocalizedNumberFromEntry");
-_STLIT8(K138, "EPhoneViewIsNoteActive");
-_STLIT8(K139, "EPhoneViewOpenNumberEntry");
-_STLIT8(K140, "EPhoneViewOpenCallHandling");
-_STLIT8(K141, "EPhoneViewGetConferenceAndSingleFlag");
-_STLIT8(K142, "EPhoneViewSetConferenceAndSingleFlag");
-_STLIT8(K143, "EPhoneViewSetVideoCallFlag");
-_STLIT8(K144, "EPhoneViewSetDtmfOptionsFlag");
-_STLIT8(K145, "EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery");
-_STLIT8(K146, "EPhoneViewGetAudioVolumeLevel");
-_STLIT8(K147, "EPhoneViewIsIdleTopApp");
-_STLIT8(K148, "EPhoneViewUpdateToolbar");
-_STLIT8(K149, "EPhoneViewSetControlAndVisibility");
-_STLIT8(K150, "EPhoneViewAllowWaitingCallHeader");
-_STLIT8(K151, "EPhoneViewBeginTransEffect");
-_STLIT8(K152, "EPhoneViewEndTransEffect");
-_STLIT8(K153, "EPhoneViewSetDialerControlVisible");
-_STLIT8(K154, "EPhoneViewCloseSingleItemFetchDialog");
-_STLIT8(K155, "EPhoneViewGetActivatePreviousApp");
-_STLIT8(K156, "EPhoneViewActivatePreviousApp");
-_STLIT8(K157, "EPhoneViewSetPointerCapture");
-_STLIT8(K158, "EPhoneViewSetSendKeyDialerActivationFlag");
-_STLIT8(K159, "EPhoneViewPrepareIcons");
-_STLIT8(K160, "EPhoneViewKeypadAudioEnabled");
-_STLIT8(K161, "EPhoneViewKeypadAudioDisabled");
-_STLIT8(K162, "EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel");
-_STLIT8(K163, "EPhoneViewRemoveDtmfNote");
-_STLIT8(K164, "EPhoneViewUpdatePhoneIconToFSW");
-_STLIT8(K165, "EPhoneViewSetEikonNotifiersDisabled");
-_STLIT8(K166, "EPhoneViewCancelAllNotications");
-_STLIT8(K167, "EPhoneViewSetVideoCallDTMFVisibilityFlag");
-_STLIT8(K168, "EPhoneViewLoadPlugins");
-_STLIT8(K169, "PhoneViewServiceSelection");
-_STLIT8(K170, "EPhoneViewOpenVirtualKeyBoard");
-_STLIT8(K171, "EPhoneViewUpdateNoteSoftkeys");
-_STLIT8(K172, "EPhoneViewShowCustomizedDialer");
-_STLIT8(K173, "EPhoneViewHideCustomizedDialer");
-_STLIT8(K174, "EPhoneViewGetCustomizedDialerMenuResourceId");
-_STLIT8(K175, "EPhoneViewGetCustomizedDialerCbaResourceId");
-_STLIT8(K176, "EPhoneViewCreatePhoneBookServices");
-_STLIT8(K177, "EPhoneViewDisableKeyLockWithoutNote");
-_STLIT8(K178, "EPhoneViewGetKeyLockStatus");
-_STLIT8(K179, "EPhoneViewSetNumberEntryObserver");
-_STLIT8(K180, "EPhoneViewGetSingleItemFetchType");
-_STLIT8(K181, "EPhoneViewRemoveGlobalWaitNote");
-_STLIT8(K182, "EPhoneViewSetPhoneCustomization");
-_STLIT8(K183, "EPhoneViewSetViewCustomization");
-_STLIT8(K184, "EPhoneViewSetButtonCustomization");
-_STLIT8(K185, "EPhoneViewUpdateContactByString");
-_STLIT8(K186, "EPhoneViewAddContactByString");
-_STLIT8(K187, "EPhoneViewIsActiveNoteDissmissableByKeyEvent");
+_STLIT8(K109, "EPhoneViewSetStatusPaneVisible");
+_STLIT8(K110, "EPhoneViewEnableKeyLock");
+_STLIT8(K111, "EPhoneViewLaunchFaxModem");
+_STLIT8(K112, "EPhoneViewUpdateFSW");
+_STLIT8(K113, "EPhoneViewIsQuery");
+_STLIT8(K114, "EPhoneViewBringIdleToForeground");
+_STLIT8(K115, "EPhoneViewSetIdleTopApplication");
+_STLIT8(K116, "EPhoneViewBeginUpdate");
+_STLIT8(K117, "EPhoneViewEndUpdate");
+_STLIT8(K118, "EPhoneViewSetConfrenceOptionsFlag");
+_STLIT8(K119, "EPhoneViewRemoveConferenceBubble");
+_STLIT8(K120, "EPhoneViewGetSoftRejectWindowGroupId");
+_STLIT8(K121, "EPhoneViewSetTouchPaneButtons");
+_STLIT8(K122, "EPhoneViewSetTouchPaneVisible");
+_STLIT8(K123, "EPhoneViewEnableTouchButton");
+_STLIT8(K124, "EPhoneViewDisableTouchButton");
+_STLIT8(K125, "EPhoneResetTouchButtons");
+_STLIT8(K126, "EPhoneViewGetIsConferenceInSelectionMode");
+_STLIT8(K127, "EPhoneViewIsStraightCallToVideoMailBox");
+_STLIT8(K128, "EPhoneViewSetDtmfDialerViewVisible");
+_STLIT8(K129, "EPhoneViewSetRestrictedDialer");
+_STLIT8(K130, "EPhoneViewIsConferenceInExpandedMode");
+_STLIT8(K131, "EPhoneViewIsMenuBarVisible");
+_STLIT8(K132, "EPhoneViewGetBlockingDialogStatus");
+_STLIT8(K133, "EPhoneViewYesSingleItemFetch");
+_STLIT8(K134, "EPhoneViewNoSingleItemFetch");
+_STLIT8(K135, "EPhoneViewGetLocalizedNumberFromEntry");
+_STLIT8(K136, "EPhoneViewIsNoteActive");
+_STLIT8(K137, "EPhoneViewOpenNumberEntry");
+_STLIT8(K138, "EPhoneViewOpenCallHandling");
+_STLIT8(K139, "EPhoneViewGetConferenceAndSingleFlag");
+_STLIT8(K140, "EPhoneViewSetConferenceAndSingleFlag");
+_STLIT8(K141, "EPhoneViewSetVideoCallFlag");
+_STLIT8(K142, "EPhoneViewSetDtmfOptionsFlag");
+_STLIT8(K143, "EPhoneViewShowVTSetupFailedCreateCallToSameContactQuery");
+_STLIT8(K144, "EPhoneViewGetAudioVolumeLevel");
+_STLIT8(K145, "EPhoneViewIsIdleTopApp");
+_STLIT8(K146, "EPhoneViewUpdateToolbar");
+_STLIT8(K147, "EPhoneViewSetControlAndVisibility");
+_STLIT8(K148, "EPhoneViewAllowWaitingCallHeader");
+_STLIT8(K149, "EPhoneViewBeginTransEffect");
+_STLIT8(K150, "EPhoneViewEndTransEffect");
+_STLIT8(K151, "EPhoneViewSetDialerControlVisible");
+_STLIT8(K152, "EPhoneViewCloseSingleItemFetchDialog");
+_STLIT8(K153, "EPhoneViewGetActivatePreviousApp");
+_STLIT8(K154, "EPhoneViewActivatePreviousApp");
+_STLIT8(K155, "EPhoneViewSetPointerCapture");
+_STLIT8(K156, "EPhoneViewSetSendKeyDialerActivationFlag");
+_STLIT8(K157, "EPhoneViewPrepareIcons");
+_STLIT8(K158, "EPhoneViewKeypadAudioEnabled");
+_STLIT8(K159, "EPhoneViewKeypadAudioDisabled");
+_STLIT8(K160, "EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel");
+_STLIT8(K161, "EPhoneViewRemoveDtmfNote");
+_STLIT8(K162, "EPhoneViewUpdatePhoneIconToFSW");
+_STLIT8(K163, "EPhoneViewSetEikonNotifiersDisabled");
+_STLIT8(K164, "EPhoneViewCancelAllNotications");
+_STLIT8(K165, "EPhoneViewSetVideoCallDTMFVisibilityFlag");
+_STLIT8(K166, "EPhoneViewLoadPlugins");
+_STLIT8(K167, "EPhoneViewOpenVirtualKeyBoard");
+_STLIT8(K168, "EPhoneViewUpdateNoteSoftkeys");
+_STLIT8(K169, "EPhoneViewSendAiwCommand");
+_STLIT8(K170, "EPhoneViewShowCustomizedDialer");
+_STLIT8(K171, "EPhoneViewHideCustomizedDialer");
+_STLIT8(K172, "EPhoneViewGetCustomizedDialerMenuResourceId");
+_STLIT8(K173, "EPhoneViewGetCustomizedDialerCbaResourceId");
+_STLIT8(K174, "EPhoneViewCipheringInfoChangePlayTone");
+_STLIT8(K175, "EPhoneViewCreatePhoneBookServices");
+_STLIT8(K176, "EPhoneViewDisableKeyLockWithoutNote");
+_STLIT8(K177, "EPhoneViewGetKeyLockStatus");
+_STLIT8(K178, "EPhoneViewSetNumberEntryObserver");
+_STLIT8(K179, "EPhoneViewGetSingleItemFetchType");
+_STLIT8(K180, "EPhoneViewRemoveGlobalWaitNote");
+_STLIT8(K181, "EPhoneViewSetPhoneCustomization");
+_STLIT8(K182, "EPhoneViewSetViewCustomization");
+_STLIT8(K183, "EPhoneViewSetButtonCustomization");
+_STLIT8(K184, "EPhoneViewUpdateContactByString");
+_STLIT8(K185, "EPhoneViewAddContactByString");
+_STLIT8(K186, "EPhoneViewIsActiveNoteDissmissableByKeyEvent");
+_STLIT8(K187, "EPhoneViewUpdateContextMenu");
 _STLIT8(K188, "EPhoneViewSetNoConnectedCalls");
 _STLIT8(K189, "EPhoneViewIsDTMFEditorVisible");
 _STLIT8(K190, "EPhoneViewSetToolbarDimming");
@@ -224,10 +224,13 @@
 _STLIT8(K198, "EPhoneViewGetEasyDialingCbaId");
 _STLIT8(K199, "EPhoneViewGetNeedToReturnToForegroundAppStatus");
 _STLIT8(K200, "EPhoneViewSetNeedToReturnToForegroundAppStatus");
-_STLIT8(K201, "EPhoneViewGetQwertyModeObserver");
-_STLIT8(K202, "EPhoneViewSetIncallBubbleTrue");
-_STLIT8(K203, "EPhoneViewSetIncallBubbleFalse");
-_STLIT8(K204, ", // Don't remove this, this should always be the last in list.");
+_STLIT8(K201, "EPhoneViewSetConferenceAndWaitingVideo");
+_STLIT8(K202, "EPhoneViewLaunchMultimediaSharing");
+_STLIT8(K203, "EPhoneViewGetQwertyModeObserver");
+_STLIT8(K204, "EPhoneViewSetIncallBubbleTrue");
+_STLIT8(K205, "EPhoneViewSetIncallBubbleFalse");
+_STLIT8(K206, "EPhoneViewIsDisplayingMenuOrDialog");
+_STLIT8(K207, ", // Don't remove this, this should always be the last in list.");
 
 // Intermediate
 const void * const KStringPointers[] =
@@ -435,8 +438,11 @@
 	(const void*)&K201,
 	(const void*)&K202,
 	(const void*)&K203,
-	(const void*)&K204
+	(const void*)&K204,
+	(const void*)&K205,
+	(const void*)&K206,
+	(const void*)&K207
 	};
 
-const TStringTable PhoneLoggerviewCommands::Table = {204, KStringPointers, EFalse};
+const TStringTable PhoneLoggerviewCommands::Table = {207, KStringPointers, EFalse};
 
--- a/phoneapp/phoneuiutils/src/phoneloggerviewcommands.st	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/src/phoneloggerviewcommands.st	Thu Sep 09 18:09:57 2010 +0100
@@ -82,8 +82,8 @@
 EPhoneViewRemoveFromConference EPhoneViewRemoveFromConference
 EPhoneViewPrivateFromConference EPhoneViewPrivateFromConference
 EPhoneViewSelectedConfMember EPhoneViewSelectedConfMember
+EPhoneViewGetConferenceListVisibleFlag EPhoneViewGetConferenceListVisibleFlag
 EPhoneViewOpenConferenceList EPhoneViewOpenConferenceList
-EPhoneViewGetConferenceListVisibleFlag EPhoneViewGetConferenceListVisibleFlag
 EPhoneViewGetCallState EPhoneViewGetCallState
 EPhoneViewGetCallIdByState EPhoneViewGetCallIdByState
 EPhoneViewMoveHighLightInList EPhoneViewMoveHighLightInList
@@ -108,8 +108,6 @@
 EPhoneViewSendMessage EPhoneViewSendMessage
 EPhoneViewSetBlockingDialogStatus EPhoneViewSetBlockingDialogStatus
 EPhoneViewSetPhoneNumberAvailableInPhoneEngine EPhoneViewSetPhoneNumberAvailableInPhoneEngine
-EPhoneViewSetSecurityMode EPhoneViewSetSecurityMode
-EPhoneViewGetSecurityModeStatus EPhoneViewGetSecurityModeStatus
 EPhoneViewSetStatusPaneVisible EPhoneViewSetStatusPaneVisible
 EPhoneViewEnableKeyLock EPhoneViewEnableKeyLock
 EPhoneViewLaunchFaxModem EPhoneViewLaunchFaxModem
@@ -168,13 +166,14 @@
 EPhoneViewCancelAllNotications EPhoneViewCancelAllNotications
 EPhoneViewSetVideoCallDTMFVisibilityFlag EPhoneViewSetVideoCallDTMFVisibilityFlag
 EPhoneViewLoadPlugins EPhoneViewLoadPlugins
-PhoneViewServiceSelection PhoneViewServiceSelection
 EPhoneViewOpenVirtualKeyBoard EPhoneViewOpenVirtualKeyBoard
 EPhoneViewUpdateNoteSoftkeys EPhoneViewUpdateNoteSoftkeys
+EPhoneViewSendAiwCommand EPhoneViewSendAiwCommand
 EPhoneViewShowCustomizedDialer EPhoneViewShowCustomizedDialer
 EPhoneViewHideCustomizedDialer EPhoneViewHideCustomizedDialer
 EPhoneViewGetCustomizedDialerMenuResourceId EPhoneViewGetCustomizedDialerMenuResourceId
 EPhoneViewGetCustomizedDialerCbaResourceId EPhoneViewGetCustomizedDialerCbaResourceId
+EPhoneViewCipheringInfoChangePlayTone EPhoneViewCipheringInfoChangePlayTone
 EPhoneViewCreatePhoneBookServices EPhoneViewCreatePhoneBookServices
 EPhoneViewDisableKeyLockWithoutNote EPhoneViewDisableKeyLockWithoutNote
 EPhoneViewGetKeyLockStatus EPhoneViewGetKeyLockStatus
@@ -187,6 +186,7 @@
 EPhoneViewUpdateContactByString EPhoneViewUpdateContactByString
 EPhoneViewAddContactByString EPhoneViewAddContactByString
 EPhoneViewIsActiveNoteDissmissableByKeyEvent EPhoneViewIsActiveNoteDissmissableByKeyEvent
+EPhoneViewUpdateContextMenu EPhoneViewUpdateContextMenu
 EPhoneViewSetNoConnectedCalls EPhoneViewSetNoConnectedCalls
 EPhoneViewIsDTMFEditorVisible EPhoneViewIsDTMFEditorVisible
 EPhoneViewSetToolbarDimming EPhoneViewSetToolbarDimming
@@ -200,7 +200,10 @@
 EPhoneViewGetEasyDialingCbaId EPhoneViewGetEasyDialingCbaId
 EPhoneViewGetNeedToReturnToForegroundAppStatus EPhoneViewGetNeedToReturnToForegroundAppStatus
 EPhoneViewSetNeedToReturnToForegroundAppStatus EPhoneViewSetNeedToReturnToForegroundAppStatus
+EPhoneViewSetConferenceAndWaitingVideo EPhoneViewSetConferenceAndWaitingVideo
+EPhoneViewLaunchMultimediaSharing EPhoneViewLaunchMultimediaSharing
 EPhoneViewGetQwertyModeObserver EPhoneViewGetQwertyModeObserver
 EPhoneViewSetIncallBubbleTrue EPhoneViewSetIncallBubbleTrue
 EPhoneViewSetIncallBubbleFalse EPhoneViewSetIncallBubbleFalse
+EPhoneViewIsDisplayingMenuOrDialog EPhoneViewIsDisplayingMenuOrDialog
 EPhoneAmountOfCommands, // Don't remove this, this should always be the last in list.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiutils/src/phonevanitydialingutils.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*     Helper class for converting vanity dialing numbers
+*
+*/
+
+// INCLUDE FILES
+#include "phonevanitydialingutils.h"
+
+// CONSTANTS
+const TInt KCharA = 'A';
+const TInt KCharB = 'B';
+const TInt KCharC = 'C';
+const TInt KCharD = 'D';
+const TInt KCharE = 'E';
+const TInt KCharF = 'F';
+const TInt KCharG = 'G';
+const TInt KCharH = 'H';
+const TInt KCharI = 'I';
+const TInt KCharJ = 'J';
+const TInt KCharK = 'K';
+const TInt KCharL = 'L';
+const TInt KCharM = 'M';
+const TInt KCharN = 'N';
+const TInt KCharO = 'O';
+const TInt KCharP = 'P';
+const TInt KCharQ = 'Q';
+const TInt KCharR = 'R';
+const TInt KCharS = 'S';
+const TInt KCharT = 'T';
+const TInt KCharU = 'U';
+const TInt KCharV = 'V';
+const TInt KCharW = 'W';
+const TInt KCharX = 'X';
+const TInt KCharY = 'Y';
+const TInt KCharZ = 'Z';
+
+const TInt KChar2 = '2';
+const TInt KChar3 = '3';
+const TInt KChar4 = '4';
+const TInt KChar5 = '5';
+const TInt KChar6 = '6';
+const TInt KChar7 = '7';
+const TInt KChar8 = '8';
+const TInt KChar9 = '9';
+
+_LIT( KPhoneVanityValidFirstChars, "0123456789+" );
+_LIT( KPhoneVanityValidChars, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789*#+pw" );
+
+// ---------------------------------------------------------
+// CouldBeVanityNumber
+//
+// Vanity dialing numbers start with a number, and after that they
+// contain only upper case letters (A-Z) and numbers
+// for example: 555PIZZA, +3583ONE2THREE
+// ---------------------------------------------------------
+//
+TBool CouldBeVanityNumber( TDesC& aDes )
+    {
+    if ( !aDes.Length() )
+        {
+        return EFalse;
+        }
+        
+    TBool possibleVanityNumber = ETrue;
+    
+    // check first character
+    TPtrC validFirstChar( KPhoneVanityValidFirstChars );
+    if ( validFirstChar.Locate( aDes[0] ) == KErrNotFound )
+        {
+        possibleVanityNumber = EFalse;
+        }
+    
+    // check rest of the string
+    TInt i = 1;
+    TPtrC validChar( KPhoneVanityValidChars );
+    while ( possibleVanityNumber && i < aDes.Length() )
+        {
+        if ( validChar.Locate( aDes[i] ) == KErrNotFound )
+            {
+            possibleVanityNumber = EFalse;
+            }
+        i++;
+        }
+    
+    return possibleVanityNumber;
+    }
+
+// ---------------------------------------------------------
+// PhoneVanityDialingUtils::DoVanityNumberConversion
+//
+// ---------------------------------------------------------
+//
+EXPORT_C void PhoneVanityDialingUtils::DoVanityNumberConversion( TDes& aDes )
+    {
+    if ( CouldBeVanityNumber( aDes ) )
+        {
+        for ( TInt i = 0; i < aDes.Length(); i++ )
+            {
+            switch ( aDes[i] )
+                {
+                case KCharA:
+                case KCharB:
+                case KCharC:
+                    aDes[i] = KChar2;
+                    break;
+                case KCharD:
+                case KCharE:
+                case KCharF:
+                    aDes[i] = KChar3;
+                    break;
+                case KCharG:
+                case KCharH:
+                case KCharI:
+                    aDes[i] = KChar4;
+                    break;
+                case KCharJ:
+                case KCharK:
+                case KCharL:
+                    aDes[i] = KChar5;
+                    break;
+                case KCharM:
+                case KCharN:
+                case KCharO:
+                    aDes[i] = KChar6;
+                    break;
+                case KCharP:
+                case KCharQ:
+                case KCharR:
+                case KCharS:
+                    aDes[i] = KChar7;
+                    break;
+                case KCharT:
+                case KCharU:
+                case KCharV:
+                    aDes[i] = KChar8;
+                    break;
+                case KCharW:
+                case KCharX:
+                case KCharY:
+                case KCharZ:
+                    aDes[i] = KChar9;
+                    break;
+                default:
+                    break;
+                }
+            }
+        }
+    }
+
+// End of File
--- a/phoneapp/phoneuiutils/src/tphonecmdparamcallheaderdata.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiutils/src/tphonecmdparamcallheaderdata.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -44,6 +44,7 @@
     iThumbnail( NULL ),
     iCallerText( KNullDesC ),
     iParticipantListCLI( EPhoneParticipantCLIText ),
+    iHasThumbnail( EFalse ),
     iCipheringIndicatorAllowed( ETrue ),
     iContactLink( KNullDesC8 ),
     iRemotePhoneNumber( KNullDesC )
--- a/phoneapp/phoneuiview/inc/cphoneaudiocontroller.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/inc/cphoneaudiocontroller.h	Thu Sep 09 18:09:57 2010 +0100
@@ -73,13 +73,7 @@
         * @param aCommandParam command parameter
         */
         void HandleIhfChange( TPhoneCommandParam* aCommandParam );
-        
-        /**
-        * Update control using the specified data
-        * @param aCommandParam command parameter
-        */
-        void HandleMuteChange( TPhoneCommandParam* aCommandParam );
-        
+   
         /**
         * Gets volume level from navi pane control.
         * @return Volume level.
@@ -133,14 +127,6 @@
         void PushL(CAknNavigationDecorator& aNew);
 
         /**
-        * Callback function. Called when navi pane should be updated 
-        * back to default.
-        * @param aAny pointer to instance of this class.
-        * @return KErrNone always.
-        */
-        static TInt DoUpdateNaviPaneToDefault( TAny* aAny );
-
-        /**
         * Get current volume decorator (Ihf or Ear) 
         * @return Current volume decorator
         */
@@ -157,12 +143,6 @@
         * @return Current Ihf or Ear volume level         
         */        
         TInt VolumeLevel(); 
-        
-        /**
-        * Select decorator based on current audio status
-        * @return Selected decorator (Ihf, Ear or Muted).         
-        */
-        CAknNavigationDecorator& SelectDecoratorL();         
 
         /**
         * Set volume level for given volume control
@@ -189,9 +169,6 @@
         
         // ETrue IHF is active
         TBool iIhfMode;
-
-        // ETrue if transfer to or from IHF pending
-        TBool iIhfTransferPending; 
         
         // Owned non-IHF volume control.
         CAknNavigationDecorator* iEarVolumeControl;
@@ -199,20 +176,9 @@
         // Non-IHF volume, from 1 to 10
         TInt iEarVolume; 
 
-        // Owned muted indicator
-        CAknNavigationDecorator* iMutedControl;
-        
-        // ETrue phone is muted
-        TBool iMuted;
-
-        // ETrue if timed control transfer to muted is pending
-        TBool iTimedMuteTransferPending; 
-
         // Pointer the current control that is in navi pane
         CAknNavigationDecorator* iOldControl;
-        
-        // Owned timer to update navi pane
-        CPhoneTimer* iNaviPaneUpdateTimer;
+ 
         
         /**
          * ETrue if Telephony is the foreground application,
--- a/phoneapp/phoneuiview/inc/cphonemenucontroller.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/inc/cphonemenucontroller.h	Thu Sep 09 18:09:57 2010 +0100
@@ -112,6 +112,8 @@
         void SetAllowDtmfOptionsFlag( TBool aAllowDtmfOptions );
         
         void SetVoipEnabledFlag( TPhoneCommandParam* aCommandParam );
+
+		void SetHideVoipCallDTMFVisibilityFlag ( TBool aHideVideoCallDTMFVisibility ); 
         
         void SetHideVideoCallDTMFVisibilityFlag ( TBool aHideVideoCallDTMFVisibility );
 
@@ -159,6 +161,8 @@
         void ShowTaskSwapper( TInt aResourceId ) const;
         
         TBool IsSwivelClosed() const;
+        
+        TBool IsQwertyMode() const;
     
     private:
         CEikMenuBar* iMenu;
@@ -190,6 +194,7 @@
         TBool iAllowDtmfOptionsFlag;
         TBool iVoipEnabledFlag;  
         TBool iHideVideoCallDTMFVisibility;
+		TBool iHideVoipCallDTMFVisibility; 
         TBool iInvalidCsPhoneNumber;
 		TBool iSecurityMode;
         // Eikon environment delivered from CPhoneViewController
--- a/phoneapp/phoneuiview/inc/cphonetoolbarcontroller.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/inc/cphonetoolbarcontroller.h	Thu Sep 09 18:09:57 2010 +0100
@@ -67,13 +67,41 @@
     * Disables toolbar
     */ 
     void HideToolbar();	
-    
+
+    /**
+    * Sets mute flag.
+    * @param aCommandParam command parameter
+    */        
     void SetMuteFlag( TPhoneCommandParam* aCommandParam );
 
+    /**
+    * Sets integrated handsfree in use -flag.
+    * @param aCommandParam command parameter
+    */        
     void SetIhfFlag( TPhoneCommandParam* aCommandParam );
-    
+
+    /**
+    * Sets wired accessory in use -flag.
+    * @param aCommandParam command parameter
+    */        
     void SetWiredAccFlag( TPhoneCommandParam* aCommandParam );
-    
+
+    /**
+    * Sets Bluetooth accessory in use -flag.
+    * @param aCommandParam command parameter
+    */    
+    void SetBTAccFlag( TPhoneCommandParam* aCommandParam );
+
+    /**
+    * Sets Bluetooth accessory is available -flag.
+    * @param aCommandParam command parameter
+    */        
+    void SetBTAccAvailableFlag( TPhoneCommandParam* aCommandParam );
+
+    /**
+    * Sets call is in progress state -flag.
+    * @param aCommandParam command parameter
+    */        
     void SetCallInProgressFlag( TPhoneCommandParam* aCommandParam ); 
     
     /**
@@ -171,13 +199,23 @@
      * CoeEnv 
      */
     CCoeEnv& iCoeEnv;    
-        
+    
+    // Muted or not
     TBool iMuteFlag;
     
+    // Integrated handsfree in use or not
     TBool iIhfFlag;
     
+    // Wired accessory in use or not
     TBool iWiredAccFlag;
     
+    // Bluetooth accessory in use or not
+    TBool iBTAccFlag;
+    
+    // Bluetooth accessory is available or not
+    TBool iBTAccAvailableFlag;
+    
+    // A call is progressing or not
     TBool iCallInProgress;
 
     // Dim activate IHF button
--- a/phoneapp/phoneuiview/inc/cphoneviewcontroller.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/inc/cphoneviewcontroller.h	Thu Sep 09 18:09:57 2010 +0100
@@ -260,31 +260,31 @@
          * From base class MNumberEntryObserver
          * Indication that numberentry state changed
          */
-        void NumberEntryStateChanged( TBool aEntryHasText );    
+        void NumberEntryStateChanged( TBool aEntryHasText );
 
 // From MPhoneSecurityModeChangeObserver
 
-		IMPORT_C void HandleSecurityModeChanged( TBool aIsEnabled );
-		
-		/**
+        IMPORT_C void HandleSecurityModeChanged( TBool aIsEnabled );
+
+        /**
         * Sets incall small bubble´s visibility in special cases.
-        */ 
-		void AllowInCallBubbleInSpecialCases();
-		
-		/**
+        */
+        void AllowInCallBubbleInSpecialCases();
+
+        /**
         * Sets value for incall bubble visibility.
-        */ 
-		void SetIncallBubbleVisibility( TBool aIncallBubbleVisible );
+        */
+        void SetIncallBubbleVisibility( TBool aIncallBubbleVisible );
 
     private:     // New functions
 
-		/**
-		 * Set security mode
-		 *
-		 * @param aMode ETrue if mode should be set enabled.
-		 */
-    	void SetSecurityMode( TBool aMode );
-    	
+        /**
+         * Set security mode
+         *
+         * @param aMode ETrue if mode should be set enabled.
+         */
+        void SetSecurityMode( TBool aMode );
+
         /**
         * read IdleApplicationUid from PubSub
         */
@@ -295,7 +295,7 @@
         * background after being brought to the foreground using
         * BringToForeground()
         */
-        TBool GetNeedToReturnToForegroundAppAfterCall() const;
+        TBool GetNeedToReturnToForegroundAppAfterCallL();
 
         /**
         * Gets the blocking dialogs status
@@ -526,7 +526,7 @@
         * @return Phone number's type
         */
         TPhoneNumberType ConvertNumberTypeFromSpeedDialFieldInfo(
-            CPhCntSpeedDialMonitor::TSpdDialFieldInfo aFieldInfo );
+            const CPhCntSpeedDialMonitor::TSpdDialFieldInfo& aFieldInfo  );
 
         /**
         * Open the Unified message editor and get
@@ -586,7 +586,7 @@
         /**
         * Handles transition effect.
         */
-        void HandleTransitionEffect( TPhoneTransEffectType aType, 
+        void HandleTransitionEffect( TPhoneTransEffectType aType,
                 const TUid& aAppUidEffectParam = KUidPhoneApplication );
 
         /**
@@ -624,7 +624,7 @@
         * @return TInt  KErrNotFound if app not exists anymore in the list
         *                   otherwise app index in the list.
         */
-        TInt FindAppByWgIDL( TInt aAppWgID );
+        TInt FindAppByWgIDL( TInt aAppWgID ) const;
 
        /**
         * Returns single item fetch type
@@ -633,15 +633,15 @@
         TInt SingleItemFetchType() const;
 
         /**
-         * Checks if DTMF dialer mode is currently active        
+         * Checks if DTMF dialer mode is currently active
          */
         TBool IsDtmfDialerActive() const;
-        
+
         /**
-         * Checks if custom dialer mode is currently active        
+         * Checks if custom dialer mode is currently active
          */
         TBool IsCustomDialerActive() const;
-        
+
         /**
         * Checks if the effect could and should be triggered.
         */
@@ -659,14 +659,25 @@
         * Complete transition effect.
         */
         void EndTransEffect();
-        
+
         /**
          * TCleanupOperation to call EndTransEffect, if leave occurs
          * after BeginTransEffectForAppStartFromDialerLC.
          */
         static void EffectCleanup(TAny* aThis );
+
+        /**
+         * Checks if emergency call is ongoing.
+         */
+        TBool IsEmergencyCallOngoing();
         
-    private: 
+        /**
+        * Is it ok to aType effect inside phoneapp.
+        */
+        TBool IsOkToUseThisTypeOfEffectInsidePhoneApp( 
+                TPhoneTransEffectType aType );
+
+    private:
         /**
          * Called by the skin server when skin content is changed and the
          * connected client wants to be informed.
@@ -692,12 +703,12 @@
          */
          void SkinPackageChanged(
              const TAknsSkinStatusPackageChangeReason aReason );
-        
+
     private:    // Data
 
         CPhoneView* iPhoneView;
 
-		CPhoneDialerView* iDialerView;
+        CPhoneDialerView* iDialerView;
 
         // iCba
         CEikButtonGroupContainer* iCba;
@@ -712,16 +723,16 @@
 
         // Controls the touch buttons
         CPhoneDialerController* iDialerController;
-        
+
         // Controls touch dialer in DTMF mode
         CPhoneDtmfDialerController* iDtmfDialerController;
-        
+
         // Controls the toolbar
         CPhoneToolbarController* iToolbarController;
 
         // Handles easydialing commands. Owned.
         CPhoneEasyDialingController* iEasyDialingController;
-        
+
         // For accessing incall indicator
         CPhoneIncallIndicator* iIncallIndicator;
 
@@ -736,7 +747,7 @@
         CPhoneApplicationExit* iApplicationExit;
 
         CPhoneAudioController* iAudioController;
-        
+
         CPhoneRingingTonePlayerAO* iRingingTonePlayerAO;
 
         // EikEnv for CPhoneKeyCaptureController, CPhoneNoteController,
@@ -830,18 +841,18 @@
         TInt iPrevious;
 
         TBool iPriotityChanged;
-		
-		/**
-		 * Internal flag to define if security mode is enabled.
-		 */
+
+        /**
+         * Internal flag to define if security mode is enabled.
+         */
         TBool iSecurityMode;
-        
+
         // Boolean flag. ETrue if the application needs to return
         // to the foreground after call ended
         TBool iNeedToReturnToForegroundAppAfterCall;
-        
+
         CAknIncallBubble* iIncallBubble;
-        
+
         // Server wich sends events about background image changes
         RAknsSrvSession iSkinServerSession;
     };
--- a/phoneapp/phoneuiview/inc/mphoneringingtonesrv.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/inc/mphoneringingtonesrv.h	Thu Sep 09 18:09:57 2010 +0100
@@ -24,14 +24,14 @@
     {
 public:
     /**
-    * Increments sessions.
+    * Start session.
     */
-    virtual void IncrementSessions() = 0;
+    virtual TInt StartSession() = 0;
 
     /**
-    * Decrements sessions.
+    * Close session.
     */
-    virtual void DecrementSessions() = 0;
+    virtual void CloseSession() = 0;
 
     // Ringing tone settings
     
--- a/phoneapp/phoneuiview/inc/phoneringingtonesrv.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/inc/phoneringingtonesrv.h	Thu Sep 09 18:09:57 2010 +0100
@@ -51,14 +51,14 @@
     ~CPhoneRingingToneServer();
 
     /**
-    * Increments sessions.
+    * Start session.
     */
-    void IncrementSessions();
+    TInt StartSession();
 
     /**
-    * Decrements sessions.
+    * Close session.
     */
-    void DecrementSessions();
+    void CloseSession();
 
     /**
     * Thread entry function.
@@ -180,8 +180,8 @@
     // File server connection
     RFs iFs;
 
-    // Number of active sessions
-    TInt iSessionCount;
+    // Indicates is session already in use
+    TBool iSessionInUse;
 
     // Player active object
     CPhoneRingingToneSrvPlayerAO* iPlayer;
--- a/phoneapp/phoneuiview/inc/phoneringingtonesrvsession.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/inc/phoneringingtonesrvsession.h	Thu Sep 09 18:09:57 2010 +0100
@@ -58,6 +58,8 @@
 private:
     // Server.
     MPhoneRingingToneServer& iServer;
+
+    TInt iStartSession;
     };
 
 #endif
--- a/phoneapp/phoneuiview/inc/phoneviewcommanddefinitions.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/inc/phoneviewcommanddefinitions.h	Thu Sep 09 18:09:57 2010 +0100
@@ -235,8 +235,11 @@
     EPhoneViewGetQwertyModeObserver,
     EPhoneViewSetIncallBubbleTrue,
     EPhoneViewSetIncallBubbleFalse,
+    EPhoneViewIsDisplayingMenuOrDialog,
 
-    EPhoneAmountOfCommands, // Don't remove this, this should always be the last in list.
+	EPhoneViewSetVoipCallDTMFVisibilityFlag, 
+	
+    EPhoneAmountOfCommands // Don't remove this, this should always be the last in list.
 };
 
 
--- a/phoneapp/phoneuiview/src/cphoneaudiocontroller.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/src/cphoneaudiocontroller.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -19,9 +19,9 @@
 // INCLUDE FILES
 #include <aknnavi.h>
 #include <aknnavide.h>
-#include <StringLoader.h>
+
 #include <avkon.rsg>
-#include <phoneui.rsg>
+
 #include <telephonyvariant.hrh>
 #include <eikenv.h>
 #include <eikappui.h>
@@ -39,9 +39,6 @@
 #include "phoneui.hrh"
 
 // CONSTANTS
-// Defines how long time volume control is shown when volume is changed 
-// while device is muted. Duration in microseconds.
-const TInt KPhoneDelayVolumeControlToDefaultAfterReleased = 1000000;
 
 // ================= MEMBER FUNCTIONS =======================
 // C++ default constructor can NOT contain any code, that
@@ -81,13 +78,6 @@
     // To get touch input, pen check in HandleControlEventL()
     iEarVolumeControl->DecoratedControl()->SetObserver( this );
     iIhfVolumeControl->DecoratedControl()->SetObserver( this );            
-  
-    // Create "muted" navi decorator
-    HBufC* mutedText = StringLoader::LoadLC( R_PHONE_INCALL_MUTED_PANE );
-    iMutedControl = iStatusPane->NaviPane().CreateMessageLabelL( *mutedText );
-    CleanupStack::PopAndDestroy( mutedText );
-        
-    iNaviPaneUpdateTimer = CPhoneTimer::NewL();
 
     iActivateRecoveryId = CPhoneRecoverySystem::Instance()->AddL( 
         TCallBack( DoRecoverActivateL, this ),
@@ -121,8 +111,6 @@
     CCoeEnv::Static()->RemoveForegroundObserver( *this );
     CPhoneRecoverySystem::Remove( iActivateRecoveryId );
      
-    delete iNaviPaneUpdateTimer;   
-    delete iMutedControl;
     delete iIhfVolumeControl;
     delete iEarVolumeControl;
     }
@@ -138,8 +126,8 @@
     if ( iVolumeControlCount == 1 ) // First time activation
         {
         // Decide whether decorator should be Ear or ihf decorator
-        CAknNavigationDecorator& selectedDecorator = SelectDecoratorL(); 
-        PushL( selectedDecorator ); 
+        CAknNavigationDecorator& selectedVolumeDecorator =VolumeDecorator();  
+        PushL( selectedVolumeDecorator ); 
         }
     }
 
@@ -168,16 +156,11 @@
     
     if( iVolumeControlCount )
         {
-        // Decide whether decorator should be Ear, Ihf or Muted decorator
-        CAknNavigationDecorator& selectedDecorator = SelectDecoratorL(); 
-        PushL( selectedDecorator );     
-        
-        if( &selectedDecorator != iMutedControl )
-            {            
-            TInt volumeLevel = VolumeLevel(); 
-            
-            SetVolumeLevel( VolumeControl(), volumeLevel );                 
-            }      
+        // Decide whether decorator should be Ear, Ihf decorator
+        CAknNavigationDecorator& selectedVolumeDecorator = VolumeDecorator(); 
+        PushL( selectedVolumeDecorator );                    
+        TInt volumeLevel = VolumeLevel();             
+        SetVolumeLevel( VolumeControl(), volumeLevel );                       
         }
     }
     
@@ -225,34 +208,12 @@
         {
         iEarVolume = volumeParam->Integer();
         }
-    
-    if( iMuted )
-        {
-        // Enable timed control transition in muted state    
-        iTimedMuteTransferPending = ETrue; 
-        }
-    else
-        {        
-        iTimedMuteTransferPending = EFalse; 
-        }
      
     // Activate the approriate volume control
     CPhoneRecoverySystem::Instance()->RecoverNow( 
         iActivateRecoveryId, 
         CTeleRecoverySystem::EPhonePriorityStandard );
-
-    if( iTimedMuteTransferPending )    
-        {
-        iTimedMuteTransferPending = EFalse;     
-        
-        // Cancel any pending request
-        iNaviPaneUpdateTimer->CancelTimer();
-
-        // Activate change to Muted decorator after given delay        
-        iNaviPaneUpdateTimer->After(                    
-            KPhoneDelayVolumeControlToDefaultAfterReleased,
-            TCallBack( DoUpdateNaviPaneToDefault, this ) );           
-        }
+    
     }
     
 // ---------------------------------------------------------
@@ -269,28 +230,6 @@
         static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
     
     iIhfMode = booleanParam->Boolean();    
-    
-    // Set state transition flag 
-    iIhfTransferPending = ETrue; 
-    }
-    
-// ---------------------------------------------------------
-// CPhoneAudioController::HandleMuteChange
-//
-// Updates incall indicator according to current call state.
-// ---------------------------------------------------------
-//
-void CPhoneAudioController::HandleMuteChange(
-    TPhoneCommandParam* aCommandParam )
-    {
-    __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneAudioController::HandleMuteChange()");
-    TPhoneCmdParamBoolean* booleanParam =
-        static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
-
-    iMuted = booleanParam->Boolean();
-    
-    // Decide whether decorator should be ear, ihf or muted decorator
-    TRAP_IGNORE( PushL( SelectDecoratorL() ) );
     }
     
 // -----------------------------------------------------------------------------
@@ -319,20 +258,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CPhoneAudioController::DoUpdateNaviPaneToDefault
-// -----------------------------------------------------------------------------
-//
-TInt CPhoneAudioController::DoUpdateNaviPaneToDefault( TAny* aAny )
-    {
-    __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneAudioController::DoUpdateNaviPaneToDefault()");
-    CPhoneAudioController* self = static_cast< CPhoneAudioController* >( aAny );
-    CPhoneRecoverySystem::Instance()->RecoverNow( 
-        self->iActivateRecoveryId, 
-        CTeleRecoverySystem::EPhonePriorityStandard );
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
 // CPhoneAudioController::HandleControlEventL
 // -----------------------------------------------------------------------------
 //    
@@ -442,43 +367,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CPhoneAudioController::SelectDecoratorL
-// -----------------------------------------------------------------------------
-//    
-CAknNavigationDecorator& CPhoneAudioController::SelectDecoratorL()
-    {
-    __LOGMETHODSTARTEND( EPhoneUIView,"CPhoneAudioController::SelectDecoratorL()" );                                     
-    CAknNavigationDecorator* newDecorator = NULL;    
-    if ( !iMuted )
-        {
-        __PHONELOG( EBasic, EPhoneUIView,"CPhoneAudioController::SelectDecoratorL() - volume decorator " );     
-        newDecorator = &VolumeDecorator();
-        }
-    else 
-        {
-        if ( iIhfTransferPending || !iTimedMuteTransferPending )
-            {
-            __PHONELOG( EBasic, EPhoneUIView,"CPhoneAudioController::SelectDecoratorL() - muted decorator " );         
-            newDecorator = iMutedControl;    
-            }            
-        else 
-            {
-            __PHONELOG( EBasic, EPhoneUIView,"CPhoneAudioController::SelectDecoratorL() - volume decorator " );         
-            newDecorator = &VolumeDecorator();
-            
-            // In muted state the volume decorator must be first 
-            // pushed to container to enable volume popup showing 
-            PushL( *newDecorator );             
-            }
-        }
-
-    // Clear IHF transfer flag. 
-    iIhfTransferPending = EFalse;
-           
-    return *newDecorator;         
-    }
-
-// -----------------------------------------------------------------------------
 // CPhoneAudioController::SetVolumeLevel
 // -----------------------------------------------------------------------------
 //    
--- a/phoneapp/phoneuiview/src/cphonebubblewrapper.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/src/cphonebubblewrapper.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -55,6 +55,7 @@
 #include "mphonenumberentry.h"
 #include "cphonenumberentry.h"
 #include "phonebubbleextensionmanager.h"
+#include "phonevanitydialingutils.h"
 
 #include "mphonecustomization.h"
 
@@ -336,7 +337,7 @@
             // 3. Thumbnail
             if ( callHeaderParam->Thumbnail() )
                 {
-                iBubbleManager->SetCallObjectImage( bubble, callHeaderParam->Thumbnail(), NULL );
+                iBubbleManager->SetThumbnail( bubble, callHeaderParam->Thumbnail(), NULL );
                 }
             }
         else if ( iCallTheme->CallImageThemeSettings() == 2 )
@@ -553,6 +554,14 @@
             aCallHeaderParam->CNAPText(),
             aCallHeaderParam->CNAPTextClippingDirection() );
 
+    // Set CLI type to be used in conference call participant list
+    CBubbleManager::TBubbleParticipantListCLI partipantCli =
+        ( aCallHeaderParam->ParticipantCLI() ==
+          TPhoneCmdParamCallHeaderData::EPhoneParticipantCNAPText ) ?
+        CBubbleManager::EParticipantListCNAP :
+        CBubbleManager::EParticipantListCLIText;
+    iBubbleManager->SetParticipantListCLI( aBubble, partipantCli );
+
     iBubbleManager->SetCallFlags( aBubble, aCallHeaderParam->CallFlag() );
 
     // Set ciphering indicator
@@ -609,7 +618,7 @@
                 "CPhoneBubbleWrapper::SetCallHeaderParameters()-> Set 3.Thumbnail");
             if ( aCallHeaderParam->Thumbnail() )
                 {
-                iBubbleManager->SetCallObjectImage( aBubble, aCallHeaderParam->Thumbnail(), NULL );
+                iBubbleManager->SetThumbnail( aBubble, aCallHeaderParam->Thumbnail(), NULL );
                 }
             }
         else
@@ -653,13 +662,18 @@
 
     AknTextUtils::ConvertDigitsTo( *entryContent->String(), EDigitTypeWestern );
 
+    if ( FeatureManager::FeatureSupported( KFeatureIdFfHomeScreenVanityDialing ) )
+        {
+        PhoneVanityDialingUtils::DoVanityNumberConversion( *entryContent->String() );
+        }
+    
     __PHONELOG1( EBasic, EPhoneUIView,
         "CPhoneBubbleWrapper::GetNumberEntryContent(%S)",
         entryContent->String() );
     }
 
 // -----------------------------------------------------------------------------
-// CPhoneBubbleWrapper.::GetNumberEntryContent
+// CPhoneBubbleWrapper.::GetLocalizedNumberEntryContent
 // -----------------------------------------------------------------------------
 //
 void CPhoneBubbleWrapper::GetLocalizedNumberEntryContent(
--- a/phoneapp/phoneuiview/src/cphonedialercontroller.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/src/cphonedialercontroller.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -132,7 +132,7 @@
         EAknsMinorGenericQgnIndiDialerClear,
         EMbmPhoneuiQgn_indi_dialer_clear,
         EMbmPhoneuiQgn_indi_dialer_clear_mask,
-        R_PHONEUI_DIALER_TOOLTIP_CLEAR
+        0   //no tooltip for clear key
         }
     };
 static const TInt KClearButtonDataTableCount = 
@@ -491,7 +491,15 @@
         const TDesC& aMifFile ) const
     {
     // Create tooltip text
-    HBufC* tooltip = StringLoader::LoadLC( aSourceData.iTooltipResourceId );
+    HBufC* tooltip = NULL;
+    if ( aSourceData.iTooltipResourceId > 0 )
+        {
+        tooltip = StringLoader::LoadLC( aSourceData.iTooltipResourceId );
+        }
+    else
+        {
+        tooltip = HBufC::NewLC(0);
+        }
     
     // Create icon
     TAknsItemID skinId = { EAknsMajorGeneric, aSourceData.iSkinItemIdMinor };
--- a/phoneapp/phoneuiview/src/cphonemenucontroller.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/src/cphonemenucontroller.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -40,7 +40,7 @@
 #include <phoneappvoipcommands.hrh>
 #include <phoneui.rsg>
 #include <telephonyvariant.hrh>
-
+#include <AvkonInternalCRKeys.h>
 #include <hwrmdomainpskeys.h>
 
 #include <AiwServiceHandler.h>
@@ -175,6 +175,15 @@
 
     } 
 
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CPhoneMenuController::IsQwertyMode() const
+    {
+    return CPhonePubSubProxy::Instance()->Value(
+                    KCRUidAvkon, 
+                    KAknQwertyInputModeActive );
+    } 
 // ---------------------------------------------------------
 // CPhoneMenuController::DynInitMenuBar
 // ---------------------------------------------------------
@@ -268,9 +277,11 @@
                 break;
                 
             case EPhoneNumberAcqCmdVideoCall:
-                if ( iServiceCodeFlag && 
-                     FeatureManager::FeatureSupported( 
-                         KFeatureIdVideocallMenuVisibility ))
+                if ( onScreenDialer && iNumberEntryEmpty )
+                    {
+                    menuPane->DeleteMenuItem( menuItemArray[ i ] ); 
+                    }
+                else if ( iServiceCodeFlag )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[ i ] );
                     }
@@ -344,7 +355,8 @@
                 break;
                 
             case EPhoneInCallCmdDtmfListQuery:
-                if ( ( iHoldFlag && !iAllowDtmfOptionsFlag ) || iHideVideoCallDTMFVisibility )
+                if ( ( iHoldFlag && !iAllowDtmfOptionsFlag ) || iHideVideoCallDTMFVisibility 
+					|| iHideVoipCallDTMFVisibility )  
                     {
                     menuPane->DeleteMenuItem( menuItemArray[ i ] );
                     }
@@ -522,7 +534,8 @@
                 break;
             case EPhoneDialerCmdTouchInput:
                 {
-                if ( !FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) )
+                if ( !FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) ||
+                     IsQwertyMode() )
                     {
                     menuPane->DeleteMenuItem( menuItemArray[i] );      
                     }
@@ -1054,6 +1067,14 @@
     }
 
 // ---------------------------------------------------------
+// CPhoneMenuController::SetHideVideoCallDTMFVisibility 
+// ---------------------------------------------------------
+//
+void CPhoneMenuController::SetHideVoipCallDTMFVisibilityFlag( TBool aHideVoipCallDTMFVisibility )
+    {
+    __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneMenuController::SetHideVoipCallDTMFVisibilityFlag()" );
+    iHideVoipCallDTMFVisibility = aHideVoipCallDTMFVisibility;
+    }
 // CPhoneMenuController::SetHideVideoCallDTMFVisibility
 // ---------------------------------------------------------
 //
--- a/phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -42,7 +42,7 @@
 _LIT ( KPhoneMifFileName, "phoneui.mif" );
 _LIT( KToolbarButtonEmptyStr, "" );
 
-const TInt KNumberOfButtons = 5;
+const TInt KNumberOfButtons = 6;
 struct SPhoneToolbarButton
     {
     TInt iIconIndex;
@@ -71,7 +71,11 @@
 	        {  EMbmPhoneuiQgn_indi_tb_handset,
 	           EMbmPhoneuiQgn_indi_tb_handset_mask,
 	           EPhoneInCallCmdHandset
-	        }
+	        },
+	        {  EMbmPhoneuiQgn_indi_tb_bthf,
+               EMbmPhoneuiQgn_indi_tb_bthf,
+               EPhoneInCallCmdBtHandsfree
+           }
         }; 
 
 
@@ -203,8 +207,27 @@
     iToolbar->HideItem( EPhoneInCallCmdUnmute, !iMuteFlag, ETrue );   
 
     // Show 'Handset'/'Ihf' icon
-    iToolbar->HideItem( EPhoneInCallCmdActivateIhf, iIhfFlag, EFalse );
-    iToolbar->HideItem( EPhoneInCallCmdHandset, !iIhfFlag, ETrue );
+     if ( iWiredAccFlag )
+         {    
+         __PHONELOG( EBasic, EPhoneUIView, "CPhoneToolbarController::UpdateToolbar(), wired ");
+         iToolbar->HideItem( EPhoneInCallCmdHandset, ETrue, EFalse );
+         iToolbar->HideItem( EPhoneInCallCmdBtHandsfree, ETrue, EFalse );
+         iToolbar->HideItem( EPhoneInCallCmdActivateIhf, EFalse, ETrue );
+         }
+     else if ( iBTAccAvailableFlag && !iBTAccFlag )
+         {    
+         __PHONELOG( EBasic, EPhoneUIView, "CPhoneToolbarController::UpdateToolbar(), BT ");
+         iToolbar->HideItem( EPhoneInCallCmdActivateIhf, ETrue, EFalse );
+         iToolbar->HideItem( EPhoneInCallCmdHandset, ETrue, EFalse );
+         iToolbar->HideItem( EPhoneInCallCmdBtHandsfree, EFalse, ETrue );
+         }
+     else
+         {
+         __PHONELOG( EBasic, EPhoneUIView, "CPhoneToolbarController::UpdateToolbar(), else ");
+         iToolbar->HideItem( EPhoneInCallCmdHandset, !iIhfFlag, EFalse );
+         iToolbar->HideItem( EPhoneInCallCmdActivateIhf, iIhfFlag, EFalse );
+         iToolbar->HideItem( EPhoneInCallCmdBtHandsfree, ETrue, ETrue );
+         }
     }   
 
 // ---------------------------------------------------------------------------
@@ -264,6 +287,10 @@
             resourceId = R_PHONEUI_TOOLTIP_HANDSET;
             break;
             
+        case EPhoneInCallCmdBtHandsfree:
+            resourceId = R_PHONEUI_TOOLTIP_BT_HANDSFREE;
+            break;
+            
         default:
             aText = KNullDesC().Alloc();
             break;
@@ -297,6 +324,9 @@
         case EPhoneInCallCmdHandset:
             skinId = KAknsIIDQgnIndiButtonHandset;
             break;
+        case EPhoneInCallCmdBtHandsfree:
+            skinId = KAknsIIDQgnIndiButtonBluetooth;
+            break;
         default:
             skinId = KAknsIIDNone;
             break;
@@ -409,6 +439,38 @@
             }
         }
     }
+// ---------------------------------------------------------
+// CPhoneToolbarController::SetBTAccFlag
+// ---------------------------------------------------------
+//
+void CPhoneToolbarController::SetBTAccFlag( TPhoneCommandParam* aCommandParam )
+    {
+    if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
+        {
+        TPhoneCmdParamBoolean* booleanParam = 
+            static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
+        iBTAccFlag = booleanParam->Boolean();
+        UpdateToolbar(); 
+        }     
+    }
+
+// ---------------------------------------------------------
+// CPhoneToolbarController::SetBTAccAvailableFlag
+// ---------------------------------------------------------
+//
+void CPhoneToolbarController::SetBTAccAvailableFlag( TPhoneCommandParam* aCommandParam )
+    {
+    // Check is the given parameter valid
+    if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
+        {
+        TPhoneCmdParamBoolean* accFlag = 
+            static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
+
+        iBTAccAvailableFlag = accFlag->Boolean();
+        UpdateToolbar();
+        }
+    }
+
 
 // ---------------------------------------------------------
 // CPhoneToolbarController::SetCallInProgressFlag
@@ -456,6 +518,7 @@
     iToolbar->SetItemDimmed( EPhoneInCallCmdUnmute, aDimmed, ETrue );
     iToolbar->SetItemDimmed( EPhoneInCallCmdActivatEPhonebook, aDimmed, ETrue );
     iToolbar->SetItemDimmed( EPhoneInCallCmdHandset, aDimmed, ETrue );  
+    iToolbar->SetItemDimmed( EPhoneInCallCmdBtHandsfree, aDimmed, ETrue );
     // Don't dim/undim iHF when complete toolbar dimming is changed. 
     if ( !iWiredAccFlag )
         {
--- a/phoneapp/phoneuiview/src/cphoneviewcontroller.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/src/cphoneviewcontroller.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -143,6 +143,9 @@
 const TInt KTouchDialerOpenEffect  = 3;
 const TInt KTouchDialerCloseEffect = 5;
 
+const TInt KTouchCallUiOpenEffect  = 1000;
+const TInt KTouchCallUiCloseEffect = 1001;
+
 const TInt KDialerInputMaxChars( 100 );
 
 // ================= MEMBER FUNCTIONS =======================
@@ -187,7 +190,7 @@
     iAppui = (CAknAppUi*)iEikEnv.EikAppUi();
     iCba = iEikEnv.AppUiFactory()->Cba();
 
-	iPhoneView = CPhoneView::NewL( aRect, *iCba, this );
+    iPhoneView = CPhoneView::NewL( aRect, *iCba, this );
 
     iBubbleWrapper = CPhoneBubbleWrapper::NewL( iPhoneView, aRect  );
 
@@ -224,7 +227,7 @@
         iEikEnv.WsSession().FindWindowGroupIdentifier( 0, KPhoneEikonServer ) );
 
     CCoeEnv* coeEnv = CCoeEnv::Static();
-    
+
     if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) )
         {
         iButtonsController = CPhoneButtonsController::NewL( iBubbleWrapper->TouchPane() );
@@ -249,13 +252,13 @@
         // Finalise dialer view
         iDialerView->SetControl( iDialer );
         iDialerView->ActivateL();
-        
+
         // Create controller for Easy Dialing
         iEasyDialingController = CPhoneEasyDialingController::NewL( *iDialer );
         iDialerController->SetEasyDialingController( iEasyDialingController );
-        
+
         // Create controller for DTMF mode of the dialer
-        iDtmfDialerController = CPhoneDtmfDialerController::NewL( iBubbleWrapper, 
+        iDtmfDialerController = CPhoneDtmfDialerController::NewL( iBubbleWrapper,
                                                                   *coeEnv );
         }
 
@@ -264,9 +267,9 @@
     // if you are using sgc-client's session to capserver,
     //you are not allowed to close the session.
     iAknUiServerClient = CAknSgcClient::AknSrv();
-    
+
     iIncallBubble = CAknIncallBubble::NewL();
-    
+
     User::LeaveIfError( iSkinServerSession.Connect( this ) );
     }
 
@@ -294,7 +297,7 @@
     __LOGMETHODSTARTEND( EPhoneUIView,
                         "CPhoneViewController::~CPhoneViewController()" );
     iSkinServerSession.Close();
-    
+
     delete iButtonsController;
     delete iDialerController;
     delete iToolbarController;
@@ -326,10 +329,10 @@
             }
         delete iDialerView;
         }
-		
-	delete iEasyDialingController;
-	delete iDtmfDialerController;
-		
+
+    delete iEasyDialingController;
+    delete iDtmfDialerController;
+
     delete iDialer;
     if ( iSingleItemFetch )
         {
@@ -342,7 +345,7 @@
 //    delete iStatusPane; <-- CCoeStatic are destroyed outside application
 
     iApaLsSession.Close();
-    
+
     delete iIncallBubble;
     }
 
@@ -380,12 +383,12 @@
                 SetControltoCallHandlingL();
                 iBubbleWrapper->RemoveNumberEntry();
                 iPhoneView->SetActivatePreviousApp( EFalse );
-                
+
                 TPhoneCmdParamCallStateData callStateData;
                 callStateData.SetCallState( EPEStateConnected );
                 iBubbleWrapper->GetCallIdByState( &callStateData );
                 TInt connected = callStateData.CallId();
-                    
+
                 // If video call
                 if( connected == KVideoTelephonyCallId1 ||
                         connected == KVideoTelephonyCallId2 )
@@ -445,7 +448,7 @@
         case EPhoneViewRemovePhoneDialogs:
             RemovePhoneDialogsL();
             break;
-            
+
         case EPhoneViewRemoveAllCallHeaders:
             iBubbleWrapper->RemoveAllCallHeadersL();
             break;
@@ -457,7 +460,7 @@
         case EPhoneViewStopRingTone:
             iRingingTonePlayerAO->StopPlaying();
             break;
-            
+
         case EPhoneViewMuteRingTone:
             iRingingTonePlayerAO->MuteRingingTone();
             break;
@@ -642,7 +645,7 @@
             {
             iToolbarController->HideToolbar();
             }
-            break;  
+            break;
 
         case EPhoneViewLaunchMultimediaSharing:
             {
@@ -741,9 +744,10 @@
             break;
 
         case EPhoneViewUpdateContextMenu:
-            {     
-            iMenuController->SetContextMenu( aCommandParam );     
-            } break; 
+            {
+            iMenuController->SetContextMenu( aCommandParam );
+            }
+            break;
 
         case EPhoneViewGetLocalizedNumberFromEntry:
             iBubbleWrapper->GetLocalizedNumberEntryContent( aCommandParam );
@@ -837,7 +841,6 @@
             iMenuController->SetMuteFlag( aCommandParam );
             iBubbleWrapper->SetPhoneMuted( aCommandParam );
             iIncallIndicator->HandleMuteChange( aCommandParam );
-            iAudioController->HandleMuteChange( aCommandParam );
             iToolbarController->SetMuteFlag( aCommandParam );
             if ( iButtonsController )
                 {
@@ -906,7 +909,7 @@
             iMenuController->CloseMenuBar();
             iIncallIndicator->Update( aCommandParam );
             iMenuController->SetCallInProgressFlag( aCommandParam );
-            iToolbarController->SetCallInProgressFlag( aCommandParam );            
+            iToolbarController->SetCallInProgressFlag( aCommandParam );
             break;
 
         case EPhoneViewStartCapturingKey:
@@ -1118,7 +1121,15 @@
                                                 booleanParam->Boolean() );
             break;
             }
-
+		 
+		 case EPhoneViewSetVoipCallDTMFVisibilityFlag:
+            {
+            TPhoneCmdParamBoolean*  booleanParam =
+                static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
+            iMenuController->SetHideVoipCallDTMFVisibilityFlag(
+                                                    booleanParam->Boolean() );
+            break;
+            }
         case EPhoneViewSetVideoCallDTMFVisibilityFlag:
             {
             TPhoneCmdParamBoolean*  booleanParam =
@@ -1186,11 +1197,11 @@
             iToolbarController->DimToolbar( booleanParam->Boolean());
             break;
             }
-            
+
         case EPhoneViewSetInvalidCsPhoneNumberFlag:
             iMenuController->SetInvalidCsPhoneNumberFlag( aCommandParam );
             break;
-                
+
         case EPhoneViewGetInvalidCsPhoneNumberFlag:
             iMenuController->GetInvalidCsPhoneNumberFlag( aCommandParam );
             break;
@@ -1206,7 +1217,7 @@
             TPhoneCmdParamBoolean*  booleanParam =
                             static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
             iMenuController->SetConferenceAndWaitingVideoFlag( booleanParam->Boolean() );
-			}
+            }
             break;
         default:
             __PHONELOG( EBasic, EPhonePhoneapp,
@@ -1499,7 +1510,7 @@
                 }
             }
             break;
-			
+
         case EPhoneViewEnableToolbarButton:
             {
             TPhoneCmdParamInteger*  integerParam =
@@ -1507,7 +1518,7 @@
             iToolbarController->SetToolbarButtonDimmed( integerParam->Integer(), EFalse );
             }
             break;
-            
+
         case EPhoneViewGetQwertyModeObserver:
             {
             TPhoneCmdParamPointer* ptrParam = static_cast<TPhoneCmdParamPointer*>( aCommandParam );
@@ -1582,7 +1593,7 @@
             break;
 
         case EPhoneViewGetNeedToReturnToForegroundAppStatus:
-            viewResponse = GetNeedToReturnToForegroundAppAfterCall() ?
+            viewResponse = GetNeedToReturnToForegroundAppAfterCallL() ?
                 EPhoneViewResponseSuccess :
                 EPhoneViewResponseFailed;
             break;
@@ -1603,7 +1614,7 @@
                 EPhoneViewResponseSuccess :
                 EPhoneViewResponseFailed;
             break;
-            
+
         case EPhoneViewIsMenuBarVisible:
             viewResponse = iMenuController->IsMenuBarVisible() ?
                 EPhoneViewResponseSuccess :
@@ -1634,7 +1645,7 @@
             EndTransEffect();
             }
             break;
-            
+
         case EPhoneDialerCmdContacts:
             {
             // Launch Phonebook application
@@ -1644,7 +1655,7 @@
             ExecuteCommandL( EPhoneViewActivateApp, &appInfoParam );
             EndTransEffect();
             }
-            break;           
+            break;
 
         case EPhoneDialerCmdSpeedDial:
             {
@@ -1654,7 +1665,7 @@
             ExecuteCommandL( EPhoneViewActivateApp, &appInfoParam );
             break;
             }
-            
+
         case EPhoneDialerCallSettings:
             {
             CGSLauncher* launcher = CGSLauncher::NewLC();
@@ -1664,7 +1675,7 @@
             CleanupStack::PopAndDestroy( launcher );
             break;
             }
-            
+
         case EPhoneViewIsDTMFEditorVisible:
             if ( iDialer )
                 {
@@ -1679,7 +1690,7 @@
                     EPhoneViewResponseFailed;
                 }
             break;
-            
+
         case EPhoneViewIsConferenceInExpandedMode:
             viewResponse = iBubbleWrapper->IsConferenceInExpandedMode() ?
                 EPhoneViewResponseSuccess :
@@ -1705,18 +1716,18 @@
                 // Set Number Entry CBA
                 TPhoneCmdParamInteger integerParam;
                 if ( iSecurityMode )
-                	{
+                    {
                     iNoteController->DestroyNote();
                     integerParam.SetInteger(
-                    CPhoneMainResourceResolver::Instance()->
-                              		ResolveResourceID( EPhoneEmergencyModeNoteCBA ) );
-                              	}
-                              else
-                              	{
-                              	integerParam.SetInteger(
-                              		CPhoneMainResourceResolver::Instance()->
-                              		ResolveResourceID( EPhoneNumberAcqCBA ) );
-                              	}
+                            CPhoneMainResourceResolver::Instance()->
+                                ResolveResourceID( EPhoneEmergencyModeNoteCBA ) );
+                    }
+                else
+                    {
+                    integerParam.SetInteger(
+                            CPhoneMainResourceResolver::Instance()->
+                                ResolveResourceID( EPhoneNumberAcqCBA ) );
+                    }
                 ExecuteCommandL( EPhoneViewUpdateCba, &integerParam );
                 // Set flag to false because dialler is set to open status.
                 iPhoneView->SetPhoneAppViewToDialer( EFalse );
@@ -1736,10 +1747,10 @@
                     static_cast<MEikCommandObserver*>( CEikonEnv::Static()->EikAppUi() )
                     ->ProcessCommandL( EPhoneDtmfDialerExit );
                     }
-                else if ( iCustomization && 
+                else if ( iCustomization &&
                           IsCustomDialerActive() )
                     {
-                    iCustomization->HandleCommandL( 
+                    iCustomization->HandleCommandL(
                        *this, EPhoneViewOpenCallHandling, NULL );
                     }
                 else
@@ -1803,6 +1814,14 @@
             iToolbarController->ShowToolbar();
             }
             break;
+            
+        case EPhoneViewIsDisplayingMenuOrDialog:
+            {
+            viewResponse = iEikEnv.EikAppUi()->IsDisplayingMenuOrDialog() ?
+                EPhoneViewResponseSuccess :
+                EPhoneViewResponseFailed;
+            }
+            break;
         default:
             viewResponse = EPhoneViewResponseFailed;
             __PHONELOG( EBasic, EPhonePhoneapp, "CPhoneViewController::HandleCommandL -> UnKnownMessage !!! ");
@@ -1823,7 +1842,7 @@
     __PHONELOGVIEWMSG( aCmdId, 0 );
     TPhoneViewResponseId viewResponse = EPhoneViewResponseSuccess;
     TInt err;
-    
+
     switch ( aCmdId )
         {
         case EPhoneViewSendKeyEventToNumberEntry:
@@ -1956,7 +1975,7 @@
             viewResponse = EPhoneViewResponseSuccess;
             }
             break;
-            
+
         default:
             if ( iCustomization )
                 {
@@ -2076,11 +2095,8 @@
     CEikonEnv& aEnv )
     {
     TInt result = 0;
-
     RWsSession& wsSession = aEnv.WsSession();
-
-    const TInt numWg =
-        wsSession.NumWindowGroups(
+    const TInt numWg = wsSession.NumWindowGroups(
             KPhoneApplicationWindowGroupPriority );
 
     CArrayFixFlat<TInt>* wgList =
@@ -2132,7 +2148,7 @@
                         "CPhoneViewController::HandleResourceChangeL()" )
     // Notify the bubble that there has been a resource change
     iBubbleWrapper->Control()->HandleResourceChange( aType );
-    
+
     // Notify dialer and switch statuspane layout.
     if ( iDialer )
         {
@@ -2178,25 +2194,54 @@
     }
 
 // ---------------------------------------------------------------------------
+// CPhoneViewController::IsEmergencyCallOngoing()
+// ---------------------------------------------------------------------------
+//
+TBool CPhoneViewController::IsEmergencyCallOngoing()
+    {
+    __LOGMETHODSTARTEND( EPhoneUIView,
+                         "CPhoneViewController::IsEmergencyCallOngoing()");
+
+    TPhoneCmdParamCallStateData callStateData;
+    callStateData.SetCallState( EPEStateConnected );
+    iBubbleWrapper->GetCallIdByState( &callStateData );
+    TInt connected = callStateData.CallId();
+
+    callStateData.SetCallState( EPEStateConnecting );
+    iBubbleWrapper->GetCallIdByState( &callStateData );
+    TInt connecting = callStateData.CallId();
+
+    return ( ( connected == KEmergencyCallId ) ||
+             ( connecting == KEmergencyCallId ) );
+    }
+
+// ---------------------------------------------------------------------------
 // CPhoneViewController::HandleSecurityModeChanged
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CPhoneViewController::HandleSecurityModeChanged( TBool aIsEnabled )
-	{
-	 __PHONELOG1( EBasic, EPhoneUIView,
-            "CPhoneViewController::SetSecurityMode Mode = (%d)", aIsEnabled );
-    iToolbarController->DimToolbar( aIsEnabled );			
-	iPhoneView->SetSecurityMode( aIsEnabled );
-	iMenuController->SetSecurityMode( aIsEnabled );
-	
-	TBool securityModeChanged = ( iSecurityMode != aIsEnabled );
-	
-	iSecurityMode = aIsEnabled;
-	
-	if ( iDialer )
-		{
+    {
+    __PHONELOG1( EBasic, EPhoneUIView,
+            "CPhoneViewController::HandleSecurityModeChanged Mode = (%d)", aIsEnabled );
+
+    TBool emergencyCallOngoing = IsEmergencyCallOngoing();
+
+    // Don't undim toolbar if emergency call is ongoing 
+    if ( !emergencyCallOngoing )
+        {
+        iToolbarController->DimToolbar( aIsEnabled );
+        }
+    iPhoneView->SetSecurityMode( aIsEnabled );
+    iMenuController->SetSecurityMode( aIsEnabled );
+
+    TBool securityModeChanged = ( iSecurityMode != aIsEnabled );
+
+    iSecurityMode = aIsEnabled;
+
+    if ( iDialer )
+        {
         iDialerController->SetRestrictedDialer( aIsEnabled );
-	
+
         if ( iDialerActive && securityModeChanged )
             {
             CDialingExtensionInterface* easyDialing = iDialer->GetEasyDialingInterface();
@@ -2222,30 +2267,40 @@
                     }
                 }
             iDialer->RelayoutAndDraw();
-            
-            // also update cba if security mode changes while dialer is open
-            TPhoneCmdParamInteger integerParam;
-            if ( aIsEnabled )
+
+            // Don't update cba here if emergency call is ongoing 
+            if ( !emergencyCallOngoing )
                 {
-                iNoteController->DestroyNote();
-                integerParam.SetInteger( CPhoneMainResourceResolver::Instance()->
-                        ResolveResourceID( EPhoneEmergencyModeNoteCBA ) );
+                // also update cba if security mode changes while dialer is open
+                TPhoneCmdParamInteger integerParam;
+                if ( aIsEnabled )
+                    {
+                    iNoteController->DestroyNote();
+                    integerParam.SetInteger( CPhoneMainResourceResolver::Instance()->
+                            ResolveResourceID( EPhoneEmergencyModeNoteCBA ) );
+                    }
+                else
+                    {
+                    integerParam.SetInteger( CPhoneMainResourceResolver::Instance()->
+                            ResolveResourceID( EPhoneNumberAcqCBA ) );
+                    }
+                TRAP_IGNORE( ExecuteCommandL( EPhoneViewUpdateCba, &integerParam ) );
                 }
-            else
-                {
-                integerParam.SetInteger( CPhoneMainResourceResolver::Instance()->
-                        ResolveResourceID( EPhoneNumberAcqCBA ) );
-                }
-            TRAP_IGNORE( ExecuteCommandL( EPhoneViewUpdateCba, &integerParam ) );
-            
             if ( !aIsEnabled )
                 {
                 TRAP_IGNORE( SwitchLayoutToFlatStatusPaneL( ETrue ) );
                 }
             }
-		}
+        }
     if ( securityModeChanged )
         {
+        // Update cba if security mode changes while emergency call is ongoing
+        if ( emergencyCallOngoing )
+            {
+            TRAP_IGNORE( static_cast<MEikCommandObserver*>( CEikonEnv::Static()->EikAppUi() )
+                                ->ProcessCommandL( EPhoneCmdUpdateEmergencyCba ) );
+            }
+
         // Update status pane dimming
         iStatusPane->StatusPane().SetDimmed( aIsEnabled );
 
@@ -2257,7 +2312,7 @@
 
         iKeyCaptureController->StopCapturingKey( &appKeyCaptureParam );
         }
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CPhoneViewController::IdleAppUid
@@ -2299,7 +2354,7 @@
     {
     iMenuController->SetNumberEntryEmptyFlag( !aEntryHasText );
     iBubbleWrapper->HandleNumberEntryChanged();
-    ExecuteCommandL( EPhoneViewUpdateToolbar );
+    TRAP_IGNORE( ExecuteCommandL( EPhoneViewUpdateToolbar ) );
     }
 
 // ---------------------------------------------------------------------------
@@ -2378,15 +2433,12 @@
 // CPhoneViewController::FindAppByWgIDL
 // ---------------------------------------------------------------------------
 //
-TInt CPhoneViewController::FindAppByWgIDL( TInt aAppWgID )
+TInt CPhoneViewController::FindAppByWgIDL( TInt aAppWgID ) const
     {
     __LOGMETHODSTARTEND( EPhoneUIView,
         "CPhoneViewController::FindAppByWgIDL() ")
-
     TInt appExists( KErrNotFound );
-
     RWsSession& wsSession = iEikEnv.WsSession();
-
     const TInt numWg = wsSession.NumWindowGroups(
             KPhoneApplicationWindowGroupPriority );
 
@@ -2396,7 +2448,6 @@
     wgList->SetReserveL( numWg );
 
     // Get list of window groups; all applications should be at priority 0.
-    //
     if ( wsSession.WindowGroupList(
         KPhoneApplicationWindowGroupPriority,
         wgList ) == KErrNone )
@@ -2410,9 +2461,7 @@
                 }
             }
         }
-
     CleanupStack::PopAndDestroy( wgList );
-
     return appExists;
     }
 
@@ -2485,7 +2534,7 @@
         CAknSgcClient::MoveApp( phoneApp.WgId(), ESgcMoveAppToForeground );
         __PHONELOG1( EBasic, EPhoneUIView,
                       "CPhoneViewController::BringPhoneAppToForeground - Previous App WG ID: %d",
-                      iPrevForegroundAppWg );        
+                      iPrevForegroundAppWg );
         }
     }
 
@@ -2760,9 +2809,9 @@
     TInt resourceId = cbaResource->Integer();
 
     iCba->SetCommandSetL( resourceId );
-    
+
     iCba->DrawDeferred();
-    
+
     }
 
 // ---------------------------------------------------------------------------
@@ -2879,10 +2928,10 @@
 
     if ( phoneIsLocked || IsSecurityCodeQuery() )
         {
-        // Soft Reject is enabled if the phone is not locked. 
-		// Security Code query is checked because in the boot
-		// autolock status value is OFF even when it's actually
-		// ON so we need to do this double checking.
+        // Soft Reject is enabled if the phone is not locked.
+        // Security Code query is checked because in the boot
+        // autolock status value is OFF even when it's actually
+        // ON so we need to do this double checking.
         return EFalse;
         }
     return ETrue;
@@ -3029,8 +3078,8 @@
     CPhCntSpeedDialMonitor::TSpdDialFieldInfo fieldInfo;
 
     TBuf<KPhoneNumberEntryBufferSize> number;
-    TContactItemId itemId = iSpeedDialController->GetSpeedDialFieldL( 
-                                aSpeedDialLocation, 
+    TContactItemId itemId = iSpeedDialController->GetSpeedDialFieldL(
+                                aSpeedDialLocation,
                                 number,
                                 fieldInfo );
 
@@ -3045,7 +3094,7 @@
 // ---------------------------------------------------------------------------
 //
 TPhoneNumberType CPhoneViewController::ConvertNumberTypeFromSpeedDialFieldInfo(
-    CPhCntSpeedDialMonitor::TSpdDialFieldInfo aFieldInfo )
+    const CPhCntSpeedDialMonitor::TSpdDialFieldInfo& aFieldInfo )
     {
     __LOGMETHODSTARTEND(EPhoneUIView,
         "CPhoneViewController::ConvertNumberTypeFromSpeedDialFieldInfo() ");
@@ -3103,7 +3152,7 @@
 TBool CPhoneViewController::AssignSpeedDialLocationL(
     TInt aLocation )
     {
-  CreateSpeedDialControllerL();
+    CreateSpeedDialControllerL();
 
     // Assign speed dial location
     TBuf<KPhoneNumberEntryBufferSize> number;
@@ -3128,7 +3177,7 @@
     TUid mtmUid = { KSenduiMtmUniMessageUidValue };
 
     CSendUi* messageEditor = CSendUi::NewL();
-  CleanupStack::PushL( messageEditor );
+    CleanupStack::PushL( messageEditor );
 
     // Inform the SendUi to open the message editor. This is not a blocking
     // dialog so the flag does not need to be set.
@@ -3320,7 +3369,7 @@
 
     // btaa menu options
     iMenuController->SetBTAccFlag( &btaaParam );
-
+	iToolbarController->SetBTAccFlag( &btaaParam );
     iAudioController->HandleIhfChange( &ihfParam );
 
     if ( iButtonsController )
@@ -3360,7 +3409,8 @@
 
     // btaa menu options
     iMenuController->SetBTAccAvailableFlag( &btAvailableParam );
-
+	iToolbarController->SetBTAccAvailableFlag( &btAvailableParam );
+	
     if ( iButtonsController )
         {
         iButtonsController->SetBTAccAvailableFlag( &btAvailableParam );
@@ -3588,7 +3638,7 @@
   {
     __LOGMETHODSTARTEND( EPhoneUIView,
         "CPhoneViewController::CreateSpeedDialControllerL()" );
-  if( !iSpeedDialController )
+    if( !iSpeedDialController )
         {
         iSpeedDialController = iContactController->CreateSpeedDialMonitorL();
         }
@@ -3690,12 +3740,12 @@
 // -----------------------------------------------------------
 //
 TInt CPhoneViewController::SingleItemFetchType() const
-   {
-   __LOGMETHODSTARTEND(EPhoneUIView,
+    {
+    __LOGMETHODSTARTEND(EPhoneUIView,
        "CPhoneViewController::SingleItemFetchType()" );
 
-   return iSingleItemFetchType;
-   }
+    return iSingleItemFetchType;
+    }
 
 // ---------------------------------------------------------------------------
 // CPhoneViewController::SwitchLayoutToFlatStatusPaneL
@@ -3793,42 +3843,26 @@
     {
     __LOGMETHODSTARTEND(EPhoneUIView,
         "CPhoneViewController::HandleTransitionEffect()" );
-
-   switch ( aType )
+    __PHONELOG1( EBasic, EPhoneUIView,
+        "CPhoneViewController::HandleTransitionEffect aType:(%d)", aType );
+    TInt useEffect(KErrNotFound);
+    switch ( aType )
         {
         case EPhoneTransEffectDialerCreate:
         case EPhoneTransEffectDialerOpen:
-            {
-            GfxTransEffect::BeginFullScreen(
-                KTouchDialerOpenEffect,
-                TRect(),
-                AknTransEffect::EParameterType,
-                AknTransEffect::GfxTransParam( KUidPhoneApplication,
-                        AknTransEffect::TParameter::EActivateExplicitCancel ) );
-            iEffectOngoing = ETrue;
+            useEffect = KTouchDialerOpenEffect;
             break;
-            }
         case EPhoneTransEffectDialerClose:
-            {
-            GfxTransEffect::BeginFullScreen(
-                KTouchDialerCloseEffect,
-                TRect(),
-                AknTransEffect::EParameterType,
-                AknTransEffect::GfxTransParam( KUidPhoneApplication,
-                        AknTransEffect::TParameter::EActivateExplicitCancel ) );
-            iEffectOngoing = ETrue;
+            useEffect = KTouchDialerCloseEffect;
+            break;
+        case EPhoneTransEffectAppStartFromDialer:
+            useEffect = AknTransEffect::EApplicationStart;
             break;
-            }
-        case EPhoneTransEffectAppStartFromDialer:
-            {
-            GfxTransEffect::BeginFullScreen(
-                AknTransEffect::EApplicationStart, 
-                TRect(), 
-                AknTransEffect::EParameterType, 
-                AknTransEffect::GfxTransParam( aAppUidEffectParam,
-                    AknTransEffect::TParameter::EActivateExplicitCancel ) );
-            iEffectOngoing = ETrue;
-            }
+        case EPhoneTransEffectCallUiAppear:
+            useEffect = KTouchCallUiOpenEffect;
+            break;
+        case EPhoneTransEffectCallUiDisappear:
+            useEffect = KTouchCallUiCloseEffect;
             break;
         case EPhoneTransEffectStop:
             {
@@ -3842,6 +3876,17 @@
         default:
             break;
         }
+    
+    if ( KErrNotFound < useEffect )
+        {
+        GfxTransEffect::BeginFullScreen(
+            useEffect,
+            TRect(),
+            AknTransEffect::EParameterType,
+            AknTransEffect::GfxTransParam( aAppUidEffectParam,
+                    AknTransEffect::TParameter::EActivateExplicitCancel ) );
+        iEffectOngoing = ETrue;
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -3859,18 +3904,18 @@
         {
         iDialerActive = ETrue;
 
-        // Ensure that toolbar and menu commands are up-to-date 
+        // Ensure that toolbar and menu commands are up-to-date
         TBuf<1> temp; // we are only interested if the text is empty or not
         iDialer->GetTextFromNumberEntry( temp );
         NumberEntryStateChanged( temp.Length() > 0 );
-        
+
         // Make dialer view top most
         iDialerView->DrawableWindow()->SetOrdinalPosition(
             iPhoneView->DrawableWindow()->OrdinalPosition() );
 
         // Hide in-call view toolbar
         iToolbarController->HideToolbar();
-        
+
         SwitchLayoutToFlatStatusPaneL( ETrue );
 
         // Don't make dialer view visible before status pane is updated.
@@ -3882,7 +3927,7 @@
         // dialer as soon as it becomes visible to prevent the flashing of
         // number entry (DrawDeferred() isn't fast enough here).
         iDialerView->DrawNow();
-      
+
         iPhoneView->DrawableWindow()->SetOrdinalPosition( -1 );
         iPhoneView->MakeVisible( EFalse );
 
@@ -3910,7 +3955,7 @@
         // resizing of dialer components. Hiding dialer view already before showing
         // phone view might cause screen flickering but tests have proven it doesn't happen.
         iDialerView->MakeVisible( EFalse );
-        
+
         SwitchLayoutToFlatStatusPaneL( EFalse );
 
         // Make call handling view top most
@@ -3924,7 +3969,7 @@
         // Update control stack
         iAppui->AddToStackL( iPhoneView );
         iAppui->RemoveFromStack( iDialerView );
-        
+
         iEasyDialingController->HandleCommandL( EEasyDialingCallHandlingActivated );
         }
     }
@@ -4038,8 +4083,8 @@
 //
 TBool CPhoneViewController::IsDtmfDialerActive() const
     {
-    TBool ret = 
-            ( iDialer && iDtmfDialerController && 
+    TBool ret =
+            ( iDialer && iDtmfDialerController &&
               iDialer->Controller() == iDtmfDialerController );
     return ret;
     }
@@ -4054,8 +4099,8 @@
     if ( iDialer )
         {
         MPhoneDialerController* curController = iDialer->Controller();
-        ret = ( curController && 
-                curController != iDialerController && 
+        ret = ( curController &&
+                curController != iDialerController &&
                 curController != iDtmfDialerController );
         }
     return ret;
@@ -4065,50 +4110,83 @@
 // CPhoneViewController::CanTransEffectBeUsed
 // -----------------------------------------------------------
 //
-TBool CPhoneViewController::CanTransEffectBeUsed( 
+TBool CPhoneViewController::CanTransEffectBeUsed(
     TPhoneTransEffectType aType )
     {
     TBool okToUseEffect( EFalse );
-    
-    TBool isForeground = iAppui->IsForeground();
-    // Check whether the idle is on foreground
-    TBool idleInFore = ForegroundApplicationWindowGroupId() ==  IdleWindowGroupId() ?
+    TBool isPhoneForeground = iAppui->IsForeground();
+    TBool isIdleInForeground = 
+            ForegroundApplicationWindowGroupId() == IdleWindowGroupId() ?
             ETrue : EFalse;
-    
-    if ( isForeground && // Newer run effect if not at front
-         ( ( aType == EPhoneTransEffectDialerCreate && !iDialerActive ) ||
-           ( aType == EPhoneTransEffectDialerOpen && !iDialerActive &&
-             iBubbleWrapper->IsNumberEntryUsed() ) ||
-           ( aType == EPhoneTransEffectDialerClose && iDialerActive ) ) )
+    if ( isPhoneForeground && 
+         IsOkToUseThisTypeOfEffectInsidePhoneApp( aType ) )
+        {
+        okToUseEffect = ETrue;
+        }
+    /* In case transition is from idle to dialer or to incoming call 
+    show transition effects as well. */
+    else if ( isIdleInForeground && 
+              ( aType == EPhoneTransEffectDialerOpen ||
+                aType == EPhoneTransEffectCallUiAppear ) )
+        {
+        okToUseEffect = ETrue;
+        }
+    /* isPhoneForeground/isIdleInForeground are false
+    when call is created from some other then phone app for example logs or from phonebook*/
+    else if ( !isPhoneForeground && 
+              !isIdleInForeground && 
+              ( aType == EPhoneTransEffectDialerOpen ||
+                aType == EPhoneTransEffectCallUiAppear ) )
         {
         okToUseEffect = ETrue;
         }
-    // In case transition is from idle to dialer show transition effects as well.                 
-    else if ( idleInFore && !iDialerActive &&
-              aType == EPhoneTransEffectDialerOpen )
+    return okToUseEffect;
+    }
+
+// -----------------------------------------------------------
+// CPhoneViewController::IsOkToUseThisTypeOfEffectInsidePhoneApp
+// -----------------------------------------------------------
+//
+TBool CPhoneViewController::IsOkToUseThisTypeOfEffectInsidePhoneApp(
+        TPhoneTransEffectType aType )
+    {
+    TBool okToUse(EFalse);
+    switch ( aType )
         {
-        okToUseEffect = ETrue;
+        case EPhoneTransEffectDialerCreate:
+        case EPhoneTransEffectDialerOpen:
+            okToUse = !iDialerActive;
+            break;
+        case EPhoneTransEffectAppStartFromDialer:
+            okToUse = iDialerActive;
+            break;
+        /* No need to check dialer activity below because effects are 
+        common to callhandling/dialer */
+        case EPhoneTransEffectDialerClose:
+        case EPhoneTransEffectCallUiAppear:
+        case EPhoneTransEffectCallUiDisappear:
+            okToUse = ETrue;
+            break;
+        default:
+            break;
         }
-    else if ( isForeground && iDialerActive && 
-              aType == EPhoneTransEffectAppStartFromDialer )
-        {
-        okToUseEffect = ETrue;
-        }
-    
-    return okToUseEffect;
+    __PHONELOG1( EBasic, EPhoneUIView,
+                "CPhoneViewController::IsOkToUseThisTypeOfEffectInsidePhoneApp(%d)",
+                okToUse );
+    return okToUse;
     }
 
 // -----------------------------------------------------------
 // CPhoneViewController::BeginTransEffectForAppStartFromDialerLC
 // -----------------------------------------------------------
 //
-void CPhoneViewController::BeginTransEffectForAppStartFromDialerLC( 
+void CPhoneViewController::BeginTransEffectForAppStartFromDialerLC(
     const TUid& aAppUid )
     {
     TPhoneCmdParamTransEffect effectParam;
     effectParam.SetType( EPhoneTransEffectAppStartFromDialer );
     effectParam.SetAppUid( aAppUid );
-    
+
     ExecuteCommand( EPhoneViewBeginTransEffect,  &effectParam );
 
     TCleanupItem operation( EffectCleanup, this );
@@ -4154,11 +4232,18 @@
     }
 
 // ---------------------------------------------------------------------------
-// CPhoneViewController::GetNeedToReturnToForegroundAppAfterCall
+// CPhoneViewController::GetNeedToReturnToForegroundAppAfterCallL
 // ---------------------------------------------------------------------------
 //
-TBool CPhoneViewController::GetNeedToReturnToForegroundAppAfterCall() const
+TBool CPhoneViewController::GetNeedToReturnToForegroundAppAfterCallL()
     {
+    // Check that previous app still exists. It might be for example
+    // add to contact - dialog that is allready destroyed or user has closed
+    // app using task swapper.
+    if( KErrNotFound == FindAppByWgIDL( iPrevForegroundAppWg ) )
+        {
+        iNeedToReturnToForegroundAppAfterCall = EFalse;
+        }
     return iNeedToReturnToForegroundAppAfterCall;
     }
 
@@ -4167,20 +4252,19 @@
 // ---------------------------------------------------------------------------
 //
 void CPhoneViewController::AllowInCallBubbleInSpecialCases()
-{
+    {
     // this method can be used for special cases like dialer
- 
+
     if( iDialerActive )
-    {
+        {
         SetIncallBubbleVisibility( ETrue );
+        }
+    else
+        {
+        SetIncallBubbleVisibility( EFalse );
+        }
     }
-    else
-    {
-        SetIncallBubbleVisibility( EFalse );
-    }
- 
-}
-                    
+
 // ---------------------------------------------------------------------------
 // CPhoneViewController::SetIncallBubbleVisibility
 // ---------------------------------------------------------------------------
@@ -4191,7 +4275,7 @@
         "CPhoneViewController::SetIncallBubbleVisibility(%d)",
         aVisible );
 
-    TRAP_IGNORE( iIncallBubble->SetIncallBubbleAllowedInUsualL( aVisible ) ); 
+    TRAP_IGNORE( iIncallBubble->SetIncallBubbleAllowedInUsualL( aVisible ) );
     }
 
 // ---------------------------------------------------------------------------
--- a/phoneapp/phoneuiview/src/phoneringingtonesrv.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/src/phoneringingtonesrv.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -88,24 +88,36 @@
     }
 
 // -----------------------------------------------------------------------------
-// CPhoneRingingToneServer::IncrementSessions
+// CPhoneRingingToneServer::StartSession
 // -----------------------------------------------------------------------------
 //
-void CPhoneRingingToneServer::IncrementSessions()
+TInt CPhoneRingingToneServer::StartSession()
     {
-    iSessionCount++;
+    TInt err( KErrNone );
+
+    if( !iSessionInUse )
+        {
+        iSessionInUse = ETrue;
+        }
+    else
+        {
+        err = KErrAccessDenied;
+        }
+    PHONEUIVIEW_PRINTF( "CPhoneRingingToneServer::StartSession err %d", err );
+
+    return err;
     }
 
 // -----------------------------------------------------------------------------
-// CPhoneRingingToneServer::DecrementSessions
+// CPhoneRingingToneServer::CloseSession
 // -----------------------------------------------------------------------------
 //
-void CPhoneRingingToneServer::DecrementSessions()
+void CPhoneRingingToneServer::CloseSession()
     {
-    if ( --iSessionCount <= 0 )
-        {
-        CActiveScheduler::Stop();
-        }
+    PHONEUIVIEW_PRINT( "CPhoneRingingToneServer::CloseSession()" );
+
+    CActiveScheduler::Stop();
+    iSessionInUse = EFalse;
     }
 
 // -----------------------------------------------------------------------------
--- a/phoneapp/phoneuiview/src/phoneringingtonesrvsession.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuiview/src/phoneringingtonesrvsession.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -43,7 +43,10 @@
 //
 CPhoneRingingToneServerSession::~CPhoneRingingToneServerSession()
     {
-    iServer.DecrementSessions();
+    if( iStartSession == KErrNone )
+        {
+        iServer.CloseSession();
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -68,7 +71,10 @@
 void CPhoneRingingToneServerSession::ConstructL()
     {
     PHONEUIVIEW_PRINT( "CPhoneRingingToneServerSession::ConstructL" );
-    iServer.IncrementSessions();
+
+    iStartSession = iServer.StartSession();
+
+    User::LeaveIfError( iStartSession );
     }
 
 // -----------------------------------------------------------------------------
--- a/phoneapp/phoneuivoipextension/src/cphonecustomizationvoip.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuivoipextension/src/cphonecustomizationvoip.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -802,9 +802,7 @@
     __LOGMETHODSTARTEND( PhoneUIVoIPExtension, 
         "CPhoneCustomizationVoip::ModifyNumberAcquisitionMenuL");
     
-    if ( ( aResourceId == R_PHONEUI_NUMBERACQ_OPTIONS_CALL_MENU ||
-           aResourceId == R_PHONEUI_NUMBERACQ_OPTIONS_MENU ||
-           aResourceId == R_PHONEUIDIALER_OPTIONS_MENU ) &&
+    if ( aResourceId == R_PHONEUI_NUMBERACQ_OPTIONS_CALL_MENU &&
            VoIPSupportedL() )
         {
         InsertInternetCallMenuItemL( aResourceId, aMenuPane );
@@ -825,7 +823,7 @@
 // -----------------------------------------------------------
 //
 void CPhoneCustomizationVoip::InsertInternetCallMenuItemL( 
-        TInt aResourceId, CEikMenuPane& aMenuPane )
+        TInt /* aResourceId */, CEikMenuPane& aMenuPane )
     {
     __LOGMETHODSTARTEND( PhoneUIVoIPExtension, 
         "CPhoneCustomizationVoip::InsertInternetCallMenuItemL" );
@@ -855,36 +853,11 @@
 
     TInt index(KErrNotFound);
 
-    if ( aResourceId == R_PHONEUI_NUMBERACQ_OPTIONS_CALL_MENU )
+    // If number entry is empty don't add internet call option 
+    if ( phoneNumber->Length() )
         {
-        if ( !CPhoneKeys::Validate( phoneNumber->Des() ) )
-            {        
-            if ( aMenuPane.MenuItemExists( EPhoneNumberAcqCmdCall, index ) )
-                {
-                aMenuPane.DeleteMenuItem( EPhoneNumberAcqCmdCall );
-                }
-            
-            if ( aMenuPane.MenuItemExists( EPhoneNumberAcqCmdVideoCall, index ) )
-                {
-                aMenuPane.DeleteMenuItem( EPhoneNumberAcqCmdVideoCall );
-                }
-            }
-        
         aMenuPane.AddMenuItemL( voipMenuItem->iData );
         }
-    else if ( !aMenuPane.MenuItemExists( EPhoneNumberAcqCmdCall, index ) )
-        {
-        // Call menu is removed if user inserts anything that is not
-        // a valid cs number, so must add Internet call option here where
-        // we know that voip is however supported.
-    
-        // If number entry is empty don't add internet call option 
-        if ( phoneNumber->Length() )
-            {
-            // Internet call item must be on the top of the menu
-            aMenuPane.InsertMenuItemL( voipMenuItem->iData, 0 );
-            }
-        }
     
     CleanupStack::PopAndDestroy( 3, &voipServices );
     }
--- a/phoneapp/phoneuivoipextension/src/cphonestatemachinevoip.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuivoipextension/src/cphonestatemachinevoip.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -157,6 +157,10 @@
     if ( madeStateTransition )
         {
         iOldStateId = iNewStateId;
+        
+        // Needs to be set or any attempts to access eikon env handle
+        // will fail
+        iState->SetEikonEnv( EikonEnv() );
         }
 
     return iState;
--- a/phoneapp/phoneuivoipextension/src/cphoneunattendedtransfercmdhandler.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneapp/phoneuivoipextension/src/cphoneunattendedtransfercmdhandler.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -198,7 +198,9 @@
             &customDialerParam );
         
         // Open transfer dialer
+        phoneState->BeginTransEffectLC( ECallUiDisappear );
         iViewCommandHandle.ExecuteCommandL( EPhoneViewCreateNumberEntry );
+        phoneState->EndTransEffect();
         
         // Update CBA to transfer dialer CBA
         TPhoneCmdParamInteger resourceId;
--- a/phoneengine/PhoneCntFinder/ContactService/inc/CPhCntContactManager.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/CPhCntContactManager.h	Thu Sep 09 18:09:57 2010 +0100
@@ -106,7 +106,7 @@
 	 */
     MPhCntContactMatchStrategy* CreateContactMatchStrategyL(
             MVPbkContactFindObserver& aObserver,
-            TBool aRemoveDuplicates );
+            TDuplicateRemovalStrategy aStrategy );
    
     /**
      * From MPhCntContactManager.
@@ -365,4 +365,4 @@
      
     };
 
-#endif // CPHCNTCONTACTMANAGER_H
\ No newline at end of file
+#endif // CPHCNTCONTACTMANAGER_H
--- a/phoneengine/PhoneCntFinder/ContactService/inc/CPhCntMatcherImpl.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/CPhCntMatcherImpl.h	Thu Sep 09 18:09:57 2010 +0100
@@ -21,6 +21,8 @@
 #include <e32base.h>
 #include "CPhCntMatcher.h"
 #include "MVPbkContactLink.h"
+#include "MPhCntContactManager.h"
+#include "tphcntcontactselectionstrategy.h"
 
 class MPhCntContactStores;
 class CPhCntContactManager;
@@ -45,12 +47,12 @@
     {
 public:
 
-	/**
-	 * Static constructor.
-	 *
-	 * @since S60 v3.1
-	 * @param aOwner Phonebook owner.
-	 */
+    /**
+     * Static constructor.
+     *
+     * @since S60 v3.1
+     * @param aOwner Phonebook owner.
+     */
     static CPhCntMatcherImpl* NewL( const MPhoneCntPbkOwner& aOwner );
 
     /**
@@ -110,14 +112,14 @@
     /**
     * Match number to phonebook.
     * @param aMatch Found match, owership tranferred. NULL if not found any.
-    * @param aNumber Number to match against.
+    * @param aMatchString Number to match against.
     * @return Error code: KErrNone - one match found
     *                     KErrNotFound - no matches found
     *                     other - normal Symbian OS error
     */
-	TInt MatchVoipNumber(
+    TInt MatchVoipNumber(
         MPhCntMatch*& aMatch,
-        const TDesC& aNumber,
+        const TDesC& aMatchString,
         TBool aAllowUserNameMatch,
         MDesCArray* aContactStoreUris,
         TInt aCharsForMatching = 0 );
@@ -127,6 +129,7 @@
     * by contact id.
     * @since Series60 3.0
     * @param aMatch for found match, owership tranferred. Empty if not found.
+    * @param aMatchString Number to match against.
     * @param aContactId for current contact.
     * @return Error code: KErrNone - VoIP call contact found
     *                     KErrNotFound - no VoIP call contact found
@@ -134,6 +137,7 @@
     */
     TInt MatchVoipNumber(
         MPhCntMatch*& aMatch,
+        const TDesC& aMatchString,
         const CPhCntContactId& aContactId );
 
 
@@ -163,16 +167,14 @@
     TInt GetContactL(
         MPhCntMatch*& aMatch,
         const TDesC& aTelNumber );
-
+    
     /**
-     * Match contacts against product specific stores.
-     *
-     * @since S60 v3.2
-     * @param aLinkArray Array of contacts to match
-     * @return Error code.
+     * Matches contacts
      */
-    TInt MatchFromAdditionalStore( const MVPbkContactLinkArray& aLinkArray ) const;
-
+    TInt MatchContactL( 
+        const MVPbkContactLinkArray*& aContactLinkArray, 
+        const TDesC& aTelNumber,
+        MPhCntContactManager::TDuplicateRemovalStrategy aRemoveDuplicatesStrategy );
 
 protected:
 
@@ -257,6 +259,9 @@
      * Own.
      */
     MPhCntContactMatchStrategy* iCSMatchStrategy;
+    
+    
+    TPhCntContactSelectionStrategy iContactSelectionStrategy;
 
     };
 
--- a/phoneengine/PhoneCntFinder/ContactService/inc/MPhCntContactManager.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/MPhCntContactManager.h	Thu Sep 09 18:09:57 2010 +0100
@@ -51,6 +51,11 @@
     {
 public:
     
+    enum TDuplicateRemovalStrategy {
+        ERemoveDuplicates,
+        EDontRemoveDuplicates
+    };
+    
     /**
      * Retrieves contact from phonebook.
      * 
@@ -76,11 +81,12 @@
      *
      * @since S60 v3.1
      * @param aObserver Contact match strategy observer.
+     * @param aStrategy Contact dupe removal strategy
      * @return New contact match strategy instance.
      */
     virtual MPhCntContactMatchStrategy* CreateContactMatchStrategyL(
         MVPbkContactFindObserver& aObserver,
-        TBool aRemoveDuplicates )= 0;
+        TDuplicateRemovalStrategy aStrategy )= 0;
     
     /**
      * Gives access to contact name formatter.
@@ -226,4 +232,4 @@
     virtual ~MPhCntContactManager() {};
     };
 
-#endif 
\ No newline at end of file
+#endif 
--- a/phoneengine/PhoneCntFinder/ContactService/inc/cphcntcontactmatchstrategy.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/cphcntcontactmatchstrategy.h	Thu Sep 09 18:09:57 2010 +0100
@@ -20,7 +20,6 @@
 #define CPHCNTCONTACTMATCHSTRATEGY_H
 
 #include <e32base.h>
-#include <cenrepnotifyhandler.h>
 #include <CVPbkPhoneNumberMatchStrategy.h>
 
 #include "mphcntcontactmatchstrategy.h"
@@ -29,7 +28,6 @@
 class CVPbkContactManager;
 class MVPbkContactFindObserver;
 class CVPbkPhoneNumberMatchStrategy;
-class CRepository;
 class CVPbkContactStoreUriArray;
 class CPhCntContactStoreUris;
 class CCntRawPhoneNumberExtractor;
@@ -43,7 +41,6 @@
 NONSHARABLE_CLASS( CPhCntContactMatchStrategy ) :
     public CBase,
     public MPhCntContactMatchStrategy,
-    private MCenRepNotifyHandlerCallback,
     private MPhCntContactStoreEventObserver
     {
 public:
@@ -116,11 +113,6 @@
     void ContactStoreAvailabilityChanged();
 
     /**
-     * Removes postfix from aNumber and starts the matching.
-     */
-    void MatchL( const TDesC& aNumber );
-
-    /**
      * Method to ease unit testing. Creates the actual instance of iMatchStrategy.
      */
     virtual TInt DoCreateMatchStrategy();
@@ -149,20 +141,6 @@
      */
     CVPbkPhoneNumberMatchStrategy* iMatchStrategy;
 
-    /**
-     * Central repository instance, for getting
-     * number of numbers used with contact matching.
-     * Own.
-     */
-    CRepository* iCenRepSession;
-
-    /**
-     * For getting notifications of number of numbers
-     * used with contact matching changes.
-     * Own.
-     */
-    CCenRepNotifyHandler* iCenRepNotifyHandler;
-
      /**
       * Contact manager is needed with match strategy.
       * Not own.
@@ -189,11 +167,6 @@
     CVPbkContactStoreUriArray* iUriArray;
 
     /**
-     * Number of digits used with matching.
-     */
-    TInt iNumberOfDigits;
-
-    /**
      * Number extractor.
      * Own.
      */
--- a/phoneengine/PhoneCntFinder/ContactService/inc/cphcntmatchervoipimpl.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/cphcntmatchervoipimpl.h	Thu Sep 09 18:09:57 2010 +0100
@@ -44,7 +44,7 @@
      * Match number to phonebook.
      * @since S60 v3.2
      * @param aMatch Found match, owership tranferred. NULL if not found any.
-     * @param aNumber Number to match against.
+     * @param aMatchString Number to match against.
      * @param aAllowUserNameMatch If true user name match is allowed.
      * @param aCharsForMatching Characters for user name match. Match is started from
      *                          the rigth of the user name part. (see CS call match)
@@ -54,7 +54,7 @@
      */    
     TInt MatchVoipNumber(
         MPhCntMatch*& aMatch,
-        const TDesC& aNumber,
+        const TDesC& aMatchString,
         TBool aAllowUserNameMatch,
         MDesCArray* aContactStoreUris,
         TInt aCharsForMatching = 0 );
@@ -65,6 +65,7 @@
      * by contact id.
      * @since Series60 3.2
      * @param aMatch for found match, owership tranferred. Empty if not found.
+     * @param aMatchString Number to match against.
      * @param aContactId for current contact.
      * @return Error code: KErrNone - VoIP call contact found
      *                     KErrNotFound - no VoIP call contact found
@@ -72,6 +73,7 @@
      */
     TInt MatchVoipNumber(
         MPhCntMatch*& aMatch,
+        const TDesC& aMatchString,
         const CPhCntContactId& aContactId );
 
     
@@ -110,6 +112,16 @@
      */
     TInt CreateMatcher();
 
+    /**
+     * Sets matched VoIP number if it was found.
+     *
+     * @param aContact Contact, which is checked.
+     * @param aMatchString Number to match against.
+     */
+    void SetMatchedVoIPNumberIfExists( 
+        CPhCntContact& aContact,
+        const TDesC& aMatchString );
+    
 private: // data
 
       
--- a/phoneengine/PhoneCntFinder/ContactService/inc/cphcntspeeddialimpl.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/cphcntspeeddialimpl.h	Thu Sep 09 18:09:57 2010 +0100
@@ -126,6 +126,8 @@
         
         void CopyNumberL( TDes& aAppendTo, const TDesC& aNumber );
         
+        void ParseNumber( TDes& aNumber );
+        
         /**
          * Setups the field info with new attributes.
          * @param aContact Contact information
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/PhoneCntFinder/ContactService/inc/tphcntcontactselectionstrategy.h	Thu Sep 09 18:09:57 2010 +0100
@@ -0,0 +1,108 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implements contact selection strategy.
+*
+*/
+
+
+#ifndef TPHCNTCONTACTSELECTIONSTRATEGY_H_
+#define TPHCNTCONTACTSELECTIONSTRATEGY_H_
+
+// System includes
+#include <e32std.h>
+#include <TVPbkContactStoreUriPtr.h>
+
+// Forward declarations
+class MVPbkContactLinkArray;
+class CVPbkContactStoreUriArray;
+
+// Constants
+const TInt KNoContact = -1;
+const TInt KManyContacts = -2;
+
+
+/**
+ *  Implements contact selection strategy.  
+ *
+ */
+NONSHARABLE_CLASS( TPhCntContactSelectionStrategy ) 
+    {
+public:
+    
+    /** Defines the options for contact selection strategy */
+    enum TAllowSeveralMatches
+        {
+        EAllowSingleMatch,
+        EAllowSeveralMatches        
+        };
+    
+public:
+    TPhCntContactSelectionStrategy( );
+    
+public:
+    /**
+     * Sets the contact selection strategy used in conjunction with 
+     * ApplyStrategy -method. 
+     *
+     * @param aSeveralMatchesAllowed Option for contact selection strategy. 
+     */
+    void SetContactSelectionStrategy( TAllowSeveralMatches aSeveralMatchesAllowed );
+    
+    /**
+     * Returns the selected contact according to strategy.
+     * If a call to SetContactSelectionStrategy is not made,
+     * EAllowSingleMatch strategy is applied.
+     *
+     * @param aContactLinkArray Array of matching contacts.
+     * @return index in array of selected contact. 
+     *         KNoContact if empty array is passed. 
+     *         KNoContact if several matches and EAllowSingleMatch set.
+     */
+    TInt ApplyStrategy( const MVPbkContactLinkArray& aContactLinkArray );
+    
+    /**
+     * Returns the selected contact if single match from
+     * additional contact stores is found.
+     *
+     * @param aContactLinkArray Array of matching contacts.
+     * @param aAdditionalStoreUriArray Array of additional contact stores.
+     * @return index in array of selected contact. 
+     *         KNoContact if empty array is passed. 
+     *         KManyContacts if several matches.
+     */
+    TInt ApplyAdditonalStoreStrategy( const MVPbkContactLinkArray& aContactLinkArray,
+                                      const CVPbkContactStoreUriArray& aAdditionalStoreUriArray );
+                                          
+protected:        
+    /**
+     * Returns the URI of the contact store of the contact.     
+     *
+     * @param aContactLinkArrayIndex Specifies the contact.     
+     * @return URI of the contact store.    
+     */
+    virtual TVPbkContactStoreUriPtr GetContactStoreUri( TInt aContactLinkArrayIndex );
+    
+private:
+    TInt ApplySingleMatchStrategy( );
+    TInt ApplySeveralMatchesStrategy( );    
+    
+private:
+    TAllowSeveralMatches iSeveralMatchesAllowed;
+    
+    /* Not owned */
+    const MVPbkContactLinkArray* iContactLinkArray;
+    };
+
+
+#endif /* TPHCNTCONTACTSELECTIONSTRATEGY_H_ */
--- a/phoneengine/PhoneCntFinder/ContactService/src/CPhCntContactManager.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/src/CPhCntContactManager.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -116,18 +116,20 @@
 //
 MPhCntContactMatchStrategy* CPhCntContactManager::CreateContactMatchStrategyL(
     MVPbkContactFindObserver& aObserver,
-    TBool aRemoveDuplicates )
+    TDuplicateRemovalStrategy aStrategy )
     {
-    TUint32 dupesMatch =
+    const TUint32 removeDuplicatesStrategyFlag =
         CVPbkPhoneNumberMatchStrategy::EVPbkDuplicatedContactsMatchFlag |
         CVPbkPhoneNumberMatchStrategy::EVPbkBestMatchingFlag;
-    TUint32 noDupesMatch = CVPbkPhoneNumberMatchStrategy::EVPbkBestMatchingFlag;
-    
+    const TUint32 dontRemoveDuplicatesStrategyFlag = 
+        CVPbkPhoneNumberMatchStrategy::EVPbkBestMatchingFlag;
+        
     return CPhCntContactMatchStrategy::NewL(
         *iContactManager,
         *iContactStoreUris,
         aObserver,
-        aRemoveDuplicates ? dupesMatch : noDupesMatch );
+        aStrategy == ERemoveDuplicates ? 
+            removeDuplicatesStrategyFlag : dontRemoveDuplicatesStrategyFlag );
     }
 
 // ---------------------------------------------------------------------------
--- a/phoneengine/PhoneCntFinder/ContactService/src/CPhCntMatcherImpl.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/src/CPhCntMatcherImpl.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -15,15 +15,16 @@
 *
 */
 
-
-
 #include <CVPbkPhoneNumberMatchStrategy.h>
 #include <MVPbkContactLinkArray.h>
 #include <CPbk2StoreConfiguration.h>
 #include <MVPbkContactStoreProperties.h>
 #include <MVPbkContactStore.h>
 #include <CVPbkContactStoreUriArray.h>
-
+#include <talogger.h>
+#include <telephonyvariant.hrh>
+#include <telinternalcrkeys.h>
+#include <centralrepository.h>
 
 #include "CPhCntMatcherImpl.h"
 #include "cphcntmatchcontact.h"
@@ -35,8 +36,28 @@
 #include "MPhoneCntPbkOwner.h"
 #include "cphcntvpbkcontactid.h"
 #include "cphcntcontactmatchstrategy.h"
-#include <talogger.h>
 
+// Local functions
+/**
+ * Gets contact selection strategy from localvariation flag.
+ */
+TPhCntContactSelectionStrategy::TAllowSeveralMatches 
+    GetContactSelectionStrategyL()
+    {
+    CRepository* repository = CRepository::NewLC( KCRUidTelVariation );
+    TInt variationFlag;
+    User::LeaveIfError( repository->Get( KTelVariationFlags, variationFlag ) );
+    CleanupStack::PopAndDestroy( repository );
+    
+    if( variationFlag & KTelephonyLVFlagShowContactWhenSeveralMatches ) 
+        {
+        return TPhCntContactSelectionStrategy::EAllowSeveralMatches;
+        }
+    else
+        {
+        return TPhCntContactSelectionStrategy::EAllowSingleMatch;
+        }
+    }
 
 
 // ---------------------------------------------------------------------------
@@ -78,25 +99,25 @@
     TEFLOGSTRING( KTAOBJECT, "CNT CPhCntMatcherImpl::MatchNumber" );
     TInt err = CreateMatcher();
     if ( !err )
-    	{
-	    // Check if we already have the contact.
-	    CPhCntContact* contact = iFoundContacts->FindContact( aTelNumber );
+        {
+        // Check if we already have the contact.
+        CPhCntContact* contact = iFoundContacts->FindContact( aTelNumber );
 
-	    err = KErrNone;
-	    if( !contact )
-	        {
-	        // Get contact from contact stores
-	        TRAPD( traperr, err = GetContactL( aMatch, aTelNumber ));
-	        if ( traperr )
-	            {
-	            err = traperr;
-	            }
-	        }
-	    else
-	        {
-	        aMatch = contact;
-	        }
-    	}
+        err = KErrNone;
+        if( !contact )
+            {
+            // Get contact from contact stores
+            TRAPD( traperr, err = GetContactL( aMatch, aTelNumber ));
+            if ( traperr )
+                {
+                err = traperr;
+                }
+            }
+        else
+            {
+            aMatch = contact;
+            }
+        }
     TEFLOGSTRING2( KTAOBJECT, "CNT CPhCntMatcherImpl::MatchNumber %d " , err);
     return err;
     }
@@ -113,31 +134,31 @@
     {
     TInt err = CreateMatcher();
     if ( !err )
-	    {
-	    if( aContactId.IsValid() )
-	        {
-	        // Do we have existing contact for the link and number.
-	        const CPhCntVPbkContactId& contactId =
-	            static_cast<const CPhCntVPbkContactId&>( aContactId );
-	        const MVPbkContactLink& link = contactId.ContactLink();
-	        aMatch =
-	            iFoundContacts->FindContact( aTelNumber, link );
-	        if( !aMatch )
-	            {
-	            // Get the contact.
-	            CPhCntContact* match = NULL;
-	            err = FetchContact( match, link, aTelNumber );
-	            if( !err )
-	                {
-	                aMatch = match;
-	                }
-	            }
-	        }
-	    else
-	        {
-	        err = MatchNumber( aMatch, aTelNumber );
-	        }
-	    }
+        {
+        if( aContactId.IsValid() )
+            {
+            // Do we have existing contact for the link and number.
+            const CPhCntVPbkContactId& contactId =
+                static_cast<const CPhCntVPbkContactId&>( aContactId );
+            const MVPbkContactLink& link = contactId.ContactLink();
+            aMatch =
+                iFoundContacts->FindContact( aTelNumber, link );
+            if( !aMatch )
+                {
+                // Get the contact.
+                CPhCntContact* match = NULL;
+                err = FetchContact( match, link, aTelNumber );
+                if( !err )
+                    {
+                    aMatch = match;
+                    }
+                }
+            }
+        else
+            {
+            err = MatchNumber( aMatch, aTelNumber );
+            }
+        }
     return err;
     }
 
@@ -163,6 +184,7 @@
 //
 TInt CPhCntMatcherImpl::MatchVoipNumber(
     MPhCntMatch*& /*aMatch*/,
+    const TDesC& /*aMatchString*/,
     const CPhCntContactId& /*aContactId*/ )
     {
     return KErrNotFound;
@@ -190,12 +212,8 @@
     TEFLOGSTRING( KTAOBJECT, "CNT CPhCntMatcherImpl::GetContactL" );
     // Try to find matching contact.
     const MVPbkContactLinkArray* linkArray = NULL;
-    delete iCSMatchStrategy;
-    iCSMatchStrategy = 0;
-    iCSMatchStrategy = iContactManager.CreateContactMatchStrategyL( *iMatchContact,
-        EFalse ); // don't remove duplicates
-    TInt err( iMatchContact->MatchContact( linkArray, aTelNumber,
-        *iCSMatchStrategy ) );
+    TInt err = MatchContactL( linkArray, aTelNumber, 
+        MPhCntContactManager::EDontRemoveDuplicates );
 
     CPhCntContact* match( NULL );
     TInt index( KErrNotFound );
@@ -203,18 +221,22 @@
     // Apply exact match on additional stores first.
     // If match is found, don't care about other stores as
     // these come first.
-    if(  !err && ( linkArray->Count() > 1 ) )
-        {
-        index = MatchFromAdditionalStore( *linkArray );
-
-        // Single match on additonal stores
-        if ( index != KErrNotFound && index != KErrAlreadyExists )
+    if( !err )
+        {        
+        const CVPbkContactStoreUriArray& additionalStores = iContactManager.AdditionalContactStoreUris();
+        index = iContactSelectionStrategy.ApplyAdditonalStoreStrategy( *linkArray, additionalStores );  
+        
+        const TBool manyContactsFound = index == KManyContacts;
+        const TBool singleContactFound = 
+            index != KNoContact && index != KManyContacts;
+        
+        if ( singleContactFound )
             {
             FetchContact( match, linkArray->At( index ), aTelNumber );
             aMatch = match;
             return err;
             }
-        else if ( index == KErrAlreadyExists ) //Several matches on additional stores
+        else if ( manyContactsFound ) 
             {
             aMatch = match;
             return KErrNotFound;
@@ -223,30 +245,46 @@
 
     if(  !err && ( linkArray->Count() > 1 ) )
         {
-        delete iCSMatchStrategy;
-        iCSMatchStrategy = 0;
-        iCSMatchStrategy = iContactManager.CreateContactMatchStrategyL(
-            *iMatchContact, ETrue ); //remove duplicates
-        err = iMatchContact->MatchContact( linkArray, aTelNumber,
-            *iCSMatchStrategy );
+        err = MatchContactL( linkArray, aTelNumber,
+            MPhCntContactManager::ERemoveDuplicates );
         }
     if ( !err )
         {
-        // If only one contact, no additional checks needed
-        if ( linkArray->Count() == 1 )
-            {
-            index = 0;
-            }
+        index = iContactSelectionStrategy.ApplyStrategy( *linkArray );        
         }
 
-
     // Finally fetch contact details
-    if ( index != KErrNotFound )
+    if ( index != KNoContact )
         {
         FetchContact( match, linkArray->At( index ), aTelNumber );
+        aMatch = match;
         }
+    else
+        {
+        err = KErrNotFound;
+        }
+    
+    TEFLOGSTRING2( KTAMESIN,"CNT CPhCntMatcherImpl::GetContactL,err: %d", err );    
+    return err;
+    }
 
-    aMatch = match;
+// ---------------------------------------------------------------------------
+// Matches contact
+// ---------------------------------------------------------------------------
+//
+TInt CPhCntMatcherImpl::MatchContactL( 
+    const MVPbkContactLinkArray*& aContactLinkArray, 
+    const TDesC& aTelNumber,
+    MPhCntContactManager::TDuplicateRemovalStrategy aRemoveDuplicatesStrategy )
+    {
+    delete iCSMatchStrategy;
+    iCSMatchStrategy = NULL;
+    iCSMatchStrategy = iContactManager.CreateContactMatchStrategyL( 
+        *iMatchContact,
+        aRemoveDuplicatesStrategy );
+    
+    const TInt err( iMatchContact->MatchContact( aContactLinkArray, aTelNumber,
+        *iCSMatchStrategy ) );
     return err;
     }
 
@@ -266,26 +304,26 @@
 // ---------------------------------------------------------------------------
 //
 void CPhCntMatcherImpl::DoCreateMatcherL()
-	{
-	TEFLOGSTRING( KTAOBJECT, "CNT CPhCntMatcherImpl::DoCreateMatcherL" );
-	if ( !iContactStores )
-		{
-		iFoundContacts = CPhCntFoundContacts::NewL();
-	    iContactStores = CPhCntContactStores::NewL( iContactManager );
-	    iMatchContact = CPhCntMatchContact::NewL();
-	    iFetchContact = CPhCntFetchContact::NewL( *iContactStores );
-		}
-	}
+    {
+    TEFLOGSTRING( KTAOBJECT, "CNT CPhCntMatcherImpl::DoCreateMatcherL" );
+    if ( !iContactStores )
+        {
+        iFoundContacts = CPhCntFoundContacts::NewL();
+        iContactStores = CPhCntContactStores::NewL( iContactManager );
+        iMatchContact = CPhCntMatchContact::NewL();
+        iFetchContact = CPhCntFetchContact::NewL( *iContactStores );
+        }
+    }
 
 // ---------------------------------------------------------------------------
 // Delayed on-demand based construction
 // ---------------------------------------------------------------------------
 //
 TInt CPhCntMatcherImpl::CreateMatcher()
-	{
-	TRAPD( err, DoCreateMatcherL() );
-	return err;
-	}
+    {
+    TRAPD( err, DoCreateMatcherL() );
+    return err;
+    }
 
 // ---------------------------------------------------------------------------
 // Second phase constructor
@@ -293,6 +331,9 @@
 //
 void CPhCntMatcherImpl::ConstructL()
     {
+    const TPhCntContactSelectionStrategy::TAllowSeveralMatches strategy = 
+        GetContactSelectionStrategyL();
+    iContactSelectionStrategy.SetContactSelectionStrategy( strategy );    
     }
 
 // ---------------------------------------------------------------------------
@@ -322,37 +363,3 @@
     return err;
     }
 
-// --------------------------------------------------------------------------
-// CPhCntMatcherImpl::MatchFromAdditionalStore
-// --------------------------------------------------------------------------
-//
-TInt CPhCntMatcherImpl::MatchFromAdditionalStore(
-    const MVPbkContactLinkArray& linkArray ) const
-    {
-    TEFLOGSTRING( KTAOBJECT, "CNT CPhCntMatcherImpl::MatchFromAdditionalStore" );
-    TInt ret( KErrNotFound );
-    TInt found(0); // count of found contacts from additional stores.
-
-    for ( TInt i = 0; i < linkArray.Count(); i++ )
-        {
-        TVPbkContactStoreUriPtr uri =
-            linkArray.At( i ).ContactStore().StoreProperties().Uri();
-
-        // Compare if contact is from additional store.
-        if ( iContactManager.AdditionalContactStoreUris().IsIncluded( uri ) )
-            {
-            // Contact found from additional store.
-            found++;
-            ret = i;
-            }
-        }
-
-    if ( found > 1)
-        {
-        // Multiple matches from additional stores -> no match.
-        ret = KErrAlreadyExists;
-        }
-
-    return ret;
-    }
-
--- a/phoneengine/PhoneCntFinder/ContactService/src/cphcntcontactmatchstrategy.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/src/cphcntcontactmatchstrategy.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -17,8 +17,6 @@
 
 
 #include <CVPbkContactManager.h>
-#include <centralrepository.h>
-#include <telconfigcrkeys.h>
 #include <CVPbkContactStoreUriArray.h>
 #include <cntdb.h>  // KBestMatchingPhoneNumbers
 
@@ -27,10 +25,7 @@
 #include "CPhoneRawMatchNumberExtractor.h"
 
 
-// Digit count used to match CS number.
-const TInt KPhCntMatchMin = 7;
-const TInt KPhCntMatchMax = 11;
-const TInt KPhCntMatchDefault = KPhCntMatchMin;
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -55,29 +50,6 @@
 //
 void CPhCntContactMatchStrategy::ConstructL()
     {
-    iCenRepSession = CRepository::NewL( KCRUidTelConfiguration );
-    iCenRepNotifyHandler = 
-        CCenRepNotifyHandler::NewL(
-            *this, 
-            *iCenRepSession, 
-            CCenRepNotifyHandler::EIntKey,
-            KTelMatchDigits );
-            
-    iCenRepNotifyHandler->StartListeningL();
-    
-    iNumberOfDigits = KPhCntMatchDefault;
-    TInt sdMatchValue = KErrNotFound;
-
-    // Find digit count to be used with matching.
-    if ( iCenRepSession->Get( KTelMatchDigits, sdMatchValue )
-         == KErrNone )
-        {
-        // If we can find a proper value from the cenrep, use it.
-        if ( sdMatchValue >= KPhCntMatchMin && sdMatchValue <= KPhCntMatchMax )
-            {
-            iNumberOfDigits = sdMatchValue;
-            }
-        }
     User::LeaveIfError( CreateContactMatchStrategy() );
     
     iNumberExtractor = new( ELeave )CCntRawPhoneNumberExtractor();
@@ -117,13 +89,6 @@
         {
         iNumberExtractor->Release();    
         }
-    
-    if( iCenRepNotifyHandler )
-        {
-        iCenRepNotifyHandler->StopListening();    
-        }
-    delete iCenRepNotifyHandler;
-    delete iCenRepSession;
     delete iMatchStrategy;
     delete iUriArray;
     }
@@ -137,14 +102,14 @@
     {
     if( iMatchStrategy )
         {
-        MatchL( aPhoneNumber );
+        DoMatchL( aPhoneNumber );
         }
     else
         {
         const TInt err( CreateContactMatchStrategy() );
         if( !err )
             {
-            MatchL( aPhoneNumber );
+            DoMatchL( aPhoneNumber );
             }
         else
             {
@@ -181,37 +146,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// From base class MCenRepNotifyHandlerCallback
-// Notification from CenRep
-// ---------------------------------------------------------------------------
-//  
-void CPhCntContactMatchStrategy::HandleNotifyString( 
-    TUint32 aUid, 
-    const TDesC16& aValue )
-    {
-    if ( aUid == KTelMatchDigits )
-        {
-        TLex lexer( aValue );
-        TInt value;
-        const TInt err( lexer.Val( value ) );
-        
-        if( !err ) 
-            {
-            if ( value < KPhCntMatchMin || value > KPhCntMatchMax )
-                {
-                iNumberOfDigits = KPhCntMatchDefault;
-                }
-            else
-                {
-                iNumberOfDigits = value;
-                }
-            CreateContactMatchStrategy();
-            }
-     
-        }
-    }
-
-// ---------------------------------------------------------------------------
 // From base class MPhCntContactStoreEventObserver
 // Updates match strategy.
 // ---------------------------------------------------------------------------
@@ -224,20 +158,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// Removes extra characters from number and matches with raw number.
-// ---------------------------------------------------------------------------
-//         
-void CPhCntContactMatchStrategy::MatchL( 
-    const TDesC& aPhoneNumber )
-    {
-    HBufC* rawNumber = HBufC::NewLC( aPhoneNumber.Length() );
-    TPtr rawNumberPtr = rawNumber->Des();
-    iNumberExtractor->ExtractRawNumber( aPhoneNumber, rawNumberPtr );
-    DoMatchL( *rawNumber );
-    CleanupStack::PopAndDestroy( rawNumber );
-    }
-
-// ---------------------------------------------------------------------------
 // Creates contact match strategy
 // ---------------------------------------------------------------------------
 //     
--- a/phoneengine/PhoneCntFinder/ContactService/src/cphcntmatchervoipimpl.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/src/cphcntmatchervoipimpl.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -78,117 +78,116 @@
     TInt err = CreateMatcher();    
 
     if ( err == KErrNone )
-    {
-    CPhCntContact* existingContact = 
-        iFoundContacts->FindContact( sipUri.SipURI() );
-    if( !existingContact )
         {
-        // Check for service specific contact stores and
-        // open stores if not open
-        if ( aContactStoreUris )
+        CPhCntContact* existingContact = 
+            iFoundContacts->FindContact( sipUri.SipURI() );
+        if( !existingContact )
             {
-            TInt storeCount = aContactStoreUris->MdcaCount();
-            for( TInt i = 0; i < storeCount ; i++ )
+            // Check for service specific contact stores and
+            // open stores if not open
+            if ( aContactStoreUris )
+                {
+                TInt storeCount = aContactStoreUris->MdcaCount();
+                for( TInt i = 0; i < storeCount ; i++ )
+                    {
+                    TPtrC storeUri = aContactStoreUris->MdcaPoint( i );
+                   
+                    err = iContactStoreLoader->LoadContactStoreWithUri( storeUri );              
+                    }  
+                }
+    
+            const MVPbkContactLinkArray* linkArray = NULL;
+            
+            // Find possible contacts.
+            if( aAllowUserNameMatch && !aCharsForMatching )
+                {
+                err = iMatchContact->MatchContact(
+                    linkArray, sipUri.UserNamePart(), *iVoipMatchStrategy );
+                }
+            else if ( aCharsForMatching )
+                {
+                err = iMatchContact->MatchContact(
+                    linkArray, sipUri.FixedUserNamePart(), *iVoipMatchStrategy );            
+                }
+            else
+                {
+                err = iMatchContact->MatchContact( 
+                    linkArray, sipUri.SipURI() , *iVoipMatchStrategy );    
+                }
+            
+            MPhCntMatch* match = NULL;
+            if( !err )
                 {
-                TPtrC storeUri = aContactStoreUris->MdcaPoint( i );
-               
-                err = iContactStoreLoader->LoadContactStoreWithUri( storeUri );              
-                }  
-            }
-
-        const MVPbkContactLinkArray* linkArray = NULL;
-        
-        // Find possible contacts.
-        if( aAllowUserNameMatch && !aCharsForMatching )
-            {
-            err = iMatchContact->MatchContact(
-                linkArray, sipUri.UserNamePart(), *iVoipMatchStrategy );
-            }
-        else if ( aCharsForMatching )
-            {
-            err = iMatchContact->MatchContact(
-                linkArray, sipUri.FixedUserNamePart(), *iVoipMatchStrategy );            
+                // Fetch all the matched contacts, because iVoipMatchStrategy
+                // could give us a match that is matched to wrong contact field.
+                const TInt matchedContacts( linkArray->Count() );
+    
+                // Find real matches.
+                TPhCntVoipMatchArray voipMatches;
+                for( TInt i = 0; i < matchedContacts; i++ )
+                    {
+                    // Get contacts from phone book.
+                    CPhCntContact* match = NULL;
+                    err = FetchContact( match, linkArray->At( i ), sipUri.SipURI() );
+                    if( !err )
+                        {
+                        TRAP_IGNORE( voipMatches.AppendL( match ) );
+                        }
+                    else
+                        {
+                        // Error in fetching contacts 
+                        break;
+                        }
+                    }
+                    
+                if( aAllowUserNameMatch || aCharsForMatching )   
+                    {
+                    match = voipMatches.FindFullOrUsernameMatch( sipUri, aCharsForMatching );
+                    }
+                else
+                    {
+                    // Take the first match, that is voip contact. Gives NULL if match not found.
+                    match = voipMatches.FindFullMatch( sipUri );
+                    }
+                
+                // Release extra matches
+                voipMatches.ReleaseMatches();
+                }
+            
+            // If no error and match still null pointer, then no contacts were found.
+            if( !err && !match )        
+                {
+                err = KErrNotFound;
+                }
+            else
+                {
+                aMatch = match;
+                }
             }
         else
             {
-            err = iMatchContact->MatchContact( 
-                linkArray, sipUri.SipURI() , *iVoipMatchStrategy );    
-            }
-        
-            
-        MPhCntMatch* match = NULL;
-        if( !err )
-            {
-            // Fetch all the matched contacts, because iVoipMatchStrategy
-            // could give us a match that is matched to wrong contact field.
-            const TInt matchedContacts( linkArray->Count() );
-
-            // Find real matches.
-            TPhCntVoipMatchArray voipMatches;
-            for( TInt i = 0; i < matchedContacts; i++ )
-                {
-                // Get contacts from phone book.
-                CPhCntContact* match = NULL;
-                err = FetchContact( match, linkArray->At( i ), sipUri.SipURI() );
-                if( !err )
-                    {
-                    TRAP_IGNORE( voipMatches.AppendL( match ) );
-                    }
-                else
-                    {
-                    // Error in fetching contacts 
-                    break;
-                    }
-                }
-                
-            if( aAllowUserNameMatch || aCharsForMatching )   
-                {
-                match = voipMatches.FindFullOrUsernameMatch( sipUri, aCharsForMatching );
-                }
-            else
-                {
-                // Take the first match, that is voip contact. Gives NULL if match not found.
-                match = voipMatches.FindFullMatch( sipUri );
-                }
-            
-            // Release extra matches
-            voipMatches.ReleaseMatches();
-            }
-        
-        // If no error and match still null pointer, then no contacts were found.
-        if( !err && !match )        
-            {
-            err = KErrNotFound;
-            }
-        else
-            {
-            aMatch = match;
+            aMatch = existingContact;
             }
         }
-    else
-        {
-        aMatch = existingContact;
-        }
-    }
 
     return err;
     }
-    
+
 // ---------------------------------------------------------------------------
 // From class CPhCntMatcher
 // Matches voip contacts
 // ---------------------------------------------------------------------------
 TInt CPhCntMatcherVoIPImpl::MatchVoipNumber(
-            MPhCntMatch*& aMatch,
-            const CPhCntContactId& aContactId )
+    MPhCntMatch*& aMatch,
+    const TDesC& aMatchString,
+    const CPhCntContactId& aContactId )
     {
     const CPhCntVPbkContactId& contactId = 
             static_cast<const CPhCntVPbkContactId&>( aContactId );
-            
+
     const MVPbkContactLink& contactLink = contactId.ContactLink();
     
-    
-    TInt err = CreateMatcher();    
+    TInt err = CreateMatcher();
 
     const TVPbkContactStoreUriPtr uri 
         = contactLink.ContactStore().StoreProperties().Uri(); 
@@ -197,61 +196,78 @@
     iContactStoreLoader->LoadContactStoreWithUri( uri.UriDes() );
     
     if ( err == KErrNone )
-    {
-    CPhCntContact* existingContact = 
-        iFoundContacts->FindContact( contactLink );
-     
-    
-    if( !existingContact )
         {
-        CPhCntContact* contact = NULL;
-        err = iFetchContact->FetchContact( contactLink,  contact );
-
-        if( !err )
+        CPhCntContact* existingContact = 
+            iFoundContacts->FindContact( contactLink );
+        
+        if ( !existingContact )
             {
-            const RArray<TPhCntNumber>& allNumbers = 
-                contact->AllNumbers();
-            const TInt count( allNumbers.Count() );
-            for( TInt i = 0; i < count; i++ )
+            CPhCntContact* contact = NULL;
+            err = iFetchContact->FetchContact( contactLink,  contact );
+    
+            if ( !err )
                 {
-                // Take first voip number and set it as contacts number.
-                TPhCntNumber number = allNumbers[i];
-                if( number.Type() == MPhCntMatch::EVoipNumber ||
-                    number.Type() == MPhCntMatch::EMobileNumber ||
-                    number.Type() == MPhCntMatch::EStandardNumber ||
-                    number.Type() == CPhCntContact::EPagerNumber ||
-                    number.Type() == CPhCntContact::EVideoNumber ||
-                    number.Type() == CPhCntContact::EAssistantNumber ||
-                    number.Type() == CPhCntContact::EFaxNumber ||
-                    number.Type() == CPhCntContact::ECarNumber ) 
+                SetMatchedVoIPNumberIfExists( *contact, aMatchString );
+
+                TPhCntSipURI sipUri( contact->Number() );
+                TRAP( err, iFoundContacts->AddL( contact, sipUri.SipURI() ) );
+                if ( err )
                     {
-                    contact->SetMatchedVoipNumber( TPhCntSipURI( number.Number() ) );
-                    break;
+                    delete contact;
+                    }
+                else
+                    {
+                    aMatch = contact;
                     }
                 }
-            TPhCntSipURI sipUri( contact->Number() );
-            TRAP( err, iFoundContacts->AddL( contact, sipUri.SipURI() ) );
-            if( err )
-                {
-                delete contact;
-                }
-            else
-                {
-                aMatch = contact;
-                }
-         
+            }
+        else
+            {
+            aMatch = existingContact;
             }
         }
-    else
-        {
-        aMatch = existingContact;
-        }
-    }
     return err;
     }
 
 
 // ---------------------------------------------------------------------------
+// Sets matched VoIP number if it was found.
+// ---------------------------------------------------------------------------
+//    
+void CPhCntMatcherVoIPImpl::SetMatchedVoIPNumberIfExists( 
+    CPhCntContact& aContact,
+    const TDesC& aMatchString )
+    {
+    const RArray<TPhCntNumber>& allNumbers = aContact.AllNumbers();
+    const TInt numberCount( allNumbers.Count() );
+    TPhCntSipURI sipUri( aMatchString );
+    
+    for ( TInt i = 0; i < numberCount; i++ ) 
+        {
+        TPhCntNumber number = allNumbers[i];
+        if ( number.Type() == CPhCntContact::EVoipNumber ||
+             number.Type() == CPhCntContact::EMobileNumber || 
+             number.Type() == CPhCntContact::EStandardNumber ||
+             number.Type() == CPhCntContact::EPagerNumber ||
+             number.Type() == CPhCntContact::EVideoNumber ||
+             number.Type() == CPhCntContact::EAssistantNumber ||
+             number.Type() == CPhCntContact::EFaxNumber ||
+             number.Type() == CPhCntContact::ECarNumber ) 
+            {
+            // If uris are the same then we have a full match.
+            // (usernamepart requires case sensitive match, domain is not sensitive)
+            TPhCntSipURI matchURI( number.Number() );
+            if ( matchURI.SipURI().CompareF( sipUri.SipURI() ) == KErrNone &&
+                 matchURI.UserNamePart().Compare( sipUri.UserNamePart() ) == KErrNone )
+                {
+                aContact.SetMatchedVoipNumber( matchURI );
+                break;
+                }
+            }
+        }
+    }
+
+// ---------------------------------------------------------------------------
 // From class CPhCntMatcher
 // Determines if contact has CS numbers.
 // ---------------------------------------------------------------------------
@@ -265,28 +281,26 @@
     
     if ( CreateMatcher() == KErrNone )
         {
+        // Check if we have contact already.
+        CPhCntContact* contact = 
+            iFoundContacts->FindContact( contactId.ContactLink() );
             
-    // Check if we have contact already.
-    CPhCntContact* contact = 
-        iFoundContacts->FindContact( contactId.ContactLink() );
-        
-    if( contact ) 
-        {
-        hasCSNumbers = HasCSNumbers( contact );
-        contact->Release();
-        }
-    else
-        {
-        // Fetch the contact from Virtual phonebook.
-        const TInt err = 
-            iFetchContact->FetchContact( contactId.ContactLink(), contact );
-        hasCSNumbers = HasCSNumbers( contact );
-        
-        // We can delete the contact, because it is not added to 
-        // iFoundContacts.
-        delete contact;
-        }
-    
+        if ( contact ) 
+            {
+            hasCSNumbers = HasCSNumbers( contact );
+            contact->Release();
+            }
+        else
+            {
+            // Fetch the contact from Virtual phonebook.
+            const TInt err = 
+                iFetchContact->FetchContact( contactId.ContactLink(), contact );
+            hasCSNumbers = HasCSNumbers( contact );
+            
+            // We can delete the contact, because it is not added to 
+            // iFoundContacts.
+            delete contact;
+            }
         }
 
     return hasCSNumbers;
@@ -323,17 +337,17 @@
     {
     
     TBool hasCSNumbers = EFalse;
-    if( aContact )
+    if ( aContact )
         {
         const RArray<TPhCntNumber>& allNumbers = aContact->AllNumbers();
         const TInt count( allNumbers.Count() );
         for( TInt i = 0; i < count; i++ )
             {
             const MPhCntMatch::TNumberType type = allNumbers[i].Type();
-            if( type != MPhCntMatch::ENone &&
-                type != MPhCntMatch::EFaxNumber &&
-                type != MPhCntMatch::EPagerNumber &&
-                type != MPhCntMatch::EVoipNumber 
+            if ( type != MPhCntMatch::ENone &&
+                 type != MPhCntMatch::EFaxNumber &&
+                 type != MPhCntMatch::EPagerNumber &&
+                 type != MPhCntMatch::EVoipNumber 
                 )
                 {
                 hasCSNumbers = ETrue;
@@ -343,10 +357,14 @@
     return hasCSNumbers;
     }
 
+// ---------------------------------------------------------------------------
+// Creates the contact matcher.
+// ---------------------------------------------------------------------------
+//  
 TInt CPhCntMatcherVoIPImpl::CreateMatcher()
     {
     TInt err = CPhCntMatcherImpl::CreateMatcher();
-    if (!err && !iVoipMatchStrategy )
+    if ( !err && !iVoipMatchStrategy )
         {
         TRAP( err, iVoipMatchStrategy = 
             CPhCntVoipContactMatchStrategy::NewL( iContactManager, 
--- a/phoneengine/PhoneCntFinder/ContactService/src/cphcntspeeddialimpl.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/src/cphcntspeeddialimpl.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -33,6 +33,11 @@
 #include "CPhCntContact.h"
 #include "cphcntvpbkcontactid.h"
 #include "CPhCntContactManager.h"
+#include "pevirtualengine.h"
+
+// Characters that are needed to be stripped out 
+// from phone number before dialing.
+_LIT( KInvalidPhonenumberCharacters, " ()-" );
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -97,6 +102,27 @@
         User::Leave( KErrArgument );
         }
     }
+
+// ---------------------------------------------------------------------------
+//  CPhCntSpeedDialImpl::ParseNumber
+// ---------------------------------------------------------------------------
+//
+void CPhCntSpeedDialImpl::ParseNumber( TDes& aNumber )
+    {
+    TBuf< KPEPhoneNumberMaxLength > parsedNumber = KNullDesC();
+    TLex parser( aNumber );
+    TChar c;
+    while( !parser.Eos() )
+        {
+        c = parser.Get();
+        if ( KErrNotFound == KInvalidPhonenumberCharacters().Locate( c ) )
+            {
+            parsedNumber.Append( c );
+            }
+        }
+    aNumber = parsedNumber;
+    }
+	
 // ---------------------------------------------------------------------------
 //  CPhCntSpeedDialImpl::CopyContactInfoToFieldInfoL
 // ---------------------------------------------------------------------------
@@ -106,14 +132,6 @@
         TInt aSpeedDialPosition, 
         TSpdDialFieldInfo& aFieldInfo )
     {
-    
-    MVPbkContactLink* contactLink = aContact.ContactLink()->CloneLC();
-    CPhCntVPbkContactId* contactId = 
-        CPhCntVPbkContactId::NewL( contactLink, iContactManager );
-    CleanupStack::Pop(); // contactLink
-    aFieldInfo.iContactId = contactId;
-        
-    aFieldInfo.iThumbIndex = KErrNotFound;
 	TPhCntNumber speedDial = aContact.SpeedDialNumber( aSpeedDialPosition );    
 	aFieldInfo.iNumberType = speedDial.Type();
     }
@@ -194,6 +212,7 @@
         TPhCntNumber speedDial( contact->SpeedDialNumber( aSpeedDialPosition ) );
         CopyNumberL( aPhoneNumber, speedDial.Number() );        
         CleanupStack::PopAndDestroy( contact );
+        ParseNumber( aPhoneNumber );
         }
     return err;
     }
@@ -217,6 +236,7 @@
         CopyNumberL( aPhoneNumber, speedDial.Number() );         
         CopyContactInfoToFieldInfoL( *contact, aSpeedDialPosition, aFieldInfo );        
         CleanupStack::PopAndDestroy( contact );
+        ParseNumber( aPhoneNumber );
         }
     return err;
     }
@@ -260,6 +280,9 @@
     TInt err = iSpdDial->ShowAssign( aSpeedDialPosition, link );
     delete iSpdDial;
     iSpdDial = NULL;
+    delete link;
+    link = NULL;
+    
     if ( err == KErrNone )
         {
         err = FetchNumberL( aSpeedDialPosition, aPhoneNumber );    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/PhoneCntFinder/ContactService/src/tphcntcontactselectionstrategy.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -0,0 +1,141 @@
+/*
+* Copyright (c)  Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of TPhCntContactSelectionStrategy class.
+*
+*/
+
+#include <MVPbkContactLinkArray.h>
+#include <CVPbkContactStoreUriArray.h>
+#include <MVPbkContactLink.h>
+#include <MVPbkContactStore.h>
+#include <MVPbkContactStoreProperties.h>
+
+#include "tphcntcontactselectionstrategy.h"
+
+const TInt KFirstContactInList = 0;
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TPhCntContactSelectionStrategy::TPhCntContactSelectionStrategy( )
+    {
+    iSeveralMatchesAllowed = TPhCntContactSelectionStrategy::EAllowSingleMatch;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void TPhCntContactSelectionStrategy::SetContactSelectionStrategy( 
+        TAllowSeveralMatches aSeveralMatchesAllowed )
+    {
+    iSeveralMatchesAllowed = aSeveralMatchesAllowed;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TInt TPhCntContactSelectionStrategy::ApplyStrategy( 
+    const MVPbkContactLinkArray& aContactLinkArray )
+    {
+    iContactLinkArray = &aContactLinkArray;
+        
+    if ( iSeveralMatchesAllowed == TPhCntContactSelectionStrategy::EAllowSingleMatch )
+        {
+        return ApplySingleMatchStrategy( );
+        }
+    else
+        {
+        return ApplySeveralMatchesStrategy( );
+        }    
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TInt TPhCntContactSelectionStrategy::ApplyAdditonalStoreStrategy( 
+    const MVPbkContactLinkArray& aContactLinkArray,
+    const CVPbkContactStoreUriArray& aAdditionalStoreUriArray )
+    {
+    iContactLinkArray = &aContactLinkArray;    
+    
+    TInt ret( KNoContact );
+    TInt contactsFoundFromAdditionalStore(0); 
+    
+    for ( TInt i = 0; i < aContactLinkArray.Count(); i++ )
+        {
+        TVPbkContactStoreUriPtr uri = GetContactStoreUri( i );
+    
+        if ( aAdditionalStoreUriArray.IsIncluded( uri ) )
+            {
+            contactsFoundFromAdditionalStore++;
+            ret = i;
+            }            
+        }
+    
+    if ( contactsFoundFromAdditionalStore > 1 )
+        {
+        // Multiple matches from additional stores -> no match.
+        ret = KManyContacts;
+        }
+            
+    return ret;    
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TVPbkContactStoreUriPtr TPhCntContactSelectionStrategy::GetContactStoreUri( 
+        TInt aContactLinkArrayIndex )
+    {
+    return iContactLinkArray->At( aContactLinkArrayIndex ).ContactStore().StoreProperties().Uri();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TInt TPhCntContactSelectionStrategy::ApplySingleMatchStrategy( )
+    {
+    if ( iContactLinkArray->Count() == 1 )
+        {        
+        return KFirstContactInList;
+        }
+    else
+        {
+        return KNoContact;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TInt TPhCntContactSelectionStrategy::ApplySeveralMatchesStrategy( )
+    {
+    if ( iContactLinkArray->Count() >= 1 )
+        {
+        return KFirstContactInList;
+        }
+    else
+        {
+        return KNoContact;
+        }
+    }
--- a/phoneengine/PhoneCntFinder/ContactService/src/tphcntservicerequestparams.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/ContactService/src/tphcntservicerequestparams.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -249,8 +249,6 @@
 
     aContactManager.AppendFilterToSelectorL( *iContactViewFilter,   
         EVPbkContactViewFilterPhoneNumber );
-    
-	iDefaultPriorities.Append( EVPbkDefaultTypePhoneNumber );    
 	
     TAiwSingleItemSelectionDataV3 data = TAiwSingleItemSelectionDataV3();
 	  
--- a/phoneengine/PhoneCntFinder/Group/phonecntfinder.mmp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/Group/phonecntfinder.mmp	Thu Sep 09 18:09:57 2010 +0100
@@ -79,6 +79,7 @@
 SOURCE          tphcntcontactstorestate.cpp
 SOURCE          cphcntcontactdataselectionimpl.cpp
 SOURCE          cphcntstoreloaderimpl.cpp
+SOURCE          tphcntcontactselectionstrategy.cpp
 
 USERINCLUDE     ../ContactService/inc
 USERINCLUDE     ../inc
--- a/phoneengine/PhoneCntFinder/inc/CPhCntMatcher.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/inc/CPhCntMatcher.h	Thu Sep 09 18:09:57 2010 +0100
@@ -54,7 +54,7 @@
         * @param aTelNumber Number to match against.
         * @return Error code: KErrNone - one match found
         *                     KErrNotFound - no matches found
-        *                     KErrAlreadyExists - several matches -> no match
+        *                     KErrNotFound - several matches -> no match
         *                     KErrUnderflow - Number too short for matching
         *                     KErrAccessDenied - Can't get phonebook instance
         *                     other - normal Symbian OS error
@@ -102,7 +102,7 @@
         /**
         * Match number to phonebook.
         * @param aMatch Found match, owership tranferred. NULL if not found any.
-        * @param aNumber Number to match against.
+        * @param aMatchString Number to match against.
         * @param aAllowUsernameMatch 
         *						is ETrue if username is sufficient for match.
         * @param aContactStoreUris
@@ -116,7 +116,7 @@
         */    
         virtual TInt MatchVoipNumber(
             MPhCntMatch*& aMatch,
-            const TDesC& aNumber,
+            const TDesC& aMatchString,
             const TBool aAllowUsernameMatch,
             MDesCArray* aContactStoreUris,
             TInt aCharsForMatching = 0 ) = 0;
@@ -126,6 +126,7 @@
         * by contact id.
         * @since Series60 3.0
         * @param aMatch for found match, owership tranferred. Empty if not found.
+        * @param aMatchString Number to match against.
         * @param aContactId for current contact.
         * @return Error code: KErrNone - VoIP call contact found
         *                     KErrNotFound - no VoIP call contact found
@@ -133,6 +134,7 @@
         */    
         virtual TInt MatchVoipNumber(
             MPhCntMatch*& aMatch,
+            const TDesC& aMatchString,
             const CPhCntContactId& aContactId ) = 0;
             
         /**
--- a/phoneengine/PhoneCntFinder/inc/Misc/CPhCntSpeedDialMonitor.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/PhoneCntFinder/inc/Misc/CPhCntSpeedDialMonitor.h	Thu Sep 09 18:09:57 2010 +0100
@@ -49,12 +49,7 @@
         */
         struct TSpdDialFieldInfo
             {
-            CPhCntContactId* iContactId;
-            
             MPhCntMatch::TNumberType iNumberType;
-            
-            // Thumbnail index of a grid array.
-            TInt iThumbIndex;
             };
         
         /**
--- a/phoneengine/audiohandling/src/cpeaudiodtmftoneplayer.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/audiohandling/src/cpeaudiodtmftoneplayer.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -32,7 +32,7 @@
 // None
 
 // CONSTANTS
-const TInt KDtmfSilent = 0;
+
 const TInt KDtmfPauseAfterTone = 45000;
 const TInt KDtmfToneZero = 0;
 const TInt KBufSize = 10;
--- a/phoneengine/audiohandling/src/cpegsmaudiodata.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/audiohandling/src/cpegsmaudiodata.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -35,7 +35,7 @@
 // None.
 
 // CONSTANTS
-// None.
+const TInt KDtmfSilent = 0;
 
 // MACROS
 // None.
@@ -158,9 +158,14 @@
         "AUD CPEGsmAudioData::PlayDtmfTone, aTone = %s, volume = %d", 
         &aTone, 
         volume );
-
-	iDtmfTonePlayer->SetVolume( volume );
-    iDtmfTonePlayer->PlayDtmfTone( aTone );
+		
+    // If profile key tones setting is OFF, the volume will be O 
+	// Don't play dtmf tone here to avoid interrupting the possible touch tone's playing.
+    if ( KDtmfSilent != volume )
+        {
+        iDtmfTonePlayer->SetVolume( volume );
+        iDtmfTonePlayer->PlayDtmfTone( aTone );
+        }
     }
 
 // -----------------------------------------------------------------------------
--- a/phoneengine/contacthandling/src/cpecontactmatch.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/contacthandling/src/cpecontactmatch.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -81,7 +81,7 @@
     delete iSpeedDialCommand;
     if ( iContactThumbnailLoader && iThumbnailId )
         {
-      	iContactThumbnailLoader->Cancel( iThumbnailId );
+        iContactThumbnailLoader->Cancel( iThumbnailId );
         }
     delete iThumbnailImage;
     delete iContactThumbnailLoader;
@@ -194,11 +194,10 @@
 void CPEContactMatch::MatchWithContactIdL(
         const TInt aCallId
         )
-
     {
     TEFLOGSTRING( KTAINT, "CNT CPEContactMatch::MatchWithContactIdL" );
     MPhCntMatch* match( NULL );
-    CPhCntContactId* contactId = NULL;
+    CPhCntContactId* contactId( NULL );
     contactId = CreateContactIdL( iDataStore.CallClientInformation( aCallId ).ContactLink() );
     CleanupStack::PushL( contactId );
     if ( iDataStore.CallType( aCallId ) == EPECallTypeVoIP )
@@ -208,6 +207,7 @@
             TEFLOGSTRING( KTAINT, "CNT CPEContactMatch::MatchWithContactIdL > CPhCntMatcher::MatchVoipNumber" );
             // Get contact based on contact id.
             iContactMatcher->MatchVoipNumber( match, 
+                                              iDataStore.RemotePhoneNumber( aCallId ),
                                               *contactId );
             }
         else
@@ -220,9 +220,9 @@
         if ( contactId && contactId->IsValid() )
             {
             TEFLOGSTRING( KTAINT, "CNT CPEContactMatch::MatchWithContactIdL > CPhCntMatcher::MatchNumber" );
-	        iContactMatcher->MatchNumber( match, 
-	                                      iDataStore.RemotePhoneNumber( aCallId ),
-	                                      *contactId );
+            iContactMatcher->MatchNumber( match, 
+                                          iDataStore.RemotePhoneNumber( aCallId ),
+                                          *contactId );
             }
         else
             {
@@ -230,7 +230,7 @@
             }
         }
 
-    if ( match != NULL )
+    if ( match )
         {
         TEFLOGSTRING( KTAINT, "CNT CPEContactMatch::MatchWithContactIdL, Contact match found" );
         CopyContactFieldsDataL( *match, aCallId );
@@ -277,7 +277,7 @@
         iContactMatcher->MatchNumber( match, remoteNumber );
         }
 
-    if ( match != NULL )
+    if ( match )
         {
         TEFLOGSTRING( KTAINT, "CNT CPEContactMatch::MatchWithNumberL, Contact match found" );
         CopyContactFieldsDataL( *match, aCallId );
@@ -645,7 +645,7 @@
 // -----------------------------------------------------------
 //
 CDesCArray* CPEContactMatch::StoreUrisForServiceL( TUint aServiceId )
-    {	
+    {
     CDesCArray* storeUris = new ( ELeave ) CDesC16ArrayFlat( 1 );
     CleanupStack::PushL( storeUris );
     
Binary file phoneengine/phonemodel/conf/s60telephony.confml has changed
Binary file phoneengine/phonemodel/conf/s60telephony_102828F8.crml has changed
--- a/phoneengine/phonemodel/inc/cpemessagehandler.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/phonemodel/inc/cpemessagehandler.h	Thu Sep 09 18:09:57 2010 +0100
@@ -836,6 +836,9 @@
         TBool iEmergencyCallActive;
         //
         TBool iBtaaDisconnected;
+		// Flag to associate switch to vid/voice call operation and video call's reconnect operation.
+		// Use to fetch the right SwitchToNumber.
+        TBool iSwitchToVidCalReconFlag;
         //Client Information, member variable because emergency call from phone client
         //is not allowed to allocate memory. 
         CPEClientInformation* iClientInformation;
--- a/phoneengine/phonemodel/inc/telephonyvariant.hrh	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/phonemodel/inc/telephonyvariant.hrh	Thu Sep 09 18:09:57 2010 +0100
@@ -35,6 +35,12 @@
 */
 #define KTelephonyLVFlagCoverHideSendEndKey 0x00000004
 
+/**
+* Shows contact name in Call UI even if there are several matches for the phone number.
+*
+*/
+#define KTelephonyLVFlagShowContactWhenSeveralMatches 0x00000008
+
 /** 
 * KTelephonyLVFlagScrollSoftKeys defines status of scroll softkeys. When the 
 * flag is set on in KTelephonyConfigFlags scroll softkeys are enabled. 
--- a/phoneengine/phonemodel/src/cpemessagehandler.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneengine/phonemodel/src/cpemessagehandler.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -162,6 +162,7 @@
             iExternalDataHandler( aExternalDataHandler ),
             iSimStateMonitor( aSimStateMonitor ),
             iFsSession( aFsSession ),
+			iSwitchToVidCalReconFlag( EFalse ),
             iServiceHandling( aServiceHandling ),
             iDataStore( *aModel.DataStore() )
     {
@@ -1879,8 +1880,17 @@
     // Check the phone number for prefix change and change the prefix if needed
     CheckPrefix();
 
-    phoneNumber = iDataStore.PhoneNumber();
-  
+    if( iSwitchToVidCalReconFlag )
+        {
+        phoneNumber = iDataStore.SwitchToNumberCommand();
+		// Clear flag to match the previous set operation in HandleSwitchToVideoOrVoice() function.
+        iSwitchToVidCalReconFlag = EFalse;
+        }
+    else
+        {
+        phoneNumber = iDataStore.PhoneNumber();
+        }
+    
     __ASSERT_ALWAYS( !( phoneNumber == KNullDesC ), User::Leave( ECCPErrorInvalidPhoneNumber ));
     
     // Number parser operations
@@ -2076,10 +2086,16 @@
 
     iAutomaticAnswerTimer->Cancel();
 
-    TEFLOGSTRING( KTAMESOUT, 
+    // Prevent playing inband tone when phone is in silent mode and 
+    // audio output is not defined (call is  not connected).
+    if ( ( iDataStore.RingingType() != EProfileRingingTypeSilent ) || 
+         ( iDataStore.AudioOutput() != EPENotActive ) )
+        {
+        TEFLOGSTRING( KTAMESOUT, 
         "PE CPEMessageHandler::HandleDisconnecting > iGsmAudioData.PlayInbandTone()");
-    iGsmAudioData.PlayInbandTone();
-    
+        iGsmAudioData.PlayInbandTone();
+        }
+
     return ECCPErrorNone;
     }
 
@@ -2721,6 +2737,7 @@
             iDataStore.SetSwitchToNumberCommand( iDataStore.WholeOutgoingPhoneNumber( aCallId ) );  
             // Clear phonenumber to prevent using the wrong number in MO video call.
             iDataStore.SetPhoneNumber( KNullDesC() );
+            iSwitchToVidCalReconFlag = ETrue;
             }
         else
             {
@@ -2749,6 +2766,8 @@
     TInt errorCode( ECCPErrorNone );
   
     TPEPhoneNumber phoneNumber = iDataStore.SwitchToNumberCommand();
+    RemovePreAndPostFix( phoneNumber );
+    
     TEFLOGSTRING2( KTAINT, 
         "PE CPEMessageHandler::ContinueSwitchToCall, phoneNumber : %S", 
         &phoneNumber );
--- a/phoneuis/BubbleManager/Group/Bubblemanager.mmp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Group/Bubblemanager.mmp	Thu Sep 09 18:09:57 2010 +0100
@@ -89,6 +89,7 @@
 source  BMNumberTypeIcon.cpp
 source  BMMainPaneControl.cpp
 source  BMTouchPaneButton.cpp
+SOURCE  telbubbleimagescaler.cpp
 
 sourcepath ../laf
 source  BMLayout.cpp
@@ -122,5 +123,5 @@
 LIBRARY akntransitionutils.lib
 #endif
 LIBRARY bmcustomization.lib
-
+LIBRARY bitmaptransforms.lib
 // End of File
--- a/phoneuis/BubbleManager/Inc/BMMainPaneControl.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Inc/BMMainPaneControl.h	Thu Sep 09 18:09:57 2010 +0100
@@ -19,8 +19,9 @@
 #ifndef C_BUBBLEMAINPANECONTROL_H
 #define C_BUBBLEMAINPANECONTROL_H
 
+#include <coecntrl.h>
 #include "BMBubbleManager.h"
-#include <coecntrl.h>
+#include "telbubbleimagescaler.h"
 
 class CBubbleCallObjectManager;
 class CTelBubbleCustomElement;
@@ -34,7 +35,8 @@
  *  @lib BubbleManager.lib
  *  @since S60 v5.0
  */
-NONSHARABLE_CLASS( CBubbleMainPaneControl ) : public CCoeControl
+NONSHARABLE_CLASS( CBubbleMainPaneControl ) : public CCoeControl,
+    public MTelBubbleImageScalerObserver
     {
 public:
     /**
@@ -77,7 +79,18 @@
      * Returns ETrue when image is being displayed.
      */
     TBool IsUsed() const;
-        
+    
+    // from MTelBubbleImageScalerObserver    
+    /**
+     * Callback function from CTelBubbleImageScaler
+     * 
+     * @param aError Error happened during scaling
+     * @param aBitmap Scaled bitmap
+     * @return None 
+     */ 
+    void ImageScalingComplete
+                    (TInt aError, CFbsBitmap* aBitmap);
+            
 private:    
     CBubbleMainPaneControl( CBubbleManager& aCustomManager, 
                             CBubbleCallObjectManager& aCallObjectManager );
@@ -87,8 +100,10 @@
                           TBool& aBitmapOwnership, 
                           CFbsBitmap*& aMask,
                           TBool& aMaskOwnership,
-                          TBool aIsScalable ); 
+                          TBool aIsScalable,
+                          TBool aThumbnail = EFalse );
 
+    void StartScaling( CFbsBitmap *aSourceBitmap );
 private: // data
     CBubbleManager& iBubbleManager;
     CBubbleCallObjectManager& iCallObjectManager;
@@ -98,6 +113,11 @@
     TBool iIsUsed;
     CFbsBitmap* iBitmap; // not owned
     CFbsBitmap* iMask; // not owned
+    CTelBubbleImageScaler *iScaler;
+    CFbsBitmap *iScaledImage;
+    
+    // to prevent loading & scaling the same image again.
+    CFbsBitmap* iOldBitmap;	
     };
 
 #endif // C_BUBBLEMAINPANECONTROL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/BubbleManager/Inc/telbubbleimagescaler.h	Thu Sep 09 18:09:57 2010 +0100
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies)
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Ctelbubbleimagescaler declaration
+*
+*/
+
+#ifndef TELBUBBLEIMAGESCALER_H
+#define TELBUBBLEIMAGESCALER_H
+
+// INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class CFbsBitmap;
+class CBitmapScaler;
+
+/**
+ *  Interface to observe scaling status
+ */
+class MTelBubbleImageScalerObserver
+{
+public:
+    /**
+     * Callback to indicate scaling completion
+     * 
+     * @param aError Error occured during scaling
+     * @param aBitmap Scaled bitmap
+     */
+    virtual void ImageScalingComplete
+                (TInt aError, CFbsBitmap* aBitmap) = 0;
+    };
+
+/**
+ *  Asynchronous bitmap scaler.
+ *  Uses CBitmapScaler to do scaling
+ */
+class CTelBubbleImageScaler : public CActive
+{
+public:
+    // Cancel and destroy
+    ~CTelBubbleImageScaler();
+
+    /** Two phase constructor */
+    static CTelBubbleImageScaler* NewL(MTelBubbleImageScalerObserver& aObserver);
+
+    /** Two phase constructor */
+    static CTelBubbleImageScaler* NewLC(MTelBubbleImageScalerObserver& aObserver);
+    
+    /**
+     *  Scaling status
+     */
+    enum TState
+        {
+        EScalingIdle = 0, EScalingStarted, EScalingDone
+        };
+
+public:
+    /**
+     * Starts bitmap scaling Asynchronously 
+     * @param aSrc Bitmap that needs to be scaled
+     * @param aTarget Scaled bitmap
+     * @return None.
+     */
+    void StartScaleL(CFbsBitmap* aSrc, CFbsBitmap* aTarget);
+    
+    /**
+     * Sets the state of Scaler 
+     * @param aState State to be set
+     * @return None.
+     */
+    void SetState(TState aState);
+    
+    /**
+     * Returns the current state of Scaler 
+     * @param None
+     * @return TInt State of the scaler
+     */   
+    TInt GetState();
+
+private:
+    /* constructor */
+    CTelBubbleImageScaler(MTelBubbleImageScalerObserver& aObserver);
+
+    /* Second-phase constructor */
+    void ConstructL();
+
+private: // From CActive
+    /*
+     * Handle completion
+     */
+    void RunL();
+
+    /*
+     * Cancels active request
+     */
+    void DoCancel();
+
+    /*
+     * Override to handle leaves from RunL(). Default implementation causes
+     * the active scheduler to panic.
+     */
+    TInt RunError(TInt aError);
+
+private:
+    /* 
+     * Scaler observer instance 
+     */
+    MTelBubbleImageScalerObserver& iObserver;
+    
+    /*
+     * Own: Bitmap scaler
+     */
+    CBitmapScaler* iScaler;
+    
+    /* 
+     * Own: The bitmap that is scaled.
+     */
+    CFbsBitmap* iScaledBitmap;
+
+    /*
+     * Scaler state
+     */
+    TInt iState;
+    };
+
+#endif // TELBUBBLEIMAGESCALER_H
+
+// End of File
+
--- a/phoneuis/BubbleManager/Src/BMBubbleManager.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Src/BMBubbleManager.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -1545,7 +1545,7 @@
                     iBottomImageVariety = tiny ? 0 : 4;
                     
                     CBubblePlace::TPhoneBubblePlace place;
-                    place = cnapLength ? CBubblePlace::EBottomImageCnap :
+                    place = cnapLength ? CBubblePlace::EBottomCnap :
                                          CBubblePlace::EBottomImage;
                     
                     SetActivePlace( place,
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookVideo.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookVideo.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -32,7 +32,7 @@
 #include    <eikenv.h>
 #include    <AknsUtils.h>
 #include    <AknsDrawUtils.h>
-#include    <aknlayout2scalabledef.h>
+#include    <AknLayout2ScalableDef.h>
 #include    <layoutmetadata.cdl.h>
 
 
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookVideoCnap.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookVideoCnap.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -32,7 +32,7 @@
 #include    <eikenv.h>
 #include    <AknsUtils.h>
 #include    <AknsDrawUtils.h>
-#include    <aknlayout2scalabledef.h>
+#include    <AknLayout2ScalableDef.h>
 #include    <layoutmetadata.cdl.h>
 
 
--- a/phoneuis/BubbleManager/Src/BMCallObjectManager.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Src/BMCallObjectManager.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -167,36 +167,52 @@
     
     TSize sourceSize( iMediaReader->SourceSize() );
     
-    TReal scaleFactor;
-    TRect clipRect;
-    TSize targetSize;
-    if ( BubbleCallObjectUtils::GetScaleFactorAndClipRect(
+    TReal scaleFactor( 0 );
+    TRect clipRect( 0, 0, 0, 0 );
+    TSize targetSize( 0, 0 );
+    
+    // if the caller image (source size) is bigger than aPreferredImageSize (the whole caller-image area)
+    // then some down scaling is required.
+    if ( sourceSize.iHeight > aPreferredImageSize.iHeight && sourceSize.iWidth > aPreferredImageSize.iWidth )
+        {
+        targetSize = aPreferredImageSize;
+        
+        BubbleCallObjectUtils::GetScaleFactorAndClipRect(
              sourceSize,
              aPreferredImageSize,
              BubbleCallObjectUtils::EFillTarget,
              scaleFactor,
-             clipRect ) &&
-         aTinyImageSize != TSize(0,0) )
+             clipRect ); 
+        }
+    else // no scaling. wide or tall images gets cropped from center if required.
         {
-        // Tiny image
-        BubbleCallObjectUtils::GetScaleFactorAndClipRect(
-             sourceSize,
-             aTinyImageSize,
-             BubbleCallObjectUtils::EMaximumFit,
-             scaleFactor,
-             clipRect );
-        
-        targetSize = aTinyImageSize;           
+        targetSize = aPreferredImageSize;
+        scaleFactor = 1;
+        TInt x_offset = 0;
+        TInt y_offset = 0;
+
+        if ( sourceSize.iWidth > aPreferredImageSize.iWidth )
+            {
+            x_offset = ( sourceSize.iWidth - aPreferredImageSize.iWidth ) / 2;
+            }
+        if ( sourceSize.iHeight > aPreferredImageSize.iHeight )
+            {
+            y_offset = ( sourceSize.iHeight - aPreferredImageSize.iHeight ) / 2; 
+            }
+
+        clipRect = sourceSize;
+                
+        if ( x_offset > 0 || y_offset > 0 )
+            {
+            // clip from center of the source image
+            clipRect.Shrink( x_offset, y_offset );
+            }
         }
-    else
-        {
-        targetSize = aPreferredImageSize;    
-        }        
-    
+
     iMediaReader->StartReadingL( targetSize, 
                                  scaleFactor, 
                                  clipRect, 
-                                 this );    
+                                 this );   
     }
 
 // ---------------------------------------------------------------------------
--- a/phoneuis/BubbleManager/Src/BMMainPaneControl.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Src/BMMainPaneControl.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -28,6 +28,8 @@
 #include <AknIconUtils.h>
 #include <layoutmetadata.cdl.h>
 
+#define SCALE_FACTOR 1.5
+
 // ---------------------------------------------------------------------------
 // C++ constructor
 // ---------------------------------------------------------------------------
@@ -36,7 +38,9 @@
     CBubbleManager& aBubbleManager,  
     CBubbleCallObjectManager& aCallObjectManager ) : 
     iBubbleManager( aBubbleManager ), 
-    iCallObjectManager ( aCallObjectManager )
+    iCallObjectManager ( aCallObjectManager ),
+    iScaler( NULL ),
+    iScaledImage( NULL )
     {
     }
 
@@ -46,6 +50,7 @@
 //
 void CBubbleMainPaneControl::ConstructL()
     {
+    iScaler = CTelBubbleImageScaler::NewL( *this );
     }
 
 // ---------------------------------------------------------------------------
@@ -72,6 +77,11 @@
 //
 CBubbleMainPaneControl::~CBubbleMainPaneControl()
     {
+    delete iScaler;
+    iScaler = NULL;
+    
+    delete iScaledImage;
+    iScaledImage = NULL;	
     }
 
 // ---------------------------------------------------------------------------
@@ -82,23 +92,49 @@
     const CBubbleHeader& aHeader )
     {
     iBubble = aHeader.BubbleId();
-    iBitmap = aHeader.CallObjectImage();
-    iMask = aHeader.CallObjectImageMask();
+    TBool thumbnail( EFalse );
+    TBool noScaling( EFalse );
+    
+    if ( aHeader.CallObjectImage() )
+        {
+        iBitmap = aHeader.CallObjectImage();
+        iMask = aHeader.CallObjectImageMask();
+        }
+    else if ( aHeader.TnBitmap() )
+        {
+        iBitmap = aHeader.TnBitmap();
+        iMask = aHeader.TnBitmapMask();
+        thumbnail = ETrue;
+        }
+    else
+        {
+        iBitmap = NULL;
+        }
+    
     iThreeLinedBubble = ( aHeader.CNAP().Length() > 0 );
     
+    // PrepareBitmapsL() needs to know if a brand new thumbnail is about to get prepared.
+    if ( thumbnail && (iOldBitmap != NULL) && (iOldBitmap == iBitmap) && (iScaler->GetState() != CTelBubbleImageScaler::EScalingStarted) )
+        {
+        noScaling = ETrue;
+        }
+    
     if ( iBitmap )
         {
-        CFbsBitmap* bitmap;
-        CFbsBitmap* mask;
-        TBool bitmapOwnership;
-        TBool maskOwnership;
+        iOldBitmap = iBitmap;
+        
+        CFbsBitmap* bitmap( NULL );
+        CFbsBitmap* mask( NULL );
+        TBool bitmapOwnership( EFalse );
+        TBool maskOwnership( EFalse );
         
         TRAPD(err, PrepareBitmapsL( bitmap, 
                                     bitmapOwnership, 
                                     mask, 
                                     maskOwnership,
                                     aHeader.CallObjectImageType() == 
-                                    CBubbleHeader::EThemeImage ) );
+                                    CBubbleHeader::EThemeImage,
+                                    noScaling ));
         
         if ( err )
             {
@@ -119,6 +155,12 @@
         
         iIsUsed = ETrue;
         MakeVisible( ETrue );
+        
+        // upscale thumbnails if loading it for the first time.
+        if ( thumbnail && !noScaling && ( iScaler->GetState() != CTelBubbleImageScaler::EScalingStarted ) )
+            {
+            StartScaling( iBitmap );
+            }
         }
     }
 
@@ -131,9 +173,18 @@
     TBool& aBitmapOwnership, 
     CFbsBitmap*& aMask,
     TBool& aMaskOwnership,
-    TBool aIsScalable )
+    TBool aIsScalable,
+    TBool aThumbnail )
     {
-    aBitmap = iBitmap;
+    if ( aThumbnail )
+        {
+        aBitmap = iScaledImage;
+        }
+    else
+        {
+        aBitmap = iBitmap;
+        }
+
     aMask = iMask;
     aBitmapOwnership = EFalse;
     aMaskOwnership = EFalse;
@@ -278,5 +329,117 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CTelBubbleCallImage::ImageScalingComplete
+//
+// ---------------------------------------------------------------------------
+//
+void CBubbleMainPaneControl::ImageScalingComplete( TInt aError,
+        CFbsBitmap* aBitmap )
+    {
+    if ( aError == KErrNone )
+        {
+        // Draw the scaled image
+        iScaledImage = aBitmap;
+        iScaler->SetState( CTelBubbleImageScaler::EScalingDone );
+        
+        CFbsBitmap* bitmap( NULL );
+        CFbsBitmap* mask( NULL );
+        TBool bitmapOwnership( EFalse );
+        TBool maskOwnership( EFalse );
+      
+        TRAPD(err, PrepareBitmapsL( bitmap, 
+                                    bitmapOwnership, 
+                                    mask, 
+                                    maskOwnership,
+                                    EFalse,
+                                    ETrue ) );
+        
+        if ( err )
+            {
+            return;
+            }
+                
+        if ( iCallImage->ControlType() == 
+             CTelBubbleCustomElement::EBubbleCallImage )
+            {
+            CTelBubbleCallImage* image = 
+                static_cast<CTelBubbleCallImage*> ( iCallImage->Control() );
+            image->SetImage( bitmap, EFalse, mask, maskOwnership );
+            } 
+
+        SizeChanged();
+        
+        iIsUsed = ETrue;
+        MakeVisible( ETrue );
+        
+        Parent()->DrawNow(); // refreshing view with scaled image
+        }
+    else if ( aError == KErrCancel )
+        {
+        // error is ignored
+        // This error is returned when a previous scaling is cancelled
+        // while new scaling request is given to active object
+        }
+    else
+        {
+        // draw the unscaled image in error cases
+    
+        delete iScaledImage;
+        iScaledImage = NULL;
+        }
+    
+    iScaler->SetState( CTelBubbleImageScaler::EScalingDone );
+    }
+
+// ---------------------------------------------------------------------------
+// CTelBubbleCallImage::StartScaling
+//
+// ---------------------------------------------------------------------------
+//
+void CBubbleMainPaneControl::StartScaling( CFbsBitmap *aSourceBitmap )
+    {
+    if ( !iScaler )
+        {
+        return;
+        }
+    
+    iScaler->Cancel(); // cancels any outstanding scaling requests
+    
+    delete iScaledImage;
+    iScaledImage = NULL;
+
+    // create a bitmap for scaled size
+    TRAPD( err, iScaledImage = new (ELeave) CFbsBitmap );
+    if ( err != KErrNone )
+        {
+        // no scaling in error cases
+        iScaler->SetState( CTelBubbleImageScaler::EScalingIdle );
+        return;
+        }
+
+    TSize size = aSourceBitmap->SizeInPixels();
+    TRect scaledRect( 0, 0, size.iWidth * SCALE_FACTOR, size.iHeight * SCALE_FACTOR );
+    
+    TRAP( err, iScaledImage->Create( scaledRect.Size(), aSourceBitmap->DisplayMode() ) );
+    if ( err != KErrNone )
+        {
+        delete iScaledImage;
+        iScaledImage = NULL;
+        iScaler->SetState( CTelBubbleImageScaler::EScalingIdle );
+        }
+    else
+        {
+        //start scaling
+        TRAPD( err, iScaler->StartScaleL( aSourceBitmap, iScaledImage ) );
+        if (err != KErrNone)
+            {
+            iScaler->SetState( CTelBubbleImageScaler::EScalingIdle );
+            delete iScaledImage;
+            iScaledImage = NULL;
+            }
+        }
+    }
+	
 // END OF FILE
 
--- a/phoneuis/BubbleManager/Src/BMTouchPaneButton.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Src/BMTouchPaneButton.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -28,7 +28,7 @@
 #include "BMTouchPaneInterface.h"
 #include "BMPanic.h"
 
-
+const TInt KDimmedTransparency = 77;
 const TInt KBubbleButtonText = 255;
 
 // ======== MEMBER FUNCTIONS ========
@@ -238,8 +238,8 @@
     
     for ( TInt i=0; i < commandCount; i++ )    
         {
-        frameId = iIconProvider->GetButtonForCommandL( 
-                                   iCommands[i]);
+        TRAP_IGNORE( frameId = iIconProvider->GetButtonForCommandL( 
+                                   iCommands[i]));
 
         if ( iButtonPressed )
             {
@@ -350,7 +350,11 @@
    { 
    if ( IsDimmed() ) 
        {
-       aPenColor = iEikonEnv->ControlColor( EColorButtonTextDimmed, *this ); 
+       // Using parameter EColorButtonTextDimmed does not return valid 
+       // color for the text that is used in dimmed button. We have 
+       // to use default text and set it transparent.
+       aPenColor = iEikonEnv->ControlColor( EColorButtonText, *this );
+       aPenColor.SetAlpha( KDimmedTransparency );
        }
    else if ( iButtonPressed )
        {
--- a/phoneuis/BubbleManager/Src/BMUtils.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/Src/BMUtils.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -36,7 +36,7 @@
 #include    <AknBidiTextUtils.h>
 #include    <featmgr.h>
 #include    <aknlayoutscalable_apps.cdl.h>
-#include    <aknlayout2scalabledef.h>
+#include    <AknLayout2ScalableDef.h>
 #include    <applayout.cdl.h>
 #include    <layoutmetadata.cdl.h>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/BubbleManager/Src/telbubbleimagescaler.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Ctelbubbleimagescaler implementation
+*
+*/
+
+#include "telbubbleimagescaler.h"
+#include "BMBubbleDebug.h"
+#include <bitmaptransforms.h>
+
+// ---------------------------------------------------------------------------
+// Constructor
+// ---------------------------------------------------------------------------
+//
+CTelBubbleImageScaler::CTelBubbleImageScaler(
+        MTelBubbleImageScalerObserver& aObserver) :
+    CActive(CActive::EPriorityStandard), iObserver(aObserver), iState(EScalingIdle),
+    iScaler( NULL )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// NewLC
+// ---------------------------------------------------------------------------
+//
+CTelBubbleImageScaler* CTelBubbleImageScaler::NewLC(
+        MTelBubbleImageScalerObserver& aObserver)
+    {
+    CTelBubbleImageScaler* self = new (ELeave) CTelBubbleImageScaler(
+            aObserver);
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// NewL
+// ---------------------------------------------------------------------------
+//
+CTelBubbleImageScaler* CTelBubbleImageScaler::NewL(
+        MTelBubbleImageScalerObserver& aObserver)
+    {
+    CTelBubbleImageScaler* self = CTelBubbleImageScaler::NewLC(aObserver);
+    CleanupStack::Pop( self ); 
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CTelBubbleImageScaler::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CTelBubbleImageScaler::ConstructL()
+    {
+    CActiveScheduler::Add( this );
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CTelBubbleImageScaler::~CTelBubbleImageScaler()
+    {
+    if ( iScaler )
+        {
+        iScaler->Cancel(); // Cancel any request, if outstanding
+        }
+    
+    delete iScaler;
+    iState = EScalingIdle;
+    }
+
+// ---------------------------------------------------------------------------
+// CTelBubbleImageScaler::StartScaleL
+// ---------------------------------------------------------------------------
+//
+void CTelBubbleImageScaler::StartScaleL(CFbsBitmap* aSrc, CFbsBitmap* aTarget)
+    {
+    BM_TRACE_( "CTelBubbleImageScaler::StartScaleL()" );
+    if ( !iScaler )
+        {
+        iScaler = CBitmapScaler::NewL();
+        }
+
+    iScaledBitmap = aTarget;
+
+    iScaler->SetQualityAlgorithm( CBitmapScaler::EMaximumQuality );
+    iScaler->Scale( &iStatus, *aSrc, *aTarget, EFalse );
+    iState = EScalingStarted;
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// CTelBubbleImageScaler::DoCancel
+// ---------------------------------------------------------------------------
+//
+void CTelBubbleImageScaler::DoCancel()
+    {
+    BM_TRACE_( "CTelBubbleImageScaler::DoCancel()" );
+    if ( iScaler )
+        {
+        iScaler->Cancel();
+        }
+    
+    iObserver.ImageScalingComplete( KErrCancel, iScaledBitmap );
+    iState = EScalingDone;
+    iScaledBitmap = NULL;
+    }
+
+// ---------------------------------------------------------------------------
+// CTelBubbleImageScaler::RunL
+// ---------------------------------------------------------------------------
+//
+void CTelBubbleImageScaler::RunL()
+    {
+    BM_TRACE_( "CTelBubbleImageScaler::RunL()" );
+    iState = EScalingDone;
+    TInt status = iStatus.Int();
+    iObserver.ImageScalingComplete( status, iScaledBitmap );
+    iScaledBitmap = NULL;
+    }
+
+// ---------------------------------------------------------------------------
+// CTelBubbleImageScaler::RunError
+// ---------------------------------------------------------------------------
+//
+TInt CTelBubbleImageScaler::RunError( TInt aError )
+    {
+    BM_TRACE_( "CTelBubbleImageScaler::RunError()" );
+    iState = EScalingDone;
+    iObserver.ImageScalingComplete( aError, iScaledBitmap );
+    iScaledBitmap = NULL;
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CTelBubbleImageScaler::SetState
+// ---------------------------------------------------------------------------
+//
+void CTelBubbleImageScaler::SetState(TState aState)
+    {
+    BM_TRACE_1( "CTelBubbleImageScaler::SetState(): %d", aState );
+    iState = aState;
+    }
+
+// ---------------------------------------------------------------------------
+// CTelBubbleImageScaler::GetState
+// ---------------------------------------------------------------------------
+//
+TInt CTelBubbleImageScaler::GetState()
+    {
+    BM_TRACE_1( "CTelBubbleImageScaler::GetState(): %d", iState );
+    return iState;
+    }
--- a/phoneuis/BubbleManager/bmcustomization/src/telbubblecallimage.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/bmcustomization/src/telbubblecallimage.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -203,60 +203,68 @@
         {
         return;                    
         }
-    
-    // If bitmap is bigger than drawing area then clip from center.
-    TRect rect;
-    if ( IsFullScreenImage() )
-        {
-        rect = Rect();
-        }
-    else
-        {
-        rect = ImagePlacingArea();
-        }
-    
+        
+    // If bitmap is bigger than drawing area then clip from center of the image.
+    TRect rect = Rect();
     iSourceRect = iImage->SizeInPixels();
-    
+
     TInt offsetX = ( iSourceRect.Width() > rect.Width() ) ? 
                    ((iSourceRect.Width() - rect.Width()) / 2) : 0;
     TInt offsetY = ( iSourceRect.Height() > rect.Height() ) ? 
                    ((iSourceRect.Height() - rect.Height()) / 2) : 0;
-    iSourceRect.Shrink( offsetX, offsetY );    
     
-    // If bitmap is smaller than drawing area then center it.
+    iSourceRect.Shrink( offsetX, offsetY ); 
+    
+    // If bitmap is smaller than the drawing area then center the image on it.
     iOffset.iX = ( iSourceRect.Width() < rect.Width() ) ? 
                 ((rect.Width() - iSourceRect.Width()) / 2) : 0;
-    iOffset.iY = ( iSourceRect.Height() < rect.Height() ) ? 
-                ((rect.Height() - iSourceRect.Height()) / 2) : 0;
+    
+    iOffset.iY = 0;
+    
+    // lift the image higher if needed.
+    if ( iSourceRect.Height() < rect.Height() )
+        {
+        // check if it fits totally above the bubble
+        TInt height = iImagePlacingArea.iBr.iY - iImagePlacingArea.iTl.iY;
+      
+        if ( iSourceRect.Height() < height )
+            {
+            // if it fits then center it above the bubble
+            iOffset.iY = ( height - iSourceRect.Height() ) / 2;
+            }
+        }
     }
 
-
 // ---------------------------------------------------------------------------
 // CTelBubbleCallImage::Draw
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CTelBubbleCallImage::Draw( const TRect& /*aRect*/ ) const
     {
-    if ( iImage ) 
+    if ( iImage )
         {
         CWindowGc& gc = SystemGc();
-        const TPoint topLeft = IsFullScreenImage() ? Rect().iTl : iImagePlacingArea.iTl;
+    
+        const TPoint topLeft = Rect().iTl;
         const TPoint bitmapTopLeft = topLeft + iOffset;
-       
-        if( iMask ) 
+    
+        // if we have y offset then the image wont go under the bubble in any case and so
+        // no need for masking
+        if ( iMask && iOffset.iY == 0 ) 
             {
             gc.BitBltMasked( bitmapTopLeft,
-                             iImage, 
-                             iSourceRect, 
-                             iMask, 
-                             EFalse );
+                         iImage, 
+                         iSourceRect, 
+                         iMask, 
+                         EFalse );
             }
-        else            
+        else
             {
             gc.BitBlt( bitmapTopLeft,
-                       iImage,
-                       iSourceRect );    
+                   iImage,
+                   iSourceRect );    
             }
+    
         DrawRoundRect( gc, bitmapTopLeft, iSourceRect.Size() );
         }
     }
--- a/phoneuis/BubbleManager/eabi/bubblemanageru.def	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/eabi/bubblemanageru.def	Thu Sep 09 18:09:57 2010 +0100
@@ -138,4 +138,5 @@
 	_ZTV25CBubbleOutlookNumberEntry @ 137 NONAME
 	_ZTV29CBubbleOutlookBottomImageCnap @ 138 NONAME
 	_ZTV29CBubbleOutlookBottomRightCnap @ 139 NONAME
-
+	_ZTI21CTelBubbleImageScaler @ 140 NONAME
+	_ZTV21CTelBubbleImageScaler @ 141 NONAME
--- a/phoneuis/BubbleManager/laf/BMLayout.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -23,7 +23,7 @@
 #include <aknenv.h>
 #include <applayout.cdl.h>
 #include <AknUtils.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <layoutmetadata.cdl.h>
 
--- a/phoneuis/BubbleManager/laf/BMLayout.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout.h	Thu Sep 09 18:09:57 2010 +0100
@@ -23,7 +23,7 @@
 // INCLUDES
 #include <calslbs.h>
 #include <bldvariant.hrh> 
-#include <aknlayoutdef.h>
+#include <AknLayoutDef.h>
 
 /**
 * Layout coordinates from Application LAF
--- a/phoneuis/BubbleManager/laf/BMLayout2.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout2.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -23,7 +23,7 @@
 #include <aknenv.h>
 #include <applayout.cdl.h>
 #include <AknUtils.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <layoutmetadata.cdl.h>
 
--- a/phoneuis/BubbleManager/laf/BMLayout2.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout2.h	Thu Sep 09 18:09:57 2010 +0100
@@ -23,7 +23,7 @@
 // INCLUDES
 #include <calslbs.h>
 #include <bldvariant.hrh> 
-#include <aknlayoutdef.h>
+#include <AknLayoutDef.h>
 
 /**
 * Layout coordinates from Application LAF
--- a/phoneuis/BubbleManager/laf/BMLayout3.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout3.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -22,7 +22,7 @@
 #include <aknenv.h>
 #include <applayout.cdl.h>
 #include <AknUtils.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <layoutmetadata.cdl.h>
 
--- a/phoneuis/BubbleManager/laf/BMLayout3.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout3.h	Thu Sep 09 18:09:57 2010 +0100
@@ -23,7 +23,7 @@
 // INCLUDES
 #include <calslbs.h>
 #include <bldvariant.hrh> 
-#include <aknlayoutdef.h>
+#include <AknLayoutDef.h>
 
 /**
 * Call3 (video cli) layout coordinates from Application LAF 
--- a/phoneuis/BubbleManager/laf/BMLayout4.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout4.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -23,7 +23,7 @@
 #include <aknenv.h>
 #include <applayout.cdl.h>
 #include <AknUtils.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <layoutmetadata.cdl.h>
 
--- a/phoneuis/BubbleManager/laf/BMLayout4.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout4.h	Thu Sep 09 18:09:57 2010 +0100
@@ -23,7 +23,7 @@
 // INCLUDES
 #include <calslbs.h>
 #include <bldvariant.hrh> 
-#include <aknlayoutdef.h>
+#include <AknLayoutDef.h>
 
 /**
 * Layout coordinates from Application LAF
--- a/phoneuis/BubbleManager/laf/BMLayout6.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout6.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -22,7 +22,7 @@
 #include <aknenv.h>
 #include <applayout.cdl.h>
 #include <AknUtils.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <layoutmetadata.cdl.h>
 
--- a/phoneuis/BubbleManager/laf/BMLayout6.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/BubbleManager/laf/BMLayout6.h	Thu Sep 09 18:09:57 2010 +0100
@@ -20,7 +20,7 @@
 
 #include <calslbs.h>
 #include <bldvariant.hrh> 
-#include <aknlayoutdef.h>
+#include <AknLayoutDef.h>
 /**
 * Layout coordinates from Application LAF
 * 
--- a/phoneuis/dialer/inc/cdialer.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/inc/cdialer.h	Thu Sep 09 18:09:57 2010 +0100
@@ -434,6 +434,9 @@
         void OnPeninputUiActivated();
         
     private:    // Data
+        
+        // Component controls of dialer.
+        RPointerArray<CCoeControl> iComponentControls;
           
         // Keypad container  - owned
         CDialerKeyPadContainer* iKeypadArea;
@@ -479,6 +482,11 @@
          * Is qwerty mode on.
          */
         TBool iQwertyMode;
+        
+        /**
+         * Is hybrid keyboard mode used. 
+         */
+        TBool iHybridKeyboardMode;
 
         /**
          * Server wich sends events via callback when the virtual keyboard is opened/closed.
--- a/phoneuis/dialer/inc/cdialernumberentry.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/inc/cdialernumberentry.h	Thu Sep 09 18:09:57 2010 +0100
@@ -156,6 +156,18 @@
         void SetOperationMode( TDialerOperationMode aMode );
         
         TBool Validate( const TDesC& aString );
+        
+    protected:
+        
+        /**
+        * Callback function for CIdle.
+        */
+        static TInt SetLateFocus( TAny* aThis );
+        
+        /**
+        * Sets focus to number entry. 
+        */
+        void DoSetFocus( TBool aFocus, TDrawNow aDrawNow );
 
     private:  // Functions from MCoeControlObserver
         /**
@@ -322,6 +334,9 @@
         
         // NOT OWNED.
         CEikAppUi* iAppUi;
+        
+        CIdle* iLateFocuser;
+
     };
 
 #endif      // CDIALERNUMBERENTRY_H
--- a/phoneuis/dialer/src/cdialer.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cdialer.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -52,9 +52,6 @@
 /// ROM drive.
 _LIT( KDialerResourceFile, "dialer.rsc" );
 
-// number entry, keypad area, easydialing, toolbar
-const TInt KContainedControlsInTelephonyMode = 4;
-
 
 // ========================= MEMBER FUNCTIONS ================================
 
@@ -96,6 +93,8 @@
     delete iEasyDialer;
     delete iDialingExtensionObserver;
     delete iToolbar;
+    
+    iComponentControls.Close();
 
     UnLoadResources();
     DIALER_PRINT("CDialer::~CDialer>"); 
@@ -120,12 +119,19 @@
     SetParent( const_cast<CCoeControl*>(&aContainer) );
 
     iNumberEntry = CDialerNumberEntry::NewL( *this );
+    iComponentControls.Append( iNumberEntry );
 
     iController = aController;
     
-    iKeypadArea = CDialerKeyPadContainer::NewL( *this, EModeEasyDialing );
-    
-    iToolbar = CDialerToolbarContainer::NewL( *this, iController );
+    // Keypad and toolbar are not used in small displays.
+    if ( ! FeatureManager::FeatureSupported(  KFeatureIdFfSmallScreenTouch ) ) 
+        {
+        iKeypadArea = CDialerKeyPadContainer::NewL( *this, EModeEasyDialing );
+        iComponentControls.Append( iKeypadArea );
+        
+        iToolbar = CDialerToolbarContainer::NewL( *this, iController );
+        iComponentControls.Append( iToolbar );
+        }
 
     // try to create easydialing plugin. If plugin is not present, iEasydialer gets value NULL.
     LoadEasyDialingPlugin();
@@ -149,6 +155,7 @@
         {
         User::LeaveIfError( iPeninputServer.Connect() );
         iPeninputServer.AddPenUiActivationHandler( this, EPluginInputModeAll ); 
+        iVirtualKeyBoardOpen = iPeninputServer.IsVisible();
         }
     #endif
     DIALER_PRINT("CDialer::ConstructL>");
@@ -196,7 +203,10 @@
     if ( aController && iController != aController )
         {
         iController = aController;
-        iToolbar->SetContentProviderL( iController );
+        if ( iToolbar )
+            {
+            iToolbar->SetContentProviderL( iController );
+            }
         iNumberEntry->SetNumberEntryPromptTextL( iController->NumberEntryPromptTextL() );
         SizeChanged();
         UpdateToolbar();
@@ -235,7 +245,11 @@
         iController->SetNumberEntryIsEmpty( !numAvailable );
         iToolbar->UpdateButtonStates();
         iToolbar->DrawDeferred();
-        iKeypadArea->DrawDeferred(); // needed to remove drawing problem from leftmost button column
+        
+        if ( iKeypadArea )
+            {
+            iKeypadArea->DrawDeferred(); // needed to remove drawing problem from leftmost button column
+            }
         }
     }
 
@@ -365,15 +379,13 @@
 void CDialer::RemoveNumberEntry()
     {
     ResetEditorToDefaultValues();
-    iVirtualKeyBoardOpen = EFalse;
     
     iIsUsed = EFalse;
 
     // easydialer change begins
     if (iEasyDialer)
         {
-        TRAP_IGNORE( iEasyDialer->HandleCommandL( EEasyDialingClosePopup );
-                     iEasyDialer->HandleCommandL( EEasyDialingVkbClosed ) );
+        TRAP_IGNORE( iEasyDialer->HandleCommandL( EEasyDialingClosePopup ); );
         iEasyDialer->Reset();
         }
     // easydialer change ends
@@ -398,14 +410,9 @@
 //
 void CDialer::OpenVkbL()
     {
-    iVirtualKeyBoardOpen = ETrue;
     UpdateEdwinState( EVirtualKeyboardEditor );
     
     iNumberEntry->HandleCommandL( EDialerCmdTouchInput );
-    if ( iEasyDialer )
-        {
-        iEasyDialer->HandleCommandL( EEasyDialingVkbOpened );
-        }
     }
 
 // ---------------------------------------------------------------------------
@@ -446,7 +453,10 @@
 //    
 void CDialer::EnableTactileFeedback( const TBool aEnable )
     {
-    iKeypadArea->EnableTactileFeedback( aEnable );
+    if ( iKeypadArea )
+        {
+        iKeypadArea->EnableTactileFeedback( aEnable );
+        }
     }
 
 // ---------------------------------------------------------
@@ -457,10 +467,6 @@
     {
     iQwertyMode = aMode;
     UpdateNumberEntryConfiguration();
-    if ( iEasyDialer && aMode )
-        {
-        TRAP_IGNORE( iEasyDialer->HandleCommandL( EEasyDialingVkbClosed ) );
-        }
     }
 
 // ---------------------------------------------------------
@@ -509,34 +515,45 @@
     AknsUtils::RegisterControlPosition( this );
     TRect parentRect( Rect() );
        
-    // Method is called before containers are created.
-    if ( !iKeypadArea )
-        {
-        return;
-        }
-        
     TDialerVariety variety = ( Layout_Meta_Data::IsLandscapeOrientation() ?
         EDialerVarietyLandscape : EDialerVarietyPortrait );
     
+    
     // keypad area
-    TDialerOperationMode keypadOpMode = 
-            ( EasyDialingEnabled() ? EModeEasyDialing : EModeDialer );
-    iKeypadArea->SetOperationMode( keypadOpMode );
-    AknLayoutUtils::LayoutControl(
-        iKeypadArea, parentRect, 
-        AknLayoutScalable_Apps::dia3_keypad_num_pane( variety ).LayoutLine() );
+    if ( iKeypadArea ) 
+        {
+        TDialerOperationMode keypadOpMode = 
+                ( EasyDialingEnabled() ? EModeEasyDialing : EModeDialer );
+        
+        iKeypadArea->SetOperationMode( keypadOpMode );
+        AknLayoutUtils::LayoutControl(
+            iKeypadArea, parentRect, 
+            AknLayoutScalable_Apps::dia3_keypad_num_pane( variety ).LayoutLine() );
+        }
 
+    
     // toolbar
-    AknLayoutUtils::LayoutControl(
-        iToolbar, parentRect, 
-        AknLayoutScalable_Apps::dia3_keypad_fun_pane( variety ).LayoutLine() );
+    if ( iToolbar )
+        {
+        AknLayoutUtils::LayoutControl(
+            iToolbar, parentRect, 
+            AknLayoutScalable_Apps::dia3_keypad_fun_pane( variety ).LayoutLine() );
+        }
 
+    // Use hybrid keyboard mode if there is no visible virtual keypad.
+    iHybridKeyboardMode = !iKeypadArea;
+    
     // easy dial contacts list
     if ( iEasyDialer )
         {
         AknLayoutUtils::LayoutControl(
             iEasyDialer, parentRect, 
             AknLayoutScalable_Apps::dia3_listscroll_pane( variety ).LayoutLine() );
+        
+        iEasyDialer->SetKeyboardMode( 
+            iHybridKeyboardMode ?
+            CDialingExtensionInterface::EHybridQwerty :
+            CDialingExtensionInterface::EDefaultKeyboard );
         }
 
     // number entry
@@ -560,13 +577,7 @@
 //
 TInt CDialer::CountComponentControls() const
     {
-    TInt count( KContainedControlsInTelephonyMode );
-    
-    if ( !iEasyDialer )
-        {
-        count--;
-        }
-    return count;
+    return iComponentControls.Count();
     }
 
 // ---------------------------------------------------------------------------
@@ -577,9 +588,7 @@
 //
 CCoeControl* CDialer::ComponentControl( TInt aIndex ) const
     {
-    CCoeControl* currentControl(NULL);
-    currentControl = ComponentControlForDialerMode( aIndex );
-    return currentControl;
+    return iComponentControls[ aIndex ];
     } 
 
 // ---------------------------------------------------------------------------
@@ -652,12 +661,7 @@
         {
         // Clear editor flags and report
         // edwin state changed.
-        iVirtualKeyBoardOpen = EFalse;
         UpdateNumberEntryConfiguration();
-        if ( iEasyDialer )
-            {
-            iEasyDialer->HandleCommandL( EEasyDialingVkbClosed );
-            }
         }
     }
 
@@ -719,42 +723,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// CDialer::ComponentControlForDialerMode
-// 
-// Returns contained control by given index in ohonedialer mode.
-//  
-// ---------------------------------------------------------------------------
-//
-CCoeControl* CDialer::ComponentControlForDialerMode( const TInt aIndex ) const
-    {
-    CCoeControl* currentControl(NULL);
-    
-    switch ( aIndex )
-        {
-        case 0:
-            currentControl = iNumberEntry;
-            break;
-        case 1:
-            currentControl = iKeypadArea;
-            break;
-            
-        case 2:
-            currentControl = iToolbar;
-            break;
-        case 3:
-            currentControl = iEasyDialer;
-            break;
-            
-        default:
-            {
-            __ASSERT_DEBUG( EFalse, _L("CDialer::ComponentControl no such component defined"));
-            }
-        }
-
-    return currentControl;
-    } 
-
-// ---------------------------------------------------------------------------
 // CDialer::EdwinState
 // 
 // Returns edwin state of the editor.
@@ -796,8 +764,14 @@
             TInt flags = EAknEditorFlagNoT9 | 
                          EAknEditorFlagLatinInputModesOnly |
                          EAknEditorFlagSelectionVisible;
-            edwinState->SetDefaultInputMode( EAknEditorTextInputMode );
-            edwinState->SetCurrentInputMode( EAknEditorTextInputMode );
+            
+            // Use numeric input mode if in hybrid mode and virtual keyboard
+            // is not open. This signals to AvKON that hybrid mode needs to
+            // be used.
+            TInt inputMode = ( iHybridKeyboardMode && !vkbOpen ) ?
+                EAknEditorNumericInputMode : EAknEditorTextInputMode;
+            edwinState->SetDefaultInputMode( inputMode );
+            edwinState->SetCurrentInputMode( inputMode );
             
             if ( EVirtualKeyboardEditor == aType || vkbOpen )
                 {
@@ -805,10 +779,6 @@
                 // here.
                 flags = ( flags |= EAknEditorFlagNoEditIndicators );
                 }
-            else
-                {
-                iVirtualKeyBoardOpen = EFalse;
-                }
             
             edwinState->SetFlags( flags );
             edwinState->SetPermittedInputModes( 
@@ -880,6 +850,8 @@
             
             iDialingExtensionObserver = CDialingExtensionObserver::NewL( iEasyDialer, iNumberEntry, this );
             iEasyDialer->AddObserverL( iDialingExtensionObserver );
+            
+            iComponentControls.Append( iEasyDialer );
             } );
     
         if ( error )
@@ -948,7 +920,12 @@
 void CDialer::OnPeninputUiDeactivated()
     {
     DIALER_PRINT( "CDialer::OnPeninputUiDeactivated" )
+    iVirtualKeyBoardOpen = EFalse;
     FocusChanged( EDrawNow );
+    if ( iEasyDialer )
+        {
+        TRAP_IGNORE( iEasyDialer->HandleCommandL( EEasyDialingVkbClosed ) );
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -960,5 +937,10 @@
 void CDialer::OnPeninputUiActivated()
     {
     DIALER_PRINT( "CDialer::OnPeninputUiActivated" )
+    iVirtualKeyBoardOpen = ETrue;
+    if ( iEasyDialer )
+        {
+        TRAP_IGNORE( iEasyDialer->HandleCommandL( EEasyDialingVkbOpened ) );
+        }   
     }
 // End of File
--- a/phoneuis/dialer/src/cdialercontainerbase.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cdialercontainerbase.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -23,7 +23,7 @@
 #include <aknbutton.h>
 #include <AknsUtils.h>
 #include <AknsDrawUtils.h>
-#include <aknlayout2def.h>
+#include <AknLayout2Def.h>
 #include <AknsSkinInstance.h>
 #include <AknsControlContext.h>
 #include <aknlayoutscalable_apps.cdl.h>
--- a/phoneuis/dialer/src/cdialerkeypadcontainer.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cdialerkeypadcontainer.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -27,7 +27,7 @@
 #include <AknsSkinInstance.h>
 #include <AknsDrawUtils.h>
 #include <AknsConstants.h>
-#include <aknlayout2def.h>
+#include <AknLayout2Def.h>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <layoutmetadata.cdl.h>
 #include <data_caging_path_literals.hrh> // for KDC_APP_RESOURCE_DIR
--- a/phoneuis/dialer/src/cdialernumberentry.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cdialernumberentry.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -25,15 +25,16 @@
 #include <dialer.rsg>
 #include <eikimage.h>           // CEikImage
 #include <barsread.h>           // TResourceReader
+#include <featmgr.h>
 #include <eiklabel.h> 
 #include <aknappui.h>
 #include <AknUtils.h>
 #include <AknsDrawUtils.h>
 #include <applayout.cdl.h>
 #include <AknLayoutFont.h>
-#include <aknlayout2def.h>
+#include <AknLayout2Def.h>
 #include <AknPhoneNumberEditor.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 #include <AknsBasicBackgroundControlContext.h>
 #include <AknsFrameBackgroundControlContext.h>
 #include <aknlayoutscalable_apps.cdl.h>
@@ -50,6 +51,8 @@
 const TInt KNumberEntryControlCount = 2; //  = number entry, label
 
 _LIT( KPhoneValidChars, "0123456789*#+pwPW" );
+_LIT( KPhoneVanityValidChars, "0123456789*#+pwABCDEFGHIJKLMNOPQRSTUVWXYZ" );
+
 const TInt KKeyCtrlA( 1 );
 const TInt KKeyCtrlC( 3 );
 const TInt KKeyCtrlV( 22 );
@@ -116,7 +119,9 @@
     
     iAppUi = iEikonEnv->EikAppUi();
     __ASSERT_ALWAYS( iAppUi, DialerPanic( EDialerPanicNoApplicationInstance ) );
-     
+    
+    iLateFocuser = CIdle::NewL( CActive::EPriorityIdle );
+    
     ActivateL();
     DIALER_PRINT("numberentry::ConstructL>");
     }
@@ -138,6 +143,13 @@
     delete iEditor;
     delete iFrameContext;
     delete iLabel;
+    
+    if ( iLateFocuser ) 
+        {
+        iLateFocuser->Cancel();
+        }
+    delete iLateFocuser;
+    
     }
 
 
@@ -152,31 +164,73 @@
     }
         
 // ---------------------------------------------------------------------------
-// CDialerNumberEntry::SetFocus
-// 
-// IsFocused() and iEditor->IsFocused() may return other values besides ETrue
-// and EFalse. This is why we need to check their return values against zero
-// and use the result in comparison against aFocus.
+// Delays the setting of focus or removes the focus
 // ---------------------------------------------------------------------------
 //
 void CDialerNumberEntry::SetFocus( TBool aFocus, TDrawNow aDrawNow )
     {
-    DIALER_PRINT("numberentry::SetFocus<");
+    DIALER_PRINT("numberentry::SetFocus<");  
+    
+    TBool vkbOpen = ( iEditor->AknEditorFlags() & EAknEditorFlagTouchInputModeOpened );
+    
+    iLateFocuser->Cancel(); 
+    if ( aFocus && !vkbOpen )
+        {
+        // The setting of focus needs to be delayed, because otherwise
+        // editors cursor is drawn first. Cursor can be seen clearly
+        // when going from landscape mode homescreen to dialer (when
+        // dialer's support for landscape mode has been removed)
+        // The reason behind this is that giving a focus to editor will cause 
+        // enabling of cursor in window server and the window server's
+        // render plugin will draw the cursor first, before the 
+        // dialer gets drawn. The delay in dialer drawing is caused by the
+        // screen rotation from landscape to portrait.
+        iLateFocuser->Start( TCallBack( SetLateFocus, this ) );
+        }
+    else 
+        {       
+        DoSetFocus( aFocus, aDrawNow );
+        }
+    DIALER_PRINT("numberentry::SetFocus>");
+    }
     
-    if ( aFocus != ( IsFocused() ? ETrue : EFalse ) )
+// ---------------------------------------------------------------------------
+// CDialerNumberEntry::SetLateFocus 
+// ---------------------------------------------------------------------------
+//
+TInt CDialerNumberEntry::SetLateFocus( TAny* aThis )
+    {  
+    DIALER_PRINT("numberentry::SetLateFocus<");
+    CDialerNumberEntry* self = static_cast<CDialerNumberEntry*>( aThis );
+
+    self->DoSetFocus( ETrue, ENoDrawNow );
+    
+    DIALER_PRINT("numberentry::SetLateFocus>");
+    return KErrNone;
+    }
+    
+// ---------------------------------------------------------------------------
+// Set the focuss
+// ---------------------------------------------------------------------------
+// 
+void CDialerNumberEntry::DoSetFocus( TBool aFocus, TDrawNow aDrawNow )
+    {
+    DIALER_PRINT("numberentry::DoSetFocus<");  
+    // IsFocused() and iEditor->IsFocused() may return other values besides ETrue
+    // and EFalse. This is why we need to check their return values against zero
+    // and use the result in comparison against aFocus.
+    if ( aFocus != (IsFocused() ? ETrue : EFalse) )
         {
         CCoeControl::SetFocus( aFocus, aDrawNow );
         }
     
-    if ( aFocus != ( iEditor->IsFocused() ? ETrue : EFalse ) )
+    if ( aFocus != (iEditor-> IsFocused() ? ETrue : EFalse ) )
         {
         iEditor->SetFocus( aFocus );
-        }
-    
-    DIALER_PRINT("numberentry::SetFocus>");
+        }   
+    DIALER_PRINT("numberentry::DoSetFocus>");  
     }
 
-
 // ---------------------------------------------------------------------------
 // CDialerNumberEntry::TextLength 
 // ---------------------------------------------------------------------------
@@ -709,6 +763,8 @@
 void CDialerNumberEntry::StartVirtualKeyBoard( )
     {
     // To change focus to VKB, if not called VKB will not come visible
+    iLateFocuser->Cancel();
+    DoSetFocus( ETrue, ENoDrawNow );
     iEikonEnv->SyncNotifyFocusObserversOfChangeInFocus();
     iEditor->OpenVKB();
     }
@@ -893,22 +949,40 @@
 
 // -----------------------------------------------------------------------------
 // CDialerNumberEntry::Validate
-//
-// Copied from cphonekeys.
 // -----------------------------------------------------------------------------
 //
 TBool CDialerNumberEntry::Validate( const TDesC& aString )
     {
     DIALER_PRINT("numberentry::Validate");
-    TLex input( aString );
+    
+    if ( aString.Length() == 0 )
+        {
+        return EFalse;
+        }
+    
+    // check first character
     TPtrC valid( KPhoneValidChars );
-
-    while ( valid.Locate( input.Peek() ) != KErrNotFound )
+    if ( valid.Locate( aString[0] ) == KErrNotFound )
         {
-        input.Inc();
+        return EFalse;
         }
     
-    return !input.Remainder().Length();
+    // if vanitydialing feature is enabled, also capital A-Z are accepted after first character
+    if ( FeatureManager::FeatureSupported( KFeatureIdFfHomeScreenVanityDialing ) )
+        {
+        valid.Set( KPhoneVanityValidChars );
+        }
+    
+    // check rest of the string
+    for ( TInt i = 1; i < aString.Length(); i++ )
+        {
+        if ( valid.Locate( aString[i] ) == KErrNotFound )
+            {
+            return EFalse;
+            }
+        }
+    
+    return ETrue;
     }
 
 // End of File
--- a/phoneuis/dialer/src/cdialertoolbarcontainer.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cdialertoolbarcontainer.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -471,13 +471,13 @@
     keyEvent.iCode = 0; // key code is always 0 for key up and down events
     keyEvent.iScanCode = EStdKeyBackspace;
 
-    iCoeEnv->SimulateKeyEventL( keyEvent, EEventKeyDown );
+    TRAP_IGNORE( iCoeEnv->SimulateKeyEventL( keyEvent, EEventKeyDown ) );
 
     keyEvent.iCode = EKeyBackspace;
-    iCoeEnv->SimulateKeyEventL( keyEvent, EEventKey );
+    TRAP_IGNORE( iCoeEnv->SimulateKeyEventL( keyEvent, EEventKey ) );
     
     keyEvent.iCode = 0;
-    iCoeEnv->SimulateKeyEventL( keyEvent, EEventKeyUp );
+    TRAP_IGNORE( iCoeEnv->SimulateKeyEventL( keyEvent, EEventKeyUp ) );
     }
 
 // end of file
--- a/phoneuis/dialer/src/cdialervideocontainer.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cdialervideocontainer.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -27,9 +27,9 @@
 #include <AknUtils.h>
 #include <AknsDrawUtils.h>
 #include <AknLayoutFont.h>
-#include <aknlayout2def.h>
+#include <AknLayout2Def.h>
 #include <layoutmetadata.cdl.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <AknsBasicBackgroundControlContext.h>
 #include <AknsFrameBackgroundControlContext.h>
--- a/phoneuis/dialer/src/cdialingextensionobserver.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cdialingextensionobserver.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -154,7 +154,7 @@
     {
     if ( !iEikonEnvironment )
         {
-        iEikonEnvironment = CEikonEnv::Static();
+        iEikonEnvironment = CEikonEnv::Static(); // codescanner::performance::eikonenvstatic
         }
     
     if( iEikonEnvironment && iEikonEnvironment->EikAppUi() )
--- a/phoneuis/dialer/src/cvideodtmfdialer.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cvideodtmfdialer.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -106,7 +106,7 @@
 
 // Constructor
 CVideoDTMFDialer::CVideoDTMFDialer( ) :
-    iEikEnv( *CEikonEnv::Static() )
+    iEikEnv( *CEikonEnv::Static() ) // codescanner::performance::eikonenvstatic
     {
     // Empty    
     }
--- a/phoneuis/dialer/src/cvideodtmfdialerstub.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/dialer/src/cvideodtmfdialerstub.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -66,7 +66,7 @@
 
 // Constructor
 CVideoDTMFDialer::CVideoDTMFDialer( ) :
-    iEikEnv( *CEikonEnv::Static() )
+    iEikEnv( *CEikonEnv::Static() ) // codescanner::performance::eikonenvstatic
     {
     // Empty    
     }
--- a/phoneuis/easydialing/data/easydialingpluginresources.rss	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/data/easydialingpluginresources.rss	Thu Sep 09 18:09:57 2010 +0100
@@ -114,9 +114,13 @@
                 },
         MENU_ITEM
                 {
-                command = EEasyDialingVoiceCall;
-                cascade = r_easydialing_options_call_menu;
-                txt = text_number_call;
+                command = EEasyDialingVoiceCall; 
+                txt =   qtn_call_sub_voice;
+                },
+        MENU_ITEM
+                {
+                command = EEasyDialingVideoCall; 
+                txt =  qtn_call_sub_video;
                 },
         MENU_ITEM
                 {
@@ -142,30 +146,6 @@
     }
 
 
-// ---------------------------------------------------------
-//   
-//    r_easydialing_options_call_menu
-//    Number Acquisition view options call menu pane.
-//
-// ---------------------------------------------------------
-//
-RESOURCE MENU_PANE r_easydialing_options_call_menu
-    {
-    items=
-        {
-        MENU_ITEM
-            {
-            command = EEasyDialingVoiceCall; 
-            txt =   qtn_call_sub_voice;
-            },
-        MENU_ITEM
-            {
-            command = EEasyDialingVideoCall; 
-            txt =  qtn_call_sub_video;
-            }
-        };
-    }
-
 //----------------------------------------------------------------------------
 // r_easydialing_options_on_off_menu_item
 //
--- a/phoneuis/easydialing/group/easydialingplugin.mmp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/group/easydialingplugin.mmp	Thu Sep 09 18:09:57 2010 +0100
@@ -131,5 +131,6 @@
 // Libraries used for R&D purposes only
 DEBUGLIBRARY flogger.lib
 
+
 // End of File
 
--- a/phoneuis/easydialing/group/iconlist.txt	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/group/iconlist.txt	Thu Sep 09 18:09:57 2010 +0100
@@ -1,3 +1,5 @@
 -c8,8 qgn_indi_org_arrow_right.svg
 -c8,8 qgn_indi_org_arrow_left.svg
--c8,8 qgn_indi_org_arrow_down.svg
\ No newline at end of file
+-c8,8 qgn_indi_org_arrow_down.svg
+-c8,8 qgn_prop_nrtyp_sim_contact.svg
+-c8,8 qgn_prop_nrtyp_sdn.svg
\ No newline at end of file
--- a/phoneuis/easydialing/inc/dialingextensioninterface.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/inc/dialingextensioninterface.h	Thu Sep 09 18:09:57 2010 +0100
@@ -88,6 +88,29 @@
 class CDialingExtensionInterface : public CCoeControl
     {
 public:
+
+    
+    /**
+     * Enumeration for keyboard modes. Keyboardmode affect on how search string is matched 
+     * with contacts. 
+     */
+    typedef enum 
+        {
+    
+        /*
+         * ENormalKeyboard is used when there is no QWERTY keyboard, or non-hybrid mode
+         * QWERTY keyboard.
+         */
+        EDefaultKeyboard = 0,
+        
+        /*
+         * EHybridQwerty is used with hybrid mode QWERTY keyboard. Hybrid mode means
+         * that keys where a letter and number share a common key, short press to that key
+         * produces the number, not the letter.
+         */
+        EHybridQwerty
+        
+        } TKeyboardMode;
     
     /**
      * Creates an instance of plugin.
@@ -183,6 +206,13 @@
      */
     virtual TBool IsEnabled() const = 0;
     
+    
+    /**
+     * Set keyboard mode to be used in matching.
+     * @param  aMode    Mode to be used.
+     */
+    virtual void SetKeyboardMode( TKeyboardMode aMode ) = 0;
+    
 private: // data
 
     /** ECom instance identifier key. */
--- a/phoneuis/easydialing/inc/easydialingcontactdata.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/inc/easydialingcontactdata.h	Thu Sep 09 18:09:57 2010 +0100
@@ -76,6 +76,34 @@
     
     
     /**
+     * Gets SIM contact status of the contact
+     * @return  ETrue, if contact is a SIM contact, EFalse otherwise.
+     */
+    TBool IsSimContact();
+    
+    
+    /**
+     * Sets SIM contact status of the contact
+     * @param   aSim    Boolean value containing the status.
+     */
+    void SetSimContact(TBool aSim);
+    
+    
+    /**
+     * Gets Service Dialing Number status of the contact
+     * @return  ETrue, if contact is a SDN contact, EFalse otherwise.
+     */
+    TBool IsSdnContact();
+    
+    
+    /**
+     * Sets Service Dialing Number status of the contact
+     * @param   aSdn    Boolean value containing the status.
+     */
+    void SetSdnContact(TBool aSdn);
+    
+    
+    /**
      * Returns the loading status of the contact.
      * @return  ETrue, if contact data loading has completed, EFalse otherwise.
      */
@@ -86,7 +114,7 @@
      * Sets loading status to complete.
      */
     void LoadingComplete();
-
+    
     
     /**
      * Deletes the thumbnail image of the contact.
@@ -139,19 +167,25 @@
     
     /** Thumbnail bitmap. Owned. */
     CFbsBitmap* iThumbnail;
-
+    
     /** ETrue if this is a favourite contact. */
     TBool iFav;
-       
+    
+    /** ETrue if this is a normal SIM contact. */
+    TBool iSimContact;
+    
+    /** ETrue if this is a service number contact. */
+    TBool iSdnContact;
+    
     /** ETrue is asynchronous loading of contact data is complete.  */
     TBool iLoaded;
-       
+    
     /** ETrue if voice call is a possible action with this contact. */
     TBool iVoiceCallAvailable;
     
     /** ETrue if video call is a possible action with this contact. */
     TBool iVideoCallAvailable;
-
+    
     /** ETrue if SMS or MMS is a possible action with this contact. */
     TBool iUniEditorAvailable;
     };
--- a/phoneuis/easydialing/inc/easydialingcontactdatamanager.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/inc/easydialingcontactdatamanager.h	Thu Sep 09 18:09:57 2010 +0100
@@ -20,8 +20,9 @@
 #define __EASYDIALINGCONTACTDATAMANAGER_H__
 
 #include <MPbk2ImageOperationObservers.h>
+#include <MPbk2StoreConfigurationObserver.h>
 #include <MVPbkSingleContactOperationObserver.h>
-#include <MVPbkContactStoreObserver.h>
+#include <MVPbkContactStoreListObserver.h>
 #include <MVPbkOperationObserver.h>
 #include <MVPbkContactViewBase.h>
 #include <TPbk2ImageManagerParams.h>
@@ -30,6 +31,7 @@
 #include "easydialingcontactdata.h"
 
 // FORWARD DECLARATIONS
+class CPbk2StoreConfiguration;
 class CVPbkContactManager;
 class MContactDataManagerObserver;
 class MVPbkFieldType;
@@ -45,15 +47,16 @@
         public CBase,
         public MPbk2ImageGetObserver,
         public MVPbkSingleContactOperationObserver,
-        public MVPbkContactStoreObserver,
+        public MVPbkContactStoreListObserver,
         public MVPbkOperationErrorObserver,
         public MVPbkOperationResultObserver<MVPbkContactViewBase*>,
+        public MPbk2StoreConfigurationObserver,
         public MPbkGlobalSettingObserver,
         public MVPbkContactViewObserver
         
     {
 public:
-        
+    
     /**
      * Contact name display order 
      */
@@ -62,26 +65,32 @@
         EFirstnameLastname,
         ELastnameFirstname
         };
-        
-public:
+    
+public: // constructor and destructor
     
     /**
-    * Constructor.
+    * Two-phased constructor
     */
-    CEasyDialingContactDataManager(CVPbkContactManager* aContactManager);
-    
+    static CEasyDialingContactDataManager* NewL();
     
     /**
      * Destructor.
      */
     ~CEasyDialingContactDataManager();
     
+private: // constructors
+    /**
+    * Constructor.
+    */
+    CEasyDialingContactDataManager();
+    
     
     /**
      * Second phase constructor of the class.
      */
     void ConstructL();
     
+public: // new methods
     /**
     * Sets the observer. Observer is notified when thumbnail loading is complete
     * @param aObserver
@@ -89,6 +98,11 @@
     void SetObserver(MContactDataManagerObserver* aObserver);
     
     /**
+     * Gets a handle to the VPbk contact manager
+     */
+    CVPbkContactManager& ContactManager();
+    
+    /**
     * Sets the size of the thumbnails. If the loaded thumbnail is larger than
     * the set size, thumnail is scaled to the size. If the set size is different
     * from the old one, deletes all loaded thumbnails, which causes them to be
@@ -108,14 +122,39 @@
     HBufC* GetThumbnailIdL( MVPbkContactLink* aContact, TBool aMatchThumbnail, TBool aFav );
     
     /**
+     * Gets internal index for a contact item with the given internal ID.
+     */
+    TInt IndexForId( const TDesC& aId ) const;
+    
+    /**
     * Gets the thumbnail for a contact item. If thumbnail is not loaded, starts
     * loading it.
-    * @param aContact Contact link
+    * @param aIndex Internal index for the contact, obtained with IndexForId
     * @param aThumbnail Outparam. Contact thumbnail. NULL if contact doesn't have thumbnail
-    * @param aFav Outparam. Favourite status
     * @return true if contact data has been loaded
     */
-    TBool GetThumbnailAndFav(const TDesC& aId, CFbsBitmap*& aThumbnail, TBool& aFav);
+    TBool GetThumbnail( TInt aIndex, CFbsBitmap*& aThumbnail );
+    
+    /**
+     * Checks if contact is a favorite contact
+     * @param   aIndex  Internal index fo the contact, obtained with IndexForId
+     * @return  ETrue if contact is a favorite contact
+     */
+    TBool IsFav( TInt aIndex ) const;
+    
+    /**
+     * Checks if contact is a SIM contact
+     * @param   aIndex  Internal index fo the contact, obtained with IndexForId
+     * @return  ETrue if contact is a SIM contact
+     */
+    TBool IsSimContact( TInt aIndex ) const;
+    
+    /**
+     * Checks if contact is a service number contact
+     * @param   aIndex  Internal index fo the contact, obtained with IndexForId
+     * @return  ETrue if contact is a service number contact
+     */
+    TBool IsSdnContact( TInt aIndex ) const;
     
     /**
     * Deletes all loaded thumbnails and cancel asynchronous operations.
@@ -201,6 +240,13 @@
     TNameOrder NameOrder();
 
     /**
+     * Get URIs of the contact stores which are currently shown in Phonebook.
+     * @param   aUris   On return, contains heap descriptors identifying the contact
+     *                  stores which are active. Ownership of the descriptors is given.
+     */
+    void GetCurrentStoreUrisL( RPointerArray<TDesC>& aUris );
+    
+    /**
      * Pause the loading of contact data. This is used to make sure listbox is responsive
      * and smooth during panning and flicking.
      * @param aPause Pause on/off
@@ -223,6 +269,19 @@
 public:
     
     /**
+     * From MPbk2StoreConfigurationObserver
+     */
+    void ConfigurationChanged();
+
+    /**
+     * From MPbk2StoreConfigurationObserver
+     */
+    void ConfigurationChangedComplete();
+    
+
+public:
+    
+    /**
      * From MPbkGlobalSettingObserver.
      */
     void SettingChangedL( MPbkGlobalSetting::TPbkGlobalSetting aKey );
@@ -246,25 +305,27 @@
 
 private:
     
-    
     /**
-     * From MVPbkContactStoreObserver.
+     * From MVPbkContactStoreListObserver.
      */
     void StoreReady( MVPbkContactStore& aContactStore );
-
-
+    
     /**
-     * From MVPbkContactStoreObserver.
+     * From MVPbkContactStoreListObserver.
      */
     void StoreUnavailable( MVPbkContactStore& aContactStore, TInt aReason );
     
+    /**
+     * From MVPbkContactStoreListObserver.
+     */
+    void HandleStoreEventL( MVPbkContactStore& aContactStore, 
+                            TVPbkContactStoreEvent aStoreEvent );
     
     /**
-     * From MVPbkContactStoreObserver.
+     * From MVPbkContactStoreListObserver.
      */
-    void HandleStoreEventL( MVPbkContactStore& aContactStore, 
-            TVPbkContactStoreEvent aStoreEvent );
-
+    void OpenComplete();
+    
 private:
     /**
      * From MVPbkOperationErrorObserver.
@@ -327,8 +388,15 @@
     void InformObserver();
     
     void UpdateNameOrderL();
+    
+    void SetupFavStoreSearchedL();
+    
+    void SetStoreFlagsForContact( CEasyDialingContactData* aContactData ) const;
 
 private:
+    /** Phonebook store configuration. Owned. */
+    CPbk2StoreConfiguration* iPbkStoreConfiguration;
+    
     /** Array that contains all loaded contact data. Owned. */
     RPointerArray<CEasyDialingContactData> iContactDataArray;
 
@@ -350,7 +418,7 @@
     /** Contact item for which a thumbnail is being loaded. Owned. */
     MVPbkStoreContact* iStoreContact;
     
-    /** Virtual phonebook contact manager. Not owned. */
+    /** Virtual phonebook contact manager. Owned. */
     CVPbkContactManager* iContactManager;
 
     /** Contact data manager observer. Not owned. */
@@ -362,9 +430,6 @@
     /** Virtual phonebook operation handle. Owned. */
     MVPbkContactOperationBase* iContactOperation;
 
-    /** Default contact store. Not owned. */
-    MVPbkContactStore* iContactStore;
-    
     /** Variable which tells either to show or hide contact thumbnails. */
     TBool iContactThumbnailSetting;
     
@@ -377,6 +442,9 @@
     /** Favourites view is ready to be used. */
     TBool iFavsViewReady;
     
+    /** Contact store containing favourite contacts is configured to be searched. */
+    TBool iFavStoreSearched;
+    
     /** Virtual phonebook operation handle for getting favourites. Owned. */
     MVPbkContactOperationBase* iFavsOperation;
     
--- a/phoneuis/easydialing/inc/easydialinglistbox.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/inc/easydialinglistbox.h	Thu Sep 09 18:09:57 2010 +0100
@@ -149,7 +149,7 @@
     
     /**
      * Return contact link of current item packaged in HBufC object. If no item is
-	 * selected in listbox returns NULL.
+     * selected in listbox returns NULL.
      * @return  Contact link. Ownership is transferred to the caller.
      */
     HBufC8* CurrentContactLinkL();
--- a/phoneuis/easydialing/inc/easydialinglistboxdata.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/inc/easydialinglistboxdata.h	Thu Sep 09 18:09:57 2010 +0100
@@ -155,15 +155,15 @@
         const TExtendedColors& aColors ) const;
     
     /**
-     * Draws the Contact Thumbnail Icon if any else draws the dummy contact thumbnail.
+     * Draws the Contact Thumbnail Icon if any, else draws the dummy contact thumbnail.
      * @param   aGc Graphics context.
      * @param   aBoundingBox    Rectangle containing bounds for contact thumbnail.
-     * @param   aDescId Descriptor containing contact id.
+     * @param   aContactIndex   Contact index for the contact data manager
      */
-    TBool DrawContactThumbnail(
+    void DrawContactThumbnail(
             CWindowGc& aGc,
             TRect aBoundingBox,
-            TPtrC aDescId) const;
+            TInt aContactIndex ) const;
     
     /**
      * Draws the Action Menu.
@@ -185,6 +185,21 @@
             TRect aNameRectUnMirrored,
             TRect aEffectiveRect) const;
     
+    /**
+     * Draws the SIM or Service Number icon. Takes the name rect as a parameter. Name rect
+     * must be unmirrored, because the mirroring is done as the last thing
+     * before drawing.
+     * @param   aIcon The icon to be drawn
+     * @param   aGc Graphics context.
+     * @param   aNameRectUnMirrored Name rect, after which the icon is drawn
+     * @param   aEffectiveRect The whole listbox item rect. Used for mirroring.
+     */
+    void DrawSimIcon(
+            CGulIcon& aIcon,
+            CWindowGc& aGc, 
+            TRect aNameRectUnMirrored,
+            TRect aEffectiveRect) const;
+    
 private:
     
     /** Control environment */
@@ -214,6 +229,12 @@
     /** Favourite icon. Owned. */
     CGulIcon* iFavouriteIcon;
     
+    /** SIM contact icon. Owned. */
+    CGulIcon* iSimContactIcon;
+    
+    /** Service contact icon. Owned. */
+    CGulIcon* iSdnContactIcon;
+    
     /** Pointer to listbox. Not owned. */
     CEasyDialingListBox* iControl;
     };
--- a/phoneuis/easydialing/inc/easydialingplugin.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/inc/easydialingplugin.h	Thu Sep 09 18:09:57 2010 +0100
@@ -58,8 +58,6 @@
 
 class CPSRequestHandler;
 class CPsQuery;
-class CVPbkContactStoreUriArray;
-class CVPbkContactManager;
 class CEasyDialingListBox;
 class MVPbkContactLink;
 class CEasyDialingCenrepListener;
@@ -96,7 +94,7 @@
     * Destructor. 
     */
     virtual ~CEasyDialingPlugin();
-
+    
 public: // from CCoeControl 
 
     /**
@@ -118,7 +116,7 @@
     * From CCoeControl
     */
     void MakeVisible( TBool aVisible );
- 
+    
     /**
     * From CCoeControl
     */
@@ -213,6 +211,12 @@
      */
     TBool IsEnabled() const;
 
+    /**
+     * Tells if extension is currently enabled from settings.
+     * @return  ETrue if extension is enabled, EFalse otherwise.
+     */
+    void SetKeyboardMode( TKeyboardMode aMode );
+    
 public:
 
     /**
@@ -224,7 +228,7 @@
     * From MEasyDialingCenrepListenerObserver.
     */
     void EasyDialingContactThumbnailsSettingsChanged( TInt aThumbnailSettingValue );
-        
+    
     /**
     * From MContactDataManagerObserver.
     */
@@ -241,6 +245,11 @@
     void FavouritesChanged();
     
     /**
+    * From MContactDataManagerObserver.
+    */
+    void StoreConfigurationChanged();
+    
+    /**
     * From MEDContactorObserver.
     */
     void InformContactorEvent( MEDContactorObserver::TEvent aEvent );
@@ -279,6 +288,8 @@
     
     void InitPredictiveContactSearchL();
     
+    void SetupPcsSettingsL();
+    
     void SetSortOrderL( CEasyDialingContactDataManager::TNameOrder aNameOrder );
     
     /**
@@ -446,12 +457,6 @@
     /** Array of used data stores. Owned. */
     RPointerArray<TDesC> iContactDataStores;
     
-    /** Contact store array. Owned. */
-    CVPbkContactStoreUriArray* iContactStoreUriArray;
-    
-    /** Contact manager handle. Owned. */
-    CVPbkContactManager* iContactManager;
-	
     /** Search result field index for first name field. */
     TInt iFirstNamePCSIndex;
     
@@ -517,7 +522,7 @@
     
     /** Is virtual keyboard currently open or not.*/
     TBool iVirtualKeyboardOpen;
-
+    
     /** First line of info text shown when number entry is empty. Owned. */
     HBufC* iInfoLabelTextLine1;
     
@@ -529,6 +534,12 @@
     
     /** Label for showing second line of info text when number entry is empty. Owned. */
     CEikLabel* iInfoLabelLine2;
+    
+    /** Keyboard mode to be used in matching. */
+    TKeyboardMode iKeyboardMode;
+	
+	/** 'Flag' if contact have been long tapped, so ECE launcher opens. Long tap contact = True, default = False */
+    TBool iLongTapped;
 };
 
 
--- a/phoneuis/easydialing/inc/mcontactdatamanagerobserver.h	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/inc/mcontactdatamanagerobserver.h	Thu Sep 09 18:09:57 2010 +0100
@@ -30,6 +30,8 @@
     virtual void NameOrderChanged() = 0;
     
     virtual void FavouritesChanged() = 0;
+    
+    virtual void StoreConfigurationChanged() = 0;
     };
 
 #endif //__MCONTACTDATAMANAGEROBSERVER_H__
--- a/phoneuis/easydialing/src/easydialingcontactdata.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/src/easydialingcontactdata.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -26,7 +26,7 @@
 // ---------------------------------------------------------------------------
 //
 CEasyDialingContactData::CEasyDialingContactData(MVPbkContactLink* aContactLink)
-        : iContactLink(aContactLink), iThumbnail(NULL),iFav(EFalse), iLoaded(EFalse)
+        : iContactLink(aContactLink), iThumbnail(NULL), iFav(EFalse), iLoaded(EFalse)
     {
     }
 
@@ -64,10 +64,7 @@
 //
 void CEasyDialingContactData::SetThumbnail(CFbsBitmap* aThumbnail)
     {
-    if (iThumbnail)
-        {
-        delete iThumbnail;
-        }
+    delete iThumbnail;
     iThumbnail = aThumbnail;
     }
 
@@ -90,6 +87,42 @@
     }
 
 // ---------------------------------------------------------------------------
+// CEasyDialingContactData::IsSimContact
+// ---------------------------------------------------------------------------
+//
+TBool CEasyDialingContactData::IsSimContact()
+    {
+    return iSimContact;
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactData::SetSimContact
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactData::SetSimContact(TBool aSim)
+    {
+    iSimContact = aSim;
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactData::IsSdnContact
+// ---------------------------------------------------------------------------
+//
+TBool CEasyDialingContactData::IsSdnContact()
+    {
+    return iSdnContact;
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactData::SetSimContact
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactData::SetSdnContact(TBool aSdn)
+    {
+    iSdnContact = aSdn;
+    }
+
+// ---------------------------------------------------------------------------
 // CEasyDialingContactData::IsLoaded
 // ---------------------------------------------------------------------------
 //
@@ -179,7 +212,4 @@
     iUniEditorAvailable = aVailable;
     }
 
-
-
-
-
+// end of file
--- a/phoneuis/easydialing/src/easydialingcontactdatamanager.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/src/easydialingcontactdatamanager.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -21,6 +21,8 @@
 #include <CVPbkContactManager.h>
 #include <MVPbkContactStoreList.h>
 #include <MVPbkContactLink.h>
+#include <CPbk2StoreConfiguration.h>
+#include <CVPbkContactStoreUriArray.h>
 #include <VPbkContactStoreUris.h>
 #include <TVPbkContactStoreUriPtr.h>
 #include <CVPbkTopContactManager.h>
@@ -28,22 +30,20 @@
 #include <TVPbkStoreContactAnalyzer.h>
 #include <MVPbkFieldType.h>
 #include <VPbkEng.rsg>
-
 #include <MVPbkContactViewBase.h>
 #include <MVPbkBaseContactFieldCollection.h>
 #include <MVPbkContactFieldTextData.h>
 #include <MVPbkContactFieldData.h>
-
 #include <CVPbkContactLinkArray.h>
 #include <MVPbkContactLink.h>
 #include <MVPbkContactOperationBase.h>
 #include <MVPbkOperationObserver.h>
-#include <MVPbkContactStore.h>          // MVPbkContactStore
+#include <MVPbkContactStore.h>
+#include <MVPbkContactStoreProperties.h>
 #include <MVPbkStoreContact.h>
+#include <PbkGlobalSettingFactory.h>
 #include <centralrepository.h>
 
-#include <PbkGlobalSettingFactory.h>
-
 #include "easydialingcontactdata.h"
 #include "easydialingcontactdatamanager.h"
 #include "easydialingutils.h"
@@ -52,12 +52,30 @@
 #include "easydialinglogger.h"
 
 // ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::NewL
+// ---------------------------------------------------------------------------
+//
+CEasyDialingContactDataManager* CEasyDialingContactDataManager::NewL()
+    {
+    CEasyDialingContactDataManager* self = 
+            new ( ELeave ) CEasyDialingContactDataManager();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::CEasyDialingContactDataManager
 // ---------------------------------------------------------------------------
 //
-CEasyDialingContactDataManager::CEasyDialingContactDataManager(CVPbkContactManager* aContactManager)
-        : iImageOperation(NULL), iContactManager(aContactManager), iContactOperation(NULL),
-          iContactThumbnailSetting(ETrue), iStoreReady(EFalse)
+CEasyDialingContactDataManager::CEasyDialingContactDataManager()
+        : iPbkStoreConfiguration(NULL), 
+          iImageOperation(NULL), 
+          iContactManager(NULL), 
+          iContactOperation(NULL),
+          iContactThumbnailSetting(ETrue), 
+          iStoreReady(EFalse)
     {
     }
 
@@ -76,11 +94,19 @@
     delete iImageOperation;
     delete iContactOperation;
     delete iFavsView;
-    if (iContactStore)
+
+    if ( iContactManager )
         {
-        iContactStore->Close( *this);
+        TRAP_IGNORE( iContactManager->ContactStoresL().CloseAll( *this ) );
         }
+    delete iContactManager;
     
+    if ( iPbkStoreConfiguration )
+        {
+        iPbkStoreConfiguration->RemoveObserver( *this );
+        }
+    delete iPbkStoreConfiguration;
+
     if ( iPbkSettings )
         {
         iPbkSettings->Close();
@@ -94,31 +120,43 @@
 //
 void CEasyDialingContactDataManager::ConstructL()
     {
+    // Create contact store configuration handler
+    iPbkStoreConfiguration = CPbk2StoreConfiguration::NewL();
+    iPbkStoreConfiguration->AddObserverL( *this );
+    
+    // Create manager for all the supported contact stores
+    CVPbkContactStoreUriArray* supportedStores = 
+            iPbkStoreConfiguration->SupportedStoreConfigurationL();
+    CleanupStack::PushL( supportedStores );
+    iContactManager = CVPbkContactManager::NewL( *supportedStores );
+    CleanupStack::PopAndDestroy( supportedStores );
+    
+    // Open the stores and start observing them
+    iContactManager->ContactStoresL().OpenAllL( *this );
+
     iImageManager = CPbk2ImageManager::NewL(*iContactManager);
     
-    TVPbkContactStoreUriPtr uri( VPbkContactStoreUris::DefaultCntDbUri() );
-    iContactStore = iContactManager->ContactStoresL().Find( uri );
-
     iVPbkTopContactManager = CVPbkTopContactManager::NewL( *iContactManager );
 
     iImageManagerParams.iFlags = TPbk2ImageManagerParams::EScaleImage | TPbk2ImageManagerParams::EKeepAspectRatio;
     iThumbnailFieldType = iContactManager->FieldTypes().Find( R_VPBK_FIELD_TYPE_THUMBNAILPIC );
 
-    // Open the store
-    iContactStore->OpenL( *this );
-    
     // Read easydialing setting from cenrep.
     CRepository* cenrep = CRepository::NewL( KCRUidEasyDialSettings );
     CleanupStack::PushL( cenrep );
     User::LeaveIfError( cenrep->Get( KEasyDialingContactThumbnails, iContactThumbnailSetting ) );
     CleanupStack::PopAndDestroy( cenrep );
     
+    // Start observing Phoenbook setting for the name order
     iPbkSettings = PbkGlobalSettingFactory::CreatePersistentSettingL();
     iPbkSettings->ConnectL( MPbkGlobalSetting::EGeneralSettingCategory );
     iPbkSettings->RegisterObserverL( this );
 
     // Get name order from Phonebook settings
     UpdateNameOrderL();
+    
+    // Check if store with favourites is configured to be searched.
+    SetupFavStoreSearchedL();
     }
 
 // ---------------------------------------------------------------------------
@@ -131,6 +169,15 @@
     }
 
 // ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::ContactManager
+// ---------------------------------------------------------------------------
+//
+CVPbkContactManager& CEasyDialingContactDataManager::ContactManager()
+    {
+    return *iContactManager;
+    }
+
+// ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::SetThumbnailSize
 // ---------------------------------------------------------------------------
 //
@@ -161,12 +208,13 @@
     if (newIndex == KErrNotFound)
         {
         MVPbkContactLink* newLink = aContact->CloneLC();
-        CEasyDialingContactData *newThumbnail = new (ELeave) CEasyDialingContactData(newLink);
+        CEasyDialingContactData* newData = new (ELeave) CEasyDialingContactData(newLink);
         CleanupStack::Pop(); // newLink
         newIndex = iContactDataArray.Count();
-        CleanupStack::PushL(newThumbnail);
-        iContactDataArray.AppendL(newThumbnail);
-        CleanupStack::Pop(newThumbnail);
+        CleanupStack::PushL(newData);
+        iContactDataArray.AppendL(newData);
+        CleanupStack::Pop(newData);
+        SetStoreFlagsForContact(newData);
         }
     
     iContactDataArray[ newIndex ]->SetFav( aFav );
@@ -179,33 +227,41 @@
     }
 
 // ---------------------------------------------------------------------------
-// CEasyDialingContactDataManager::GetThumbnailAndFav 
+// CEasyDialingContactDataManager::IndexForId 
 // ---------------------------------------------------------------------------
 //
-TBool CEasyDialingContactDataManager::GetThumbnailAndFav(const TDesC& aId, CFbsBitmap*& aThumbnail, TBool& aFav)
+TInt CEasyDialingContactDataManager::IndexForId( const TDesC& aId ) const
     {
-    LOGSTRING("CEasyDialingContactDataManager: GetThumbnailAndFav");
     TUint idVal(0);
     TLex lex(aId);
     lex.Val(idVal, EHex);
+    return idVal;
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::GetThumbnail 
+// ---------------------------------------------------------------------------
+//
+TBool CEasyDialingContactDataManager::GetThumbnail( TInt aIndex, CFbsBitmap*& aThumbnail )
+    {
+    LOGSTRING("CEasyDialingContactDataManager: GetThumbnail");
     
     TBool retVal;
     
-    CEasyDialingContactData* thumbnail = iContactDataArray[idVal];
-    aFav = thumbnail->Fav();
-    if (thumbnail->IsLoaded())
+    CEasyDialingContactData* contactData = iContactDataArray[aIndex];
+    if ( contactData->IsLoaded() )
         {
-        aThumbnail = thumbnail->Thumbnail();
+        aThumbnail = contactData->Thumbnail();
         retVal = ETrue;
         }
     else
         {
         aThumbnail = NULL;
         retVal = EFalse;
-        if (iWaitingContacts.Find(idVal) == KErrNotFound)
+        if (iWaitingContacts.Find(aIndex) == KErrNotFound)
             {
-            LOGSTRING1("iWaitingContacts.Append %d", idVal);
-            iWaitingContacts.Append(idVal);
+            LOGSTRING1("iWaitingContacts.Append %d", aIndex);
+            iWaitingContacts.Append(aIndex);
             TRAPD(err, LoadNextContactDataL());
             if (err)
                 {
@@ -213,11 +269,41 @@
                 }
             }
         }    
-    LOGSTRING("CEasyDialingContactDataManager: GetThumbnailAndFav Exit");
+    LOGSTRING("CEasyDialingContactDataManager: GetThumbnail Exit");
     return retVal;
     }
 
 // ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::IsFav
+// ---------------------------------------------------------------------------
+//
+TBool CEasyDialingContactDataManager::IsFav( TInt aIndex ) const
+    {
+    CEasyDialingContactData* contactData = iContactDataArray[aIndex];
+    return contactData->Fav();
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::IsSimContact
+// ---------------------------------------------------------------------------
+//
+TBool CEasyDialingContactDataManager::IsSimContact( TInt aIndex ) const
+    {
+    CEasyDialingContactData* contactData = iContactDataArray[aIndex];
+    return contactData->IsSimContact();
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::IsSdnContact
+// ---------------------------------------------------------------------------
+//
+TBool CEasyDialingContactDataManager::IsSdnContact( TInt aIndex ) const
+    {
+    CEasyDialingContactData* contactData = iContactDataArray[aIndex];
+    return contactData->IsSdnContact();
+    }
+
+// ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::IsFavL
 // ---------------------------------------------------------------------------
 //
@@ -239,7 +325,7 @@
 //
 TInt CEasyDialingContactDataManager::NumberOfFavsL()
     {
-    if ( iFavsView && iFavsViewReady )
+    if ( iFavsView && iFavsViewReady && iFavStoreSearched )
         {
         return iFavsView->ContactCountL();
         }
@@ -255,7 +341,7 @@
 //
 MVPbkContactLink* CEasyDialingContactDataManager::FavLinkLC( TInt aIndex )
     {
-    if ( !iFavsView || !iFavsViewReady )
+    if ( !iFavsView || !iFavsViewReady || !iFavStoreSearched )
         {
         // LC function should not return normally unless it has actually
         // put something to cleanup stack
@@ -318,6 +404,23 @@
     }
 
 // ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::GetCurrentStoreUrisL
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::GetCurrentStoreUrisL( RPointerArray<TDesC>& aUris )
+    {
+    CVPbkContactStoreUriArray* storeUris = iPbkStoreConfiguration->CurrentConfigurationL();
+    CleanupStack::PushL( storeUris );
+    for ( TInt i = 0 ; i < storeUris->Count() ; ++i )
+        {
+        HBufC* dbUri = (*storeUris)[i].UriDes().AllocLC();
+        aUris.AppendL( dbUri );
+        CleanupStack::Pop( dbUri );
+        }
+    CleanupStack::PopAndDestroy( storeUris );
+    }
+
+// ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::Pause
 // ---------------------------------------------------------------------------
 //
@@ -388,17 +491,21 @@
     if ( !iImageOperation && !iContactOperation && iWaitingContacts.Count() && iStoreReady && !iPause )
         {
         // first we need to load the contact item
-        CEasyDialingContactData* tn = iContactDataArray[iWaitingContacts[0]];
-        iContactOperation = iContactManager->RetrieveContactL( *(tn->ContactLink()), *this);
-
-        if (!iContactOperation)
+        const TInt index( iWaitingContacts[0] );
+        
+        if ( index >= 0 && index < iContactDataArray.Count() )
             {
-            tn->LoadingComplete();
-            RDebug::Print(_L("iWaitingContacts.Remove %d"), iWaitingContacts[0]);            
-            iWaitingContacts.Remove(0);
-            LoadNextContactDataL();
+            CEasyDialingContactData* data = iContactDataArray[index];
+            iContactOperation = iContactManager->RetrieveContactL( *(data->ContactLink()), *this);
+            if (!iContactOperation)
+                {
+                data->LoadingComplete();
+                RDebug::Print(_L("iWaitingContacts.Remove %d"), iWaitingContacts[0]);
+                iWaitingContacts.Remove(0);
+                LoadNextContactDataL();
+                }
             }
-        }          
+        }
     LOGSTRING("CEasyDialingContactDataManager: LoadNextContactDataL Exit");
     }
 
@@ -410,9 +517,14 @@
 void CEasyDialingContactDataManager::Pbk2ImageGetComplete(MPbk2ImageOperation& aOperation, CFbsBitmap* aBitmap)
     {
     LOGSTRING("CEasyDialingContactDataManager: Pbk2ImageGetComplete");
-    TInt index = iWaitingContacts[0];
-    LOGSTRING1("iWaitingContacts.Remove %d", iWaitingContacts[0]);            
-    iWaitingContacts.Remove(0);
+    TInt index( KErrNotFound );
+    if ( iWaitingContacts.Count() > 0 )
+        {
+        index = iWaitingContacts[0];
+        LOGSTRING1("iWaitingContacts.Remove %d", iWaitingContacts[0]);
+        iWaitingContacts.Remove(0);
+        }
+    
     delete &aOperation;
     iImageOperation = NULL;
     delete iStoreContact;
@@ -437,6 +549,30 @@
     Pbk2ImageGetComplete(aOperation, NULL);
     }
 
+// -----------------------------------------------------------------------------
+// ConfigurationChanged
+// From MPbk2StoreConfigurationObserver
+// Called when contact store configuration changes
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::ConfigurationChanged()
+    {
+    TRAP_IGNORE( SetupFavStoreSearchedL() );
+    iObserver->StoreConfigurationChanged();
+    }
+
+// -----------------------------------------------------------------------------
+// ConfigurationChangedComplete
+// From MPbk2StoreConfigurationObserver
+// Called when contact store configuration change has been informed to all
+// observers
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::ConfigurationChangedComplete()
+    {
+    // no implementation needed
+    }
+
 // ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::SettingChangedL
 // From MPbkGlobalSettingObserver
@@ -509,13 +645,15 @@
 void CEasyDialingContactDataManager::DoHandleImageGetCompleteL(CFbsBitmap* aBitmap, TInt aIndex)
     {
     LOGSTRING("CEasyDialingContactDataManager: DoHandleImageGetCompleteL");
-    CEasyDialingContactData *tn = iContactDataArray[aIndex];
-    tn->LoadingComplete();
-    if (aBitmap)
+    if ( aIndex >= 0 && aIndex < iContactDataArray.Count() ) 
         {
-        tn->SetThumbnail(aBitmap);
+        CEasyDialingContactData* data = iContactDataArray[aIndex];
+        data->LoadingComplete();
+        if (aBitmap)
+            {
+            data->SetThumbnail(aBitmap);
+            }
         }
-    
     LoadNextContactDataL();
     InformObserver();
     LOGSTRING("CEasyDialingContactDataManager: DoHandleImageGetCompleteL Exit");
@@ -556,7 +694,7 @@
         }
     
     LOGSTRING1("CEasyDialingContactDataManager: VoiceCallAvailable returns %d", ret);
-    return ret;    
+    return ret;
     }
 
 
@@ -577,7 +715,7 @@
         }
     
     LOGSTRING1("CEasyDialingContactDataManager: VideoCallAvailable returns %d", ret);
-    return ret;    
+    return ret;
     }
 
 
@@ -598,7 +736,7 @@
         }
     
     LOGSTRING1("CEasyDialingContactDataManager: UniEditorAvailable returns %d", ret);
-    return ret;    
+    return ret;
     }
 
 
@@ -647,29 +785,20 @@
         iObserver->AllContactDataLoaded();
         }
     }
-    	
+
 // ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::StoreReady
-// from MVPbkContactStoreObserver
-// Called when the contact store is ready to be used, signals
-// the next engine state.
+// from MVPbkContactStoreListObserver
 // @param aContactStore The store that is ready.
 // ---------------------------------------------------------------------------
 //
-
 void CEasyDialingContactDataManager::StoreReady( MVPbkContactStore& /*aContactStore*/ )
     {
-    // next open the favourites view
-    TRAPD( err, iVPbkTopContactManager->GetTopContactsViewL( *this, *this ) );
-    if ( err )
-        {
-        HandleError( err );
-        }
     }
-    
+
 // ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::StoreUnavailable
-// from MVPbkContactStoreObserver
+// from MVPbkContactStoreListObserver
 // Called when a contact store becomes unavailable.
 // @param aContactStore The store that became unavailable.
 // @param aReason The reason why the store is unavailable.
@@ -679,27 +808,46 @@
 void CEasyDialingContactDataManager::StoreUnavailable( MVPbkContactStore& /*aContactStore*/,
         TInt /*aReason*/ )
     {
-    // Opening main contact database failed. Easydialing can operate without
-    // it, but thumbnails and favourite stars can't be shown, and availability
-    // of action menu items can't be checked.
+    // Opening some contact database failed. Easydialing can operate without
+    // any database connections, but thumbnails and favourite stars can't be 
+    // shown, and availability of action menu items can't be checked.
     //   Of course, if easydialing can't open the database, probably PCSServer
     // can't open it either...
     }
 
 // ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::HandleStoreEventL
-// from MVPbkContactStoreObserver
+// from MVPbkContactStoreListObserver
 // Called when changes occur in the contact store.
-// IGNORED.
+// IGNORED because ED plugin reacts to contact modifications by listening
+// to PCS cache update events.
 // @param aContactStore A store whose event it is.
 // @param aStoreEvent The event that has occurred.
 // ---------------------------------------------------------------------------
 //
-void CEasyDialingContactDataManager::HandleStoreEventL(MVPbkContactStore& /*aContactStore*/,
-        TVPbkContactStoreEvent /*aStoreEvent*/)
+void CEasyDialingContactDataManager::HandleStoreEventL( MVPbkContactStore& /*aContactStore*/,
+        TVPbkContactStoreEvent /*aStoreEvent*/ )
     {
     }
 
+// -----------------------------------------------------------------------------
+// CEasyDialingPlugin::OpenComplete
+// From MVPbkContactStoreListObserver.
+// Called when all contact stores are ready to be used, signals
+// the next engine state.
+//
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::OpenComplete()
+    {
+    // next open the favourites view
+    TRAPD( err, iVPbkTopContactManager->GetTopContactsViewL( *this, *this ) );
+    if ( err )
+        {
+        HandleError( err );
+        }
+    }
+
 // ---------------------------------------------------------------------------
 // CEasyDialingContactDataManager::VPbkOperationFailed
 // ---------------------------------------------------------------------------
@@ -711,7 +859,7 @@
     // Loading list of favourite contacts failed.
     // Continue as if none of the contacts are favourited.
     delete iFavsOperation;
-    iFavsOperation = NULL;        
+    iFavsOperation = NULL;
     delete iFavsView;
     iFavsView = NULL;
     iFavsViewReady = EFalse;
@@ -843,10 +991,9 @@
         // Find out the available communication methods for the contact.
         GetAvailableServicesL( aContact, aIndex );
         
-                
         // Next initiate async thumbnail get operation.
         
-        if(GetContactThumbnailSetting()) // reads the iContactThumbnailSetting value if it is false we dont fetch images
+        if (GetContactThumbnailSetting()) // reads the iContactThumbnailSetting value if it is false we dont fetch images
             {
             if (iImageManager->HasImage(*iStoreContact, *iThumbnailFieldType))
                 {
@@ -861,7 +1008,7 @@
             {
             CEasyDialingContactData *tn = iContactDataArray[aIndex];
             tn->LoadingComplete();
-            LOGSTRING1("iWaitingContacts.Remove %d", iWaitingContacts[0]);            
+            LOGSTRING1("iWaitingContacts.Remove %d", iWaitingContacts[0]);
             iWaitingContacts.Remove(0);
             delete iStoreContact;
             iStoreContact = NULL;
@@ -872,9 +1019,9 @@
     else
         {
         // Opening contact failed. Mark contact data loaded, so it's not opened again.
-        CEasyDialingContactData *tn = iContactDataArray[aIndex];
-        tn->LoadingComplete();
-        LOGSTRING1("iWaitingContacts.Remove %d", iWaitingContacts[0]);            
+        CEasyDialingContactData* data = iContactDataArray[aIndex];
+        data->LoadingComplete();
+        LOGSTRING1("iWaitingContacts.Remove %d", iWaitingContacts[0]);
         iWaitingContacts.Remove(0);
         LoadNextContactDataL();
         InformObserver();
@@ -924,13 +1071,17 @@
     LOGSTRING("CEasyDialingContactDataManager: VPbkSingleContactOperationComplete");
     delete &aOperation;
     iContactOperation = NULL;
-    TInt index = iWaitingContacts[0];
-    LOGSTRING1("VPbkSingleContactOperationComplete, Index=%d", index);
-    TRAPD(err, DoHandleContactOperationCompleteL(aContact, index));
-    if (err)
+    if ( iWaitingContacts.Count() > 0 )
         {
-        HandleError(err);
+        TInt index = iWaitingContacts[0];
+        LOGSTRING1("VPbkSingleContactOperationComplete, Index=%d", index);
+        TRAPD(err, DoHandleContactOperationCompleteL(aContact, index));
+        if ( err )
+            {
+            HandleError(err);
+            }
         }
+    
     LOGSTRING("CEasyDialingContactDataManager: VPbkSingleContactOperationComplete Exit");
     }
 
@@ -999,6 +1150,38 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::SetupFavStoreSearchedL
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::SetupFavStoreSearchedL()
+    {
+    // Check if favourite contact store (i.e. the default contact store) is one
+    // of the stores configured to be searched.
+    CVPbkContactStoreUriArray* storeUris = 
+            iPbkStoreConfiguration->CurrentConfigurationL();
+    iFavStoreSearched = 
+            storeUris->IsIncluded( VPbkContactStoreUris::DefaultCntDbUri() );
+    delete storeUris;
+    }
+
+// ---------------------------------------------------------------------------
+// CEasyDialingContactDataManager::SetStoreFlagsForContact
+// ---------------------------------------------------------------------------
+//
+void CEasyDialingContactDataManager::SetStoreFlagsForContact( 
+        CEasyDialingContactData* aContactData ) const
+    {
+    MVPbkContactLink* link = aContactData->ContactLink();
+    const TDesC& uri = link->ContactStore().StoreProperties().Uri().UriDes();
+    
+    TBool isSim = ( uri.Compare( VPbkContactStoreUris::SimGlobalAdnUri() ) == 0 );
+    aContactData->SetSimContact( isSim );
+    
+    TBool isSdn = ( uri.Compare( VPbkContactStoreUris::SimGlobalSdnUri() ) == 0 );
+    aContactData->SetSdnContact( isSdn );
+    }
+
 
 //  End of File
 
--- a/phoneuis/easydialing/src/easydialinglistbox.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/src/easydialinglistbox.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -56,8 +56,6 @@
 
 // CONSTANTS
 static const TInt KListBoxMarginWidth = 2;
-static const TInt KMaxVisibleItemsPortrait = 3;
-static const TInt KMaxVisibleItemsLandscape = 2;
 
 // MACROS
 
@@ -384,8 +382,19 @@
     maxViewLayout.LayoutRect( aMaxRect, AknLayoutScalable_Apps::dia3_list_pane( variety ) );
     TRect maxViewRect( maxViewLayout.Rect() );
     maxViewRect.Shrink( KListBoxMarginWidth, KListBoxMarginWidth ); // layout data doens't include any margins but we have added some
+
+    // Read list item size aid from layout data. Use it to determine how many
+    // items to show in listbox.
+    TAknLayoutRect listSizeAid;
+    listSizeAid.LayoutRect( aMaxRect, AknLayoutScalable_Apps::aid_size_list_single_double() );
+    TInt itemHeightAid = listSizeAid.Rect().Height();
     
-    TInt maxItemsShown = ( variety ? KMaxVisibleItemsLandscape : KMaxVisibleItemsPortrait );
+    TInt maxItemsShown = maxViewRect.Height() / itemHeightAid;
+    if ( maxViewRect.Height() % itemHeightAid > itemHeightAid / 2 )
+        {
+        maxItemsShown++;
+        }
+    
     TInt itemHeight = maxViewRect.Height() / maxItemsShown;
     TRAP_IGNORE( SetItemHeightL( itemHeight ) );
 
--- a/phoneuis/easydialing/src/easydialinglistboxdata.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/src/easydialinglistboxdata.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -131,7 +131,7 @@
         const TRect& aItemRect, 
         const CFont* aContactNameFont, 
         TBool aArrowIconShown,
-        TBool aIsFavourite, 
+        TBool aFavOrSimIconShown, 
         TBool aThumbnailsShown );
 static TRect CompanyNameBoundingBox(
         const TRect& aItemRect, 
@@ -139,6 +139,7 @@
         TBool aIsCurrentItem,
         TBool aThumbnailsShown );
 static TRect FavouriteIconBoundingBox( const TRect& aContactNameBoundingBox );
+static TRect SimIconBoundingBox( const TRect& aContactNameBoundingBox );
 static TRect MirrorLayoutBoundingBox(const TRect& aSourceRect, TRect& aBoundingBoxRect);
 static TInt BaseLineOffset( const TRect& aTextBoundingBox, const CFont* aFont );
 static TBool ContainsRightToLeftText( const TDesC& aDesc );
@@ -251,6 +252,8 @@
     delete iColorBitmap;
     delete iDummyThumbnail;
     delete iFavouriteIcon;
+    delete iSimContactIcon;
+    delete iSdnContactIcon;
     
     iContactDataManager = NULL;
     }
@@ -307,6 +310,8 @@
     {
     CFormattedCellListBoxData::ConstructLD();
     
+    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+    
     // EasyDialing bitmap file is attempted to be read from the same directory where the
     // executed binary is located
     TFileName dllFileName;
@@ -335,6 +340,14 @@
     // Create the favourite icon bitmap and mask
     iFavouriteIcon = CreateIconL( KFavouriteIconBitmapFile, 
             EMbmPhonebook2Qgn_prop_pb_topc, EMbmPhonebook2Qgn_prop_pb_topc_mask );
+
+    // Create SIM contact icon from the skin 
+    iSimContactIcon = AknsUtils::CreateGulIconL( skin, KAknsIIDQgnPropNrtypSimContact, bitmapFileName,
+            EMbmEasydialingQgn_prop_nrtyp_sim_contact, EMbmEasydialingQgn_prop_nrtyp_sim_contact_mask );
+
+    // Create Service Dialing Number contact icon from the skin
+    iSdnContactIcon = AknsUtils::CreateGulIconL( skin, KAknsIIDQgnPropNrtypSdn, bitmapFileName,
+            EMbmEasydialingQgn_prop_nrtyp_sdn, EMbmEasydialingQgn_prop_nrtyp_sdn_mask );
     }
 
 
@@ -407,11 +420,13 @@
     {
     TPtrC cellText;
 
-    TInt error = TextUtils::ColumnText( cellText , 0, aText );
+    TInt error = TextUtils::ColumnText( cellText, 0, aText );
     __ASSERT_DEBUG( error == KErrNone, EasyDialingPanic( EEasyDialingPanicInvalidListBoxModelString ) );
     __ASSERT_DEBUG( iContactNameFont, EasyDialingPanic( EEasyDialingNoFontFound ) );
     __ASSERT_DEBUG( iCompanyNameFont, EasyDialingPanic( EEasyDialingNoFontFound ) );
     
+    TInt contactDataIndex = iContactDataManager->IndexForId( cellText );
+
     MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( &aGc );
     if ( transApi )
         {
@@ -428,6 +443,9 @@
         boundingBox = MirrorLayoutBoundingBox( aItemRect, boundingBox );
         }
     
+    //Draws the Contact Thumbnail Icon if exists, else draws the dummy contact thumbnail
+    DrawContactThumbnail( aGc, boundingBox, contactDataIndex );
+
     // Arrow icon is drawn if the item is in focus and listbox has focus
     // (and not only the temporary visual focus caused by touching a list item).
     TBool showArrowIcon = aHighlight && iControl->IsFocused();
@@ -441,31 +459,46 @@
         DrawArrowIcon( aGc, arrowRect );
         }
 
-    //Draws the Contact Thumbnail Icon if exists, else draws the dummy contact thumbnail
-    TBool fav = DrawContactThumbnail( aGc, boundingBox, cellText );
-
-    error = TextUtils::ColumnText( cellText , 1, aText );
-    __ASSERT_DEBUG( error == KErrNone, EasyDialingPanic( EEasyDialingPanicInvalidListBoxModelString ) );
-
+    TBool favOrSimContact = 
+            iContactDataManager->IsFav( contactDataIndex ) ||
+            iContactDataManager->IsSimContact( contactDataIndex ) ||
+            iContactDataManager->IsSdnContact( contactDataIndex );
     boundingBox = ContactNameBoundingBox( aItemRect,
                                           iContactNameFont,
                                           showArrowIcon,
-                                          fav,
+                                          favOrSimContact,
                                           iContactDataManager->GetContactThumbnailSetting() );
-    TRect nameRectUnMirrored = boundingBox; // used for favourite star drawing
-
+    
+    // Draw favorite or sim icon if necessary. Only one of these can be drawn.
+    TRect nameRectUnMirrored = boundingBox;
+    if ( iContactDataManager->IsFav( contactDataIndex ) )
+        {
+        DrawFavouriteIcon( aGc, nameRectUnMirrored, aItemRect );
+        }
+    else if ( iContactDataManager->IsSimContact( contactDataIndex ) )
+        {
+        DrawSimIcon( *iSimContactIcon, aGc, nameRectUnMirrored, aItemRect );
+        }
+    else if ( iContactDataManager->IsSdnContact( contactDataIndex ) )
+        {
+        DrawSimIcon( *iSdnContactIcon, aGc, nameRectUnMirrored, aItemRect );
+        }
+    
+    // Mirror the bounding box for text drawing if necessary.
     if ( AknLayoutUtils::LayoutMirrored() )
         {
         boundingBox = MirrorLayoutBoundingBox( aItemRect, boundingBox );
         }
 
-    // favourite icon size is set the same as contact name bounding box height.
-    TInt favouriteIconSize = boundingBox.Height();
-    
+    // Draw 1st row text
+    error = TextUtils::ColumnText( cellText , 1, aText );
+    __ASSERT_DEBUG( error == KErrNone, EasyDialingPanic( EEasyDialingPanicInvalidListBoxModelString ) );
+
     TInt err( KErrNone );
     TRAP( err, DrawTextWithMatchHighlightL(
             boundingBox, aGc, cellText, iContactNameFont, aColors, aHighlight ) );
 
+    // Draw 2nd row text
     if ( !err && TextUtils::ColumnText( cellText , 2, aText ) == KErrNone ) 
         {
         TRect companyNameBoundingBox = CompanyNameBoundingBox( 
@@ -478,12 +511,6 @@
                 companyNameBoundingBox, aGc, cellText, iCompanyNameFont, aColors, aHighlight ) );
         }
 
-    if ( !err && fav )
-        {
-        // Draws the Favourite Icon
-        DrawFavouriteIcon( aGc, nameRectUnMirrored, aItemRect );
-        }
-    
     if ( transApi )
         {
         aGc.CancelClippingRect();
@@ -495,14 +522,13 @@
 // DrawContactThumbnail
 // 
 // Draws the Contact Thumbnail Icon if any, else draws the dummy contact thumbnail
-// Also check if this is a favorite contact and return true if this is.
 // -----------------------------------------------------------------------------
 //
-TBool CEasyDialingListBoxData::DrawContactThumbnail(CWindowGc& aGc, TRect aBoundingBox, TPtrC aCellText) const
+void CEasyDialingListBoxData::DrawContactThumbnail(
+        CWindowGc& aGc, TRect aBoundingBox, TInt aContactIndex ) const
     {
-    TBool fav(EFalse);
     CFbsBitmap* thumbnail(NULL);
-    TBool isLoaded = iContactDataManager->GetThumbnailAndFav(aCellText, thumbnail, fav);
+    TBool isLoaded = iContactDataManager->GetThumbnail(aContactIndex, thumbnail);
     if ( isLoaded && thumbnail )
         {
         // center the thumbnail in its rect
@@ -517,13 +543,12 @@
         {
         // draw dummy thumnbnail, but only if we know that the contact doesn't
         // have a thumbnail, and thumbnail drawing is enabled.
-        AknIconUtils::SetSize(iDummyThumbnail->Bitmap(), aBoundingBox.Size());
-        AknIconUtils::SetSize(iDummyThumbnail->Mask(), aBoundingBox.Size());
+        AknIconUtils::SetSize( iDummyThumbnail->Bitmap(), aBoundingBox.Size() );
+        AknIconUtils::SetSize( iDummyThumbnail->Mask(), aBoundingBox.Size() );
         aGc.BitBltMasked( aBoundingBox.iTl, iDummyThumbnail->Bitmap(),
                 TRect( TPoint(0,0), aBoundingBox.Size() ), 
                 iDummyThumbnail->Mask(), ETrue );
         }
-    return fav;
     }
 
 
@@ -591,6 +616,38 @@
                 sourceRect, iFavouriteIcon->Mask(), ETrue );
         }
     }
+
+// -----------------------------------------------------------------------------
+// DrawSimIcon
+// 
+// Draws the SIM or SDN contact icon
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingListBoxData::DrawSimIcon(
+        CGulIcon& aIcon,
+        CWindowGc& aGc, 
+        TRect aNameRectUnMirrored,
+        TRect aEffectiveRect ) const
+    {
+    TRect simIconBoundingBox;
+
+    simIconBoundingBox = SimIconBoundingBox( aNameRectUnMirrored );
+
+    if ( AknLayoutUtils::LayoutMirrored() )
+        {
+        simIconBoundingBox = MirrorLayoutBoundingBox(aEffectiveRect, simIconBoundingBox);
+        }
+
+    aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
+    TRect sourceRect( TPoint(0,0), simIconBoundingBox.Size() );
+
+    // Set size for the bitmap and mask
+    AknIconUtils::SetSize( aIcon.Bitmap(), simIconBoundingBox.Size() );
+    AknIconUtils::SetSize( aIcon.Mask(), simIconBoundingBox.Size() );
+    aGc.BitBltMasked( simIconBoundingBox.iTl, aIcon.Bitmap(), 
+            sourceRect, aIcon.Mask(), ETrue );
+    }
+
 // -----------------------------------------------------------------------------
 // SetContactDataManager
 // 
@@ -751,7 +808,7 @@
         const TRect& aItemRect,
         const CFont* aContactNameFont,
         TBool aArrowIconShown,
-        TBool aIsFavourite,
+        TBool aFavOrSimIconShown,
         TBool aThumbnailsShown )
     {
     // Position X will contain the starting position of text from left side of item rect.
@@ -775,8 +832,9 @@
         rightMargin += KArrowIconSizePercent * aItemRect.Height() / KCent;
         }
     
-    // If item is favourite, reserve space for favourite icon. Icon dimensions are the same as bounding box height.
-    if ( aIsFavourite )
+    // If item is favourite or a SIM contact, reserve space for the icon. 
+    // Icon dimensions are the same as bounding box height.
+    if ( aFavOrSimIconShown )
         {
         rightMargin += height;
         }
@@ -872,6 +930,17 @@
     }
 
 
+// -----------------------------------------------------------------------------
+// SimIconBoundingBox
+// Calculates the area to which the sim/sdn icon is drawn.
+// -----------------------------------------------------------------------------
+//
+static TRect SimIconBoundingBox( const TRect& aContactNameBoundingBox )
+    {
+    // use the same bounding box as is used for the favourite icon
+    return FavouriteIconBoundingBox( aContactNameBoundingBox );
+    }
+
 
 // -----------------------------------------------------------------------------
 // BaseLineOffset
--- a/phoneuis/easydialing/src/easydialingplugin.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/src/easydialingplugin.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -46,9 +46,6 @@
 
 // Virtual phonebook header files
 #include <VPbkContactStoreUris.h>
-#include <CVPbkContactStoreUriArray.h>
-#include <TVPbkContactStoreUriPtr.h>
-#include <CVPbkContactLinkArray.h>
 #include <VPbkEng.rsg> // contains virtual phonebook data fields
 #include <phoneui.rsg> 
 
@@ -181,19 +178,10 @@
 //
 void CEasyDialingPlugin::ConstructL()
     {
-    // Create a contact store array.
-    HBufC* defaultCdb = VPbkContactStoreUris::DefaultCntDbUri().AllocLC();
-    iContactDataStores.AppendL( defaultCdb );
-    CleanupStack::Pop( defaultCdb );
-
-    // Create a contact manager instance.
-    iContactStoreUriArray = CVPbkContactStoreUriArray::NewL();
-    iContactStoreUriArray->AppendL( TVPbkContactStoreUriPtr( VPbkContactStoreUris::DefaultCntDbUri() ) );
-    iContactManager = CVPbkContactManager::NewL( *iContactStoreUriArray );
-    
-    iContactDataManager = new (ELeave) CEasyDialingContactDataManager(iContactManager);
-    iContactDataManager->ConstructL();
-    iContactDataManager->SetObserver(this);
+    iLongTapped = EFalse;
+    // Create contact data manager.
+    iContactDataManager = CEasyDialingContactDataManager::NewL();
+    iContactDataManager->SetObserver( this );
 
     // Find a handle to ca launcher extension MCCAConnectionExt.
     // Easydialing has to use the extension API, because it needs function CloseAppL
@@ -211,7 +199,7 @@
     User::LeaveIfNull( any );
     iContactLauncher = static_cast<MCCAConnectionExt*>( any );
     
-    iCenrepListener = CEasyDialingCenrepListener::NewL(this);
+    iCenrepListener = CEasyDialingCenrepListener::NewL( this );
    
     iContactorService = CEDContactorService::NewL( this );
 
@@ -242,8 +230,6 @@
     delete iCenrepListener;
     delete iContactDataManager;
     delete iPredictiveSearchQuery;
-    delete iContactManager;
-    delete iContactStoreUriArray;
     iContactDataStores.ResetAndDestroy();
 
     if ( iPredictiveContactSearchHandler )
@@ -406,10 +392,6 @@
     iPredictiveContactSearchHandler = CPSRequestHandler::NewL();
     iPredictiveContactSearchHandler->AddObserverL(this);
 
-    // Put the searched contact fields into array.
-    RArray<TInt> contact_fields;
-    CleanupClosePushL(contact_fields);
-
     // Check which relevant contact fields are indexed in PCS search.
     iFirstNamePCSIndex = FindContactFieldPCSIndexL( R_VPBK_FIELD_TYPE_FIRSTNAME );
     iLastNamePCSIndex = FindContactFieldPCSIndexL( R_VPBK_FIELD_TYPE_LASTNAME );
@@ -433,32 +415,48 @@
         User::Leave( KErrEasyDialingNoLastNamePCSIndexing );
         }
 
-    // First name, last name and company name (if supported) are used in PCS search.
-    contact_fields.Append(R_VPBK_FIELD_TYPE_FIRSTNAME);
-    contact_fields.Append(R_VPBK_FIELD_TYPE_LASTNAME);
-    if ( iCompanyNamePCSIndex != KErrNotFound )
-        {
-        contact_fields.Append(R_VPBK_FIELD_TYPE_COMPANYNAME);
-        }
+    SetupPcsSettingsL();
+
+    iPredictiveSearchQuery = CPsQuery::NewL();
+    }
 
-    SetSortOrderL( iContactDataManager->NameOrder() );
+// -----------------------------------------------------------------------------
+// SetupPcsSettingsL
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::SetupPcsSettingsL()
+    {
+    // Get current store configuration from Phonebook settings
+    iContactDataStores.ResetAndDestroy();
+    iContactDataManager->GetCurrentStoreUrisL( iContactDataStores );
+    
+    // Put the searched contact fields into array.
+    RArray<TInt> contact_fields;
+    CleanupClosePushL(contact_fields);
 
-    // Create and fill ps settings object.
+    // First name, last name and company name (if supported) are used in PCS search.
+    contact_fields.Append( R_VPBK_FIELD_TYPE_FIRSTNAME );
+    contact_fields.Append( R_VPBK_FIELD_TYPE_LASTNAME );
+    contact_fields.Append( R_VPBK_FIELD_TYPE_COMPANYNAME );
+
+    // Create and fill PS settings object.
     CPsSettings* ps_settings = CPsSettings::NewL();
-    CleanupStack::PushL(ps_settings);
+    CleanupStack::PushL( ps_settings );
 
-    ps_settings->SetSearchUrisL(iContactDataStores);
-    ps_settings->SetMaxResults(KEDMaximumMatchingContactsCount);
-    ps_settings->SetSortType(EAlphabetical);
-    ps_settings->SetDisplayFieldsL(contact_fields);
+    ps_settings->SetSearchUrisL( iContactDataStores );
+    ps_settings->SetMaxResults( KEDMaximumMatchingContactsCount );
+    ps_settings->SetSortType( EAlphabetical );
+    ps_settings->SetDisplayFieldsL( contact_fields );
 
     // Set the PCS settings.
-    iPredictiveContactSearchHandler->SetSearchSettingsL(*ps_settings);
+    iPredictiveContactSearchHandler->SetSearchSettingsL( *ps_settings );
 
-    CleanupStack::PopAndDestroy(ps_settings);
-    CleanupStack::PopAndDestroy(&contact_fields);
+    CleanupStack::PopAndDestroy( ps_settings );
+    CleanupStack::PopAndDestroy( &contact_fields );
 
-    iPredictiveSearchQuery = CPsQuery::NewL();
+    // Set the sort order. This must happen after the contact store settings
+    // are up-to-date.
+    SetSortOrderL( iContactDataManager->NameOrder() );
     }
 
 // -----------------------------------------------------------------------------
@@ -471,19 +469,22 @@
     CleanupClosePushL( fields );
     if ( aNameOrder == CEasyDialingContactDataManager::EFirstnameLastname )
         {
-        fields.Append(R_VPBK_FIELD_TYPE_FIRSTNAME);
-        fields.Append(R_VPBK_FIELD_TYPE_LASTNAME);
+        fields.AppendL( R_VPBK_FIELD_TYPE_FIRSTNAME );
+        fields.AppendL( R_VPBK_FIELD_TYPE_LASTNAME );
         }
     else
         {
-        fields.Append(R_VPBK_FIELD_TYPE_LASTNAME);
-        fields.Append(R_VPBK_FIELD_TYPE_FIRSTNAME);
+        fields.AppendL( R_VPBK_FIELD_TYPE_LASTNAME );
+        fields.AppendL( R_VPBK_FIELD_TYPE_FIRSTNAME );
         }
-    if ( iCompanyNamePCSIndex != KErrNotFound )
+    fields.AppendL( R_VPBK_FIELD_TYPE_COMPANYNAME );
+    
+    // Set the same order for each contact store. PCS automatically ignores
+    // fields not supported by the given store.
+    for ( TInt i = 0 ; i < iContactDataStores.Count() ; ++i )
         {
-        fields.Append(R_VPBK_FIELD_TYPE_COMPANYNAME);
+        iPredictiveContactSearchHandler->ChangeSortOrderL( *iContactDataStores[i], fields );
         }
-    iPredictiveContactSearchHandler->ChangeSortOrderL( *iContactDataStores[0], fields );
     CleanupStack::PopAndDestroy( &fields );
     }
 
@@ -846,6 +847,22 @@
     }
 
 // -----------------------------------------------------------------------------
+// StoreConfigurationChanged
+// From MContactDataManagerObserver
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::StoreConfigurationChanged()
+    {
+    TRAP_IGNORE( 
+        // Reconfigure PCS to update its store settings
+        SetupPcsSettingsL();
+        // Contacts available have changed and a new search is needed if we have
+        // previous results shown.
+        DoHandleContactsChangedL() 
+        );
+    }
+
+// -----------------------------------------------------------------------------
 // InformContactorEvent
 // From MEDContactorObserver
 // -----------------------------------------------------------------------------
@@ -915,7 +932,10 @@
         // not to the keyboard it is made with. While this is not strictly
         // identical to checking the used keyboard, this behaves identically
         // in most of the normal cases, and makes the logic simpler.
-        if ( IsItuTCharacter( iSearchString[i] ) )
+        // In case of hybrid mode keyboard, use always predictive default 
+        // keyboard.
+        if ( iKeyboardMode == EDefaultKeyboard && 
+             IsItuTCharacter( iSearchString[i] ) )
             {
             item->SetMode( EPredictiveItuT );
             }
@@ -1005,8 +1025,10 @@
     RArray<TInt> fieldOrder;
     CleanupClosePushL( fieldOrder );
 
-    // Current implementation searches only from default database.
-    // Later this may be expanded to search SIM contacts as well.
+    // PCS uses the same data plugin for all the Phonebook databases
+    // (i.e. phone contacts, SIM contacts, SDN contacts), and there can be only
+    // one data order per plugin. Thus, data order for all databases supported
+    // by us is the same, and it's enough to ask data order just for the default CDB.
     const TDesC& defaultCdb = VPbkContactStoreUris::DefaultCntDbUri();
 
     iPredictiveContactSearchHandler->GetDataOrderL( defaultCdb, fieldOrder );
@@ -1072,7 +1094,7 @@
         TInt indexFromEnd = numberOfPCSMatches - i - 1;
 
         MVPbkContactLink* link = iPredictiveContactSearchHandler->ConvertToVpbkLinkLC(
-                *(aResults[indexFromEnd]), *iContactManager );
+                *(aResults[indexFromEnd]), iContactDataManager->ContactManager() );
         if ( !iContactDataManager->IsFavL( link ) )
             {
             // handle favourites separately, in another loop
@@ -1439,8 +1461,9 @@
             message = iContactDataManager->UniEditorAvailable( index );
             }
             
-        // Call menu item is not show if neither voice call nor video call are possible. 
-        aMenuPane.SetItemDimmed( EEasyDialingVoiceCall, !voiceCall && !videoCall ); 
+        
+        aMenuPane.SetItemDimmed( EEasyDialingVoiceCall, !voiceCall ); 
+        aMenuPane.SetItemDimmed( EEasyDialingVideoCall, !videoCall ); 
         aMenuPane.SetItemDimmed( EEasyDialingSendMessage, !message ); 
         
         LOGSTRING("EasyDialingPlugin::InitializeMenuPaneL: InitializeMenuPaneL done" );
@@ -1448,27 +1471,6 @@
         return ETrue;  
         }
     
-    else if ( aMenuResourceId == R_EASYDIALING_OPTIONS_CALL_MENU )
-        {
-        TBool voiceCall = EFalse;
-        TBool videoCall = EFalse;
-        
-        if ( iContactListBox->CurrentItemIndex() >= 0 ) 
-            {
-            TInt index = iContactListBox->CurrentContactDataIndex();
-            
-            voiceCall = iContactDataManager->VoiceCallAvailable( index );
-            videoCall = iContactDataManager->VideoCallAvailable( index );
-            }
-        
-        aMenuPane.SetItemDimmed( EEasyDialingVoiceCall, !voiceCall ); 
-        aMenuPane.SetItemDimmed( EEasyDialingVideoCall, !videoCall ); 
-
-        LOGSTRING("EasyDialingPlugin::InitializeMenuPaneL: InitializeMenuPaneL for call submenu done" );
-        
-        return ETrue;
-        }
-    
     else if ( aMenuResourceId == R_EASYDIALING_OPTIONS_ON_OFF_CASCADE_MENU )
         {
         if ( IsEnabled() )
@@ -1512,7 +1514,7 @@
         }
  
     
-    TBool ret(EFalse);
+    TBool ret(ETrue);
     
     switch ( aCommand )
         {
@@ -1520,7 +1522,6 @@
             
             iRememberFocus = ETrue;
             AsyncActionLaunchL( ELaunchCurrentContact );
-            ret = ETrue;
             break;
 
         // EEasyDialingEnterKeyAction is sent when Enter key is pressed.
@@ -1530,7 +1531,6 @@
             // Make a call.
             iRememberFocus = ETrue;
             AsyncActionLaunchL( ECallCurrentContact );
-            ret = ETrue;
             break;
             
         // Video call is selectable only through menu.
@@ -1538,7 +1538,6 @@
             // Make a video call.
             iRememberFocus = ETrue;
             AsyncActionLaunchL( EVideoCallCurrentContact );
-            ret = ETrue;
             break;
                 
         // Uni-editor message is selectable only through menu.
@@ -1546,7 +1545,6 @@
             // Create a message.
             iRememberFocus = ETrue;
             AsyncActionLaunchL( ESendMessageCurrentContact );
-            ret = ETrue;
             break;
                     
         // EEasyDialingCallHandlingActivated is sent when the in-call-ui of telephony gets activated
@@ -1563,41 +1561,37 @@
                 iNewSearchNeeded = EFalse;
                 iContactLauncher->CloseAppL();
                 }
-            ret = ETrue;
             break;
             
         case EEasyDialingOn:
             
             iCenrepListener->SetEasyDialingSettingsValue( 1 );
-            ret = ETrue;
             break;
 
         case EEasyDialingOff:
             
             iCenrepListener->SetEasyDialingSettingsValue( 0 );
-            ret = ETrue;
             break;    
             
         case EEasyDialingClosePopup:
             
             // Not only Number Entry is removed but also closes down number selection popup in case it happens to be open.
             iContactorService->CancelService();
-            ret = ETrue;
             break;
             
         case EEasyDialingVkbOpened:
             
             iVirtualKeyboardOpen = ETrue;
-            ret = ETrue;
             break;
                   
         case EEasyDialingVkbClosed:
             
             iVirtualKeyboardOpen = EFalse;
-            ret = ETrue;
+            HandleGainingForeground();
             break;
             
         default:
+            ret = EFalse;
             break;
         }
     return ret;
@@ -1614,6 +1608,16 @@
     }
 
 // -----------------------------------------------------------------------------
+// SetKeyboardMode
+// Sets keyboard mode
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::SetKeyboardMode( TKeyboardMode aMode )
+    {
+    iKeyboardMode = aMode;
+    }
+
+// -----------------------------------------------------------------------------
 // AsyncSimulateKeyEvent
 // 
 // -----------------------------------------------------------------------------
@@ -1725,7 +1729,7 @@
 //
 // -----------------------------------------------------------------------------
 //
-void CEasyDialingPlugin::DoLaunchActionL( )
+void CEasyDialingPlugin::DoLaunchActionL()
     {
     if ( iActionToBeLaunched == EInitializePcs )
         {
@@ -1862,6 +1866,7 @@
             break;
 
         case KEasyDialingContactLongTapped:
+            iLongTapped = ETrue;
             AsyncActionLaunchL( ELaunchCurrentContact );
             break;
             
@@ -1883,11 +1888,12 @@
             // Touching the listbox always removes the visual focus from any list item.
             // Move the focus away from the listbox after panning has ended to
             // align our internal state with the visual lack of focus.
-            if ( IsFocused() )
+            if ( IsFocused() && !iLongTapped )
                 {
                 SetFocus( EFalse );
                 DrawDeferred();
                 }
+            iLongTapped = EFalse;
             break;
             
         // We are not interested about the other listbox events.
@@ -1923,7 +1929,7 @@
         // search is made, all data is loaded again.
         iContactDataManager->Reload();
         
-        LaunchSearchL();
+        TRAP_IGNORE( LaunchSearchL() );
         }
     }
 
@@ -1965,7 +1971,7 @@
     if ( iSearchString.Length() > 0 && IsEnabled() )
         {
         CAknAppUi* appUi = static_cast<CAknAppUi*>( iCoeEnv->AppUi() );
-        if ( appUi->IsForeground() )
+        if ( appUi->IsForeground() && !iVirtualKeyboardOpen )
             {
             // Do new search immediately, if contacts change while we are on the
             // foreground. This can happen for example if view is switched to
--- a/phoneuis/easydialing/src/easydialingutils.cpp	Tue Aug 17 18:45:21 2010 +0100
+++ b/phoneuis/easydialing/src/easydialingutils.cpp	Thu Sep 09 18:09:57 2010 +0100
@@ -80,18 +80,20 @@
             ptr.Append( KNameSeparatorChar );
             ptr.Append( *firstName );
             }        
-        } 
-    
-    // If firstname and last name are missing, duplicate company name into name field.
+        }
+
+    // If firstname and last name are missing, put company name into the first field.
     if ( ptr.Length() == 0 )
         {
         ptr.Append( *companyName );
         }
-    
-    // Append company name using tab as a separator.
-    ptr.Append( KListFieldSeparatorChar );
-    ptr.Append( *companyName );
-    
+    else
+        {
+        // Otherwise add company name into the second field using tab as a separator.
+        ptr.Append( KListFieldSeparatorChar );
+        ptr.Append( *companyName );
+        }
+
     CleanupStack::Pop( string );
     CleanupStack::PopAndDestroy( 3, firstName );
     CleanupStack::PushL( string );
Binary file phoneuis/vmbx/help/data/xhtml.zip has changed